|
@@ -1,10 +1,10 @@
|
|
|
<template>
|
|
|
- <el-container class="user-detail">
|
|
|
+ <el-container class="user-detail" v-loading="loading">
|
|
|
<el-main>
|
|
|
<!-- 操作按钮 -->
|
|
|
<div class="action-buttons sa-m-b-2">
|
|
|
- <el-button @click="onSendSms">发短信</el-button>
|
|
|
- <el-button @click="onAppPush">APP推送</el-button>
|
|
|
+ <!-- <el-button @click="onSendSms">发短信</el-button> -->
|
|
|
+ <!-- <el-button @click="onAppPush">APP推送</el-button> -->
|
|
|
<el-button type="primary" @click="onEdit">编辑资料</el-button>
|
|
|
</div>
|
|
|
|
|
@@ -24,7 +24,7 @@
|
|
|
<template #default="{ row }">
|
|
|
<div class="avatar-section">
|
|
|
<el-image
|
|
|
- :src="state.userDetail.avatar"
|
|
|
+ :src="state.userDetail.headPic || '/static/images/shop/avatar.png'"
|
|
|
style="width: 60px; height: 60px; border-radius: 8px"
|
|
|
fit="cover"
|
|
|
/>
|
|
@@ -75,31 +75,23 @@
|
|
|
<!-- 空白,因为头像已经在上面显示 -->
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="手机号" align="center">
|
|
|
- <template #default="{ row }">
|
|
|
- {{ row.field1 || '--' }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="注册时间" align="center">
|
|
|
- <template #default="{ row }">
|
|
|
- {{ row.field2 || '--' }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="注册时间" align="center">
|
|
|
+ <el-table-column label="收款账户" align="center">
|
|
|
<template #default="{ row }">
|
|
|
{{ row.field3 || '--' }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="收款账户" align="center">
|
|
|
+ <el-table-column label="手机号" align="center">
|
|
|
<template #default="{ row }">
|
|
|
- {{ row.field4 || '--' }}
|
|
|
+ {{ row.field1 || '--' }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="账户名称" align="center">
|
|
|
+ <el-table-column label="注册时间" align="center">
|
|
|
<template #default="{ row }">
|
|
|
- {{ row.field5 || '--' }}
|
|
|
+ {{ row.field2 || '--' }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column label="" align="center" />
|
|
|
+ <el-table-column label="" align="center" />
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -109,44 +101,44 @@
|
|
|
<div class="sa-title sa-m-b-10 font-bold">统计信息</div>
|
|
|
<el-table class="sa-table" :data="state.statsTableData" stripe border>
|
|
|
<el-table-column label="邀请好友数" align="center">
|
|
|
- <template #default="{ row }">{{ row.inviteFriends || '--' }}</template>
|
|
|
+ <template #default="{ row }">{{ row.inviteNum }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="成功订单数" align="center">
|
|
|
- <template #default="{ row }">{{ row.successOrders || '--' }}</template>
|
|
|
+ <template #default="{ row }">{{ row.successGroupNum }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="可参团次数" align="center">
|
|
|
- <template #default="{ row }">{{ row.teamCount || '--' }}</template>
|
|
|
+ <template #default="{ row }">{{ row.groupNum }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="全部佣金总金额" width="150" align="center">
|
|
|
- <template #default="{ row }">৳ {{ row.totalCommission || '--' }}</template>
|
|
|
+ <template #default="{ row }">৳ {{ row.totalEarnings }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="已结算佣金余额" width="150" align="center">
|
|
|
- <template #default="{ row }">৳ {{ row.settledCommission || '--' }}</template>
|
|
|
+ <template #default="{ row }">৳ {{ row.settledEarnings }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="充值总金额" min-width="120" align="center">
|
|
|
- <template #default="{ row }">৳ {{ row.rechargeTotal || '--' }}</template>
|
|
|
+ <template #default="{ row }">৳ {{ row.rechargeAmount }}</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
|
|
|
<!-- 第二行统计数据 -->
|
|
|
<el-table class="sa-table mt-2px" :data="state.statsTableData2" stripe border>
|
|
|
<el-table-column label="团队人数" align="center">
|
|
|
- <template #default="{ row }">{{ row.teamMembers || '--' }}</template>
|
|
|
+ <template #default="{ row }">{{ row.teamNum }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="账户余额" align="center">
|
|
|
- <template #default="{ row }">৳ {{ row.accountBalance || '--' }}</template>
|
|
|
+ <template #default="{ row }">৳ {{ row.walletBalance }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="佣金账户余额" align="center">
|
|
|
- <template #default="{ row }">৳ {{ row.commissionBalance || '--' }}</template>
|
|
|
+ <template #default="{ row }">৳ {{ row.earningsBalance }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="近7天佣金余额" width="150" align="center">
|
|
|
- <template #default="{ row }">৳ {{ row.recentCommission || '--' }}</template>
|
|
|
+ <template #default="{ row }">৳ {{ row.l7DEarnings }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="待结算佣金余额" width="150" align="center">
|
|
|
- <template #default="{ row }">৳ {{ row.pendingCommission || '--' }}</template>
|
|
|
+ <template #default="{ row }">৳ {{ row.pendingEarnings }}</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="提现总金额" min-width="120" align="center">
|
|
|
- <template #default="{ row }">৳ {{ row.withdrawTotal || '--' }}</template>
|
|
|
+ <template #default="{ row }">৳ {{ row.withdrawAmount }}</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
@@ -192,11 +184,15 @@
|
|
|
<el-tab-pane label="下线用户" name="subordinates">
|
|
|
<el-skeleton v-if="state.loading.subordinates" :rows="5" animated />
|
|
|
<el-table v-else class="sa-table" :data="state.subordinates" stripe border>
|
|
|
- <el-table-column label="昵称" prop="nickname" align="center" />
|
|
|
- <el-table-column label="手机号" prop="mobile" align="center" />
|
|
|
- <el-table-column label="注册时间" prop="created_at" align="center" />
|
|
|
+ <el-table-column label="昵称" prop="nickname" align="center">
|
|
|
+ <template #default="{ row }">
|
|
|
+ {{ row.nickname || '--' }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="手机号" prop="phoneNo" align="center" />
|
|
|
+ <el-table-column label="注册时间" prop="createTime" align="center" />
|
|
|
<el-table-column label="等级" width="100" align="center">
|
|
|
- <template #default="{ row }"> V{{ row.level || '1' }} </template>
|
|
|
+ <template #default="{ row }"> V{{ row.vipLevel || '1' }} </template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="操作" width="80" align="center">
|
|
|
<template #default="{ row }">
|
|
@@ -278,16 +274,25 @@
|
|
|
</el-table>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
+
|
|
|
+ <!-- 统一分页组件 -->
|
|
|
+ <div class="sa-m-t-20 flex justify-end">
|
|
|
+ <sa-pagination
|
|
|
+ layout="total, prev, pager, next"
|
|
|
+ :pageData="pageData"
|
|
|
+ @updateFn="(page) => loadTabData(state.activeTab, page)"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-main>
|
|
|
</el-container>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
- import { reactive, onMounted } from 'vue';
|
|
|
+ import { ref, reactive, onMounted } from 'vue';
|
|
|
import { ElMessage } from 'element-plus';
|
|
|
- import { useModal } from '@/sheep/hooks';
|
|
|
- import { userDetailMock } from '@/sheep/mock/user';
|
|
|
+ import { useModal, usePagination } from '@/sheep/hooks';
|
|
|
+ import { api } from '../user.service';
|
|
|
import userEdit from './edit.vue';
|
|
|
import OrderDetail from '../../order/order/detail.vue';
|
|
|
import userDetail from './detail.vue';
|
|
@@ -302,6 +307,11 @@
|
|
|
},
|
|
|
});
|
|
|
|
|
|
+ // 分页数据
|
|
|
+ const { pageData } = usePagination();
|
|
|
+ // 设置默认每页5条
|
|
|
+ pageData.size = 5;
|
|
|
+
|
|
|
const state = reactive({
|
|
|
userDetail: {},
|
|
|
basicInfoTableData: [],
|
|
@@ -322,160 +332,144 @@
|
|
|
withdraws: false,
|
|
|
addresses: false,
|
|
|
},
|
|
|
- loadedTabs: new Set(), // 记录已加载的Tab
|
|
|
});
|
|
|
|
|
|
// 初始化基本信息表格数据
|
|
|
const initBasicInfoTableData = () => {
|
|
|
state.basicInfoTableData = [
|
|
|
{
|
|
|
- field1: state.userDetail.user_id, // 用户ID
|
|
|
- field2: state.userDetail.status_text, // 状态
|
|
|
- field3: state.userDetail.nickname, // 昵称
|
|
|
- field4: state.userDetail.bank_name, // 收款银行
|
|
|
- field5: state.userDetail.account_name, // 账户名称
|
|
|
+ field1: state.userDetail.userNo || '--', // 用户ID
|
|
|
+ field2: getStatusText(state.userDetail.status) || '--', // 状态
|
|
|
+ field3: state.userDetail.nickname || '--', // 昵称
|
|
|
+ field4: state.userDetail.bank || '--', // 收款银行
|
|
|
+ field5: state.userDetail.name || '--', // 账户名称
|
|
|
},
|
|
|
{
|
|
|
- field1: state.userDetail.mobile, // 手机号
|
|
|
- field2: state.userDetail.created_at, // 注册时间
|
|
|
- field3: state.userDetail.created_at, // 注册时间
|
|
|
- field4: state.userDetail.account_number, // 收款账户
|
|
|
- field5: state.userDetail.account_name, // 账户名称
|
|
|
+ field1: state.userDetail.phoneNo || '--', // 手机号
|
|
|
+ field2: state.userDetail.createTime || '--', // 注册时间
|
|
|
+ field3: state.userDetail.bankAccount || '--', // 收款账户
|
|
|
},
|
|
|
];
|
|
|
-
|
|
|
// 初始化统计信息表格数据
|
|
|
- const stats = userDetailMock.statsData;
|
|
|
state.statsTableData = [
|
|
|
{
|
|
|
- inviteFriends: stats.invite_friends,
|
|
|
- successOrders: stats.success_orders,
|
|
|
- teamCount: stats.team_count,
|
|
|
- totalCommission: stats.total_commission,
|
|
|
- settledCommission: stats.settled_commission,
|
|
|
- rechargeTotal: stats.recharge_total,
|
|
|
+ inviteNum: state.userDetail.inviteNum || 0, // 邀请好友数
|
|
|
+ successGroupNum: state.userDetail.successGroupNum || 0, // 成团数
|
|
|
+ groupNum: state.userDetail.groupNum || 0, // 可参团数
|
|
|
+ totalEarnings: state.userDetail.totalEarnings || 0, // 总收益
|
|
|
+ settledEarnings: state.userDetail.settledEarnings || 0, // 已结算收益
|
|
|
+ rechargeAmount: state.userDetail.rechargeAmount || 0, // 充值
|
|
|
},
|
|
|
];
|
|
|
|
|
|
state.statsTableData2 = [
|
|
|
{
|
|
|
- teamMembers: stats.team_members,
|
|
|
- accountBalance: stats.account_balance,
|
|
|
- commissionBalance: stats.commission_balance,
|
|
|
- recentCommission: stats.recent_commission,
|
|
|
- pendingCommission: stats.pending_commission,
|
|
|
- withdrawTotal: stats.withdraw_total,
|
|
|
+ teamNum: state.userDetail.teamNum || 0, // 团队人数
|
|
|
+ walletBalance: state.userDetail.walletBalance || 0, // 钱包余额
|
|
|
+ earningsBalance: state.userDetail.earningsBalance || 0, // 收益余额
|
|
|
+ l7DEarnings: state.userDetail.l7DEarnings || 0, // 近7天收益
|
|
|
+ pendingEarnings: state.userDetail.pendingEarnings || 0, // 待结算金额
|
|
|
+ withdrawAmount: state.userDetail.withdrawAmount || 0, // 提现总金额
|
|
|
},
|
|
|
];
|
|
|
};
|
|
|
|
|
|
+ // 获取状态文本
|
|
|
+ function getStatusText(status) {
|
|
|
+ switch (status) {
|
|
|
+ case 1:
|
|
|
+ return '正常';
|
|
|
+ case 2:
|
|
|
+ return '禁止提现';
|
|
|
+ case 3:
|
|
|
+ return '禁止登录';
|
|
|
+ case 4:
|
|
|
+ return '禁止下单';
|
|
|
+ default:
|
|
|
+ return '-';
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 获取用户详情
|
|
|
+ const loading = ref(false);
|
|
|
const getUserDetail = async () => {
|
|
|
try {
|
|
|
- // 使用mock数据
|
|
|
- state.userDetail = userDetailMock.userDetail;
|
|
|
- initBasicInfoTableData();
|
|
|
+ loading.value = true;
|
|
|
+ const { code, data } = await api.list.userDetail(props.modal.params.id);
|
|
|
+ if (code == '200') {
|
|
|
+ state.userDetail = data;
|
|
|
+ initBasicInfoTableData();
|
|
|
+ }
|
|
|
} catch (error) {
|
|
|
console.error('获取用户详情失败:', error);
|
|
|
}
|
|
|
+ loading.value = false;
|
|
|
};
|
|
|
|
|
|
- // 获取订单记录
|
|
|
- const getUserOrders = async () => {
|
|
|
+ // 统一数据获取函数
|
|
|
+ const fetchTabData = async (tabType, page = 1) => {
|
|
|
try {
|
|
|
- state.orders = userDetailMock.orders;
|
|
|
- } catch (error) {
|
|
|
- console.error('获取订单记录失败:', error);
|
|
|
- }
|
|
|
- };
|
|
|
+ const requestData = {
|
|
|
+ page,
|
|
|
+ size: pageData.size,
|
|
|
+ };
|
|
|
|
|
|
- // 获取下线用户
|
|
|
- const getUserSubordinates = async () => {
|
|
|
- try {
|
|
|
- state.subordinates = userDetailMock.subordinates;
|
|
|
- } catch (error) {
|
|
|
- console.error('获取下线用户失败:', error);
|
|
|
- }
|
|
|
- };
|
|
|
+ let response;
|
|
|
+ let stateKey;
|
|
|
|
|
|
- // 获取佣金记录
|
|
|
- const getUserCommissions = async () => {
|
|
|
- try {
|
|
|
- state.commissions = userDetailMock.commissions;
|
|
|
- } catch (error) {
|
|
|
- console.error('获取佣金记录失败:', error);
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- // 获取充值记录
|
|
|
- const getUserRecharges = async () => {
|
|
|
- try {
|
|
|
- state.recharges = userDetailMock.recharges;
|
|
|
- } catch (error) {
|
|
|
- console.error('获取充值记录失败:', error);
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- // 获取提现记录
|
|
|
- const getUserWithdraws = async () => {
|
|
|
- try {
|
|
|
- state.withdraws = userDetailMock.withdraws;
|
|
|
- } catch (error) {
|
|
|
- console.error('获取提现记录失败:', error);
|
|
|
- }
|
|
|
- };
|
|
|
+ switch (tabType) {
|
|
|
+ case 'orders':
|
|
|
+ // TODO: 实现订单记录获取
|
|
|
+ state.orders = [];
|
|
|
+ return;
|
|
|
+ case 'subordinates':
|
|
|
+ response = await api.list.myUsers({ ...requestData, type: 1 });
|
|
|
+ stateKey = 'subordinates';
|
|
|
+ break;
|
|
|
+ case 'commissions':
|
|
|
+ // TODO: 实现佣金记录获取
|
|
|
+ state.commissions = [];
|
|
|
+ return;
|
|
|
+ case 'recharges':
|
|
|
+ // TODO: 实现充值记录获取
|
|
|
+ state.recharges = [];
|
|
|
+ return;
|
|
|
+ case 'withdraws':
|
|
|
+ // TODO: 实现提现记录获取
|
|
|
+ state.withdraws = [];
|
|
|
+ return;
|
|
|
+ case 'addresses':
|
|
|
+ // TODO: 实现收货地址获取
|
|
|
+ state.addresses = [];
|
|
|
+ return;
|
|
|
+ default:
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- // 获取收货地址
|
|
|
- const getUserAddresses = async () => {
|
|
|
- try {
|
|
|
- state.addresses = userDetailMock.addresses;
|
|
|
+ if (response && response.code == '200') {
|
|
|
+ state[stateKey] = response.data.list || [];
|
|
|
+ // 更新分页信息
|
|
|
+ pageData.page = response.data.pageNum || page;
|
|
|
+ pageData.total = response.data.total || 0;
|
|
|
+ }
|
|
|
} catch (error) {
|
|
|
- console.error('获取收货地址失败:', error);
|
|
|
+ console.error(`获取${tabType}数据失败:`, error);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
// Tab切换处理
|
|
|
const handleTabChange = (tabName) => {
|
|
|
state.activeTab = tabName;
|
|
|
-
|
|
|
- // 如果该Tab还没有加载过数据,则进行懒加载
|
|
|
- if (!state.loadedTabs.has(tabName)) {
|
|
|
- loadTabData(tabName);
|
|
|
- }
|
|
|
+ // 每次切换都重新加载数据
|
|
|
+ loadTabData(tabName);
|
|
|
};
|
|
|
|
|
|
// 加载Tab数据
|
|
|
- const loadTabData = async (tabName) => {
|
|
|
- if (state.loadedTabs.has(tabName)) return;
|
|
|
-
|
|
|
+ const loadTabData = async (tabName, page = 1) => {
|
|
|
state.loading[tabName] = true;
|
|
|
|
|
|
try {
|
|
|
- // 模拟API请求延迟
|
|
|
- await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
|
-
|
|
|
- switch (tabName) {
|
|
|
- case 'orders':
|
|
|
- await getUserOrders();
|
|
|
- break;
|
|
|
- case 'subordinates':
|
|
|
- await getUserSubordinates();
|
|
|
- break;
|
|
|
- case 'commissions':
|
|
|
- await getUserCommissions();
|
|
|
- break;
|
|
|
- case 'recharges':
|
|
|
- await getUserRecharges();
|
|
|
- break;
|
|
|
- case 'withdraws':
|
|
|
- await getUserWithdraws();
|
|
|
- break;
|
|
|
- case 'addresses':
|
|
|
- await getUserAddresses();
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- state.loadedTabs.add(tabName);
|
|
|
+ await fetchTabData(tabName, page);
|
|
|
} catch (error) {
|
|
|
console.error(`加载${tabName}数据失败:`, error);
|
|
|
} finally {
|
|
@@ -512,65 +506,71 @@
|
|
|
);
|
|
|
};
|
|
|
|
|
|
- // 查看订单详情
|
|
|
- const viewOrder = (row) => {
|
|
|
- useModal(OrderDetail, {
|
|
|
- title: '订单详情',
|
|
|
- width: '90%',
|
|
|
- id: row.order_sn,
|
|
|
- });
|
|
|
- };
|
|
|
-
|
|
|
- // 查看下线用户详情
|
|
|
- const viewSubordinateUser = (row) => {
|
|
|
- useModal(
|
|
|
- userDetail,
|
|
|
- {
|
|
|
+ // 统一模态框打开函数
|
|
|
+ const openDetailModal = (type, row) => {
|
|
|
+ const modalConfigs = {
|
|
|
+ order: {
|
|
|
+ component: OrderDetail,
|
|
|
+ title: '订单详情',
|
|
|
+ width: '90%',
|
|
|
+ id: row.order_sn,
|
|
|
+ },
|
|
|
+ subordinateUser: {
|
|
|
+ component: userDetail,
|
|
|
title: '用户详情',
|
|
|
- type: 'view',
|
|
|
width: '1200px',
|
|
|
+ type: 'view',
|
|
|
id: row.id,
|
|
|
+ hasConfirm: true,
|
|
|
},
|
|
|
- {
|
|
|
- confirm: () => {
|
|
|
- getData();
|
|
|
- },
|
|
|
+ commission: {
|
|
|
+ component: CommissionEdit,
|
|
|
+ title: '佣金详情',
|
|
|
+ width: '80%',
|
|
|
+ id: row.commission_id,
|
|
|
},
|
|
|
- );
|
|
|
- };
|
|
|
+ recharge: {
|
|
|
+ component: RechargeEdit,
|
|
|
+ title: '充值详情',
|
|
|
+ width: '80%',
|
|
|
+ id: row.order_sn,
|
|
|
+ },
|
|
|
+ withdraw: {
|
|
|
+ component: WithdrawEdit,
|
|
|
+ title: '提现详情',
|
|
|
+ width: '80%',
|
|
|
+ id: row.order_sn,
|
|
|
+ },
|
|
|
+ };
|
|
|
|
|
|
- // 查看佣金记录详情
|
|
|
- const viewCommission = (row) => {
|
|
|
- useModal(CommissionEdit, {
|
|
|
- title: '佣金详情',
|
|
|
- width: '80%',
|
|
|
- id: row.commission_id,
|
|
|
- });
|
|
|
- };
|
|
|
+ const config = modalConfigs[type];
|
|
|
+ if (!config) return;
|
|
|
|
|
|
- // 查看充值详情
|
|
|
- const viewRecharge = (row) => {
|
|
|
- useModal(RechargeEdit, {
|
|
|
- title: '充值详情',
|
|
|
- width: '80%',
|
|
|
- id: row.order_sn,
|
|
|
- });
|
|
|
- };
|
|
|
+ const { component, hasConfirm, ...modalOptions } = config;
|
|
|
|
|
|
- // 查看提现详情
|
|
|
- const viewWithdraw = (row) => {
|
|
|
- useModal(WithdrawEdit, {
|
|
|
- title: '提现详情',
|
|
|
- width: '80%',
|
|
|
- id: row.order_sn,
|
|
|
- });
|
|
|
+ if (hasConfirm) {
|
|
|
+ useModal(component, modalOptions, {
|
|
|
+ confirm: () => getData(),
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ useModal(component, modalOptions);
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
+ // 各类详情查看函数(保持向后兼容)
|
|
|
+ const viewOrder = (row) => openDetailModal('order', row);
|
|
|
+ const viewSubordinateUser = (row) => openDetailModal('subordinateUser', row);
|
|
|
+ const viewCommission = (row) => openDetailModal('commission', row);
|
|
|
+ const viewRecharge = (row) => openDetailModal('recharge', row);
|
|
|
+ const viewWithdraw = (row) => openDetailModal('withdraw', row);
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
+ // 先初始化基本信息表格数据(防止模板报错)
|
|
|
+ initBasicInfoTableData();
|
|
|
// 初始化用户详情和基本信息
|
|
|
getUserDetail();
|
|
|
- // 默认加载订单记录
|
|
|
- loadTabData('orders');
|
|
|
+ // 默认加载当前激活的tab数据
|
|
|
+ loadTabData(state.activeTab);
|
|
|
});
|
|
|
</script>
|
|
|
|