huminmin
2026-06-01 a563ea879ef5fb6897e76d2df661e465dce2ab9b
src/views/equipmentManagement/upkeep/index.vue
@@ -15,10 +15,10 @@
                  @change="getScheduledTableData"
              />
            </el-form-item>
            <el-form-item label="任务状态">
              <el-select v-model="scheduledFilters.status" placeholder="请选择任务状态" clearable style="width: 200px">
                <el-option label="启用" value="1" />
                <el-option label="停用" value="0" />
            <el-form-item label="是否启用">
              <el-select v-model="scheduledFilters.isEnabled" placeholder="请选择是否启用" clearable style="width: 200px">
                <el-option label="启用" :value="1" />
                <el-option label="禁用" :value="0" />
              </el-select>
            </el-form-item>
            <el-form-item>
@@ -57,9 +57,14 @@
            @selection-change="handleScheduledSelectionChange"
            @pagination="changeScheduledPage"
          >
            <template #statusRef="{ row }">
              <el-tag v-if="row.status === 1" type="success">启用</el-tag>
              <el-tag v-if="row.status === 0" type="danger">停用</el-tag>
            <template #isEnabledRef="{ row }">
              <el-switch
                v-model="row.isEnabled"
                :active-value="1"
                :inactive-value="0"
                :loading="row.enableSwitchLoading"
                :before-change="() => handleScheduledEnableBeforeChange(row)"
              />
            </template>
            <template #operation="{ row }">
              <el-button
@@ -243,6 +248,7 @@
  delUpkeep,
  deviceMaintenanceTaskList,
  deviceMaintenanceTaskDel,
  deviceMaintenanceTaskChangeEnable,
} from '@/api/equipmentManagement/upkeep'
import {
  listMaintenanceTaskFiles,
@@ -286,7 +292,7 @@
// 定时任务管理tab相关变量
const scheduledFilters = reactive({
  taskName: '',
  status: '',
  isEnabled: undefined,
})
const scheduledDataList = ref([])
@@ -299,6 +305,10 @@
// 定时任务管理表格列配置
const scheduledColumns = ref([
   {
      label: "所在区域",
      prop: "areaName",
   },
   { prop: "taskName", label: "设备名称"},
   {
      label: "规格型号",
@@ -313,7 +323,8 @@
         DAILY: "每日",
         WEEKLY: "每周",
         MONTHLY: "每月",
         QUARTERLY: "季度"
         QUARTERLY: "季度",
         YEARLY: "每年",
      }[cell] || "")
   },
   {
@@ -340,6 +351,14 @@
   { prop: "registrant", label: "登记人", minWidth: 100 },
   { prop: "registrationDate", label: "登记日期", minWidth: 100 },
   {
      label: "是否启用",
      prop: "isEnabled",
      dataType: "slot",
      slot: "isEnabledRef",
      align: "center",
      width: "120px",
   },
   {
      fixed: "right",
      label: "操作",
      dataType: "slot",
@@ -351,6 +370,10 @@
// 任务记录表格列配置(原设备保养表格列)
const columns = ref([
   {
      label: "所在区域",
      prop: "areaName",
   },
   {
      label: "设备名称",
      align: "center",
@@ -372,11 +395,6 @@
      align: "center",
      prop: "createUserName",
   },
  {
    label: "项目",
    align: "center",
    prop: "machineryCategory",
  },
   // {
   //   label: "录入日期",
   //   align: "center",
@@ -436,11 +454,16 @@
      current: scheduledPagination.currentPage,
      size: scheduledPagination.pageSize,
      taskName: scheduledFilters.taskName || undefined,
      status: scheduledFilters.status || undefined,
      isEnabled: scheduledFilters.isEnabled,
    }
    const { code, data } = await deviceMaintenanceTaskList(params)
    if (code === 200) {
      scheduledDataList.value = data?.records || []
      const records = data?.records || []
      scheduledDataList.value = records.map((item) => ({
        ...item,
        isEnabled: Number(item.isEnabled ?? item.status ?? 1),
        enableSwitchLoading: false,
      }))
      scheduledPagination.total = data?.total || 0
    }
  } catch (error) {
@@ -450,7 +473,7 @@
const resetScheduledFilters = () => {
  scheduledFilters.taskName = ''
  scheduledFilters.status = ''
  scheduledFilters.isEnabled = undefined
  getScheduledTableData()
}
@@ -492,6 +515,30 @@
  }
}
const handleScheduledEnableBeforeChange = async (row) => {
  if (row.enableSwitchLoading) {
    return false
  }
  const nextValue = Number(row.isEnabled) === 1 ? 0 : 1
  row.enableSwitchLoading = true
  try {
    const res = await deviceMaintenanceTaskChangeEnable({
      id: row.id,
      isEnabled: nextValue,
    })
    if (res?.code !== 200) {
      throw new Error(res?.msg || '更新失败')
    }
    ElMessage.success('启用状态已更新')
    return true
  } catch (error) {
    ElMessage.error(error?.message || '启用状态更新失败')
    return false
  } finally {
    row.enableSwitchLoading = false
  }
}
const handleScheduledOut = () => {
  ElMessage.info('导出定时任务功能待实现')
}