hyingbo
2 天以前 a969670a0924bcc4a08eb20330239ff11afd2755
src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue
@@ -57,45 +57,367 @@
          </a-col>
        </a-row>
        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">是否需要领用备件</a-divider>
        <a-tabs v-model="activeTabKey">
          <a-tab-pane key="1" tab="领用备件">
            <a-row>
              <a-col :span="twoColSpan*2">
                <a-form-model-item label="是否需要领用备件" prop="isUseSpare">
                  <a-radio-group v-model="tableRowRecord.isUseSpare"
                                 :disabled="isDisableUseSpare">
                    <a-radio :value="1">是</a-radio>
                    <a-radio :value="0">否</a-radio>
                  </a-radio-group>
                </a-form-model-item>
              </a-col>
          <a-tab-pane key="1" tab="维修处理">
              <template v-if="tableRowRecord.isUseSpare===0">
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="故障原因" prop="faultReason">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_REPAIR'"
                             v-model="tableRowRecord.faultReason" rows="4"
                             placeholder="请输入故障原因"/>
            <div v-if="repairConfirm">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">维修确认</a-divider>
              <a-row :gutter="24">
                <a-col :span="12">
                  <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairConfirm" label="是否内部可维修">
                    <j-dict-select-tag type='radio' v-model='tableRowRecord.repairConfirm' dictCode='yn'
                                       placeholder="请选择" :disabled="disableSubmit || tableRowRecord.repairStatus !== 'WAIT_INTERNAL_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="12">
                  <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairConfirmComment" label="维修确认意见">
                    <a-textarea placeholder="请输入意见" v-model="tableRowRecord.repairConfirmComment"
                                :readOnly="disableSubmit || tableRowRecord.repairStatus !== 'WAIT_INTERNAL_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
            <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">
                  <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">
                    <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_REPAIR'"
                                v-model="tableRowRecord.repairDescription"
                                placeholder="请输入维修结果描述"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修图片">
                  <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_REPAIR'"
                               :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                               v-model="tableRowRecord.imageFiles"/>
                  </a-form-model-item>
                </a-col>
              </template>
            </a-row>
              </a-row>
            </div>
            <div v-if="leaderConfirm && tableRowRecord.repairConfirm === '0'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">领导确认</a-divider>
              <a-row :gutter="24">
                <a-col :span="12">
                  <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leaderConfirm" label="是否同意外部维修">
                    <j-dict-select-tag type='radio' v-model='tableRowRecord.leaderConfirm' dictCode='approved_rejected'
                                       placeholder="请选择" :disabled="disableSubmit || tableRowRecord.repairStatus!=='WAIT_LEADER_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="12">
                  <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leaderConfirmComment" label="确认意见">
                    <a-textarea placeholder="请输入意见" v-model="tableRowRecord.leaderConfirmComment"
                                :readOnly="disableSubmit || tableRowRecord.repairStatus!=='WAIT_LEADER_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
            <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">
                  <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="维修图片" :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"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
            <div v-if="externalConfirm && tableRowRecord.leaderConfirm === '1'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">机动办确认</a-divider>
              <a-row :gutter="24">
                <a-col :span="12">
                  <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="externalConfirm" label="机动办是否可维修">
                    <j-dict-select-tag type='radio' v-model='tableRowRecord.externalConfirm' dictCode='yn'
                                       placeholder="请选择" :disabled="disableSubmit||tableRowRecord.repairStatus!=='WAIT_EXTERNAL_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="12">
                  <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="externalConfirmComment" label="确认意见">
                    <a-textarea placeholder="请输入意见" v-model="tableRowRecord.externalConfirmComment"
                                :readOnly="disableSubmit || tableRowRecord.repairStatus!=='WAIT_EXTERNAL_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
            <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">
                  <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="维修图片" :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"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
            <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">
                  <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="维修图片" :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"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
            <div v-if="operatorConfirm">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">操作工确认</a-divider>
              <a-row :gutter="24">
                <a-col :span="24">
                  <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="confirmComment" label="确认意见">
                    <a-textarea placeholder="请输入意见" v-model="tableRowRecord.confirmComment"
                                :readOnly="disableSubmit || tableRowRecord.repairStatus!=='WAIT_CONFIRM'"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
            </div>
          </a-tab-pane>
          <template v-if="selectShenpiData.procInstId">
@@ -116,56 +438,10 @@
            </a-tab-pane>
            <a-tab-pane key='3' tab='流程图'>
              <img :src="imageSrc" alt="Fetched Image"/>-->
              <img :src="imageSrc" alt="Fetched Image"/>
            </a-tab-pane>
          </template>
        </a-tabs>
        <template v-if="tableRowRecord.isUseSpare===1&&isDisableUseSpare">
          <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 prop="sparePartDescription" label="备件描述">
                <a-textarea placeholder="请输入备件描述" :readOnly="disableSubmit||tableRowRecord.repairStatus!=='WAIT_SPARES'"
                            v-model="tableRowRecord.sparePartDescription"></a-textarea>
              </a-form-model-item>
            </a-col>
          </a-row>
        </template>
        <template v-if="Boolean(tableRowRecord.sparePartDescription)&&isDisplayRepairResult">
          <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">
                <a-input :readOnly="disableSubmit||isDisableSubmitRepairResult" v-model="tableRowRecord.faultReason"
                         rows="4" placeholder="请输入故障原因"/>
              </a-form-model-item>
            </a-col>
          </a-row>
          <a-row>
            <a-col :span="twoColSpan*2">
              <a-form-model-item label="维修结果描述" prop="repairDescription">
                <a-textarea :readOnly="disableSubmit||isDisableSubmitRepairResult"
                            v-model="tableRowRecord.repairDescription"
                            placeholder="请输入维修结果描述"/>
              </a-form-model-item>
            </a-col>
          </a-row>
          <a-row>
            <a-col :span="twoColSpan*2">
              <a-form-model-item label="维修图片">
                <lx-upload :disabled="disableSubmit||isDisableSubmitRepairResult" :returnUrl="false" :isMultiple="true"
                           file-type="image" :number="3"
                           v-model="tableRowRecord.imageFiles"/>
              </a-form-model-item>
            </a-col>
          </a-row>
        </template>
      </a-form-model>
    </a-spin>
  </j-modal>
@@ -173,8 +449,8 @@
<script>
  import '@assets/less/TableExpand.less'
  import { getAction, deleteAction, postAction, downFile, httpAction } from '@api/manage'
  import LxSearchEquipmentSelect from '../../../eam/equipment/modules/LxSearchEquipmentSelect'
  import { getAction, downFile, httpAction } from '@api/manage'
  import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect'
  export default {
    name: 'RepairOrderApprovalModal',
@@ -189,6 +465,9 @@
      return {
        title: '',
        threeColSpan: 8,
        faultPartDataList: [],
        faultChildPartDataList: [],
        repairDescriptionPartDataList: [],
        twoColSpan: 12,
        inputReadOnly: true,
        disableSubmit: false,
@@ -215,14 +494,41 @@
          sm: { span: 20 }
        },
        validatorRules: {
          isUseSpare: [
            { required: true, message: '请选择是否需要领用备件' }
          repairConfirm: [
            { required: true, message: '请选择是否内部可维修!' }
          ],
          sparePartDescription: [
            { required: true, message: '请输入备件描述' }
          repairConfirmComment: [
            { required: true, message: '请输入维修确认意见' }
          ],
          leaderConfirm: [
            { required: true, message: '请选择是否同意外部维修!' }
          ],
          leaderConfirmComment: [
            { required: true, message: '请输入领导确认意见' }
          ],
          externalConfirm: [
            { required: true, message: '请选择机动办是否可维修!' }
          ],
          externalConfirmComment: [
            { required: true, message: '请输入机动办确认意见' }
          ],
          confirmComment: [
            { required: true, message: '请输入操作工确认意见' }
          ],
          faultReason: [
            { required: true, message: '请输入故障原因' }
          ],
          faultType: [
            { required: true, message: '请选择故障类型' }
          ],
          faultPart: [
            { required: true, message: '请输入故障部位' }
          ],
          faultChildPart: [
            { required: true, message: '请输入故障子部位' }
          ],
          severity: [
            { required: true, message: '请选择严重程度' }
          ],
          repairDescription: [
            { required: true, message: '请输入维修结果描述' }
@@ -235,26 +541,135 @@
          queryBomDataById: '/eam/eamRepairOrder/queryById',
          diagramView: '/assign/flow/diagramView',
          queryHisTaskList: '/assign/flow/queryHisTaskList',
          approve: '/eam/eamRepairOrder/perform'
          approve: '/eam/eamRepairOrder/perform',
          getColumnDateList: '/repairWarehouse/repairWarehouse/getColumnDateList'
        }
      }
    },
    computed: {
      isDisableUseSpare() {
        return this.disableSubmit || this.tableRowRecord.repairStatus !== 'UNDER_REPAIR' || Boolean(this.tableRowRecord.sparePartDescription)
      repairConfirm() {
        return ['WAIT_INTERNAL_CONFIRM', 'UNDER_INTERNAL_REPAIR', 'WAIT_LEADER_CONFIRM', 'WAIT_EXTERNAL_CONFIRM', 'UNDER_EXTERNAL_REPAIR', 'UNDER_OUTSIDE_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      },
      isDisplayRepairResult() {
        return ['UNDER_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      underInternalRepair() {
        return ['UNDER_INTERNAL_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      },
      isDisableSubmitRepairResult() {
      leaderConfirm() {
        return ['UNDER_INTERNAL_REPAIR', 'WAIT_LEADER_CONFIRM', 'WAIT_EXTERNAL_CONFIRM', 'UNDER_EXTERNAL_REPAIR', 'UNDER_OUTSIDE_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      },
      externalConfirm() {
        return ['WAIT_EXTERNAL_CONFIRM', 'UNDER_EXTERNAL_REPAIR', 'UNDER_OUTSIDE_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      },
      underExternalRepair() {
        return ['UNDER_EXTERNAL_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      },
      underOutsideRepair() {
        return ['UNDER_OUTSIDE_REPAIR', 'WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      },
      operatorConfirm() {
        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)
@@ -313,14 +728,24 @@
        this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = that.spinning = true
            const { isUseSpare, faultReason, repairDescription, sparePartDescription, 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 = {}
            flowTaskVo.isUseSpare = isUseSpare
            flowTaskVo.repairConfirm = repairConfirm
            flowTaskVo.repairConfirmComment = repairConfirmComment
            flowTaskVo.leaderConfirm = leaderConfirm
            flowTaskVo.leaderConfirmComment = leaderConfirmComment
            flowTaskVo.externalConfirm = externalConfirm
            flowTaskVo.externalConfirmComment = externalConfirmComment
            flowTaskVo.confirmComment = confirmComment
            flowTaskVo.faultReason = faultReason
            flowTaskVo.faultType = faultType
            flowTaskVo.faultPart = faultPart
            flowTaskVo.faultChildPart = faultChildPart
            flowTaskVo.severity = severity
            flowTaskVo.repairDescription = repairDescription
            flowTaskVo.sparePartDescription = sparePartDescription
            flowTaskVo.imageFilesResult = imageFiles
            flowTaskVo.equipmentId = equipmentId
            flowTaskVo.id = dataId