From f340561df448a2bc8bb9898e5ae777ef9d9e0917 Mon Sep 17 00:00:00 2001 From: 18650502300 <18650502300@163.com> Date: Sat, 18 Jan 2025 09:35:06 +0800 Subject: [PATCH] 111 --- src/api/system/appMenu.js | 44 +++ src/assets/icons/svg/user2.png | Bin 0 -> 5806 bytes src/assets/icons/svg/user2.svg | 1 + src/views/system/appMenu/index.vue | 349 ++++++++++++++++++ src/views/system/equipment/index.vue | 9 +- src/views/system/room/index.vue | 6 +- src/views/system/store/index.vue | 179 ++------- src/views/system/store/store_detail.vue | 74 +++- src/views/system/withdraw/index.vue | 10 +- .../user/user/components/UserConfigDialog.vue | 167 +++++++-- src/views/user/user/detail.vue | 39 +- src/views/user/user/index.vue | 66 +--- 12 files changed, 675 insertions(+), 269 deletions(-) create mode 100644 src/api/system/appMenu.js create mode 100644 src/assets/icons/svg/user2.png create mode 100644 src/assets/icons/svg/user2.svg create mode 100644 src/views/system/appMenu/index.vue diff --git a/src/api/system/appMenu.js b/src/api/system/appMenu.js new file mode 100644 index 0000000..960e802 --- /dev/null +++ b/src/api/system/appMenu.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询前端菜单列表 +export function listMenu(query) { + return request({ + url: '/system/appMenu/list', + method: 'get', + params: query + }) +} + +// 查询前端菜单详细 +export function getMenu(menuId) { + return request({ + url: '/system/appMenu/' + menuId, + method: 'get' + }) +} + +// 新增前端菜单 +export function addMenu(data) { + return request({ + url: '/system/appMenu', + method: 'post', + data: data + }) +} + +// 修改前端菜单 +export function updateMenu(data) { + return request({ + url: '/system/appMenu', + method: 'put', + data: data + }) +} + +// 删除前端菜单 +export function delMenu(menuId) { + return request({ + url: '/system/appMenu/' + menuId, + method: 'delete' + }) +} diff --git a/src/assets/icons/svg/user2.png b/src/assets/icons/svg/user2.png new file mode 100644 index 0000000000000000000000000000000000000000..24079ab87445ce12733149877521e106079018fb GIT binary patch literal 5806 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 literal 0 HcmV?d00001 diff --git a/src/assets/icons/svg/user2.svg b/src/assets/icons/svg/user2.svg new file mode 100644 index 0000000..d14cbd7 --- /dev/null +++ b/src/assets/icons/svg/user2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/views/system/appMenu/index.vue b/src/views/system/appMenu/index.vue new file mode 100644 index 0000000..fc55f73 --- /dev/null +++ b/src/views/system/appMenu/index.vue @@ -0,0 +1,349 @@ + + + diff --git a/src/views/system/equipment/index.vue b/src/views/system/equipment/index.vue index 9da29f6..0f87318 100644 --- a/src/views/system/equipment/index.vue +++ b/src/views/system/equipment/index.vue @@ -63,8 +63,13 @@ -
- - + 用户头像 +
{{ detail.userName }} - +
{{ detail.phonenumber }}
@@ -288,14 +288,14 @@ export default { reportActiveTab: 'daily', mainActiveTab: 'orders', statisticsData: [ - { label: '店铺数', field: 'storeCount', icon: 'el-icon-office-building', color: 'blue', unit: '家' }, - { label: '房间数', field: 'roomCount', icon: 'el-icon-house', color: 'pink', unit: '间' }, - { label: '设施数', field: 'facilityCount', icon: 'el-icon-box', color: 'cyan', unit: '个' }, - { label: '设备数', field: 'deviceCount', icon: 'el-icon-monitor', color: 'green', unit: '台' }, + { label: '店铺数', field: 'storeNum', icon: 'el-icon-office-building', color: 'blue', unit: '家' }, + { label: '房间数', field: 'roomNum', icon: 'el-icon-house', color: 'pink', unit: '间' }, + { label: '设施数', field: 'equNum', icon: 'el-icon-box', color: 'cyan', unit: '个' }, + { label: '设备数', field: 'deviceNum', icon: 'el-icon-monitor', color: 'green', unit: '台' }, { label: '账户余额', field: 'balance', icon: 'el-icon-wallet', color: 'purple', isMoney: true }, { label: '总收入', field: 'totalIncome', icon: 'el-icon-money', color: 'orange', isMoney: true }, { label: '总提现', field: 'totalWithdrawAmount', icon: 'el-icon-bank-card', color: 'red', isMoney: true }, - { label: '总消费', field: 'totalConsumption', icon: 'el-icon-shopping-cart-full', color: 'brown', isMoney: true } + { label: '总消费', field: 'totalConsume', icon: 'el-icon-shopping-cart-full', color: 'brown', isMoney: true } ], pickerOptions: { @@ -340,7 +340,12 @@ export default { dividendProportion: [ { required: true, message: "分红比例不能为空", trigger: "blur" } ] - } + }, + + userName: '', + phonenumber: '', + avatar: '', // 用户自定义头像 + defaultAvatar: require('@/assets/icons/svg/user2.png') // 确保路径和文件名正确 }; }, computed: { @@ -351,6 +356,9 @@ export default { return (type) => { return type === '2' ? '元' : '%' } + }, + userAvatar() { + return this.avatar || this.defaultAvatar; } }, created() { @@ -566,7 +574,7 @@ export default { } ] }; - + if (this.dailyChart) { this.dailyChart.setOption(option); } @@ -662,7 +670,7 @@ export default { } ] }; - + if (this.monthlyChart) { this.monthlyChart.setOption(option); } @@ -851,4 +859,11 @@ export default { .mb-2 { margin-bottom: 1rem; } - \ No newline at end of file + +.user-avatar { + width: 100px; + height: 100px; + border-radius: 50%; + object-fit: cover; +} + diff --git a/src/views/user/user/index.vue b/src/views/user/user/index.vue index c889288..6c882a3 100644 --- a/src/views/user/user/index.vue +++ b/src/views/user/user/index.vue @@ -117,8 +117,8 @@ @@ -146,7 +146,7 @@ type="text" icon="el-icon-view" @click="handleView(scope.row)" - v-hasPermi="['system:smUser:detail']" + v-hasPermi="['system:smUser:detail']" >详情 - + @@ -206,7 +206,7 @@ - + - - - - - - - - - - - - - - - - - - - - - - -