1
This commit is contained in:
parent
2a982f12d0
commit
b6ede42e5d
@ -59,31 +59,31 @@
|
||||
</n-card>
|
||||
|
||||
<!-- 新增/编辑弹窗 -->
|
||||
<n-modal v-model:show="modalVisible" preset="card" :title="modalTitle" style="width: 600px">
|
||||
<n-modal v-model:show="modalVisible" preset="card" :title="modalTitle" style="width: 560px">
|
||||
<n-form ref="formRef" :model="formData" :rules="formRules" label-placement="left" label-width="100px">
|
||||
<n-form-item label="设备ID,关联mes_equipment设备表主键" path="equipmentId">
|
||||
<n-input v-model:value="formData.equipmentId" placeholder="请输入设备ID,关联mes_equipment设备表主键" />
|
||||
<n-form-item label="设备ID" path="equipmentId">
|
||||
<n-input v-model:value="formData.equipmentId" placeholder="请输入设备ID" />
|
||||
</n-form-item>
|
||||
<n-form-item label="记录类型:maintain=保养,repair=维修" path="recordType">
|
||||
<n-select v-model:value="formData.recordType" placeholder="请选择记录类型:maintain=保养,repair=维修" :options="[]" />
|
||||
<n-form-item label="记录类型" path="recordType">
|
||||
<n-select v-model:value="formData.recordType" placeholder="请选择记录类型" :options="recordTypeOptions" />
|
||||
</n-form-item>
|
||||
<n-form-item label="故障现象/保养项目详情" path="itemContent">
|
||||
<n-input v-model:value="formData.itemContent" type="textarea" placeholder="请输入故障现象/保养项目详情" />
|
||||
<n-form-item label="故障现象" path="itemContent">
|
||||
<n-input v-model:value="formData.itemContent" type="textarea" placeholder="请输入故障现象/保养项目" :autosize="{ minRows: 2, maxRows: 4 }" />
|
||||
</n-form-item>
|
||||
<n-form-item label="维修处理措施/保养执行内容" path="handleContent">
|
||||
<n-input v-model:value="formData.handleContent" type="textarea" placeholder="请输入维修处理措施/保养执行内容" />
|
||||
<n-form-item label="处理措施" path="handleContent">
|
||||
<n-input v-model:value="formData.handleContent" type="textarea" placeholder="请输入维修处理措施/保养执行内容" :autosize="{ minRows: 2, maxRows: 4 }" />
|
||||
</n-form-item>
|
||||
<n-form-item label="执行人ID,关联sys_user系统用户表主键" path="executorId">
|
||||
<n-input v-model:value="formData.executorId" placeholder="请输入执行人ID,关联sys_user系统用户表主键" />
|
||||
<n-form-item label="执行人" path="executorId">
|
||||
<n-input v-model:value="formData.executorId" placeholder="请输入执行人ID" />
|
||||
</n-form-item>
|
||||
<n-form-item label="维保作业开始时间" path="startTime">
|
||||
<n-date-picker v-model:value="formData.startTime" type="datetime" clearable style="width: 100%" />
|
||||
<n-form-item label="开始时间" path="startTime">
|
||||
<n-date-picker v-model:value="formData.startTime" type="datetime" placeholder="请选择开始时间" clearable style="width: 100%" />
|
||||
</n-form-item>
|
||||
<n-form-item label="维保作业结束时间,待处理单据为空" path="endTime">
|
||||
<n-date-picker v-model:value="formData.endTime" type="datetime" clearable style="width: 100%" />
|
||||
<n-form-item label="结束时间" path="endTime">
|
||||
<n-date-picker v-model:value="formData.endTime" type="datetime" placeholder="请选择结束时间" clearable style="width: 100%" />
|
||||
</n-form-item>
|
||||
<n-form-item label="单据状态:pending=待处理,finished=已完成" path="recordStatus">
|
||||
<n-select v-model:value="formData.recordStatus" placeholder="请选择单据状态:pending=待处理,finished=已完成" :options="recordStatusOptions" />
|
||||
<n-form-item label="单据状态" path="recordStatus">
|
||||
<n-select v-model:value="formData.recordStatus" placeholder="请选择单据状态" :options="recordStatusOptions" />
|
||||
</n-form-item>
|
||||
</n-form>
|
||||
<template #footer>
|
||||
@ -132,7 +132,6 @@ import { ref, reactive, h, onMounted } from 'vue'
|
||||
import { NButton, NSpace, NIcon, NUpload, useMessage, useDialog, type DataTableColumns, type UploadCustomRequestOptions } from 'naive-ui'
|
||||
import { SearchOutline, RefreshOutline, AddOutline, TrashOutline, CreateOutline, CloudUploadOutline, DownloadOutline } from '@vicons/ionicons5'
|
||||
import { maintenanceRecordApi, type MaintenanceRecord } from '@/api/maintenanceRecord'
|
||||
import { dictDataApi } from '@/api/org'
|
||||
|
||||
const message = useMessage()
|
||||
const dialog = useDialog()
|
||||
@ -171,8 +170,15 @@ const defaultFormData: MaintenanceRecord = {
|
||||
}
|
||||
const formData = reactive<MaintenanceRecord>({ ...defaultFormData })
|
||||
|
||||
// 字典选项(下拉框/单选框/复选框关联字典时使用)
|
||||
const recordStatusOptions = ref<{ label: string; value: any }[]>([])
|
||||
// 字典选项
|
||||
const recordTypeOptions = ref<{ label: string; value: any }[]>([
|
||||
{ label: '保养', value: 'maintain' },
|
||||
{ label: '维修', value: 'repair' }
|
||||
])
|
||||
const recordStatusOptions = ref<{ label: string; value: any }[]>([
|
||||
{ label: '待处理', value: 'pending' },
|
||||
{ label: '已完成', value: 'finished' }
|
||||
])
|
||||
|
||||
// 表单校验规则
|
||||
const formRules = {
|
||||
@ -185,23 +191,27 @@ const formRules = {
|
||||
// 表格列
|
||||
const columns: DataTableColumns<MaintenanceRecord> = [
|
||||
{ type: 'selection' },
|
||||
{ title: '维保记录编号', key: 'recordId' },
|
||||
{ title: '设备ID', key: 'equipmentId' },
|
||||
{ title: '记录类型', key: 'recordType' },
|
||||
{ title: '故障现象/保养项目', key: 'itemContent' },
|
||||
{ title: '维修处理措施/保养执行内容', key: 'handleContent' },
|
||||
{ title: '执行人ID', key: 'executorId' },
|
||||
{ title: '维保作业开始时间', key: 'startTime' },
|
||||
{ title: '维保作业结束时间', key: 'endTime' },
|
||||
{ title: '单据状态', key: 'recordStatus',
|
||||
{ title: '维保记录编号', key: 'recordId', width: 160 },
|
||||
{ title: '设备ID', key: 'equipmentId', width: 100 },
|
||||
{ title: '记录类型', key: 'recordType', width: 100,
|
||||
render(row) {
|
||||
const opt = recordTypeOptions.value.find(o => o.value === row.recordType)
|
||||
return opt ? opt.label : (row.recordType ?? '-')
|
||||
}
|
||||
},
|
||||
{ title: '故障现象/保养项目', key: 'itemContent', ellipsis: { tooltip: true } },
|
||||
{ title: '维修处理措施/保养执行内容', key: 'handleContent', ellipsis: { tooltip: true } },
|
||||
{ title: '执行人ID', key: 'executorId', width: 100 },
|
||||
{ title: '维保作业开始时间', key: 'startTime', width: 170 },
|
||||
{ title: '维保作业结束时间', key: 'endTime', width: 170 },
|
||||
{ title: '单据状态', key: 'recordStatus', width: 100,
|
||||
render(row) {
|
||||
const val = row.recordStatus
|
||||
const opt = recordStatusOptions.value.find(o => o.value === val || String(o.value) === String(val))
|
||||
return opt ? opt.label : (val ?? '-')
|
||||
}
|
||||
},
|
||||
{ title: '单据创建时间', key: 'createTime', width: 180 },
|
||||
{ title: '单据最后更新时间', key: 'updateTime', width: 180 },
|
||||
{ title: '单据创建时间', key: 'createTime', width: 170 },
|
||||
{
|
||||
title: '操作',
|
||||
key: 'actions',
|
||||
@ -416,17 +426,8 @@ async function handleImportUpload({ file }: UploadCustomRequestOptions) {
|
||||
}
|
||||
}
|
||||
|
||||
// 加载字典选项
|
||||
async function loadDictOptions() {
|
||||
try {
|
||||
const data = await dictDataApi.listByType('sys_status')
|
||||
recordStatusOptions.value = data.map(d => ({ label: d.dictLabel, value: d.dictValue }))
|
||||
} catch {}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
loadData()
|
||||
loadDictOptions()
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user