From b6929a606c64d1b6063521ed8a183da88463a5e1 Mon Sep 17 00:00:00 2001 From: feige <791364011@qq.com> Date: 星期一, 10 六月 2024 12:11:30 +0800 Subject: [PATCH] Merge branch 'master' of http://47.93.189.255:8099/r/zhangshi_app_web --- ruoyi-ui/src/views/system/user/index.vue | 362 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 271 insertions(+), 91 deletions(-) diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index ae87fe4..83b2fbc 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -2,31 +2,7 @@ <div class="app-container"> <el-row :gutter="20"> <!--閮ㄩ棬鏁版嵁--> - <el-col :span="4" :xs="24"> - <div class="head-container"> - <el-input - v-model="deptName" - placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" - clearable - size="small" - prefix-icon="el-icon-search" - style="margin-bottom: 20px" - /> - </div> - <div class="head-container"> - <el-tree - :data="deptOptions" - :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" label-width="68px"> @@ -111,7 +87,7 @@ :disabled="multiple" @click="handleDelete" v-hasPermi="['system:user:remove']" - >鍒犻櫎</el-button> + >鍋滅敤</el-button> </el-col> <el-col :span="1.5"> <el-button @@ -141,7 +117,7 @@ <el-table-column label="鐢ㄦ埛缂栧彿" align="center" key="userId" prop="userId" v-if="columns[0].visible" /> <el-table-column label="鐢ㄦ埛鍚嶇О" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" /> <el-table-column label="鐢ㄦ埛鏄电О" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" /> - <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" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" /> <el-table-column label="鐘舵��" align="center" key="status" v-if="columns[5].visible"> <template slot-scope="scope"> @@ -178,7 +154,7 @@ icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['system:user:remove']" - >鍒犻櫎</el-button> + >鍋滅敤</el-button> <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']"> <el-button size="mini" type="text" icon="el-icon-d-arrow-right">鏇村</el-button> <el-dropdown-menu slot="dropdown"> @@ -212,35 +188,22 @@ </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="瑙掕壊" prop="roleIds"> + <el-select v-model="rt" placeholder="璇烽�夋嫨瑙掕壊" @change="getRole"> + + <el-option + v-for="item in roleOptions" + :key="item.roleId" + :label="item.roleName" + :value="item.roleId" + :disabled="item.status == 1" + ></el-option> + </el-select> </el-form-item> </el-col> + </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="鎵嬫満鍙风爜" prop="phonenumber"> - <el-input v-model="form.phonenumber" placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" maxlength="11" /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="閭" prop="email"> - <el-input v-model="form.email" placeholder="璇疯緭鍏ラ偖绠�" maxlength="50" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item v-if="form.userId == undefined" label="鐢ㄦ埛鍚嶇О" prop="userName"> - <el-input v-model="form.userName" placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" maxlength="30" /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item v-if="form.userId == undefined" label="鐢ㄦ埛瀵嗙爜" prop="password"> - <el-input v-model="form.password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" type="password" maxlength="20" show-password/> - </el-form-item> - </el-col> - </el-row> + <el-row> <el-col :span="12"> <el-form-item label="鐢ㄦ埛鎬у埆"> @@ -268,31 +231,78 @@ </el-row> <el-row> <el-col :span="12"> - <el-form-item label="宀椾綅"> - <el-select v-model="form.postIds" multiple placeholder="璇烽�夋嫨宀椾綅"> - <el-option - v-for="item in postOptions" - :key="item.postId" - :label="item.postName" - :value="item.postId" - :disabled="item.status == 1" - ></el-option> - </el-select> + <el-form-item v-if="form.userId == undefined" label="鐢ㄦ埛鍚嶇О" prop="userName"> + <el-input v-model="form.userName" placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" maxlength="30" /> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="瑙掕壊"> - <el-select v-model="form.roleIds" multiple placeholder="璇烽�夋嫨瑙掕壊"> - <el-option - v-for="item in roleOptions" - :key="item.roleId" - :label="item.roleName" - :value="item.roleId" - :disabled="item.status == 1" - ></el-option> - </el-select> + <el-form-item v-if="form.userId == undefined" label="鐢ㄦ埛瀵嗙爜" prop="password"> + <el-input v-model="form.password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" type="password" maxlength="20" show-password/> </el-form-item> </el-col> + </el-row> + <el-row> + + <el-col :span="12"> + <el-form-item label="瀹跺涵鍙�"> + <el-select v-model="fid" placeholder="璇烽�夋嫨瀹跺涵鍙�" @change="handleChange"> + + <el-option + key="-1" + label="鏃�" + value="-1" + ></el-option> + <el-option + v-for="item in famiInfo" + :key="item.id" + :label="item.name" + :value="item.id" + + ></el-option> + </el-select> + + </el-form-item> + </el-col> + + </el-row> + + <el-row v-if="isshowMar"> + + <el-col :span="12"> + <el-form-item label="鏄惁鏈" prop="isMyFamily"> + <el-select v-model="form.isMyFamily" placeholder="璇疯緭鍏ユ槸鍚︽湰瀹�" @change="handleFamily"> + + + <el-option + key=1 + label="鏄�" + value=1 + ></el-option> + <el-option + key=0 + label="鍚�" + value=0 + ></el-option> + </el-select> + + </el-form-item> + </el-col> + + </el-row> + <el-row v-if="isshowMri"> + <el-col :span="12"> + <el-form-item label="閰嶅伓淇℃伅" prop="spouseId"> + <el-select v-model="form.spouseId" placeholder="璇烽�夋嫨閰嶅伓淇℃伅"> + <el-option + v-for="item in allInfo" + :key="item.userId" + :label="item.nickName" + :value="item.userId" + ></el-option> + </el-select> + + </el-form-item> + </el-col> </el-row> <el-row> <el-col :span="24"> @@ -341,7 +351,10 @@ </template> <script> -import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user"; +import { getIndividual,getInfoByFid, +getAllInfo,listUser, getUser, delUser, + updateUserInfo,addUser, updateUser, getAllFamilys,resetUserPwd, + 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"; @@ -354,6 +367,8 @@ return { // 閬僵灞� loading: true, + //瑙掕壊淇濆瓨 + rt: undefined, // 閫変腑鏁扮粍 ids: [], // 闈炲崟涓鐢� @@ -364,6 +379,8 @@ showSearch: true, // 鎬绘潯鏁� total: 0, + isshowMri: false, + isshowMar: false, // 鐢ㄦ埛琛ㄦ牸鏁版嵁 userList: null, // 寮瑰嚭灞傛爣棰� @@ -378,12 +395,21 @@ initPassword: undefined, // 鏃ユ湡鑼冨洿 dateRange: [], + //瀹跺涵鍙� + famiInfo:[], + fid: "鏃�", // 宀椾綅閫夐」 postOptions: [], // 瑙掕壊閫夐」 roleOptions: [], // 琛ㄥ崟鍙傛暟 + motherInfo:[], + fathorInfo:[], + allInfo:[], + faid: 0, + maid: 0, form: {}, + zinfid: undefined, defaultProps: { children: "children", label: "label" @@ -431,6 +457,18 @@ nickName: [ { required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" } ], + roleIds: [ + { required: true, message: "鐢ㄦ埛瑙掕壊涓嶈兘涓虹┖", trigger: "blur" } + ], + isMyFamily: [ + { required: true, message: "鏄惁澶栧珌涓嶈兘涓虹┖", trigger: "blur" } + ], + deptId: [ + { required: true, message: "鐢ㄦ埛瑙掕壊涓嶈兘涓虹┖", trigger: "blur" } + ], + spouseId: [ + { required: true, message: "閰嶅伓淇℃伅涓嶈兘涓虹┖", trigger: "blur" } + ], password: [ { required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" }, { min: 5, max: 20, message: '鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿', trigger: 'blur' } @@ -460,17 +498,69 @@ }, created() { this.getList(); + this.getFamlilyInfo(); this.getDeptTree(); + //鎷垮埌鑷繁瀹氫箟鐨勭敤鎴蜂俊鎭� + // this.getAllIn(); this.getConfigKey("sys.user.initPassword").then(response => { this.initPassword = response.msg; }); }, methods: { + handleChange() + { + // alert(this.fid) + if(this.fid=="鏃�") + this.fid = "-1" + if(this.fid!="-1") + { + //鏌ヨ涓嶆槸鏈鐨勬椂鍊欙紝鍙互閫夋嫨鐨勯厤鍋朵俊鎭� + + getInfoByFid(this.fid).then(response=>{ + console.log("--------------------") + console.log(response.data) + this.allInfo = response.data + }) + this.isshowMar = true + } + else{ + this.isshowMar = false + } + }, + handleFamily() + { + + if(this.form.isMyFamily=="0") + this.isshowMri = true + }, + getAllIn(){ + getAllInfo().then(response => { + // this.allInfo = response.data; + // console.log(response.data) + }) + }, + getRole(){ + this.form.roleIds = [] + this.form.roleIds.push(this.rt) + }, + getFamlilyInfo(){ + let _this = this + getAllFamilys().then(response => { + // console.log(response.data) + // alert(response.data[0]) + _this.famiInfo= response.data.filter(function(item){ + return item.name !== "涓�鍙峰搴�"; +}); + + + }) + }, /** 鏌ヨ鐢ㄦ埛鍒楄〃 */ getList() { this.loading = true; listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => { this.userList = response.rows; + console.log(this.userList,'userList') this.total = response.total; this.loading = false; } @@ -506,6 +596,9 @@ // 鍙栨秷鎸夐挳 cancel() { this.open = false; + this.fid = "鏃�" + this.isshowMar = false + this.isshowMri = false this.reset(); }, // 琛ㄥ崟閲嶇疆 @@ -563,7 +656,10 @@ this.reset(); getUser().then(response => { this.postOptions = response.posts; - this.roleOptions = response.roles; + // this.roleOptions = response.roles; + this.roleOptions= [] + this.roleOptions.push(response.roles[1]) + this.roleOptions.push(response.roles[3]) this.open = true; this.title = "娣诲姞鐢ㄦ埛"; this.form.password = this.initPassword; @@ -573,10 +669,30 @@ handleUpdate(row) { this.reset(); const userId = row.userId || this.ids; + + // this.fid = response.data.familyId + //alert(this.fid) getUser(userId).then(response => { this.form = response.data; + console.log(response.data) this.postOptions = response.posts; this.roleOptions = response.roles; + // alert(response.roleIds.length) + if(response.roleIds.length!=0) + this.rt = response.roleIds[0] + let _this = this + + getIndividual(userId).then(response => { + // alert(123) + console.log('++++++++-----0000((((((9999))))))') + console.log(response.data) + if(response.data!=undefined) + { + _this.fid = response.data.familyId; + _this.zinfid = response.data.userId + } + } + ); this.$set(this.form, "postIds", response.postIds); this.$set(this.form, "roleIds", response.roleIds); this.open = true; @@ -606,20 +722,84 @@ /** 鎻愪氦鎸夐挳 */ submitForm: function() { 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(); - }); - } else { - addUser(this.form).then(response => { - this.$modal.msgSuccess("鏂板鎴愬姛"); - this.open = false; - this.getList(); - }); - } + + let ps = true + + if(this.fid=="鏃�") + this.fid = -1 + let _this = this + if(this.rt===2 && (this.fid!=-1)) + { + ps = false + + } + if(this.rt!=2&&this.fid==-1) + { + this.$modal.msgSuccess("瀹跺涵鎴愬憳锛屽繀椤昏鎷ユ湁瀹跺涵鍙凤紒"); + return + } + + if(ps) + { + let fm = {} + fm.userId = _this.zinfid; + fm.nickName = this.form.nickName + fm.roleId =this.rt + fm.sex = this.form.sex + fm.status = this.form.status + fm.familyId = this.fid + + fm.isMyFamily = this.form.isMyFamily + fm.spouseId = this.form.spouseId + fm.sysId = this.form.userId + + if(_this.fid==="鏃�") + fm.familyId= -1 + else + fm.familyId = _this.fid + this.form.familyId = fm.familyId + console.log(fm) + if (valid) { + if (this.form.userId != undefined) { + updateUser(fm).then(response => { + + this.open = false; + this.getList(); + _this.rt = undefined + _this.fid = "鏃�" + this.isshowMar = false + this.isshowMri = false + // updateUserInfo(fm).then(response=>{ + // this.$modal.msgSuccess("淇敼鎴愬姛"); + // this.open = false; + // this.getList(); + // _this.rt = undefined + // _this.fid = "鏃�" + // this.isshowMar = false + // this.isshowMri = false + // }) + }); + } else { + + addUser(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + _this.rt = undefined + _this.fid = "鏃�" + this.isshowMar = false + this.isshowMri = false + }); + } + } + + + } + else{ + this.$modal.msgSuccess("鏅�氳鑹蹭笉鑳芥嫢鏈夊搴彿锛�"); + // _this.rt = undefined + _this.fid = "鏃�" + _this.isshowMar = false } }); }, @@ -667,4 +847,4 @@ } } }; -</script> \ No newline at end of file +</script> -- Gitblit v1.9.1