From be675a43cbe0d1e23b2bf61c4fe2c9ed3e612380 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期二, 11 八月 2026 21:19:27 +0800
Subject: [PATCH] 修改了专家账号修改添加的身份证验证

---
 src/views/project/externalperson/index.vue |  137 ++++++++++++++++++++++++++++++---------------
 1 files changed, 91 insertions(+), 46 deletions(-)

diff --git a/src/views/project/externalperson/index.vue b/src/views/project/externalperson/index.vue
index 80fadc1..c818a8a 100644
--- a/src/views/project/externalperson/index.vue
+++ b/src/views/project/externalperson/index.vue
@@ -1,6 +1,12 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px">
+
+      <el-form-item label="璐﹀彿绫诲埆" prop="usertype">
+        <el-select v-model="queryParams.usertype" placeholder="璇烽�夋嫨璐﹀彿绫诲埆" clearable size="small">
+          <el-option v-for="dict in dict.type.sys_UserType" :key="dict.value" :label="dict.label" :value="dict.value" />
+        </el-select>
+      </el-form-item>
       <el-form-item label="璐﹀彿缂栧彿" prop="userno">
         <el-input v-model="queryParams.userno" placeholder="璇疯緭鍏ヨ处鍙风紪鍙�" clearable size="small"
           @keyup.enter.native="handleQuery" />
@@ -9,10 +15,9 @@
         <el-input v-model="queryParams.username" placeholder="璇疯緭鍏ヨ处鍙峰悕绉�" clearable size="small"
           @keyup.enter.native="handleQuery" />
       </el-form-item>
-      <el-form-item label="璐﹀彿绫诲埆" prop="usertype">
-        <el-select v-model="queryParams.usertype" placeholder="璇烽�夋嫨璐﹀彿绫诲埆" clearable size="small">
-          <el-option v-for="dict in dict.type.sys_UserType" :key="dict.value" :label="dict.label" :value="dict.value" />
-        </el-select>
+      <el-form-item label="鎵�鍦ㄥ崟浣�" prop="unitname">
+        <el-input v-model="queryParams.unitname" placeholder="璇疯緭鍏ユ墍鍦ㄥ崟浣�" clearable size="small"
+          @keyup.enter.native="handleQuery" />
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
@@ -34,8 +39,8 @@
           v-hasPermi="['project:externalperson:remove']">鍒犻櫎</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button type="warning" plain icon="el-icon-download" size="mini" :loading="exportLoading" @click="handleExport"
-          v-hasPermi="['project:externalperson:export']">瀵煎嚭</el-button>
+        <el-button type="warning" plain icon="el-icon-download" size="mini" :loading="exportLoading"
+          @click="handleExport" v-hasPermi="['project:externalperson:export']">瀵煎嚭</el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
@@ -53,7 +58,7 @@
       <el-table-column label="鑱岀О" align="center" prop="title">
         <template slot-scope="scope">
           <dict-tag :options="dict.type.sys_professionaltitle" :value="scope.row.title" /> </template></el-table-column>
-      <el-table-column label="鍗曚綅鍚嶇О" width="250" align="center" prop="unitname" />
+      <el-table-column label="鎵�鍦ㄥ崟浣�" width="250" align="center" prop="unitname" />
       <!--
       <el-table-column label="鎬у埆" align="center" prop="sex">
         <template slot-scope="scope">
@@ -72,8 +77,7 @@
         <template slot-scope="scope">
           <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
             v-hasPermi="['project:externalperson:edit']">淇敼</el-button>
-          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
-            v-hasPermi="['project:externalperson:remove']">鍒犻櫎</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">鍒犻櫎</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -89,22 +93,26 @@
               <el-select v-model="form.usertype" placeholder="璇烽�夋嫨璐﹀彿绫诲埆">
                 <el-option v-for="dict in dict.type.sys_UserType" :key="dict.value" :label="dict.label"
                   :value="dict.value"></el-option>
-              </el-select> </el-form-item>
+              </el-select>
+            </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="璐﹀彿缂栧彿" prop="userno">
-              <el-input disabled=true v-model="form.userno" placeholder="璇疯緭鍏ヨ处鍙风紪鍙�" /> </el-form-item>
+              <el-input disabled="true" v-model="form.userno" placeholder="璇疯緭鍏ヨ处鍙风紪鍙�" />
+            </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="璐﹀彿鍚嶇О" prop="username">
-              <el-input v-model="form.username" placeholder="璇疯緭鍏ヨ处鍙峰悕绉�" /> </el-form-item>
+              <el-input v-model="form.username" placeholder="璇疯緭鍏ヨ处鍙峰悕绉�" />
+            </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="鍚敤鐘舵��" prop="userstatus" :disabled="ismanager == false">
               <el-radio-group v-model="form.userstatus">
-                <el-radio v-for="dict in dict.type.sys_0_1" :key="dict.value" :label="parseInt(dict.value)">{{ dict.label
+                <el-radio v-for="dict in dict.type.sys_0_1" :key="dict.value" :label="parseInt(dict.value)">{{
+                  dict.label
                 }}</el-radio>
               </el-radio-group>
             </el-form-item>
@@ -113,7 +121,8 @@
         <el-row v-if="form.usertype != 'org'">
           <el-col :span="24">
             <el-form-item label="韬唤璇佸彿" prop="idcardno">
-              <el-input v-model="form.idcardno" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" /> </el-form-item>
+              <el-input v-model="form.idcardno" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" />
+            </el-form-item>
           </el-col>
         </el-row>
         <el-row v-if="form.usertype != 'org'"><el-col :span="12">
@@ -126,14 +135,15 @@
             <el-form-item label="鑱岀О" prop="title">
               <el-select v-model="form.title" placeholder="璇烽�夋嫨浜哄憳鑱岀О">
                 <el-option v-for="dict in dict.type.sys_professionaltitle" :key="dict.value" :label="dict.label"
-                  :value="dict.value"></el-option> </el-select>
+                  :value="dict.label"></el-option>
+              </el-select>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row v-if="form.usertype != 'org'">
           <el-col :span="12">
             <el-form-item label="鎵�鍦ㄥ崟浣�" prop="unitname">
-              <el-select v-model="form.unitname" placeholder="鎵�鍦ㄥ崟浣�" clearable filterable allow-create style="width: 100%">
+              <el-select v-model="form.unitno" placeholder="鎵�鍦ㄥ崟浣�" clearable filterable allow-create style="width: 100%">
                 <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname"
                   :value="spec.organizationid"></el-option>
               </el-select>
@@ -147,7 +157,8 @@
         </el-row>
         <el-row>
           <el-col :span="24"><el-form-item label="寮�鎴烽摱琛�" prop="depositbank">
-              <el-input v-model="form.depositbank" placeholder="璇疯緭鍏ュ紑鎴烽摱琛屽悕绉�" /> </el-form-item>
+              <el-input v-model="form.depositbank" placeholder="璇疯緭鍏ュ紑鎴烽摱琛屽悕绉�" />
+            </el-form-item>
           </el-col>
           <el-col :span="24"><el-form-item label="閾惰鍗″彿" prop="bankcardno">
               <el-input v-model="form.bankcardno" placeholder="璇疯緭鍏ラ摱琛屽崱鍙�" />
@@ -157,13 +168,15 @@
         <el-row>
           <el-col :span="24">
             <el-form-item label="鑱旂郴鍦板潃" prop="address">
-              <el-input v-model="form.address" placeholder="璇疯緭鍏ヨ仈绯诲湴鍧�" /> </el-form-item>
+              <el-input v-model="form.address" placeholder="璇疯緭鍏ヨ仈绯诲湴鍧�" />
+            </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="24">
             <el-form-item label="鑱旂郴鐢佃瘽" prop="telephone">
-              <el-input v-model="form.telephone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" /> </el-form-item>
+              <el-input v-model="form.telephone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" />
+            </el-form-item>
           </el-col>
         </el-row>
         <!--
@@ -190,7 +203,8 @@
   addExternalperson,
   updateExternalperson,
   exportExternalperson,
-  getOnlyCode,
+  getInfoByIDCardNo,
+  getOnlyCode
 } from "@/api/project/externalperson";
 
 import {
@@ -236,13 +250,13 @@
         pageSize: 10,
         userno: null,
         username: null,
-        usertype: null,
+        usertype: null
       },
 
       // 鏌ヨ鏈�鏂板簭鍙峰弬鏁�
       seqnoParams: {
         businessType: "externalperson",
-        datequery: false,
+        datequery: false
       },
       // 琛ㄥ崟鍙傛暟
       form: {},
@@ -265,7 +279,7 @@
         ]
       },
       //鏄惁鏄笓瀹惰垂鐨凮PO瀹℃壒浜哄憳
-      ismanager: false,
+      ismanager: false
     };
   },
   created() {
@@ -280,7 +294,7 @@
       getUserProfile().then(res => {
         if (
           res.data.userName == "admin" ||
-          res.data.userName == "001" ||
+          res.data.userName == "053" ||
           res.data.userName == "047"
         ) {
           this.ismanager = true;
@@ -292,13 +306,20 @@
 
     /** 鏌ヨ鍗曚綅銆佷汉鍛樿处鍙峰垪琛� */
     getList() {
-      if (this.queryParams.username === null || this.queryParams.username.replace(/\s/g, '') == "") {
-        this.$modal.msgWarning("鏌ユ壘璐︽埛鏃讹紝璐︽埛鍚嶇О涓嶈兘涓虹┖锛岃杈撳叆璐︽埛鍚嶇О锛�");
+      /*
+      if (
+        this.queryParams.username === null ||
+        this.queryParams.username.replace(/\s/g, "") == ""
+      ) {
+        this.$modal.msgWarning(
+          "鏌ユ壘璐︽埛鏃讹紝璐︽埛鍚嶇О涓嶈兘涓虹┖锛岃杈撳叆璐︽埛鍚嶇О锛�"
+        );
         return;
       }
+      */
 
       // this.loading = true;
-      listExternalperson(this.queryParams).then((response) => {
+      listExternalperson(this.queryParams).then(response => {
         this.externalpersonList = response.rows;
         this.total = response.total;
         // this.loading = false;
@@ -324,17 +345,23 @@
         updateBy: null,
         updateTime: null,
         pym: null,
-        wbm: null,
+        wbm: null
       };
       this.resetForm("form");
     },
     /** 鎼滅储鎸夐挳鎿嶄綔 */
     handleQuery() {
-      console.log("handleQuery", this.queryParams);
-      if (this.queryParams.username === null || this.queryParams.username.replace(/\s/g, '') == "") {
-        this.$modal.msgWarning("涓洪檺鍒舵壒閲忔煡鎵捐处鎴蜂俊鎭紝闄愬埗璐︽埛鍚嶇О涓哄繀杈撻」锛岃杈撳叆璐︽埛鍚嶇О鍚庡啀鎼滅储锛�");
+      /*
+      if (
+        this.queryParams.username === null ||
+        this.queryParams.username.replace(/\s/g, "") == ""
+      ) {
+        this.$modal.msgWarning(
+          "涓洪檺鍒舵壒閲忔煡鎵捐处鎴蜂俊鎭紝闄愬埗璐︽埛鍚嶇О涓哄繀杈撻」锛岃杈撳叆璐︽埛鍚嶇О鍚庡啀鎼滅储锛�"
+        );
         return;
       }
+      */
 
       this.queryParams.pageNum = 1;
       this.getList();
@@ -346,7 +373,7 @@
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      this.ids = selection.map((item) => item.id);
+      this.ids = selection.map(item => item.id);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
     },
@@ -360,7 +387,7 @@
     handleUpdate(row) {
       this.reset();
       const id = row.id || this.ids;
-      getExternalperson(id).then((response) => {
+      getExternalperson(id).then(response => {
         this.form = response.data;
         this.open = true;
         this.title = "浜哄憳/鍗曚綅璐﹀彿淇℃伅淇敼";
@@ -368,25 +395,42 @@
     },
     /** 鎻愪氦鎸夐挳 */
     submitForm() {
-      this.$refs["form"].validate((valid) => {
+      this.$refs["form"].validate(valid => {
         if (valid) {
+          console.log("unitList", this.unitList);
+          this.unitList.map(res => {
+            if (res.organizationid == this.form.unitno)
+              this.form.unitname = res.organizationname;
+          });
+          console.log(this.form);
           if (this.form.id != null) {
-            updateExternalperson(this.form).then((response) => {
+            updateExternalperson(this.form).then(response => {
               this.$modal.msgSuccess("淇敼鎴愬姛");
               this.open = false;
               this.queryParams.username = this.form.username;
               this.getList();
             });
           } else {
-            getOnlyCode(this.seqnoParams).then((res) => {
-              this.form.userno = res.data.currentvalue;
+            //妫�鏌ヨ韩浠借瘉鍞竴
+            getInfoByIDCardNo(this.form.idcardno).then(res => {
+              if (res.data.length > 1) {
+                this.$modal.msgWarning("韬唤璇佸彿淇℃伅宸茶鐧昏锛岃妫�鏌ヨ韩浠借瘉鍙凤紒"
+                );
+                return;
+              }
 
-              addExternalperson(this.form).then((response) => {
-                this.$modal.msgSuccess("鏂板鎴愬姛");
-                this.open = false;
-                this.queryParams.username = this.form.username;
-                this.getList();
+              //淇濆瓨淇℃伅
+              getOnlyCode(this.seqnoParams).then(res => {
+                this.form.userno = res.data.currentvalue;
+
+                addExternalperson(this.form).then(response => {
+                  this.$modal.msgSuccess("涓撳淇℃伅淇濆瓨鎴愬姛锛�");
+                  this.open = false;
+                  this.queryParams.username = this.form.username;
+                  this.getList();
+                });
               });
+
             });
           }
         }
@@ -415,7 +459,7 @@
           this.exportLoading = true;
           return exportExternalperson(queryParams);
         })
-        .then((response) => {
+        .then(response => {
           this.$download.name(response.msg);
           this.exportLoading = false;
         })
@@ -428,12 +472,13 @@
         for (let i = 0; i < response.rows.length; i++) {
           this.unitList.push({
             //organizationid: response.rows[i].organizationid,
-            organizationid: response.rows[i].id,
+            organizationid: response.rows[i].id.toString(),
             organizationname: response.rows[i].organizationname
           });
+          console.log(this.unitList);
         }
       });
-    },
-  },
+    }
+  }
 };
 </script>

--
Gitblit v1.9.3