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