Browse Source

feat:“同步12.06”

soobin 1 year ago
parent
commit
a2108ade47

+ 2 - 0
src/assets/language/zh.json

@@ -999,6 +999,8 @@
     "huifuMpPlaceholder": "请输入结算手机号",
     "branchCode": "联行号",
     "branchCodePlaceholder": "请输入联行号",
+    "bankCodeLabel": "银行编号",
+    "bankCodePlaceholder": "请输入银行编号",
     "openLicenceNo": "基本存款账户编号或核准号",
     "openLicenceNoPlaceholder": "请输入基本存款账户编号或核准号",
     "huifuBankAddress": "银行地址",

+ 11 - 0
src/service/huifuMch/index.js

@@ -1,6 +1,17 @@
 import axios from '@/utils/axios';
 import { stringToUrl } from '@/common/js/utils';
 
+
+// 新商户入驻申请
+export function newSaveHuifuMch(params) {
+    return axios.post(`/SZWL-SERVER/tHuifuMch/addApplication`, params);
+}
+
+// 汇付用户开户或业务开通
+export function openAccount(params) {
+    return axios.get(`/SZWL-SERVER/tHuifuMch/openAccount?${stringToUrl(params)}`);
+}
+
 // 商户入驻申请
 export function saveHuifuMch(params) {
     return axios.post(`/SZWL-SERVER/tHuifuMch/addMerchant`, params);

+ 3 - 2
src/utils/axios.js

@@ -1,7 +1,7 @@
 import Qs from 'qs';
 import axios from 'axios';
 // import { Toast } from 'vant';
-import { showLoadingToast, showFailToast  } from 'vant';
+import { showLoadingToast, showFailToast, closeToast  } from 'vant';
 import router from '../router';
 // 导入配置
 import kConfig from './config';
@@ -22,7 +22,7 @@ service.interceptors.request.use(config => {
   showLoadingToast({
     message: curLang === 'zh' ? '加载中...' : 'Loading...',
     forbidClick: true,
-    duration: 100,
+    duration: 0,
   });
   // 把localStorage的token放在Authorization里
   let loginUser = localStorage.getItem('loginUser');
@@ -35,6 +35,7 @@ service.interceptors.request.use(config => {
 
 // 响应拦截器
 service.interceptors.response.use(res => {
+  closeToast();
   if (res.config.url.indexOf('/tAdmin/getRelationAdminUsername') > -1) {
     return Promise.resolve(res);
   }

+ 14 - 14
src/views/device/deviceSearch.vue

@@ -174,25 +174,25 @@ export default {
     const equimentTypeShow = ref(false); // 设备机型级联状态
     const equimentTypeOptions = ref([
       {
-        text: 'MG330',
+        text: 'SC330',
         value: 'MG330',
       },
       {
-        text: 'MG320',
+        text: 'SC320',
         value: 'MG320',
       },
-      {
-        text: 'MG301',
-        value: 'MG301',
-      },
-      {
-        text: 'MG280',
-        value: 'MG280',
-      },
-      {
-        text: 'P30',
-        value: 'P30',
-      }
+      // {
+      //   text: 'SC301',
+      //   value: 'MG301',
+      // },
+      // {
+      //   text: 'SC280',
+      //   value: 'MG280',
+      // },
+      // {
+      //   text: 'P30',
+      //   value: 'P30',
+      // }
     ]); // 设备机型级联选项
     const equimentTypeFinish = ({ selectedOptions }) => {
       equimentTypeShow.value = false;

+ 8 - 1
src/views/device/deviceSet.vue

@@ -57,7 +57,7 @@
             </template>
           </van-field>
         </div> -->
-        <van-field readonly v-model="deviceDetal.equimentType" :label="`${$t('device.machineType')}`" placeholder="" />
+        <van-field readonly v-model="equimentType" :label="`${$t('device.machineType')}`" placeholder="" />
         <!-- mg280才有到期时间 -->
         <template v-if="deviceDetal?.equimentType?.indexOf('mg280') !== -1">
           <van-field readonly v-model="deviceDetal.lastUseDate" :label="`${$t('device.expirationTime')}`"
@@ -305,6 +305,7 @@ export default {
       messageReceiver2: "",
       messageReceiver3: "",
     });
+    const equimentType = ref('');
     let tagsList = reactive({
       arr: [],
     });
@@ -406,6 +407,11 @@ export default {
         if (data.data.machineType === '1') {
           machineType.value = '1';
         }
+        if (data.data.equimentType === 'MG320') {
+          equimentType.value = 'SC320';
+        } else if (data.data.equimentType === 'MG330') {
+          equimentType.value = 'SC330';
+        }
       } else {
         showFailToast(data.message);
       }
@@ -551,6 +557,7 @@ export default {
       paymentColumns,
       onConfirm,
       showPayment,
+      equimentType,
     };
   },
 };

+ 9 - 4
src/views/orderCenter/index.vue

@@ -625,22 +625,27 @@ export default {
 
     // 跳转订单导出
     const gotoOrderExcel = async () => {
+      if (searchParams.type == null) {
+        searchParams.type = user.ifForeign;
+      }
       // 显示加载框
-      const loadingInstance = showLoadingToast({
-        message: '加载中...',
+      const downloadOrder = showLoadingToast({
         forbidClick: true,
+        duration: 0,
       });
       try {
         const { headers, data } = await Api_getOnlineExport(searchParams);
         // 请求完成后隐藏加载框
-        loadingInstance.clear();
+        downloadOrder.close();
         $M_ExportFile(data, headers);
         // 处理返回的数据
       } catch (error) {
         // 请求发生错误时隐藏加载框
-        loadingInstance.clear();
+        downloadOrder.close();
         // 处理错误情况
         console.error(error);
+      } finally {
+        downloadOrder.close();
       }
     };
     // 订单详情-退款弹窗

+ 65 - 33
src/views/settlement/index.vue

@@ -23,7 +23,7 @@
           <div class="van-cell van-field">
             <div class="van-cell__title van-field__label"><span>{{ $t('joinpayMch.huifuAuditStatus') }}</span></div>
             <div class="van-cell__value van-field__value" style="text-align: left;">
-              <span :style="{
+              <!-- <span :style="{
                 color: huifuMchID != null ? (huifuAuditStatus == '2' ? (conStat == '5' ? '#00ff80' : '#FFA500') :
                   (huifuAuditStatus == '0' ? '#FFA500' : (huifuAuditStatus == '1' || huifuAuditStatus == '4' ? '#FFA500' :
                     '#FF0000'))) : '#FFA500'
@@ -31,6 +31,15 @@
                 {{ huifuMchID != null ? (huifuAuditStatus == '2' ? (conStat == '5' ? '注册成功' : '待签约') :
                   (huifuAuditStatus == '0' ? '待上传证件图片' : (huifuAuditStatus == '1' || huifuAuditStatus == '4' ? '待签约' :
                     '审核未通过'))) : '未注册' }}
+              </span> -->
+              <span :style="{
+                color: huifuMchID != null ? (huifuAuditStatus == '2' ? '#00ff80' : (huifuAuditStatus == '0' ? '#FFA500' :
+                  (huifuAuditStatus == '1' || huifuAuditStatus == '4' ? '#FFA500' :
+                    '#FF0000'))) : '#FFA500'
+              }">
+                {{ huifuMchID != null ? (huifuAuditStatus == '2' ? '注册成功' : (huifuAuditStatus == '0' ? '待上传证件图片' :
+                  (huifuAuditStatus == '1' || huifuAuditStatus == '4' ? '待签约' :
+                    '审核未通过'))) : '未注册' }}
               </span>
             </div>
           </div>
@@ -44,7 +53,7 @@
           <div class="van-cell van-field requiredLeft">
             <div class="van-cell__title van-field__label"><span>{{ $t('joinpayMch.merchantType') }}</span></div>
             <div class="van-cell__value van-field__value radioBox">
-              <van-radio-group v-model="altMerchantType" direction="horizontal" @change="fieldUpdate">
+              <van-radio-group v-model="altMerchantType" direction="horizontal" @change="fieldUpdate" :disabled="huifuMchID != null || joinPayMchID != null">
                 <van-radio name="10" icon-size="18px">{{ $t('joinpayMch.personal') }}</van-radio>
                 <!-- <van-radio name="11" icon-size="18px">{{$t('joinpayMch.individualBusinesses')}}</van-radio> -->
                 <van-radio name="12" icon-size="18px">{{ $t('joinpayMch.enterprise') }}</van-radio>
@@ -66,7 +75,7 @@
               </van-popover>
             </div>
             <!-- 商户简称 -->
-            <div class="cell-input">
+            <!-- <div class="cell-input">
               <van-popover v-model:show="shortNameVisible" trigger="manual" placement="bottom"
                 popover-class="custom-popover" :offset="[25, 0]" theme="dark">
                 <template #reference>
@@ -77,7 +86,7 @@
                 </template>
                 {{ $t('joinpayMch.merchantAbbreviationTips') }}
               </van-popover>
-            </div>
+            </div> -->
             <!-- 注册地址 -->
             <van-field v-model="registeredAddress" is-link readonly name="registeredAddress"
               :label="$t('huifuMch.huifuRegisteredAddress')"
@@ -85,15 +94,15 @@
               :rules="[{ required: true, message: $t('huifuMch.huifuRegisteredAddressPlaceholder') }]"
               @click="showReAddress = true" />
             <!-- 成立时间 -->
-            <van-field v-model="companyFoundDate" readonly name="companyFoundDate"
+            <!-- <van-field v-model="companyFoundDate" readonly name="companyFoundDate"
               :label="$t('huifuMch.companyFoundDate')" :placeholder="$t('huifuMch.companyFoundDatePlaceholder')"
               @click="showFoundDate = true"
-              :rules="[{ required: true, message: $t('huifuMch.companyFoundDatePlaceholder') }]" />
+              :rules="[{ required: true, message: $t('huifuMch.companyFoundDatePlaceholder') }]" /> -->
             <!-- 客服电话 -->
-            <van-field v-model="servicePhoneValue" name="servicePhoneValue" :label="$t('huifuMch.huifuServicePhone')"
+            <!-- <van-field v-model="servicePhoneValue" name="servicePhoneValue" :label="$t('huifuMch.huifuServicePhone')"
               :placeholder="$t('huifuMch.huifuServicePhonePlaceholder')"
               :rules="[{ required: true, message: $t('huifuMch.huifuServicePhonePlaceholder') }]"
-              @update:model-value="fieldUpdate" />
+              @update:model-value="fieldUpdate" /> -->
           </div>
           <div class="intervalRow"></div>
           <!-- 联系人姓名 -->
@@ -107,10 +116,10 @@
             :rules="[{ required: true, message: $t('joinpayMch.cellPhonePlaceholder') }]"
             @update:model-value="fieldUpdate" />
           <!-- 联系人邮箱 -->
-          <van-field class="requiredLeft" v-model="emailValue" name="emailValue" :label="$t('huifuMch.huifuContactEmail')"
+          <!-- <van-field class="requiredLeft" v-model="emailValue" name="emailValue" :label="$t('huifuMch.huifuContactEmail')"
             :placeholder="$t('huifuMch.huifuContactEmailPlaceholder')"
             :rules="[{ required: true, pattern: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/, message: $t('huifuMch.huifuContactEmailMessage') }]"
-            @update:model-value="fieldUpdate" />
+            @update:model-value="fieldUpdate" /> -->
           <!-- 法人/个人姓名 -->
           <van-field class="requiredLeft" v-model="legalPerson" name="legalPerson"
             :label="$t('joinpayMch.nameOfLegalPerson/IndividualLabel')"
@@ -166,14 +175,19 @@
           <div class="van-cell van-field" v-if="pageType === '4'">
             <div class="van-cell__title van-field__label"><span>{{ $t('joinpayMch.signingStatus') }}</span></div>
             <div class="van-cell__value van-field__value radioBox" style="display: flex; justify-content: space-around;">
-              <span
+              <!-- <span
                 :style="{ color: signStatus == '签约成功' ? (conStat == null && huifuMchID == null ? '#00ff80' : (conStat == 5 && huifuAuditStatus == '2' ? '#00ff80' : '#FFA500')) : '#FFA500' }">
-                <!-- {{ signStatus == "签约成功" && conStat == "5" ? signStatus : "待签约" }} -->
                 {{ signStatus == '签约成功' ? (conStat == null && huifuMchID == null ? signStatus : (conStat == 5 &&
                   huifuAuditStatus == '2' ?
                   signStatus : '待签约')) : '待签约' }}
+              </span> -->
+              <span
+                :style="{ color: signStatus == '签约成功' ? (huifuMchID == null ? '#00ff80' : (huifuAuditStatus == '2' ? '#00ff80' : '#FFA500')) : '#FFA500' }">
+                {{ signStatus == '签约成功' ? (huifuMchID == null ? signStatus : (huifuAuditStatus == '2' ? signStatus :
+                  '待签约')) : '待签约' }}
               </span>
-              <van-button span="5" round type="primary" style="height: 2em; padding: 0 2.5em" @click='altMchSignFun()'>{{
+              <van-button :disabled="huifuMchID == null ? (signStatus == '签约成功' ? true : false) : (huifuAuditStatus == '2' && signStatus == '签约成功' ? true : false)" 
+              span="5" round type="primary" style="height: 2em; padding: 0 2.5em" @click='altMchSignFun()'>{{
                 $t('joinpayMch.signAContract') }}
               </van-button>
             </div>
@@ -183,9 +197,9 @@
           <div class="van-cell van-field requiredLeft">
             <div class="van-cell__title van-field__label"><span>{{ $t('joinpayMch.accountType') }}</span></div>
             <div class="van-cell__value van-field__value radioBox">
-              <van-radio-group v-model="bankAccountType" direction="horizontal" @change="fieldUpdate">
+              <van-radio-group v-model="bankAccountType" direction="horizontal" @change="fieldUpdate" :disabled="altMerchantType === '10'">
                 <van-radio name="1" icon-size="18px">{{ $t('joinpayMch.debitCard') }}</van-radio>
-                <van-radio :disabled="altMerchantType === '10'" name="4" icon-size="18px">{{
+                <van-radio name="4" icon-size="18px">{{
                   $t('joinpayMch.corporateAccount')
                 }}</van-radio>
               </van-radio-group>
@@ -222,10 +236,14 @@
               :placeholder="$t('joinpayMch.interBankNoPlaceholder')"
               :rules="[{ required: bankAccountType === '4', message: $t('joinpayMch.interBankNoPlaceholder') }]"
               @update:model-value="fieldUpdate" />
-            <van-field v-model="openLicenceNoValue" name="openLicenceNoValue" :label="$t('huifuMch.openLicenceNo')"
+            <van-field v-model="bankCodeValue" name="bankCodeValue" :label="$t('huifuMch.bankCodeLabel')"
+              :placeholder="$t('huifuMch.bankCodePlaceholder')"
+              :rules="[{ required: true, message: $t('huifuMch.bankCodePlaceholder') }]"
+              @update:model-value="fieldUpdate" />
+            <!-- <van-field v-model="openLicenceNoValue" name="openLicenceNoValue" :label="$t('huifuMch.openLicenceNo')"
               :placeholder="$t('huifuMch.openLicenceNoPlaceholder')"
               :rules="[{ required: true, message: $t('huifuMch.openLicenceNoPlaceholder') }]"
-              @update:model-value="fieldUpdate" />
+              @update:model-value="fieldUpdate" /> -->
           </div>
           <div v-if="altMerchantType === '12'" class="requiredLeft">
             <!-- 营业执照有效期 -->
@@ -251,9 +269,9 @@
               @click="showEndDateLicense = true"
               :rules="[{ required: true, message: $t('huifuMch.endDatePlaceholder') }]" />
           </div>
-          <div class="intervalRow"></div>
+          <!-- <div class="intervalRow"></div> -->
           <!-- 经营范围 -->
-          <van-field v-model="manageScope" name="manageScope" :label="$t('joinpayMch.natureOfBusinessLabel')"
+          <!-- <van-field v-model="manageScope" name="manageScope" :label="$t('joinpayMch.natureOfBusinessLabel')"
             :placeholder="$t('joinpayMch.natureOfBusinessPlaceholder')" @update:model-value="fieldUpdate" />
           <van-field class="requiredLeft" v-model="manageAddr" is-link readonly name="manageAddr"
             :label="$t('huifuMch.huifuBusinessAddress')" :placeholder="$t('huifuMch.huifuBusinessAddressPlaceholder')"
@@ -267,10 +285,10 @@
                 {{ time === 0 ? $t('huifuMch.sendSms') : time + $t('huifuMch.replaysInSeconds') }}
               </van-button>
             </template>
-          </van-field>
+          </van-field> -->
           <!-- 操作 -->
-          <van-row justify="space-around" style="padding: 1em">
-            <van-button span="5" round type="primary" style="height: 2em; padding: 0 2em" native-type="submit">{{
+          <van-row justify="space-around" v-if="huifuAuditStatus != '4' && huifuAuditStatus != '1'" style="padding: 1em; margin: 2em 0;">
+            <van-button span="5" round type="primary" style="height: 2em; padding: 1.5em 2em" native-type="submit">{{
               $t('joinpayMch.submitDataForReview') }}
             </van-button>
           </van-row>
@@ -421,13 +439,13 @@
 <script>
 import { onMounted, reactive, toRefs, ref } from "vue";
 import sHeader from "../../components/SimpleHeader";
-import { showFailToast, showSuccessToast, showToast } from "vant";
+import { showFailToast, showSuccessToast, showToast, showLoadingToast } from "vant";
 import { areaList } from "@vant/area-data";
 import {
   getOneJoinPayMch, updateJoinPayMchCheck, altMchSign, updateConStat,
-  sentImage, updateApproveStatus, auditAddMerchant, saveJoinPayMch
+  sentImage, updateApproveStatus, saveJoinPayMch
 } from '../../service/joinpayMch';
-import { newUploadPic, submitHuifuCheck, getHuifuMchCheck, saveHuifuMch, auditUpdateMerchant, updateMerchant, sendSms } from "@/service/huifuMch";
+import { newUploadPic, getHuifuMchCheck, newSaveHuifuMch, updateMerchant, openAccount, sendSms } from "@/service/huifuMch";
 import { getLoginUser, styleUrl, getLocal, setLocal } from "../../common/js/utils";
 import dateUtil from "../../utils/dateUtil";
 import { useI18n } from "vue-i18n";
@@ -511,6 +529,7 @@ export default {
       bankAddress: '', // 银行地址,个人账户必填
       bankChannelNo: '', // 联行号;	string	对公账户;必填
       openLicenceNoValue: '', // 汇付参数,基本存款账户编号或核准号,对公账户必填
+      bankCodeValue: '', // 汇付参数,银行编号
       validityType1: '1', // 营业执照有效期类型
       licenseNo: '', // 营业执照编号;	string	对公账户;必填
       licenseExpiry: '', // 营业执照有效期;	string
@@ -556,6 +575,7 @@ export default {
       cardNo: '', // 银行卡号
       branchCode: '', // 联行号
       openLicenceNo: '', // 基本存款账户编号或核准号
+      bankCode: '',
       cardProvId: '', // 省编码
       cardAreaId: '', // 省编码
       mp: '', // 结算手机号
@@ -784,6 +804,7 @@ export default {
               addParams.bankAccountType = '4';
               addParams.certAddressValue = data.data.certAddress;
               addParams.openLicenceNoValue = data.data.openLicenceNo;
+              addParams.bankCodeValue = data.data.bankCode;
               addParams.bankChannelNo = data.data.branchCode;
             }
             addParams.validityType1 = data.data.licenseValidityType;
@@ -797,6 +818,7 @@ export default {
             huifuPicUpStatus.value = 0;
             console.log(huifuPicUpStatus.value)
           }
+          console.log('huifuAuditStatus', huifuAuditStatus.value)
         }
       }
     }
@@ -903,6 +925,7 @@ export default {
           huifuParams.cardType = '0';
           huifuParams.branchCode = addParams.bankChannelNo;
           huifuParams.openLicenceNo = addParams.openLicenceNoValue;
+          huifuParams.bankCode = addParams.bankCodeValue;
           huifuParams.certAddress = addParams.certAddressValue
         }
       }
@@ -913,7 +936,7 @@ export default {
         if (data.code === "00000") {
           let huifuMch = null;
           if (huifuMchNO.value === null) {
-            huifuMch = await saveHuifuMch(huifuParams);
+            huifuMch = await newSaveHuifuMch(huifuParams);
           } else {
             // huifuMch = await auditMerchantUpdate(huifuParams);
             huifuMch = await updateMerchant(huifuParams);
@@ -948,6 +971,11 @@ export default {
     }
     // 图片上传表单提交
     const sentImageFun = async () => {
+      const loadingUp = showLoadingToast({
+        message: '上传中...',
+        forbidClick: true,
+        duration: 0,
+      });
       const params = {
         id: joinPayMchID.value,
         type: addParams.bankAccountType === '4' ? '0' : '1',
@@ -972,20 +1000,23 @@ export default {
         const { data } = await sentImage(params);
         let response = null;
         if (data.code === "00000") {
-          response = await submitHuifuCheck(huifuParams);
+          response = await openAccount({ id: huifuMchID.value });
           if (response.data.code === "00000") {
             console.log("response", response);
+            loadingUp.close();
             showSuccessToast(t('joinpayMch.uploadSucceeded'));
             setTimeout(() => {
               location.reload();
             }, 1500);
           } else {
             console.log("response", response);
+            loadingUp.close();
             showFailToast(`${response.message}`);
           }
         } else { showFailToast(t('joinpayMch.submitFailed')); }
       } catch (error) {
         console.error('请求发生错误:', error);
+        loadingUp.close();
         showFailToast(t('joinpayMch.submitFailed'));
       }
     }
@@ -1002,12 +1033,13 @@ export default {
         const { data } = await altMchSign({ id: joinPayMchID.value });
         if (data.code === "00000") {
           console.log(huifuAuditStatus.value);
-          let huifuMch = null;
-          if (huifuAuditStatus.value === '1') {
-            huifuMch = await auditAddMerchant({ id: huifuMchID.value, status: "1" });
-          } else if (huifuAuditStatus.value === '4') {
-            huifuMch = await auditUpdateMerchant({ id: huifuMchID.value, status: "1" });
-          }
+          let huifuMch = await openAccount({ id: huifuMchID.value });
+          // let huifuMch = null;
+          // if (huifuAuditStatus.value === '1') {
+          //   huifuMch = await auditAddMerchant({ id: huifuMchID.value, status: "1" });
+          // } else if (huifuAuditStatus.value === '4') {
+          //   huifuMch = await auditUpdateMerchant({ id: huifuMchID.value, status: "1" });
+          // }
           // console.log(data1);
           if (huifuMch.data.code === "00000") {
             showSuccessToast(t('joinpayMch.signingSuccessfully'));