diff --git a/src/api/mold/taskManagement/index.ts b/src/api/mold/taskManagement/index.ts new file mode 100644 index 00000000..8aa27b38 --- /dev/null +++ b/src/api/mold/taskManagement/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +export interface TaskManagementVO { + id?: number + name?: string + taskType?: number + deviceList?: string + projectForm?: string + startDate?: string + endDate?: string + cronExpression?: string + operableUsers?: string + enabled?: boolean + execFrequency?: string + frequencyValue?: string + time?: string + validMinutes?: number + creator?: string + createTime?: string + updateTime?: string +} + +export const TaskManagementApi = { + getTaskManagementPage: async (params: any) => { + return await request.get({ url: `/mes/mold-task-management/page`, params }) + }, + + createTaskManagementTicket: async (id: number | string) => { + return await request.post({ url: `/mes/mold-task-management/createTicket`, params: { id } }) + }, + + createTaskManagement: async (data: TaskManagementVO) => { + return await request.post({ url: `/mes/mold-task-management/create`, data }) + }, + + updateTaskManagement: async (data: TaskManagementVO) => { + return await request.put({ url: `/mes/mold-task-management/update`, data }) + }, + + deleteTaskManagement: async (ids: string) => { + return await request.delete({ url: `/mes/mold-task-management/delete?ids=` + ids }) + }, + + exportTaskManagement: async (params: any) => { + return await request.download({ url: `/mes/mold-task-management/export-excel`, params }) + } +} diff --git a/src/views/mold/taskConfiguration/TaskConfigurationForm.vue b/src/views/mold/taskConfiguration/TaskConfigurationForm.vue index 369e21b0..a59e5014 100644 --- a/src/views/mold/taskConfiguration/TaskConfigurationForm.vue +++ b/src/views/mold/taskConfiguration/TaskConfigurationForm.vue @@ -1,12 +1,6 @@ - + @@ -123,7 +126,8 @@ import { DICT_TYPE } from '@/utils/dict' import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' import download from '@/utils/download' -import { TaskManagementApi, TaskManagementVO } from '@/api/mes/taskManagement' +import { TaskManagementApi, TaskManagementVO } from '@/api/mold/taskManagement' +import { PlanMaintenanceApi } from '@/api/mold/planmaintenance' import TaskConfigurationForm from './TaskConfigurationForm.vue' defineOptions({ name: 'MoldTaskConfiguration' }) @@ -142,19 +146,52 @@ const total = ref(0) const exportLoading = ref(false) const selectedIds = ref([]) +type PlanOption = { + id: number | string + planName: string +} + +const planOptions = ref([]) + const queryParams = reactive({ pageNo: 1, pageSize: 10, name: undefined as string | undefined, taskType: undefined as number | undefined, - projectForm: undefined as string | undefined + projectForm: [] as string[] }) const queryFormRef = ref() +const parseIdsValue = (value: any): string[] => { + if (!value) return [] + if (Array.isArray(value)) return value.map((v) => String(v).trim()).filter(Boolean) + return String(value) + .split(',') + .map((v) => v.trim()) + .filter(Boolean) +} + +const toCommaSeparatedIds = (value: any): string | undefined => { + const ids = parseIdsValue(value) + return ids.length ? ids.join(',') : undefined +} + +const ensurePlanOptionsLoaded = async () => { + const planRes = await PlanMaintenanceApi.getPlanMaintenancePage({ pageNo: 1, pageSize: 100 }) + planOptions.value = (planRes?.list ?? []) as PlanOption[] +} + +const buildQueryParams = () => { + return { + ...queryParams, + projectForm: toCommaSeparatedIds(queryParams.projectForm) + } +} + const getList = async () => { loading.value = true try { - const data = await TaskManagementApi.getTaskManagementPage(queryParams) + const data = await TaskManagementApi.getTaskManagementPage(buildQueryParams()) list.value = data.list total.value = data.total } finally { @@ -211,7 +248,7 @@ const handleExport = async () => { try { await message.exportConfirm() exportLoading.value = true - const params: Record = { ...queryParams } + const params: Record = buildQueryParams() if (selectedIds.value.length > 0) { params.ids = selectedIds.value.join(',') } @@ -223,8 +260,11 @@ const handleExport = async () => { } } -onMounted(() => { - getList() +onMounted(async () => { + try { + await ensurePlanOptionsLoaded() + } finally { + getList() + } }) -