|
@@ -20,34 +20,33 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
|
|
|
- <el-table
|
|
|
- ref="roleTable"
|
|
|
- v-loading="loading"
|
|
|
+ <vxe-table
|
|
|
+ resizable
|
|
|
+ :tree-config="{ transform: true, rowField: 'id', parentField: 'parentId' }"
|
|
|
:data="menuList"
|
|
|
- row-key="id"
|
|
|
+ align="center"
|
|
|
border
|
|
|
- stripe
|
|
|
header-row-class-name="headBackground"
|
|
|
- :tree-props="{ children: 'children' }"
|
|
|
- @select="select"
|
|
|
- @select-all="selectAll"
|
|
|
- @selection-change="handelDelDist"
|
|
|
+ stripe
|
|
|
+ :loading="loading"
|
|
|
+ @checkbox-change="select"
|
|
|
+ @checkbox-all="select"
|
|
|
>
|
|
|
- <el-table-column type="selection" width="55" align="center" />
|
|
|
- <el-table-column label="菜单名称" prop="menuName" header-align="center" show-overflow-tooltip />
|
|
|
- <el-table-column label="菜单图标" prop="menuIcon" align="center" show-overflow-tooltip />
|
|
|
- <el-table-column label="菜单路径" prop="menuUrl" align="center" show-overflow-tooltip />
|
|
|
- <el-table-column label="更新时间" prop="updateTime" align="center" show-overflow-tooltip />
|
|
|
- <el-table-column label="创建时间" prop="createTime" align="center" show-overflow-tooltip />
|
|
|
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
+ <vxe-column type="checkbox" width="60px" />
|
|
|
+ <vxe-column field="menuName" title="菜单名称" tree-node show-overflow />
|
|
|
+ <vxe-column field="menuIcon" title="菜单图标" show-overflow />
|
|
|
+ <vxe-column field="menuUrl" title="菜单路径" show-overflow />
|
|
|
+ <vxe-column field="updateTime" title="更新时间" show-overflow />
|
|
|
+ <vxe-column field="createTime" title="创建时间" show-overflow />
|
|
|
+ <vxe-column title="操作">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button type="text" size="mini" :disabled="!celDistribution" @click="delMenu(scope.row.id)"><i
|
|
|
class="el-icon-circle-close celBtn"
|
|
|
/><span>取消分配</span>
|
|
|
</el-button>
|
|
|
</template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
+ </vxe-column>
|
|
|
+ </vxe-table>
|
|
|
|
|
|
<userMenuSelect ref="select" @handelUpdate="getList" />
|
|
|
</div>
|
|
@@ -56,13 +55,11 @@
|
|
|
<script>
|
|
|
import { getMenuListByRoleId, delDistributionMenu } from '@/api/system/role'
|
|
|
import userMenuSelect from './user-menuSelect.vue'
|
|
|
-import multipleChoice from '@/mixin/multipleChoice'
|
|
|
export default {
|
|
|
name: 'UserMenu',
|
|
|
components: {
|
|
|
userMenuSelect
|
|
|
},
|
|
|
- mixins: [multipleChoice],
|
|
|
data() {
|
|
|
return {
|
|
|
// 遮罩层
|
|
@@ -77,7 +74,8 @@ export default {
|
|
|
// 用户表格数据
|
|
|
menuList: [],
|
|
|
// 禁用取消分配
|
|
|
- celDistribution: true
|
|
|
+ celDistribution: true,
|
|
|
+ selectFlag: false
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
@@ -92,9 +90,7 @@ export default {
|
|
|
getMenuListByRoleId({ roleList }).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
const data = res.data
|
|
|
- this.menuList = this.$utils.toArrayTree(data)
|
|
|
- this.selectData = this.menuList
|
|
|
- this.multiple = 'roleTable'
|
|
|
+ this.menuList = data
|
|
|
this.loading = false
|
|
|
}
|
|
|
})
|
|
@@ -108,10 +104,10 @@ export default {
|
|
|
this.$refs.select.show()
|
|
|
},
|
|
|
/** 取消分配菜单多选 */
|
|
|
- handelDelDist(selection) {
|
|
|
- // console.log(selection);
|
|
|
- this.delDistObj.menuList = selection.map(item => { return { id: item.id } })
|
|
|
- this.celDistribution = !selection.length
|
|
|
+ select({ $table }) {
|
|
|
+ const records = $table.getCheckboxRecords()
|
|
|
+ this.delDistObj.menuList = records.map(item => { return { id: item.id } })
|
|
|
+ this.celDistribution = !records.length
|
|
|
},
|
|
|
/** 取消分配按钮 */
|
|
|
delMenu(id) {
|