zhaowei
2025-07-11 56148970959b7016cfe1c54ffa39dbd9bb9921ff
src/views/eam/equipment/modules/EamEquipmentModal.vue
@@ -24,7 +24,7 @@
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item prop="equipmentCode" label="统一编码">
                    <a-input placeholder="请输入统一编码" v-model="model.equipmentCode"/>
                    <a-input placeholder="请输入统一编码" v-model="model.equipmentCode" :disabled="!editable"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
@@ -33,21 +33,26 @@
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item prop="factoryOrgCode" label="使用部门">
                    <a-tree-select v-model="model.factoryOrgCode" style="width: 100%" show-search
                                   :tree-data="productionTreeData"
                                   :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
                                   placeholder="请选择使用部门" allow-clear treeNodeFilterProp="title"
                                   :replaceFields="{key:'orgCode',value:'orgCode'}"
                                   searchPlaceholder="请输入关键字搜索" tree-default-expand-all/>
                  <a-form-model-item label="型号">
                    <a-input placeholder="请输入型号" v-model="model.equipmentModel"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item prop="factoryOrgCode" label="使用部门">
                    <a-tree-select v-model="model.factoryOrgCode" style="width: 100%" show-search
                                   :tree-data="productionTreeData" :disabled="!editable"
                                   :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
                                   placeholder="请选择使用部门" allow-clear treeNodeFilterProp="title"
                                   :replaceFields="{key:'orgCode',value:'orgCode'}"
                                   searchPlaceholder="请输入关键字搜索" tree-default-expand-all/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item prop="equipmentCategory" label="所属分类">
                    <j-dict-select-tag dict-code="equipment_category" placeholder="请选择所属分类"
                    <j-dict-select-tag dict-code="equipment_category" placeholder="请选择所属分类" :disabled="!editable"
                                       v-model="model.equipmentCategory"/>
                  </a-form-model-item>
                </a-col>
@@ -58,17 +63,21 @@
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item prop="repairDepartOrgCode" label="维修班组">
                    <a-input placeholder="请选择维修班组" v-model="model.repairDepartOrgCode"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="安全配置">
                    <a-input placeholder="请输入安全配置" v-model="model.securityConfiguration"/>
                    <a-tree-select v-model="model.repairDepartOrgCode" style="width: 100%"
                                   show-search :tree-data="repairDepartTreeData" treeNodeFilterProp="title"
                                   :replaceFields="{key:'orgCode',value:'orgCode'}" searchPlaceholder="请输入关键字搜索"
                                   :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="请选择维修班组"
                                   allow-clear tree-default-expand-all/>
                  </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.securityConfiguration"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="冷却系统">
                    <j-dict-select-tag dict-code="cooling_system" placeholder="请选择冷却系统" v-model="model.coolSystem"/>
@@ -85,17 +94,18 @@
                             v-model="model.fireExtinguisherExpirationDate" placeholder="请输入灭火器有效期"/>
                  </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="yn " type="radio" v-model="model.operationSystem"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="系统">
                    <a-input placeholder="请输入系统" :disabled="Boolean(+model.operationSystem)" v-model="model.system"/>
                    <a-input placeholder="请输入系统" :disabled="!Boolean(+model.operationSystem)" v-model="model.system"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
@@ -109,14 +119,15 @@
                                    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%"/>
                  </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.weightUnit"/>
@@ -132,14 +143,14 @@
                    <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%"/>
                  </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.cardNumber"/>
@@ -155,14 +166,14 @@
                    <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"/>
                  </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.manufacturingEnterprise"/>
@@ -171,11 +182,6 @@
                <a-col :span="customSpan">
                  <a-form-model-item label="资产来源国家">
                    <a-input placeholder="请输入资产来源国家" v-model="model.originCountry"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="型号">
                    <a-input placeholder="请输入型号" v-model="model.equipmentModel"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
@@ -212,7 +218,8 @@
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="本次三保日期">
                    <a-date-picker v-model="model.latestThirdMaintenance" value-format="YYYY-MM-DD" style="width:100%"/>
                    <a-date-picker v-model="model.latestThirdMaintenance" value-format="YYYY-MM-DD"
                                   :disabled="!editable" style="width:100%"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
@@ -221,27 +228,34 @@
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="三保周期">
                    <a-input-number placeholder="请输入三保周期" v-model="model.thirdMaintenancePeriod" :min="0"
                  <a-form-model-item label="三保周期(年)">
                    <a-input-number placeholder="请输入三保周期(年)" v-model="model.thirdMaintenancePeriod" :min="1"
                                    style="width: 100%"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="本次技术鉴定日期">
                    <a-date-picker v-model="model.latestTechnologyCheck" value-format="YYYY-MM-DD" style="width:100%"/>
                  <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"
                                   :disabled="!editable" style="width:100%"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="下次技术鉴定日期">
                    <a-date-picker v-model="model.nextTechnologyCheck" value-format="YYYY-MM-DD" style="width:100%"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="技术鉴定周期">
                    <a-input-number placeholder="请输入技术鉴定周期" v-model="model.technologyCheckPeriod" :min="0"
                  <a-form-model-item label="技术鉴定周期(年)">
                    <a-input-number placeholder="请输入技术鉴定周期(年)" v-model="model.technologyCheckPeriod" :min="1"
                                    style="width: 100%"/>
                  </a-form-model-item>
                </a-col>
@@ -289,6 +303,9 @@
    name: 'EamEquipmentModal',
    props: {
      productionTreeData: {
        type: Array
      },
      repairDepartTreeData: {
        type: Array
      }
    },
@@ -343,12 +360,9 @@
        }
      }
    },
    created() {
      this.loadAllProductionTree()
    },
    methods: {
      add() {
        this.editable = false
        this.editable = true
        //初始化默认值
        this.model = {
          operationSystem: 1,
@@ -358,7 +372,7 @@
      },
      edit(record) {
        this.editable = true
        this.editable = false
        this.model = Object.assign({}, record)
        this.visible = true
      },
@@ -369,32 +383,34 @@
        this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true
            let httpurl = ''
            let httpUrl = ''
            let method = ''
            if (!this.model.id) {
              httpurl += this.url.add
              httpUrl += this.url.add
              method = 'post'
            } else {
              httpurl += this.url.edit
              httpUrl += this.url.edit
              method = 'put'
            }
            httpAction(httpurl, this.model, method).then((res) => {
              if (res.success) {
                that.$notification.success({
                  message: '消息',
                  description: res.message
                })
                that.$emit('ok')
                that.close()
              } else {
                that.$notification.warning({
                  message: '消息',
                  description: res.message
                })
              }
            }).finally(() => {
              that.confirmLoading = false
            })
            httpAction(httpUrl, this.model, method)
              .then((res) => {
                if (res.success) {
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  that.$emit('ok')
                  that.close()
                } else {
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                }
              })
              .finally(() => {
                that.confirmLoading = false
              })
          } else {
            return false
          }