zs
2025-05-14 8944412929ca57bf921d4dd12f419778bd6cce62
HIAWms/hiawms_web/src/widgets/WmsTask/Controllers/WmsTaskQueryDrawer.tsx
@@ -14,6 +14,13 @@
import isEqual from 'lodash/isEqual'
import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
import { cloneDeep } from 'lodash'
// 引入公共选项配置
import {
  FILTER_MODE_OPTIONS_STRING,
  FILTER_MODE_OPTIONS_NUM,
  FILTER_MODE_OPTIONS_BOOL,
} from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions'
import { BOOLEAN_OPTIONS } from '@/utils/commonOptionConstants'
export const useWmsTaskQueryDrawer = (props: any, ctx?: any) => {
  const wmsTaskDrawer = injectModel<WmsTaskDrawer>('WmsTaskDrawer')
@@ -75,7 +82,7 @@
    },
  })
  /**
   * 添加的form字段
   * 高级查询的form字段
   */
  const formItems = reactive([
    {
@@ -84,13 +91,27 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入任务号',
      highSelectAttrs: {
        prop: 'taskNo_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '任务类型',
      prop: 'taskType',
      el: 'select',
      clearable: true,
      option: [],
      //disabled: disabled,
      placeholder: '请输入任务类型',
      highSelectAttrs: {
        prop: 'taskType_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_BOOL,
      },
    },
    {
      label: '任务等级',
@@ -107,13 +128,27 @@
      precision: 0,
      //disabled: disabled,
      placeholder: '请输入任务等级',
      highSelectAttrs: {
        prop: 'taskLevel_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_NUM,
      },
    },
    {
      label: '任务状态',
      prop: 'taskStatus',
      el: 'select',
      clearable: true,
      option: [],
      //disabled: disabled,
      placeholder: '请输入任务状态',
      highSelectAttrs: {
        prop: 'taskStatus_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_BOOL,
      },
    },
    {
      label: '托盘编号',
@@ -121,6 +156,12 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入托盘编号',
      highSelectAttrs: {
        prop: 'containerNo_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '起始库位',
@@ -128,6 +169,12 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入起始库位',
      highSelectAttrs: {
        prop: 'sourcePlace_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '目标库位',
@@ -135,6 +182,34 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入目标库位',
      highSelectAttrs: {
        prop: 'toPlace_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: 'PLC任务号',
      prop: 'plcTaskId',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      step: 1,
      precision: 0,
      //disabled: disabled,
      placeholder: '请输入',
      highSelectAttrs: {
        prop: 'plcTaskId_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_NUM,
      },
    },
    {
      label: '巷道',
@@ -151,6 +226,12 @@
      precision: 0,
      //disabled: disabled,
      placeholder: '请输入巷道',
      highSelectAttrs: {
        prop: 'aisle_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_NUM,
      },
    },
    {
      label: '堆垛机ID',
@@ -167,38 +248,42 @@
      precision: 0,
      //disabled: disabled,
      placeholder: '请输入堆垛机ID',
      highSelectAttrs: {
        prop: 'dodeviceId_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_NUM,
      },
    },
    {
      label: '设备类型',
      prop: 'dodevicetype',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      step: 1,
      precision: 0,
      el: 'select',
      clearable: true,
      option: [],
      //disabled: disabled,
      placeholder: '请输入设备类型',
      highSelectAttrs: {
        prop: 'dodevicetype_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_BOOL,
      },
    },
    {
      label: '设备任务状态',
      prop: 'taskDodeviceStatus',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
          ...props,
          clearable: true,
          ...attrs,
        })
      },
      width: '100%',
      step: 1,
      precision: 0,
      el: 'select',
      clearable: true,
      option: [],
      //disabled: disabled,
      placeholder: '请输入设备任务状态',
      highSelectAttrs: {
        prop: 'taskDodeviceStatus_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_BOOL,
      },
    },
    {
      label: 'WCS是否可以读取',
@@ -206,17 +291,29 @@
      el: 'select',
      //disabled: disabled,
      placeholder: '请输入WCS是否可以读取',
      options: [
        { label: '是', value: 'true' },
        { label: '否', value: 'false' },
      ],
      clearable: true,
      options: BOOLEAN_OPTIONS,
      highSelectAttrs: {
        prop: 'isRead_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_BOOL,
      },
    },
    {
      label: '子任务类型',
      prop: 'sonTaskType',
      el: 'select',
      clearable: true,
      option: [],
      //disabled: disabled,
      placeholder: '请输入子任务类型',
      highSelectAttrs: {
        prop: 'sonTaskType_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_BOOL,
      },
    },
    {
      label: '来源单据号',
@@ -224,9 +321,15 @@
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入来源单据号',
      highSelectAttrs: {
        prop: 'sourceOrderNo_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '下个任务是否生成成功',
      label: '下个任务是否生成',
      prop: 'isNextTask',
      el: (props: any, { attrs }: SetupContext) => {
        return h(inputNumber, {
@@ -240,39 +343,52 @@
      precision: 0,
      //disabled: disabled,
      placeholder: '请输入下个任务是否生成',
      highSelectAttrs: {
        prop: 'isNextTask_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_NUM,
      },
    },
    {
      label: '可变变量1',
      label: '型号',
      prop: 'mutableParam1',
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入可变变量1',
      placeholder: '请输入型号',
      highSelectAttrs: {
        prop: 'mutableParam1_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '可变变量2',
      label: '原料标识',
      prop: 'mutableParam2',
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入可变变量2',
      placeholder: '请输入原料标识',
      highSelectAttrs: {
        prop: 'mutableParam2_FilterMode',
        el: 'select',
        placeholder: '请选择',
        options: FILTER_MODE_OPTIONS_STRING,
      },
    },
    {
      label: '可变变量3',
      prop: 'mutableParam3',
      el: 'input',
      //disabled: disabled,
      placeholder: '请输入可变变量3',
    },
    {
      label: '是否禁用',
      prop: 'isDisabled',
      el: 'select',
      //disabled: disabled,
      placeholder: '请输入是否禁用',
      options: [
        { label: '是', value: 'true' },
        { label: '否', value: 'false' },
      ],
    },
    // {
    //   label: '可变变量3',
    //   prop: 'mutableParam3',
    //   el: 'input',
    //   //disabled: disabled,
    //   placeholder: '请输入可变变量3',
    //   highSelectAttrs: {
    //     prop: 'mutableParam3_FilterMode',
    //     el: 'select',
    //     placeholder: '请选择',
    //     options: FILTER_MODE_OPTIONS_STRING,
    //   },
    // },
    {
      label: '创建时间',
      prop: 'creationTime',
@@ -285,8 +401,24 @@
      },
      width: '100%',
      //disabled: disabled,
      placeholder: '请输入',
      placeholder: '请输入创建时间',
      isDateControl: true, // 显式标记为日期控件
    },
    // {
    //   label: '',
    //   prop: 'lastModificationTime',
    //   el: (props: any, { attrs }: SetupContext) => {
    //     return h(dateTimePickerRange, {
    //       ...props,
    //       clearable: true,
    //       ...attrs,
    //     })
    //   },
    //   width: '100%',
    //   //disabled: disabled,
    //   placeholder: '请输入',
    //   isDateControl: true, // 显式标记为日期控件
    // },
  ])
  /**
   * 校验是否有数据变化
@@ -301,25 +433,46 @@
  const commonGetFormData = () => {
    const data = {
      taskNo: formData.value.taskNo || '',
      taskNo_FilterMode: formData.value.taskNo_FilterMode || '',
      taskType: formData.value.taskType || '',
      taskType_FilterMode: formData.value.taskType_FilterMode || '',
      taskLevel: formData.value.taskLevel || '',
      taskLevel_FilterMode: formData.value.taskLevel_FilterMode || '',
      taskStatus: formData.value.taskStatus || '',
      taskStatus_FilterMode: formData.value.taskStatus_FilterMode || '',
      containerNo: formData.value.containerNo || '',
      containerNo_FilterMode: formData.value.containerNo_FilterMode || '',
      sourcePlace: formData.value.sourcePlace || '',
      sourcePlace_FilterMode: formData.value.sourcePlace_FilterMode || '',
      toPlace: formData.value.toPlace || '',
      toPlace_FilterMode: formData.value.toPlace_FilterMode || '',
      plcTaskId: formData.value.plcTaskId || '',
      plcTaskId_FilterMode: formData.value.plcTaskId_FilterMode || '',
      aisle: formData.value.aisle || '',
      aisle_FilterMode: formData.value.aisle_FilterMode || '',
      dodeviceId: formData.value.dodeviceId || '',
      dodeviceId_FilterMode: formData.value.dodeviceId_FilterMode || '',
      dodevicetype: formData.value.dodevicetype || '',
      dodevicetype_FilterMode: formData.value.dodevicetype_FilterMode || '',
      taskDodeviceStatus: formData.value.taskDodeviceStatus || '',
      taskDodeviceStatus_FilterMode:
        formData.value.taskDodeviceStatus_FilterMode || '',
      isRead: formData.value.isRead || '',
      isRead_FilterMode: formData.value.isRead_FilterMode || '',
      sonTaskType: formData.value.sonTaskType || '',
      sonTaskType_FilterMode: formData.value.sonTaskType_FilterMode || '',
      sourceOrderNo: formData.value.sourceOrderNo || '',
      sourceOrderNo_FilterMode: formData.value.sourceOrderNo_FilterMode || '',
      isNextTask: formData.value.isNextTask || '',
      isNextTask_FilterMode: formData.value.isNextTask_FilterMode || '',
      mutableParam1: formData.value.mutableParam1 || '',
      mutableParam1_FilterMode: formData.value.mutableParam1_FilterMode || '',
      mutableParam2: formData.value.mutableParam2 || '',
      mutableParam2_FilterMode: formData.value.mutableParam2_FilterMode || '',
      mutableParam3: formData.value.mutableParam3 || '',
      isDisabled: formData.value.isDisabled || '',
      mutableParam3_FilterMode: formData.value.mutableParam3_FilterMode || '',
      creationTime: formData.value.creationTime || '',
      lastModificationTime: formData.value.lastModificationTime || '',
    }
    return data
  }
@@ -338,28 +491,56 @@
    ctx.emit('confirmQuery', data)
  }
  /**
   * 重置公共select查询
   */
  const onResetForHighSelect = async () => {
    formData.value.taskNo_FilterMode = 1
    formData.value.taskType_FilterMode = 2
    formData.value.taskLevel_FilterMode = 2
    formData.value.taskStatus_FilterMode = 2
    formData.value.containerNo_FilterMode = 1
    formData.value.sourcePlace_FilterMode = 1
    formData.value.toPlace_FilterMode = 1
    formData.value.plcTaskId_FilterMode = 2
    formData.value.aisle_FilterMode = 2
    formData.value.dodeviceId_FilterMode = 2
    formData.value.dodevicetype_FilterMode = 2
    formData.value.taskDodeviceStatus_FilterMode = 2
    formData.value.isRead_FilterMode = 2
    formData.value.sonTaskType_FilterMode = 2
    formData.value.sourceOrderNo_FilterMode = 1
    formData.value.isNextTask_FilterMode = 2
    formData.value.mutableParam1_FilterMode = 1
    formData.value.mutableParam2_FilterMode = 1
    formData.value.mutableParam3_FilterMode = 1
  }
  /**
   * 重置查询
   */
  const onReset = async () => {
    formData.value = {}
    formData.value.TaskNo = ''
    formData.value.TaskType = ''
    formData.value.TaskLevel = ''
    formData.value.TaskStatus = ''
    formData.value.ContainerNo = ''
    formData.value.SourcePlace = ''
    formData.value.ToPlace = ''
    formData.value.Aisle = ''
    formData.value.DodeviceId = ''
    formData.value.Dodevicetype = ''
    formData.value.TaskDodeviceStatus = ''
    formData.value.IsRead = ''
    formData.value.SonTaskType = ''
    formData.value.SourceOrderNo = ''
    formData.value.IsNextTask = ''
    formData.value.MutableParam1 = ''
    formData.value.MutableParam2 = ''
    formData.value.MutableParam3 = ''
    onResetForHighSelect() //重置公共select查询
    formData.value.taskNo = ''
    formData.value.taskType = ''
    formData.value.taskLevel = ''
    formData.value.taskStatus = ''
    formData.value.containerNo = ''
    formData.value.sourcePlace = ''
    formData.value.toPlace = ''
    formData.value.plcTaskId = ''
    formData.value.aisle = ''
    formData.value.dodeviceId = ''
    formData.value.dodevicetype = ''
    formData.value.taskDodeviceStatus = ''
    formData.value.isRead = ''
    formData.value.sonTaskType = ''
    formData.value.sourceOrderNo = ''
    formData.value.isNextTask = ''
    formData.value.mutableParam1 = ''
    formData.value.mutableParam2 = ''
    formData.value.mutableParam3 = ''
    formData.value.creationTime = ''
    formData.value.lastModificationTime = ''
    //向父组件发送自定义事件
    ctx.emit('restQuery')
  }
@@ -392,12 +573,21 @@
      EnumName: 'WmsTaskStatus',
    })
    updateFormItemOptions('taskStatus', wmsTaskStatusEnum)
    const dodevicetypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({
      EnumName: 'DodevicetypeEnum',
    })
    updateFormItemOptions('dodevicetype', dodevicetypeEnumEnum)
    const taskDodeviceStatusEnum = await wmsTaskDrawer.getWmsEnumData({
      EnumName: 'TaskDodeviceStatus',
    })
    updateFormItemOptions('taskDodeviceStatus', taskDodeviceStatusEnum)
    const sonTaskTypeEnumEnum = await wmsTaskDrawer.getWmsEnumData({
      EnumName: 'SonTaskTypeEnum',
    })
    updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum)
  }
  commonQueryEnumForFrom()
  onResetForHighSelect() //重置公共select查询
  /**
   * 弹窗打开获取详情
   */