fix/0524_ch
向文可 3 years ago
parent ab6b36115b
commit 2655f6cefa

@ -1,6 +1,6 @@
import * as api from '@/api/permission/dept.js'; import * as api from '@/api/permission/dept.js';
import * as roleAPI from '@/api/permission/role.js'; import * as roleAPI from '@/api/permission/role.js';
import { ElMessage, ElMessageBox } from '@/plugins/element-plus'; import { ElMessage } from '@/plugins/element-plus';
const state = () => ({ const state = () => ({
code: 'DeptRoleManagement', code: 'DeptRoleManagement',
condition: {}, condition: {},
@ -52,17 +52,12 @@ const actions = {
return res; return res;
}, },
remove: async ({ dispatch }, data) => { remove: async ({ dispatch }, data) => {
try { let res = await api.delRole(data);
await ElMessageBox.confirm('数据删除后无法恢复,确定要删除吗?', '危险操作'); if (res) {
let res = await api.delRole(data); ElMessage.success('删除成功');
if (res) { dispatch('search');
ElMessage.success('删除成功'); } else {
dispatch('search'); ElMessage.error('删除失败');
} else {
ElMessage.error('删除失败');
}
} catch (e) {
console.info('取消删除', e);
} }
}, },
}; };

@ -119,7 +119,7 @@
:key="index + '' + j" :key="index + '' + j"
closable closable
size="large" size="large"
@close="handleDelRole(role.id)" @close="(delRoleId = role.id), (delVisible = true)"
> >
{{ role.roleName }} {{ role.roleName }}
</el-tag> </el-tag>
@ -152,6 +152,21 @@
<el-button :loading="loading3" type="primary" @click="handleSaveRole"></el-button> <el-button :loading="loading3" type="primary" @click="handleSaveRole"></el-button>
</template> </template>
</el-dialog> </el-dialog>
<el-dialog v-model="delVisible" title="提示">
<h3 style="display: flex; align-items: center">
<el-icon name="Warning" size="20" style="margin-right: 10px" />
确定删除组织中的角色吗
</h3>
<p>删除角色后组织下的员工将失去对应角色权限</p>
<el-checkbox
v-model="isDeleteDepartmentOfEmployeeRole"
label="仅删除组织角色,不删除组织下员工角色"
/>
<template #footer>
<el-button @click="delVisible = false">取消</el-button>
<el-button :loading="loading4" type="primary" @click="handleDelRole"></el-button>
</template>
</el-dialog>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
@ -316,13 +331,6 @@
}, },
{ immediate: true, deep: true } { immediate: true, deep: true }
); );
const handleDelRole = async (id) => {
store.dispatch('deptRole/remove', {
departmentId: state.condition3.departmentId,
isDeleteDepartmentOfEmployeeRole: true,
roleId: id,
});
};
const handleAddRole = async (id) => { const handleAddRole = async (id) => {
loading3.value = true; loading3.value = true;
roleVisible.value = true; roleVisible.value = true;
@ -345,6 +353,20 @@
} }
loading3.value = false; loading3.value = false;
}; };
const loading4 = ref(false);
const delVisible = ref(false);
const delRoleId = ref(null);
const isDeleteDepartmentOfEmployeeRole = ref(false);
const handleDelRole = async () => {
loading4.value = true;
await store.dispatch('deptRole/remove', {
departmentId: state.condition3.departmentId,
isDeleteDepartmentOfEmployeeRole: !unref(isDeleteDepartmentOfEmployeeRole),
roleId: unref(delRoleId),
});
loading4.value = false;
delVisible.value = false;
};
/* 表单 */ /* 表单 */
const refsForm = ref(null); const refsForm = ref(null);

@ -31,7 +31,11 @@
</el-form> </el-form>
</template> </template>
</table-list> </table-list>
<el-dialog v-model="formState.formVisible" :title="(formState.form.id ? '编辑' : '新增') + '角色'"> <el-dialog
v-model="formState.formVisible"
:title="(formState.form.id ? '编辑' : '新增') + '角色'"
@close="formState.currentTab = '0'"
>
<el-tabs v-model="formState.currentTab"> <el-tabs v-model="formState.currentTab">
<el-tab-pane label="基本信息" name="1"> <el-tab-pane label="基本信息" name="1">
<el-form <el-form
@ -278,7 +282,7 @@
}; };
const handleDetail = async () => { const handleDetail = async () => {
formState.submitting = true; formState.submitting = true;
if (formState.currentTab === '1') { if (formState.currentTab === '1' && formState.form.id) {
let res = await store.dispatch('role/detail', formState.form.id); let res = await store.dispatch('role/detail', formState.form.id);
res.role.menuIds = []; res.role.menuIds = [];
res.role.permissionIds = []; res.role.permissionIds = [];

Loading…
Cancel
Save