schangxiang@126.com
2025-05-21 a3a2b238a2626ef8744e7a135f9ca2e2fbb5184c
PipeLineLems/pipelinelems_web/src/widgets/WorkPlan/Controllers/WorkPlanQueryDrawer.tsx
@@ -14,6 +14,17 @@
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 { collectFormDataForHighQuery,onResetForHighSelect,onResetForHighQuery } from '@/utils/myformUtils';
import {
  BOOLEAN_OPTIONS
} from '@/utils/commonOptionConstants';
 
export const useWorkPlanQueryDrawer = (props: any, ctx?: any) => { 
  const workPlanDrawer = injectModel<WorkPlanDrawer>('WorkPlanDrawer') 
@@ -84,6 +95,90 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入任务编码', 
                   highSelectAttrs:{
                     prop: 'taskCode_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                },
                {
                   label: '管段编码',
                   prop: 'pipeSpecCode',
                   el: 'input',
                   //disabled: disabled,
                   placeholder: '请输入管段编码',
                   highSelectAttrs:{
                     prop: 'pipeSpecCode_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                },
                {
                   label: '管段名称',
                   prop: 'pipeSectionName',
                   el: 'input',
                   //disabled: disabled,
                   placeholder: '请输入管段名称',
                   highSelectAttrs:{
                     prop: 'pipeSectionName_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                },
                {
                   label: '管段型号',
                   prop: 'pipeSpecMode',
                   el: 'input',
                   //disabled: disabled,
                   placeholder: '请输入管段型号',
                   highSelectAttrs:{
                     prop: 'pipeSpecMode_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                },
                {
                   label: '工序名称',
                   prop: 'processName',
                   el: 'input',
                   //disabled: disabled,
                   placeholder: '请输入工序名称',
                   highSelectAttrs:{
                     prop: 'processName_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                },
                {
                   label: '船号',
                   prop: 'shipNumber',
                   el: 'input',
                   //disabled: disabled,
                   placeholder: '请输入船号',
                   highSelectAttrs:{
                     prop: 'shipNumber_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                },
                {
                   label: '项目号',
                   prop: 'projectNumber',
                   el: 'input',
                   //disabled: disabled,
                   placeholder: '请输入项目号',
                   highSelectAttrs:{
                     prop: 'projectNumber_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '计划状态', 
@@ -93,6 +188,12 @@
                   option: [], 
                   //disabled: disabled, 
                   placeholder: '请输入计划状态', 
                   highSelectAttrs:{
                     prop: 'workPlanStatus_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_BOOL
                   }
                }, 
                { 
                   label: '叫料状态', 
@@ -102,6 +203,25 @@
                   option: [], 
                   //disabled: disabled, 
                   placeholder: '请输入叫料状态', 
                   highSelectAttrs:{
                     prop: 'callMaterialStatus_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_BOOL
                   }
                },
                {
                   label: '工艺流向编号',
                   prop: 'processRouteNumber',
                   el: 'input',
                   //disabled: disabled,
                   placeholder: '请输入工艺流向编号',
                   highSelectAttrs:{
                     prop: 'processRouteNumber_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '原料标识', 
@@ -109,6 +229,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入原料标识', 
                   highSelectAttrs:{
                     prop: 'dataIdentifier_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '原料型号', 
@@ -116,6 +242,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入原料型号', 
                   highSelectAttrs:{
                     prop: 'materialMode_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '长度(mm)', 
@@ -132,6 +264,12 @@
                   precision: 2, 
                   //disabled: disabled, 
                   placeholder: '请输入长度(mm)', 
                   highSelectAttrs:{
                     prop: 'length_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_NUM
                   }
                }, 
                { 
                   label: '打码内容', 
@@ -139,6 +277,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入打码内容', 
                   highSelectAttrs:{
                     prop: 'markingContent_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '打码位置', 
@@ -155,6 +299,12 @@
                   precision: 2, 
                   //disabled: disabled, 
                   placeholder: '请输入打码位置', 
                   highSelectAttrs:{
                     prop: 'markingPosition_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_NUM
                   }
                }, 
                { 
                   label: '切割位置', 
@@ -171,6 +321,12 @@
                   precision: 2, 
                   //disabled: disabled, 
                   placeholder: '请输入切割位置', 
                   highSelectAttrs:{
                     prop: 'cuttingPosition_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_NUM
                   }
                }, 
                { 
                   label: '管段数量', 
@@ -187,6 +343,12 @@
                   precision: 0, 
                   //disabled: disabled, 
                   placeholder: '请输入管段数量', 
                   highSelectAttrs:{
                     prop: 'quantity_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_NUM
                   }
                }, 
                { 
                   label: '法兰厚度(mm)', 
@@ -203,6 +365,12 @@
                   precision: 2, 
                   //disabled: disabled, 
                   placeholder: '请输入法兰厚度(mm)', 
                   highSelectAttrs:{
                     prop: 'flangeThickness_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_NUM
                   }
                }, 
                { 
                   label: '法兰直径(mm)', 
@@ -219,6 +387,12 @@
                   precision: 2, 
                   //disabled: disabled, 
                   placeholder: '请输入法兰直径(mm)', 
                   highSelectAttrs:{
                     prop: 'flangeInnerDiameter_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_NUM
                   }
                }, 
                { 
                   label: '法兰公称压力', 
@@ -226,6 +400,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入法兰公称压力', 
                   highSelectAttrs:{
                     prop: 'weldingHeatInput_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '法兰冲码内容', 
@@ -233,6 +413,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入法兰冲码内容', 
                   highSelectAttrs:{
                     prop: 'pipeAllowableStress_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '套管长度(mm)', 
@@ -249,6 +435,12 @@
                   precision: 2, 
                   //disabled: disabled, 
                   placeholder: '请输入套管长度(mm)', 
                   highSelectAttrs:{
                     prop: 'pipeDiameter_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_NUM
                   }
                }, 
                { 
                   label: '套管直径(mm)', 
@@ -265,6 +457,12 @@
                   precision: 2, 
                   //disabled: disabled, 
                   placeholder: '请输入套管直径(mm)', 
                   highSelectAttrs:{
                     prop: 'pipeWallThickness_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_NUM
                   }
                }, 
                { 
                   label: '工厂代码', 
@@ -272,6 +470,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入工厂代码', 
                   highSelectAttrs:{
                     prop: 'factoryCode_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '产品代码', 
@@ -279,6 +483,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入产品代码', 
                   highSelectAttrs:{
                     prop: 'productCode_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '工位代码', 
@@ -286,6 +496,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入工位代码', 
                   highSelectAttrs:{
                     prop: 'workstationCode_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '设备代码', 
@@ -293,20 +509,25 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入设备代码', 
                   highSelectAttrs:{
                     prop: 'equipmentCode_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '工件名称',
                   prop: 'workpieceName',
                   label: '产线编码',
                   prop: 'prodLineCode',
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入工件名称',
                },
                {
                   label: '工序名称',
                   prop: 'processName',
                   el: 'input',
                   //disabled: disabled,
                   placeholder: '请输入工序名称',
                   placeholder: '请输入产线编码',
                   highSelectAttrs:{
                     prop: 'prodLineCode_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '管件编码', 
@@ -314,6 +535,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入管件编码', 
                   highSelectAttrs:{
                     prop: 'pipeFittingCode_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '顺序号', 
@@ -321,20 +548,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入顺序号', 
                },
                {
                   label: '管段编码',
                   prop: 'pipeSpecCode',
                   el: 'input',
                   //disabled: disabled,
                   placeholder: '请输入管段编码',
                },
                {
                   label: '管段名称',
                   prop: 'pipeSectionName',
                   el: 'input',
                   //disabled: disabled,
                   placeholder: '请输入管段名称',
                   highSelectAttrs:{
                     prop: 'preSerialNumber_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '外径(mm)', 
@@ -351,6 +570,12 @@
                   precision: 2, 
                   //disabled: disabled, 
                   placeholder: '请输入外径(mm)', 
                   highSelectAttrs:{
                     prop: 'outerDiameter_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_NUM
                   }
                }, 
                { 
                   label: '壁厚(mm)', 
@@ -367,6 +592,12 @@
                   precision: 2, 
                   //disabled: disabled, 
                   placeholder: '请输入壁厚(mm)', 
                   highSelectAttrs:{
                     prop: 'thickness_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_NUM
                   }
                }, 
                { 
                   label: '材质', 
@@ -374,13 +605,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入材质', 
                },
                {
                   label: '工艺流向编号',
                   prop: 'processRouteNumber',
                   el: 'input',
                   //disabled: disabled,
                   placeholder: '请输入工艺流向编号',
                   highSelectAttrs:{
                     prop: 'material_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '计划开始时间', 
@@ -395,6 +625,7 @@
                   width: '100%',
                   //disabled: disabled, 
                   placeholder: '请输入计划开始时间', 
                   isDateControl: true, // 显式标记为日期控件
                }, 
                { 
                   label: '计划完成时间', 
@@ -409,6 +640,7 @@
                   width: '100%',
                   //disabled: disabled, 
                   placeholder: '请输入计划完成时间', 
                   isDateControl: true, // 显式标记为日期控件
                }, 
                { 
                   label: '班组信息', 
@@ -416,6 +648,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入班组信息', 
                   highSelectAttrs:{
                     prop: 'teamInfo_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '时间戳', 
@@ -423,6 +661,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入时间戳', 
                   highSelectAttrs:{
                     prop: 'timestamp_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '创建时间', 
@@ -437,6 +681,7 @@
                   width: '100%',
                   //disabled: disabled, 
                   placeholder: '请输入创建时间', 
                   isDateControl: true, // 显式标记为日期控件
                }, 
                { 
                   label: '修改时间', 
@@ -451,6 +696,7 @@
                   width: '100%',
                   //disabled: disabled, 
                   placeholder: '请输入修改时间', 
                   isDateControl: true, // 显式标记为日期控件
                }, 
                { 
                   label: '创建人', 
@@ -458,6 +704,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入创建人', 
                   highSelectAttrs:{
                     prop: 'creatorName_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '修改人', 
@@ -465,6 +717,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入修改人', 
                   highSelectAttrs:{
                     prop: 'lastModifierName_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                }, 
                { 
                   label: '备注', 
@@ -472,6 +730,12 @@
                   el: 'input', 
                   //disabled: disabled, 
                   placeholder: '请输入备注', 
                   highSelectAttrs:{
                     prop: 'remark_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                },  
  ]) 
  /** 
@@ -484,54 +748,11 @@
    const check = isEqual(initiateData.value, data) 
    return check 
  } 
  const commonGetFormData=()=>{
    const data = {
      taskCode: formData.value.taskCode || '',
workPlanStatus: formData.value.workPlanStatus || '',
callMaterialStatus: formData.value.callMaterialStatus || '',
dataIdentifier: formData.value.dataIdentifier || '',
materialMode: formData.value.materialMode || '',
length: formData.value.length || '',
markingContent: formData.value.markingContent || '',
markingPosition: formData.value.markingPosition || '',
cuttingPosition: formData.value.cuttingPosition || '',
quantity: formData.value.quantity || '',
flangeThickness: formData.value.flangeThickness || '',
flangeInnerDiameter: formData.value.flangeInnerDiameter || '',
weldingHeatInput: formData.value.weldingHeatInput || '',
pipeAllowableStress: formData.value.pipeAllowableStress || '',
pipeDiameter: formData.value.pipeDiameter || '',
pipeWallThickness: formData.value.pipeWallThickness || '',
factoryCode: formData.value.factoryCode || '',
productCode: formData.value.productCode || '',
workstationCode: formData.value.workstationCode || '',
equipmentCode: formData.value.equipmentCode || '',
workpieceName: formData.value.workpieceName || '',
processName: formData.value.processName || '',
pipeFittingCode: formData.value.pipeFittingCode || '',
preSerialNumber: formData.value.preSerialNumber || '',
pipeSpecCode: formData.value.pipeSpecCode || '',
pipeSectionName: formData.value.pipeSectionName || '',
outerDiameter: formData.value.outerDiameter || '',
thickness: formData.value.thickness || '',
material: formData.value.material || '',
processRouteNumber: formData.value.processRouteNumber || '',
plannedStartTime: formData.value.plannedStartTime || '',
plannedEndTime: formData.value.plannedEndTime || '',
teamInfo: formData.value.teamInfo || '',
timestamp: formData.value.timestamp || '',
creationTime: formData.value.creationTime || '',
lastModificationTime: formData.value.lastModificationTime || '',
creatorName: formData.value.creatorName || '',
lastModifierName: formData.value.lastModifierName || '',
remark: formData.value.remark || '',
    }
    return data;
  }
  const onClose = (done: () => void) => { 
    if (visible.value) { 
      visible.value = false 
      const data =commonGetFormData();
      const data =collectFormDataForHighQuery(formItems,formData);
      ctx.emit('close', data) 
    } 
  } 
@@ -539,58 +760,22 @@
   * 确认查询 
   */ 
  const onConfirmQuery = async () => { 
    const data =commonGetFormData();
    const data =collectFormDataForHighQuery(formItems,formData);
    ctx.emit('confirmQuery', data) 
  } 
  /**
   * 重置查询
   */
  const onReset = async () => {
    formData.value = {}
    formData.value.taskCode = ''
formData.value.workPlanStatus = ''
formData.value.callMaterialStatus = ''
formData.value.dataIdentifier = ''
formData.value.materialMode = ''
formData.value.length = ''
formData.value.markingContent = ''
formData.value.markingPosition = ''
formData.value.cuttingPosition = ''
formData.value.quantity = ''
formData.value.flangeThickness = ''
formData.value.flangeInnerDiameter = ''
formData.value.weldingHeatInput = ''
formData.value.pipeAllowableStress = ''
formData.value.pipeDiameter = ''
formData.value.pipeWallThickness = ''
formData.value.factoryCode = ''
formData.value.productCode = ''
formData.value.workstationCode = ''
formData.value.equipmentCode = ''
formData.value.workpieceName = ''
formData.value.processName = ''
formData.value.pipeFittingCode = ''
formData.value.preSerialNumber = ''
formData.value.pipeSpecCode = ''
formData.value.pipeSectionName = ''
formData.value.outerDiameter = ''
formData.value.thickness = ''
formData.value.material = ''
formData.value.processRouteNumber = ''
formData.value.plannedStartTime = ''
formData.value.plannedEndTime = ''
formData.value.teamInfo = ''
formData.value.timestamp = ''
formData.value.deletionTime = ''
formData.value.operationRemark = ''
formData.value.deleteRemark = ''
formData.value.remark = ''
formData.value.extraField1 = ''
formData.value.extraField2 = ''
formData.value.extraField3 = ''
    //向父组件发送自定义事件
    ctx.emit('restQuery');
  }
    /**
    * 重置查询 - 优化版
    */
    const onReset = async () => {
        // 1. 清空所有基础字段(不包含过滤模式字段),应用基础字段初始值
        onResetForHighQuery(formItems,formData);
        // 2. 使用原有方法重置过滤模式字段
        onResetForHighSelect(formItems,formData);
        // 3. 向父组件发送自定义事件
        ctx.emit('restQuery');
    }
 
  const updateCheckData = () => { 
    initiateData.value = { 
@@ -623,6 +808,7 @@
 
  } 
  commonQueryEnumForFrom() 
  onResetForHighSelect(formItems,formData);//重置公共select查询
  /** 
   * 弹窗打开获取详情 
   */