From 175c052e97f2bb095412b342b7e184b1435dcea5 Mon Sep 17 00:00:00 2001 From: yuanteng0011 <1876787513@qq.com> Date: Thu, 5 Jun 2025 09:47:29 +0800 Subject: [PATCH] commission--yt-commit --- .../commissionSetting/commissionSetting.js | 24 ++- .../commissionSetting/commissionSetting.wxml | 11 +- .../commissionSetting/commissionSetting.wxss | 2 +- .../commissionRatePop/commissionRatePop.js | 150 ++++++++++++++++-- .../commissionRatePop/commissionRatePop.wxml | 35 +++- .../commissionRatePop/commissionRatePop.wxss | 13 ++ .../commissionRatePop/images/baifenbi.png | Bin 0 -> 3508 bytes 7 files changed, 204 insertions(+), 31 deletions(-) create mode 100644 pages/personCenter/component/commissionRatePop/images/baifenbi.png diff --git a/pages/personCenter/commissionSetting/commissionSetting.js b/pages/personCenter/commissionSetting/commissionSetting.js index 8673ae4..6bab692 100644 --- a/pages/personCenter/commissionSetting/commissionSetting.js +++ b/pages/personCenter/commissionSetting/commissionSetting.js @@ -8,10 +8,15 @@ Page({ */ data: { projectList: [], // 项目列表 - items_1: [null, null, null], - items: [null, null], + projectId: 0, // 项目ID + maxCommissionRate: 0, // 最大抽佣比率 showPopup: false, // 控制弹窗显隐 + LodingHidden: true, // 控制加载框取消 showCommissionRatePop: false, + nowMyUnitPrice: 0, // 现在的‘我的单价’,用于传给弹窗 + nowCommissionRate: 0, // 现在的'抽成比例', 用于传给弹窗 + nowAgentUnitPrice: 0, // 现在的‘代理单价’,用于传给弹窗 + nowProjectDetailName: '', // 现在的‘项目详细名称’,用于传给弹窗 }, // 获取项目列表 @@ -76,7 +81,17 @@ Page({ }, // 点击“设价”按钮,显示弹窗 - showCommissionRatePop() { + showCommissionRatePop(e) { + console.log('弹窗传值----->',e); + this.setData({ + nowCommissionRate: e.currentTarget.dataset.currentcommissionrate, + nowMyUnitPrice: e.currentTarget.dataset.nowmyunitprice, + nowAgentUnitPrice: e.currentTarget.dataset.agentunitprice, + nowProjectDetailName: e.currentTarget.dataset.projectdetailname, + projectId: e.currentTarget.dataset.detailid, + maxCommissionRate: e.currentTarget.dataset.maxcommissionrate, + }) + this.setData({ showCommissionRatePop: true }); }, @@ -87,8 +102,7 @@ Page({ // 确认按钮回调 handleCommissionRateConfirm(e) { - const { agentPrice, commissionRate, pricingMethod } = e.detail; - console.log('设置数据:', agentPrice, commissionRate, pricingMethod); + this.getProjectList() this.closeCommissionRatePop(); }, diff --git a/pages/personCenter/commissionSetting/commissionSetting.wxml b/pages/personCenter/commissionSetting/commissionSetting.wxml index 15343f6..65f750e 100644 --- a/pages/personCenter/commissionSetting/commissionSetting.wxml +++ b/pages/personCenter/commissionSetting/commissionSetting.wxml @@ -54,7 +54,7 @@ > {{ CommissionList.projectDetailName }} {{ CommissionList.myUnitPrice }}/{{ CommissionList.agentUnitPrice }}/{{ CommissionList.currentCommissionRate }}% - + + \ No newline at end of file + pgencyPrice="{{ nowAgentUnitPrice }}" + commissionRate="{{ nowCommissionRate }}" + myUnitPrice="{{ nowMyUnitPrice }}" + projectDetailName="{{ nowProjectDetailName }}" + detailId="{{ projectId }}" + maxCommissionRate="{{ maxCommissionRate }}" +/> diff --git a/pages/personCenter/commissionSetting/commissionSetting.wxss b/pages/personCenter/commissionSetting/commissionSetting.wxss index 74ac4ec..a58ad31 100644 --- a/pages/personCenter/commissionSetting/commissionSetting.wxss +++ b/pages/personCenter/commissionSetting/commissionSetting.wxss @@ -172,4 +172,4 @@ } .text_8 { margin-left: -75.75rpx; -} \ No newline at end of file +} diff --git a/pages/personCenter/component/commissionRatePop/commissionRatePop.js b/pages/personCenter/component/commissionRatePop/commissionRatePop.js index c57cac2..fb29376 100644 --- a/pages/personCenter/component/commissionRatePop/commissionRatePop.js +++ b/pages/personCenter/component/commissionRatePop/commissionRatePop.js @@ -1,4 +1,11 @@ +import { baseUrl } from "../../../../request"; Component({ + + data: { + pgencyPriceAble: true, // 代理单价input启用/禁用 + commissionRateAble: true, // 抽成比例input启用/禁用 + LodingHidden: false, // 遮罩禁用启用 + }, /** * 组件的属性列表 */ @@ -7,18 +14,30 @@ Component({ type: Boolean, value: false }, - pgencyPrice: 0, // 代理价 - commissionRate: 0, // 抽成比例 - }, - - /** - * 处理输入框的变化 - */ - handleInputChange(e) { - const { field } = e.target.dataset; // 获取字段名 - this.setData({ - [field]: e.detail.value, // 动态更新输入框数据 - }); + pgencyPrice: { // 代理单价 + type: String, + value: 0 + }, + commissionRate: { // 抽成比例 + type: String, + value: 0 + }, + myUnitPrice: { // 我的单价 + type: Number, + value: 0 + }, + projectDetailName: { // 项目详细名称 + type: String, + value: '' + }, + detailId: { // 下级项目明细id + type: Number, + value: 0 + }, + maxCommissionRate: { // 最大抽佣比例 + type: Number, + value: 0 + } }, /** @@ -26,15 +45,116 @@ Component({ */ methods: { close() { + this.resetStatus(); this.triggerEvent('close'); }, cancel() { + this.resetStatus(); this.triggerEvent('cancel'); }, confirm() { // 触发confirm事件带数据 - this.triggerEvent('confirm', {/*数据*/}); + const id = this.data.detailId; + const Rate = this.data.commissionRate; + const maxRate = this.data.maxCommissionRate; + // console.log('maxRate---->', maxRate); + if (Rate > maxRate || Rate < 0) { + wx.showModal({ + title: '抽佣比率错误', + content: '抽佣比率大于最大抽成', + showCancel: false + }) + return; + } + wx.showLoading({ + title: '加载中', + mask: true + }) + // 发送请求 + wx.request({ + url: baseUrl + '/projectCommission/update/rate', + method: 'POST', + header: { + Authorization: wx.getStorageSync('token'), + }, + data: { + id: id, + currentCommissionRate: Rate + }, + success: res => { + console.log('后端结果---->',res.data); + if (res.data.code === 1) { + wx.hideLoading() // 加载框关闭 + this.triggerEvent('confirm', {}); + } else { + wx.showToast({ + title: '服务异常', + icon: 'error' + }) + } + } + }) + this.resetStatus(); }, - } -}) + // 单选框选择方法 + radioChange(e) { + const selected = e.detail.value; + if (selected === '代理价') { + this.setData({ + pgencyPriceAble: false, + commissionRateAble: true, + }) + } else { + this.setData({ + pgencyPriceAble: true, + commissionRateAble: false, + }) + } + }, + + // 重置input状态 + resetStatus() { + this.setData({ + pgencyPriceAble: true, + commissionRateAble: true, + }) + }, + + /** + * 处理输入框的变化 + */ + handleInputChange(e) { + const { field } = e.target.dataset; // 获取字段名 + this.setData({ + [field]: e.detail.value, // 动态更新输入框数据 + }); + }, + + // 计算单价——当输入抽成比率失焦时自动计算 + calculateUnitPrice() { + const tempCommissionRate = this.data.commissionRate/100; // 暂存抽成比率 + const tempMyUnitPrice = this.data.myUnitPrice; // 暂存我的单价 + let res = parseFloat( (tempMyUnitPrice * (1- tempCommissionRate)).toPrecision(2) ) ; + // 计算单价 (避免精度丢失问题) + this.setData({ + pgencyPrice : res + }) + }, + + // 计算比率——当输入代理单价失焦时自动计算 + calculateRatio() { + const tempPgencyPrice = this.data.pgencyPrice; // 暂存代理单价 + const tempMyUnitPrice = this.data.myUnitPrice; // 暂存我的单价 + if (tempPgencyPrice == tempMyUnitPrice) { + this.setData({ commissionRate: 100 }) + } else { + let res = (tempMyUnitPrice - tempPgencyPrice) / tempMyUnitPrice; + this.setData({ + commissionRate: parseFloat((res*100).toPrecision(2)) + }) + } + console.log('抽佣比率------>',this.data.commissionRate); + } + } +}) \ No newline at end of file diff --git a/pages/personCenter/component/commissionRatePop/commissionRatePop.wxml b/pages/personCenter/component/commissionRatePop/commissionRatePop.wxml index 59d9f5e..b00b17c 100644 --- a/pages/personCenter/component/commissionRatePop/commissionRatePop.wxml +++ b/pages/personCenter/component/commissionRatePop/commissionRatePop.wxml @@ -4,34 +4,53 @@ 代理价设置 - 我的价格0.30,我的抽成0.17元 + 我的价格{{ myUnitPrice }},我的抽成{{ (myUnitPrice*100 - pgencyPrice*100)/100 }}元 结算标准 - 3.6元购买30元券包3.6元购买 + {{ projectDetailName }} 代理价 - + 抽成比例 - - + + + 设价方式 - + - + 代理价 - + 抽成比例 diff --git a/pages/personCenter/component/commissionRatePop/commissionRatePop.wxss b/pages/personCenter/component/commissionRatePop/commissionRatePop.wxss index 39a8acb..9dccf32 100644 --- a/pages/personCenter/component/commissionRatePop/commissionRatePop.wxss +++ b/pages/personCenter/component/commissionRatePop/commissionRatePop.wxss @@ -121,6 +121,19 @@ radio { transform: scale(0.8); /* 调整为你需要的缩放比例 */ } +/* 在.wxss文件中 */ +.input-container { + position: relative; /* 容器使用相对定位 */ +} + +.input-icon { + position: absolute; /* 图标使用绝对定位 */ + left: 82px; /* 设置图标距离左边的距离 */ + top: 9px; /* 设置图标距离顶部的距离 */ + width: 15px; /* 图标宽度 */ + height: 15px; /* 图标高度 */ +} + /* 弹窗外围容器,覆盖全屏并居中 */ .popup-wrapper { position: fixed; diff --git a/pages/personCenter/component/commissionRatePop/images/baifenbi.png b/pages/personCenter/component/commissionRatePop/images/baifenbi.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a89b0ce14bc5eca652ed9a31ac77f4ea5f49fa GIT binary patch literal 3508 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 Y9@sJej*?t`@P+}*an{(ni(X0p0hW_19RL6T literal 0 HcmV?d00001