From 797cc9c1a5c90f413d46c5cb88e1ee5e3a84b071 Mon Sep 17 00:00:00 2001 From: “dzb” <2632970487@qq.com> Date: 星期二, 04 十月 2022 11:51:05 +0800 Subject: [PATCH] 修改用户只能分配单一角色 --- src/views/systemSetting/baseSetting/user/components/updateUser/index.vue | 116 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 78 insertions(+), 38 deletions(-) diff --git a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue index 54363b8..f41388a 100644 --- a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue @@ -10,8 +10,7 @@ </el-form-item> <!-- 鐢ㄦ埛瀵嗙爜 --> <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password"> - <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" - :disabled="!flag.password"> + <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" disabled> </el-input> </el-form-item> <!-- 鎵�灞炵敤鎴峰鍚� --> @@ -19,12 +18,12 @@ <el-input v-model="user.true_name" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input> </el-form-item> --> <!-- 鎬у埆 --> - <!-- <el-form-item class="optionItem" label="鎬у埆:" prop="gender"> - <el-radio-group v-model="user.gender"> + <el-form-item class="optionItem" label="鎬у埆:" prop="sex"> + <el-radio-group v-model="user.sex" :disabled="!flag.role"> <el-radio :label="1">鐢�</el-radio> - <el-radio :label="2">濂�</el-radio> + <el-radio :label="0">濂�</el-radio> </el-radio-group> - </el-form-item> --> + </el-form-item> <!-- 鏄惁鍏氬憳 --> <el-form-item class="optionItem" label="鏄惁鍏氬憳:" prop="isDy"> <el-radio-group v-model="user.isDy" disabled> @@ -42,11 +41,16 @@ </el-form-item> <!-- 閫夋嫨瑙掕壊 --> <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role"> - <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" :disabled="!flag.role"> + <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" multiple collapse-tags @change="handleChangeRole"> + <el-option v-for="item in roleList" :key="item.id" :label="item.name" + :value="item.id"> + </el-option> + </el-select> + <!-- <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" :disabled="!flag.role"> <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id" :disabled="item.disabled"> </el-option> - </el-select> + </el-select> --> </el-form-item> <!-- 鐢ㄦ埛绫诲瀷 --> <el-form-item class="optionItem" label="鐢ㄦ埛绫诲瀷:" prop="userType"> @@ -68,8 +72,9 @@ </el-form-item> --> <!-- 鎵�灞為儴闂� --> <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId"> - <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!flag.depart"> - <el-option v-for="item in departList" :key="item.name" :label="item.departName" + <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!flag.depart" + @change="changeDepart"> + <el-option v-for="item in departList" :key="item.id" :label="item.departName" :value="item.id"> </el-option> </el-select> @@ -167,7 +172,7 @@ // } // }; const validateType = (rule, value, callback) => { - if (!value && value!==0) { + if (!value && value !== 0) { callback(new Error("璇烽�夋嫨鐢ㄦ埛绫诲瀷")); } else { callback(); @@ -206,7 +211,7 @@ nickName: '', password: '', username: '', - // gender: 1, + sex: 1, isDy: 1, mobile: '', email: '', @@ -232,9 +237,9 @@ username: [ { required: true, trigger: "blur", validator: validateTruename }, ], - // gender: [ - // { required: true, trigger: "blur" }, - // ], + sex: [ + { required: true, trigger: "blur" }, + ], isDy: [ { required: true, trigger: "blur" }, ], @@ -276,38 +281,43 @@ created() { const that = this; this.user = JSON.parse(JSON.stringify(that.userInfo)); - // 鑾峰彇瑙掕壊鍒楄〃 + console.log(this.user); + // 鑾峰彇鎵�鏈夎鑹插垪琛� this.getRoleList(); - // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 + // 鑾峰彇褰撳墠鐢ㄦ埛瑙掕壊鍒楄〃 + this.getUserRole(this.user.id) // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 this.$axios.get('sccg/depart/page').then(res => { that.departList = res.data.records; }) }, methods: { + changeDepart(data) { + console.log(data); + this.departList.forEach(item => { + if (item.id === data) { + this.user.departName = item.departName; + } + }) + }, + // 淇敼鐢ㄦ埛淇℃伅 handleUser() { this.$refs.user.validate((valid) => { if (valid) { const { user } = this; - console.log(user); - // for(let key in user){ - // if(user[key]===null){ - // user[key] = ''; - // } - // } - // user.status = String(user.status); - // user.isDy = String(user.isDy); - // user.userType = String(user.userType); - // this.$axios({ - // method: 'post', - // url: 'sccg/admin/update/' + user.id, - // data: user - // }) - // .then(res => { - // console.log(res); - // this.getUserList(); - // this.$emit('closeDialog', { flag: false }); - // }) + this.$axios({ + method: 'post', + url: 'sccg/admin/role/update?adminId=' + user.id + '&roleIds='+user.role, + data: user + }) + .then(res => { + this.$message({ + type: res.code === 200 ? 'success' : 'warning', + message: res.message, + }) + this.getUserList(); + this.$emit('closeDialog', { flag: false }); + }) } else { return false; } @@ -322,16 +332,46 @@ .then(res => { this.roleList = res.data; }) + }, + // 鏀瑰彉鐢ㄦ埛瑙掕壊 + handleChangeRole(data){ + console.log(this.user.role); + // console.log(data); + }, + // 鑾峰彇鐢ㄦ埛鐨勮鑹插垪琛� + getUserRole(id){ + this.$axios({ + method:'get', + url:`sccg/admin/role/${id}` + }) + .then(res=>{ + console.log(res); + const arr = []; + res.data.forEach(item=>{ + arr.push(item.id); + }) + this.user.role = arr; + }) } }, - props: ['userInfo', 'updateFlag', 'flag','closeDialog','getUserList'] + props: ['userInfo', 'updateFlag', 'flag', 'closeDialog', 'getUserList'] } </script> <style lang="scss" scoped> .updateUser { border-radius: 1px; background-color: #09152f; - + :deep(.el-tag){ + background-color: #09152f; + } + .el-select-dropdown.is-multiple .el-select-dropdown__item.selected{ + background-color: #09152f; + color: #4b9bb7; + } + // .el-select-dropdown__item :deep(.selected){ + // background-color: #09152f; + // color: #4b9bb7; + // } main { text-align: left; padding: 0 55px; -- Gitblit v1.8.0