zhaowei
3 天以前 926cbd6186778da6379d1c12ec149f82e5151e20
src/views/eam/equipment/modules/EamEquipmentModal.vue
@@ -12,7 +12,7 @@
    cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 设备基础信息
        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> 基础信息
        </a-divider>
        <a-row :gutter="24">
@@ -44,38 +44,34 @@
              </a-col>
              <a-col :span="8">
                <a-form-model-item prop="equipmentCategory"
                                   label="设备分类">
                  <j-dict-select-tag dict-code="equipment_category" placeholder="请选择设备分类"
                                   label="设备类别">
                  <j-dict-select-tag dict-code="equipment_category" placeholder="请选择设备类别"
                                     v-model="model.equipmentCategory" :disabled="disableSubmit" />
                </a-form-model-item>
              </a-col>
              <a-col :span="8">
                <a-form-model-item prop="operationSystem"
                                   label="操作系统">
                  <a-input :placeholder="disableSubmit?'':'请输入操作系统'" v-model="model.operationSystem" :disabled="disableSubmit" />
                <a-form-model-item prop="equipmentType"
                                   label="设备种类">
                  <j-tree-dict placeholder="请选择设备种类" v-model="model.equipmentType" parent-code="equipment_category" field="code" :async="true" :disabled="disableSubmit"></j-tree-dict>
                </a-form-model-item>
              </a-col>
            </a-row>
            <a-row>
              <a-col :span="8">
                <a-form-model-item prop="equipmentImportance"
                                   label="关键设备标识">
                  <lx-switch
                    checked-children='是'
                    un-checked-children='否'
                    v-model="model.equipmentImportance"
                    :disabled="disableSubmit"
                  />
                                   label="管理分类">
                  <j-dict-select-tag dict-code="equipment_abc_flag" placeholder="请选择管理分类"
                                     v-model="model.equipmentImportance" :disabled="disableSubmit" />
                </a-form-model-item>
              </a-col>
              <a-col :span="8">
                <a-form-model-item prop="equipmentPower" label="总功率">
                  <a-input :placeholder="disableSubmit?'':'请输入总功率'" v-model="model.equipmentPower" :disabled="disableSubmit"/>
                <a-form-model-item prop="originalValue" label="原值(元)">
                  <a-input :placeholder="disableSubmit?'':'请输入原值'" v-model="model.originalValue" :disabled="disableSubmit"/>
                </a-form-model-item>
              </a-col>
              <a-col :span="8">
                <a-form-model-item prop="cardNumber" label="立项卡号">
                  <a-input :placeholder="disableSubmit?'':'请输入立项卡号'" v-model="model.cardNumber" :disabled="disableSubmit"/>
                <a-form-model-item prop="fundingSource" label="资金来源">
                  <a-input :placeholder="disableSubmit?'':'请输入资金来源'" v-model="model.fundingSource" :disabled="disableSubmit"/>
                </a-form-model-item>
              </a-col>
            </a-row>
@@ -84,27 +80,62 @@
            <j-image-upload text="设备图片" bizPath="eam_equipment_image" v-model="model.equipmentImage"></j-image-upload>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-model-item prop="equipmentWeight" label="重量">
            <a-form-model-item prop="motorsNumber"
                               label="电机台数">
              <a-input-number :placeholder="disableSubmit?'':'请输入电机台数'" v-model="model.motorsNumber" :disabled="disableSubmit" style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="equipmentPower" label="总功率(KW)">
              <a-input :placeholder="disableSubmit?'':'请输入总功率'" v-model="model.equipmentPower" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="equipmentWeight" label="重量(吨)">
              <a-input :placeholder="disableSubmit?'':'请输入重量'" v-model="model.equipmentWeight" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="equipmentPort" label="设备端口">
              <a-input :placeholder="disableSubmit?'':'请输入设备端口'" v-model="model.equipmentPort" :disabled="disableSubmit"/>
            <a-form-model-item prop="overallDimensions" label="外形尺寸">
              <a-input :placeholder="disableSubmit?'':'请输入外形尺寸'" v-model="model.overallDimensions" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-model-item prop="technologyStatus" label="技术状态">
              <j-dict-select-tag dict-code="technology_status" placeholder="请选择技术状态"
                                 v-model="model.technologyStatus" :disabled="disableSubmit" />
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="coordinateNum" label="坐标数量">
              <a-input-number :placeholder="disableSubmit?'':'请输入坐标数量'" v-model="model.coordinateNum" style="width: 100%" :disabled="disableSubmit"/>
            <a-form-model-item prop="functionUse" label="功能用途">
              <a-input :placeholder="disableSubmit?'':'请输入功能用途'" v-model="model.functionUse" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="performanceIndicators" label="性能指标">
              <a-input :placeholder="disableSubmit?'':'请输入性能指标'" v-model="model.performanceIndicators" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="assetStatus" label="资产状态">
              <j-dict-select-tag dict-code="asset_status" v-model="model.assetStatus"
                                 disabled/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="equipmentUse" label="设备用途">
              <j-dict-select-tag dict-code="equipment_use" v-model="model.equipmentUse"
                                 placeholder="请选择设备用途" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="operator" label="操作工">
              <a-input :placeholder="disableSubmit?'':'请输入操作工'" v-model="model.operator" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
        </a-row>
@@ -119,41 +150,41 @@
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="originCountry" label="来源国家">
              <a-input :placeholder="disableSubmit?'':'请输入来源国家'" v-model="model.originCountry" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="supplier" label="设备供应商">
              <a-input :placeholder="disableSubmit?'':'请输入设备供应商'" v-model="model.supplier" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="manufacturingEnterprise" label="机床厂家">
              <a-input :placeholder="disableSubmit?'':'请输入机床厂家'" v-model="model.manufacturingEnterprise" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-model-item prop="leaveFactoryDate" label="出厂日期">
              <a-date-picker placeholder="请选择出厂日期" v-model="model.leaveFactoryDate" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="acceptanceCheckDate" label="验收日期">
              <a-date-picker placeholder="请选择验收日期" v-model="model.acceptanceCheckDate" :disabled="disableSubmit"/>
            <a-form-model-item prop="acceptanceCheckDate" label="投用日期">
              <a-date-picker placeholder="请选择投用日期" v-model="model.acceptanceCheckDate" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="bookingTime" label="入账时间">
              <a-date-picker placeholder="请选择入账时间" v-model="model.bookingTime" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="installationPosition" label="安装位置">
              <a-input :placeholder="disableSubmit?'':'请输入安装位置'" v-model="model.installationPosition" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-model-item prop="spindleConnectDimension" label="主轴连接尺寸">
              <a-input :placeholder="disableSubmit?'':'请输入主轴连接尺寸'" v-model="model.spindleConnectDimension" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="specialEquipment" label="是否特种设备">
              <lx-switch checked-children='是' un-checked-children='否' v-model="model.specialEquipment" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="manufacturingEnterprise" label="制造厂家">
              <a-input :placeholder="disableSubmit?'':'请输入制造厂家'" v-model="model.manufacturingEnterprise" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="originCountry" label="来源国家">
              <a-input :placeholder="disableSubmit?'':'请输入来源国家'" v-model="model.originCountry" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
        </a-row>
@@ -166,7 +197,7 @@
            <a-form-model-item prop="orgId" label="使用车间">
              <a-tree-select v-model="model.orgId"
                             style="width: 100%"
                             :tree-data="treeData"
                             :tree-data="treeDataAlias"
                             :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
                             placeholder="请选择使用车间"
                             allow-clear
@@ -177,37 +208,8 @@
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="equipmentManager" label="设备管理员">
              <j-search-select-tag  placeholder="请选择设备管理员" v-model="model.equipmentManager" dict="sys_user,realname, username, del_flag=0 and post='PCR0004' and status=1" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="technologyStatus" label="技术状态">
              <j-dict-select-tag dict-code="technology_status" placeholder="请选择技术状态"
                                 v-model="model.technologyStatus" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="mdcFlag" label="是否实施MDC">
              <lx-switch checked-children='是' un-checked-children='否' v-model="model.mdcFlag" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6" v-if="model.mdcFlag === '1'">
            <a-form-model-item prop="deviceType" label="MDC设备类型">
              <j-search-select-tag placeholder="请选择设备类型" v-model="model.deviceType" dict="mdc_equipment_type,equipment_type_name, equipment_type_name, equipment_type_states='Y'" :disabled="disableSubmit" />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-model-item prop="warrantyStartDate" label="质保开始日期">
              <a-date-picker :placeholder="disableSubmit?'':'请选择开始日期'" v-model="model.warrantyStartDate" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item prop="warrantyEndDate" label="质保结束日期">
              <a-date-picker :placeholder="disableSubmit?'':'请选择结束日期'" v-model="model.warrantyEndDate" :disabled="disableSubmit"/>
            <a-form-model-item prop="equipmentManager" label="设备责任人">
              <j-search-select-tag  placeholder="请选择设备责任人" v-model="model.equipmentManager" dict="sys_user,realname, username, del_flag=0 and post='PCR0004' and status=1" :disabled="disableSubmit"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
@@ -221,7 +223,6 @@
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="remark" label="备注">
@@ -278,22 +279,19 @@
          { required: true, message: '请输入设备名称' }
        ],
        equipmentCategory: [
          { required: true, message: '请选择设备分类' }
          { required: true, message: '请选择设备类别' }
        ],
        leaveFactoryDate: [
          { required: true, message: '请选择出厂日期' }
        ],
        acceptanceCheckDate: [
          { required: true, message: '请选择验收日期' }
        ],
        technologyStatus: [
          { required: true, message: '请选择技术状态' }
          { required: false, message: '请选择验收日期' }
        ],
        orgId: [
          { required: true, message: '请选择使用车间' }
        ],
        equipmentManager: [
          { required: true, message: '请选择设备管理员' }
          { required: true, message: '请选择设备责任人' }
        ],
        deviceType: [
          { required: false, message: '请选择设备类型' }
@@ -305,6 +303,7 @@
        loadProductionOptions:'/mdc/mdcProduction/loadProductionTreeOptions'
      },
      treeData: [],
      treeDataAlias: []
    }
  },
  created() {
@@ -366,11 +365,43 @@
      getAction(this.url.loadProductionOptions).then(res => {
        if (res.success) {
          this.treeData = [...res.result]
          this.treeDataAlias = this.deepCopyAndModify(res.result)
        }else {
          that.$message.warning(res.message)
        }
      })
    },
    deepCopyAndModify(arr) {
      // 如果当前元素不是数组或对象,直接返回
      if (!Array.isArray(arr) && typeof arr !== 'object' || arr === null || arr.length === 0) {
        return arr;
      }
      // 如果是数组,创建一个新数组并递归处理每个元素
      if (Array.isArray(arr)) {
        const newArray = [];
        for (let i = 0; i < arr.length; i++) {
          newArray.push(this.deepCopyAndModify(arr[i]));
        }
        return newArray;
      }
      // 如果是对象,创建一个新对象并递归处理每个属性
      const newObj = {};
      for (const key in arr) {
        if (arr.hasOwnProperty(key)) {
          if(key === 'selectable') {
            newObj[key] = true;
          } else if(key === 'children') {
            newObj[key] = this.deepCopyAndModify(arr[key]);
          }else {
            newObj[key] = arr[key];
          }
        }
      }
      return newObj;
    }
  }
}
</script>