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

main
黄伟杰 3 weeks ago
parent c35c026b50
commit 8f60e770d8

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

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

Loading…
Cancel
Save