Ver código fonte

refactor: 进件从tab切换改为弹窗,提交后自动关闭并刷新

- 去掉 el-tab-pane onboard,改为 el-dialog
- handleGoTab('onboard') 改为打开弹窗而非切tab
- 提交成功后关闭弹窗+刷新概览数据
alphaH 1 dia atrás
pai
commit
d584a1bd1d

+ 1 - 0
.codegraph/codegraph.lock

@@ -0,0 +1 @@
+17608

+ 34 - 42
frontend/src/views/module_payment/account/index.vue

@@ -103,47 +103,6 @@
         </div>
       </el-tab-pane> -->
 
-      <el-tab-pane label="提交进件" name="onboard">
-        <div class="tab-content">
-          <el-card>
-            <template #header>
-              <div class="card-header">
-                <span>二级商户进件资料</span>
-                <el-tag v-if="accountInfo.onboard_status === 'VALID'" type="success">审核已通过</el-tag>
-                <el-tag v-else-if="accountInfo.onboard_status === 'INVALID'" type="danger">审核未通过</el-tag>
-                <el-tag v-else type="warning">待审核</el-tag>
-              </div>
-            </template>
-            <el-form ref="onboardFormRef" :model="onboardForm" :rules="onboardRules" label-width="140px">
-              <el-form-item label="场景说明" prop="scene_directions" required>
-                <el-input v-model="onboardForm.scene_directions" type="textarea" :rows="3"
-                  placeholder="谁/通过什么媒介(APP/web/小程序)/主要为谁提供什么服务/用于在什么场景给什么人群转账" maxlength="1024" show-word-limit />
-              </el-form-item>
-              <el-form-item label="转账场景截图" prop="scene_image" required>
-                <el-upload ref="uploadRef" :http-request="handleOnboardUpload" :file-list="onboardFiles"
-                  :limit="5" list-type="picture-card" accept=".jpg,.jpeg,.png,.pdf"
-                  :before-upload="handleBeforeUpload" :on-remove="handleOnboardFileRemove">
-                  <el-icon><Plus /></el-icon>
-                </el-upload>
-                <div class="upload-tip">支持 jpg / png / pdf,最多 5 个文件</div>
-              </el-form-item>
-              <el-form-item label="站点信息">
-                <el-checkbox-group v-model="onboardSiteTypes">
-                  <el-checkbox v-for="s in SITE_TYPE_OPTIONS" :key="s.value" :label="s.value">{{ s.label }}</el-checkbox>
-                </el-checkbox-group>
-                <div v-for="st in onboardSiteTypes" :key="st" style="margin-top: 8px">
-                  <el-input v-model="onboardSites[st]" :placeholder="'请输入' + (SITE_TYPE_OPTIONS.find(s => s.value === st)?.label || st) + '地址'" style="width: 300px" />
-                </div>
-              </el-form-item>
-              <el-form-item>
-                <el-button type="primary" :loading="onboardLoading" @click="handleOnboardSubmit">提交进件</el-button>
-                <el-button @click="handleOnboardReset">重置</el-button>
-              </el-form-item>
-            </el-form>
-          </el-card>
-        </div>
-      </el-tab-pane>
-
       <el-tab-pane label="账户充值" name="deposit">
         <div class="tab-content">
           <el-card>
@@ -548,6 +507,37 @@
     <TransferDetail v-model="transferDetailVisible" :out-biz-no="currentTransferOutBizNo"
       @refresh="handleTransferDetailRefresh" />
 
+    <!-- 进件弹窗 -->
+    <el-dialog v-model="onboardDialogVisible" title="提交进件资料" width="650px" destroy-on-close
+      :close-on-click-modal="false">
+      <el-form ref="onboardFormRef" :model="onboardForm" :rules="onboardRules" label-width="120px">
+        <el-form-item label="场景说明" prop="scene_directions" required>
+          <el-input v-model="onboardForm.scene_directions" type="textarea" :rows="3"
+            placeholder="谁/通过什么媒介/主要为谁提供什么服务/用于在什么场景给什么人群转账" maxlength="1024" show-word-limit />
+        </el-form-item>
+        <el-form-item label="场景截图" prop="scene_image" required>
+          <el-upload ref="uploadRef" :http-request="handleOnboardUpload" :file-list="onboardFiles"
+            :limit="5" list-type="picture-card" accept=".jpg,.jpeg,.png,.pdf"
+            :before-upload="handleBeforeUpload" :on-remove="handleOnboardFileRemove">
+            <el-icon><Plus /></el-icon>
+          </el-upload>
+          <div class="upload-tip">支持 jpg / png / pdf,最多 5 个文件</div>
+        </el-form-item>
+        <el-form-item label="站点信息">
+          <el-checkbox-group v-model="onboardSiteTypes">
+            <el-checkbox v-for="s in SITE_TYPE_OPTIONS" :key="s.value" :label="s.value">{{ s.label }}</el-checkbox>
+          </el-checkbox-group>
+          <div v-for="st in onboardSiteTypes" :key="st" style="margin-top: 8px">
+            <el-input v-model="onboardSites[st]" :placeholder="'请输入' + (SITE_TYPE_OPTIONS.find(s => s.value === st)?.label || st) + '地址'" style="width: 300px" />
+          </div>
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <el-button @click="onboardDialogVisible = false">取消</el-button>
+        <el-button type="primary" :loading="onboardLoading" @click="handleOnboardSubmit">提交进件</el-button>
+      </template>
+    </el-dialog>
+
     <!-- 批量转账对话框 -->
     <el-dialog v-model="batchTransferVisible" title="批量转账" width="1000px" :close-on-click-modal="false" :close-on-press-escape="false">
       <div class="batch-transfer-container" :class="{ 'has-overlay': showBatchTransferOverlay }">
@@ -838,6 +828,7 @@ const SITE_TYPE_OPTIONS = [
   { value: "QITA", label: "其它" },
 ];
 
+const onboardDialogVisible = ref(false);
 const onboardFormRef = ref<FormInstance>();
 const onboardLoading = ref(false);
 const onboardFiles = ref<any[]>([]);
@@ -933,6 +924,7 @@ async function handleOnboardSubmit() {
       if (data?.order_id) {
         ElMessage.success("进件单已提交,支付宝审核中");
         accountInfo.value.onboard_status = "PENDING";
+        onboardDialogVisible.value = false;
         overviewRef.value?.refresh();
       }
     } catch (e: any) {
@@ -1852,7 +1844,7 @@ async function handleGoTab(tab: string) {
   if (tab === "authorize") {
     await handleAuthorize();
   } else if (tab === "onboard") {
-    activeTab.value = tab;
+    onboardDialogVisible.value = true;
   } else if (tab === "create") {
     await handleCreate();
   } else if (tab === "deposit") {

+ 1 - 0
java/src/main/java/com/payment/platform/module/payment/account/service/AlipayTransferService.java

@@ -148,6 +148,7 @@ public class AlipayTransferService {
             model.setAccessParams(accessParams);
 
             AlipayUserAgreementPageSignRequest request = new AlipayUserAgreementPageSignRequest();
+            request.setReturnUrl("https://qcsj88888.com/");
             request.setBizModel(model);
 
             AlipayUserAgreementPageSignResponse response =