feat: 添加企业微信用户余额修改功能

在用户详情页面中增加余额修改功能,允许管理员直接修改用户余额。同时,更新订单查询接口以支持通过企业微信用户ID查询订单记录,并优化用户详情页面的信息展示。
This commit is contained in:
dzq 2025-05-19 08:21:44 +08:00
parent 56904be993
commit 1aa7cee0c0
3 changed files with 20 additions and 7 deletions

View File

@ -1,9 +1,11 @@
import { http } from "@/utils/http";
import { UserDTO } from "../system/user";
/**
*
*/
export interface QyUserDTO {
sysUser?: UserDTO;
/** 用户ID导出列用户ID */
id?: number;
/** 全局唯一ID导出列全局唯一ID */

View File

@ -7,6 +7,10 @@ export interface OrderQuery extends BasePageQuery {
* openid
*/
openid?: string;
/**
* ID或汇邦云用户ID
*/
userid?: string;
/** 柜机id */
cabinetId?: number;
/** 格口id */

View File

@ -3,7 +3,7 @@ import { ref, onMounted, watch } from "vue";
import { useRoute, useRouter } from "vue-router";
import { type QyUserDTO, getQyUserDetailApi } from "@/api/qy/qyUser";
import { getOrderListApi, type OrderDTO } from "@/api/shop/order";
import { useMultiTagsStoreHook } from "@/store/modules/multiTags";
import BalanceEditModal from "./BalanceEditModal.vue";
defineOptions({
name: "QyUserDetail"
@ -13,6 +13,8 @@ const route = useRoute();
const router = useRouter();
const userInfo = ref<QyUserDTO>({});
const loading = ref(false);
const balanceVisible = ref(false);
const currentBalance = ref(0);
//
const basicInfo = ref({
@ -37,6 +39,7 @@ async function fetchOrders() {
orderLoading.value = true;
const { data } = await getOrderListApi({
openid: userInfo.value.openid,
userid: userInfo.value.userid,
pageSize: pagination.value.pageSize,
pageNum: pagination.value.currentPage
});
@ -68,6 +71,11 @@ async function fetchUserDetail() {
onMounted(() => {
fetchUserDetail();
});
async function handleModifyBalance(row: QyUserDTO) {
currentBalance.value = row.balance || 0;
balanceVisible.value = true;
}
</script>
<template>
@ -90,24 +98,22 @@ onMounted(() => {
<el-descriptions class="user-details" :column="1" border>
<el-descriptions-item label="姓名">{{ userInfo.name }}</el-descriptions-item>
<el-descriptions-item label="手机号">{{ userInfo.mobile }}</el-descriptions-item>
<el-descriptions-item label="余额">¥{{ userInfo.balance?.toFixed(2) }}</el-descriptions-item>
<el-descriptions-item label="余额">¥{{ userInfo.balance?.toFixed(2) }} <el-button type="primary" size="small"
@click="handleModifyBalance(userInfo)">修改</el-button></el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="info-card">
<div class="tab-header">
<el-tabs type="card" v-model="activeTab">
<el-tab-pane label="基础信息" name="basic"></el-tab-pane>
<!-- <el-tab-pane label="订单记录" name="orders"></el-tab-pane> -->
<el-tab-pane label="订单记录" name="orders"></el-tab-pane>
</el-tabs>
</div>
<el-descriptions class="info-details" v-if="activeTab === 'basic'" :column="2" border>
<el-descriptions-item label="用户ID">{{ userInfo.userid }}</el-descriptions-item>
<el-descriptions-item label="企业ID">{{ userInfo.corpid }}</el-descriptions-item>
<el-descriptions-item label="注册时间">{{ basicInfo.registerTime }}</el-descriptions-item>
<el-descriptions-item label="最后登录">{{ basicInfo.lastLogin }}</el-descriptions-item>
<el-descriptions-item label="登录次数">{{ basicInfo.loginCount }}</el-descriptions-item>
<el-descriptions-item label="常用设备">{{ basicInfo.device }}</el-descriptions-item>
<el-descriptions-item label="职务信息">{{ userInfo.position }}</el-descriptions-item>
</el-descriptions>
<div class="info-details" v-if="activeTab === 'orders'">
@ -136,6 +142,7 @@ onMounted(() => {
</div>
</el-card>
</div>
<BalanceEditModal v-model:visible="balanceVisible" :row="userInfo" @refresh="fetchUserDetail" />
</div>
</template>