소스 검색

feat(lakala): 更新分账接收方管理功能- 修改状态筛选选项值为数字类型(待审核:1, 已通过: 2, 已拒绝:3)
- 调整表格列显示内容,新增账户名称、账户号码和账户类型字段
- 移除原分账金额列,改为展示账户类型文本(对私/对公)
- 新增联系电话列展示联系信息- 使用 status_text 字段直接显示状态文本,替代原来的标签逻辑
- 更新数据获取方法以适配新的接口返回结构
- 添加 getAccountTypeText 方法用于转换账户类型代码为可读文本
- 在模型中增加搜索条件处理方法,支持订单号模糊查询和状态精确查询
- 优化错误消息提示逻辑,优先使用 msg 字段作为错误信息

runphp 4 달 전
부모
커밋
1ec1dbe059
3개의 변경된 파일37개의 추가작업 그리고 19개의 파일을 삭제
  1. 24 18
      resource/admin/ProfitShareReceiver.vue
  2. 1 1
      src/Entity/ProfitShareReceiverEntity.php
  3. 12 0
      src/Model/ProfitShareReceiverModel.php

+ 24 - 18
resource/admin/ProfitShareReceiver.vue

@@ -14,9 +14,9 @@
         <el-form-item label="状态">
           <el-select v-model="searchForm.status" placeholder="请选择状态" clearable>
             <el-option label="全部" value="" />
-            <el-option label="待处理" value="pending" />
-            <el-option label="已通过" value="approved" />
-            <el-option label="已拒绝" value="rejected" />
+            <el-option label="待审核" value="1" />
+            <el-option label="已通过" value="2" />
+            <el-option label="已拒绝" value="3" />
           </el-select>
         </el-form-item>
         <el-form-item>
@@ -42,21 +42,16 @@
       >
         <el-table-column prop="id" label="ID" width="80" />
         <el-table-column prop="order_no" label="订单号" min-width="180" />
-        <el-table-column prop="receiver_name" label="接收方名称" min-width="150" />
-        <el-table-column prop="receiver_account" label="接收方账户" min-width="180" />
-        <el-table-column prop="amount" label="分账金额" width="120">
+        <el-table-column prop="receiver_name" label="接收方名称" min-width="120" />
+        <el-table-column prop="acct_name" label="账户名称" min-width="120" />
+        <el-table-column prop="acct_no" label="账户号码" min-width="180" />
+        <el-table-column prop="acct_type_code" label="账户类型" width="100">
           <template #default="{ row }">
-            ¥{{ row.amount }}
-          </template>
-        </el-table-column>
-        <el-table-column prop="status" label="状态" width="100">
-          <template #default="{ row }">
-            <el-tag v-if="row.status === 'pending'" type="warning">待处理</el-tag>
-            <el-tag v-else-if="row.status === 'approved'" type="success">已通过</el-tag>
-            <el-tag v-else-if="row.status === 'rejected'" type="danger">已拒绝</el-tag>
-            <el-tag v-else>{{ row.status }}</el-tag>
+            {{ getAccountTypeText(row.acct_type_code) }}
           </template>
         </el-table-column>
+        <el-table-column prop="contact_mobile" label="联系电话" width="120" />
+        <el-table-column prop="status_text" label="状态" width="100" />
         <el-table-column prop="create_time" label="申请时间" width="180" />
         <el-table-column label="操作" width="150" fixed="right">
           <template #default="{ row }">
@@ -108,6 +103,15 @@ export default {
     this.fetchData()
   },
   methods: {
+    // 获取账户类型文本
+    getAccountTypeText(code) {
+      const accountTypes = {
+        '58': '对私',
+        '59': '对公'
+      }
+      return accountTypes[code] || code
+    },
+    
     // 获取列表数据
     async fetchData() {
       // 优先使用通过props传递的axios实例
@@ -127,10 +131,12 @@ export default {
         
         const res = await this.axiosInstance.get('/lakala/profit_share_receiver', { params })
         if (res.code === 200) {
-          this.tableData = res.data.list
-          this.pagination.total = res.data.total
+          // 根据接口返回结构调整数据处理
+          this.tableData = res.page.data
+          this.pagination.total = res.page.total
+          this.pagination.limit = res.page.per_page
         } else {
-          this.$message.error(res.message || '获取数据失败')
+          this.$message.error(res.msg || res.message || '获取数据失败')
         }
       } catch (error) {
         console.error('获取分账接收方列表失败:', error)

+ 1 - 1
src/Entity/ProfitShareReceiverEntity.php

@@ -38,7 +38,7 @@ class ProfitShareReceiverEntity extends BaseEntity
 
     public function getReceiverList(array $params, array $pageAndLimit):Paginator
     {
-        return $this->where($params)
+        return $this->withSearch(['order_no', 'status'],$params)
             ->append(['status_text'])
             ->paginate($pageAndLimit);
     }

+ 12 - 0
src/Model/ProfitShareReceiverModel.php

@@ -4,6 +4,7 @@ namespace SixShop\Lakala\Model;
 
 use SixShop\Lakala\Enum\ReceiverStatusEnum;
 use SixShop\Payment\Enum\NumberBizEnum;
+use think\db\Query;
 use think\Model;
 
 class ProfitShareReceiverModel extends Model
@@ -28,4 +29,15 @@ class ProfitShareReceiverModel extends Model
     {
         return $data['status']->toString();
     }
+
+    public function searchStatusAttr(Query $query, $value, $data)
+    {
+        $status = ReceiverStatusEnum::tryFrom($value);
+        $status && $query->where('status', $value);
+    }
+
+    public function searchOrderNoAttr(Query $query, $value, $data)
+    {
+        $value && $query->where('order_no', 'like', "%{$value}%");
+    }
 }