|
|
@@ -4,10 +4,17 @@
|
|
|
<div v-show="showSearch" class="mb-[10px]">
|
|
|
<el-card shadow="hover">
|
|
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
|
|
- <el-form-item label="数据来源" prop="dataSource">
|
|
|
- <el-input v-model="queryParams.dataSource" placeholder="请输入数据来源" clearable @keyup.enter="handleQuery" />
|
|
|
+ <el-form-item label="部门名称" prop="deptName">
|
|
|
+ <el-input v-model="queryParams.deptName" placeholder="请输入部门名称" clearable @keyup.enter="handleQuery" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="类别编码" prop="deptCategory">
|
|
|
+ <el-input v-model="queryParams.deptCategory" placeholder="请输入类别编码" clearable style="width: 240px" @keyup.enter="handleQuery" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="状态" prop="status">
|
|
|
+ <el-select v-model="queryParams.status" placeholder="部门状态" clearable>
|
|
|
+ <el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
-
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
|
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
|
|
@@ -17,86 +24,126 @@
|
|
|
</div>
|
|
|
</transition>
|
|
|
|
|
|
- <el-card shadow="never">
|
|
|
+ <el-card shadow="hover">
|
|
|
<template #header>
|
|
|
- <el-row :gutter="10" class="mb8">
|
|
|
- <el-col :span="20"><span>部门设定</span> </el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
- <el-button type="primary" plain icon="Plus" @click="handleAdd()" v-hasPermi="['system:comDept:add']">新增</el-button>
|
|
|
- </el-col>
|
|
|
+ <el-row :gutter="10">
|
|
|
+ <!-- <el-col :span="1.5">
|
|
|
+ <el-button v-hasPermi="['system:dept:add']" type="primary" plain icon="Plus" @click="handleAdd()">新增 </el-button>
|
|
|
+ </el-col> -->
|
|
|
<el-col :span="1.5">
|
|
|
<el-button type="info" plain icon="Sort" @click="handleToggleExpandAll">展开/折叠</el-button>
|
|
|
</el-col>
|
|
|
+ <right-toolbar v-model:show-search="showSearch" @query-table="getList"></right-toolbar>
|
|
|
</el-row>
|
|
|
</template>
|
|
|
+
|
|
|
<el-table
|
|
|
- ref="comDeptTableRef"
|
|
|
+ ref="deptTableRef"
|
|
|
v-loading="loading"
|
|
|
- :data="comDeptList"
|
|
|
- row-key="id"
|
|
|
+ :data="deptList"
|
|
|
+ row-key="deptId"
|
|
|
border
|
|
|
- :default-expand-all="isExpandAll"
|
|
|
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
|
|
|
+ :default-expand-all="isExpandAll"
|
|
|
>
|
|
|
- <!-- <el-table-column label="部门编码" prop="deptCode" /> -->
|
|
|
- <el-table-column label="部门名称" align="center" prop="deptName" />
|
|
|
- <el-table-column label="生效日期" align="center" prop="validFrom" width="180">
|
|
|
+ <el-table-column prop="deptName" label="部门名称" width="260"></el-table-column>
|
|
|
+ <el-table-column prop="deptCategory" align="center" label="类别编码" width="200"></el-table-column>
|
|
|
+ <el-table-column prop="orderNum" align="center" label="排序" width="200"></el-table-column>
|
|
|
+ <el-table-column prop="status" align="center" label="状态" width="100">
|
|
|
<template #default="scope">
|
|
|
- <span>{{ parseTime(scope.row.validFrom, '{y}-{m}-{d}') }}</span>
|
|
|
+ <dict-tag :options="sys_normal_disable" :value="scope.row.status" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="失效日期" align="center" prop="validTo" width="180">
|
|
|
+ <el-table-column label="创建时间" align="center" prop="createTime" width="200">
|
|
|
<template #default="scope">
|
|
|
- <span>{{ parseTime(scope.row.validTo, '{y}-{m}-{d}') }}</span>
|
|
|
+ <span>{{ proxy.parseTime(scope.row.createTime) }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="主管" align="center" prop="leader" />
|
|
|
- <el-table-column label="是否启用" align="center" prop="status">
|
|
|
+ <el-table-column fixed="right" align="center" label="操作">
|
|
|
<template #default="scope">
|
|
|
- <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="数据来源" align="center" prop="dataSource" />
|
|
|
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
- <template #default="scope">
|
|
|
- <el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)" v-hasPermi="['system:comDept:add']">新增</el-button>
|
|
|
-
|
|
|
- <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:comDept:edit']">编辑</el-button>
|
|
|
+ <el-tooltip content="修改" placement="top">
|
|
|
+ <el-button v-hasPermi="['system:dept:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)" />
|
|
|
+ </el-tooltip>
|
|
|
+ <el-tooltip content="新增" placement="top">
|
|
|
+ <el-button v-hasPermi="['system:dept:add']" link type="primary" icon="Plus" @click="handleAdd(scope.row)" />
|
|
|
+ </el-tooltip>
|
|
|
+ <el-tooltip content="删除" placement="top">
|
|
|
+ <el-button v-hasPermi="['system:dept:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)" />
|
|
|
+ </el-tooltip>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</el-card>
|
|
|
- <!-- 添加或修改企业部门对话框 -->
|
|
|
- <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
|
|
- <el-form ref="comDeptFormRef" :model="form" :rules="rules" label-width="80px">
|
|
|
- <el-form-item label="部门名称" prop="deptName">
|
|
|
- <el-input v-model="form.deptName" placeholder="请输入部门名称" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="父部门ID" prop="parentId">
|
|
|
- <el-tree-select
|
|
|
- v-model="form.parentId"
|
|
|
- :data="comDeptOptions"
|
|
|
- :props="{ value: 'id', label: 'deptName', children: 'children' }"
|
|
|
- value-key="id"
|
|
|
- placeholder="请选择父部门ID"
|
|
|
- check-strictly
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="是否启用" prop="status">
|
|
|
- <el-radio-group v-model="form.status">
|
|
|
- <el-radio v-for="dict in sys_platform_yes_no" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="生效日期" prop="validFrom">
|
|
|
- <el-date-picker clearable v-model="form.validFrom" type="date" value-format="YYYY-MM-DD" placeholder="选择生效日期" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="失效日期" prop="validTo">
|
|
|
- <el-date-picker clearable v-model="form.validTo" type="date" value-format="YYYY-MM-DD" placeholder="选择失效日期" />
|
|
|
- </el-form-item>
|
|
|
+
|
|
|
+ <el-dialog v-model="dialog.visible" :title="dialog.title" destroy-on-close append-to-body width="600px">
|
|
|
+ <el-form ref="deptFormRef" :model="form" :rules="rules" label-width="80px">
|
|
|
+ <el-row>
|
|
|
+ <el-col v-if="form.parentId !== 0" :span="24">
|
|
|
+ <el-form-item label="上级部门" prop="parentId">
|
|
|
+ <el-tree-select
|
|
|
+ v-model="form.parentId"
|
|
|
+ :data="deptOptions"
|
|
|
+ :props="{ value: 'deptId', label: 'deptName', children: 'children' } as any"
|
|
|
+ value-key="deptId"
|
|
|
+ placeholder="选择上级部门"
|
|
|
+ check-strictly
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="部门名称" prop="deptName">
|
|
|
+ <el-input v-model="form.deptName" placeholder="请输入部门名称" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="类别编码" prop="deptCategory">
|
|
|
+ <el-input v-model="form.deptCategory" placeholder="请输入类别编码" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="显示排序" prop="orderNum">
|
|
|
+ <el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="负责人" prop="leader">
|
|
|
+ <el-select v-model="form.leader" placeholder="请选择负责人">
|
|
|
+ <el-option v-for="item in deptUserList" :key="item.userId" :label="item.userName" :value="item.userId" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="联系电话" prop="phone">
|
|
|
+ <el-input v-model="form.phone" placeholder="请输入联系电话" maxlength="11" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="邮箱" prop="email">
|
|
|
+ <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="部门状态">
|
|
|
+ <el-radio-group v-model="form.status">
|
|
|
+ <el-radio v-for="dict in sys_normal_disable" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <!-- 仅当是总控平台时显示 -->
|
|
|
+ <el-form-item v-if="isMainPlatform" label="所属平台" prop="platformCode">
|
|
|
+ <el-select v-model="form.platformCode" placeholder="请选择平台">
|
|
|
+ <el-option v-for="dict in sys_platform_code" :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
</el-form>
|
|
|
<template #footer>
|
|
|
<div class="dialog-footer">
|
|
|
- <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
|
|
+ <el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
<el-button @click="cancel">取 消</el-button>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -104,200 +151,190 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
-<script setup name="ComDept" lang="ts">
|
|
|
-import { listComDept, getComDept, delComDept, addComDept, updateComDept, changeStatus } from '@/api/company/comDept';
|
|
|
-import { ComDeptVO, ComDeptQuery, ComDeptForm } from '@/api/company/comDept/types';
|
|
|
+<script setup name="Dept" lang="ts">
|
|
|
+import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from '@/api/system/dept';
|
|
|
+import { DeptForm, DeptQuery, DeptVO } from '@/api/system/dept/types';
|
|
|
+import { UserVO } from '@/api/system/user/types';
|
|
|
+import { listUserByDeptId } from '@/api/system/user';
|
|
|
+import { getPlatformCode } from '@/utils/platform';
|
|
|
|
|
|
-type ComDeptOption = {
|
|
|
- id: number;
|
|
|
+interface DeptOptionsType {
|
|
|
+ deptId: number | string;
|
|
|
deptName: string;
|
|
|
- children?: ComDeptOption[];
|
|
|
-};
|
|
|
+ children: DeptOptionsType[];
|
|
|
+}
|
|
|
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
+const { sys_normal_disable, sys_platform_code } = toRefs<any>(proxy?.useDict('sys_normal_disable', 'sys_platform_code'));
|
|
|
|
|
|
-const { sys_platform_yes_no } = toRefs<any>(proxy?.useDict('sys_platform_yes_no'));
|
|
|
-
|
|
|
-const comDeptList = ref<ComDeptVO[]>([]);
|
|
|
-const comDeptOptions = ref<ComDeptOption[]>([]);
|
|
|
-const buttonLoading = ref(false);
|
|
|
+const deptList = ref<DeptVO[]>([]);
|
|
|
+const loading = ref(true);
|
|
|
const showSearch = ref(true);
|
|
|
+const deptOptions = ref<DeptOptionsType[]>([]);
|
|
|
const isExpandAll = ref(true);
|
|
|
-const loading = ref(false);
|
|
|
-
|
|
|
-const queryFormRef = ref<ElFormInstance>();
|
|
|
-const comDeptFormRef = ref<ElFormInstance>();
|
|
|
-const comDeptTableRef = ref<ElTableInstance>();
|
|
|
+const deptUserList = ref<UserVO[]>([]);
|
|
|
+const currentPlatform = getPlatformCode();
|
|
|
+const isMainPlatform = computed(() => currentPlatform === 'main');
|
|
|
|
|
|
const dialog = reactive<DialogOption>({
|
|
|
visible: false,
|
|
|
title: ''
|
|
|
});
|
|
|
|
|
|
-const initFormData: ComDeptForm = {
|
|
|
- id: undefined,
|
|
|
- deptCode: undefined,
|
|
|
- companyId: undefined,
|
|
|
- deptName: undefined,
|
|
|
+const deptTableRef = ref<ElTableInstance>();
|
|
|
+const queryFormRef = ref<ElFormInstance>();
|
|
|
+const deptFormRef = ref<ElFormInstance>();
|
|
|
+
|
|
|
+const initFormData: DeptForm = {
|
|
|
+ deptId: undefined,
|
|
|
parentId: undefined,
|
|
|
- ancestors: undefined,
|
|
|
+ deptName: undefined,
|
|
|
+ companyId: undefined,
|
|
|
deptCategory: undefined,
|
|
|
- level: undefined,
|
|
|
+ orderNum: 0,
|
|
|
leader: undefined,
|
|
|
phone: undefined,
|
|
|
email: undefined,
|
|
|
- validFrom: undefined,
|
|
|
- validTo: undefined,
|
|
|
status: '0',
|
|
|
- dataSource: undefined,
|
|
|
- orderNum: undefined
|
|
|
+ platformCode: ''
|
|
|
};
|
|
|
-
|
|
|
-const data = reactive<PageData<ComDeptForm, ComDeptQuery>>({
|
|
|
+const initData: PageData<DeptForm, DeptQuery> = {
|
|
|
form: { ...initFormData },
|
|
|
queryParams: {
|
|
|
- deptCode: undefined,
|
|
|
- companyId: undefined,
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
deptName: undefined,
|
|
|
- parentId: undefined,
|
|
|
- ancestors: undefined,
|
|
|
deptCategory: undefined,
|
|
|
- level: undefined,
|
|
|
- leader: undefined,
|
|
|
- phone: undefined,
|
|
|
- email: undefined,
|
|
|
- validFrom: undefined,
|
|
|
- validTo: undefined,
|
|
|
status: undefined,
|
|
|
- dataSource: undefined,
|
|
|
- orderNum: undefined,
|
|
|
- platformCode: undefined,
|
|
|
- params: {}
|
|
|
+ isCompanyFlag: '0',
|
|
|
+ companyId: 1
|
|
|
},
|
|
|
rules: {
|
|
|
- deptName: [{ required: true, message: '部门名称不能为空', trigger: 'blur' }]
|
|
|
+ parentId: [{ required: true, message: '上级部门不能为空', trigger: 'blur' }],
|
|
|
+ deptName: [{ required: true, message: '部门名称不能为空', trigger: 'blur' }],
|
|
|
+ orderNum: [{ required: true, message: '显示排序不能为空', trigger: 'blur' }],
|
|
|
+ platformCode: [{ required: true, message: '所属平台不能为空', trigger: 'blur' }],
|
|
|
+ email: [{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }],
|
|
|
+ phone: [{ pattern: /^1[3456789][0-9]\d{8}$/, message: '请输入正确的手机号码', trigger: 'blur' }]
|
|
|
}
|
|
|
-});
|
|
|
+};
|
|
|
+const data = reactive<PageData<DeptForm, DeptQuery>>(initData);
|
|
|
|
|
|
-const { queryParams, form, rules } = toRefs(data);
|
|
|
+const { queryParams, form, rules } = toRefs<PageData<DeptForm, DeptQuery>>(data);
|
|
|
|
|
|
-/** 查询企业部门列表 */
|
|
|
+/** 查询菜单列表 */
|
|
|
const getList = async () => {
|
|
|
loading.value = true;
|
|
|
- const res = await listComDept(queryParams.value);
|
|
|
- const data = proxy?.handleTree<ComDeptVO>(res.data, 'id', 'parentId');
|
|
|
+ const res = await listDept(queryParams.value);
|
|
|
+ const data = proxy?.handleTree<DeptVO>(res.data, 'deptId');
|
|
|
if (data) {
|
|
|
- comDeptList.value = data;
|
|
|
- loading.value = false;
|
|
|
+ deptList.value = data;
|
|
|
}
|
|
|
+ loading.value = false;
|
|
|
};
|
|
|
|
|
|
-const handleStatusChange = async (row: ComDeptVO) => {
|
|
|
- const oldValue = row.status; // 保存旧值(0 或 1)
|
|
|
-
|
|
|
- try {
|
|
|
- await changeStatus(row.id, row.status); // 传新值
|
|
|
- proxy?.$modal.msgSuccess('操作成功');
|
|
|
- } catch {
|
|
|
- row.status = oldValue; // 失败回滚
|
|
|
- proxy?.$modal.msgError('操作失败,请重试');
|
|
|
+/** 查询当前部门的所有用户 */
|
|
|
+async function getDeptAllUser(deptId: any) {
|
|
|
+ if (deptId !== null && deptId !== '' && deptId !== undefined) {
|
|
|
+ const res = await listUserByDeptId(deptId);
|
|
|
+ deptUserList.value = res.data;
|
|
|
}
|
|
|
-};
|
|
|
-
|
|
|
-/** 查询企业部门下拉树结构 */
|
|
|
-const getTreeselect = async () => {
|
|
|
- const res = await listComDept();
|
|
|
- comDeptOptions.value = [];
|
|
|
- const data: ComDeptOption = { id: 0, deptName: '顶级节点', children: [] };
|
|
|
- data.children = proxy?.handleTree<ComDeptOption>(res.data, 'id', 'parentId');
|
|
|
- comDeptOptions.value.push(data);
|
|
|
-};
|
|
|
+}
|
|
|
|
|
|
-// 取消按钮
|
|
|
+/** 取消按钮 */
|
|
|
const cancel = () => {
|
|
|
reset();
|
|
|
dialog.visible = false;
|
|
|
};
|
|
|
-
|
|
|
-// 表单重置
|
|
|
+/** 表单重置 */
|
|
|
const reset = () => {
|
|
|
form.value = { ...initFormData };
|
|
|
- comDeptFormRef.value?.resetFields();
|
|
|
+ deptFormRef.value?.resetFields();
|
|
|
};
|
|
|
|
|
|
/** 搜索按钮操作 */
|
|
|
const handleQuery = () => {
|
|
|
getList();
|
|
|
};
|
|
|
-
|
|
|
/** 重置按钮操作 */
|
|
|
const resetQuery = () => {
|
|
|
queryFormRef.value?.resetFields();
|
|
|
handleQuery();
|
|
|
};
|
|
|
|
|
|
-/** 新增按钮操作 */
|
|
|
-const handleAdd = (row?: ComDeptVO) => {
|
|
|
- reset();
|
|
|
- getTreeselect();
|
|
|
- if (row != null && row.id) {
|
|
|
- form.value.parentId = row.id;
|
|
|
- } else {
|
|
|
- form.value.parentId = 0;
|
|
|
- }
|
|
|
- dialog.visible = true;
|
|
|
- dialog.title = '添加企业部门';
|
|
|
-};
|
|
|
-
|
|
|
/** 展开/折叠操作 */
|
|
|
const handleToggleExpandAll = () => {
|
|
|
isExpandAll.value = !isExpandAll.value;
|
|
|
- toggleExpandAll(comDeptList.value, isExpandAll.value);
|
|
|
+ toggleExpandAll(deptList.value, isExpandAll.value);
|
|
|
};
|
|
|
-
|
|
|
-/** 展开/折叠操作 */
|
|
|
-const toggleExpandAll = (data: ComDeptVO[], status: boolean) => {
|
|
|
+/** 展开/折叠所有 */
|
|
|
+const toggleExpandAll = (data: DeptVO[], status: boolean) => {
|
|
|
data.forEach((item) => {
|
|
|
- comDeptTableRef.value?.toggleRowExpansion(item, status);
|
|
|
+ deptTableRef.value?.toggleRowExpansion(item, status);
|
|
|
if (item.children && item.children.length > 0) toggleExpandAll(item.children, status);
|
|
|
});
|
|
|
};
|
|
|
|
|
|
+/** 新增按钮操作 */
|
|
|
+const handleAdd = async (row?: DeptVO) => {
|
|
|
+ reset();
|
|
|
+ const res = await listDept();
|
|
|
+ const data = proxy?.handleTree<DeptOptionsType>(res.data, 'deptId');
|
|
|
+ if (data) {
|
|
|
+ deptOptions.value = data;
|
|
|
+ if (row && row.deptId) {
|
|
|
+ form.value.parentId = row?.deptId;
|
|
|
+ }
|
|
|
+ if (row && row.companyId) {
|
|
|
+ form.value.companyId = row?.companyId;
|
|
|
+ }
|
|
|
+ if (row && row.platformCode) {
|
|
|
+ form.value.platformCode = row?.platformCode;
|
|
|
+ }
|
|
|
+ console.log(row);
|
|
|
+ dialog.visible = true;
|
|
|
+ dialog.title = '添加部门';
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
/** 修改按钮操作 */
|
|
|
-const handleUpdate = async (row: ComDeptVO) => {
|
|
|
+const handleUpdate = async (row: DeptVO) => {
|
|
|
reset();
|
|
|
- await getTreeselect();
|
|
|
- if (row != null) {
|
|
|
- form.value.parentId = row.parentId;
|
|
|
+ //查询当前部门所有用户
|
|
|
+ getDeptAllUser(row.deptId);
|
|
|
+ const res = await getDept(row.deptId);
|
|
|
+ form.value = res.data;
|
|
|
+ const response = await listDeptExcludeChild(row.deptId);
|
|
|
+ const data = proxy?.handleTree<DeptOptionsType>(response.data, 'deptId');
|
|
|
+ if (data) {
|
|
|
+ deptOptions.value = data;
|
|
|
+ if (data.length === 0) {
|
|
|
+ const noResultsOptions: DeptOptionsType = {
|
|
|
+ deptId: res.data.parentId,
|
|
|
+ deptName: res.data.parentName,
|
|
|
+ children: []
|
|
|
+ };
|
|
|
+ deptOptions.value.push(noResultsOptions);
|
|
|
+ }
|
|
|
}
|
|
|
- const res = await getComDept(row.id);
|
|
|
- Object.assign(form.value, res.data);
|
|
|
dialog.visible = true;
|
|
|
- dialog.title = '修改企业部门';
|
|
|
+ dialog.title = '修改部门';
|
|
|
};
|
|
|
-
|
|
|
/** 提交按钮 */
|
|
|
const submitForm = () => {
|
|
|
- comDeptFormRef.value?.validate(async (valid: boolean) => {
|
|
|
+ deptFormRef.value?.validate(async (valid: boolean) => {
|
|
|
if (valid) {
|
|
|
- buttonLoading.value = true;
|
|
|
- if (form.value.id) {
|
|
|
- await updateComDept(form.value).finally(() => (buttonLoading.value = false));
|
|
|
- } else {
|
|
|
- await addComDept(form.value).finally(() => (buttonLoading.value = false));
|
|
|
- }
|
|
|
+ form.value.deptId ? await updateDept(form.value) : await addDept(form.value);
|
|
|
proxy?.$modal.msgSuccess('操作成功');
|
|
|
dialog.visible = false;
|
|
|
- getList();
|
|
|
+ await getList();
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
-
|
|
|
/** 删除按钮操作 */
|
|
|
-const handleDelete = async (row: ComDeptVO) => {
|
|
|
- await proxy?.$modal.confirm('是否确认删除企业部门编号为"' + row.id + '"的数据项?');
|
|
|
- loading.value = true;
|
|
|
- await delComDept(row.id).finally(() => (loading.value = false));
|
|
|
+const handleDelete = async (row: DeptVO) => {
|
|
|
+ await proxy?.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?');
|
|
|
+ await delDept(row.deptId);
|
|
|
await getList();
|
|
|
proxy?.$modal.msgSuccess('删除成功');
|
|
|
};
|