| | |
| | | <el-checkbox |
| | | v-if="item.type === 'checkbox'" |
| | | v-model="row[item.prop]" |
| | | @change="checkBoxToChangeTheEvent(row[item.prop],item.code)" |
| | | :disabled="row.authButton.allDisabled ? true : row.authButton[item.code]"> |
| | | :disabled="row.authButton.allDisabled ? true : row.authButton[item.code]" |
| | | @change="checkBoxToChangeTheEvent(row[item.prop],item.code,row,item.prop)"> |
| | | </el-checkbox> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | this.loadAuthPage(); |
| | | } |
| | | }, |
| | | classifyAuthData(newval){ |
| | | |
| | | this.addIndex = newval.length <= 0 ? 0 :newval.length-1; |
| | | console.log(this.addIndex) |
| | | } |
| | | }, |
| | | computed: {}, |
| | | mounted() { |
| | |
| | | created() { |
| | | }, |
| | | methods: { |
| | | checkBoxToChangeTheEvent(check,code){ |
| | | // console.log(check,code) |
| | | // if(code === "data_view" && check){ |
| | | // |
| | | // } |
| | | checkBoxToChangeTheEvent(check, code, row, id) { |
| | | if (code === "data_view") { |
| | | row.checkTheStatus = check; |
| | | } else if (!row.checkTheStatus) { |
| | | this.$message.warning('请先勾选查看按钮!'); |
| | | // 在条件不满足时将多选框状态设置为false |
| | | row[id] = false; |
| | | } |
| | | |
| | | if (!row.checkTheStatus) { |
| | | this.classifyAuthButton.forEach(key => { |
| | | // 查看为false时将所有多选框状态设置为false |
| | | row[key.id] = false; |
| | | }); |
| | | } |
| | | }, |
| | | // 关闭对话框 |
| | | closeDialog() { |
| | |
| | | const filteredItems = this.classifyAuthButton.filter(item => |
| | | !res.data.data.some(x => x.id === item.id) |
| | | ); |
| | | |
| | | //和表格列进行对比 |
| | | this.classifyAuthHeader.forEach((item) => { |
| | | const isMatched = filteredItems.some((x) => x.id === item.prop); |
| | |
| | | if (isMatched) { |
| | | Object.keys(this.classifyAuthData[index]).forEach((key) => { |
| | | this.$set(this.classifyAuthData[index].authButton,item.code,true); |
| | | |
| | | //添加 “查看全部禁用条件” |
| | | if (item.code === "data_view") { |
| | | this.$set(this.classifyAuthData[index].authButton, "allDisabled", true); |
| | | } |
| | | }); |
| | | |
| | | } else { |
| | | Object.keys(this.classifyAuthData[index]).forEach((key) => { |
| | | this.$set(this.classifyAuthData[index].authButton,item.code,false); |
| | | }); |
| | | if(item.code === "data_view"){ |
| | | this.classifyAuthData[index].authButton.allDisabled = false; |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | //添加‘查看’禁用 |
| | | if (this.classifyAuthData) { |
| | | this.classifyAuthData.forEach((classkey, classIndex) => { |
| | | if (classkey.authButton.classify_view) { |
| | | this.$set(this.classifyAuthData[classIndex].authButton,"allDisabled",true); |
| | | } else { |
| | | this.classifyAuthData[classIndex].authButton.allDisabled = false; |
| | | } |
| | | }); |
| | | } |
| | | //强制刷新表格 |
| | | this.itemKey = uuidv4(); |
| | | }); |
| | |
| | | if (isMatched) { |
| | | Object.keys(currentRow).forEach((key) => { |
| | | currentRow.authButton[item.code] = true; |
| | | if (!currentRow.authButton.classify_view) { |
| | | if (!currentRow.authButton.data_view) { |
| | | currentRow.authButton.allDisabled = false; |
| | | } |
| | | }); |
| | | } else { |
| | | Object.keys(currentRow).forEach((key) => { |
| | | currentRow.authButton[item.code] = false; |
| | | if (!currentRow.authButton.classify_view) { |
| | | if (!currentRow.authButton.data_view) { |
| | | currentRow.authButton.allDisabled = false; |
| | | } |
| | | }); |
| | |
| | | this.$message.warning("当前租户不存在角色信息!"); |
| | | return; |
| | | } |
| | | this.addIndex++; //自定义生成添加行下标 |
| | | |
| | | let item = { |
| | | roleData: this.roleList[0].id, |
| | | classifyItem: this.classifyData.label, |
| | |
| | | Vue.set(item, data, true); |
| | | }); |
| | | this.classifyAuthData.push(item); |
| | | this.addIndex = this.classifyAuthData.length - 1; //添加行下标等于classifyAuthData的长度-1 |
| | | this.roleHandlerMethods(authData.roleId, 'create', index) |
| | | }) |
| | | } |