Ver código fonte

feat: 优化细节

叶静 3 semanas atrás
pai
commit
09e47b1cee

+ 16 - 6
src/app/shop/admin/finance/commission/index.vue

@@ -47,12 +47,7 @@
           </el-table-column>
           <el-table-column :label="t('modules.commission.commissionType')" min-width="150">
             <template #default="scope">
-              <span class="sa-table-line-1">{{ getBizTypeText(scope.row.bizType) }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column :label="t('modules.commission.commissionDesc')" min-width="200">
-            <template #default="scope">
-              <span class="sa-table-line-1">{{ scope.row.memo || '-' }}</span>
+              <span class="sa-table-line-1">{{ getBizTypeTextFromOptions(scope.row.bizType) }}</span>
             </template>
           </el-table-column>
           <el-table-column :label="t('modules.commission.orderNo')" min-width="150">
@@ -207,6 +202,21 @@ const getStatusText = (status) => {
 // 业务类型文本由后端处理国际化,这里保留原函数作为后备
 const getBizTypeText = financeUtils.getBizTypeText;
 
+// 根据后端返回的佣金类型选项数据匹配显示文本
+const getBizTypeTextFromOptions = (bizType) => {
+  if (!bizType) return '--';
+
+  // 从 bizTypeOptions 中查找匹配的类型
+  const matchedOption = bizTypeOptions.value.find(option => option.value === bizType);
+
+  if (matchedOption) {
+    return matchedOption.label;
+  }
+
+  // 如果没有匹配到,使用后备函数
+  return getBizTypeText(bizType);
+};
+
 // 获取佣金类型枚举
 async function getCommissionTypes() {
   try {

+ 2 - 2
src/app/shop/admin/finance/recharge/detail.vue

@@ -61,13 +61,13 @@
         <el-row :gutter="20" class="sa-m-t-12">
           <el-col :span="6">
             <div class="info-item" :style="{ '--label-width': formLabelWidth }">
-              <span class="label">{{ t('modules.recharge.walletBalance') }}:</span>
+              <span class="label">{{ t('modules.finance.accountBalance') }}:</span>
               <span class="value">৳{{ rechargeDetail.walletBalance || 0 }}</span>
             </div>
           </el-col>
           <el-col :span="6">
             <div class="info-item" :style="{ '--label-width': formLabelWidth }">
-              <span class="label">{{ t('modules.recharge.earningsBalance') }}:</span>
+              <span class="label">{{ t('modules.finance.commissionBalance') }}:</span>
               <span class="value">৳{{ rechargeDetail.earningsBalance || 0 }}</span>
             </div>
           </el-col>

+ 2 - 2
src/app/shop/admin/finance/withdraw/detail.vue

@@ -63,7 +63,7 @@
           </el-col>
           <el-col :span="6">
             <div class="info-item" :style="{ '--label-width': formLabelWidth }">
-              <span class="label">{{ t('modules.withdraw.walletBalance') }}:</span>
+              <span class="label">{{ t('modules.finance.accountBalance') }}:</span>
               <span class="value">৳{{ withdrawDetail.walletBalance || 0 }}</span>
             </div>
           </el-col>
@@ -80,7 +80,7 @@
           </el-col>
           <el-col :span="6">
             <div class="info-item" :style="{ '--label-width': formLabelWidth }">
-              <span class="label">{{ t('modules.withdraw.earningsBalance') }}:</span>
+              <span class="label">{{ t('modules.finance.commissionBalance') }}:</span>
               <span class="value">৳{{ withdrawDetail.earningsBalance || 0 }}</span>
             </div>
           </el-col>

+ 42 - 7
src/app/shop/admin/user/list/detail.vue

@@ -255,12 +255,7 @@
               <el-table-column :label="t('modules.user.commissionId')" prop="id" align="center" />
               <el-table-column :label="t('modules.user.commissionType')" min->
                 <template #default="{ row }">
-                  <span class="sa-table-line-1">{{ getBizTypeText(row.bizType) }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column :label="t('modules.user.commissionDescription')" min-width="200">
-                <template #default="{ row }">
-                  <span class="sa-table-line-1">{{ row.memo || '-' }}</span>
+                  <span class="sa-table-line-1">{{ getBizTypeTextFromOptions(row.bizType) }}</span>
                 </template>
               </el-table-column>
               <el-table-column :label="t('modules.user.commissionAmount')" align="center">
@@ -466,9 +461,12 @@ const props = defineProps({
 
 // 分页数据
 const { pageData } = usePagination();
-// 设置默认每20条
+// 设置默认每20条
 pageData.size = 20;
 
+// 佣金类型选项 - 响应式数据
+const bizTypeOptions = ref([]);
+
 const state = reactive({
   userDetail: {},
   basicInfoTableData: [],
@@ -570,6 +568,41 @@ const getAccountTypeText = financeUtils.getAccountTypeText;
 const getBizTypeText = financeUtils.getBizTypeText;
 const formatCurrency = financeUtils.formatCurrency;
 
+// 获取佣金类型枚举
+async function getCommissionTypes() {
+  try {
+    const { code, data } = await financeApi.commission.getTypes();
+
+    if (code == '200' && data) {
+      const options = [];
+      data.forEach((item) => {
+        options.push({
+          label: item.name, // 后端返回的已国际化文本
+          value: item.code,
+        });
+      });
+      bizTypeOptions.value = options;
+    }
+  } catch (error) {
+    console.error('获取佣金类型枚举失败:', error);
+  }
+}
+
+// 根据后端返回的佣金类型选项数据匹配显示文本
+const getBizTypeTextFromOptions = (bizType) => {
+  if (!bizType) return '--';
+
+  // 从 bizTypeOptions 中查找匹配的类型
+  const matchedOption = bizTypeOptions.value.find(option => option.value === bizType);
+
+  if (matchedOption) {
+    return matchedOption.label;
+  }
+
+  // 如果没有匹配到,使用后备函数
+  return getBizTypeText(bizType);
+};
+
 // 获取用户详情
 const loading = ref(false);
 const getUserDetail = async () => {
@@ -818,6 +851,8 @@ const handleRefund = async (row) => {
 onMounted(() => {
   // 先初始化基本信息表格数据(防止模板报错)
   initBasicInfoTableData();
+  // 获取佣金类型枚举
+  getCommissionTypes();
   // 初始化用户详情和基本信息(会在获取完成后自动加载tab数据)
   getUserDetail();
 });

+ 2 - 0
src/locales/en-US/index.json

@@ -727,6 +727,8 @@
       "commissionManagement": "Commission Management",
       "financialReport": "Financial Report",
       "walletBalance": "Wallet Account",
+      "accountBalance": "Account Balance",
+      "commissionBalance": "Commission Balance",
       "accountEarnings": "Earnings Account",
       "unknownOperation": "Unknown Operation",
       "unsettled": "Unsettled",

+ 2 - 0
src/locales/zh-CN/index.json

@@ -921,6 +921,8 @@
       "commissionManagement": "佣金管理",
       "financialReport": "财务报表",
       "walletBalance": "钱包账户",
+      "accountBalance": "账户余额",
+      "commissionBalance": "佣金余额",
       "accountEarnings": "收益账户",
       "unknownOperation": "未知操作",
       "unsettled": "未结算",