常熟吴彦祖 1 week ago
parent
commit
6c12c9d7b8
  1. 2
      src/views/modules/Abnormal/AbnormalFeedBack.vue
  2. 63
      src/views/modules/sys/role-add-or-update.vue

2
src/views/modules/Abnormal/AbnormalFeedBack.vue

@ -193,7 +193,7 @@
fixed="right"
header-align="center"
align="center"
width="360"
width="390"
label="操作">
<template slot-scope="scope">
<a type="text" size="small" @click="printResponsibilityBook(scope.row)">导出责任书</a>

63
src/views/modules/sys/role-add-or-update.vue

@ -3,7 +3,7 @@
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form v-loading="dialogLoading" :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
<el-form-item label="角色名称" prop="roleName">
<el-input v-model="dataForm.roleName" placeholder="角色名称"></el-input>
</el-form-item>
@ -16,14 +16,15 @@
:props="menuListTreeProps"
node-key="menuId"
ref="menuListTree"
:default-expand-all="true"
:default-expand-all="false"
:expand-on-click-node="false"
show-checkbox>
</el-tree>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
<el-button type="primary" :disabled="dialogLoading" @click="dataFormSubmit()">确定</el-button>
</span>
</el-dialog>
</template>
@ -34,6 +35,7 @@
data () {
return {
visible: false,
dialogLoading: false,
menuList: [],
menuListTreeProps: {
label: 'name',
@ -55,37 +57,54 @@
methods: {
init (id) {
this.dataForm.id = id || 0
this.$http({
url: this.$http.adornUrl('/sys/menu/list'),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
this.menuList = treeDataTranslate(data, 'menuId')
}).then(() => {
this.dataForm.roleName = ''
this.dataForm.remark = ''
this.menuList = []
this.visible = true
this.dialogLoading = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.$refs['dataForm']) {
this.$refs['dataForm'].clearValidate()
}
if (this.$refs.menuListTree) {
this.$refs.menuListTree.setCheckedKeys([])
}
})
}).then(() => {
if (this.dataForm.id) {
this.$http({
const menuPromise = this.$http({
url: this.$http.adornUrl('/sys/menu/list'),
method: 'get',
params: this.$http.adornParams()
})
const rolePromise = this.dataForm.id
? this.$http({
url: this.$http.adornUrl(`/sys/role/info/${this.dataForm.id}`),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.roleName = data.role.roleName
this.dataForm.remark = data.role.remark
var idx = data.role.menuIdList.indexOf(this.tempKey)
})
: Promise.resolve({data: null})
// - rqrq
Promise.all([menuPromise, rolePromise]).then(([menuRes, roleRes]) => {
this.menuList = treeDataTranslate(menuRes.data || [], 'menuId')
let checkedMenuIds = []
if (this.dataForm.id && roleRes.data && roleRes.data.code === 0) {
this.dataForm.roleName = roleRes.data.role.roleName
this.dataForm.remark = roleRes.data.role.remark
checkedMenuIds = (roleRes.data.role.menuIdList || []).slice()
const idx = checkedMenuIds.indexOf(this.tempKey)
if (idx !== -1) {
data.role.menuIdList.splice(idx, data.role.menuIdList.length - idx)
checkedMenuIds = checkedMenuIds.slice(0, idx)
}
this.$refs.menuListTree.setCheckedKeys(data.role.menuIdList)
}
})
this.$nextTick(() => {
if (this.$refs.menuListTree) {
this.$refs.menuListTree.setCheckedKeys(checkedMenuIds)
}
})
}).catch(() => {
this.$message.error('权限数据加载失败')
}).finally(() => {
this.dialogLoading = false
})
},
//
dataFormSubmit () {

Loading…
Cancel
Save