ソースを参照

Merge branch 'mtp_v6' of http://47.101.159.18:3000/Muchinfo/MTP2.0_WEB into mtp_v6

li.shaoyi 4 年 前
コミット
dd92dbe7da

+ 4 - 1
src/common/setup/validate/index.ts

@@ -5,7 +5,10 @@
  * @returns
  */
 export function validateCommon(value: any, errInfo: string) {
-    if (value === undefined || value === null || value === '' || value === 0) {
+    if (typeof value === 'string') {
+        value = value.trim()
+    }
+    if (!value) {
         return Promise.reject(errInfo);
     } else {
         return Promise.resolve();

+ 431 - 219
src/views/information/custom/compoments/add/index.vue

@@ -1,240 +1,452 @@
 <template>
   <!-- 平安客户资料 -->
-  <a-modal class="add-custom" :title="isAdd() ? '新增客户资料' : '修改客户资料'" v-model:visible="visible" @cancel="cancel" centered :maskClosable="false" v-if="isPingAnOem()" width="890px">
+  <a-modal
+    class="add-custom"
+    :title="isAdd() ? '新增客户资料' : '修改客户资料'"
+    v-model:visible="visible"
+    @cancel="cancel"
+    centered
+    :maskClosable="false"
+    v-if="isPingAnOem()"
+    width="890px"
+  >
     <template #footer>
-      <a-button key="submit" class="cancelBtn" :loading="loading" :disabled="loading" @click="submit(1)">完成 </a-button>
+      <a-button
+        key="submit"
+        class="cancelBtn"
+        :loading="loading"
+        :disabled="loading"
+        @click="submit(1)"
+      >完成</a-button>
     </template>
     <a-form class="inlineForm" ref="formRef" :model="formState" :rules="rules">
       <a-row :gutter="24">
-
         <a-col :span="12">
           <a-form-item label="客户类型" name="userinfotype">
-            <a-select class="typeSelect" style="width: 200px" v-model:value="formState.userinfotype" placeholder="请选择客户类型">
-              <a-select-option value="1"> 个人 </a-select-option>
-              <a-select-option value="2"> 企业 </a-select-option>
+            <a-select
+              class="typeSelect"
+              style="width: 200px"
+              v-model:value="formState.userinfotype"
+              placeholder="请选择客户类型"
+            >
+              <a-select-option value="1">个人</a-select-option>
+              <a-select-option value="2">企业</a-select-option>
             </a-select>
           </a-form-item>
         </a-col>
         <template v-if="!isPersonal()">
           <a-col :span="12">
             <a-form-item label="企业名称" name="customername">
-              <a-input class="dialogInput" v-model:value="formState.customername" style="width: 200px" placeholder="请输入企业名称" />
+              <a-input
+                class="dialogInput"
+                v-model:value="formState.customername"
+                style="width: 200px"
+                placeholder="请输入企业名称"
+              />
             </a-form-item>
           </a-col>
         </template>
         <template v-else>
           <a-col :span="12">
             <a-form-item label="姓名" name="username">
-              <a-input class="dialogInput" style="width: 200px" v-model:value="formState.username" placeholder="请输入姓名" />
+              <a-input
+                class="dialogInput"
+                style="width: 200px"
+                v-model:value="formState.username"
+                placeholder="请输入姓名"
+              />
             </a-form-item>
           </a-col>
         </template>
         <a-col :span="12">
           <a-form-item label="点价联系人" name="contactname">
-            <a-input class="dialogInput" style="width: 200px" v-model:value="formState.contactname" placeholder="请输入联系人" />
+            <a-input
+              class="dialogInput"
+              style="width: 200px"
+              v-model:value="formState.contactname"
+              placeholder="请输入联系人"
+            />
           </a-form-item>
         </a-col>
         <a-col :span="12">
           <a-form-item label="联系人手机号" name="mobilephone">
-            <a-input class="dialogInput" style="width: 200px" v-model:value="formState.mobilephone" placeholder="请输入联系人手机号" />
+            <a-input
+              class="dialogInput"
+              style="width: 200px"
+              v-model:value="formState.mobilephone"
+              placeholder="请输入联系人手机号"
+            />
           </a-form-item>
         </a-col>
       </a-row>
     </a-form>
   </a-modal>
   <!-- 其他项目客户资料 -->
-  <a-modal class="add-custom" v-else :title="isAdd() ? '新增客户资料' : '修改客户资料'" v-model:visible="visible" @cancel="cancel" centered :maskClosable="false" width="890px">
+  <a-modal
+    class="add-custom"
+    v-else
+    :title="isAdd() ? '新增客户资料' : '修改客户资料'"
+    v-model:visible="visible"
+    @cancel="cancel"
+    centered
+    :maskClosable="false"
+    width="890px"
+  >
     <template #footer>
-      <a-button key="submit" class="cancelBtn" :loading="loading" :disabled="loading" @click="submit(1)">保存草稿 </a-button>
-      <a-button key="submit" type="primary" :loading="loading" :disabled="loading" @click="submit(2)">提交审核 </a-button>
+      <a-button
+        key="submit"
+        class="cancelBtn"
+        :loading="loading"
+        :disabled="loading"
+        @click="submit(1)"
+      >保存草稿</a-button>
+      <a-button
+        key="submit"
+        type="primary"
+        :loading="loading"
+        :disabled="loading"
+        @click="submit(2)"
+      >提交审核</a-button>
     </template>
     <a-form class="inlineForm" ref="formRef" :model="formState" :rules="rules">
       <a-row :gutter="24">
         <template v-if="isQianHaiJin()">
           <a-col :span="12">
             <a-form-item label="所属机构" name="areaid">
-              <a-select class="typeSelect" style="width: 200px" v-model:value="formState.areaid" placeholder="请选择所属机构">
-                <a-select-option v-for="item in areaList" :key="item.userid">
-                  {{ item.accountname }}
-                </a-select-option>
+              <a-select
+                class="typeSelect"
+                style="width: 200px"
+                v-model:value="formState.areaid"
+                placeholder="请选择所属机构"
+              >
+                <a-select-option v-for="item in areaList" :key="item.userid">{{ item.accountname }}</a-select-option>
               </a-select>
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="所属客户经理" name="teammanageruserid">
-              <a-select class="typeSelect" style="width: 200px" v-model:value="formState.teammanageruserid" placeholder="请选择所属客户经理">
-                <a-select-option v-for="item in brokerList" :key="item.userid">
-                  {{ item.customername }}
-                </a-select-option>
+              <a-select
+                class="typeSelect"
+                style="width: 200px"
+                v-model:value="formState.teammanageruserid"
+                placeholder="请选择所属客户经理"
+              >
+                <a-select-option
+                  v-for="item in brokerList"
+                  :key="item.userid"
+                >{{ item.customername }}</a-select-option>
               </a-select>
             </a-form-item>
           </a-col>
           <a-col :span="12" v-if="isAdd()">
             <a-form-item label="登录账号" name="logincode">
-              <a-input class="dialogInput" v-model:value="formState.logincode" style="width: 200px" placeholder="请选择登录账号" />
+              <a-input
+                class="dialogInput"
+                v-model:value="formState.logincode"
+                style="width: 200px"
+                placeholder="请输入登录账号"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12" v-if="isAdd()">
             <a-form-item label="登录密码" name="loginpwd">
-              <a-input class="dialogInput" v-model:value="formState.loginpwd" style="width: 200px" placeholder="请选择登录密码" />
+              <a-input
+                class="dialogInput"
+                v-model:value="formState.loginpwd"
+                style="width: 200px"
+                placeholder="请输入登录密码"
+              />
             </a-form-item>
           </a-col>
         </template>
         <a-col :span="12">
           <a-form-item label="客户类型" name="userinfotype">
-            <a-select class="typeSelect" style="width: 200px" v-model:value="formState.userinfotype" placeholder="请选择客户类型">
-              <a-select-option value="1"> 个人 </a-select-option>
-              <a-select-option value="2"> 企业 </a-select-option>
+            <a-select
+              class="typeSelect"
+              style="width: 200px"
+              v-model:value="formState.userinfotype"
+              placeholder="请选择客户类型"
+            >
+              <a-select-option value="1">个人</a-select-option>
+              <a-select-option value="2">企业</a-select-option>
             </a-select>
           </a-form-item>
         </a-col>
         <template v-if="!isPersonal()">
           <a-col :span="12">
             <a-form-item label="企业名称" name="customername">
-              <a-input class="dialogInput" v-model:value="formState.customername" style="width: 200px" placeholder="请输入企业名称" />
+              <a-input
+                class="dialogInput"
+                v-model:value="formState.customername"
+                style="width: 200px"
+                placeholder="请输入企业名称"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="企业简称" name="nickname">
-              <a-input class="dialogInput" style="width: 200px" v-model:value="formState.nickname" placeholder="请输入企业简称" />
+              <a-input
+                class="dialogInput"
+                style="width: 200px"
+                v-model:value="formState.nickname"
+                placeholder="请输入企业简称"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="证件类型" name="cardtype">
-              <a-select class="inlineFormSelect" v-model:value="formState.cardtype" style="width: 200px" placeholder="请选择证件类型">
-                <a-select-option :value="item.enumitemname" v-for="item in cardTypeList" :key="item.autoid">
-                  {{ item.enumdicname }}
-                </a-select-option>
+              <a-select
+                class="inlineFormSelect"
+                v-model:value="formState.cardtype"
+                style="width: 200px"
+                placeholder="请选择证件类型"
+              >
+                <a-select-option
+                  :value="item.enumitemname"
+                  v-for="item in cardTypeList"
+                  :key="item.autoid"
+                >{{ item.enumdicname }}</a-select-option>
               </a-select>
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="法定代表人" name="legalpersonname">
-              <a-input class="dialogInput" style="width: 200px" v-model:value="formState.legalpersonname" placeholder="请输入法定代表人" />
+              <a-input
+                class="dialogInput"
+                style="width: 200px"
+                v-model:value="formState.legalpersonname"
+                placeholder="请输入法定代表人"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="证件号码" name="cardnum">
-              <a-input class="dialogInput" style="width: 200px" v-model:value="formState.cardnum" placeholder="请输入证件号码" />
+              <a-input
+                class="dialogInput"
+                style="width: 200px"
+                v-model:value="formState.cardnum"
+                placeholder="请输入证件号码"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="纳税人识别号" name="taxpayernum">
-              <a-input class="dialogInput" style="width: 200px" v-model:value="formState.taxpayernum" placeholder="请输入纳税人识别号" />
+              <a-input
+                class="dialogInput"
+                style="width: 200px"
+                v-model:value="formState.taxpayernum"
+                placeholder="请输入纳税人识别号"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="营业执照">
-              <UploadImg :visible="visible" :imgList="attachmentImgList" @upload="attachmentUpLoad" />
+              <UploadImg
+                :visible="visible"
+                :imgList="attachmentImgList"
+                @upload="attachmentUpLoad"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="联系人" name="contactname">
-              <a-input class="dialogInput" style="width: 200px" v-model:value="formState.contactname" placeholder="请输入联系人" />
+              <a-input
+                class="dialogInput"
+                style="width: 200px"
+                v-model:value="formState.contactname"
+                placeholder="请输入联系人"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="联系人手机号" name="mobilephone">
-              <a-input class="dialogInput" style="width: 200px" v-model:value="formState.mobilephone" placeholder="请输入联系人手机号" />
+              <a-input
+                class="dialogInput"
+                style="width: 200px"
+                v-model:value="formState.mobilephone"
+                placeholder="请输入联系人手机号"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="联系电话" name="telphone">
-              <a-input class="dialogInput" style="width: 200px" v-model:value="formState.telphone" placeholder="请输入联系电话" />
+              <a-input
+                class="dialogInput"
+                style="width: 200px"
+                v-model:value="formState.telphone"
+                placeholder="请输入联系电话"
+              />
             </a-form-item>
           </a-col>
-
         </template>
         <template v-else>
           <a-col :span="12">
             <a-form-item label="姓名" name="username">
-              <a-input class="dialogInput" style="width: 200px" v-model:value="formState.username" placeholder="请输入姓名" />
+              <a-input
+                class="dialogInput"
+                style="width: 200px"
+                v-model:value="formState.username"
+                placeholder="请输入姓名"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="身份证号码" name="cardnum">
-              <a-input class="dialogInput" style="width: 200px" v-model:value="formState.cardnum" placeholder="请输入身份证号码" />
+              <a-input
+                class="dialogInput"
+                style="width: 200px"
+                v-model:value="formState.cardnum"
+                placeholder="请输入身份证号码"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="手机号码" name="mobilephone">
-              <a-input class="dialogInput" style="width: 200px" v-model:value="formState.mobilephone" placeholder="请输入手机号码" />
+              <a-input
+                class="dialogInput"
+                style="width: 200px"
+                v-model:value="formState.mobilephone"
+                placeholder="请输入手机号码"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="身份证正面照" name="cardbackphotourl">
-              <UploadImg :visible="visible" :imgList="cardfrontImgList" @upload="cardfrontphotourlUpLoad" />
+              <UploadImg
+                :visible="visible"
+                :imgList="cardfrontImgList"
+                @upload="cardfrontphotourlUpLoad"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="邮箱" name="email">
-              <a-input class="dialogInput" style="width: 200px" v-model:value="formState.email" placeholder="请输入邮箱" />
+              <a-input
+                class="dialogInput"
+                style="width: 200px"
+                v-model:value="formState.email"
+                placeholder="请输入邮箱"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="身份证反面照" name="cardfrontphotourl">
-              <UploadImg :visible="visible" :imgList="cardbackImgList" @upload="cardbackphotourlUpLoad" />
+              <UploadImg
+                :visible="visible"
+                :imgList="cardbackImgList"
+                @upload="cardbackphotourlUpLoad"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="联系电话" name="telphone">
-              <a-input class="dialogInput" style="width: 200px" v-model:value="formState.telphone" placeholder="请输入联系电话" />
+              <a-input
+                class="dialogInput"
+                style="width: 200px"
+                v-model:value="formState.telphone"
+                placeholder="请输入联系电话"
+              />
             </a-form-item>
           </a-col>
           <a-col :span="12" v-if="isQianHaiJin()">
             <a-form-item label="性别" name="sex">
-              <a-select class="inlineFormSelect" v-model:value="formState.sex" style="width: 200px" placeholder="请选择性别">
-                <a-select-option :value="item.id" v-for="item in sexList" :key="item.id">
-                  {{ item.value }}
-                </a-select-option>
+              <a-select
+                class="inlineFormSelect"
+                v-model:value="formState.sex"
+                style="width: 200px"
+                placeholder="请选择性别"
+              >
+                <a-select-option
+                  :value="item.id"
+                  v-for="item in sexList"
+                  :key="item.id"
+                >{{ item.value }}</a-select-option>
               </a-select>
               <!-- <a-input class="dialogInput"
                        style="width: 200px"
                        v-model:value="formState.sex"
-                       placeholder="请选择性别" /> -->
+              placeholder="请选择性别" />-->
             </a-form-item>
           </a-col>
           <a-col :span="12" v-if="isQianHaiJin()">
-
             <a-form-item label="生日" name="birthday">
-              <a-date-picker v-model:value="formState.birthday" :allowClear="false" style="width: 200px" placeholder="请选择生日" class="commonDatePicker" />
+              <a-date-picker
+                v-model:value="formState.birthday"
+                :allowClear="false"
+                style="width: 200px"
+                placeholder="请选择生日"
+                class="commonDatePicker"
+              />
               <!-- <a-input class="dialogInput"
                        style="width: 200px"
                        v-model:value="formState.birthday"
-                       placeholder="请选择性别" /> -->
+              placeholder="请选择性别" />-->
             </a-form-item>
           </a-col>
           <a-col :span="12">
-            <a-form-item> &nbsp; </a-form-item>
+            <a-form-item>&nbsp;</a-form-item>
           </a-col>
         </template>
         <a-col :span="24">
           <a-form-item label="通讯地址">
-            <a-select class="inlineFormSelect" style="width: 205px" v-model:value="formState.provinceid" @change="getCityList" placeholder="请选择省">
-              <a-select-option v-for="item in provinceList" :key="item.autoid" :value="item.autoid">
-                {{ item.divisionname }}
-              </a-select-option>
+            <a-select
+              class="inlineFormSelect"
+              style="width: 205px"
+              v-model:value="formState.provinceid"
+              @change="getCityList"
+              placeholder="请选择省"
+            >
+              <a-select-option
+                v-for="item in provinceList"
+                :key="item.autoid"
+                :value="item.autoid"
+              >{{ item.divisionname }}</a-select-option>
             </a-select>
-            <a-select class="inlineFormSelect ml9" style="width: 205px" v-model:value="formState.cityid" @change="getDistrictList" placeholder="请选择市">
-              <a-select-option v-for="item in cityList" :key="item.autoid" :value="item.autoid">
-                {{ item.divisionname }}
-              </a-select-option>
+            <a-select
+              class="inlineFormSelect ml9"
+              style="width: 205px"
+              v-model:value="formState.cityid"
+              @change="getDistrictList"
+              placeholder="请选择市"
+            >
+              <a-select-option
+                v-for="item in cityList"
+                :key="item.autoid"
+                :value="item.autoid"
+              >{{ item.divisionname }}</a-select-option>
             </a-select>
-            <a-select class="inlineFormSelect ml9" v-model:value="formState.districtid" style="width: 205px" placeholder="请选择县(区)">
-              <a-select-option v-for="item in districtList" :key="item.autoid" :value="item.autoid">
-                {{ item.divisionname }}
-              </a-select-option>
+            <a-select
+              class="inlineFormSelect ml9"
+              v-model:value="formState.districtid"
+              style="width: 205px"
+              placeholder="请选择县(区)"
+            >
+              <a-select-option
+                v-for="item in districtList"
+                :key="item.autoid"
+                :value="item.autoid"
+              >{{ item.divisionname }}</a-select-option>
             </a-select>
           </a-form-item>
         </a-col>
         <a-col :span="24">
           <a-form-item label="&nbsp;" name="cardaddress">
-            <a-input class="dialogInput" style="width: 635px" v-model:value="formState.cardaddress" placeholder="请输入详细地址" />
+            <a-input
+              class="dialogInput"
+              style="width: 635px"
+              v-model:value="formState.cardaddress"
+              placeholder="请输入详细地址"
+            />
           </a-form-item>
         </a-col>
         <a-col :span="24">
           <a-form-item label="备注" name="remark">
-            <a-input class="dialogInput" style="width: 635px" v-model:value="formState.remark" placeholder="请输入备注" />
+            <a-input
+              class="dialogInput"
+              style="width: 635px"
+              v-model:value="formState.remark"
+              placeholder="请输入备注"
+            />
           </a-form-item>
         </a-col>
       </a-row>
@@ -257,166 +469,166 @@ import { addCustomerInfoOperate } from '@/services/proto/accountinfo';
 import { CustomerInfoOperateReq } from '@/services/proto/accountinfo/interface';
 import { mergeTwoObj } from '@/utils/objHandle';
 import { toBase64String } from '@/utils/storage/base64';
+import moment from 'moment';
 import { defineComponent, PropType, ref } from 'vue';
 import { FormState } from './interface';
 import { getCardType, handleAreaList, handleBrokerApplyt, handleForm } from './setup';
-import moment, { Moment } from 'moment';
 
 export default defineComponent({
-    name: 'add-custom',
-    emits: ['cancel', 'update'],
-    components: { UploadImg },
-    props: {
-        selectedRow: {
-            default: {},
-            type: Object as PropType<QhjCustomer>,
-        },
+  name: 'add-custom',
+  emits: ['cancel', 'update'],
+  components: { UploadImg },
+  props: {
+    selectedRow: {
+      default: {},
+      type: Object as PropType<QhjCustomer>,
     },
-    setup(props, context) {
-        // 控制关闭弹窗
-        const { visible, cancel } = _closeModal(context);
-        const loading = ref<boolean>(false);
-        // 证件类型
-        const cardTypeList = ref<AllEnums[]>(getCardType());
-        // 表单
-        const { formRef, formState, rules } = handleForm();
-        // 地址
-        const { cityList, districtList, provinceList, getCityList, getDistrictList } = getAddress();
+  },
+  setup(props, context) {
+    // 控制关闭弹窗
+    const { visible, cancel } = _closeModal(context);
+    const loading = ref<boolean>(false);
+    // 证件类型
+    const cardTypeList = ref<AllEnums[]>(getCardType());
+    // 表单
+    const { formRef, formState, rules } = handleForm();
+    // 地址
+    const { cityList, districtList, provinceList, getCityList, getDistrictList } = getAddress();
+    // 营业执照
+    const { getFirstImg: getAttachmentImg, uploadImgAction: attachmentUpLoad, uploadImgList: attachmentImgList, handleImg: attachmentHandle } = getUploadImg();
+    // 背面证件照地址
+    const { getFirstImg: getBackImg, uploadImgAction: cardbackphotourlUpLoad, uploadImgList: cardbackImgList, handleImg: cardbackHandle } = getUploadImg();
+    // 正面证件照地址
+    const { getFirstImg: getFrontImg, uploadImgAction: cardfrontphotourlUpLoad, uploadImgList: cardfrontImgList, handleImg: cardfrontHandle } = getUploadImg();
+    //查询所属机构列表
+    const { areaList, getAreaList } = handleAreaList();
+    // 查询客户经理
+    const { brokerList, getBrokerApply } = handleBrokerApplyt();
+    if (isQianHaiJin()) {
+      Promise.all([getAreaList(loading), getBrokerApply(loading)]);
+    }
+
+    // 性别
+    const sexList = [
+      { id: 0, value: '女' },
+      { id: 1, value: '男' },
+    ];
+    function isPersonal(): boolean {
+      return formState.userinfotype === '1';
+    }
+    const isAdd = () => !props.selectedRow.userinfotype;
+    const isN = (value: string) => value === '--';
+    // 修改 客户资料的逻辑
+    if (!isAdd()) {
+      console.log('修改::::::::::::::::::::::::::');
+
+      mergeTwoObj(formState, props.selectedRow);
+      formState.userinfotype = formState.userinfotype.toString();
+      if (isPersonal()) {
+        formState.username = props.selectedRow.customername;
+      } else {
+        formState.username = props.selectedRow.username;
+      }
+      const { provinceid, cityid, address, mobile, memberuserid, brokerid, cardfrontphotourl, cardbackphotourl } = props.selectedRow;
+      formState.cardaddress = isN(address) ? '' : address;
+      formState.mobilephone = mobile;
+      formState.areaid = memberuserid;
+      formState.teammanageruserid = brokerid ? brokerid : undefined;
+      provinceid ? getCityList(provinceid) : (formState.provinceid = undefined);
+      cityid ? getDistrictList(cityid) : ((formState.cityid = undefined), (formState.districtid = undefined));
+
+      if (cardfrontphotourl && !isN(cardfrontphotourl)) {
         // 营业执照
-        const { getFirstImg: getAttachmentImg, uploadImgAction: attachmentUpLoad, uploadImgList: attachmentImgList, handleImg: attachmentHandle } = getUploadImg();
+        attachmentImgList.value = attachmentHandle(cardfrontphotourl);
+      }
+      if (cardbackphotourl && !isN(cardbackphotourl)) {
         // 背面证件照地址
-        const { getFirstImg: getBackImg, uploadImgAction: cardbackphotourlUpLoad, uploadImgList: cardbackImgList, handleImg: cardbackHandle } = getUploadImg();
+        cardbackImgList.value = cardbackHandle(cardbackphotourl);
+      }
+      if (cardbackphotourl && !isN(cardbackphotourl)) {
         // 正面证件照地址
-        const { getFirstImg: getFrontImg, uploadImgAction: cardfrontphotourlUpLoad, uploadImgList: cardfrontImgList, handleImg: cardfrontHandle } = getUploadImg();
-        //查询所属机构列表
-        const { areaList, getAreaList } = handleAreaList();
-        // 查询客户经理
-        const { brokerList, getBrokerApply } = handleBrokerApplyt();
-        if (isQianHaiJin()) {
-            Promise.all([getAreaList(loading), getBrokerApply(loading)]);
-        }
-
-        // 性别
-        const sexList = [
-            { id: 0, value: '女' },
-            { id: 1, value: '男' },
-        ];
-        function isPersonal(): boolean {
-            return formState.userinfotype === '1';
-        }
-        const isAdd = () => !props.selectedRow.userinfotype;
-        const isN = (value: string) => value === '--';
-        // 修改 客户资料的逻辑
-        if (!isAdd()) {
-            console.log('修改::::::::::::::::::::::::::');
+        cardfrontImgList.value = cardfrontHandle(cardbackphotourl);
+      }
+    }
 
-            mergeTwoObj(formState, props.selectedRow);
-            formState.userinfotype = formState.userinfotype.toString();
-            if (isPersonal()) {
-                formState.username = props.selectedRow.customername;
-            } else {
-                formState.username = props.selectedRow.username;
-            }
-            const { provinceid, cityid, address, mobile, memberuserid, brokerid, cardfrontphotourl, cardbackphotourl } = props.selectedRow;
-            formState.cardaddress = isN(address) ? '' : address;
-            formState.mobilephone = mobile;
-            formState.areaid = memberuserid;
-            formState.teammanageruserid = brokerid ? brokerid : undefined;
-            provinceid ? getCityList(provinceid) : (formState.provinceid = undefined);
-            cityid ? getDistrictList(cityid) : ((formState.cityid = undefined), (formState.districtid = undefined));
-
-            if (cardfrontphotourl && !isN(cardfrontphotourl)) {
-                // 营业执照
-                attachmentImgList.value = attachmentHandle(cardfrontphotourl);
-            }
-            if (cardbackphotourl && !isN(cardbackphotourl)) {
-                // 背面证件照地址
-                cardbackImgList.value = cardbackHandle(cardbackphotourl);
-            }
-            if (cardbackphotourl && !isN(cardbackphotourl)) {
-                // 正面证件照地址
-                cardfrontImgList.value = cardfrontHandle(cardbackphotourl);
+    function submit(OperateType: 1 | 2) {
+      validateAction<FormState>(formRef, formState).then((param) => {
+        console.log(props.selectedRow);
+        const reqParam: CustomerInfoOperateReq = {
+          operatetype: isAdd() ? 1 : 2, // 1: 新增 2:修改
+          userid: getUserId(), // 必填
+          areaid: getUserId(),
+          userinfotype: Number(param.userinfotype),
+          username: Number(param.userinfotype) === 1 ? param.username : param.customername,
+          userstate: OperateType, // 1: 保存草稿 2: 新增
+          // 以上必填
+          cardtype: (param.cardtype as number) !== undefined ? (param.cardtype as number) : 0, // 证件类型
+          cardnum: param.cardnum, // 证件号码
+          nickname: param.nickname, // 昵称
+          remark: param.remark, // 备注
+          mobilephone: param.mobilephone, //  手机号码
+          telphone: param.telphone, // 电话
+          cardfrontphotourl: isPersonal() ? getFrontImg() : getAttachmentImg(), // 正面照片
+          cardbackphotourl: isPersonal() ? getBackImg() : '', // 背面证件照地址
+          ipaddress: param.cardaddress, // 证件地址
+          cityid: (param.cityid as number) !== undefined ? (param.cityid as number) : 0, //城市
+          districtid: (param.districtid as number) !== undefined ? (param.districtid as number) : 0, // 地区
+          // countryid: param.,9
+          provinceid: (param.provinceid as number) !== undefined ? (param.provinceid as number) : 0, //省
+          contactname: param.contactname, // 联系人
+          legalpersonname: param.legalpersonname, // 法人姓名(企业)
+          taxpayernum: param.taxpayernum, // 纳税人识别号
+          email: param.email, // email
+          proxystatementurl: '',
+        };
+        if (isQianHaiJin()) {
+          // 千海金
+          reqParam.areaid = param.areaid as number;
+          reqParam.logincode = param.logincode;
+          reqParam.teammanageruserid = param.teammanageruserid ? param.teammanageruserid : 0;
+          if (isPersonal()) {
+            reqParam.sex = param.sex;
+            if (param.birthday) {
+              reqParam.birthday = moment(param.birthday).format('YYYY-MM-DD');
             }
+          }
+          reqParam.loginpwd = toBase64String(toBase64String(param.loginpwd));
+          reqParam.userstate = 2;
         }
-
-        function submit(OperateType: 1 | 2) {
-            validateAction<FormState>(formRef, formState).then((param) => {
-                console.log(props.selectedRow);
-                const reqParam: CustomerInfoOperateReq = {
-                    operatetype: isAdd() ? 1 : 2, // 1: 新增 2:修改
-                    userid: getUserId(), // 必填
-                    areaid: getUserId(),
-                    userinfotype: Number(param.userinfotype),
-                    username: Number(param.userinfotype) === 1 ? param.username : param.customername,
-                    userstate: OperateType, // 1: 保存草稿 2: 新增
-                    // 以上必填
-                    cardtype: (param.cardtype as number) !== undefined ? (param.cardtype as number) : 0, // 证件类型
-                    cardnum: param.cardnum, // 证件号码
-                    nickname: param.nickname, // 昵称
-                    remark: param.remark, // 备注
-                    mobilephone: param.mobilephone, //  手机号码
-                    telphone: param.telphone, // 电话
-                    cardfrontphotourl: isPersonal() ? getFrontImg() : getAttachmentImg(), // 正面照片
-                    cardbackphotourl: isPersonal() ? getBackImg() : '', // 背面证件照地址
-                    ipaddress: param.cardaddress, // 证件地址
-                    cityid: (param.cityid as number) !== undefined ? (param.cityid as number) : 0, //城市
-                    districtid: (param.districtid as number) !== undefined ? (param.districtid as number) : 0, // 地区
-                    // countryid: param.,9
-                    provinceid: (param.provinceid as number) !== undefined ? (param.provinceid as number) : 0, //省
-                    contactname: param.contactname, // 联系人
-                    legalpersonname: param.legalpersonname, // 法人姓名(企业)
-                    taxpayernum: param.taxpayernum, // 纳税人识别号
-                    email: param.email, // email
-                    proxystatementurl: '',
-                };
-                if (isQianHaiJin()) {
-                    // 千海金
-                    reqParam.areaid = param.areaid as number;
-                    reqParam.logincode = param.logincode;
-                    reqParam.teammanageruserid = param.teammanageruserid ? param.teammanageruserid : 0;
-                    if (isPersonal()) {
-                        reqParam.sex = param.sex;
-                        if (param.birthday) {
-                            reqParam.birthday = moment(param.birthday).format('YYYY-MM-DD');
-                        }
-                    }
-                    reqParam.loginpwd = toBase64String(toBase64String(param.loginpwd));
-                    reqParam.userstate = 2;
-                }
-                debugger;
-                requestResultLoadingAndInfo(addCustomerInfoOperate, reqParam, loading, OperateType === 1 ? ['保存草稿成功', '保存草稿失败:'] : ['新增客户资料成功', '新增客户资料失败:']).then(() => {
-                    cancel(true);
-                });
-            });
-        }
-        return {
-            formState,
-            rules,
-            formRef,
-            cardTypeList,
-            isPersonal,
-            visible,
-            cancel,
-            submit,
-            loading,
-            cityList,
-            districtList,
-            provinceList,
-            areaList,
-            brokerList,
-            attachmentImgList,
-            cardbackImgList,
-            cardfrontImgList,
-            sexList,
-            getCityList,
-            getDistrictList,
-            attachmentUpLoad,
-            cardbackphotourlUpLoad,
-            cardfrontphotourlUpLoad,
-            isPingAnOem,
-            isQianHaiJin,
-            isAdd,
-        };
-    },
+        debugger;
+        requestResultLoadingAndInfo(addCustomerInfoOperate, reqParam, loading, OperateType === 1 ? ['保存草稿成功', '保存草稿失败:'] : ['新增客户资料成功', '新增客户资料失败:']).then(() => {
+          cancel(true);
+        });
+      });
+    }
+    return {
+      formState,
+      rules,
+      formRef,
+      cardTypeList,
+      isPersonal,
+      visible,
+      cancel,
+      submit,
+      loading,
+      cityList,
+      districtList,
+      provinceList,
+      areaList,
+      brokerList,
+      attachmentImgList,
+      cardbackImgList,
+      cardfrontImgList,
+      sexList,
+      getCityList,
+      getDistrictList,
+      attachmentUpLoad,
+      cardbackphotourlUpLoad,
+      cardfrontphotourlUpLoad,
+      isPingAnOem,
+      isQianHaiJin,
+      isAdd,
+    };
+  },
 });
 </script>

+ 4 - 0
src/views/information/custom/compoments/add/setup.ts

@@ -28,6 +28,8 @@ export function handleForm() {
     async function v_cardtype(rule: RuleObject, value: number) {
         return validateCommon(value, '请选择证件类型')
     }
+    const v_logincode = (rule: RuleObject, value: number) => validateCommon(value, '请输入登录账号')
+    const v_loginpwd = (rule: RuleObject, value: number) => validateCommon(value, '请输入登录密码')
     const rules = {
         userinfotype: [{ required: true, message: '请选择客户类型', trigger: 'change' }],
         areaid: [{ required: true, message: '请选择所属机构' }],
@@ -39,6 +41,8 @@ export function handleForm() {
         ],
         username: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
         nickname: [{ required: true, message: '请输入企业简称', trigger: 'blur' }],
+        logincode: [{ required: true, validator: v_logincode, trigger: 'blur' }],
+        loginpwd: [{ required: true, validator: v_loginpwd, trigger: 'blur' }],
         // cardtype: [{ required: true, validator: v_cardtype, trigger: 'change' }],
     };
     return { formRef, formState, rules }