#
zhou zhou
1 天以前 4259deb19122a4807d50c99ed4a95405ebe4a47c
rsf-design/src/views/manager/task/index.vue
@@ -44,10 +44,7 @@
      />
    </ElCard>
    <TaskFlowStepDialog
      v-model:visible="flowStepDialogVisible"
      :task-row="activeTaskRow"
    />
    <TaskFlowStepDialog v-model:visible="flowStepDialogVisible" :task-row="activeTaskRow" />
    <TaskDetailDrawer
      v-model:visible="detailDrawerVisible"
@@ -76,6 +73,7 @@
    fetchPickTask,
    fetchRemoveTask,
    fetchTaskAutoRunFlag,
    fetchTaskDetail,
    fetchTaskItemPage,
    fetchTaskPage,
    fetchTopTask,
@@ -174,6 +172,12 @@
      showOverflowTooltip: true
    },
    {
      prop: 'platOrderCode',
      label: t('pages.task.expand.platOrderCode'),
      minWidth: 150,
      showOverflowTooltip: true
    },
    {
      prop: 'platWorkCode',
      label: t('pages.orders.transfer.detail.relatedCode'),
      minWidth: 150,
@@ -183,6 +187,12 @@
      prop: 'platItemId',
      label: t('pages.orders.delivery.table.platItemId'),
      minWidth: 100,
      showOverflowTooltip: true
    },
    {
      prop: 'projectCode',
      label: t('pages.task.expand.projectCode'),
      minWidth: 140,
      showOverflowTooltip: true
    },
    {
@@ -215,9 +225,57 @@
      align: 'right'
    },
    {
      prop: 'workQty',
      label: t('pages.task.expand.workQty'),
      width: 100,
      align: 'right'
    },
    {
      prop: 'qty',
      label: t('pages.task.expand.qty'),
      width: 100,
      align: 'right'
    },
    {
      prop: 'spec',
      label: t('pages.task.expand.spec'),
      minWidth: 140,
      showOverflowTooltip: true
    },
    {
      prop: 'model',
      label: t('pages.task.expand.model'),
      minWidth: 140,
      showOverflowTooltip: true
    },
    {
      prop: 'createByText',
      label: t('table.createBy'),
      minWidth: 120,
      showOverflowTooltip: true
    },
    {
      prop: 'createTimeText',
      label: t('table.createTime'),
      minWidth: 180,
      showOverflowTooltip: true
    },
    {
      prop: 'updateByText',
      label: t('pages.orders.delivery.detail.updateBy'),
      minWidth: 120,
      showOverflowTooltip: true
    },
    {
      prop: 'statusText',
      label: t('table.status'),
      minWidth: 120,
      showOverflowTooltip: true
    },
    {
      prop: 'memo',
      label: t('table.remark'),
      minWidth: 180,
      showOverflowTooltip: true
    },
    {
@@ -257,11 +315,15 @@
      }
      if (action.key === 'complete') {
        await confirmTaskAction(t('pages.task.messages.completeConfirm', { code: row.taskCode || '' }))
        await confirmTaskAction(
          t('pages.task.messages.completeConfirm', { code: row.taskCode || '' })
        )
        await fetchCompleteTask(row.id)
        ElMessage.success(t('pages.task.messages.completeSuccess'))
      } else if (action.key === 'remove') {
        await confirmTaskAction(t('pages.task.messages.removeConfirm', { code: row.taskCode || '' }))
        await confirmTaskAction(
          t('pages.task.messages.removeConfirm', { code: row.taskCode || '' })
        )
        await fetchRemoveTask(row.id)
        ElMessage.success(t('pages.task.messages.removeSuccess'))
      } else if (action.key === 'check') {
@@ -338,9 +400,13 @@
  async function loadAutoRunConfig() {
    autoRunLoading.value = true
    try {
      const response = await guardRequestWithMessage(fetchTaskAutoRunFlag(), { val: false }, {
        timeoutMessage: t('pages.task.messages.autoRunTimeout')
      })
      const response = await guardRequestWithMessage(
        fetchTaskAutoRunFlag(),
        { val: false },
        {
          timeoutMessage: t('pages.task.messages.autoRunTimeout')
        }
      )
      const rawValue = response?.val
      autoRunEnabled.value =
        rawValue === true || rawValue === 'true' || rawValue === 1 || rawValue === '1'
@@ -354,7 +420,11 @@
    try {
      await fetchUpdateTaskAutoRunFlag(enabled)
      autoRunEnabled.value = enabled
      ElMessage.success(enabled ? t('pages.task.messages.autoRunOnSuccess') : t('pages.task.messages.autoRunOffSuccess'))
      ElMessage.success(
        enabled
          ? t('pages.task.messages.autoRunOnSuccess')
          : t('pages.task.messages.autoRunOffSuccess')
      )
    } catch (error) {
      ElMessage.error(error?.message || t('pages.task.messages.autoRunUpdateFailed'))
    } finally {
@@ -369,28 +439,59 @@
    detailLoading.value = true
    try {
      const taskItemResponse = await guardRequestWithMessage(
        fetchTaskItemPage({
          taskId: activeTaskRow.value.id,
          current: detailPagination.current,
          pageSize: detailPagination.size
      const [taskDetailResult, taskItemResult] = await Promise.allSettled([
        guardRequestWithMessage(fetchTaskDetail(activeTaskRow.value.id), activeTaskRow.value, {
          timeoutMessage: t('pages.task.messages.detailTimeout')
        }),
        {
          records: [],
          total: 0,
          current: detailPagination.current,
          size: detailPagination.size
        },
        { timeoutMessage: t('pages.task.messages.itemsTimeout') }
      )
        guardRequestWithMessage(
          fetchTaskItemPage({
            taskId: activeTaskRow.value.id,
            current: detailPagination.current,
            pageSize: detailPagination.size
          }),
          {
            records: [],
            total: 0,
            current: detailPagination.current,
            size: detailPagination.size
          },
          { timeoutMessage: t('pages.task.messages.itemsTimeout') }
        )
      ])
      const taskDetailResponse =
        taskDetailResult.status === 'fulfilled' ? taskDetailResult.value : activeTaskRow.value
      const taskItemResponse =
        taskItemResult.status === 'fulfilled'
          ? taskItemResult.value
          : {
              records: [],
              total: 0,
              current: detailPagination.current,
              size: detailPagination.size
            }
      activeTaskRow.value = {
        ...activeTaskRow.value,
        ...taskDetailResponse
      }
      detailData.value = normalizeTaskRow(activeTaskRow.value)
      detailTableData.value = Array.isArray(taskItemResponse?.records)
      detailTableData.value = Array.isArray(taskItemResponse.records)
        ? taskItemResponse.records.map((record) => normalizeTaskItemRow(record))
        : []
      updatePaginationState(detailPagination, taskItemResponse, detailPagination.current, detailPagination.size)
      updatePaginationState(
        detailPagination,
        taskItemResponse,
        detailPagination.current,
        detailPagination.size
      )
      if (taskDetailResult.status === 'rejected' && taskItemResult.status === 'rejected') {
        throw taskDetailResult.reason || taskItemResult.reason
      }
    } catch (error) {
      detailTableData.value = []
      detailData.value = normalizeTaskRow(activeTaskRow.value)
      ElMessage.error(error?.message || t('pages.task.messages.detailLoadFailed'))
    } finally {
      detailLoading.value = false