|
|
@@ -150,10 +150,11 @@ import { s0EmployeesApi, s0DepartmentsApi, type S0EmployeeRow, type S0EmployeeUp
|
|
|
import { s0MfgProductionLinesApi, s0MfgWorkCentersApi } from '../api/s0ManufacturingApi';
|
|
|
import { loadOrgList, type OrgOption } from '../api/s0SalesApi';
|
|
|
|
|
|
-// 字典口径(前端固定 0/1):性别 0女1男、在职 0在职1离职、婚姻 0未婚1已婚
|
|
|
-const SEX_OPTIONS = [{ value: '0', label: '女' }, { value: '1', label: '男' }];
|
|
|
-const EMPLOYMENT_OPTIONS = [{ value: '0', label: '在职' }, { value: '1', label: '离职' }];
|
|
|
-const MARITAL_OPTIONS = [{ value: '0', label: '未婚' }, { value: '1', label: '已婚' }];
|
|
|
+// 枚举口径对齐 EmployeeMaster 真实历史存储值(不改存储、未知值原样显示):
|
|
|
+// 性别 0未知/1男/2女(对齐 GenderEnum,数据仅 0/1/2);在职 AC在职/DC离职(数据无 0/1);婚姻 中文串 未婚/已婚/其他。
|
|
|
+const SEX_OPTIONS = [{ value: '0', label: '未知' }, { value: '1', label: '男' }, { value: '2', label: '女' }];
|
|
|
+const EMPLOYMENT_OPTIONS = [{ value: 'AC', label: '在职' }, { value: 'DC', label: '离职' }];
|
|
|
+const MARITAL_OPTIONS = [{ value: '未婚', label: '未婚' }, { value: '已婚', label: '已婚' }, { value: '其他', label: '其他' }];
|
|
|
function sexLabel(v?: string | null): string { return SEX_OPTIONS.find((o) => o.value === v)?.label ?? (v ?? ''); }
|
|
|
function employmentLabel(v?: string | null): string { return EMPLOYMENT_OPTIONS.find((o) => o.value === v)?.label ?? (v ?? ''); }
|
|
|
|
|
|
@@ -249,13 +250,17 @@ function openEdit(row: S0EmployeeRow) {
|
|
|
});
|
|
|
dialogVisible.value = true;
|
|
|
}
|
|
|
+// 空枚举值归一为 null,避免下拉清空/未选择时把历史 NULL 写成 ''(保 NULL 语义)
|
|
|
+function enumOrNull(v?: string | null): string | null { return v == null || v === '' ? null : v; }
|
|
|
+
|
|
|
async function submitForm() {
|
|
|
await formRef.value?.validate();
|
|
|
applyDefaultOrg();
|
|
|
saving.value = true;
|
|
|
try {
|
|
|
- if (editingId.value) { await s0EmployeesApi.update(editingId.value, { ...form }); ElMessage.success('已保存'); }
|
|
|
- else { await s0EmployeesApi.create({ ...form }); ElMessage.success('已创建'); }
|
|
|
+ const payload: S0EmployeeUpsert = { ...form, sex: enumOrNull(form.sex), employmentStatus: enumOrNull(form.employmentStatus), maritalStatus: enumOrNull(form.maritalStatus) };
|
|
|
+ if (editingId.value) { await s0EmployeesApi.update(editingId.value, payload); ElMessage.success('已保存'); }
|
|
|
+ else { await s0EmployeesApi.create(payload); ElMessage.success('已创建'); }
|
|
|
dialogVisible.value = false; await loadList();
|
|
|
} finally { saving.value = false; }
|
|
|
}
|