fix: 🐛 部门新增和编辑顶级部门回显错误问题修复

This commit is contained in:
ray
2024-11-16 21:54:21 +08:00
parent e597853e5b
commit 9291e17c7f
2 changed files with 26 additions and 34 deletions

View File

@@ -59,7 +59,7 @@ const DeptAPI = {
* @param data 部门表单数据 * @param data 部门表单数据
* @returns 请求结果 * @returns 请求结果
*/ */
update(id: number, data: DeptForm) { update(id: string, data: DeptForm) {
return request({ return request({
url: `${DEPT_BASE_URL}/${id}`, url: `${DEPT_BASE_URL}/${id}`,
method: "put", method: "put",
@@ -116,13 +116,13 @@ export interface DeptVO {
/** 部门表单类型 */ /** 部门表单类型 */
export interface DeptForm { export interface DeptForm {
/** 部门ID(新增不填) */ /** 部门ID(新增不填) */
id?: number; id?: string;
/** 部门名称 */ /** 部门名称 */
name?: string; name?: string;
/** 部门编号 */ /** 部门编号 */
code?: string; code?: string;
/** 父部门ID */ /** 父部门ID */
parentId: number; parentId: string;
/** 排序 */ /** 排序 */
sort?: number; sort?: number;
/** 状态(1:启用0禁用) */ /** 状态(1:启用0禁用) */

View File

@@ -11,12 +11,7 @@
</el-form-item> </el-form-item>
<el-form-item label="部门状态" prop="status"> <el-form-item label="部门状态" prop="status">
<el-select <el-select v-model="queryParams.status" placeholder="全部" clearable class="!w-[100px]">
v-model="queryParams.status"
placeholder="全部"
clearable
class="!w-[100px]"
>
<el-option :value="1" label="正常" /> <el-option :value="1" label="正常" />
<el-option :value="0" label="禁用" /> <el-option :value="0" label="禁用" />
</el-select> </el-select>
@@ -132,12 +127,7 @@
width="600px" width="600px"
@closed="handleCloseDialog" @closed="handleCloseDialog"
> >
<el-form <el-form ref="deptFormRef" :model="formData" :rules="rules" label-width="80px">
ref="deptFormRef"
:model="formData"
:rules="rules"
label-width="80px"
>
<el-form-item label="上级部门" prop="parentId"> <el-form-item label="上级部门" prop="parentId">
<el-tree-select <el-tree-select
v-model="formData.parentId" v-model="formData.parentId"
@@ -164,8 +154,8 @@
</el-form-item> </el-form-item>
<el-form-item label="部门状态"> <el-form-item label="部门状态">
<el-radio-group v-model="formData.status"> <el-radio-group v-model="formData.status">
<el-radio :label="1">正常</el-radio> <el-radio :value="1">正常</el-radio>
<el-radio :label="0">禁用</el-radio> <el-radio :value="0">禁用</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-form> </el-form>
@@ -205,20 +195,18 @@ const deptOptions = ref<OptionType[]>();
const formData = reactive<DeptForm>({ const formData = reactive<DeptForm>({
status: 1, status: 1,
parentId: 0, parentId: "0",
sort: 1, sort: 1,
}); });
const rules = reactive({ const rules = reactive({
parentId: [ parentId: [{ required: true, message: "上级部门不能为空", trigger: "change" }],
{ required: true, message: "上级部门不能为空", trigger: "change" },
],
name: [{ required: true, message: "部门名称不能为空", trigger: "blur" }], name: [{ required: true, message: "部门名称不能为空", trigger: "blur" }],
code: [{ required: true, message: "部门编号不能为空", trigger: "blur" }], code: [{ required: true, message: "部门编号不能为空", trigger: "blur" }],
sort: [{ required: true, message: "显示排序不能为空", trigger: "blur" }], sort: [{ required: true, message: "显示排序不能为空", trigger: "blur" }],
}); });
/** 查询部门 */ // 查询部门
function handleQuery() { function handleQuery() {
loading.value = true; loading.value = true;
DeptAPI.getList(queryParams).then((data) => { DeptAPI.getList(queryParams).then((data) => {
@@ -227,13 +215,13 @@ function handleQuery() {
}); });
} }
/** 重置查询 */ // 重置查询
function handleResetQuery() { function handleResetQuery() {
queryFormRef.value.resetFields(); queryFormRef.value.resetFields();
handleQuery(); handleQuery();
} }
/** 行复选框选中记录选中ID集合 */ // 行复选框选中记录选中ID集合
function handleSelectionChange(selection: any) { function handleSelectionChange(selection: any) {
ids.value = selection.map((item: any) => item.id); ids.value = selection.map((item: any) => item.id);
} }
@@ -244,12 +232,12 @@ function handleSelectionChange(selection: any) {
* @param parentId 父部门ID * @param parentId 父部门ID
* @param deptId 部门ID * @param deptId 部门ID
*/ */
async function handleOpenDialog(parentId?: number, deptId?: number) { async function handleOpenDialog(parentId?: string, deptId?: number) {
// 加载部门下拉数据 // 加载部门下拉数据
const data = await DeptAPI.getOptions(); const data = await DeptAPI.getOptions();
deptOptions.value = [ deptOptions.value = [
{ {
value: 0, value: "0",
label: "顶级部门", label: "顶级部门",
children: data, children: data,
}, },
@@ -263,11 +251,11 @@ async function handleOpenDialog(parentId?: number, deptId?: number) {
}); });
} else { } else {
dialog.title = "新增部门"; dialog.title = "新增部门";
formData.parentId = parentId ?? 0; formData.parentId = parentId || "0";
} }
} }
/** 提交部门表单 */ // 提交部门表单
function handleSubmit() { function handleSubmit() {
deptFormRef.value.validate((valid: any) => { deptFormRef.value.validate((valid: any) => {
if (valid) { if (valid) {
@@ -294,7 +282,7 @@ function handleSubmit() {
}); });
} }
/** 删除部门 */ // 删除部门
function handleDelete(deptId?: number) { function handleDelete(deptId?: number) {
const deptIds = [deptId || ids.value].join(","); const deptIds = [deptId || ids.value].join(",");
@@ -323,19 +311,23 @@ function handleDelete(deptId?: number) {
); );
} }
/** 关闭弹窗 */ // 重置表单
function handleCloseDialog() { function resetForm() {
dialog.visible = false;
deptFormRef.value.resetFields(); deptFormRef.value.resetFields();
deptFormRef.value.clearValidate(); deptFormRef.value.clearValidate();
formData.id = undefined; formData.id = undefined;
formData.parentId = 0; formData.parentId = "0";
formData.status = 1; formData.status = 1;
formData.sort = 1; formData.sort = 1;
} }
// 关闭弹窗
function handleCloseDialog() {
dialog.visible = false;
resetForm();
}
onMounted(() => { onMounted(() => {
handleQuery(); handleQuery();
}); });