|
@@ -35,6 +35,28 @@
|
|
|
<el-form-item label="排序:">
|
|
|
<el-input v-model="menu.sort" />
|
|
|
</el-form-item>
|
|
|
+ <el-form-item v-if="null === menu.childCount || menu.childCount === 0" label="按钮权限:" prop="permissionJson">
|
|
|
+ <el-table row-key="title" :data="permissions" border highlight-current-row>
|
|
|
+ <el-table-column label="按钮标题" prop="title" align="center">
|
|
|
+ <template slot-scope="{row}">
|
|
|
+ <el-input v-model="row.title" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="权限标识" prop="name" align="center">
|
|
|
+ <template slot-scope="{row}">
|
|
|
+ <el-input v-model="row.name" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" align="center">
|
|
|
+ <template slot-scope="{row}">
|
|
|
+ <el-button size="mini" type="danger" @click="handlePermissionDelete(row)">删除按钮</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div class="permission-btn">
|
|
|
+ <el-button type="primary" @click="handlePermissionCreate">添加按钮</el-button>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" @click="onSubmit('menuFrom')">提交</el-button>
|
|
|
<el-button v-if="!isEdit" type="info" @click="resetForm('menuFrom')">重置</el-button>
|
|
@@ -54,8 +76,15 @@ const defaultMenu = {
|
|
|
hidden: 0,
|
|
|
status: 0,
|
|
|
sort: 0,
|
|
|
+ childCount: 0,
|
|
|
+ permissionJson: '',
|
|
|
parentId: 0
|
|
|
}
|
|
|
+const defaultPermission = {
|
|
|
+ id: 0,
|
|
|
+ name: '',
|
|
|
+ title: ''
|
|
|
+}
|
|
|
export default {
|
|
|
name: 'SysMenuEdit',
|
|
|
data() {
|
|
@@ -66,6 +95,8 @@ export default {
|
|
|
},
|
|
|
parentTitle: '',
|
|
|
menu: Object.assign({}, defaultMenu),
|
|
|
+ permissions: [],
|
|
|
+ disableNextLevel: false,
|
|
|
isEdit: false
|
|
|
}
|
|
|
},
|
|
@@ -99,6 +130,10 @@ export default {
|
|
|
this.menu.status = response.data.status
|
|
|
this.menu.sort = response.data.sort
|
|
|
this.menu.parentId = response.data.parentId
|
|
|
+ this.menu.childCount = response.data.childCount
|
|
|
+ if (response.data.permissions) {
|
|
|
+ this.permissions = response.data.permissions
|
|
|
+ }
|
|
|
})
|
|
|
} else {
|
|
|
this.menu.id = ''
|
|
@@ -119,6 +154,7 @@ export default {
|
|
|
this.getFormData()
|
|
|
},
|
|
|
onSubmit(formName) {
|
|
|
+ this.menu.permissionJson = JSON.stringify(this.permissions)
|
|
|
this.$refs[formName].validate(valid => {
|
|
|
if (valid) {
|
|
|
this.$confirm('是否提交数据', '提示', {
|
|
@@ -158,10 +194,28 @@ export default {
|
|
|
return false
|
|
|
}
|
|
|
})
|
|
|
+ },
|
|
|
+ handlePermissionDelete(row) {
|
|
|
+ const temp = this.permissions
|
|
|
+ const newList = []
|
|
|
+ temp.forEach(item => {
|
|
|
+ if (item.id !== row.id) {
|
|
|
+ newList.push(item)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.permissions = newList
|
|
|
+ },
|
|
|
+ handlePermissionCreate() {
|
|
|
+ this.permissions.push(Object.assign({}, defaultPermission))
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
+.permission-btn{
|
|
|
+ text-align: center;
|
|
|
+ padding:15px 0;
|
|
|
+ border-bottom: 1px solid #e6ebf5;
|
|
|
+}
|
|
|
</style>
|