|
|
@@ -282,7 +282,7 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column label="项目大类" align="center" width="160">
|
|
|
<template #default="scope">
|
|
|
- <el-select v-model="scope.row.itemType" placeholder="请选择" size="small" style="width: 100%">
|
|
|
+ <el-select v-model="scope.row.itemCategory" placeholder="请选择" size="small" style="width: 100%">
|
|
|
<el-option v-for="dict in inspection_item_type_dict" :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
|
</el-select>
|
|
|
</template>
|
|
|
@@ -505,7 +505,7 @@ const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
|
|
|
interface InspectionItemForm {
|
|
|
id?: number;
|
|
|
- itemType: string;
|
|
|
+ itemCategory: string;
|
|
|
itemContent: string;
|
|
|
itemStandard: string;
|
|
|
needPhoto: boolean;
|
|
|
@@ -758,7 +758,7 @@ const removeTimeSlot = (idx: number) => {
|
|
|
|
|
|
const addInspectionItem = () => {
|
|
|
form.value.itemList.push({
|
|
|
- itemType: '',
|
|
|
+ itemCategory: '',
|
|
|
itemContent: '',
|
|
|
itemStandard: '',
|
|
|
needPhoto: false
|
|
|
@@ -786,14 +786,18 @@ const handleUpdate = async (row: RiskInspectionTaskVo) => {
|
|
|
}
|
|
|
const res = await getQualityInspectionTask(row.id);
|
|
|
Object.assign(form.value, res.data);
|
|
|
- // 后端返回的 storeId 可能是 string(JSON 序列化大数防精度丢失),统一转 number 匹配 storeOptions
|
|
|
+ // 后端返回的 storeId 可能是 string(JSON 序列化大数防精度丢失),统一转 string 匹配 storeOptions
|
|
|
if (form.value.storeId !== undefined && form.value.storeId !== null) {
|
|
|
- form.value.storeId = Number(form.value.storeId);
|
|
|
+ form.value.storeId = String(form.value.storeId);
|
|
|
const opt = storeOptions.value.find((s) => s.value === form.value.storeId);
|
|
|
if (opt && !form.value.storeName) {
|
|
|
form.value.storeName = opt.label;
|
|
|
}
|
|
|
}
|
|
|
+ // scanEnabled 后端返 '1'/'0' 字符串,el-switch 严格 boolean,统一转
|
|
|
+ if (form.value.scanEnabled !== undefined && form.value.scanEnabled !== null) {
|
|
|
+ form.value.scanEnabled = form.value.scanEnabled === '1' || form.value.scanEnabled === true;
|
|
|
+ }
|
|
|
// 恢复时间配置
|
|
|
if (res.data?.timeSlot) {
|
|
|
timeSlotList.value = res.data.timeSlot.split(',').filter((s: string) => s);
|
|
|
@@ -809,10 +813,10 @@ const handleUpdate = async (row: RiskInspectionTaskVo) => {
|
|
|
const itemRes = await listInspectionItemByTask(row.id);
|
|
|
form.value.itemList = (itemRes.data || []).map((it: RiskInspectionItemVo) => ({
|
|
|
id: it.id,
|
|
|
- itemType: it.itemType,
|
|
|
+ itemCategory: it.itemCategory || it.itemType || '',
|
|
|
itemContent: it.itemContent,
|
|
|
itemStandard: it.itemStandard,
|
|
|
- needPhoto: false
|
|
|
+ needPhoto: it.needPhoto === '1' || it.needPhoto === true
|
|
|
}));
|
|
|
} catch (e) {
|
|
|
form.value.itemList = [];
|
|
|
@@ -946,13 +950,22 @@ const submitForm = () => {
|
|
|
form.value.timeSlot = '';
|
|
|
form.value.dayOfWeek = '';
|
|
|
}
|
|
|
- form.value.scanEnabled = form.value.scanEnabled ? '1' : '0';
|
|
|
+ // 构造提交 payload(不破坏 form.value 本身,避免下次打开状态不一致)
|
|
|
+ const payload: any = {
|
|
|
+ ...form.value,
|
|
|
+ scanEnabled: form.value.scanEnabled ? '1' : '0',
|
|
|
+ itemList: (form.value.itemList || []).map((it: any) => ({
|
|
|
+ ...it,
|
|
|
+ itemCategory: it.itemCategory || it.itemType || '',
|
|
|
+ needPhoto: it.needPhoto ? '1' : '0'
|
|
|
+ }))
|
|
|
+ };
|
|
|
|
|
|
if (form.value.id) {
|
|
|
- await updateQualityInspectionTask(form.value as RiskInspectionTaskBo);
|
|
|
+ await updateQualityInspectionTask(payload as RiskInspectionTaskBo);
|
|
|
proxy?.$modal.msgSuccess('修改成功');
|
|
|
} else {
|
|
|
- await addQualityInspectionTask(form.value as RiskInspectionTaskBo);
|
|
|
+ await addQualityInspectionTask(payload as RiskInspectionTaskBo);
|
|
|
proxy?.$modal.msgSuccess('新增成功');
|
|
|
}
|
|
|
dialog.visible = false;
|
|
|
@@ -1009,8 +1022,8 @@ const loadStores = async () => {
|
|
|
storeOptions.value = list
|
|
|
.filter((d: any) => d.deptCategory === '门店' || d.deptId === 100)
|
|
|
.filter((d: any) => d.status === '0' || d.status === undefined || d.status === null)
|
|
|
- .map((d: any) => ({ label: d.deptName, value: d.deptId }))
|
|
|
- .sort((a, b) => a.value - b.value);
|
|
|
+ .map((d: any) => ({ label: d.deptName, value: String(d.deptId) }))
|
|
|
+ .sort((a, b) => Number(a.value) - Number(b.value));
|
|
|
} catch (e) {
|
|
|
console.error('加载门店列表失败', e);
|
|
|
storeOptions.value = [];
|