From a182ab2685c00d5d53f3fe72b924c0c3650b9001 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Mon, 17 Nov 2025 13:51:35 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=EF=BC=8C=E6=B4=BB=E5=8A=A8bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/MoneyManage/ProductSelect.vue | 2 +- .../moneyManage/receiveDetail/receiveService.vue | 26 ++++++++++++++++------ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/components/MoneyManage/ProductSelect.vue b/src/components/MoneyManage/ProductSelect.vue index af9e29b..cf6b963 100644 --- a/src/components/MoneyManage/ProductSelect.vue +++ b/src/components/MoneyManage/ProductSelect.vue @@ -137,7 +137,7 @@ watch(selectedValue, (newVal) => { const AIProduct = ['AI机构追踪', 'AI机构出击', 'AI机构资金', 'AI机构活跃度','AI机构探测神器'] const superProduct = ['超级机构透视', '超级机构伏击', '超级机构猎杀', '超级机构脉搏', '超级机构罗盘','超级机构探测神器'] -const InfoFee = ['静态信息费', '博股会员'] +const InfoFee = ['静态信息费', '博股会员','HC信息费'] const menuData = [ { name: '美股', diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index fcdc3a3..e315d31 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -66,7 +66,6 @@
-
添加收款
@@ -405,7 +404,7 @@ import { hasMenuPermission } from '@/utils/menuTreePermission.js' import _ from 'lodash' // 导入客服相关规则和静态数据 import { addFormRule } from './utils/recriveFormRules.js' -import { productList, MarketNameForId, CurrencyForId, marketList, statusList, numUnitList } from './utils/staticData.js' +import { productList, MarketNameForId, CurrencyForId, marketList, statusList } from './utils/staticData.js' // ===================== 基础状态管理(仅保留客服相关) ===================== const adminStore = useAdminStore(); @@ -414,6 +413,7 @@ const adminData = ref({}) // 管理员信息 const tableData = ref([]) // 表格数据 const total = ref(0) // 总条数 const pageInfo = ref({ pageSize: 10, pageNum: 1 }) // 分页信息 +const numUnitList = ref(['年', '月']) // 角色标识:固定为客服(删除财务、总部财务、超级管理员标识) const kefu = ref(true) @@ -532,10 +532,13 @@ const ifGold = () => { const selectItems = ["AI机构追踪", "AI机构出击", "AI机构资金", "AI机构活跃度", "超级机构透视", "超级机构伏击", "超级机构猎杀", "超级机构脉搏", "超级机构罗盘", 'HC信息费'] if (selectItems.includes(addFormData.value.goodsName)) { addFormData.value.numUnit = '' + numUnitList.value = ['年', '月'] } else if (addFormData.value.goodsName == '静态信息费') { addFormData.value.numUnit = '年' + numUnitList.value = ['年'] } else { addFormData.value.numUnit = '个' + numUnitList.value = ['个'] } } } @@ -549,6 +552,12 @@ const ifGroup = () => { } else if (addFormData.value.payType === 'Ipay88-链接收款') { isGroup.value = true addFormData.value.receivedMarket = '马来西亚' + } else if (addFormData.value.payType === 'E-Transfer') { + isGroup.value = true + addFormData.value.receivedMarket = '加拿大' + } else if (addFormData.value.payType === 'Grabpay' || addFormData.value.payType === 'Nets' || addFormData.value.payType === 'Paypal') { + isGroup.value = true + addFormData.value.receivedMarket = '新加坡' } else { isGroup.value = false } @@ -561,12 +570,12 @@ const jwcodeSeachMarket = async () => { url: '/cashCollection/getNameAndMarket', data: addFormData.value.jwcode }) - if(result.code == 200){ + if (result.code == 200) { ElMessage.success('客户信息查询成功') addFormData.value.market = result.data.market addFormData.value.marketName = result.data.marketName addFormData.value.name = result.data.name - }else{ + } else { ElMessage.error('客户不存在') } } catch (error) { @@ -580,7 +589,9 @@ const openAddForm = (row) => { if (row?.jwcode) { // 编辑模式 addOrEdit.value = 2 - addFormData.value = { ...row } + addFormData.value = { ...row, + activity: row.activityId + } jwcodeSeachMarket() ifGold() } else { @@ -636,6 +647,7 @@ const handleAddForm = async () => { // 客服编辑收款(撤回后重新提交) const handleEditForm = async () => { try { + await addFormRef.value.validate(); // 处理时间格式 if (addFormData.value.payTime) { addFormData.value.payTime = moment(addFormData.value.payTime).format('YYYY-MM-DD HH:mm:ss') @@ -665,7 +677,7 @@ const handleEditForm = async () => { // 付款币种和支付方式选项(客服专用) const customOptions = ref(['美元(USD)', '港币(HKD)', '新币(SGD)', '马币(MYR)', '泰铢(THB)', '加币(CAD)', '越南盾(VDN)', '韩元(KRW)']) -const paytypeOptions = ref(["Stripe-链接收款", "PaymentAsia-链接收款", "Ipay88-链接收款", "银行转账", "刷卡", "现金", "支票", "Grabpay", "Nets", "E-Transfer", "Paypal"]) +const paytypeOptions = ref(["Stripe-链接收款", "PaymentAsia-链接收款", "Ipay88-链接收款", "Grabpay", "Nets", "E-Transfer", "Paypal", "银行转账", "刷卡", "现金", "支票"]) const MoneyAddressOptions = ref(['马来西亚', '香港', '新加坡', '泰国', '越南HCM', '加拿大']) const handleCurrencyChange = (option) => { console.log('选中的币种:', option); @@ -828,7 +840,7 @@ const submitRefund = async () => { try { if (refundFormData.value.refundModel == 0) { refundFormData.value.partRefundGold = refundFormData.value.permanentGold, - refundFormData.value.partRefundFree = refundFormData.value.freeGold + refundFormData.value.partRefundFree = refundFormData.value.freeGold } const result = await request({ url: '/Money/add', From 0f9feefb26736621f5b60c42c6f6f4daddfb4f61 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Mon, 17 Nov 2025 13:54:14 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E6=97=B6=E9=97=B4=E9=87=8D=E7=BD=AE?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/moneyManage/receiveDetail/receiveFinance.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/views/moneyManage/receiveDetail/receiveFinance.vue b/src/views/moneyManage/receiveDetail/receiveFinance.vue index 6b9130b..ae198b6 100644 --- a/src/views/moneyManage/receiveDetail/receiveFinance.vue +++ b/src/views/moneyManage/receiveDetail/receiveFinance.vue @@ -969,6 +969,7 @@ const reset = () => { searchData.value = {}; // 重置页码 pageInfo.value.pageNum = 1; + getTime.value = [] getlist(); }; From 262106a2e32d8dfe6132cb6e7763ce94f43fe271 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Mon, 17 Nov 2025 14:03:12 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E6=97=B6=E9=97=B4=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/moneyManage/receiveDetail/receiveManage.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/views/moneyManage/receiveDetail/receiveManage.vue b/src/views/moneyManage/receiveDetail/receiveManage.vue index 6b9130b..ae198b6 100644 --- a/src/views/moneyManage/receiveDetail/receiveManage.vue +++ b/src/views/moneyManage/receiveDetail/receiveManage.vue @@ -969,6 +969,7 @@ const reset = () => { searchData.value = {}; // 重置页码 pageInfo.value.pageNum = 1; + getTime.value = [] getlist(); }; From 9d55df49bf7990518a982b2b0f56b8f1933154b4 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Mon, 17 Nov 2025 14:33:48 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E5=88=B0=E8=B4=A6=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneyManage/receiveDetail/receiveFinance.vue | 12 +++----- .../receiveDetail/utils/recriveFormRules.js | 36 ++++++++++------------ 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveFinance.vue b/src/views/moneyManage/receiveDetail/receiveFinance.vue index ae198b6..4aae861 100644 --- a/src/views/moneyManage/receiveDetail/receiveFinance.vue +++ b/src/views/moneyManage/receiveDetail/receiveFinance.vue @@ -267,7 +267,6 @@ - @@ -370,7 +369,7 @@ - +
@@ -457,10 +456,9 @@
- - + @@ -470,7 +468,7 @@ - + @@ -1118,11 +1116,11 @@ const submitEditForm = async () => { url: '/cashCollection/complete', data: { orderCode: editFormData.value.orderCode, - handlingCharge: editFormData.value.handlingCharge * 100, // 转为分单位 + handlingCharge: editFormData.value.handlingCharge * 100 || null, // 转为分单位 paymentCurrency: CurrencyForId(editFormData.value.paymentCurrency), paymentAmount: editFormData.value.paymentAmount * 100, // 转为分单位 receivedCurrency: CurrencyForId(editFormData.value.receivedCurrency), - receivedAmount: editFormData.value.receivedAmount * 100, // 转为分单位 + receivedAmount: editFormData.value.receivedAmount * 100 || null, // 转为分单位 receivedTime: editFormData.value.receivedTime, receivedRemark: editFormData.value.receivedRemark || '' } diff --git a/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js b/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js index 24906d4..0f87048 100644 --- a/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js +++ b/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js @@ -82,25 +82,21 @@ export const addFormRule = { { required: true, message: '请选择付款时间', trigger: 'change' } ] }; - -//填手续费校验规则 export const editFormRule = { - // 到账金额:最大6位(整数部分最多4位,小数2位),支持两位小数 - receivedAmount: [ - { required: true, message: '请输入到账金额', trigger: 'blur' }, - { - pattern: /^\d{1,6}(\.\d{1,2})?$/, - message: '请检查到账金额格式', - trigger: 'blur' - } - ], - // 手续费:同到账金额规则 - handlingCharge: [ - { required: true, message: '请输入手续费', trigger: 'blur' }, - { - pattern: /^\d{1,6}(\.\d{1,2})?$/, - message: '请检查手续费格式', - trigger: 'blur' - } - ], + // 到账金额:正数,整数部分最多6位,小数部分最多2位(支持纯小数如 0.1、0.99) + receivedAmount: [ + { + pattern: /^(0\.\d{1,2}|[1-9]\d{0,5}(\.\d{1,2})?)$/, // 修正:添加 / 包裹正则 + message: '请检查到账金额格式', + trigger: 'blur' + } + ], + // 手续费:正数,整数部分最多6位,小数部分最多2位(不支持纯0开头的小数如 0.1,需从1开始) + handlingCharge: [ + { + pattern: /^\d{1,6}(\.\d{1,2})?$/, // 注意:此正则允许 0 开头(如 0123 不符合整数规范) + message: '整数部分最多6位,小数部分最多2位', + trigger: 'blur' + } + ], }; \ No newline at end of file From 28438d83d0693a2bf751ab5c0db23688a830a99a Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Mon, 17 Nov 2025 14:46:50 +0800 Subject: [PATCH 05/16] =?UTF-8?q?=E8=A1=A5=E5=85=A8=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=A0=8F=E4=BA=A7=E5=93=81=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneyManage/receiveDetail/receiveFinance.vue | 4 +- .../moneyManage/receiveDetail/receiveHead.vue | 6 +- .../moneyManage/receiveDetail/receiveManage.vue | 16 ++-- .../moneyManage/receiveDetail/utils/staticData.js | 89 +++++++++++----------- 4 files changed, 57 insertions(+), 58 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveFinance.vue b/src/views/moneyManage/receiveDetail/receiveFinance.vue index 4aae861..43afe55 100644 --- a/src/views/moneyManage/receiveDetail/receiveFinance.vue +++ b/src/views/moneyManage/receiveDetail/receiveFinance.vue @@ -339,7 +339,7 @@ - 仅支持.jpg .png格式文件≤ 1 MB + 仅支持.jpg .png格式文件≤ 2 MB
@@ -446,7 +446,7 @@ - 仅支持.jpg .png格式文件≤ 1 MB + 仅支持.jpg .png格式文件≤ 2 MB
diff --git a/src/views/moneyManage/receiveDetail/receiveHead.vue b/src/views/moneyManage/receiveDetail/receiveHead.vue index 77bea24..a1dff3f 100644 --- a/src/views/moneyManage/receiveDetail/receiveHead.vue +++ b/src/views/moneyManage/receiveDetail/receiveHead.vue @@ -301,7 +301,7 @@ - 仅支持.jpg .png格式文件≤ 1 MB + 仅支持.jpg .png格式文件≤ 2 MB
@@ -944,11 +944,11 @@ const submitEditForm = async () => { url: '/cashCollection/complete', data: { orderCode: editFormData.value.orderCode, - handlingCharge: editFormData.value.handlingCharge * 100, // 转为分单位 + handlingCharge: editFormData.value.handlingCharge * 100 || null, // 转为分单位 paymentCurrency: CurrencyForId(editFormData.value.paymentCurrency), paymentAmount: editFormData.value.paymentAmount * 100, // 转为分单位 receivedCurrency: CurrencyForId(editFormData.value.receivedCurrency), - receivedAmount: editFormData.value.receivedAmount * 100, // 转为分单位 + receivedAmount: editFormData.value.receivedAmount * 100 || null, // 转为分单位 receivedTime: editFormData.value.receivedTime, receivedRemark: editFormData.value.receivedRemark || '' } diff --git a/src/views/moneyManage/receiveDetail/receiveManage.vue b/src/views/moneyManage/receiveDetail/receiveManage.vue index ae198b6..43afe55 100644 --- a/src/views/moneyManage/receiveDetail/receiveManage.vue +++ b/src/views/moneyManage/receiveDetail/receiveManage.vue @@ -267,7 +267,6 @@ - @@ -340,7 +339,7 @@ - 仅支持.jpg .png格式文件≤ 1 MB + 仅支持.jpg .png格式文件≤ 2 MB
@@ -370,7 +369,7 @@ - +
@@ -447,7 +446,7 @@ - 仅支持.jpg .png格式文件≤ 1 MB + 仅支持.jpg .png格式文件≤ 2 MB
@@ -457,10 +456,9 @@
- - + @@ -470,7 +468,7 @@ - + @@ -1118,11 +1116,11 @@ const submitEditForm = async () => { url: '/cashCollection/complete', data: { orderCode: editFormData.value.orderCode, - handlingCharge: editFormData.value.handlingCharge * 100, // 转为分单位 + handlingCharge: editFormData.value.handlingCharge * 100 || null, // 转为分单位 paymentCurrency: CurrencyForId(editFormData.value.paymentCurrency), paymentAmount: editFormData.value.paymentAmount * 100, // 转为分单位 receivedCurrency: CurrencyForId(editFormData.value.receivedCurrency), - receivedAmount: editFormData.value.receivedAmount * 100, // 转为分单位 + receivedAmount: editFormData.value.receivedAmount * 100 || null, // 转为分单位 receivedTime: editFormData.value.receivedTime, receivedRemark: editFormData.value.receivedRemark || '' } diff --git a/src/views/moneyManage/receiveDetail/utils/staticData.js b/src/views/moneyManage/receiveDetail/utils/staticData.js index 54fb915..1f53114 100644 --- a/src/views/moneyManage/receiveDetail/utils/staticData.js +++ b/src/views/moneyManage/receiveDetail/utils/staticData.js @@ -21,110 +21,99 @@ export const productList = [ "value": "美股", "label": "美股", "children": [ - { - "value": "美股软件", - "label": "美股软件" - } + { "value": "美股软件", "label": "美股软件" }, + { "value": "美股金卡", "label": "美股金卡" }, + { "value": "美股套餐", "label": "美股套餐" } ] }, { "value": "港股", "label": "港股", "children": [ - { - "value": "港股软件", - "label": "港股软件" - } + { "value": "港股软件", "label": "港股软件" }, + { "value": "港股金卡", "label": "港股金卡" }, + { "value": "港股套餐", "label": "港股套餐" } ] }, { "value": "A股", "label": "A股", "children": [ - { - "value": "A股软件", - "label": "A股软件" - } + { "value": "A股软件", "label": "A股软件" }, + { "value": "A股金卡", "label": "A股金卡" }, + { "value": "A股套餐", "label": "A股套餐" } ] }, { "value": "新加坡股", "label": "新加坡股", "children": [ - { - "value": "新加坡股软件", - "label": "新加坡股软件" - } + { "value": "新加坡股软件", "label": "新加坡股软件" }, + { "value": "新加坡股金卡", "label": "新加坡股金卡" }, + { "value": "新加坡股套餐", "label": "新加坡股套餐" } ] }, { "value": "马股", "label": "马股", "children": [ - { - "value": "马股软件", - "label": "马股软件" - } + { "value": "马股软件", "label": "马股软件" }, + { "value": "马股金卡", "label": "马股金卡" }, + { "value": "马股套餐", "label": "马股套餐" } ] }, { "value": "日本股", "label": "日本股", "children": [ - { - "value": "日本股软件", - "label": "日本股软件" - } + { "value": "日本股软件", "label": "日本股软件" }, + { "value": "日本股金卡", "label": "日本股金卡" }, + { "value": "日本股套餐", "label": "日本股套餐" } ] }, { "value": "泰股", "label": "泰股", "children": [ - { - "value": "泰股软件", - "label": "泰股软件" - } + { "value": "泰股软件", "label": "泰股软件" }, + { "value": "泰股金卡", "label": "泰股金卡" }, + { "value": "泰股套餐", "label": "泰股套餐" } ] }, { "value": "越南股", "label": "越南股", "children": [ - { - "value": "越南股软件", - "label": "越南股软件" - } + { "value": "越南股软件", "label": "越南股软件" }, + { "value": "越南股金卡", "label": "越南股金卡" }, + { "value": "越南股套餐", "label": "越南股套餐" } ] }, { "value": "印尼股", "label": "印尼股", "children": [ - { - "value": "印尼股软件", - "label": "印尼股软件" - } + { "value": "印尼股软件", "label": "印尼股软件" }, + { "value": "印尼股金卡", "label": "印尼股金卡" }, + { "value": "印尼股套餐", "label": "印尼股套餐" } ] }, { "value": "韩国股", "label": "韩国股", "children": [ - { - "value": "韩国股软件", - "label": "韩国股软件" - } + { "value": "韩国股软件", "label": "韩国股软件" }, + { "value": "韩国股金卡", "label": "韩国股金卡" }, + { "value": "韩国股套餐", "label": "韩国股套餐" } ] }, { "value": "台湾股", "label": "台湾股", "children": [ - { - "value": "台湾股软件", - "label": "台湾股软件" - } + { "value": "台湾股软件", "label": "台湾股软件" }, + { "value": "台湾股金卡", "label": "台湾股金卡" }, + { "value": "台湾股套餐", "label": "台湾股套餐" } ] } ] @@ -148,6 +137,10 @@ export const productList = [ { "value": "AI机构活跃度", "label": "AI机构活跃度" + }, + { + "value": "AI机构探测神器", + "label": "AI机构探测神器" } ] }, @@ -174,6 +167,10 @@ export const productList = [ { "value": "超级机构罗盘", "label": "超级机构罗盘" + }, + { + "value": "超级机构探测神器", + "label": "超级机构探测神器" } ] }, @@ -188,6 +185,10 @@ export const productList = [ { "value": "博股会员", "label": "博股会员" + }, + { + "value": "Hc信息费", + "label": "Hc信息费" } ] } From 168a5f0e39ef4c7f9610beb12776c58391960fd3 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Mon, 17 Nov 2025 14:50:50 +0800 Subject: [PATCH 06/16] =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E5=A4=87=E6=B3=A8?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/moneyManage/receiveDetail/receiveFinance.vue | 2 +- src/views/moneyManage/receiveDetail/receiveManage.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveFinance.vue b/src/views/moneyManage/receiveDetail/receiveFinance.vue index 43afe55..1a87d09 100644 --- a/src/views/moneyManage/receiveDetail/receiveFinance.vue +++ b/src/views/moneyManage/receiveDetail/receiveFinance.vue @@ -345,7 +345,7 @@ + maxlength="100" show-word-limit /> + maxlength="100" show-word-limit /> Date: Mon, 17 Nov 2025 15:33:24 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=E6=94=B6=E6=AC=BE=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=87=91=E5=B8=81=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneyManage/receiveDetail/receiveFinance.vue | 19 +++++----- .../moneyManage/receiveDetail/receiveManage.vue | 19 +++++----- .../moneyManage/receiveDetail/receiveService.vue | 44 +++++++++++++++++++--- .../receiveDetail/utils/recriveFormRules.js | 24 ------------ 4 files changed, 56 insertions(+), 50 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveFinance.vue b/src/views/moneyManage/receiveDetail/receiveFinance.vue index 1a87d09..28361f7 100644 --- a/src/views/moneyManage/receiveDetail/receiveFinance.vue +++ b/src/views/moneyManage/receiveDetail/receiveFinance.vue @@ -1244,16 +1244,15 @@ onMounted(async () => { // 初始化加载地区财务订单数据 await getlist(); - // 菜单权限校验(确保地区财务权限) - if (!hasMenuPermission(menuTree.value, 67)) { - ElMessageBox.alert( - '您暂无该页面操作权限,请联系管理员', - '权限提示', - { type: 'error' } - ).then(() => { - window.history.back(); - }); - } + // if (!hasMenuPermission(menuTree.value, 67)) { + // ElMessageBox.alert( + // '您暂无该页面操作权限,请联系管理员', + // '权限提示', + // { type: 'error' } + // ).then(() => { + // window.history.back(); + // }); + // } //背景预加载 const bgImg = new Image(); bgImg.src = '/src/assets/receive-recall.png'; diff --git a/src/views/moneyManage/receiveDetail/receiveManage.vue b/src/views/moneyManage/receiveDetail/receiveManage.vue index 1a87d09..28361f7 100644 --- a/src/views/moneyManage/receiveDetail/receiveManage.vue +++ b/src/views/moneyManage/receiveDetail/receiveManage.vue @@ -1244,16 +1244,15 @@ onMounted(async () => { // 初始化加载地区财务订单数据 await getlist(); - // 菜单权限校验(确保地区财务权限) - if (!hasMenuPermission(menuTree.value, 67)) { - ElMessageBox.alert( - '您暂无该页面操作权限,请联系管理员', - '权限提示', - { type: 'error' } - ).then(() => { - window.history.back(); - }); - } + // if (!hasMenuPermission(menuTree.value, 67)) { + // ElMessageBox.alert( + // '您暂无该页面操作权限,请联系管理员', + // '权限提示', + // { type: 'error' } + // ).then(() => { + // window.history.back(); + // }); + // } //背景预加载 const bgImg = new Image(); bgImg.src = '/src/assets/receive-recall.png'; diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index e315d31..ce0585c 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -212,13 +212,13 @@
永久金币: -
免费金币: -
@@ -589,9 +589,10 @@ const openAddForm = (row) => { if (row?.jwcode) { // 编辑模式 addOrEdit.value = 2 - addFormData.value = { ...row, + addFormData.value = { + ...row, activity: row.activityId - } + } jwcodeSeachMarket() ifGold() } else { @@ -610,11 +611,38 @@ const closeAddForm = () => { isGold.value = false addFormRef.value?.resetFields(); } - +const testGold = () => { + // 转换为数字(处理字符串类型的数字) + + if(addFormData.value.permanentGold == null){ + addFormData.value.permanentGold = 0 + } + if(addFormData.value.freeGold == null){ + addFormData.value.freeGold = 0 + } + const permanentGold = Number(addFormData.value.permanentGold); + const freeNum = Number(addFormData.value.freeGold); + // 正则:仅允许0-999999的正整数(包括0) + const reg = /^[0-9]{1,6}$/; + if (!reg.test(permanentGold) || permanentGold < 0) { + return { valid: false, message: '请检查永久金币格式' }; + } + if (!reg.test(freeNum) || freeNum < 0) { + return { valid: false, message: '请检查免费金币格式' }; + } + if (permanentGold == 0 && freeNum == 0) { + return { valid: false, message: '永久金币或免费金币不能同为0' }; + } + return { valid: true }; +} // 客服新增收款 const handleAddForm = async () => { try { await addFormRef.value.validate(); + if (!testGold().valid) { + ElMessage.error(testGold().message); + return; + } // 处理时间格式 if (addFormData.value.payTime) { addFormData.value.payTime = moment(addFormData.value.payTime).format('YYYY-MM-DD HH:mm:ss') @@ -647,7 +675,11 @@ const handleAddForm = async () => { // 客服编辑收款(撤回后重新提交) const handleEditForm = async () => { try { - await addFormRef.value.validate(); + await addFormRef.value.validate(); + if (!testGold().valid) { + ElMessage.error(testGold().message); + return; + } // 处理时间格式 if (addFormData.value.payTime) { addFormData.value.payTime = moment(addFormData.value.payTime).format('YYYY-MM-DD HH:mm:ss') diff --git a/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js b/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js index 0f87048..23ca657 100644 --- a/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js +++ b/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js @@ -24,30 +24,6 @@ export const addFormRule = { goodNum: [ { required: true, message: '请输入产品数量', trigger: 'blur' }, ], - // 永久金币:纯数字(非必填,可按需调整) - permanentGold: [ - { - validator: (rule, value, callback) => { - if (value && !/^\d+$/.test(value)) { - callback(new Error('请输入纯数字')); - } else { - callback(); - } - }, trigger: 'blur' - } - ], - // 免费金币:纯数字(非必填,可按需调整) - freeGold: [ - { - validator: (rule, value, callback) => { - if (value && !/^\d+$/.test(value)) { - callback(new Error('请输入纯数字')); - } else { - callback(); - } - }, trigger: 'blur' - } - ], // 付款币种:必填 paymentCurrency: [ { required: true, message: '请选择付款币种', trigger: 'change' } From 4fc8a9cadf508ffa01ab502df15f14808b5c45ac Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Mon, 17 Nov 2025 15:52:11 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E9=A9=B3=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneyManage/receiveDetail/receiveService.vue | 53 ++++++++++++++-------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index ce0585c..fc84b2e 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -212,13 +212,15 @@
永久金币: -
免费金币: -
@@ -386,6 +388,16 @@
+ + + +
+ {{ rejectReason }} +
+
+ 确定 +
+
@@ -441,6 +453,16 @@ const reset = () => { getlist() } +const rejectReasonVisible = ref(false) +const rejectReason = ref('') +const closeRejectForm = () => { + rejectReasonVisible.value = false +} +const openRejectReason = (reason) => { + rejectReason.value = reason + rejectReasonVisible.value = true +} + // 时间选择器变更(原代码声明未实现,保留空函数避免报错) const handleDatePickerChange = () => { } // 日期禁用(原代码声明未实现,保留空函数避免报错) @@ -613,11 +635,11 @@ const closeAddForm = () => { } const testGold = () => { // 转换为数字(处理字符串类型的数字) - - if(addFormData.value.permanentGold == null){ + + if (addFormData.value.permanentGold == null) { addFormData.value.permanentGold = 0 } - if(addFormData.value.freeGold == null){ + if (addFormData.value.freeGold == null) { addFormData.value.freeGold = 0 } const permanentGold = Number(addFormData.value.permanentGold); @@ -676,7 +698,7 @@ const handleAddForm = async () => { const handleEditForm = async () => { try { await addFormRef.value.validate(); - if (!testGold().valid) { + if (!testGold().valid) { ElMessage.error(testGold().message); return; } @@ -905,13 +927,6 @@ const submitRefund = async () => { } } -// 查看驳回理由 -const openRejectReason = (reason) => { - ElMessageBox.alert(reason, '驳回理由', { - confirmButtonText: '确认', - customClass: 'reject-reason-box', - }) -} // ===================== 初始化与节流 ===================== // 节流处理(防止重复提交) @@ -1218,14 +1233,14 @@ onMounted(async () => { background-color: #E5EBFE !important; } -// 驳回理由弹窗样式 .reject-reason-box { - --el-message-box-height: 500px; + width: 80%; + padding: 20px; } -.reject-reason-box .el-message-box__content { - max-height: 350px; - overflow-y: auto; - white-space: pre-wrap; +.rejectBtn { + margin-top: 20px; + display: flex; + justify-content: flex-end; } \ No newline at end of file From 768549a19c987b9f26e2f665f22914cdb0eb70de Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Mon, 17 Nov 2025 16:33:32 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E5=8D=95=E4=BD=8D=E7=BB=86=E5=88=862?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/moneyManage/receiveDetail/receiveService.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index fc84b2e..61a92ff 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -551,7 +551,8 @@ const ifGold = () => { addFormData.value.goodNum = 0 } else { isGold.value = false - const selectItems = ["AI机构追踪", "AI机构出击", "AI机构资金", "AI机构活跃度", "超级机构透视", "超级机构伏击", "超级机构猎杀", "超级机构脉搏", "超级机构罗盘", 'HC信息费'] + numUnitList.value = ['个', '年', '月'] + const selectItems = ["AI机构追踪", "AI机构出击", "AI机构资金", "AI机构活跃度", "超级机构透视", "超级机构伏击", "超级机构猎杀", "超级机构脉搏", "超级机构罗盘", 'HC信息费','HC信息费','AI机构探测神器','超级机构探测神器'] if (selectItems.includes(addFormData.value.goodsName)) { addFormData.value.numUnit = '' numUnitList.value = ['年', '月'] From 75f9141e012586c7d6bc5b34d3f74efc1d865566 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Mon, 17 Nov 2025 17:25:06 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E9=80=80=E6=AC=BE=E9=87=91=E5=B8=81?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/moneyManage/receiveDetail/receiveService.vue | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index 61a92ff..4e6fa06 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -390,7 +390,8 @@ - +
{{ rejectReason }}
@@ -551,8 +552,8 @@ const ifGold = () => { addFormData.value.goodNum = 0 } else { isGold.value = false - numUnitList.value = ['个', '年', '月'] - const selectItems = ["AI机构追踪", "AI机构出击", "AI机构资金", "AI机构活跃度", "超级机构透视", "超级机构伏击", "超级机构猎杀", "超级机构脉搏", "超级机构罗盘", 'HC信息费','HC信息费','AI机构探测神器','超级机构探测神器'] + numUnitList.value = ['个', '年', '月'] + const selectItems = ["AI机构追踪", "AI机构出击", "AI机构资金", "AI机构活跃度", "超级机构透视", "超级机构伏击", "超级机构猎杀", "超级机构脉搏", "超级机构罗盘", 'HC信息费', 'HC信息费', 'AI机构探测神器', '超级机构探测神器'] if (selectItems.includes(addFormData.value.goodsName)) { addFormData.value.numUnit = '' numUnitList.value = ['年', '月'] @@ -896,6 +897,11 @@ const submitRefund = async () => { if (refundFormData.value.refundModel == 0) { refundFormData.value.partRefundGold = refundFormData.value.permanentGold, refundFormData.value.partRefundFree = refundFormData.value.freeGold + } else if (refundFormData.value.refundModel == 1) { + if(refundFormData.value.partRefundGold > refundFormData.value.permanentGold || refundFormData.value.partRefundFree > refundFormData.value.freeGold){ + ElMessage.error('退款金额不能大于订单金额') + return + } } const result = await request({ url: '/Money/add', From 9fdbc6ce5e593b0d6b6f0d8f667d2799f5de0a81 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Tue, 18 Nov 2025 10:06:25 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E6=92=A4=E5=9B=9E?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E9=97=AE=E9=A2=98=EF=BC=8C=E9=87=91=E5=B8=81?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneyManage/receiveDetail/receiveService.vue | 45 +++++++++++----------- .../receiveDetail/utils/recriveFormRules.js | 5 +++ .../moneyManage/receiveDetail/utils/staticData.js | 4 +- 3 files changed, 30 insertions(+), 24 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index 4e6fa06..5e54dd3 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -615,7 +615,6 @@ const openAddForm = (row) => { addOrEdit.value = 2 addFormData.value = { ...row, - activity: row.activityId } jwcodeSeachMarket() ifGold() @@ -637,25 +636,26 @@ const closeAddForm = () => { } const testGold = () => { // 转换为数字(处理字符串类型的数字) - - if (addFormData.value.permanentGold == null) { - addFormData.value.permanentGold = 0 - } - if (addFormData.value.freeGold == null) { - addFormData.value.freeGold = 0 - } - const permanentGold = Number(addFormData.value.permanentGold); - const freeNum = Number(addFormData.value.freeGold); - // 正则:仅允许0-999999的正整数(包括0) - const reg = /^[0-9]{1,6}$/; - if (!reg.test(permanentGold) || permanentGold < 0) { - return { valid: false, message: '请检查永久金币格式' }; - } - if (!reg.test(freeNum) || freeNum < 0) { - return { valid: false, message: '请检查免费金币格式' }; - } - if (permanentGold == 0 && freeNum == 0) { - return { valid: false, message: '永久金币或免费金币不能同为0' }; + if (addFormData.value.goodsName == '金币充值') { + if (addFormData.value.permanentGold == null) { + addFormData.value.permanentGold = 0 + } + if (addFormData.value.freeGold == null) { + addFormData.value.freeGold = 0 + } + const permanentGold = Number(addFormData.value.permanentGold); + const freeNum = Number(addFormData.value.freeGold); + // 正则:仅允许0-999999的正整数(包括0) + const reg = /^[0-9]{1,6}$/; + if (!reg.test(permanentGold) || permanentGold < 0) { + return { valid: false, message: '请检查永久金币格式' }; + } + if (!reg.test(freeNum) || freeNum < 0) { + return { valid: false, message: '请检查免费金币格式' }; + } + if (permanentGold == 0 && freeNum == 0) { + return { valid: false, message: '永久金币或免费金币不能同为0' }; + } } return { valid: true }; } @@ -718,7 +718,8 @@ const handleEditForm = async () => { goodNum: addFormData.value.goodNum || 0, paymentCurrency: CurrencyForId(addFormData.value.paymentCurrency) || '', receivedMarket: MarketNameForId(addFormData.value.receivedMarket) || '', - paymentAmount: (addFormData.value.paymentAmount) * 100 + paymentAmount: (addFormData.value.paymentAmount) * 100, + activity: addFormData.value.activityId, } }) if (result.code == 200) { @@ -898,7 +899,7 @@ const submitRefund = async () => { refundFormData.value.partRefundGold = refundFormData.value.permanentGold, refundFormData.value.partRefundFree = refundFormData.value.freeGold } else if (refundFormData.value.refundModel == 1) { - if(refundFormData.value.partRefundGold > refundFormData.value.permanentGold || refundFormData.value.partRefundFree > refundFormData.value.freeGold){ + if (refundFormData.value.partRefundGold > refundFormData.value.permanentGold || refundFormData.value.partRefundFree > refundFormData.value.freeGold) { ElMessage.error('退款金额不能大于订单金额') return } diff --git a/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js b/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js index 23ca657..9e8f4b1 100644 --- a/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js +++ b/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js @@ -23,6 +23,11 @@ export const addFormRule = { // 产品数量:0-100纯数字 goodNum: [ { required: true, message: '请输入产品数量', trigger: 'blur' }, + { + pattern: /^[1-9]\d*$/, + message: '请输入正整数', + trigger: 'blur' + } ], // 付款币种:必填 paymentCurrency: [ diff --git a/src/views/moneyManage/receiveDetail/utils/staticData.js b/src/views/moneyManage/receiveDetail/utils/staticData.js index 1f53114..0f2c098 100644 --- a/src/views/moneyManage/receiveDetail/utils/staticData.js +++ b/src/views/moneyManage/receiveDetail/utils/staticData.js @@ -187,8 +187,8 @@ export const productList = [ "label": "博股会员" }, { - "value": "Hc信息费", - "label": "Hc信息费" + "value": "HC信息费", + "label": "HC信息费" } ] } From 0fb0e7f41f6f6231b4dcb510e6178936618d4eb3 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Tue, 18 Nov 2025 10:34:09 +0800 Subject: [PATCH 12/16] =?UTF-8?q?=E4=BA=A7=E5=93=81=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneyManage/receiveDetail/receiveService.vue | 26 +++++++++++++++++++++- .../receiveDetail/utils/recriveFormRules.js | 5 ----- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index 5e54dd3..958212b 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -200,7 +200,7 @@ - +
@@ -667,6 +667,18 @@ const handleAddForm = async () => { ElMessage.error(testGold().message); return; } + //单独校验产品数量 + if (!isGold.value) { + if (!addFormData.value.goodNum) { + ElMessage.error('请输入产品数量'); + return; + } + const positiveIntReg = /^[1-9]\d*$/; + if (!positiveIntReg.test(addFormData.value.goodNum)) { + ElMessage.error('产品数量必须为正整数'); + return; + } + } // 处理时间格式 if (addFormData.value.payTime) { addFormData.value.payTime = moment(addFormData.value.payTime).format('YYYY-MM-DD HH:mm:ss') @@ -704,6 +716,18 @@ const handleEditForm = async () => { ElMessage.error(testGold().message); return; } + //单独校验产品数量 + if (!isGold.value) { + if (!addFormData.value.goodNum) { + ElMessage.error('请输入产品数量'); + return; + } + const positiveIntReg = /^[1-9]\d*$/; + if (!positiveIntReg.test(addFormData.value.goodNum)) { + ElMessage.error('产品数量必须为正整数'); + return; + } + } // 处理时间格式 if (addFormData.value.payTime) { addFormData.value.payTime = moment(addFormData.value.payTime).format('YYYY-MM-DD HH:mm:ss') diff --git a/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js b/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js index 9e8f4b1..23ca657 100644 --- a/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js +++ b/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js @@ -23,11 +23,6 @@ export const addFormRule = { // 产品数量:0-100纯数字 goodNum: [ { required: true, message: '请输入产品数量', trigger: 'blur' }, - { - pattern: /^[1-9]\d*$/, - message: '请输入正整数', - trigger: 'blur' - } ], // 付款币种:必填 paymentCurrency: [ From 5d0fa3c16a8db61ffb7dcfc3e8b5743bfcff750f Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Tue, 18 Nov 2025 11:06:16 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E9=87=8D=E5=A4=8D=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/moneyManage/receiveDetail/receiveService.vue | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index 958212b..256cc30 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -267,9 +267,9 @@ 取消 确定 + type="primary" @click="throttledhandleAddForm" :disabled="ifAddDone">确定 编辑 + type="primary" @click="throttledhandleEditForm" :disabled="ifReAddDone">编辑 @@ -428,6 +428,10 @@ const total = ref(0) // 总条数 const pageInfo = ref({ pageSize: 10, pageNum: 1 }) // 分页信息 const numUnitList = ref(['年', '月']) +//防止重复点击状态管理 +const ifAddDone = ref(false) +const ifReAddDone = ref(false) + // 角色标识:固定为客服(删除财务、总部财务、超级管理员标识) const kefu = ref(true) const caiwu = ref(false) @@ -683,6 +687,7 @@ const handleAddForm = async () => { if (addFormData.value.payTime) { addFormData.value.payTime = moment(addFormData.value.payTime).format('YYYY-MM-DD HH:mm:ss') } + ifAddDone.value = true const result = await request({ url: '/cashCollection/add', data: { @@ -702,9 +707,11 @@ const handleAddForm = async () => { getlist() closeAddForm() } + ifAddDone.value = false } catch (error) { console.log('新增报错:', error); ElMessage.error('请完善表单信息后提交'); + ifAddDone.value = false } } @@ -732,6 +739,7 @@ const handleEditForm = async () => { if (addFormData.value.payTime) { addFormData.value.payTime = moment(addFormData.value.payTime).format('YYYY-MM-DD HH:mm:ss') } + ifReAddDone.value = true const result = await request({ url: '/cashCollection/reSubmit', data: { @@ -751,8 +759,10 @@ const handleEditForm = async () => { getlist() closeAddForm() } + ifReAddDone.value = false } catch (error) { console.log(error); + ifReAddDone.value = false } } From 51aa3358ec703f6a88b2779ba0a854e51feacf62 Mon Sep 17 00:00:00 2001 From: zhangrenyuan <18990852002@163.com> Date: Wed, 19 Nov 2025 10:35:53 +0800 Subject: [PATCH 14/16] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E6=8F=8F=E8=BF=B0pushr?= =?UTF-8?q?eplace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/dialogs/changePassword.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/dialogs/changePassword.vue b/src/components/dialogs/changePassword.vue index 729fe75..d0577e0 100644 --- a/src/components/dialogs/changePassword.vue +++ b/src/components/dialogs/changePassword.vue @@ -114,7 +114,7 @@ const changePassword = async function () { // 延迟跳转,确保用户看到成功消息 setTimeout(() => { - router.push('/PasswordSuccess'); + router.push('/PasswordSuccess'); // push跳转,留下历史记录,replace跳转,不留下历史记录 }, 1000); }else if (result.code === 0){ ElMessage.error('原密码错误,请重新输入') From 38aa6857c72b1ce1d6f88edd46e750231c01dbb0 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Wed, 19 Nov 2025 13:18:46 +0800 Subject: [PATCH 15/16] =?UTF-8?q?=E6=94=B6=E6=AC=BE=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=EF=BC=8C=E9=80=80=E6=AC=BE=E5=8F=96=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneyManage/receiveDetail/receiveService.vue | 2 +- .../receiveDetail/utils/recriveFormRules.js | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index 256cc30..7ecd4f5 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -382,7 +382,7 @@
ps:请在退款理由表明用户的退款需求。
- 重置 + 取消 提交
diff --git a/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js b/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js index 23ca657..27152fa 100644 --- a/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js +++ b/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js @@ -33,16 +33,22 @@ export const addFormRule = { { required: true, message: '请输入付款金额', trigger: 'blur' }, { validator: (rule, value, callback) => { - if (!/^\d+$/.test(value)) { - callback(new Error('请输入纯数字')); - } else if (value.length >= 8) { - callback(new Error('付款金额不能超过7位数字')); - } else if (Number(value) === 0) { - callback(new Error('付款金额不能为0')); + // 匹配非负数字(支持整数或最多2位小数) + const reg = /^\d+(\.\d{1,2})?$/; + if (!reg.test(value)) { + callback(new Error('请输入有效的金额(最多2位小数)')); } else { - callback(); + const num = Number(value); + if (num === 0) { + callback(new Error('付款金额不能为0')); + } else if (num > 9999999) { // 限制最大值为9999999(7位整数) + callback(new Error('付款金额不能超过9999999')); + } else { + callback(); + } } - }, trigger: 'blur' + }, + trigger: 'blur' } ], // 支付方式:必填 From 310f43024e23ab5ef3ff06f954af9d3136d85a80 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Wed, 19 Nov 2025 13:33:58 +0800 Subject: [PATCH 16/16] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/moneyManage/receiveDetail/receiveService.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index 256cc30..4602370 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -751,7 +751,6 @@ const handleEditForm = async () => { paymentCurrency: CurrencyForId(addFormData.value.paymentCurrency) || '', receivedMarket: MarketNameForId(addFormData.value.receivedMarket) || '', paymentAmount: (addFormData.value.paymentAmount) * 100, - activity: addFormData.value.activityId, } }) if (result.code == 200) {