feat:设备台账新增/编辑添加“关键词”、“”资料|字段

liutao_branch
黄伟杰 4 months ago
parent 5c2cdb1668
commit 5fde90bc46

@ -21,6 +21,8 @@ export interface DeviceLedgerVO {
factoryEntryDate: string | number | Date // 设备入厂日期 factoryEntryDate: string | number | Date // 设备入厂日期
deviceRemark: string // 设备备注 deviceRemark: string // 设备备注
remark: string // 备注 remark: string // 备注
fileUrl?: string // 附件下载
componentId?: string // 关键件ids集合
creator?: string // 创建人 creator?: string // 创建人
createTime?: string | number | Date createTime?: string | number | Date
updateTime?: string | number | Date updateTime?: string | number | Date

@ -141,6 +141,32 @@
<el-input v-model="formData.remark" placeholder="请输入备注" type="textarea" /> <el-input v-model="formData.remark" placeholder="请输入备注" type="textarea" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24">
<el-form-item label="关键件" prop="componentIds">
<el-select
v-model="formData.componentIds"
multiple
filterable
clearable
placeholder="请选择关键件"
class="!w-full"
>
<el-option
v-for="item in criticalComponentOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="资料" prop="fileUrl">
<UploadFile :is-show-tip="false" v-model="formData.fileUrl" :limit="1" />
</el-form-item>
</el-col>
</el-row> </el-row>
</el-form> </el-form>
<template #footer> <template #footer>
@ -152,6 +178,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { DeviceLedgerApi, DeviceLedgerVO } from '@/api/mes/deviceledger' import { DeviceLedgerApi, DeviceLedgerVO } from '@/api/mes/deviceledger'
import { CriticalComponentApi } from '@/api/mes/criticalComponent'
import { DeviceTypeApi, DeviceTypeTreeVO } from '@/api/mes/devicetype' import { DeviceTypeApi, DeviceTypeTreeVO } from '@/api/mes/devicetype'
import { getSimpleUserList, UserVO } from '@/api/system/user' import { getSimpleUserList, UserVO } from '@/api/system/user'
import { formatDate } from '@/utils/formatTime' import { formatDate } from '@/utils/formatTime'
@ -209,6 +236,8 @@ const initFormData = () => ({
productionDate: undefined, productionDate: undefined,
factoryEntryDate: undefined, factoryEntryDate: undefined,
remark: undefined, remark: undefined,
componentIds: [] as number[],
fileUrl: undefined,
sort: undefined sort: undefined
}) })
@ -227,14 +256,22 @@ const formRef = ref() // 表单 Ref
const treeSelectProps = { label: 'name', children: 'children' } const treeSelectProps = { label: 'name', children: 'children' }
const deviceTypeTree = ref<DeviceTypeTreeVO[]>([]) const deviceTypeTree = ref<DeviceTypeTreeVO[]>([])
const users = ref<UserVO[]>([]) const users = ref<UserVO[]>([])
const criticalComponentOptions = ref<{ label: string; value: number }[]>([])
const ensureOptionsLoaded = async () => { const ensureOptionsLoaded = async () => {
const [deviceTypeRes, userRes] = await Promise.all([ const [deviceTypeRes, userRes, criticalRes] = await Promise.all([
DeviceTypeApi.getDeviceTypeTree({ pageNo: 1, pageSize: 10 }), DeviceTypeApi.getDeviceTypeTree({ pageNo: 1, pageSize: 10 }),
getSimpleUserList() getSimpleUserList(),
CriticalComponentApi.getCriticalComponentPage({})
]) ])
deviceTypeTree.value = deviceTypeRes deviceTypeTree.value = deviceTypeRes
users.value = userRes ?? [] users.value = userRes ?? []
criticalComponentOptions.value = (criticalRes?.list ?? []).map((item: any) => {
const code = item.code ? String(item.code) : ''
const name = item.name ? String(item.name) : ''
const label = code && name ? `${code}-${name}` : name || code || String(item.id)
return { label, value: Number(item.id) }
})
} }
/** 打开弹窗 */ /** 打开弹窗 */
@ -258,7 +295,8 @@ const open = async (type: string, id?: number, defaultDeviceTypeId?: number) =>
...(detail as any), ...(detail as any),
deviceManagerIds: parseIdsValue((detail as any)?.deviceManager), deviceManagerIds: parseIdsValue((detail as any)?.deviceManager),
productionDate: normalizeYmd((detail as any)?.productionDate), productionDate: normalizeYmd((detail as any)?.productionDate),
factoryEntryDate: normalizeYmd((detail as any)?.factoryEntryDate) factoryEntryDate: normalizeYmd((detail as any)?.factoryEntryDate),
componentIds: parseIdsValue((detail as any)?.componentId)
} }
} finally { } finally {
formLoading.value = false formLoading.value = false
@ -279,9 +317,11 @@ const submitForm = async () => {
...(formData.value as any), ...(formData.value as any),
productionDate: normalizeYmd(formData.value.productionDate), productionDate: normalizeYmd(formData.value.productionDate),
factoryEntryDate: normalizeYmd(formData.value.factoryEntryDate), factoryEntryDate: normalizeYmd(formData.value.factoryEntryDate),
deviceManager: formData.value.deviceManagerIds?.length ? formData.value.deviceManagerIds.join(',') : undefined deviceManager: formData.value.deviceManagerIds?.length ? formData.value.deviceManagerIds.join(',') : undefined,
componentId: formData.value.componentIds?.length ? formData.value.componentIds.join(',') : undefined
} as unknown as DeviceLedgerVO } as unknown as DeviceLedgerVO
delete (data as any).deviceManagerIds delete (data as any).deviceManagerIds
delete (data as any).componentIds
if (formType.value === 'create') { if (formType.value === 'create') {
await DeviceLedgerApi.createDeviceLedger(data) await DeviceLedgerApi.createDeviceLedger(data)
message.success(t('common.createSuccess')) message.success(t('common.createSuccess'))

Loading…
Cancel
Save