From c2244f50b1957a59580b68cc7559622fcf5bf061 Mon Sep 17 00:00:00 2001 From: 2910410219 <2910410219@qq.com> Date: Fri, 28 Aug 2026 15:28:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=A2=9E=E5=8A=A0=E5=85=85=E5=80=BC=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=B8=8E=E9=92=B1=E5=8C=85=E6=B5=81=E6=B0=B4=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 操作列新增"充值""流水信息"按钮,权限与修改一致(isOperation 控制) - 新增充值弹窗 rechargeUser.vue:展示账户名称(只读),金额单位元(校验大于0、最多两位小数),提交 userId/userName/amount/orderNo/description - 新增流水弹窗 walletLog.vue:展示充值与扣费明细(income/expense),金额元,后端分页(pageNum/pageSize) - 新增 recharge、getWalletLogs 接口,路径 shop-user-trade/account/controller/* - other.scss 补充 op-btn-recharge 固定绿色样式(含 dark 主题) Co-Authored-By: Claude --- src/api/system/user/index.ts | 16 +++ src/theme/other.scss | 8 ++ .../system/user/component/rechargeUser.vue | 111 ++++++++++++++++++ src/views/system/user/component/walletLog.vue | 68 +++++++++++ src/views/system/user/index.vue | 41 ++++++- 5 files changed, 242 insertions(+), 2 deletions(-) create mode 100644 src/views/system/user/component/rechargeUser.vue create mode 100644 src/views/system/user/component/walletLog.vue diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts index f4115f7..9fc36dd 100644 --- a/src/api/system/user/index.ts +++ b/src/api/system/user/index.ts @@ -70,6 +70,22 @@ export function deleteUser(ids: number[]) { }); } +export function recharge(data: object) { + return request({ + url: '/shop-user-trade/account/controller/recharge', + method: 'post', + data: data, + }); +} + +export function getWalletLogs(userId: number, pageNum: number, pageSize: number) { + return request({ + url: '/shop-user-trade/account/controller/logs', + method: 'get', + params: { userId, pageNum, pageSize }, + }); +} + export function checkIsSuperAdmin() { return request({ url: '/admin-go/api/v1/system/user/checkIsSuperAdmin', diff --git a/src/theme/other.scss b/src/theme/other.scss index 9995a55..abcd4e7 100644 --- a/src/theme/other.scss +++ b/src/theme/other.scss @@ -31,6 +31,10 @@ color: #f56c6c !important; } +.op-btn-recharge { + color: #67c23a !important; // 充值 绿色 +} + [data-theme='dark'] { // textarea - css vars --w-e-textarea-bg-color: var(--el-color-white) !important; @@ -49,6 +53,10 @@ color: #f56c6c !important; // 删除 红色 } + .op-btn-recharge { + color: #67c23a !important; // 充值 绿色 + } + // toolbar - css vars --w-e-toolbar-color: var(--el-text-color-primary) !important; --w-e-toolbar-bg-color: var(--el-color-white) !important; diff --git a/src/views/system/user/component/rechargeUser.vue b/src/views/system/user/component/rechargeUser.vue new file mode 100644 index 0000000..5ed0817 --- /dev/null +++ b/src/views/system/user/component/rechargeUser.vue @@ -0,0 +1,111 @@ + + + diff --git a/src/views/system/user/component/walletLog.vue b/src/views/system/user/component/walletLog.vue new file mode 100644 index 0000000..509440e --- /dev/null +++ b/src/views/system/user/component/walletLog.vue @@ -0,0 +1,68 @@ + + + diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 7d0fa94..e70c4d8 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -117,7 +117,7 @@ - + @@ -154,6 +173,8 @@ + + @@ -162,6 +183,8 @@ import { toRefs, reactive, onMounted, ref, defineComponent, watch, getCurrentIns import { ElMessageBox, ElMessage, ElTree, FormInstance } from 'element-plus'; import { Search } from '@element-plus/icons-vue'; import EditUser from '/@/views/system/user/component/editUser.vue'; +import RechargeUser from '/@/views/system/user/component/rechargeUser.vue'; +import WalletLog from '/@/views/system/user/component/walletLog.vue'; import { getUserList, getDeptTree, resetUserPwd, changeUserStatus, deleteUser } from '/@/api/system/user/index'; interface TableDataState { @@ -186,11 +209,13 @@ interface TableDataState { export default defineComponent({ name: 'systemUser', - components: { EditUser }, + components: { EditUser, RechargeUser, WalletLog }, setup() { const { proxy } = getCurrentInstance(); const { sys_user_sex } = proxy.useDict('sys_user_sex'); const editUserRef = ref(); + const rechargeUserRef = ref(); + const walletLogRef = ref(); const queryRef = ref(); const filterText = ref(''); const treeRef = ref>(); @@ -259,6 +284,14 @@ export default defineComponent({ const onOpenEditUser = (row: any) => { editUserRef.value.openDialog(row); }; + // 打开充值弹窗 + const onOpenRecharge = (row: any) => { + rechargeUserRef.value.openDialog(row); + }; + // 打开流水信息弹窗 + const onOpenWalletLog = (row: any) => { + walletLogRef.value.openDialog(row.id); + }; // 删除用户 const onRowDel = (row: any) => { let msg = '你确定要删除所选用户?'; @@ -358,8 +391,12 @@ export default defineComponent({ return { queryRef, editUserRef, + rechargeUserRef, + walletLogRef, onOpenAddUser, onOpenEditUser, + onOpenRecharge, + onOpenWalletLog, onRowDel, onHandleSizeChange, onHandleCurrentChange,