|
...
|
...
|
@@ -99,7 +99,6 @@ |
|
99
|
99
|
v-model:value="record.checkPlanId"
|
|
100
|
100
|
:options="planOptions"
|
|
101
|
101
|
:disabled="isViewMode"
|
|
102
|
|
- :fieldNames="{ label: 'name', value: 'id' }"
|
|
103
|
102
|
placeholder="请选择"
|
|
104
|
103
|
@change="(value) => handleCheckPlanChange(value, record)"
|
|
105
|
104
|
/>
|
|
...
|
...
|
@@ -222,7 +221,19 @@ const statusOptions = [ |
|
222
|
221
|
{ label: t('inspection.servicePlan.STOP'), value: 'STOP' },
|
|
223
|
222
|
];
|
|
224
|
223
|
const form = ref({ ...props.initialData.form });
|
|
225
|
|
-const tableData = ref([...props.initialData.tableData]);
|
|
|
224
|
+const normalizeDetailRow = (row: any) => {
|
|
|
225
|
+ const deviceInfo = row?.deviceInfo || row?.tkDeviceAccountDTO;
|
|
|
226
|
+ const deviceId = row?.deviceId ?? deviceInfo?.id;
|
|
|
227
|
+ const deviceCode = row?.deviceCode ?? deviceInfo?.code;
|
|
|
228
|
+ const deviceName = row?.deviceName ?? deviceInfo?.name;
|
|
|
229
|
+ return {
|
|
|
230
|
+ ...row,
|
|
|
231
|
+ deviceId,
|
|
|
232
|
+ deviceCode,
|
|
|
233
|
+ deviceName,
|
|
|
234
|
+ };
|
|
|
235
|
+};
|
|
|
236
|
+const tableData = ref((props.initialData.tableData || []).map(normalizeDetailRow));
|
|
226
|
237
|
const emit = defineEmits(['update:visible', 'submit']);
|
|
227
|
238
|
onMounted(() => {
|
|
228
|
239
|
fetchAgeOptions();
|
|
...
|
...
|
@@ -261,22 +272,39 @@ const fetchAgeOptions = async () => { |
|
261
|
272
|
const response = await getLedgerList({ page: 1, pageSize: 999 }); // 调用接口
|
|
262
|
273
|
const response1 = await getPlanList({ page: 1, pageSize: 999, type: 'MAINTENANCE' }); // 调用接口
|
|
263
|
274
|
Options.value = response.items || [];
|
|
264
|
|
- planOptions.value = response1.items || [];
|
|
|
275
|
+ planOptions.value =
|
|
|
276
|
+ response1.items?.map((item: any) => ({
|
|
|
277
|
+ ...item,
|
|
|
278
|
+ label: item?.name,
|
|
|
279
|
+ value: item?.id,
|
|
|
280
|
+ planDetails: item?.planDetails,
|
|
|
281
|
+ })) || [];
|
|
265
|
282
|
} catch (error) {
|
|
266
|
283
|
console.error('失败:', error);
|
|
267
|
284
|
}
|
|
268
|
285
|
};
|
|
269
|
286
|
|
|
270
|
287
|
const handleCheckPlanChange = (checkPlanId: any, record: any) => {
|
|
271
|
|
- const selected = planOptions.value?.find((item: any) => item?.id === checkPlanId);
|
|
|
288
|
+ const selected = planOptions.value?.find((item: any) => item?.value === checkPlanId);
|
|
272
|
289
|
record.preserveDetail = selected?.planDetails || '';
|
|
273
|
290
|
};
|
|
274
|
291
|
|
|
275
|
292
|
const getDeviceLabel = (record: any) => {
|
|
276
|
293
|
const code = record?.deviceCode;
|
|
277
|
294
|
const name = record?.deviceName;
|
|
278
|
|
- if (code && name) return `${code} / ${name}`;
|
|
279
|
|
- return name || code || '';
|
|
|
295
|
+ if (code || name) {
|
|
|
296
|
+ if (code && name) return `${code} / ${name}`;
|
|
|
297
|
+ return name || code || '';
|
|
|
298
|
+ }
|
|
|
299
|
+
|
|
|
300
|
+ const deviceId = record?.deviceId;
|
|
|
301
|
+ if (!deviceId) return '';
|
|
|
302
|
+
|
|
|
303
|
+ const matched = Options.value?.find((item: any) => item?.id === deviceId);
|
|
|
304
|
+ const matchedCode = matched?.code;
|
|
|
305
|
+ const matchedName = matched?.name;
|
|
|
306
|
+ if (matchedCode && matchedName) return `${matchedCode} / ${matchedName}`;
|
|
|
307
|
+ return matchedName || matchedCode || '';
|
|
280
|
308
|
};
|
|
281
|
309
|
|
|
282
|
310
|
const goChooseDevice = (record: any) => {
|
|
...
|
...
|
@@ -304,6 +332,12 @@ const handleDeviceOk = () => { |
|
304
|
332
|
activeDeviceRecord.value.deviceId = selectedDevice.value.id;
|
|
305
|
333
|
activeDeviceRecord.value.deviceCode = selectedDevice.value.code;
|
|
306
|
334
|
activeDeviceRecord.value.deviceName = selectedDevice.value.name;
|
|
|
335
|
+ activeDeviceRecord.value.deviceInfo = {
|
|
|
336
|
+ ...(activeDeviceRecord.value.deviceInfo || {}),
|
|
|
337
|
+ id: selectedDevice.value.id,
|
|
|
338
|
+ code: selectedDevice.value.code,
|
|
|
339
|
+ name: selectedDevice.value.name,
|
|
|
340
|
+ };
|
|
307
|
341
|
deviceVisible.value = false;
|
|
308
|
342
|
};
|
|
309
|
343
|
|
|
...
|
...
|
@@ -326,6 +360,13 @@ watch( |
|
326
|
360
|
}
|
|
327
|
361
|
);
|
|
328
|
362
|
|
|
|
363
|
+watch(
|
|
|
364
|
+ () => props.modalTitle,
|
|
|
365
|
+ (newVal) => {
|
|
|
366
|
+ modalTitle.value = newVal;
|
|
|
367
|
+ }
|
|
|
368
|
+);
|
|
|
369
|
+
|
|
329
|
370
|
// 监听 visible 的变化并通知父组件
|
|
330
|
371
|
watch(
|
|
331
|
372
|
() => visible.value,
|
|
...
|
...
|
@@ -339,7 +380,7 @@ watch( |
|
339
|
380
|
() => props.initialData,
|
|
340
|
381
|
(newVal) => {
|
|
341
|
382
|
form.value = { ...newVal.form };
|
|
342
|
|
- tableData.value = [...newVal.tableData];
|
|
|
383
|
+ tableData.value = (newVal.tableData || []).map(normalizeDetailRow);
|
|
343
|
384
|
},
|
|
344
|
385
|
{ deep: true }
|
|
345
|
386
|
);
|
...
|
...
|
|