From 8022f7036945b75f82f2dfc43055623f81ed98f6 Mon Sep 17 00:00:00 2001 From: yxh <172933527@qq.com> Date: 星期五, 23 五月 2025 22:42:56 +0800 Subject: [PATCH] yxh --- src/views/project/externalperson/index.vue | 416 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 277 insertions(+), 139 deletions(-) diff --git a/src/views/project/externalperson/index.vue b/src/views/project/externalperson/index.vue index 763db3d..0ece431 100644 --- a/src/views/project/externalperson/index.vue +++ b/src/views/project/externalperson/index.vue @@ -5,30 +5,30 @@ ref="queryForm" :inline="true" v-show="showSearch" - label-width="68px" + label-width="80px" > - <el-form-item label="浜哄憳缂栧彿" prop="userno"> + <el-form-item label="璐﹀彿缂栧彿" prop="userno"> <el-input v-model="queryParams.userno" - placeholder="璇疯緭鍏ヤ汉鍛樼紪鍙�" + placeholder="璇疯緭鍏ヨ处鍙风紪鍙�" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> - <el-form-item label="浜哄憳鍚嶇О" prop="username"> + <el-form-item label="璐﹀彿鍚嶇О" prop="username"> <el-input v-model="queryParams.username" - placeholder="璇疯緭鍏ヤ汉鍛樺悕绉�" + placeholder="璇疯緭鍏ヨ处鍙峰悕绉�" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> - <el-form-item label="浜哄憳绫诲埆" prop="usertype"> + <el-form-item label="璐﹀彿绫诲埆" prop="usertype"> <el-select v-model="queryParams.usertype" - placeholder="璇烽�夋嫨浜哄憳绫诲埆" + placeholder="璇烽�夋嫨璐﹀彿绫诲埆" clearable size="small" > @@ -114,7 +114,7 @@ @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="浜哄憳绫诲埆" align="center" prop="usertype"> + <el-table-column label="璐﹀彿绫诲埆" align="center" prop="usertype"> <template slot-scope="scope"> <dict-tag :options="dict.type.sys_UserType" @@ -122,22 +122,14 @@ /> </template> </el-table-column> - <el-table-column label="鍦ㄨ亴鐘舵��" align="center" prop="userstatus" - ><template slot-scope="scope"> - <dict-tag - :options="dict.type.sys_0_1" - :value="scope.row.userstatus" - /> </template - ></el-table-column> - <el-table-column label="浜哄憳缂栧彿" align="center" prop="userno" /> - <el-table-column label="浜哄憳濮撳悕" align="center" prop="username" /> - <el-table-column label="鎬у埆" align="center" prop="sex"> - <template slot-scope="scope"> - <dict-tag - :options="dict.type.sys_user_sex" - :value="scope.row.sex" - /> </template - ></el-table-column> + <el-table-column label="璐﹀彿缂栧彿" align="center" prop="userno" /> + <el-table-column label="璐﹀彿鍚嶇О" align="center" prop="username" /> + <el-table-column + label="韬唤璇佸彿" + width="200" + align="center" + prop="idcardno" + /> <el-table-column label="鑱岀О" align="center" prop="title"> <template slot-scope="scope"> <dict-tag @@ -145,14 +137,26 @@ :value="scope.row.title" /> </template ></el-table-column> - <el-table-column label="鍗曚綅鍚嶇О" align="center" prop="unitname" /> <el-table-column - label="宸ヤ綔浜哄憳缂栧彿" + label="鍗曚綅鍚嶇О" + width="250" align="center" - prop="personnelunitno" + prop="unitname" /> - <el-table-column label="鑱旂郴鐢佃瘽" align="center" prop="telephone" /> - <el-table-column label="鑱旂郴鍦板潃" align="center" prop="address" /> + <!-- + <el-table-column label="鎬у埆" align="center" prop="sex"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" /> + </template> + </el-table-column> + <el-table-column label="鍗曚綅宸ヤ綔缂栧彿" align="center" prop="personnelunitno" /> + <el-table-column label="鍦ㄨ亴鐘舵��" align="center" prop="userstatus"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.sys_0_1" :value="scope.row.userstatus" /> + </template> + </el-table-column> + <el-table-column label="鑱旂郴鐢佃瘽" width="200" align="center" prop="telephone" /> + <el-table-column label="鑱旂郴鍦板潃" width="250" align="center" prop="address" />-->x <el-table-column label="鎿嶄綔" align="center" @@ -172,7 +176,6 @@ type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" - v-hasPermi="['project:externalperson:remove']" >鍒犻櫎</el-button > </template> @@ -187,36 +190,50 @@ @pagination="getList" /> - <!-- 娣诲姞鎴栦慨鏀瑰鍥村崟浣嶄汉鍛樺璇濇 --> - <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> + <!-- 娣诲姞鎴栦慨鏀逛汉鍛�/鍗曚綅璐﹀彿淇℃伅瀵硅瘽妗� --> + <el-dialog + :title="title" + :visible.sync="open" + width="800px" + append-to-body + :close-on-click-modal="false" + > <el-form ref="form" :model="form" :rules="rules" label-width="120px"> - <el-row - ><el-col :span="12"> - <el-form-item label="浜哄憳缂栧彿" prop="userno"> - <el-input - v-model="form.userno" - placeholder="璇疯緭鍏ヤ汉鍛樼紪鍙�" - /> </el-form-item></el-col - ><el-col :span="12" - ><el-form-item label="浜哄憳绫诲埆" prop="usertype"> - <el-select v-model="form.usertype" placeholder="璇烽�夋嫨浜哄憳绫诲埆"> + <el-row> + <el-col :span="12" + ><el-form-item label="璐﹀彿绫诲埆" prop="usertype"> + <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-col></el-row - ><el-row> + </el-select> + </el-form-item> + </el-col> <el-col :span="12"> - <el-form-item label="浜哄憳濮撳悕" prop="username"> + <el-form-item label="璐﹀彿缂栧彿" prop="userno"> <el-input - v-model="form.username" - placeholder="璇疯緭鍏ヤ汉鍛樺鍚�" - /> </el-form-item - ></el-col> + 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="userstatus"> + <el-form-item label="璐﹀彿鍚嶇О" prop="username"> + <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" @@ -225,89 +242,109 @@ >{{ dict.label }}</el-radio > </el-radio-group> - </el-form-item></el-col - ></el-row - ><el-row + </el-form-item> + </el-col> + </el-row> + <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-col> + </el-row> + <el-row v-if="form.usertype != 'org'" ><el-col :span="12"> - <el-form-item label="鎷� 闊� 鐮�" prop="pym"> - <el-input - v-model="form.pym" - placeholder="璇疯緭鍏ユ嫾闊崇爜" - /> </el-form-item></el-col - ><el-col :span="12"> - <el-form-item label="浜� 绗� 鐮�" prop="wbm"> - <el-input - v-model="form.wbm" - placeholder="璇疯緭鍏ヤ簲绗旂爜" - /> </el-form-item></el-col></el-row - ><el-row - ><el-col :span="12"> - <el-form-item label="鎬� 鍒�" prop="sex"> + <el-form-item label="鎬у埆" prop="sex"> <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆"> <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label" :value="dict.value" - ></el-option> </el-select></el-form-item></el-col - ><el-col :span="12"> - <el-form-item label="鑱旂郴鐢佃瘽" prop="telephone"> - <el-input - v-model="form.telephone" - placeholder="璇疯緭鍏ヨ仈绯荤數璇�" - /> </el-form-item></el-col></el-row - ><el-row - ><el-col :span="24"> - <el-form-item label="鑱旂郴鍦板潃" prop="address"> - <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="unitname"> - <el-input - v-model="form.unitname" - placeholder="璇疯緭鍏ュ崟浣嶅悕绉�" - /> </el-form-item></el-col></el-row - ><el-row - ><el-col :span="12"> - <el-form-item label="鍗曚綅浜哄憳缂栧彿" prop="personnelunitno"> - <el-input - v-model="form.personnelunitno" - placeholder="璇疯緭鍏ュ崟浣嶄汉鍛樼紪鍙�" - /> </el-form-item></el-col - ><el-col :span="12" - ><el-form-item label="鑱� 绉�" prop="title"> + ></el-option> </el-select + ></el-form-item> + </el-col> + <el-col :span="12"> + <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> - </el-form-item> </el-col></el-row - ><el-row - ><el-col :span="12" - ><el-form-item label="閾惰鍚嶇О" prop="depositbank"> + ></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.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> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鍗曚綅宸ュ彿" prop="personnelunitno"> + <el-input + v-model="form.personnelunitno" + placeholder="璇疯緭鍏ユ墍鍦ㄥ崟浣嶇殑宸ュ彿" + /> + </el-form-item> + </el-col> + </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-col - ><el-col :span="12" + placeholder="璇疯緭鍏ュ紑鎴烽摱琛屽悕绉�" + /> + </el-form-item> + </el-col> + <el-col :span="24" ><el-form-item label="閾惰鍗″彿" prop="bankcardno"> <el-input v-model="form.bankcardno" placeholder="璇疯緭鍏ラ摱琛屽崱鍙�" - /> </el-form-item></el-col></el-row - ><el-row - ><el-col :span="24" - ><el-form-item label="寮�鎴锋敮琛�" prop="branchbankname"> - <el-input - v-model="form.branchbankname" - placeholder="璇疯緭鍏ュ紑鎴锋敮琛�" - /> </el-form-item></el-col - ></el-row> + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="鑱旂郴鍦板潃" prop="address"> + <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-col> + </el-row> + <!-- + <el-row> + <el-col :span="24"><el-form-item label="寮�鎴锋敮琛�" prop="branchbankname"> + <el-input v-model="form.branchbankname" placeholder="璇疯緭鍏ュ紑鎴锋敮琛�" /> </el-form-item> + </el-col> + </el-row> + --> </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> @@ -325,7 +362,17 @@ addExternalperson, updateExternalperson, exportExternalperson, + getOnlyCode } from "@/api/project/externalperson"; + +import { + listOrganization, + getOrganization, + listReportname, + listUser +} from "@/api/project/organization"; + +import { getUserProfile } from "@/api/system/user"; export default { name: "Externalperson", @@ -333,7 +380,7 @@ data() { return { // 閬僵灞� - loading: true, + loading: false, // 瀵煎嚭閬僵灞� exportLoading: false, // 閫変腑鏁扮粍 @@ -348,6 +395,9 @@ total: 0, // 澶栧洿鍗曚綅浜哄憳琛ㄦ牸鏁版嵁 externalpersonList: [], + + //鍖荤枟鏈烘瀯鍒楄〃 + unitList: [], // 寮瑰嚭灞傛爣棰� title: "", // 鏄惁鏄剧ず寮瑰嚭灞� @@ -358,26 +408,77 @@ pageSize: 10, userno: null, username: null, - usertype: null, + usertype: null + }, + + // 鏌ヨ鏈�鏂板簭鍙峰弬鏁� + seqnoParams: { + businessType: "externalperson", + datequery: false }, // 琛ㄥ崟鍙傛暟 form: {}, // 琛ㄥ崟鏍¢獙 - rules: {}, + rules: { + usertype: [ + { required: true, message: "璇疯緭鍏ヨ处鎴风被鍨�", trigger: "blur" } + ], + username: [ + { required: true, message: "璇疯緭鍏ヨ处鎴峰悕绉�", trigger: "blur" } + ], + idcardno: [ + { required: true, message: "璇疯緭鍏ヨ韩浠借瘉鍙风爜", trigger: "blur" } + ], + bankcardno: [ + { required: true, message: "璇疯緭鍏ラ摱琛岃处鍙�", trigger: "blur" } + ], + depositbank: [ + { required: true, message: "璇疯緭鍏ュ紑鎴烽摱琛�", trigger: "blur" } + ] + }, + //鏄惁鏄笓瀹惰垂鐨凮PO瀹℃壒浜哄憳 + ismanager: false }; }, created() { - this.getList(); + this.getUserProfile(); + this.getUnitList(); + // 榛樿涓嶆墦寮� + // this.getList(); }, methods: { - /** 鏌ヨ澶栧洿鍗曚綅浜哄憳鍒楄〃 */ + //鑾峰彇褰撳墠鐢ㄦ埛淇℃伅 + getUserProfile() { + getUserProfile().then(res => { + if ( + res.data.userName == "admin" || + res.data.userName == "001" || + res.data.userName == "047" + ) { + this.ismanager = true; + } else { + this.ismanager = false; + } + }); + }, + + /** 鏌ヨ鍗曚綅銆佷汉鍛樿处鍙峰垪琛� */ getList() { - this.loading = true; - listExternalperson(this.queryParams).then((response) => { - console.log("listExternalperson", response.rows); + if ( + this.queryParams.username === null || + this.queryParams.username.replace(/\s/g, "") == "" + ) { + this.$modal.msgWarning( + "鏌ユ壘璐︽埛鏃讹紝璐︽埛鍚嶇О涓嶈兘涓虹┖锛岃杈撳叆璐︽埛鍚嶇О锛�" + ); + return; + } + + // this.loading = true; + listExternalperson(this.queryParams).then(response => { this.externalpersonList = response.rows; this.total = response.total; - this.loading = false; + // this.loading = false; }); }, // 鍙栨秷鎸夐挳 @@ -400,12 +501,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( + "涓洪檺鍒舵壒閲忔煡鎵捐处鎴蜂俊鎭紝闄愬埗璐︽埛鍚嶇О涓哄繀杈撻」锛岃杈撳叆璐︽埛鍚嶇О鍚庡啀鎼滅储锛�" + ); + return; + } + this.queryParams.pageNum = 1; this.getList(); }, @@ -416,7 +528,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; }, @@ -424,33 +536,45 @@ handleAdd() { this.reset(); this.open = true; - this.title = "娣诲姞澶栧洿鍗曚綅浜哄憳"; + this.title = "娣诲姞浜哄憳/鍗曚綅璐﹀彿淇℃伅"; }, /** 淇敼鎸夐挳鎿嶄綔 */ 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 = "浜哄憳淇℃伅淇敼"; + this.title = "浜哄憳/鍗曚綅璐﹀彿淇℃伅淇敼"; }); }, /** 鎻愪氦鎸夐挳 */ 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 { - addExternalperson(this.form).then((response) => { - this.$modal.msgSuccess("鏂板鎴愬姛"); - this.open = false; - 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(); + }); }); } } @@ -460,8 +584,8 @@ handleDelete(row) { const ids = row.id || this.ids; this.$modal - .confirm('鏄惁纭鍒犻櫎澶栧洿鍗曚綅浜哄憳缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�') - .then(function () { + .confirm('鏄惁纭鍒犻櫎浜哄憳/鍗曚綅璐﹀彿淇℃伅缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�') + .then(function() { return delExternalperson(ids); }) .then(() => { @@ -474,17 +598,31 @@ handleExport() { const queryParams = this.queryParams; this.$modal - .confirm("鏄惁纭瀵煎嚭鎵�鏈夊鍥村崟浣嶄汉鍛樻暟鎹」锛�") + .confirm("鏄惁纭瀵煎嚭鎵�鏈変汉鍛�/鍗曚綅璐﹀彿淇℃伅鏁版嵁椤癸紵") .then(() => { this.exportLoading = true; return exportExternalperson(queryParams); }) - .then((response) => { + .then(response => { this.$download.name(response.msg); this.exportLoading = false; }) .catch(() => {}); }, - }, + + //鑾峰彇鍖荤枟鏈烘瀯鍒楄〃 + getUnitList() { + listOrganization(3).then(response => { + for (let i = 0; i < response.rows.length; i++) { + this.unitList.push({ + //organizationid: response.rows[i].organizationid, + organizationid: response.rows[i].id.toString(), + organizationname: response.rows[i].organizationname + }); + console.log(this.unitList); + } + }); + } + } }; </script> -- Gitblit v1.9.3