diff --git a/src/api/erp.js b/src/api/erp.js index c794bf5..0d705e7 100644 --- a/src/api/erp.js +++ b/src/api/erp.js @@ -10,7 +10,7 @@ import request from "@/utils/request"; */ export function getOrganizationList() { return request({ - url: '/admin/erp/organization', + url: '/admin/erp/getOrganization', method: 'get' }); } @@ -34,7 +34,7 @@ export function getOrganizationDetail(id) { */ export function createOrganization(data) { return request({ - url: "/admin/erp/organization", + url: "/admin/erp/createOrganization", method: "post", data: data, headers: { @@ -46,7 +46,7 @@ export function createOrganization(data) { // 更新组织机构信息 export function editOrganization(id, data) { return request({ - url: `/admin/erp/organization/${id}`, + url: `/admin/erp/editOrganization/${id}`, method: 'post', data: data }); @@ -59,7 +59,7 @@ export function editOrganization(id, data) { */ export function deleteOrganization(id) { return request({ - url: `/admin/erp/organization/${id}`, + url: `/admin/erp/deleteOrganization/${id}`, method: "delete", }); } diff --git a/src/views/apps/erp/organization/components/edit.vue b/src/views/apps/erp/organization/components/edit.vue index 8cf4bf1..f815eab 100644 --- a/src/views/apps/erp/organization/components/edit.vue +++ b/src/views/apps/erp/organization/components/edit.vue @@ -65,12 +65,10 @@ interface TreeNode { sort?: number status?: number remark?: string - children?: TreeNode[] } const props = defineProps<{ treeData: TreeNode[] - treeProps: { label: string; children: string; value: string } }>() const emit = defineEmits<{ @@ -114,9 +112,16 @@ const getLeaderList = async () => { // 打开弹窗 const open = (data?: TreeNode, parentId?: number) => { if (data) { - // 编辑 + // 编辑:只拷贝需要的字段,避免把 children 等多余字段带到表单 isEdit.value = true - Object.assign(formData, data) + formData.id = data.id + formData.parent_id = data.parent_id + formData.org_name = data.org_name + formData.org_code = data.org_code || '' + formData.leader_id = data.leader_id + formData.sort = data.sort ?? 0 + formData.status = data.status ?? 1 + formData.remark = data.remark || '' } else { // 新增 isEdit.value = false @@ -148,16 +153,16 @@ const handleSubmit = async () => { try { let res + // 只允许提交到后台的字段白名单 + const allowedKeys = ['parent_id', 'org_name', 'org_code', 'leader_id', 'sort', 'status', 'remark'] + if (isEdit.value && formData.id) { // 编辑:使用普通对象提交 const submitData: Record = {} - Object.keys(formData).forEach(key => { - if ( - key !== 'id' && - (formData as any)[key] !== undefined && - (formData as any)[key] !== null - ) { - submitData[key] = (formData as any)[key] + allowedKeys.forEach(key => { + const value = (formData as any)[key] + if (value !== undefined && value !== null) { + submitData[key] = value } }) if (tenantId) { @@ -167,9 +172,9 @@ const handleSubmit = async () => { } else { // 新增:使用 FormData 以兼容后端 multipart/form-data const submitData = new FormData() - Object.keys(formData).forEach(key => { + allowedKeys.forEach(key => { const value = (formData as any)[key] - if (key !== 'id' && value !== undefined && value !== null) { + if (value !== undefined && value !== null) { submitData.append(key, String(value)) } })