From 99b062eeca471bdcbfcacd88e308fab9972cd6ec Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期二, 19 八月 2025 14:21:33 +0800
Subject: [PATCH] 展示优化
---
src/views/system/user/index.vue | 216 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 185 insertions(+), 31 deletions(-)
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index bb206c6..3c84f4f 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,17 +315,56 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="褰掑睘閮ㄩ棬" prop="deptId">
- <treeselect
- v-model="deptIds"
- :options="deptOptions"
- :multiple="true"
- :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">
@@ -340,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>
@@ -392,6 +441,7 @@
</el-form-item>
</el-col>
</el-row>
+
<el-row>
<el-col :span="12">
<el-form-item label="宀椾綅">
@@ -498,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",
@@ -548,6 +601,7 @@
children: "children",
label: "label",
},
+ props: { multiple: true, value: "deptCode", label: "label" },
// 鐢ㄦ埛瀵煎叆鍙傛暟
upload: {
// 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
@@ -572,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",
},
],
@@ -650,9 +711,14 @@
},
/** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
getDeptTree() {
+ // 绉戝鍒楄〃
deptTreeSelect().then((response) => {
this.deptOptions = response.data;
});
+ // 闄㈠尯鍒楄〃
+ // deptTreeSelect().then((response) => {
+ // this.deptOptions = response.data;
+ // });
},
// 绛涢�夎妭鐐�
filterNode(value, data) {
@@ -699,6 +765,8 @@
remark: undefined,
postIds: [],
roleIds: [],
+ deptCodes:[],
+ wardCodes:[],
};
this.resetForm("form");
},
@@ -737,13 +805,15 @@
/** 鏂板鎸夐挳鎿嶄綔 */
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) {
@@ -752,6 +822,20 @@
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;
@@ -760,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) {
+ }
});
},
/** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
@@ -785,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) {
@@ -835,7 +989,7 @@
/** 涓嬭浇妯℃澘鎿嶄綔 */
importTemplate() {
this.download(
- "system/user/importTemplate",
+ "smartor/import/getImportPatTemplate",
{},
`user_template_${new Date().getTime()}.xlsx`
);
--
Gitblit v1.9.3