zhangherong
2025-06-07 3b6c930a4c8cbefa0b442bbec426a7b608220117
art: 设备管理-设备维修审批表单修改,维修、报修列表修改
已修改3个文件
324 ■■■■ 文件已修改
src/views/eam/repair/EamRepairOrderList.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/EamReportRepairList.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue 287 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/EamRepairOrderList.vue
@@ -123,23 +123,34 @@
        // 表头
        columns: [
          {
            title: '#',
            dataIndex: '',
            key: 'rowIndex',
            width: 60,
            align: 'center',
            customRender: function(t, r, index) {
              return parseInt(index) + 1
            },
            fixed: 'left',
          },
          {
            title: '工单编号',
            align: 'center',
            dataIndex: 'repairCode',
            width: 200,
            width: 120,
            fixed: 'left'
          },
          // {
          //   title: '报修编号',
          //   align: 'center',
          //   dataIndex: 'reportId',
          //   width: 200,
          //   fixed: 'left'
          // },
          {
            title: '设备编号',
            align: 'center',
            dataIndex: 'equipmentId_dictText',
            dataIndex: 'equipmentCode',
            width: 120,
            fixed: 'left'
          },
          {
            title: '设备名称',
            align: 'center',
            dataIndex: 'equipmentName',
            width: 200,
            fixed: 'left'
          },
src/views/eam/repair/EamReportRepairList.vue
@@ -178,7 +178,13 @@
          {
            title: '设备编号',
            align: 'center',
            dataIndex: 'equipmentId_dictText',
            dataIndex: 'equipmentCode',
            width: 200
          },
          {
            title: '设备名称',
            align: 'center',
            dataIndex: 'equipmentName',
            width: 200
          },
          {
src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue
@@ -57,45 +57,179 @@
          </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">
            <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*2">
                  <a-form-model-item label="故障原因" prop="faultReason">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_REPAIR'"
                  <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-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'"
                  <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="维修图片">
                  <a-form-model-item label="维修图片" :labelCol="labelColLong" :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*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-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">
                    <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*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-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">
                    <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*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-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">
                    <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 +250,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 +261,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',
@@ -215,11 +303,26 @@
          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: '请输入故障原因' }
@@ -240,13 +343,25 @@
      }
    },
    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)
      }
    },
@@ -313,14 +428,20 @@
        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, 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.repairDescription = repairDescription
            flowTaskVo.sparePartDescription = sparePartDescription
            flowTaskVo.imageFilesResult = imageFiles
            flowTaskVo.equipmentId = equipmentId
            flowTaskVo.id = dataId