diff --git a/src/views/mes/taskManagement/index.vue b/src/views/mes/taskManagement/index.vue
index 730b3931..f667c074 100644
--- a/src/views/mes/taskManagement/index.vue
+++ b/src/views/mes/taskManagement/index.vue
@@ -22,13 +22,16 @@
-
+ >
+
+
@@ -71,7 +74,7 @@
-
-
+
@@ -124,6 +127,7 @@ 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 { PlanMaintenanceApi } from '@/api/mes/planmaintenance'
import TaskManagementForm from './TaskManagementForm.vue'
defineOptions({ name: 'TaskManagement' })
@@ -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(',')
}
@@ -224,6 +261,6 @@ const handleExport = async () => {
}
onMounted(() => {
- getList()
+ Promise.all([ensurePlanOptionsLoaded(), getList()])
})