|
|
@@ -1,38 +1,12 @@
|
|
|
<template>
|
|
|
<PageWrapper>
|
|
|
<el-card :bordered="false" class="proCard">
|
|
|
- <template #header>
|
|
|
- <el-space align="center" v-permission="PERM_USER.DEPT">
|
|
|
- <el-button type="primary" @click="openCreateDrawer">
|
|
|
- <template #icon>
|
|
|
- <el-icon>
|
|
|
- <FileAddOutlined />
|
|
|
- </el-icon>
|
|
|
- </template>
|
|
|
- 添加
|
|
|
- </el-button>
|
|
|
- </el-space>
|
|
|
- </template>
|
|
|
<el-table :data="tableData" row-key="id" :tree-props="treeProps" default-expand-all>
|
|
|
<el-table-column label="组织名称">
|
|
|
<template #default="{ row }">
|
|
|
{{ `${row.deptName} (${row.userCount})` }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="操作" width="200">
|
|
|
- <template #default="scope">
|
|
|
- <el-space v-permission="PERM_USER.DEPT">
|
|
|
- <div class="el-space el-space--horizontal">
|
|
|
- <div class="el-space__item" @click="handleEdit(scope.row)">
|
|
|
- <div><img :src="editIcon" class="el-tooltip__trigger" /></div>
|
|
|
- </div>
|
|
|
- <div class="el-space__item" @click="handleDelete(scope.row)">
|
|
|
- <div><img :src="deleteIcon" class="el-tooltip__trigger" /></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-space>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
</el-table>
|
|
|
</el-card>
|
|
|
<CreateDrawer_shangfei
|
|
|
@@ -56,23 +30,16 @@
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
import { onMounted, reactive, ref } from 'vue';
|
|
|
- import { ElMessage } from 'element-plus';
|
|
|
import { PageWrapper } from '@/components/Page';
|
|
|
- import { getAllDepartments, deleteDepartments } from '@/api/auth/dept';
|
|
|
- import { FileAddOutlined } from '@vicons/antd';
|
|
|
+ import { getAllDepartments } from '@/api/auth/dept';
|
|
|
import CreateDrawer from './CreateDrawer.vue';
|
|
|
import CreateDrawer_shangfei from './CreateDrawer-shangfei.vue';
|
|
|
import { useGlobSetting } from '@/hooks/setting';
|
|
|
import type { DeptTreeItem } from '@/types/dept/type';
|
|
|
- import editIcon from '@/assets/icons/edit.png';
|
|
|
- import deleteIcon from '@/assets/icons/delete.png';
|
|
|
- import { PERM_USER } from '@/types/permission/constants';
|
|
|
- import { ResultEnum } from '@/enums/httpEnum';
|
|
|
|
|
|
const globSetting = useGlobSetting();
|
|
|
const disableDepartmentEdit = globSetting.disableDepartmentEdit;
|
|
|
|
|
|
- const message = ElMessage;
|
|
|
const tableData = ref<any[]>([]);
|
|
|
const treeProps = reactive({
|
|
|
checkStrictly: false,
|
|
|
@@ -84,13 +51,13 @@
|
|
|
deptName: '',
|
|
|
parentId: null,
|
|
|
orderNum: undefined,
|
|
|
- isDisabled: 0,
|
|
|
createdBy: 0,
|
|
|
updatedBy: 0,
|
|
|
createdAt: '',
|
|
|
updatedAt: '',
|
|
|
isDeleted: 0,
|
|
|
tenantId: 0,
|
|
|
+ userCount: 0,
|
|
|
});
|
|
|
|
|
|
const loadDataTable = async () => {
|
|
|
@@ -102,30 +69,6 @@
|
|
|
loadDataTable();
|
|
|
}
|
|
|
|
|
|
- function openCreateDrawer() {
|
|
|
- drawerTitle.value = '添加部门';
|
|
|
- const { openDrawer } = createDrawerRef.value;
|
|
|
- openDrawer();
|
|
|
- }
|
|
|
-
|
|
|
- function handleEdit(record: Recordable) {
|
|
|
- drawerTitle.value = '编辑部门';
|
|
|
- currentDept.value = record;
|
|
|
- const { openDrawer } = createDrawerRef.value;
|
|
|
- openDrawer(record.deptId);
|
|
|
- }
|
|
|
-
|
|
|
- function handleDelete(record: Recordable) {
|
|
|
- deleteDepartments(record.id).then((res) => {
|
|
|
- if (res.code === ResultEnum.SUCCESS) {
|
|
|
- message.success('删除成功');
|
|
|
- loadDataTable();
|
|
|
- } else {
|
|
|
- message.error(res.data);
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
onMounted(() => {
|
|
|
loadDataTable();
|
|
|
});
|