瀏覽代碼

feat(admin): add profit share receiver creation application feature

- Added "分账接收方创建申请" button in detail dialog when status is 1
- Implemented handleCreateApplication method with loading state
- Added apply route for profit share receiver resource
- Created apply method in ProfitShareReceiverController
- Integrated axios PUT request to submit application
- Added success/error message feedback and list data refresh
- Used applyLoading state to prevent duplicate submissions
runphp 4 月之前
父節點
當前提交
326d23a991
共有 3 個文件被更改,包括 43 次插入1 次删除
  1. 35 0
      resource/admin/ProfitShareReceiver.vue
  2. 3 1
      route/admin.php
  3. 5 0
      src/Controller/Admin/ProfitShareReceiverController.php

+ 35 - 0
resource/admin/ProfitShareReceiver.vue

@@ -133,6 +133,14 @@
       </el-form>
       <template #footer>
         <span class="dialog-footer">
+          <el-button 
+            v-if="detailData.status === 1"
+            type="success" 
+            @click="handleCreateApplication"
+            :loading="applyLoading"
+          >
+            分账接收方创建申请
+          </el-button>
           <el-button @click="handleCloseDetailDialog">关闭</el-button>
         </span>
       </template>
@@ -153,6 +161,7 @@ export default {
     return {
       loading: false,
       detailLoading: false,
+      applyLoading: false,
       searchForm: {
         order_no: '',
         status: ''
@@ -285,6 +294,32 @@ export default {
       this.detailData = {}
     },
     
+    // 分账接收方创建申请
+    async handleCreateApplication() {
+      if (!this.axiosInstance) {
+        this.$message.error('无法获取请求实例')
+        return
+      }
+
+      this.applyLoading = true
+      try {
+        const res = await this.axiosInstance.put(`/lakala/profit_share_receiver/${this.detailData.id}/apply`)
+        if (res.code === 200) {
+          this.$message.success('分账接收方创建申请已提交')
+          this.handleCloseDetailDialog()
+          // 重新加载列表数据以更新状态
+          await this.fetchData()
+        } else {
+          this.$message.error(res.msg || res.message || '申请提交失败')
+        }
+      } catch (error) {
+        console.error('分账接收方创建申请失败:', error)
+        this.$message.error('申请提交失败: ' + (error.message || '未知错误'))
+      } finally {
+        this.applyLoading = false
+      }
+    },
+    
     // 分页相关
     handleSizeChange(val) {
       this.pagination.limit = val

+ 3 - 1
route/admin.php

@@ -13,7 +13,9 @@ use SixShop\System\Middleware\MacroPageMiddleware;
 // 如果需要登录请添加认证中间件auth
 // ->middleware(['auth'])
 
-Route::resource('profit_share_receiver', ProfitShareReceiverController::class)
+Route::resource('profit_share_receiver', ProfitShareReceiverController::class, function () {
+    Route::put('apply', [ProfitShareReceiverController::class, 'apply']);
+})
     ->middleware(['auth', MacroPageMiddleware::class]);
 
 Route::resource('profit_share_order', ProfitShareOrderController::class)

+ 5 - 0
src/Controller/Admin/ProfitShareReceiverController.php

@@ -25,4 +25,9 @@ class ProfitShareReceiverController
         $params = ['id' => $id];
         return success_response($entity->getReceiver($params));
     }
+
+    public function apply(int $id):Response
+    {
+
+    }
 }