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 | 70 ++++++++++++++++++++++++++-------- 1 files changed, 53 insertions(+), 17 deletions(-) diff --git a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue index 26bdb87..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> + <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" disabled> </el-input> </el-form-item> <!-- 鎵�灞炵敤鎴峰鍚� --> @@ -19,7 +18,7 @@ <el-input v-model="user.true_name" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input> </el-form-item> --> <!-- 鎬у埆 --> - <el-form-item class="optionItem" label="鎬у埆:" prop="sex" > + <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="0">濂�</el-radio> @@ -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,7 +72,8 @@ </el-form-item> --> <!-- 鎵�灞為儴闂� --> <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId"> - <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!flag.depart" @change="changeDepart"> + <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> @@ -167,7 +172,7 @@ // } // }; const validateType = (rule, value, callback) => { - if (!value && value!==0) { + if (!value && value !== 0) { callback(new Error("璇烽�夋嫨鐢ㄦ埛绫诲瀷")); } else { callback(); @@ -277,19 +282,20 @@ 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){ + changeDepart(data) { console.log(data); - this.departList.forEach(item=>{ - if(item.id===data){ + this.departList.forEach(item => { + if (item.id === data) { this.user.departName = item.departName; } }) @@ -301,13 +307,13 @@ const { user } = this; this.$axios({ method: 'post', - url: 'sccg/admin/update/' + user.id, + 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, + type: res.code === 200 ? 'success' : 'warning', + message: res.message, }) this.getUserList(); this.$emit('closeDialog', { flag: false }); @@ -326,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