style:设备管理-任务管理传参调整/起止日期必填

liutao_branch
黄伟杰 4 months ago
parent c35c026b50
commit 8f60e770d8

@ -5,7 +5,7 @@ export interface TaskManagementVO {
name?: string name?: string
taskType?: number taskType?: number
deviceList?: string deviceList?: string
projectForm?: string projectForm?: string | number
startDate?: string startDate?: string
endDate?: string endDate?: string
cronExpression?: string cronExpression?: string

@ -31,13 +31,12 @@
<el-form-item label="项目表单" prop="projectForm"> <el-form-item label="项目表单" prop="projectForm">
<el-select <el-select
v-model="formData.projectForm" v-model="formData.projectForm"
multiple
filterable filterable
clearable clearable
placeholder="请选择项目表单" placeholder="请选择项目表单"
class="!w-full" class="!w-full"
> >
<el-option v-for="item in planOptions" :key="String(item.id)" :label="item.planName" :value="String(item.id)" /> <el-option v-for="item in planOptions" :key="String(item.id)" :label="item.planName" :value="Number(item.id)" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="起止日期" prop="dateRange"> <el-form-item label="起止日期" prop="dateRange">
@ -129,7 +128,7 @@ const toCommaSeparatedIds = (value: any): string | undefined => {
const ensureOptionsLoaded = async () => { const ensureOptionsLoaded = async () => {
const [deviceRes, planRes, userRes] = await Promise.all([ const [deviceRes, planRes, userRes] = await Promise.all([
DeviceLedgerApi.getDeviceLedgerPage({}), DeviceLedgerApi.getDeviceLedgerPage({}),
PlanMaintenanceApi.getPlanMaintenancePage({}), PlanMaintenanceApi.getPlanMaintenancePage({ pageNo: 1, pageSize: 100 }),
getSimpleUserList() getSimpleUserList()
]) ])
deviceOptions.value = (deviceRes?.list ?? []) as DeviceOption[] deviceOptions.value = (deviceRes?.list ?? []) as DeviceOption[]
@ -142,7 +141,7 @@ const formData = ref({
name: undefined as string | undefined, name: undefined as string | undefined,
taskType: undefined as number | undefined, taskType: undefined as number | undefined,
deviceList: [] as string[], deviceList: [] as string[],
projectForm: [] as string[], projectForm: undefined as number | undefined,
dateRange: [] as string[], dateRange: [] as string[],
cronExpression: undefined as string | undefined, cronExpression: undefined as string | undefined,
operableUsers: [] as string[], operableUsers: [] as string[],
@ -155,6 +154,7 @@ const formRules = reactive({
enabled: [{ required: true, message: '是否启用不能为空', trigger: 'change' }], enabled: [{ required: true, message: '是否启用不能为空', trigger: 'change' }],
deviceList: [{ required: true, message: '设备列表不能为空', trigger: 'change' }], deviceList: [{ required: true, message: '设备列表不能为空', trigger: 'change' }],
projectForm: [{ required: true, message: '项目表单不能为空', trigger: 'change' }], projectForm: [{ required: true, message: '项目表单不能为空', trigger: 'change' }],
dateRange: [{required: true, message: '起止日期不能为空', trigger: 'change' }]
}) })
const resetForm = () => { const resetForm = () => {
@ -163,7 +163,7 @@ const resetForm = () => {
name: undefined, name: undefined,
taskType: undefined, taskType: undefined,
deviceList: [], deviceList: [],
projectForm: [], projectForm: undefined,
dateRange: [], dateRange: [],
cronExpression: undefined, cronExpression: undefined,
operableUsers: [], operableUsers: [],
@ -186,14 +186,16 @@ const open = async (type: string, row?: TaskManagementVO) => {
formData.value.deviceList = parseIdsValue((row as any).deviceList) formData.value.deviceList = parseIdsValue((row as any).deviceList)
const projectFormIds = parseIdsValue((row as any).projectForm) const projectFormIds = parseIdsValue((row as any).projectForm)
if (projectFormIds.length) { if (projectFormIds.length) {
formData.value.projectForm = projectFormIds const n = Number(projectFormIds[0])
formData.value.projectForm = Number.isFinite(n) ? n : undefined
} else { } else {
const projectFormNames = parseIdsValue((row as any).projectFormName) const projectFormNames = parseIdsValue((row as any).projectFormName)
const mappedIds = projectFormNames const mapped = projectFormNames
.map((name) => planOptions.value.find((p) => p.planName === name)?.id) .map((name) => planOptions.value.find((p) => p.planName === name)?.id)
.filter((id) => id !== undefined && id !== null) .filter((id) => id !== undefined && id !== null)
.map((id) => String(id)) .map((id) => Number(id))
formData.value.projectForm = mappedIds const firstId = mapped[0]
formData.value.projectForm = typeof firstId === 'number' && Number.isFinite(firstId) ? firstId : undefined
} }
formData.value.dateRange = [row.startDate, row.endDate].filter(Boolean) as string[] formData.value.dateRange = [row.startDate, row.endDate].filter(Boolean) as string[]
formData.value.cronExpression = row.cronExpression formData.value.cronExpression = row.cronExpression
@ -222,7 +224,7 @@ const submitForm = async () => {
name: formData.value.name, name: formData.value.name,
taskType: formData.value.taskType, taskType: formData.value.taskType,
deviceList: toCommaSeparatedIds((formData.value as any).deviceList), deviceList: toCommaSeparatedIds((formData.value as any).deviceList),
projectForm: toCommaSeparatedIds((formData.value as any).projectForm), projectForm: formData.value.projectForm,
startDate: startDate || undefined, startDate: startDate || undefined,
endDate: endDate || undefined, endDate: endDate || undefined,
cronExpression: formData.value.cronExpression, cronExpression: formData.value.cronExpression,

Loading…
Cancel
Save