提交 5e0b6505 authored 作者: 王鹏飞's avatar 王鹏飞

新增复制权限

上级 5ff09d8c
...@@ -34,3 +34,10 @@ export function updatePermission(data) { ...@@ -34,3 +34,10 @@ export function updatePermission(data) {
export function deletePermission(data) { export function deletePermission(data) {
return httpRequest.delete(`/api/xedu/admin/v2/permission/${data.id}`, data) return httpRequest.delete(`/api/xedu/admin/v2/permission/${data.id}`, data)
} }
/**
* 复制权限
*/
export function clonePermission(data) {
return httpRequest.post('/api/xedu/admin/v2/permission/copy', data)
}
<template>
<el-dialog title="复制权限" :close-on-click-modal="false" v-bind="$attrs" v-on="$listeners" width="400px">
<el-form ref="form" :model="form" :rules="rules" label-position="top">
<el-form-item label="项目" prop="select_project_id">
<el-select v-model="form.select_project_id">
<el-option :label="item.name" :value="item.id" v-for="item in projects" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="类型" prop="types">
<el-checkbox-group v-model="form.types">
<el-checkbox :label="1">菜单权限</el-checkbox>
<el-checkbox :label="2">按钮权限</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="所属系统" prop="system_tags">
<el-checkbox-group v-model="form.system_tags">
<el-checkbox :label="1">学校端</el-checkbox>
<!-- <el-checkbox :label="2">教师端</el-checkbox> -->
<el-checkbox :label="3">学生端</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-form>
<template #footer>
<el-button type="text" @click="onCancel">取消</el-button>&nbsp;&nbsp;
<el-button type="primary" size="medium" @click="onPrimary">确定</el-button>
</template>
</el-dialog>
</template>
<script>
// lodash
import { clonePermission } from '../api.js'
export default {
data() {
return {
form: {
current_project_id: this.$store.state.activeProject.id,
select_project_id: '',
system_tags: [],
types: []
},
rules: {
select_project_id: [{ required: true, message: '请选择所属项目', trigger: 'change' }],
types: [{ required: true, message: '请选择权限类型', trigger: 'change' }],
system_tags: [{ required: true, message: '请选择所属系统', trigger: 'change' }]
}
}
},
computed: {
projects() {
return this.$store.state.projects.filter(item => item.id !== this.$store.state.activeProject.id)
}
},
methods: {
// 取消
onCancel() {
this.$emit('update:visible', false)
},
// 确定
onPrimary() {
this.$refs.form.validate().then(() => {
clonePermission(this.form).then(res => {
this.$message.success('复制成功')
this.$emit('update:visible', false)
this.$emit('success', res.data)
})
})
}
}
}
</script>
<style></style>
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<app-list v-bind="tableOptions" ref="list" row-key="id"> <app-list v-bind="tableOptions" ref="list" row-key="id">
<template #header-aside> <template #header-aside>
<el-button type="primary" @click="handleCreate()">创建权限</el-button> <el-button type="primary" @click="handleCreate()">创建权限</el-button>
<el-button type="warning" @click="cloneVisible = true">复制权限</el-button>
</template> </template>
<el-tabs v-model="activeName" type="card" @tab-click="handleClick"> <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane <el-tab-pane
...@@ -25,6 +26,7 @@ ...@@ -25,6 +26,7 @@
@success="handleSuccess" @success="handleSuccess"
v-if="visible" v-if="visible"
></editform> ></editform>
<ClonePermissions :visible.sync="cloneVisible" @success="handleSuccess" v-if="cloneVisible"></ClonePermissions>
</app-card> </app-card>
</template> </template>
...@@ -33,7 +35,10 @@ ...@@ -33,7 +35,10 @@
import { getPermissionList, deletePermission } from '../api' import { getPermissionList, deletePermission } from '../api'
export default { export default {
components: { Editform: () => import('../components/Editform.vue') }, components: {
Editform: () => import('../components/Editform.vue'),
ClonePermissions: () => import('../components/ClonePermissions.vue')
},
data() { data() {
return { return {
visible: false, visible: false,
...@@ -44,7 +49,8 @@ export default { ...@@ -44,7 +49,8 @@ export default {
{ value: '', label: '全部' }, { value: '', label: '全部' },
{ value: '1', label: '菜单' }, { value: '1', label: '菜单' },
{ value: '2', label: '按钮' } { value: '2', label: '按钮' }
] ],
cloneVisible: false
} }
}, },
computed: { computed: {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论