From 57ab4cdf37a474d1a776e901626f12c18556794a Mon Sep 17 00:00:00 2001 From: zry <18990852002@163.com> Date: Fri, 11 Jul 2025 10:25:14 +0800 Subject: [PATCH 01/21] detail optimization --- src/views/recharge/addCoinRecharge.vue | 37 ++++++++++++++++++++++++++-------- src/views/refund/addCoinRefund.vue | 34 ++++++++++++++++++++++++------- 2 files changed, 56 insertions(+), 15 deletions(-) diff --git a/src/views/recharge/addCoinRecharge.vue b/src/views/recharge/addCoinRecharge.vue index 5598790..8ebe3a6 100644 --- a/src/views/recharge/addCoinRecharge.vue +++ b/src/views/recharge/addCoinRecharge.vue @@ -132,6 +132,19 @@ const add = async function () { const addBefore = () => { Ref.value.validate(async (valid) => { if (valid) { + + // 强制查询用户是否存在 + try { + await getUser(recharge.value.jwcode); + if (!user.value.jwcode) { + ElMessage.error('请先验证有效的精网号'); + return; + } + } catch (error) { + ElMessage.error('精网号验证失败'); + return; + } + if (recharge.value.rateName == null || recharge.value.rateName == '' || recharge.value.rateName == undefined) { ElMessage({ type: 'error', @@ -173,9 +186,20 @@ const addBefore = () => { // 开始时间改变时,重新验证结束时间 const Ref = ref(null) +const validateJwCode = (rule, value, callback) => { + if (!value) { + callback(new Error('精网号不能为空')); + return; + } + if (/[^0-9]/.test(value)) { + callback(new Error('精网号只能包含数字')); + return; + } + callback(); +}; const rules = reactive({ - jwcode: [{ required: true, message: '请输入精网号', trigger: 'blur' }], + jwcode: [{ required: true, validator: validateJwCode, trigger: 'blur' }], activity: [{ required: true, message: '请选择活动名称', trigger: 'blur' }], permanentGold: [ { required: true, message: '请输入永久金币数', trigger: 'blur' }, @@ -307,30 +331,27 @@ const getUser = async function (jwcode) { trimJwCode(); try { - // 发送POST请求 + const result = await API({ url: '/user/selectUser', data: { jwcode: recharge.value.jwcode } }) - console.log('请求成功', result) if (result.code === 0) { ElMessage.error(result.msg); } else if (result.data === null) { ElMessage.error("用户不存在"); - recharge.value.jwcode = '' } else { user.value = result.data; console.log("用户信息", user.value); - ElMessage.success(result.msg); + ElMessage.success("查询成功"); } } catch (error) { console.log("请求失败", error); ElMessage.error("精网号错误"); - recharge.value.jwcode = '' } } @@ -525,10 +546,10 @@ onMounted(() => { class="add-form" > - + 查询 { Ref.value.validate(async (valid) => { if (valid) { + + try { + await getUser(refund.value.jwcode); + if (!user.value.jwcode) { + ElMessage.error('请先验证有效的精网号'); + return; + } + } catch (error) { + ElMessage.error('精网号验证失败'); + return; + } + ElMessageBox.confirm('确认添加?') .then(() => { add() @@ -128,9 +140,19 @@ const addBefore = () => { // 开始时间改变时,重新验证结束时间 const Ref = ref(null) const startChange = (val) => {} - +const validateJwCode = (rule, value, callback) => { + if (!value) { + callback(new Error('精网号不能为空')); + return; + } + if (/[^0-9]/.test(value)) { + callback(new Error('精网号只能包含数字')); + return; + } + callback(); +}; const rules = reactive({ - jwcode: [{ required: true, message: '请输入精网号', trigger: 'blur' }], + jwcode: [{ required: true, validator:validateJwCode, trigger: 'blur' }], refundType: [{ required: true, message: '请选择退款类型', trigger: 'blur' }], goodsName: [{ required: true, message: '请选择退款商品', trigger: 'blur' }], taskGold: [{ required: true, message: '请输入任务金币', trigger: 'blur' }], @@ -192,7 +214,6 @@ const getUser = async function (jwcode) { ElMessage.error(result.msg); } else if (result.data === null) { ElMessage.error("用户不存在"); - addRefund.value.jwcode = ''; // 精网号清空 } else { // 对传过来的金币数除以 100 const processedData = { @@ -209,8 +230,7 @@ const getUser = async function (jwcode) { } } catch (error) { console.log("请求失败", error); - ElMessage.error("查询失败,请检查精网号是否正确"); - addRefund.value.jwcode = ''; // 精网号清空 + ElMessage.error("精网号错误"); } } @@ -418,11 +438,11 @@ onMounted(async function () { v-model="addRefund.jwcode" style="width: 220px" @change="getGoods(addRefund.jwcode)" - @blur="getUser(addRefund.jwcode)" + /> 查询 From d32165a337902e372cc286d501c5b3c3f6ebd3eb Mon Sep 17 00:00:00 2001 From: lihui Date: Fri, 11 Jul 2025 10:29:32 +0800 Subject: [PATCH 02/21] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E5=BC=B9=E7=AA=97=EF=BC=8C=E5=B7=A5=E4=BD=9C=E5=8F=B0?= =?UTF-8?q?=E5=88=B7=E6=96=B0=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=B7=B3=E8=BD=AC=E9=A1=B5=E9=9D=A2=EF=BC=88?= =?UTF-8?q?=E9=83=BD=E7=BC=BA=E6=8E=A5=E5=8F=A3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/PasswordSuccess.vue | 84 ++++++++++ src/components/changePassword.vue | 303 +++++++++++++++++++++++++++++++++++++ src/router/index.js | 2 + src/views/home.vue | 35 +++-- src/views/workspace/index.vue | 159 +++++++++++-------- 5 files changed, 515 insertions(+), 68 deletions(-) create mode 100644 src/components/PasswordSuccess.vue create mode 100644 src/components/changePassword.vue diff --git a/src/components/PasswordSuccess.vue b/src/components/PasswordSuccess.vue new file mode 100644 index 0000000..f7793af --- /dev/null +++ b/src/components/PasswordSuccess.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/src/components/changePassword.vue b/src/components/changePassword.vue new file mode 100644 index 0000000..a339d99 --- /dev/null +++ b/src/components/changePassword.vue @@ -0,0 +1,303 @@ + + + + + diff --git a/src/router/index.js b/src/router/index.js index 8f1d852..a0ef426 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -71,6 +71,8 @@ const router = createRouter({ { path: '/noPermission', name: "noPermission", component: () => import("../views/noPermissionPage.vue") } ] }, + // 跳转页面 + { path: '/PasswordSuccess', name: "PasswordSuccess.vue", component: () => import("../components/PasswordSuccess.vue") }, ] }); diff --git a/src/views/home.vue b/src/views/home.vue index c543fbf..3fb08ea 100644 --- a/src/views/home.vue +++ b/src/views/home.vue @@ -1,16 +1,14 @@ + + + + + + + diff --git a/src/views/workspace/index.vue b/src/views/workspace/index.vue index 4c9f1c6..11a08b9 100644 --- a/src/views/workspace/index.vue +++ b/src/views/workspace/index.vue @@ -1,7 +1,24 @@ diff --git a/src/views/workspace/index.vue b/src/views/workspace/index.vue index 4c9f1c6..802d044 100644 --- a/src/views/workspace/index.vue +++ b/src/views/workspace/index.vue @@ -1,7 +1,15 @@ - 日环比:{{ sumDaily }}%     + 日环比:{{ sumDaily.toFixed(2) }}%     - + diff --git a/src/views/refund/coinRefundDetail.vue b/src/views/refund/coinRefundDetail.vue index 9459a5a..ebdc0bf 100644 --- a/src/views/refund/coinRefundDetail.vue +++ b/src/views/refund/coinRefundDetail.vue @@ -512,7 +512,7 @@ const handleCurrentChange = function (val) { - + From 3b75028a9c9bf7ad4f9732584b541d637e3b9c18 Mon Sep 17 00:00:00 2001 From: zry <18990852002@163.com> Date: Tue, 15 Jul 2025 11:28:37 +0800 Subject: [PATCH 15/21] secondary push of the password --- src/components/changePassword.vue | 25 ++++++++----------------- src/router/index.js | 20 +++++++++++++------- src/views/recharge/addCoinRecharge.vue | 4 ++-- 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/src/components/changePassword.vue b/src/components/changePassword.vue index 75ebb68..1e610ce 100644 --- a/src/components/changePassword.vue +++ b/src/components/changePassword.vue @@ -177,24 +177,15 @@ const changePassword = async function () { const result = await API({url: '/admin/password', data: params}) console.log('@@@@@@@@@@@修改密码结果:', result) - if(result.code === 200){ - // 显示成功弹窗 - console.log('AAA') - router.replace('/PasswordSuccess') - .then(() => { - console.log('路由跳转成功'); - }) - .catch((error) => { - console.error('路由跳转失败:', error); - ElMessage.error('跳转失败,请重试'); - }); - ElMessage.success('修改密码成功') - // 重置表单字段 - resetFields() - console.log('BBB') + if (result.code === 200) { + // 使用命名路由跳转更可靠 + await router.push({ name: 'PasswordSuccess' }); - console.log('CCC') - return result + // 或者使用路径跳转(确保大小写完全匹配) + // await router.push('/PasswordSuccess'); + + ElMessage.success('修改密码成功'); + resetFields(); }else if(result.code === 400){ // 显示失败弹窗 console.log('修改密码失败') diff --git a/src/router/index.js b/src/router/index.js index d167a13..69191b2 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -81,11 +81,17 @@ const router = createRouter({ }); router.beforeEach((to, from, next) => { - const token = localStorage.getItem("token"); - const machineId = localStorage.getItem("machineId"); - if (to.name != "login" && !token) { - next('/login?machineId=' + machineId); - } - next(); -}) + const token = localStorage.getItem("token"); + const machineId = localStorage.getItem("machineId"); + + // 允许无token访问的路由 + const publicRoutes = ['Login', 'PasswordSuccess']; + + if (!publicRoutes.includes(to.name) && !token) { + next(`/login?machineId=${machineId}`); + return; + } + + next(); +}); export default router; diff --git a/src/views/recharge/addCoinRecharge.vue b/src/views/recharge/addCoinRecharge.vue index 620b0ab..cbe4400 100644 --- a/src/views/recharge/addCoinRecharge.vue +++ b/src/views/recharge/addCoinRecharge.vue @@ -501,7 +501,7 @@ const payModel = [ function handleActivityChange(value) { // 在这里执行你的逻辑,例如获取选中的值 console.log('选中的值:', value) - getActivityById(value) + // getActivityById(value) console.log('看看', recharge.value) } @@ -526,7 +526,7 @@ const deleteRecharge = function () { onMounted(async function () { await getAdminData() // await getCurrency() - await getActivity()// 现在的活动就是文字输入框,不需要请求接口,具体等后续需求 + // await getActivity()// 现在的活动就是文字输入框,不需要请求接口,具体等后续需求 }) onMounted(() => { From aac55ce917fa0a604f66483d50cb898869314540 Mon Sep 17 00:00:00 2001 From: lihui Date: Tue, 15 Jul 2025 11:59:26 +0800 Subject: [PATCH 16/21] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E5=AF=86=E7=A0=81=E9=87=8D=E7=BD=AE=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20=E5=8E=86=E5=8F=B2=E9=87=91=E5=B8=81=E6=82=AC?= =?UTF-8?q?=E5=81=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/permissions/permission.vue | 153 ++++++++++++++++++++++-------- src/views/usergold/clientCountBalance.vue | 91 ++++++++++-------- 2 files changed, 165 insertions(+), 79 deletions(-) diff --git a/src/views/permissions/permission.vue b/src/views/permissions/permission.vue index 6fe2a63..8043bd7 100644 --- a/src/views/permissions/permission.vue +++ b/src/views/permissions/permission.vue @@ -1,10 +1,7 @@