loulijun2021
2023-10-13 0ac076bd5d4b37a63e250eb461c2cb6e9ea73eb6
src/views/systemSetting/dataImport.vue
@@ -129,6 +129,11 @@
                    item.indexOf('上级库位编码')!==-1||
                    item.indexOf('规格型号')!==-1||
                    item.indexOf('存货分类')!==-1||
                    item.indexOf('仓库编码')!==-1||
                    item.indexOf('预计寿命')!==-1||
                    item.indexOf('剩余寿命')!==-1||
                    item.indexOf('模具编码')!==-1||
                    item.indexOf('产品编码')!==-1||
                    item.indexOf('计量单位/组名称')!==-1
                  "
@@ -161,6 +166,22 @@
                  >
                    <el-option
                      v-for="item in meterMethodArr"
                      :key="item.code"
                      :label="item.name"
                      :value="item.code"
                    />
                  </el-select>
                </div>
                <div v-else-if="item.indexOf('工序类型')!==-1">
                  <el-select
                    v-model="row[item]"
                    placeholder="请选择"
                    filterable
                    style="width:100%"
                    clearable
                  >
                    <el-option
                      v-for="item in stepTypeArr"
                      :key="item.code"
                      :label="item.name"
                      :value="item.code"
@@ -373,6 +394,10 @@
        { code: '1', name: '是' },
        { code: '0', name: '否' }
      ],
      stepTypeArr: [
        { code: 'Z', name: '自制' },
        { code: 'W', name: '外协' }
      ],
      orgArr: [], // 组织
      orgOptions: [],
      defaultProps: {
@@ -507,8 +532,8 @@
      }
      if (this.sheetName.indexOf('设备类型') !== -1) {
        this.statusArr = [
          { code: '0', name: '正常' },
          { code: '1', name: '停用' }
          { code: 'Y', name: '正常' },
          { code: 'N', name: '停用' }
        ]
        const orgArr = this.orgArr.map(i => i.torg_code)
@@ -518,6 +543,33 @@
        this.tableData[1].forEach(j => {
          j['*状态'] = j['*状态'] ? this.statusArr.find(e => e.name === j['*状态']).code : ''
          j['*所属组织编码'] = j['*所属组织编码'] ? (orgArr.includes(j['*所属组织编码']) ? this.findParent([], j['*所属组织编码'], this.orgOptions).reverse() : '') : ''
          j.uuid = nanoid()
        })
      }
      if (this.sheetName.indexOf('工序设置') !== -1) {
        this.statusArr = [
          { code: 'Y', name: '正常' },
          { code: 'N', name: '停用' }
        ]
        this.tableData[0].forEach(j => {
          j['*状态'] = j['*状态'] ? this.statusArr.find(e => e.name === j['*状态']).code : ''
          j['*工序类型'] = j['*工序类型'] ? this.stepTypeArr.find(e => e.name === j['*工序类型']).code : ''
          j.uuid = nanoid()
        })
      }
      if (this.sheetName.indexOf('模具清单') !== -1) {
        this.statusArr = [
          { code: 'Y', name: '正常' },
          { code: 'N', name: '故障' }
        ]
        this.tableData[0].forEach(j => {
          j.uuid = nanoid()
          j['*状态'] = j['*状态'] ? this.statusArr.find(e => e.name === j['*状态']).code : ''
        })
        this.tableData[1].forEach(j => {
          j.uuid = nanoid()
        })
      }
@@ -583,6 +635,25 @@
          }
          if (this.sheetName.indexOf('设备类型') !== -1) {
            const res = this.handleDeviceListSubmitData()
            if (res.code !== '200') {
              return this.$message.info(res.message)
            }
          }
          if (this.sheetName.indexOf('工序设置') !== -1) {
            const res = this.handleProcessListSubmitData()
            if (res.code !== '200') {
              return this.$message.info(res.message)
            }
          }
          if (this.sheetName.indexOf('缺陷定义') !== -1) {
            const res = this.handleDefectDefineSubmitData()
            if (res.code !== '200') {
              return this.$message.info(res.message)
            }
          }
          if (this.sheetName.indexOf('模具清单') !== -1 && this.sheetName.indexOf('模具关联产品') !== -1) {
            const res = this.handleMouldListSubmitData()
            if (res.code !== '200') {
              return this.$message.info(res.message)
            }
@@ -1082,6 +1153,114 @@
      return { code: '200', message: '成功!' }
    },
    // 处理工序设置提交数据
    handleProcessListSubmitData() {
      let flag = true
      let msg = ''
      if ([...new Set(this.tableData[0].map(i => i['*工序编号(唯一)']))].length !== this.tableData[0].length) {
        return this.$message.info('编码不能重复!')
      }
      this.tableData[0].forEach(j => {
        if (!j['*工序编号(唯一)']) {
          flag = false
          msg = '*工序编号(唯一)'
        }
        if (!j['*工序名称']) {
          flag = false
          msg = '*工序名称'
        }
        if (!j['*工序类型']) {
          flag = false
          msg = '*工序类型'
        }
        if (!j['*状态']) {
          flag = false
          msg = '*状态'
        }
      })
      if (!flag) {
        return { code: '301', message: msg + '不能为空!' }
      }
      this.tableData[0].map(item => {
        delete (item.uuid)
      })
      return { code: '200', message: '成功!' }
    },
    // 处理缺陷定义提交数据
    handleDefectDefineSubmitData() {
      let flag = true
      let msg = ''
      if ([...new Set(this.tableData[0].map(i => i['*缺陷编号(唯一)']))].length !== this.tableData[0].length) {
        return this.$message.info('编码不能重复!')
      }
      this.tableData[0].forEach(j => {
        if (!j['*缺陷编号(唯一)']) {
          flag = false
          msg = '*缺陷编号(唯一)'
        }
        if (!j['*缺陷名称']) {
          flag = false
          msg = '*缺陷名称'
        }
      })
      if (!flag) {
        return { code: '301', message: msg + '不能为空!' }
      }
      this.tableData[0].map(item => {
        delete (item.uuid)
      })
      return { code: '200', message: '成功!' }
    },
    // 处理模具清单提交数据
    handleMouldListSubmitData() {
      let flag = true
      let msg = ''
      if ([...new Set(this.tableData[0].map(i => i['*模具编号(唯一)']))].length !== this.tableData[0].length) {
        return this.$message.info('模具清单编号不能重复!')
      }
      // if ([...new Set(this.tableData[1].map(i => i['*往来单位编号(唯一)']))].length !== this.tableData[1].length) {
      //   return this.$message.info('往来单位编号不能重复!')
      // }
      this.tableData[0].forEach(j => {
        if (!j['*模具编号(唯一)']) {
          flag = false
          msg = '*模具编号(唯一)不能为空!'
        }
        if (!j['*模具名称']) {
          flag = false
          msg = '*模具名称不能为空!'
        }
      })
      this.tableData[1].forEach(j => {
        if (!j['模具编码'] && j['产品编码']) {
          flag = false
          msg = '模具编码不能为空!'
        }
        if (j['模具编码'] && !j['产品编码']) {
          flag = false
          msg = '产品编码不能为空!'
        }
      })
      if (!flag) {
        return { code: '301', message: msg }
      }
      this.tableData[0].map(item => {
        delete (item.uuid)
      })
      this.tableData[1].map(item => {
        delete (item.uuid)
      })
      return { code: '200', message: '成功!' }
    },
    // parents:用于返回的数组,childNode:要查询的节点,treeData:json树形数据
    findParent(parents, childNode, treeData) {
@@ -1238,7 +1417,47 @@
          '*设备名称': '',
          '*所属组织编码': '',
          '设备类型编码': '',
          '*状态': '0'
          '*状态': 'Y'
        })
      }
      //  工序设置
      if (this.sheetName.indexOf('工序设置') !== -1) {
        this.tableData[0].unshift({
          uuid: nanoid(),
          '*工序编号(唯一)': '',
          '*工序名称': '',
          '*工序类型': 'Z',
          '*状态': 'Y',
          '描述': ''
        })
      }
      //  缺陷定义
      if (this.sheetName.indexOf('缺陷定义') !== -1) {
        this.tableData[0].unshift({
          uuid: nanoid(),
          '*缺陷编号(唯一)': '',
          '*缺陷名称': '',
          '缺陷描述': ''
        })
      }
      //  模具清单
      if (this.sheetName.indexOf('模具清单') !== -1 && this.activeName === '0') {
        this.tableData[0].unshift({
          uuid: nanoid(),
          '*模具编号(唯一)': '',
          '*模具名称': '',
          '规格型号': '',
          '*状态': 'Y',
          '*仓库编码': '',
          '预计寿命(次)': '',
          '剩余寿命(次)': ''
        })
      }
      if (this.sheetName.indexOf('模具关联产品') !== -1 && this.activeName === '1') {
        this.tableData[1].unshift({
          uuid: nanoid(),
          '模具编码': '',
          '产品编码': ''
        })
      }
    },