From 00212ed8e808fc7b76c04389224e65f27f074fb2 Mon Sep 17 00:00:00 2001 From: su1124 <1583764726@qq.com> Date: 星期五, 26 四月 2024 15:30:04 +0800 Subject: [PATCH] su --- src/views/system/dept/index.vue | 367 ++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 296 insertions(+), 71 deletions(-) diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue index 9718538..45949df 100644 --- a/src/views/system/dept/index.vue +++ b/src/views/system/dept/index.vue @@ -3,70 +3,210 @@ <el-row :gutter="20"> <el-col :span="3" :xs="24"> <div class="head-container"> - <el-input v-model="deptName" placeholder="璇疯緭鍏ョ瀹ゅ悕绉�" clearable size="small" prefix-icon="el-icon-search" - style="margin-bottom: 15px" /> + <el-input + v-model="deptName" + placeholder="璇疯緭鍏ョ瀹ゅ悕绉�" + clearable + size="small" + prefix-icon="el-icon-search" + style="margin-bottom: 15px" + /> </div> <div class="head-container"> - <el-tree :data="deptOption" :props="defaultProps" :expand-on-click-node="false" :filter-node-method="filterNode" - ref="tree" node-key="id" default-expand-all highlight-current @node-click="handleNodeClick" /> + <el-tree + :data="deptOption" + :props="defaultProps" + :expand-on-click-node="false" + :filter-node-method="filterNode" + ref="tree" + node-key="id" + default-expand-all + highlight-current + @node-click="handleNodeClick" + /> </div> </el-col> <el-col :span="20" :xs="24"> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + v-show="showSearch" + > <el-form-item label="绉戝鍚嶇О" prop="deptName"> - <el-input v-model="queryParams.deptName" placeholder="璇疯緭鍏ョ瀹ゅ悕绉�" clearable @keyup.enter.native="handleQuery" /> + <el-input + v-model="queryParams.deptName" + placeholder="璇疯緭鍏ョ瀹ゅ悕绉�" + clearable + @keyup.enter.native="handleQuery" + /> </el-form-item> <el-form-item label="鐘舵��" prop="status"> - <el-select v-model="queryParams.status" placeholder="绉戝鐘舵��" clearable filterable style="width: 100px;"> - <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label" - :value="dict.value" /> + <el-select + v-model="queryParams.status" + placeholder="绉戝鐘舵��" + clearable + filterable + style="width: 100px" + > + <el-option + v-for="dict in dict.type.sys_normal_disable" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> </el-select> </el-form-item> <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + <el-button + type="primary" + icon="el-icon-search" + size="mini" + @click="handleQuery" + >鎼滅储</el-button + > + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" + >閲嶇疆</el-button + > </el-form-item> </el-form> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> - <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" - v-hasPermi="['system:dept:add']">鏂板</el-button> + <el-button + type="primary" + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['system:dept:add']" + >鏂板</el-button + > </el-col> <el-col :span="1.5"> - <el-button type="primary" icon="el-icon-sort" size="mini" @click="toggleExpandAll">灞曞紑/鎶樺彔</el-button> + <el-button + type="primary" + icon="el-icon-sort" + size="mini" + @click="toggleExpandAll" + >灞曞紑/鎶樺彔</el-button + > </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + <right-toolbar + :showSearch.sync="showSearch" + @queryTable="getList" + ></right-toolbar> </el-row> - <el-table width="60%" v-if="refreshTable" v-loading="loading" :data="deptList" border row-key="deptId" - :default-expand-all="isExpandAll" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" max-height="720px"> + <el-table + width="60%" + v-if="refreshTable" + v-loading="loading" + :data="deptList" + border + row-key="deptId" + :default-expand-all="isExpandAll" + :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" + max-height="720px" + > <!-- <el-table-column fixed="left" width="55px" label="搴忓彿" align="center" prop="nweID" /> --> - <el-table-column label="绉戝鍚嶇О" align="center" prop="deptName" width="120px" fixed="left" - :show-overflow-tooltip="true" /> - <el-table-column label="绉戝缂栫爜" align="center" prop="departmentCode" :show-overflow-tooltip="true" width="80px" /> + <el-table-column + label="绉戝鍚嶇О" + align="center" + prop="deptName" + width="120px" + fixed="left" + :show-overflow-tooltip="true" + /> + <el-table-column + label="绉戝缂栫爜" + align="center" + prop="departmentCode" + :show-overflow-tooltip="true" + width="80px" + /> <!-- <el-table-column label="鎺掑簭" align="center" prop="orderNum" width="50px" /> --> <el-table-column label="璐熻矗浜�" align="center" prop="leader" /> - <el-table-column label="鑱旂郴鐢佃瘽" align="center" prop="phone" width="110px" :show-overflow-tooltip="true" /> - <el-table-column label="闄㈠尯" align="center" prop="hospName" :show-overflow-tooltip="true" /> - <el-table-column label="绠�浠�" align="center" prop="peofile" width="200px" :show-overflow-tooltip="true" /> - <el-table-column label="鑱旂郴浜�" align="center" prop="contactPerson" :show-overflow-tooltip="true" /> - <el-table-column label="鑱旂郴浜虹數璇�" align="center" prop="contactPhone" width="120px" :show-overflow-tooltip="true" /> - <el-table-column label="鏍囧噯绉戝" align="center" prop="standardDeptCode" :show-overflow-tooltip="true" /> - <el-table-column label="绉戝鐘舵��" align="center" prop="status" width="100px"> + <el-table-column + label="鑱旂郴鐢佃瘽" + align="center" + prop="phone" + width="110px" + :show-overflow-tooltip="true" + /> + <el-table-column + label="闄㈠尯" + align="center" + prop="hospName" + :show-overflow-tooltip="true" + /> + <el-table-column + label="绠�浠�" + align="center" + prop="peofile" + width="200px" + :show-overflow-tooltip="true" + /> + <el-table-column + label="鑱旂郴浜�" + align="center" + prop="contactPerson" + :show-overflow-tooltip="true" + /> + <el-table-column + label="鑱旂郴浜虹數璇�" + align="center" + prop="contactPhone" + width="120px" + :show-overflow-tooltip="true" + /> + <el-table-column + label="鏍囧噯绉戝" + align="center" + prop="standardDeptCode" + :show-overflow-tooltip="true" + /> + <el-table-column + label="绉戝鐘舵��" + align="center" + prop="status" + width="100px" + > <template slot-scope="scope"> - <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" - @change="handleStatusChange(scope.row)"></el-switch> + <el-switch + v-model="scope.row.status" + active-value="0" + inactive-value="1" + @change="handleStatusChange(scope.row)" + ></el-switch> </template> </el-table-column> - <el-table-column fixed="right" label="鎿嶄綔" align="center" class-name="small-padding "> + <el-table-column + fixed="right" + label="鎿嶄綔" + align="center" + class-name="small-padding " + > <template slot-scope="scope"> - <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" - v-hasPermi="['system:dept:edit']" title="淇敼"></el-button> - <el-button size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row)" - v-hasPermi="['system:dept:add']" title="澧炲姞"></el-button> - <el-button v-if="scope.row.parentId != 0" size="mini" type="text" icon="el-icon-delete" - @click="handleDelete(scope.row)" v-hasPermi="['system:dept:remove']" title="鍒犻櫎"></el-button> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:dept:edit']" + title="淇敼" + ></el-button> + <!-- <el-button size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row)" + v-hasPermi="['system:dept:add']" title="澧炲姞"></el-button> --> + <el-button + v-if="scope.row.parentId != 0" + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['system:dept:remove']" + title="鍒犻櫎" + ></el-button> </template> </el-table-column> </el-table> @@ -74,35 +214,71 @@ </el-row> <!-- 娣诲姞鎴栦慨鏀归儴闂ㄥ璇濇 --> - <el-dialog :title="title" :visible.sync="open" width="1050px" append-to-body> - <el-form ref="form" :model="form" :rules="rules" label-width="110px" :inline="true"> - <el-form-item label="涓婄骇绉戝" prop="parentName"> - <el-select v-model="form.parentId" placeholder="璇烽�夋嫨涓婄骇绉戝" style="width: 200px" clearable filterable> - <el-option v-for="dict in deptOption" :key="dict.label" :label="dict.label" :value="dict.id"></el-option> + <el-dialog + :title="title" + :visible.sync="open" + width="1050px" + append-to-body + > + <el-form + ref="form" + :model="form" + :rules="rules" + label-width="110px" + :inline="true" + > + <el-form-item label="涓婄骇绉戝" prop="parentId"> + <el-select + v-model="form.parentId" + placeholder="璇烽�夋嫨涓婄骇绉戝" + style="width: 200px" + clearable + filterable + @change="$forceUpdate()" + > + <el-option + v-for="dict in deptOption" + :key="dict.id" + :label="dict.label" + :value="dict.id" + ></el-option> </el-select> </el-form-item> <el-form-item label="绉戝鍚嶇О" prop="deptName"> <el-input v-model="form.deptName" placeholder="璇疯緭鍏ョ瀹ゅ悕绉�" /> </el-form-item> <el-form-item label="绉戝缂栫爜" prop="departmentCode"> - <el-input v-model="form.departmentCode" placeholder="璇疯緭鍏ョ瀹ょ紪鐮�" /> + <el-input + v-model="form.departmentCode" + placeholder="璇疯緭鍏ョ瀹ょ紪鐮�" + /> </el-form-item> - <el-form-item label="鏄剧ず椤哄簭" prop="orderNum"> + <el-form-item label="鏄剧ず椤哄簭" prop="orderNum" style="margin-top:20px"> <el-input v-model="form.orderNum" placeholder="璇疯緭鍏ユ樉绀洪『搴�" /> </el-form-item> - <el-form-item label="鎵�灞炲尰闄�" prop="hospName"> - <el-select v-model="form.hospName" placeholder="璇烽�夋嫨鎵�灞炲尰闄�" clearable filterable style="width: 200px"> - <el-option v-for="dict in hospList" :key="dict.hospAreaName" :label="dict.hospAreaName" - :value="dict.hospAreaName" /> + <el-form-item label="鎵�灞炲尰闄�" prop="hospId" style="margin-top:20px"> + <el-select + v-model="form.hospId" + placeholder="璇烽�夋嫨鎵�灞炲尰闄�" + clearable + filterable + style="width: 200px" + > + <el-option + v-for="dict in hospList" + :key="dict.hospAreaName" + :label="dict.hospAreaName" + :value="dict.hospAreaId" + /> </el-select> </el-form-item> - <el-form-item label="璐熻矗浜�" prop="leader"> + <el-form-item label="璐熻矗浜�" prop="leader" style="margin-top:20px"> <el-input v-model="form.leader" placeholder="璇疯緭鍏ヨ礋璐d汉" /> </el-form-item> - <el-form-item label="鑱旂郴鐢佃瘽" prop="phone"> + <el-form-item label="鑱旂郴鐢佃瘽" prop="phone" style="margin-top:20px"> <el-input v-model="form.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" /> </el-form-item> - <el-form-item label="閭" prop="email"> + <el-form-item label="閭" prop="email" style="margin-top:20px"> <el-input v-model="form.email" placeholder="璇疯緭鍏ラ偖绠�" /> </el-form-item> <!-- <el-form-item label="绉戝鑻辨枃鍚嶇О" prop="departmentEnName"> @@ -161,13 +337,26 @@ <el-date-picker clearable v-model="form.buildDate" type="date" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨寤虹珛鏃ユ湡" style="width: 200px"> </el-date-picker> </el-form-item> --> - <el-form-item label="鏍囧噯绉戝" prop="standardDeptCode"> - <el-input v-model="form.standardDeptCode" placeholder="璇疯緭鍏ユ爣鍑嗙瀹�" /> + <el-form-item label="鏍囧噯绉戝" prop="standardDeptCode" style="margin-top:20px"> + <el-input + v-model="form.standardDeptCode" + placeholder="璇疯緭鍏ユ爣鍑嗙瀹�" + /> </el-form-item> - <el-form-item label="绉戝绫诲瀷" prop="deptTypeCode"> - <el-select v-model="form.parentOrgType" placeholder="璇烽�夋嫨绉戝绫诲瀷" style="width: 200px" clearable filterable> - <el-option v-for="dict in dict.type.dict_dept_type" :key="dict.value" :label="dict.label" - :value="dict.value"></el-option> + <el-form-item label="绉戝绫诲瀷" prop="parentOrgType"> + <el-select + v-model="form.parentOrgType" + placeholder="璇烽�夋嫨绉戝绫诲瀷" + style="width: 200px" + clearable + filterable + > + <el-option + v-for="dict in dict.type.dict_dept_type" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> </el-select> </el-form-item> <!-- <el-form-item label="閲嶇偣绉戝" prop="deptFcusTypeCode"> @@ -176,16 +365,31 @@ </el-select> </el-form-item> --> <el-form-item label="绠�浠�" prop="peofile"> - <el-input v-model="form.peofile" placeholder="璇疯緭鍏ョ畝浠�" style="width: 525px" /> </el-form-item><br /> + <el-input + v-model="form.peofile" + placeholder="璇疯緭鍏ョ畝浠�" + style="width: 525px" + /> </el-form-item + ><br /> <el-form-item label="绉戝鍦板潃" prop="officialWeb"> <el-input v-model="form.officialWeb" placeholder="璇疯緭鍏ョ瀹ゅ湴鍧�" /> </el-form-item> <el-form-item label="杩愯惀鏃堕棿" prop="buildDate"> - <el-date-picker style="width: 200px" v-model="form.buildDate" type="date" placeholder="璇烽�夋嫨杩愯惀鏃堕棿"> + <el-date-picker + style="width: 200px" + v-model="form.buildDate" + type="date" + placeholder="璇烽�夋嫨杩愯惀鏃堕棿" + > </el-date-picker> </el-form-item> <el-form-item label="鍋滅敤鏃堕棿" prop="overDate"> - <el-date-picker style="width: 200px" v-model="form.overDate" type="date" placeholder="璇烽�夋嫨鍋滅敤鏃堕棿"> + <el-date-picker + style="width: 200px" + v-model="form.overDate" + type="date" + placeholder="璇烽�夋嫨鍋滅敤鏃堕棿" + > </el-date-picker> </el-form-item> </el-form> @@ -217,6 +421,16 @@ dicts: ["sys_normal_disable", "dict_user_orgtype", "dict_dept_type"], components: { Treeselect }, data() { + let checkPhoneNum = (rule, value, callback) => { + let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/); + if (value == "" && value == undefined && !value) { + return callback(""); + } else if (value != undefined && value != "") { + return callback(); + } else if (!patter.test(value)) { + return callback(""); + } + }; return { // 閮ㄩ棬鍚嶇О deptName: undefined, @@ -253,19 +467,19 @@ // 琛ㄥ崟鏍¢獙 rules: { parentId: [ - { required: true, message: "涓婄骇绉戝涓嶈兘涓虹┖", trigger: "blur" }, + { required: true, validator: checkPhoneNum, trigger: "blur" }, ], deptName: [ - { required: true, message: "绉戝鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }, + { required: true, message: "绉戝鍚嶇О涓嶈兘涓虹┖", validator: checkPhoneNum, trigger: "blur" }, ], orderNum: [ - { required: true, message: "鏄剧ず鎺掑簭涓嶈兘涓虹┖", trigger: "blur" }, + { required: true, message: "鏄剧ず椤哄簭涓嶈兘涓虹┖", validator: checkPhoneNum, trigger: "blur" }, ], departmentCode: [ - { required: true, message: "鏄剧ず鎺掑簭涓嶈兘涓虹┖", trigger: "blur" }, + { required: true, message: "绉戝缂栫爜涓嶈兘涓虹┖", validator: checkPhoneNum, trigger: "blur" }, ], - hospName: [ - { required: true, message: "鏄剧ず鎺掑簭涓嶈兘涓虹┖", trigger: "blur" }, + hospId: [ + { required: true, message: "鎵�灞炲尰闄笉鑳戒负绌�", validator: checkPhoneNum, trigger: "blur" }, ], // email: [ // { @@ -442,8 +656,13 @@ }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { - this.reset(); + // console.log(11111) + // this.reset(); this.form = row; + this.form.parentId = this.form.parentId.toString() + if(this.form.parentId == 0){ + this.deptOption.push({ "id": 0, "label": "涓荤被鐩�", }); + } this.open = true; this.title = "绉戝淇℃伅缁存姢 "; // getDept(row.deptId).then((response) => { @@ -468,15 +687,21 @@ this.$refs["form"].validate((valid) => { if (valid) { if (this.form.deptId != undefined) { - updateDept(this.form).then((response) => { + if(this.form.hospId ){ + // console.log(this.form); + updateDept(this.form).then((response) => { this.$modal.msgSuccess("淇敼鎴愬姛"); this.open = false; this.getList(); }); + }else{ + this.$modal.msgError("璇峰~鍐欏甫鏄熷彿"); + } + } else { - this.hospList.forEach(element => { - if(this.form.hospName == element.hospAreaName){ - this.form.hospId = element.hospAreaId + this.hospList.forEach((element) => { + if (this.form.hospName == element.hospAreaName) { + this.form.hospId = element.hospAreaId; } }); addDept(this.form).then((response) => { @@ -499,7 +724,7 @@ this.getList(); this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); }) - .catch(() => { }); + .catch(() => {}); }, }, }; -- Gitblit v1.8.0