feat: 添加企业微信用户余额修改功能
在用户详情页面中增加余额修改功能,允许管理员直接修改用户余额。同时,更新订单查询接口以支持通过企业微信用户ID查询订单记录,并优化用户详情页面的信息展示。
This commit is contained in:
parent
56904be993
commit
1aa7cee0c0
|
@ -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) */
|
||||
|
|
|
@ -7,6 +7,10 @@ export interface OrderQuery extends BasePageQuery {
|
|||
* 微信openid
|
||||
*/
|
||||
openid?: string;
|
||||
/**
|
||||
* 企业微信用户ID或汇邦云用户ID
|
||||
*/
|
||||
userid?: string;
|
||||
/** 柜机id */
|
||||
cabinetId?: number;
|
||||
/** 格口id */
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
Loading…
Reference in New Issue