zs
2025-06-04 5a149d626ae8bc3fa4bddbb53f8caf40f51f6da6
PipeLineLems/pipelinelems_web/src/widgets/WorkTask/Controllers/WorkTaskQueryDrawer.tsx
@@ -20,8 +20,8 @@
  FILTER_MODE_OPTIONS_NUM, 
  FILTER_MODE_OPTIONS_BOOL 
} from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions'; 
// 引入公共表单工具文件
import { collectFormDataForHighQuery,onResetForHighSelect,onResetForHighQuery } from '@/utils/myformUtils';
// 引入公共表单工具文件
import { collectFormDataForHighQuery,onResetForHighSelect,onResetForHighQuery } from '@/utils/myformUtils';
import {  
  BOOLEAN_OPTIONS 
} from '@/utils/commonOptionConstants'; 
@@ -116,6 +116,84 @@
                   } 
                }, 
                { 
                   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: '计划状态', 
                   prop: 'workPlanStatus', 
                   el: 'select', 
@@ -143,6 +221,19 @@
                     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
                   } 
                }, 
                { 
@@ -452,45 +543,6 @@
                   } 
                }, 
                { 
                   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: '工序名称',
                   prop: 'processName',
                   el: 'input',
                   //disabled: disabled,
                   placeholder: '请输入工序名称',
                   highSelectAttrs:{
                     prop: 'processName_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                },
                {
                   label: '管件编码', 
                   prop: 'pipeFittingCode', 
                   el: 'input', 
@@ -511,32 +563,6 @@
                   placeholder: '请输入顺序号', 
                   highSelectAttrs:{ 
                     prop: 'preSerialNumber_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 
@@ -594,19 +620,6 @@
                   placeholder: '请输入材质', 
                   highSelectAttrs:{ 
                     prop: 'material_FilterMode', 
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING
                   }
                },
                {
                   label: '工艺流向编号',
                   prop: 'processRouteNumber',
                   el: 'input',
                   //disabled: disabled,
                   placeholder: '请输入工艺流向编号',
                   highSelectAttrs:{
                     prop: 'processRouteNumber_FilterMode',
                     el: 'select',  
                     placeholder: '请选择',  
                     options:FILTER_MODE_OPTIONS_STRING 
@@ -748,30 +761,11 @@
    const check = isEqual(initiateData.value, data) 
    return check 
  } 
//   /**
//  * 获取表单数据 - 优化版
//  */
// const commonGetFormData = () => {
//   const data = {};
//   // 遍历表单配置收集数据
//   formItems.forEach(item => {
//     // 收集基础字段
//     data[item.prop] = formData.value[item.prop] || '';
//     // 收集过滤模式字段
//     if (item.highSelectAttrs && item.highSelectAttrs.prop) {
//       const filterModeProp = item.highSelectAttrs.prop;
//       data[filterModeProp] = formData.value[filterModeProp] || '';
//     }
//   });
//   return data;
// }
  const onClose = (done: () => void) => { 
    if (visible.value) { 
      visible.value = false 
      const data =collectFormDataForHighQuery(formItems,formData);
      const data =collectFormDataForHighQuery(formItems,formData);
      ctx.emit('close', data) 
    } 
  } 
@@ -779,48 +773,20 @@
   * 确认查询 
   */ 
  const onConfirmQuery = async () => { 
    const data =collectFormDataForHighQuery(formItems,formData);
    const data =collectFormDataForHighQuery(formItems,formData);
    ctx.emit('confirmQuery', data) 
  } 
  // /**
  //  * 重置公共select查询
  //  */
  // const onResetForHighSelect = () => {
  //     // 遍历所有表单字段
  //     formItems.forEach(item => {
  //       // 检查字段是否有高级查询的过滤模式配置
  //       if (item.highSelectAttrs && item.highSelectAttrs.prop) {
  //         const filterModeProp = item.highSelectAttrs.prop;
  //         const options = item.highSelectAttrs.options || [];
  //         // 如果存在选项,则设置为第一个选项的值
  //         if (options.length > 0) {
  //           // 假设选项格式为 { value, label } 或类似结构
  //           const firstValue = options[0].value !== undefined ? options[0].value : options[0];
  //           formData.value[filterModeProp] = firstValue;
  //         }
  //       }
  //     });
  // }
    /** 
    * 重置查询 - 优化版 
    */ 
    const onReset = async () => { 
        // // 1. 清空所有基础字段(不包含过滤模式字段)
        // const baseFields = formItems.reduce((acc, item) => {
        // acc[item.prop] = '';
        // return acc;
        // }, {});
        // 1. 清空所有基础字段(不包含过滤模式字段),应用基础字段初始值
        onResetForHighQuery(formItems,formData);
   
        // // 2. 应用基础字段初始值
        // formData.value = { ...baseFields };
        onResetForHighQuery(formItems,formData);
        // 2. 使用原有方法重置过滤模式字段
        onResetForHighSelect(formItems,formData);
   
        // 3. 使用原有方法重置过滤模式字段
        onResetForHighSelect(formItems,formData); // 保留原有方法调用
        // 4. 向父组件发送自定义事件
        // 3. 向父组件发送自定义事件
        ctx.emit('restQuery'); 
    } 
 
@@ -855,7 +821,7 @@
 
  } 
  commonQueryEnumForFrom() 
  onResetForHighSelect(formItems,formData);//重置公共select查询
  onResetForHighSelect(formItems,formData);//重置公共select查询
  /** 
   * 弹窗打开获取详情 
   */