zhaowei
2025-07-25 31d62d0ac0bf6fdcb200ffeaa7b4e15aaf2d4946
src/views/eam/equipment/modules/EamEquipmentModal.vue
@@ -1,15 +1,8 @@
<template>
  <j-modal
    :title="title"
    fullscreen
    :visible="visible"
    centered
    :confirmLoading="confirmLoading"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭">
    <a-tabs tab-position="left">
  <j-modal :title="title" fullscreen :visible="visible" centered :confirmLoading="confirmLoading"
           :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" @ok="handleOk" @cancel="handleCancel"
           cancelText="关闭">
    <a-tabs tab-position="left" @change="handleTabChange">
      <a-tab-pane tab="基础信息" :key="1">
        <a-spin :spinning="confirmLoading">
          <j-form-container :disabled="disableSubmit">
@@ -85,7 +78,8 @@
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="灭火器">
                    <j-dict-select-tag dict-code="yn" type="radio" v-model="model.fireExtinguisher"/>
                    <j-dict-select-tag dict-code="yn" type="radio" v-model="model.fireExtinguisher"
                                       @change="handleRadioChange($event,'fireExtinguisherExpirationDate')"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
@@ -100,7 +94,8 @@
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="操作系统">
                    <j-dict-select-tag dict-code="yn " type="radio" v-model="model.operationSystem"/>
                    <j-dict-select-tag dict-code="yn " type="radio" v-model="model.operationSystem"
                                       @change="handleRadioChange($event,'system')"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
@@ -109,20 +104,24 @@
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="真空热处理炉">
                    <j-dict-select-tag dict-code="yn " type="radio" v-model="model.trueHeatTreatment"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="设备端口">
                    <a-input placeholder="请输入设备端口" v-model="model.equipmentPort"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="坐标数量">
                    <a-input-number placeholder="请输入坐标数量" v-model="model.coordinateNum" :min="0" :max="12"
                                    style="width: 100%"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="重量">
                    <a-input-number placeholder="请输入重量" v-model="model.equipmentWeight" :min="0" style="width: 100%"/>
@@ -138,14 +137,15 @@
                    <a-input placeholder="请输入功能位置" v-model="model.functionalLocation"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="安装位置">
                    <a-input placeholder="请输入安装位置" v-model="model.installationPosition"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="出厂日期">
                    <a-date-picker v-model="model.leaveFactoryDate" value-format="YYYY-MM-DD" style="width:100%"/>
@@ -161,14 +161,15 @@
                    <a-input placeholder="请输入资金来源" v-model="model.fundingSource"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="验收日期">
                    <a-date-picker v-model="model.acceptanceCheckDate" value-format="YYYY-MM-DD" style="width:100%"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="出厂编号">
                    <a-input placeholder="请输入出厂编号" v-model="model.factoryNumber"/>
@@ -184,14 +185,15 @@
                    <a-input placeholder="请输入资产来源国家" v-model="model.originCountry"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="设备规格">
                    <a-input placeholder="请输入设备规格" v-model="model.equipmentSpecification"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="总功率(KW)">
                    <a-input-number placeholder="请输入总功率(KW)" v-model="model.equipmentPower" :min="0"
@@ -208,14 +210,15 @@
                    <a-date-picker v-model="model.warrantyEndDate" value-format="YYYY-MM-DD" style="width:100%"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="资产状态">
                    <j-dict-select-tag dict-code="asset_status" placeholder="请选择资产状态" v-model="model.assetStatus"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="本次三保日期">
                    <a-date-picker v-model="model.latestThirdMaintenance" value-format="YYYY-MM-DD"
@@ -233,15 +236,16 @@
                                    style="width: 100%"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="技术状态">
                    <j-dict-select-tag placeholder="请选择技术状态" dict-code="equipment_technology_status"
                                       v-model="model.technologyStatus"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="本次技术鉴定日期">
                    <a-date-picker v-model="model.latestTechnologyCheck" value-format="YYYY-MM-DD"
@@ -266,29 +270,46 @@
      </a-tab-pane>
      <template v-if="disableSubmit">
        <a-tab-pane tab="设备文档" :key="2">
        <a-tab-pane tab="点检工单" :key="2" forceRender>
          <a-button type="primary" @click="navigateToPage('/eam/maintenance/EamInspectionOrderList')" icon="right"
                    style="margin-left: 24px">跳转至对应页面
          </a-button>
          <eam-inspection-order-list ref="tabPane2" :isDisplayOperation="false"/>
        </a-tab-pane>
        <a-tab-pane tab="点检工单" :key="3">
        <a-tab-pane tab="二保工单" :key="3" forceRender>
          <a-button type="primary" @click="navigateToPage('/eam/maintenance/EamSecondMaintenanceOrderList')" icon="right"
                    style="margin-left: 24px">跳转至对应页面
          </a-button>
          <eam-second-maintenance-order-list ref="tabPane3" :isDisplayOperation="false"/>
        </a-tab-pane>
        <a-tab-pane tab="二保工单" :key="4">
        <a-tab-pane tab="三保工单" :key="4" forceRender>
          <a-button type="primary" @click="navigateToPage('/eam/maintenance/EamThirdMaintenanceOrderList')" icon="right"
                    style="margin-left: 24px">跳转至对应页面
          </a-button>
          <eam-third-maintenance-order-list ref="tabPane4" :isDisplayOperation="false"/>
        </a-tab-pane>
        <a-tab-pane tab="三保工单" :key="5">
        <a-tab-pane tab="维修工单" :key="5" forceRender>
          <a-button type="primary" @click="navigateToPage('/eam/repair/EamRepairOrderList')" icon="right"
                    style="margin-left: 24px">跳转至对应页面
          </a-button>
          <eam-repair-order-list ref="tabPane5" :isDisplayOperation="false"/>
        </a-tab-pane>
        <a-tab-pane tab="维修工单" :key="6">
        <a-tab-pane tab="保养规范" :key="6" forceRender>
          <a-button type="primary" @click="navigateToPage('/eam/base/EamMaintenanceStandardList')" icon="right"
                    style="margin-left: 24px">跳转至对应页面
          </a-button>
          <eam-maintenance-standard-list ref="tabPane6" :isDisplayOperation="false"/>
        </a-tab-pane>
        <a-tab-pane tab="保养标准" :key="7">
        </a-tab-pane>
        <a-tab-pane tab="工艺参数" :key="8">
        </a-tab-pane>
        <a-tab-pane tab="设备精度" :key="9">
        <a-tab-pane tab="技术状态鉴定工单" :key="7" forceRender>
          <a-button type="primary" @click="navigateToPage('/eam/technical/order')" icon="right"
                    style="margin-left: 24px">跳转至对应页面
          </a-button>
          <eam-technical-status-evaluation-order-list ref="tabPane7" :isDisplayOperation="false"/>
        </a-tab-pane>
      </template>
    </a-tabs>
@@ -298,9 +319,23 @@
<script>
  import { getAction, httpAction } from '@/api/manage'
  import { validateDuplicateValueInDelFlag } from '@/utils/util'
  import EamInspectionOrderList from '../../maintenance/EamInspectionOrderList'
  import EamSecondMaintenanceOrderList from '../../maintenance/EamSecondMaintenanceOrderList'
  import EamThirdMaintenanceOrderList from '../../maintenance/EamThirdMaintenanceOrderList'
  import EamRepairOrderList from '../../repair/EamRepairOrderList'
  import EamMaintenanceStandardList from '../../base/EamMaintenanceStandardList'
  import EamTechnicalStatusEvaluationOrderList from '../../technical/EamTechnicalStatusEvaluationOrderList'
  export default {
    name: 'EamEquipmentModal',
    components: {
      EamTechnicalStatusEvaluationOrderList,
      EamMaintenanceStandardList,
      EamRepairOrderList,
      EamThirdMaintenanceOrderList,
      EamSecondMaintenanceOrderList,
      EamInspectionOrderList
    },
    props: {
      productionTreeData: {
        type: Array
@@ -366,7 +401,8 @@
        //初始化默认值
        this.model = {
          operationSystem: 1,
          fireExtinguisher: 0
          fireExtinguisher: 0,
          trueHeatTreatment: 0
        }
        this.visible = true
      },
@@ -375,6 +411,26 @@
        this.editable = false
        this.model = Object.assign({}, record)
        this.visible = true
      },
      /**\
       * 单选框值发生改变时触发
       * @param value 单选框值
       * @param key 单选框关联字段
       */
      handleRadioChange(value, key) {
        if (value === '0') delete this.model[key]
      },
      /**
       * 标签栏发生改变时触发
       * @param tabKey 切换后的tabKey
       */
      handleTabChange(tabKey) {
        if (tabKey !== 1 && this.$refs['tabPane' + tabKey]) {
          this.$refs['tabPane' + tabKey].queryParam.equipmentId = this.model.id
          this.$refs['tabPane' + tabKey].loadData(1)
        }
      },
      handleOk() {
@@ -417,6 +473,10 @@
        })
      },
      navigateToPage(href) {
        this.$router.push(href)
      },
      handleCancel() {
        this.close()
      },