|
@@ -18,83 +18,100 @@
|
|
|
<template>
|
|
|
<div class="app-container calendar-list-container">
|
|
|
<basic-container>
|
|
|
- <avue-crud ref="crud"
|
|
|
- :option="tableOption"
|
|
|
- :data="list"
|
|
|
- :page="page"
|
|
|
- v-model="form"
|
|
|
- :table-loading="listLoading"
|
|
|
- :before-open="handleOpenBefore"
|
|
|
- @on-load="getList"
|
|
|
- @search-change="handleFilter"
|
|
|
- @refresh-change="handleRefreshChange"
|
|
|
- @row-update="update"
|
|
|
- @row-save="create">
|
|
|
+ <avue-crud
|
|
|
+ ref="crud"
|
|
|
+ :option="tableOption"
|
|
|
+ :data="list"
|
|
|
+ :page="page"
|
|
|
+ v-model="form"
|
|
|
+ :table-loading="listLoading"
|
|
|
+ :before-open="handleOpenBefore"
|
|
|
+ @on-load="getList"
|
|
|
+ @search-change="handleFilter"
|
|
|
+ @refresh-change="handleRefreshChange"
|
|
|
+ @row-update="update"
|
|
|
+ @row-save="create">
|
|
|
|
|
|
<template slot="menuLeft">
|
|
|
- <el-button v-if="roleManager_btn_add"
|
|
|
- class="filter-item"
|
|
|
- type="primary"
|
|
|
- icon="el-icon-edit"
|
|
|
- @click="handleCreate">添加
|
|
|
+ <el-button
|
|
|
+ v-if="roleManager_btn_add"
|
|
|
+ class="filter-item"
|
|
|
+ type="primary"
|
|
|
+ icon="el-icon-edit"
|
|
|
+ @click="handleCreate">添加
|
|
|
</el-button>
|
|
|
</template>
|
|
|
- <template slot="dsScopeForm"
|
|
|
- slot-scope="scope">
|
|
|
+ <template slot="dsScopeForm" slot-scope="scope">
|
|
|
<div v-if="form.dsType == 1">
|
|
|
- <el-tree ref="scopeTree"
|
|
|
- :data="dsScopeData"
|
|
|
- :check-strictly="true"
|
|
|
- :props="defaultProps"
|
|
|
- :default-checked-keys="checkedDsScope"
|
|
|
- class="filter-tree"
|
|
|
- node-key="id"
|
|
|
- highlight-current
|
|
|
- show-checkbox />
|
|
|
+ <el-tree
|
|
|
+ ref="scopeTree"
|
|
|
+ :data="dsScopeData"
|
|
|
+ :check-strictly="true"
|
|
|
+ :props="defaultProps"
|
|
|
+ :default-checked-keys="checkedDsScope"
|
|
|
+ class="filter-tree"
|
|
|
+ node-key="id"
|
|
|
+ highlight-current
|
|
|
+ show-checkbox/>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
- <template slot="menu"
|
|
|
- slot-scope="scope">
|
|
|
- <el-button v-if="roleManager_btn_edit"
|
|
|
- type="text"
|
|
|
- size="mini"
|
|
|
- icon="el-icon-edit"
|
|
|
- @click="handleUpdate(scope.row,scope.index)">编辑
|
|
|
+ <template
|
|
|
+ slot="menu"
|
|
|
+ slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ v-if="roleManager_btn_edit"
|
|
|
+ type="text"
|
|
|
+ size="mini"
|
|
|
+ icon="el-icon-edit"
|
|
|
+ @click="handleUpdate(scope.row,scope.index)">编辑
|
|
|
</el-button>
|
|
|
- <el-button v-if="roleManager_btn_del"
|
|
|
- type="text"
|
|
|
- size="mini"
|
|
|
- icon="el-icon-delete"
|
|
|
- @click="handleDelete(scope.row,scope.index)">删除
|
|
|
+ <el-button
|
|
|
+ v-if="roleManager_btn_del"
|
|
|
+ type="text"
|
|
|
+ size="mini"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="handleDelete(scope.row,scope.index)">删除
|
|
|
</el-button>
|
|
|
- <el-button v-if="roleManager_btn_perm"
|
|
|
- type="text"
|
|
|
- size="mini"
|
|
|
- icon="el-icon-plus"
|
|
|
- @click="handlePermission(scope.row,scope.index)">权限
|
|
|
+ <el-button
|
|
|
+ v-if="roleManager_btn_perm"
|
|
|
+ type="text"
|
|
|
+ size="mini"
|
|
|
+ icon="el-icon-plus"
|
|
|
+ @click="handlePermission(scope.row,scope.index)">权限
|
|
|
</el-button>
|
|
|
</template>
|
|
|
</avue-crud>
|
|
|
</basic-container>
|
|
|
- <el-dialog :visible.sync="dialogPermissionVisible"
|
|
|
- title="分配权限">
|
|
|
- <el-tree ref="menuTree"
|
|
|
- :data="treeData"
|
|
|
- :default-checked-keys="checkedKeys"
|
|
|
- :check-strictly="false"
|
|
|
- :props="defaultProps"
|
|
|
- :filter-node-method="filterNode"
|
|
|
- class="filter-tree"
|
|
|
- node-key="id"
|
|
|
- highlight-current
|
|
|
- show-checkbox
|
|
|
- default-expand-all />
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="dialogPermissionVisible"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ title="分配权限">
|
|
|
+ <div class="dialog-main-tree">
|
|
|
+ <el-tree
|
|
|
+ ref="menuTree"
|
|
|
+ :data="treeData"
|
|
|
+ :default-checked-keys="checkedKeys"
|
|
|
+ :check-strictly="false"
|
|
|
+ :props="defaultProps"
|
|
|
+ :filter-node-method="filterNode"
|
|
|
+ class="filter-tree"
|
|
|
+ node-key="id"
|
|
|
+ highlight-current
|
|
|
+ show-checkbox
|
|
|
+ default-expand-all/>
|
|
|
+ </div>
|
|
|
<div slot="footer"
|
|
|
- class="dialog-footer">
|
|
|
- <el-button type="primary"
|
|
|
- @click="updatePermession(roleId)">更 新
|
|
|
+ class="dialog-footer">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ @click="updatePermession(roleId)">更 新
|
|
|
</el-button>
|
|
|
+ <el-button
|
|
|
+ type="default"
|
|
|
+ size="small"
|
|
|
+ @click="cancal()">取消</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
@@ -109,7 +126,7 @@ import { mapGetters } from 'vuex'
|
|
|
|
|
|
export default {
|
|
|
name: 'TableRole',
|
|
|
- data () {
|
|
|
+ data() {
|
|
|
return {
|
|
|
searchForm: {},
|
|
|
tableOption: tableOption,
|
|
@@ -140,7 +157,7 @@ export default {
|
|
|
roleManager_btn_perm: false
|
|
|
}
|
|
|
},
|
|
|
- created () {
|
|
|
+ created() {
|
|
|
this.roleManager_btn_add = this.permissions['sys_role_add']
|
|
|
this.roleManager_btn_edit = this.permissions['sys_role_edit']
|
|
|
this.roleManager_btn_del = this.permissions['sys_role_del']
|
|
@@ -150,7 +167,7 @@ export default {
|
|
|
...mapGetters(['elements', 'permissions'])
|
|
|
},
|
|
|
methods: {
|
|
|
- getList (page, params) {
|
|
|
+ getList(page, params) {
|
|
|
this.listLoading = true
|
|
|
fetchList(Object.assign({
|
|
|
current: page.currentPage,
|
|
@@ -163,17 +180,17 @@ export default {
|
|
|
this.listLoading = false
|
|
|
})
|
|
|
},
|
|
|
- handleRefreshChange () {
|
|
|
+ handleRefreshChange() {
|
|
|
this.getList(this.page)
|
|
|
},
|
|
|
- handleFilter (form) {
|
|
|
+ handleFilter(form) {
|
|
|
this.searchForm = form
|
|
|
this.getList(this.page, form)
|
|
|
},
|
|
|
- handleCreate () {
|
|
|
+ handleCreate() {
|
|
|
this.$refs.crud.rowAdd()
|
|
|
},
|
|
|
- handleOpenBefore (show) {
|
|
|
+ handleOpenBefore(show) {
|
|
|
fetchTree().then(response => {
|
|
|
this.dsScopeData = response.data.data
|
|
|
if (this.form.dsScope) {
|
|
@@ -184,10 +201,13 @@ export default {
|
|
|
})
|
|
|
show()
|
|
|
},
|
|
|
- handleUpdate (row, index) {
|
|
|
+ handleUpdate(row, index) {
|
|
|
this.$refs.crud.rowEdit(row, index)
|
|
|
},
|
|
|
- handlePermission (row) {
|
|
|
+ cancal () {
|
|
|
+ this.dialogPermissionVisible = false;
|
|
|
+ },
|
|
|
+ handlePermission(row) {
|
|
|
fetchRoleTree(row.roleId)
|
|
|
.then(response => {
|
|
|
this.checkedKeys = response.data.data
|
|
@@ -209,7 +229,7 @@ export default {
|
|
|
* @param temp 临时存放节点id的数组
|
|
|
* @return 太监节点id数组
|
|
|
*/
|
|
|
- resolveAllEunuchNodeId (json, idArr, temp) {
|
|
|
+ resolveAllEunuchNodeId(json, idArr, temp) {
|
|
|
for (let i = 0; i < json.length; i++) {
|
|
|
const item = json[i]
|
|
|
// 存在子节点,递归遍历;不存在子节点,将json的id添加到临时数组中
|
|
@@ -221,27 +241,27 @@ export default {
|
|
|
}
|
|
|
return temp
|
|
|
},
|
|
|
- filterNode (value, data) {
|
|
|
+ filterNode(value, data) {
|
|
|
if (!value) return true
|
|
|
return data.label.indexOf(value) !== -1
|
|
|
},
|
|
|
- getNodeData (data, done) {
|
|
|
+ getNodeData(data, done) {
|
|
|
done()
|
|
|
},
|
|
|
- handleDelete (row, index) {
|
|
|
+ handleDelete(row, index) {
|
|
|
var _this = this
|
|
|
this.$confirm('是否确认删除名称为"' + row.roleName + '"' + '"的数据项?', '警告', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
|
- }).then(function () {
|
|
|
+ }).then(function() {
|
|
|
return delObj(row.roleId)
|
|
|
}).then(() => {
|
|
|
this.getList(this.page)
|
|
|
this.$notify.success('删除成功')
|
|
|
})
|
|
|
},
|
|
|
- create (row, done, loading) {
|
|
|
+ create(row, done, loading) {
|
|
|
if (this.form.dsType === 1) {
|
|
|
this.form.dsScope = this.$refs.scopeTree.getCheckedKeys().join(',')
|
|
|
}
|
|
@@ -253,7 +273,7 @@ export default {
|
|
|
loading()
|
|
|
})
|
|
|
},
|
|
|
- update (row, index, done, loading) {
|
|
|
+ update(row, index, done, loading) {
|
|
|
if (this.form.dsType === 1) {
|
|
|
this.form.dsScope = this.$refs.scopeTree.getCheckedKeys().join(',')
|
|
|
}
|
|
@@ -265,15 +285,33 @@ export default {
|
|
|
loading()
|
|
|
})
|
|
|
},
|
|
|
- updatePermession (roleId) {
|
|
|
+ updatePermession(roleId) {
|
|
|
this.menuIds = ''
|
|
|
this.menuIds = this.$refs.menuTree.getCheckedKeys().join(',').concat(',').concat(this.$refs.menuTree.getHalfCheckedKeys().join(','))
|
|
|
permissionUpd(roleId, this.menuIds).then(() => {
|
|
|
this.dialogPermissionVisible = false
|
|
|
- this.$store.dispatch('GetMenu', false)
|
|
|
this.$notify.success('修改成功')
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+ .el-dialog__wrapper {
|
|
|
+ .el-dialog {
|
|
|
+ width: 61% !important;
|
|
|
+ .dialog-main-tree {
|
|
|
+ max-height: 400px;
|
|
|
+ overflow-y: auto;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .el-form-item__label {
|
|
|
+ width: 20% !important;
|
|
|
+ padding-right: 20px;
|
|
|
+ }
|
|
|
+ .el-form-item__content {
|
|
|
+ margin-left: 20% !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|