Преглед на файлове

1.新增大中型、个贷业务下单时可新增联系人
2.优化资产下单

GouGengquan преди 1 седмица
родител
ревизия
dd307fd4da
променени са 3 файла, в които са добавени 169 реда и са изтрити 9 реда
  1. 9 1
      src/views/assets/placeOrder.vue
  2. 75 2
      src/views/major/placeOrder.vue
  3. 85 6
      src/views/personal/placeOrder.vue

+ 9 - 1
src/views/assets/placeOrder.vue

@@ -155,7 +155,15 @@
       <van-form @submit="saveLinkman()">
         <van-cell-group inset>
           <van-field label="联系人姓名" v-model="linkman.name" name="name" placeholder="请输入联系人姓名" :rules="[{ required: true, message: '请输入联系人姓名' }]" required />
-          <van-field label="联系电话" v-model="linkman.mobile" name="mobile" type="tel" placeholder="请输入联系电话" :rules="[{ required: true, message: '请输入联系电话' }]" required />
+          <van-field
+            label="联系电话"
+            v-model="linkman.mobile"
+            name="mobile"
+            type="tel"
+            placeholder="请输入联系电话"
+            :rules="[{ required: true, message: '请输入联系电话' },{message:'联系电话格式错误',pattern:new RegExp(/^(1\d{10})$|\d{3}-\d{8}|\d{4}-\d{7}$/)}]"
+            required
+          />
           <van-button round block type="primary" native-type="submit">提交</van-button>
         </van-cell-group>
       </van-form>

+ 75 - 2
src/views/major/placeOrder.vue

@@ -111,7 +111,11 @@
             clearable
             :rules="[{ required: true, message: '请选择客户联系人' }]"
             :required="true"
-          />
+          >
+            <template #button>
+              <div @click="openCreateLinkmanPopup()">新增</div>
+            </template>
+          </VanSinglePicker>
           <van-field name="dispenseBenefitRadio" label="分配产值" :rules="[{ required: true, message: '请选择是否分配产值' }]" required>
             <template #input>
               <van-radio-group v-model="major.dispenseBenefit" direction="horizontal" icon-size="14px">
@@ -157,16 +161,36 @@
         </div>
       </van-form>
     </div>
+
+    <!-- 新增客户联系人弹窗 -->
+    <van-popup v-model:show="showCreateLinkman" round :style="{ padding: '10px' }">
+      <van-form @submit="saveLinkman()">
+        <van-cell-group inset>
+          <van-field label="联系人姓名" v-model="linkman.name" name="name" placeholder="请输入联系人姓名" :rules="[{ required: true, message: '请输入联系人姓名' }]" required />
+          <van-field
+            label="联系电话"
+            v-model="linkman.mobile"
+            name="mobile"
+            type="tel"
+            placeholder="请输入联系电话"
+            :rules="[{ required: true, message: '请输入联系电话' },{message:'联系电话格式错误',pattern:new RegExp(/^(1\d{10})$|\d{3}-\d{8}|\d{4}-\d{7}$/)}]"
+            required
+          />
+          <van-button round block type="primary" native-type="submit">提交</van-button>
+        </van-cell-group>
+      </van-form>
+    </van-popup>
   </div>
 </template>
 
 <script>
+import { showDialog } from 'vant';
 import { mapStores } from 'pinia';
 import { useUserStore } from '@/stores/useUserStore';
 import { showNotify } from 'vant';
 import VanSinglePicker from '@/components/VanSinglePicker/index.vue';
 import { add } from '@/api/major';
-import { customerLinkmanDrop } from '@/api/customerLinkman';
+import { customerLinkmanDrop, add as addLinkman } from '@/api/customerLinkman';
 import { customerCompanyDrop } from '@/api/customerCompany';
 import { commit } from '@/api/workflow';
 import { majorDepartment } from '@/api/department';
@@ -292,6 +316,9 @@ export default {
       },
       // 接单部门
       allotDepartmentColumns: [],
+      // 新增联系人弹窗
+      showCreateLinkman: false,
+      linkman: {},
     };
   },
   computed: {
@@ -388,6 +415,52 @@ export default {
         }
       });
     },
+    // 打开新增联系人popup
+    openCreateLinkmanPopup() {
+      this.linkman = {};
+      if (this.major.clienteleType === '企业') {
+        if (this.major.clienteleSubId) {
+          this.showCreateLinkman = true;
+          this.linkman.terminal = false;
+          this.linkman.ccId = this.major.clienteleSubId;
+        } else {
+          showDialog({
+            message: '未选择客户名称与业务来源',
+          });
+        }
+      } else {
+        this.showCreateLinkman = true;
+        this.linkman.terminal = false;
+        this.linkman.ccId = 1;
+      }
+    },
+    // 新增客户联系人
+    saveLinkman() {
+      addLinkman(this.linkman).then((res) => {
+        if (res.code === 200) {
+          showNotify({ type: 'success', message: '新增成功' });
+        }
+        // ccId 不等于1说明新增的企业类型的客户联系人
+        if (this.linkman.ccId !== 1) {
+          this.findCustomerContract();
+        } else {
+          // 个人类型直接获取客户联系人
+          let simpleAll = new Object();
+          simpleAll.ccId = 1;
+          simpleAll.terminal = 0;
+          customerLinkmanDrop(simpleAll).then((res) => {
+            if (res.code === 200) {
+              // 使用 map 方法提取 id 和 name 属性
+              this.customerContractColumns = res.data.map((item) => ({
+                value: String(item.id),
+                text: String(item.name),
+              }));
+            }
+          });
+        }
+        this.showCreateLinkman = false;
+      });
+    },
     // 大中型下单
     addMajorOrder(values) {
       add(this.major).then((res) => {

+ 85 - 6
src/views/personal/placeOrder.vue

@@ -74,15 +74,19 @@
             :rules="[{ required: true, message: '请选择客户联系人' }]"
             :required="true"
             :search="true"
-          />
+          >
+            <template #button>
+              <div @click="openCreateLinkmanPopup()">新增</div>
+            </template>
+          </VanSinglePicker>
           <van-field label="中介" v-model="personal.agent" name="agent" placeholder="请输入中介" />
           <van-field label="贷款性质" v-model="personal.loanNature" name="loanNature" placeholder="请输入贷款性质" />
           <van-field label="贷款用途" v-model="personal.loanAim" name="loanAim" placeholder="请输入贷款用途" />
-          <van-field label="贷款额度" v-model="personal.loanLimit" name="loanLimit" type="number" placeholder="请输入贷款额度" :rules="[{ required: true, message: '请输入贷款额度' }]" required >
-            <template #button> 万元 </template>
+          <van-field label="贷款额度" v-model="personal.loanLimit" name="loanLimit" type="number" placeholder="请输入贷款额度" :rules="[{ required: true, message: '请输入贷款额度' }]" required>
+            <template #button>万元</template>
           </van-field>
-          <van-field label="贷款期限" v-model="personal.loanPeriod" name="loanPeriod" type="number" placeholder="请输入贷款期限" >
-            <template #button>  </template>
+          <van-field label="贷款期限" v-model="personal.loanPeriod" name="loanPeriod" type="number" placeholder="请输入贷款期限">
+            <template #button>年</template>
           </van-field>
           <van-field name="loanExpire" label="贷款是否到期">
             <template #input>
@@ -112,14 +116,34 @@
         </div>
       </van-form>
     </div>
+
+    <!-- 新增客户联系人弹窗 -->
+    <van-popup v-model:show="showCreateLinkman" round :style="{ padding: '10px' }">
+      <van-form @submit="saveLinkman()">
+        <van-cell-group inset>
+          <van-field label="联系人姓名" v-model="linkman.name" name="name" placeholder="请输入联系人姓名" :rules="[{ required: true, message: '请输入联系人姓名' }]" required />
+          <van-field
+            label="联系电话"
+            v-model="linkman.mobile"
+            name="mobile"
+            type="tel"
+            placeholder="请输入联系电话"
+            :rules="[{ required: true, message: '请输入联系电话' },{message:'联系电话格式错误',pattern:new RegExp(/^(1\d{10})$|\d{3}-\d{8}|\d{4}-\d{7}$/)}]"
+            required
+          />
+          <van-button round block type="primary" native-type="submit">提交</van-button>
+        </van-cell-group>
+      </van-form>
+    </van-popup>
   </div>
 </template>
 <script>
+import { showDialog } from 'vant';
 import { mapStores } from 'pinia';
 import { useUserStore } from '@/stores/useUserStore';
 import { showNotify } from 'vant';
 import VanSinglePicker from '@/components/VanSinglePicker/index.vue';
-import { customerLinkmanDrop } from '@/api/customerLinkman';
+import { customerLinkmanDrop, add as addLinkman } from '@/api/customerLinkman';
 import { customerCompanyDrop } from '@/api/customerCompany';
 import { add } from '@/api/personal';
 import { commit } from '@/api/workflow';
@@ -169,6 +193,9 @@ export default {
         bailorbTel: null,
         remark: null,
       },
+      // 新增联系人弹窗
+      showCreateLinkman: false,
+      linkman: {},
     };
   },
   computed: {
@@ -258,6 +285,58 @@ export default {
         }
       });
     },
+    // 打开新增联系人popup
+    openCreateLinkmanPopup() {
+      this.linkman = {};
+      if (this.personal.clienteleType) {
+        if (this.personal.clienteleType === '企业') {
+          if (this.personal.clienteleSubId) {
+            this.showCreateLinkman = true;
+            this.linkman.terminal = false;
+            this.linkman.ccId = this.personal.clienteleSubId;
+          } else {
+            showDialog({
+              message: '未选择客户名称与业务来源',
+            });
+          }
+        } else {
+          this.showCreateLinkman = true;
+          this.linkman.terminal = false;
+          this.linkman.ccId = 1;
+        }
+      } else {
+        showDialog({
+          message: '未选择客户类型',
+        });
+      }
+    },
+    // 新增客户联系人
+    saveLinkman() {
+      addLinkman(this.linkman).then((res) => {
+        if (res.code === 200) {
+          showNotify({ type: 'success', message: '新增成功' });
+        }
+        // ccId 不等于1说明新增的企业类型的客户联系人
+        if (this.linkman.ccId !== 1) {
+          this.findCustomerContract();
+        } else {
+          // 个人类型直接获取客户联系人
+          let simpleAll = new Object();
+          simpleAll.ccId = 1;
+          simpleAll.terminal = 0;
+          customerLinkmanDrop(simpleAll).then((res) => {
+            if (res.code === 200) {
+              // 使用 map 方法提取 id 和 name 属性
+              this.customerContractColumns = res.data.map((item) => ({
+                value: String(item.id),
+                text: String(item.name),
+              }));
+            }
+          });
+        }
+        this.showCreateLinkman = false;
+      });
+    },
     // 个贷下单
     addPersonalOrder() {
       // 将数组转换成JSON字符串后会影响表单的双向绑定,所以新建一个对象