|
@@ -18,92 +18,82 @@
|
|
|
<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/>
|
|
|
- <div
|
|
|
- slot="footer"
|
|
|
- class="dialog-footer">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- @click="updatePermession(roleId)">更 新
|
|
|
+ <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 />
|
|
|
+ <div slot="footer"
|
|
|
+ class="dialog-footer">
|
|
|
+ <el-button type="primary"
|
|
|
+ @click="updatePermession(roleId)">更 新
|
|
|
</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
@@ -119,7 +109,7 @@ import { mapGetters } from 'vuex'
|
|
|
|
|
|
export default {
|
|
|
name: 'TableRole',
|
|
|
- data() {
|
|
|
+ data () {
|
|
|
return {
|
|
|
searchForm: {},
|
|
|
tableOption: tableOption,
|
|
@@ -150,7 +140,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']
|
|
@@ -160,7 +150,7 @@ export default {
|
|
|
...mapGetters(['elements', 'permissions'])
|
|
|
},
|
|
|
methods: {
|
|
|
- getList(page, params) {
|
|
|
+ getList (page, params) {
|
|
|
this.listLoading = true
|
|
|
fetchList(Object.assign({
|
|
|
current: page.currentPage,
|
|
@@ -173,17 +163,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) {
|
|
@@ -194,10 +184,10 @@ export default {
|
|
|
})
|
|
|
show()
|
|
|
},
|
|
|
- handleUpdate(row, index) {
|
|
|
+ handleUpdate (row, index) {
|
|
|
this.$refs.crud.rowEdit(row, index)
|
|
|
},
|
|
|
- handlePermission(row) {
|
|
|
+ handlePermission (row) {
|
|
|
fetchRoleTree(row.roleId)
|
|
|
.then(response => {
|
|
|
this.checkedKeys = response.data.data
|
|
@@ -219,7 +209,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添加到临时数组中
|
|
@@ -231,27 +221,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(',')
|
|
|
}
|
|
@@ -263,7 +253,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(',')
|
|
|
}
|
|
@@ -275,11 +265,12 @@ 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('修改成功')
|
|
|
})
|
|
|
}
|