hyingbo
2 天以前 a969670a0924bcc4a08eb20330239ff11afd2755
故障报修流程审批节点字段调整
已添加3个文件
已修改1个文件
803 ■■■■■ 文件已修改
src/views/eam/base/RepairWarehouseList.vue 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/RepairWarehouseForm.vue 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/RepairWarehouseModal.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue 416 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/RepairWarehouseList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,195 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="故障类型">
              <j-dict-select-tag dict-code="repair_warehouse_fault_type" v-model="queryParam.faultType"
                                 placeholder="请选择故障类型"/>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="故障部位">
              <a-input placeholder="请输入故障部位" v-model="queryParam.faultPart"></a-input>
            </a-form-item>
          </a-col>
          <template v-if="toggleSearchStatus">
            <a-col :xl="6" :lg="7" :md="8" :sm="24">
              <a-form-item label="故障子部位">
                <a-input placeholder="请输入故障子部位" v-model="queryParam.faultChildPart"></a-input>
              </a-form-item>
            </a-col>
            <a-col :xl="6" :lg="7" :md="8" :sm="24">
              <a-form-item label="维修描述">
                <a-input placeholder="请输入维修描述" v-model="queryParam.repairDescription"></a-input>
              </a-form-item>
            </a-col>
          </template>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
              <a @click="handleToggleSearch" style="margin-left: 8px">
                {{ toggleSearchStatus ? '收起' : '展开' }}
                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
              </a>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- æŸ¥è¯¢åŒºåŸŸ-END -->
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('维修知识库')">导出</a-button>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ <a-icon type="down" /></a-button>
      </a-dropdown>
    </div>
    <!-- table区域-begin -->
    <div style="height: auto">
      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹© <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      </div>
      <a-table
        ref="table"
        size="middle"
        :scroll="{x:true}"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        class="j-table-force-nowrap"
        @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a @click="handleDetail(record)">详情</a>
              </a-menu-item>
              <a-menu-item>
                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
        </span>
      </a-table>
    </div>
    <repair-warehouse-modal ref="modalForm" @ok="modalFormOk"></repair-warehouse-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import { mixinDevice } from '@/utils/mixin'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import RepairWarehouseModal from './modules/RepairWarehouseModal'
  export default {
    name: 'RepairWarehouseList',
    mixins:[JeecgListMixin, mixinDevice],
    components: {
      RepairWarehouseModal
    },
    data () {
      return {
        description: 'eam_repair_warehouse管理页面',
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
          },
          {
            title:'故障类型',
            align:"center",
            dataIndex: 'faultType_dictText'
          },
          {
            title:'故障部位',
            align:"center",
            dataIndex: 'faultPart'
          },
          {
            title:'故障子部位',
            align:"center",
            dataIndex: 'faultChildPart'
          },
          {
            title:'维修描述',
            align:"center",
            dataIndex: 'repairDescription'
          },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            fixed:"right",
            width:147,
            scopedSlots: { customRender: 'action' }
          }
        ],
        url: {
          list: "/repairWarehouse/repairWarehouse/list",
          delete: "/repairWarehouse/repairWarehouse/delete",
          deleteBatch: "/repairWarehouse/repairWarehouse/deleteBatch",
          exportXlsUrl: "/repairWarehouse/repairWarehouse/exportXls",
        },
        dictOptions:{},
        superFieldList:[],
      }
    },
    created() {
    this.getSuperFieldList();
    },
    computed: {
      importExcelUrl: function(){
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
      },
    },
    methods: {
      initDictConfig(){
      },
      getSuperFieldList(){
        let fieldList=[];
        fieldList.push({type:'string',value:'faultType',text:'故障类型',dictCode:''})
        fieldList.push({type:'string',value:'faultPart',text:'故障部位',dictCode:''})
        fieldList.push({type:'string',value:'faultChildPart',text:'故障子部位',dictCode:''})
        fieldList.push({type:'string',value:'repairDescription',text:'维修描述',dictCode:''})
        this.superFieldList = fieldList
      }
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/eam/base/modules/RepairWarehouseForm.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,132 @@
<template>
  <a-spin :spinning="confirmLoading">
    <j-form-container :disabled="formDisabled">
      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
        <a-row>
          <a-col :span="24">
            <a-form-model-item label="故障类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="faultType">
              <j-dict-select-tag dict-code="repair_warehouse_fault_type    " v-model="model.faultType"
                                 placeholder="请选择故障类型"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="故障部位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="faultPart">
              <a-input v-model="model.faultPart" placeholder="请输入故障部位"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="故障子部位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="faultChildPart">
              <a-input v-model="model.faultChildPart" placeholder="请输入故障子部位"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairDescription">
              <a-input v-model="model.repairDescription" placeholder="请输入维修描述"  ></a-input>
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </j-form-container>
  </a-spin>
</template>
<script>
  import { httpAction, getAction } from '@/api/manage'
  import { validateDuplicateValue } from '@/utils/util'
  export default {
    name: 'RepairWarehouseForm',
    components: {
    },
    props: {
      //表单禁用
      disabled: {
        type: Boolean,
        default: false,
        required: false
      }
    },
    data () {
      return {
        model:{
         },
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules: {
           faultType: [
              { required: true, message: '请输入故障类型!'},
           ],
           faultPart: [
              { required: true, message: '请输入故障部位!'},
           ],
           faultChildPart: [
              { required: true, message: '请输入故障子部位!'},
           ],
           repairDescription: [
              { required: true, message: '请输入维修描述!'},
           ],
        },
        url: {
          add: "/repairWarehouse/repairWarehouse/add",
          edit: "/repairWarehouse/repairWarehouse/edit",
          queryById: "/repairWarehouse/repairWarehouse/queryById"
        }
      }
    },
    computed: {
      formDisabled(){
        return this.disabled
      },
    },
    created () {
       //备份model原始值
      this.modelDefault = JSON.parse(JSON.stringify(this.model));
    },
    methods: {
      add () {
        this.edit(this.modelDefault);
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      submitForm () {
        const that = this;
        // è§¦å‘表单验证
        this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true;
            let httpurl = '';
            let method = '';
            if(!this.model.id){
              httpurl+=this.url.add;
              method = 'post';
            }else{
              httpurl+=this.url.edit;
               method = 'put';
            }
            httpAction(httpurl,this.model,method).then((res)=>{
              if(res.success){
                that.$message.success(res.message);
                that.$emit('ok');
              }else{
                that.$message.warning(res.message);
              }
            }).finally(() => {
              that.confirmLoading = false;
            })
          }
        })
      },
    }
  }
</script>
src/views/eam/base/modules/RepairWarehouseModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
<template>
  <j-modal
    :title="title"
    :width="width"
    :visible="visible"
    switchFullscreen
    @ok="handleOk"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @cancel="handleCancel"
    cancelText="关闭">
    <repair-warehouse-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></repair-warehouse-form>
  </j-modal>
</template>
<script>
  import RepairWarehouseForm from './RepairWarehouseForm'
  export default {
    name: 'RepairWarehouseModal',
    components: {
      RepairWarehouseForm
    },
    data () {
      return {
        title:'',
        width:800,
        visible: false,
        disableSubmit: false
      }
    },
    methods: {
      add () {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.add();
        })
      },
      edit (record) {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.edit(record);
        })
      },
      close () {
        this.$emit('close');
        this.visible = false;
      },
      handleOk () {
        this.$refs.realForm.submitForm();
      },
      submitCallback(){
        this.$emit('ok');
        this.visible = false;
      },
      handleCancel () {
        this.close()
      }
    }
  }
</script>
src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue
@@ -81,22 +81,69 @@
            <div v-if="underInternalRepair && tableRowRecord.repairConfirm === '1'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">维修结果</a-divider>
              <a-row>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="故障原因" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                             v-model="tableRowRecord.faultReason" rows="4"
                             placeholder="请输入故障原因"/>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障类型" prop="faultType" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                             v-model="tableRowRecord.faultType" rows="4" dictCode="repair_warehouse_fault_type"
                             placeholder="请选择故障类型"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障部位" prop="faultPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultPart"
                      :data-source="faultPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                      placeholder="请输入故障部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultPartList"
                    @input="fetchFaultPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障子部位" prop="faultChildPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultChildPart"
                      :data-source="faultChildPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                      placeholder="请输入故障子部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultChildPartList"
                    @input="fetchFaultChildPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="严重程度" prop="severity" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                                       v-model="tableRowRecord.severity" rows="4" dictCode="repair_severity"
                                       placeholder="请选择严重程度"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="24">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <a-auto-complete
                      :data-source="repairDescriptionPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                      :filter-option="filterOption"
                      :allowClear="true"
                      v-model="tableRowRecord.repairDescription"
                    >
                      <a-textarea
                        placeholder="请输入维修结果描述"
                        class="custom"
                        @focus="fetchRepairDescList"
                      @input="fetchRepairDescList"
                      />
                    </a-auto-complete>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                                v-model="tableRowRecord.repairDescription"
                                placeholder="请输入维修结果描述"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                  <a-form-model-item label="维修图片" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                               :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                               v-model="tableRowRecord.imageFiles"/>
@@ -125,22 +172,69 @@
            <div v-if="underInternalRepair && tableRowRecord.leaderConfirm === '2'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">维修结果</a-divider>
              <a-row>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="故障原因" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                             v-model="tableRowRecord.faultReason" rows="4"
                             placeholder="请输入故障原因"/>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障类型" prop="faultType" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                                       v-model="tableRowRecord.faultType" rows="4" dictCode="repair_warehouse_fault_type"
                                       placeholder="请选择故障类型"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障部位" prop="faultPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultPart"
                      :data-source="faultPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                      placeholder="请输入故障部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultPartList"
                      @input="fetchFaultPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障子部位" prop="faultChildPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultChildPart"
                      :data-source="faultChildPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                      placeholder="请输入故障子部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultChildPartList"
                      @input="fetchFaultChildPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="严重程度" prop="severity" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                                       v-model="tableRowRecord.severity" rows="4" dictCode="repair_severity"
                                       placeholder="请选择严重程度"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="24">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <a-auto-complete
                      :data-source="repairDescriptionPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                      :filter-option="filterOption"
                      :allowClear="true"
                      v-model="tableRowRecord.repairDescription"
                    >
                      <a-textarea
                        placeholder="请输入维修结果描述"
                        class="custom"
                        @focus="fetchRepairDescList"
                        @input="fetchRepairDescList"
                      />
                    </a-auto-complete>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                                v-model="tableRowRecord.repairDescription"
                                placeholder="请输入维修结果描述"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                  <a-form-model-item label="维修图片" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                               :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                               v-model="tableRowRecord.imageFiles"/>
@@ -169,22 +263,69 @@
            <div v-if="underExternalRepair && tableRowRecord.externalConfirm === '1'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">机动办维修结果</a-divider>
              <a-row>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="故障原因" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                             v-model="tableRowRecord.faultReason" rows="4"
                             placeholder="请输入故障原因"/>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障类型" prop="faultType" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                                       v-model="tableRowRecord.faultType" rows="4" dictCode="repair_warehouse_fault_type"
                                       placeholder="请选择故障类型"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障部位" prop="faultPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultPart"
                      :data-source="faultPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                      placeholder="请输入故障部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultPartList"
                      @input="fetchFaultPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障子部位" prop="faultChildPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultChildPart"
                      :data-source="faultChildPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                      placeholder="请输入故障子部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultChildPartList"
                      @input="fetchFaultChildPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="严重程度" prop="severity" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                                       v-model="tableRowRecord.severity" rows="4" dictCode="repair_severity"
                                       placeholder="请选择严重程度"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="24">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <a-auto-complete
                      :data-source="repairDescriptionPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                      :filter-option="filterOption"
                      :allowClear="true"
                      v-model="tableRowRecord.repairDescription"
                    >
                      <a-textarea
                        placeholder="请输入维修结果描述"
                        class="custom"
                        @focus="fetchRepairDescList"
                        @input="fetchRepairDescList"
                      />
                    </a-auto-complete>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                                v-model="tableRowRecord.repairDescription"
                                placeholder="请输入维修结果描述"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                  <a-form-model-item label="维修图片" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                               :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                               v-model="tableRowRecord.imageFiles"/>
@@ -195,22 +336,69 @@
            <div v-if="underOutsideRepair && tableRowRecord.externalConfirm === '0'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">委外维修结果</a-divider>
              <a-row>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="故障原因" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                             v-model="tableRowRecord.faultReason" rows="4"
                             placeholder="请输入故障原因"/>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障类型" prop="faultType" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                                       v-model="tableRowRecord.faultType" rows="4" dictCode="repair_warehouse_fault_type"
                                       placeholder="请选择故障类型"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障部位" prop="faultPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultPart"
                      :data-source="faultPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                      placeholder="请输入故障部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultPartList"
                      @input="fetchFaultPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障子部位" prop="faultChildPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultChildPart"
                      :data-source="faultChildPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                      placeholder="请输入故障子部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultChildPartList"
                      @input="fetchFaultChildPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="严重程度" prop="severity" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                                       v-model="tableRowRecord.severity" rows="4" dictCode="repair_severity"
                                       placeholder="请选择严重程度"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="24">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <a-auto-complete
                      :data-source="repairDescriptionPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                      :filter-option="filterOption"
                      :allowClear="true"
                      v-model="tableRowRecord.repairDescription"
                    >
                      <a-textarea
                        placeholder="请输入维修结果描述"
                        class="custom"
                        @focus="fetchRepairDescList"
                        @input="fetchRepairDescList"
                      />
                    </a-auto-complete>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                                v-model="tableRowRecord.repairDescription"
                                placeholder="请输入维修结果描述"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                  <a-form-model-item label="维修图片" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                               :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                               v-model="tableRowRecord.imageFiles"/>
@@ -277,6 +465,9 @@
      return {
        title: '',
        threeColSpan: 8,
        faultPartDataList: [],
        faultChildPartDataList: [],
        repairDescriptionPartDataList: [],
        twoColSpan: 12,
        inputReadOnly: true,
        disableSubmit: false,
@@ -327,6 +518,18 @@
          faultReason: [
            { required: true, message: '请输入故障原因' }
          ],
          faultType: [
            { required: true, message: '请选择故障类型' }
          ],
          faultPart: [
            { required: true, message: '请输入故障部位' }
          ],
          faultChildPart: [
            { required: true, message: '请输入故障子部位' }
          ],
          severity: [
            { required: true, message: '请选择严重程度' }
          ],
          repairDescription: [
            { required: true, message: '请输入维修结果描述' }
          ]
@@ -338,7 +541,8 @@
          queryBomDataById: '/eam/eamRepairOrder/queryById',
          diagramView: '/assign/flow/diagramView',
          queryHisTaskList: '/assign/flow/queryHisTaskList',
          approve: '/eam/eamRepairOrder/perform'
          approve: '/eam/eamRepairOrder/perform',
          getColumnDateList: '/repairWarehouse/repairWarehouse/getColumnDateList'
        }
      }
    },
@@ -365,11 +569,107 @@
        return ['WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      }
    },
    watch: {
    },
    methods: {
      /**
       * èŽ·å–æµç¨‹èŠ‚ç‚¹å’Œæµç¨‹å›¾
       * @param record å¾…办记录信息
       * 1. æŸ¥è¯¢æ•…障部位列表(根据故障类型筛选)
       */
      fetchFaultPartList() {
        const that = this
        // ç­›é€‰å‚数:仅携带已选中的故障类型(未选中则参数为空)
        const params = {
          faultType: that.tableRowRecord.faultType || '',
          column: "fault_part"
        }
        // è°ƒç”¨æŽ¥å£ï¼ˆä½¿ç”¨é¡¹ç›®å°è£…çš„ getAction)
        getAction(this.url.getColumnDateList, params)
          .then(res => {
            if (res.success) {
              // æŽ¥å£è¿”回格式假设为:[{ label: "部位1", value: "1" }, ...]
              // è‹¥æŽ¥å£è¿”回是纯数组(如 ["部位1", "部位2"]),则直接赋值:that.faultPartDataList = res.result
              that.faultPartDataList = res.result
            } else {
              that.$message.warning('故障部位查询失败:' + res.message)
              that.faultPartDataList = []  // å¤±è´¥æ—¶æ¸…空数据源
            }
          })
          .catch(err => {
            that.$message.error('故障部位查询异常:' + err.message)
            that.faultPartDataList = []
          })
      },
      /**
       * 2. æŸ¥è¯¢æ•…障子部位列表(根据故障类型 + æ•…障部位筛选)
       */
      fetchFaultChildPartList() {
        const that = this
        const { faultType, faultPart } = that.tableRowRecord
        // ç­›é€‰å‚数:仅当故障类型、故障部位均非空时才携带
        const params = {}
        if (faultType) params.faultType = faultType
        if (faultPart) params.faultPart = faultPart
        params.column = "fault_child_part"
        // è°ƒç”¨æŽ¥å£
        getAction(this.url.getColumnDateList, params)
          .then(res => {
            if (res.success) {
              that.faultChildPartDataList = res.result
            } else {
              that.$message.warning('故障子部位查询失败:' + res.message)
              that.faultChildPartDataList = []
            }
          })
          .catch(err => {
            that.$message.error('故障子部位查询异常:' + err.message)
            that.faultChildPartDataList = []
          })
      },
      /**
       * 3. æŸ¥è¯¢æ•…障描述列表(根据故障类型 + æ•…障部位 + æ•…障子部位筛选)
       */
      fetchRepairDescList() {
        const that = this
        const { faultType, faultPart, faultChildPart } = that.tableRowRecord
        // ç­›é€‰å‚数:仅当三个条件均非空时才携带
        const params = {}
        if (faultType) params.faultType = faultType
        if (faultPart) params.faultPart = faultPart
        if (faultChildPart) params.faultChildPart = faultChildPart
        params.column = "repair_description"
        // è°ƒç”¨æŽ¥å£
        getAction(this.url.getColumnDateList, params)
          .then(res => {
            if (res.success) {
              that.repairDescriptionPartDataList = res.result
            } else {
              that.$message.warning('故障描述查询失败:' + res.message)
              that.repairDescriptionPartDataList = []
            }
          })
          .catch(err => {
            that.$message.error('故障描述查询异常:' + err.message)
            that.repairDescriptionPartDataList = []
          })
      },
      /**
       * è”想输入框筛选功能
       * @param input è¾“入的内容
       * @param option é…ç½®
       * @returns {boolean} åˆ¤æ–­æ˜¯å¦ç­›é€‰
       */
      filterOption(input, option) {
        return (
          option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0
        )
      },
      getAllApproveData(record) {
        if (!record.procInstId) return
        console.log('record----->', record)
@@ -428,7 +728,7 @@
        this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = that.spinning = true
            const { confirmComment, externalConfirm, externalConfirmComment, repairConfirm, repairConfirmComment, leaderConfirm, leaderConfirmComment, faultReason, repairDescription, imageFiles, equipmentId } = that.tableRowRecord
            const { confirmComment, externalConfirm, externalConfirmComment, repairConfirm, repairConfirmComment, leaderConfirm, leaderConfirmComment, faultReason, faultType, faultPart, faultChildPart, severity, repairDescription, imageFiles, equipmentId } = that.tableRowRecord
            const { dataId, id, procInstId, taskDefKey, variables } = that.selectShenpiData
            const flowTaskVo = {}
@@ -441,6 +741,10 @@
            flowTaskVo.confirmComment = confirmComment
            flowTaskVo.faultReason = faultReason
            flowTaskVo.faultType = faultType
            flowTaskVo.faultPart = faultPart
            flowTaskVo.faultChildPart = faultChildPart
            flowTaskVo.severity = severity
            flowTaskVo.repairDescription = repairDescription
            flowTaskVo.imageFilesResult = imageFiles
            flowTaskVo.equipmentId = equipmentId