From 891f1591f759a9dfa333fcea4707d41bad9fe436 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期一, 24 二月 2025 10:32:28 +0800 Subject: [PATCH] 测试完成 --- src/views/system/user/index.vue | 226 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 196 insertions(+), 30 deletions(-) diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 6f1d6d2..407eff0 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -37,10 +37,19 @@ v-show="showSearch" label-width="68px" > - <el-form-item label="鐢ㄦ埛鍚嶇О" prop="userName"> + <el-form-item label="鐢ㄦ埛宸ュ彿" prop="userName"> <el-input v-model="queryParams.userName" - placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" + placeholder="璇疯緭鍏ョ敤鎴峰伐鍙�" + clearable + style="width: 240px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鐢ㄦ埛鏄电О" prop="nickName"> + <el-input + v-model="queryParams.nickName" + placeholder="璇疯緭鍏ョ敤鎴锋樀绉�" clearable style="width: 240px" @keyup.enter.native="handleQuery" @@ -70,7 +79,8 @@ /> </el-select> </el-form-item> - <el-form-item label="鍒涘缓鏃堕棿"> + + <!-- <el-form-item label="鍒涘缓鏃堕棿"> <el-date-picker v-model="dateRange" style="width: 240px" @@ -80,7 +90,7 @@ start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" ></el-date-picker> - </el-form-item> + </el-form-item> --> <el-form-item> <el-button type="primary" @@ -174,7 +184,7 @@ v-if="columns[0].visible" /> <el-table-column - label="鐢ㄦ埛鍚嶇О" + label="鐢ㄦ埛宸ュ彿" align="center" key="userName" prop="userName" @@ -189,14 +199,14 @@ v-if="columns[2].visible" :show-overflow-tooltip="true" /> - <el-table-column + <!-- <el-table-column label="閮ㄩ棬" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" - /> + /> --> <el-table-column label="鎵嬫満鍙风爜" align="center" @@ -228,7 +238,7 @@ width="160" > <template slot-scope="scope"> - <span>{{ parseTime(scope.row.createTime) }}</span> + <span>{{ formatTime(scope.row.createTime) }}</span> </template> </el-table-column> <el-table-column @@ -305,16 +315,56 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="褰掑睘閮ㄩ棬" prop="deptId"> - <treeselect - v-model="form.deptId" - :options="deptOptions" - :show-count="true" - placeholder="璇烽�夋嫨褰掑睘閮ㄩ棬" - /> + <el-form-item label="鎮h�呰寖鍥�" prop="status"> + <el-select + v-model="form.searchscope" + placeholder="鎮h�呰寖鍥�" + clearable + > + <el-option + v-for="dict in searchscopelist" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> </el-form-item> </el-col> </el-row> + <el-form-item label="閫傜敤绉戝" prop="region"> + <el-cascader + style="width: 478px" + v-model="form.deptCodes" + @remove-tag="removehpsp" + :options="deptOptions" + :props="props" + filterable + :show-all-levels="false" + clearable + > + <template slot-scope="{ node, data }"> + <span>{{ data.label }}</span> + <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> + </template> + </el-cascader> + </el-form-item> + <el-form-item label="閫傜敤鐥呭尯" prop="region"> + <el-cascader + style="width: 478px" + @remove-tag="removehpsp" + v-model="form.wardCodes" + :options="deptOptions" + :props="props" + filterable + :show-all-levels="false" + clearable + > + <template slot-scope="{ node, data }"> + <span>{{ data.label }}</span> + <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> + </template> + </el-cascader> + </el-form-item> <el-row> <el-col :span="12"> <el-form-item label="鎵嬫満鍙风爜" prop="phonenumber"> @@ -339,12 +389,12 @@ <el-col :span="12"> <el-form-item v-if="form.userId == undefined" - label="鐢ㄦ埛鍚嶇О" + label="鐢ㄦ埛宸ュ彿" prop="userName" > <el-input v-model="form.userName" - placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" + placeholder="璇疯緭鍏ョ敤鎴峰伐鍙�" maxlength="30" /> </el-form-item> @@ -391,6 +441,7 @@ </el-form-item> </el-col> </el-row> + <el-row> <el-col :span="12"> <el-form-item label="宀椾綅"> @@ -497,12 +548,15 @@ addUser, updateUser, resetUserPwd, + adduserdept, + removeusertd, changeUserStatus, deptTreeSelect, } from "@/api/system/user"; import { getToken } from "@/utils/auth"; import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; +import { type } from "jquery"; export default { name: "User", @@ -536,6 +590,7 @@ initPassword: undefined, // 鏃ユ湡鑼冨洿 dateRange: [], + deptIds: [], // 宀椾綅閫夐」 postOptions: [], // 瑙掕壊閫夐」 @@ -546,6 +601,7 @@ children: "children", label: "label", }, + props: { multiple: true, value: "deptCode", label: "label" }, // 鐢ㄦ埛瀵煎叆鍙傛暟 upload: { // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛� @@ -570,24 +626,31 @@ status: undefined, deptId: undefined, }, + searchscopelist: [ + { value: "1", label: "绉戝" }, + { value: "2", label: "鐥呭尯" }, + { value: "0", label: "鍏ㄩ儴" }, + { value: "9", label: "鏃�" }, + ], // 鍒椾俊鎭� columns: [ { key: 0, label: `鐢ㄦ埛缂栧彿`, visible: true }, - { key: 1, label: `鐢ㄦ埛鍚嶇О`, visible: true }, + { key: 1, label: `鐢ㄦ埛宸ュ彿`, visible: true }, { key: 2, label: `鐢ㄦ埛鏄电О`, visible: true }, { key: 3, label: `閮ㄩ棬`, visible: true }, { key: 4, label: `鎵嬫満鍙风爜`, visible: true }, { key: 5, label: `鐘舵�乣, visible: true }, { key: 6, label: `鍒涘缓鏃堕棿`, visible: true }, ], + // 琛ㄥ崟鏍¢獙 rules: { userName: [ - { required: true, message: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }, + { required: true, message: "鐢ㄦ埛宸ュ彿涓嶈兘涓虹┖", trigger: "blur" }, { min: 2, max: 20, - message: "鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿", + message: "鐢ㄦ埛宸ュ彿闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿", trigger: "blur", }, ], @@ -648,9 +711,14 @@ }, /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */ getDeptTree() { + // 绉戝鍒楄〃 deptTreeSelect().then((response) => { this.deptOptions = response.data; }); + // 闄㈠尯鍒楄〃 + // deptTreeSelect().then((response) => { + // this.deptOptions = response.data; + // }); }, // 绛涢�夎妭鐐� filterNode(value, data) { @@ -697,6 +765,8 @@ remark: undefined, postIds: [], roleIds: [], + deptCodes: [], + wardCodes: [], }; this.resetForm("form"); }, @@ -735,20 +805,38 @@ /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { this.reset(); - getUser().then((response) => { - this.postOptions = response.posts; - this.roleOptions = response.roles; - this.open = true; - this.title = "娣诲姞鐢ㄦ埛"; - this.form.password = this.initPassword; - }); + this.open = true; + this.title = "娣诲姞鐢ㄦ埛"; + this.form.password = this.initPassword; + this.form.depts = []; + // getUser().then((response) => { + // this.postOptions = response.posts; + // this.roleOptions = response.roles; + + // }); }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { this.reset(); + this.deptIds = []; const userId = row.userId || this.ids; getUser(userId).then((response) => { this.form = response.data; + this.belongDepts = response.belongDepts; + this.belongWards = response.belongWards; + if (this.form.hospInfo) { + this.form.deptCodes = JSON.parse(this.form.hospInfo); + } else { + this.form.deptCodes = []; + } + if (this.form.deptInfo) { + this.form.wardCodes = JSON.parse(this.form.deptInfo); + } else { + this.form.wardCodes = []; + } + console.log(this.form.wardCodes, "wardCodes"); + console.log(this.form.deptCodes, "deptCodes"); + this.postOptions = response.posts; this.roleOptions = response.roles; this.$set(this.form, "postIds", response.postIds); @@ -756,6 +844,16 @@ this.open = true; this.title = "淇敼鐢ㄦ埛"; this.form.password = ""; + }); + }, + // 鍒犻櫎绉戝 + removehpsp(valueArray) { + console.log(valueArray, "鍒犻櫎绉戝"); + console.log(this.form.userId, "鍒犻櫎"); + let code = valueArray[valueArray.length - 1]; + removeusertd(this.form.userId, code).then((res) => { + if (res.code) { + } }); }, /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */ @@ -781,23 +879,83 @@ }, /** 鎻愪氦鎸夐挳 */ submitForm: function () { + this.form.hospInfo = JSON.stringify(this.form.deptCodes); + this.form.deptInfo = JSON.stringify(this.form.wardCodes); + if (this.form.deptCodes.length) + this.form.deptCodes = this.form.deptCodes.map( + (subArr) => subArr[subArr.length - 1] + ); + if (this.form.wardCodes.length) + this.form.wardCodes = this.form.wardCodes.map( + (subArr) => subArr[subArr.length - 1] + ); + console.log(this.form.wardCodes, "wardCodes"); + console.log(this.form.deptCodes, "deptCodes"); + this.$refs["form"].validate((valid) => { if (valid) { if (this.form.userId != undefined) { updateUser(this.form).then((response) => { this.$modal.msgSuccess("淇敼鎴愬姛"); this.open = false; - this.getList(); + this.adduserdept(); }); } else { addUser(this.form).then((response) => { this.$modal.msgSuccess("鏂板鎴愬姛"); this.open = false; - this.getList(); + this.form.userId = response.data; + console.log("寮�濮嬪姞閮ㄩ棬"); + + this.adduserdept(); }); } } }); + }, + // 鏂板鏁版嵁 + adduserdept() { + if (this.form.wardCodes[0]) { + this.form.wardCodes.forEach((dept) => { + const containsId8 = null; + if (this.belongWards) { + containsId8 = this.belongWards.some( + (item) => item.deptCode == dept + ); + } + + if (!containsId8) { + adduserdept({ + deptCode: dept, + deptType: 2, + userId: this.form.userId, + }).then((response) => { + this.open = false; + this.getList(); + }); + } + }); + } + if (this.form.deptCodes[0]) { + this.form.deptCodes.forEach((dept) => { + const containsId8 = null; + if (this.belongDepts) { + containsId8 = this.belongDepts.some( + (item) => item.deptCode == dept + ); + } + if (!containsId8) { + adduserdept({ + deptCode: dept, + deptType: 1, + userId: this.form.userId, + }).then((response) => { + this.open = false; + this.getList(); + }); + } + }); + } }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { @@ -831,7 +989,7 @@ /** 涓嬭浇妯℃澘鎿嶄綔 */ importTemplate() { this.download( - "system/user/importTemplate", + "smartor/import/getImportPatTemplate", {}, `user_template_${new Date().getTime()}.xlsx` ); @@ -861,3 +1019,11 @@ }, }; </script> +<style lang="scss" scoped> +::v-deep .el-cascader-panel .el-cascader-menu__wrap { + height: 404px!important; +} +// .el-cascader-menu__wrap { +// height: 404px; +// } +</style> -- Gitblit v1.9.3