From b89e4c85fe786778c420d076e3381deab9ed1573 Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 7 Jul 2025 10:50:59 +0800 Subject: [PATCH 1/9] =?UTF-8?q?refactor(consume):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=B6=88=E8=B4=B9=E9=A1=B5=E9=9D=A2=E7=9A=84=E9=87=91=E5=B8=81?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E6=A0=A1=E9=AA=8C=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/consume/addCoinConsume.vue | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/views/consume/addCoinConsume.vue b/src/views/consume/addCoinConsume.vue index c07cbf4..e1b4611 100644 --- a/src/views/consume/addCoinConsume.vue +++ b/src/views/consume/addCoinConsume.vue @@ -69,8 +69,8 @@ const rules = reactive({ sumGold: [ {required: true, message: "消费金币总数不能为空", trigger: "blur"}, { - pattern: /^\d+(\.\d{1})?$/, - message: "只能输入最多一个小数点的数字", + pattern: /^\d+(\.\d+)?$/, + message: "请检查输入的数字格式是否正确", trigger: "blur" } ], @@ -109,13 +109,16 @@ function validateInput() { addConsume.value.sumGold = null; return false; } - // 验证金币数值 - if (user.value.jwcode && (isNaN(sumGold) || sumGold <= 0)) { - ElMessage.warning("消费金币总数必须是大于0的数字"); - // 将sumGold设置为null - addConsume.value.sumGold = null; - return false; - } + + /* 这块逻辑加到规则里面 + // 验证金币数值 + if (user.value.jwcode && (isNaN(sumGold) || sumGold <= 0)) { + ElMessage.warning("消费金币总数必须是大于0的数字"); + // 将sumGold设置为null + addConsume.value.sumGold = null; + return false; + } + */ // 验证金币总和 From 791883fc742638fdbfd93f5ee4b375926841bd62 Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 7 Jul 2025 10:54:32 +0800 Subject: [PATCH 2/9] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E9=87=91?= =?UTF-8?q?=E5=B8=81=E6=B6=88=E8=B4=B9=E6=A0=A1=E9=AA=8C=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/consume/addCoinConsume.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/consume/addCoinConsume.vue b/src/views/consume/addCoinConsume.vue index e1b4611..17ce5fe 100644 --- a/src/views/consume/addCoinConsume.vue +++ b/src/views/consume/addCoinConsume.vue @@ -70,7 +70,7 @@ const rules = reactive({ {required: true, message: "消费金币总数不能为空", trigger: "blur"}, { pattern: /^\d+(\.\d+)?$/, - message: "请检查输入的数字格式是否正确", + message: "存在负数或数字格式不正确,请输入正数", trigger: "blur" } ], From 7e7b60f97e57f65ea22efa43322f4418a06d6c12 Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 7 Jul 2025 11:28:34 +0800 Subject: [PATCH 3/9] =?UTF-8?q?fix(consume):=20=E4=BC=98=E5=8C=96=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重置用户信息:当用户不存在时,清空用户信息并重置表单 --- src/views/consume/addCoinConsume.vue | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/views/consume/addCoinConsume.vue b/src/views/consume/addCoinConsume.vue index 17ce5fe..be945f8 100644 --- a/src/views/consume/addCoinConsume.vue +++ b/src/views/consume/addCoinConsume.vue @@ -107,6 +107,7 @@ function validateInput() { if (user.value.jwcode == null) { ElMessage.warning("请先查询用户信息"); addConsume.value.sumGold = null; + user.value = {}; return false; } @@ -288,7 +289,7 @@ const getUser = async function (jwcode) { // 发送POST请求 const result = await request({ // url: "user/selectUser", - url: "/user/selectUser", // todo 服务器改回无ip的 + url: "/user/selectUser", data: { // 只需要传精网号 jwcode: addConsume.value.jwcode, @@ -296,7 +297,7 @@ const getUser = async function (jwcode) { }); console.log("请求成功", result); - if (result.code === 200) { + if (result.code === 200 && result.data !== null) { user.value = result.data; user.value.nowPermanentGold = result.data.nowPermanentGold / 100; user.value.nowFreeGold = result.data.nowFreeGold / 100; @@ -309,11 +310,13 @@ const getUser = async function (jwcode) { user.value.historyPermanentGold = (result.data.historyPermanentGold) / 100; user.value.historyFreeGold = (result.data.historyFreeGold) / 100; user.value.historyTaskGold = (result.data.historyTaskGold) / 100; + } else if (result.data == null){ + ElMessage.warning("用户不存在"); + // 重置表单 + resetForm(); } - if (result.code === 0) { + else if (result.code === 0 ) { ElMessage.warning("请检查查询参数") - } else if (result.data === null) { - ElMessage.error("用户不存在"); } else { console.log("用户信息", user.value); ElMessage.success(result.msg); From 61bac52b984b919c56f7e1401fde7d35ebb3b56a Mon Sep 17 00:00:00 2001 From: zry <18990852002@163.com> Date: Mon, 7 Jul 2025 11:43:06 +0800 Subject: [PATCH 4/9] number valid rules! --- src/views/refund/addCoinRefund.vue | 76 +++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 25 deletions(-) diff --git a/src/views/refund/addCoinRefund.vue b/src/views/refund/addCoinRefund.vue index c7e398c..586c8bc 100644 --- a/src/views/refund/addCoinRefund.vue +++ b/src/views/refund/addCoinRefund.vue @@ -322,35 +322,61 @@ const handleSelectionChange = (selectedOption) => { } console.log('选择的商品', selectedOption); } -// 验证输入的金币数量是否超过商品花费的金币数量 -const validateGoldInput = (type, value) => { +// 统一的输入处理函数 +const handleGoldInput = (type, value) => { + // 1. 过滤非法字符(只允许数字和小数点) + let filtered = value.replace(/[^\d.]/g, ''); + + // 2. 防止多个小数点 + const dotCount = (filtered.match(/\./g) || []).length; + if (dotCount > 1) { + // 保留第一个小数点,移除后续的小数点 + const parts = filtered.split('.'); + filtered = parts[0] + '.' + parts.slice(1).join(''); + } + + // 3. 限制小数点后两位 + if (filtered.includes('.')) { + const [integer, decimal] = filtered.split('.'); + if (decimal.length > 2) { + filtered = `${integer}.${decimal.slice(0, 2)}`; + } + } + + // 4. 检查是否以小数点开头,如果是,在前面添加0 + if (filtered.startsWith('.')) { + filtered = '0' + filtered; + } + + // 5. 更新值 + addRefund.value[type] = filtered; + + // 6. 验证逻辑(这里直接应用修正后的值) const maxValue = selectedGoodsGold.value[type]; - const inputValue = Number(value); + const inputValue = Number(filtered || 0); + if (isNaN(inputValue)) { - return 0; + return; } + if (inputValue > maxValue) { - // 当输入金额大于商品金额时,显示提示信息 + // 修正为最大值并设置回输入框 + const correctedValue = maxValue.toFixed(2); + addRefund.value[type] = correctedValue; ElMessage.warning('所填金额大于该类金币余额'); - return maxValue; } - return Math.min(inputValue, maxValue); -} - -// 处理永久金币输入 -const handlePermanentGoldInput = (value) => { - addRefund.value.permanentGold = validateGoldInput('permanentGold', value); -} - -// 处理免费金币输入 -const handleFreeGoldInput = (value) => { - addRefund.value.freeGold = validateGoldInput('freeGold', value); + + if (inputValue < 0) { + // 修正为0并设置回输入框 + addRefund.value[type] = '0'; + ElMessage.warning('不能输入负数'); + } } -// 处理任务金币输入 -const handleTaskGoldInput = (value) => { - addRefund.value.taskGold = validateGoldInput('taskGold', value); -} +// 使用示例 +const handlePermanentGoldInput = (value) => handleGoldInput('permanentGold', value); +const handleFreeGoldInput = (value) => handleGoldInput('freeGold', value); +const handleTaskGoldInput = (value) => handleGoldInput('taskGold', value); // 计算总金币 const calculatedRechargeGoods = computed(() => { @@ -442,9 +468,9 @@ onMounted(async function () { style="width: 100px" :disabled="addRe.typeR === '0' ? true : false" @input="handlePermanentGoldInput($event)" - type="number" + > - +

@@ -467,7 +493,7 @@ onMounted(async function () { style="float: left; width: 100px" :disabled="addRe.typeR === '0' ? true : false" @input="handleTaskGoldInput($event)" - type="number" + />

From 06ade4fc8265e554bde0b40c1abd8d725c6bdf4a Mon Sep 17 00:00:00 2001 From: zry <18990852002@163.com> Date: Mon, 7 Jul 2025 11:49:23 +0800 Subject: [PATCH 5/9] total clienCountDetail's modified --- src/views/usergold/clientCountDetail.vue | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/views/usergold/clientCountDetail.vue b/src/views/usergold/clientCountDetail.vue index 8be6c0a..163f6b7 100644 --- a/src/views/usergold/clientCountDetail.vue +++ b/src/views/usergold/clientCountDetail.vue @@ -191,16 +191,17 @@ const get = async function (val) { //由于免费金币的计算方式是6月免费+12月免费,所以需要单独处理,以及计算总的免费金币和总的金币数放在一块 - const totalResult = await API({ + const totalResult = await API({ url: '/goldDetail/getTotal', method: 'post', data: { - jwcode: goldDetail.value.jwcode || '', + goldDetail:{...goldDetail.value}, + /* jwcode: goldDetail.value.jwcode || '', payPlatform: goldDetail.value.payPlatform || '', type: goldDetail.value.type || '', market: goldDetail.value.market || '', startTime: goldDetail.value.startTime || '', - endTime: goldDetail.value.endTime || '' + endTime: goldDetail.value.endTime || ''*/ } }) From 2b9daaf17830a51ffee45969f15786a184f8e19d Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 7 Jul 2025 11:50:58 +0800 Subject: [PATCH 6/9] =?UTF-8?q?refactor(rechargeAudit):=20-=20=E5=B0=86"?= =?UTF-8?q?=E9=80=80=E6=AC=BE=E6=80=BB=E9=87=91=E5=B8=81=E6=95=B0"?= =?UTF-8?q?=E6=94=B9=E4=B8=BA"=E6=80=BB=E9=87=91=E5=B8=81=E6=95=B0"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/audit/rechargeAudit.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/audit/rechargeAudit.vue b/src/views/audit/rechargeAudit.vue index fc702b0..71a7ee6 100644 --- a/src/views/audit/rechargeAudit.vue +++ b/src/views/audit/rechargeAudit.vue @@ -61,7 +61,7 @@
总条数:{{ stats.totalNum }}条     - 退款总金币数:{{ (stats.permanentGolds + stats.freeGolds + stats.taskGolds).toFixed(2) }}金币     + 总金币数:{{ (stats.permanentGolds + stats.freeGolds + stats.taskGolds).toFixed(2) }}金币     永久金币:{{ stats.permanentGolds.toFixed(2) }}金币     免费金币:{{ stats.freeGolds.toFixed(2) }}金币     From 69eb3949ba27c09e3955595ea591af08336f2753 Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 7 Jul 2025 13:19:53 +0800 Subject: [PATCH 7/9] =?UTF-8?q?refactor(audit):=20=E5=9C=A8=E5=85=85?= =?UTF-8?q?=E5=80=BC=E5=92=8C=E9=80=80=E6=AC=BE=E5=AE=A1=E6=A0=B8=E4=B8=AD?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A9=B3=E5=9B=9E=E7=90=86=E7=94=B1=E5=BF=85?= =?UTF-8?q?=E5=A1=AB=E9=A1=B9=20=E7=AC=A6=E5=90=88=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/audit/rechargeAudit.vue | 2 +- src/views/audit/refundAudit.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/audit/rechargeAudit.vue b/src/views/audit/rechargeAudit.vue index 71a7ee6..c9f8d37 100644 --- a/src/views/audit/rechargeAudit.vue +++ b/src/views/audit/rechargeAudit.vue @@ -153,7 +153,7 @@ - + diff --git a/src/views/audit/refundAudit.vue b/src/views/audit/refundAudit.vue index ef3ca51..16ed0b1 100644 --- a/src/views/audit/refundAudit.vue +++ b/src/views/audit/refundAudit.vue @@ -136,7 +136,7 @@ - + From dea620c34b47c1e4fe64f9321462d8fcc62ace16 Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 7 Jul 2025 14:17:17 +0800 Subject: [PATCH 8/9] =?UTF-8?q?refactor:=20=E6=8D=A2=E4=BA=86https?= =?UTF-8?q?=E7=9A=84=E6=8E=A5=E5=8F=A3=20=E6=94=B9=E5=90=8D=20=E5=AB=A1?= =?UTF-8?q?=E7=9B=BE=E7=AE=A1=E7=90=86=E7=B3=BB=E7=BB=9F=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC=20v1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 4 ++-- src/views/consume/addCoinConsume.vue | 5 +++-- src/views/login.vue | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index b5a317e..fd4aaee 100644 --- a/index.html +++ b/index.html @@ -3,8 +3,8 @@ - - 财务金币管理系统 + + 嫡盾管理系统 v1.0
diff --git a/src/views/consume/addCoinConsume.vue b/src/views/consume/addCoinConsume.vue index be945f8..d03ccd2 100644 --- a/src/views/consume/addCoinConsume.vue +++ b/src/views/consume/addCoinConsume.vue @@ -332,8 +332,9 @@ const getGoods = async function () { try { // 发送POST请求 const result = await request({ - // url: "/product", // todo 后续换3楼的 2025年6月27日10:38:26 解决 - url: "http://39.101.133.168:8828/live_mall/api/product/all", + // url: "/product", // + // url: "http://39.101.133.168:8828/live_mall/api/product/all", + url: "https://api.homilychart.com/live_mall", }); // 将响应结果存储到响应式数据中 console.log("请求成功", result); diff --git a/src/views/login.vue b/src/views/login.vue index e0a944f..7e10e20 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -63,7 +63,7 @@ onMounted(() => { -

金币系统登录

+

嫡盾管理系统登录

From 5da3a6df1e89123e5bd122fe5589f0de92e3452c Mon Sep 17 00:00:00 2001 From: lihui Date: Mon, 7 Jul 2025 14:20:52 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E5=88=A0=E4=B8=80=E4=B8=8B=20title=20?= =?UTF-8?q?=E7=9A=84=20v1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index fd4aaee..9fe99cd 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - 嫡盾管理系统 v1.0 + 嫡盾管理系统