loulijun2021
2023-12-05 2f45123bb9911c4dacf08b527482e4f855c988b8
src/views/systemSetting/dataImport.vue
@@ -12,9 +12,9 @@
      >
        <el-option
          v-for="item in excelArr"
          :key="item.fileCode"
          :label="item.fileName"
          :value="item.fileCode"
          :key="item.FileCode"
          :label="item.FileName"
          :value="item.FileCode"
        />
      </el-select>
@@ -128,7 +128,16 @@
                    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||
                    item.indexOf('产品编码')!==-1||
                    item.indexOf('标准编号')!==-1||
                    item.indexOf('项序号')!==-1||
                    item.indexOf('项要求')!==-1||
                    item.indexOf('计量单位/组名称')!==-1
                  "
@@ -161,6 +170,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 +398,10 @@
        { code: '1', name: '是' },
        { code: '0', name: '否' }
      ],
      stepTypeArr: [
        { code: 'Z', name: '自制' },
        { code: 'W', name: '外协' }
      ],
      orgArr: [], // 组织
      orgOptions: [],
      defaultProps: {
@@ -505,6 +534,64 @@
          j.uuid = nanoid()
        })
      }
      if (this.sheetName.indexOf('设备类型') !== -1) {
        this.statusArr = [
          { code: 'Y', name: '正常' },
          { code: 'N', name: '停用' }
        ]
        const orgArr = this.orgArr.map(i => i.torg_code)
        this.tableData[0].forEach(j => {
          j.uuid = nanoid()
        })
        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()
        })
      }
      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()
        })
      }
    },
    // 提交
    submit() {
@@ -565,6 +652,59 @@
              return this.$message.info(res.message)
            }
          }
          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)
            }
          }
          if (this.sheetName.indexOf('模具点检项目') !== -1) {
            const res = this.handleMouldCheckPosSubmitData()
            if (res.code !== '200') {
              return this.$message.info(res.message)
            }
          }
          if (this.sheetName.indexOf('模具点检标准') !== -1) {
            const res = this.handleMouldCheckStandSubmitData()
            if (res.code !== '200') {
              return this.$message.info(res.message)
            }
          }
          if (this.sheetName.indexOf('模具保养项目') !== -1) {
            const res = this.handleMouldMaintainSubmitData()
            if (res.code !== '200') {
              return this.$message.info(res.message)
            }
          }
          if (this.sheetName.indexOf('模具保养标准') !== -1) {
            const res = this.handleMouldMaintainStandSubmitData()
            if (res.code !== '200') {
              return this.$message.info(res.message)
            }
          }
          const data = {
            fileCode: this.excelCode,
@@ -604,6 +744,15 @@
            if (this.sheetName.indexOf('人员管理') !== -1) {
              this.handlePersonListUploadTemplate(false)
            }
            if (this.sheetName.indexOf('设备类型') !== -1) {
              this.tableData[0].forEach(j => {
                j.uuid = nanoid()
              })
              this.tableData[1].forEach(j => {
                j['*所属组织编码'] = this.findParent([], j['*所属组织编码'], this.orgOptions).reverse()
                j.uuid = nanoid()
              })
            }
          })
        })
        .catch(e => {
@@ -624,7 +773,7 @@
      const orgArr = this.orgArr.map(i => i.torg_code)
      // this.sheetName.indexOf('人员管理')
      // 第一次提交
      // 第一次渲染
      if (isFirstUpload) {
        this.tableData[0].forEach(j => {
          j['所属岗位编码'] = j['所属岗位编码'] ? j['所属岗位编码'].split(',').filter(e => postArr.includes(e)) : []
@@ -636,7 +785,7 @@
        })
      }
      // 非第一次提交
      // 非第一次渲染
      if (!isFirstUpload) {
        this.tableData[0].forEach(j => {
          j.所属岗位编码 = typeof j.所属岗位编码 === 'string' ? j.所属岗位编码.split(',').filter(e => postArr.includes(e)) : []
@@ -991,6 +1140,339 @@
      return { code: '200', message: '成功!' }
    },
    // 处理设备清单提交数据
    handleDeviceListSubmitData() {
      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['*设备编号(唯一)']) {
          flag = false
          msg = '*设备编号(唯一)不能为空!'
        }
        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[1].forEach(j => {
        j['*所属组织编码'] = j['*所属组织编码'][j['*所属组织编码'].length - 1]
      })
      this.tableData[0].map(item => {
        delete (item.uuid)
      })
      this.tableData[1].map(item => {
        delete (item.uuid)
      })
      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 = '*模具名称不能为空!'
        }
        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: '成功!' }
    },
    // 处理模具点检项目提交数据
    handleMouldCheckPosSubmitData() {
      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: '成功!' }
    },
    // 处理模具点检标准提交数据
    handleMouldCheckStandSubmitData() {
      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['*模具点检标准编号']) {
          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)
      })
      this.tableData[1].map(item => {
        delete (item.uuid)
      })
      return { code: '200', message: '成功!' }
    },
    // 处理模具保养项目提交数据
    handleMouldMaintainSubmitData() {
      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: '成功!' }
    },
    // 处理模具保养标准提交数据
    handleMouldMaintainStandSubmitData() {
      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['*模具保养标准编号']) {
          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)
      })
      this.tableData[1].map(item => {
        delete (item.uuid)
      })
      return { code: '200', message: '成功!' }
    },
    // parents:用于返回的数组,childNode:要查询的节点,treeData:json树形数据
    findParent(parents, childNode, treeData) {
      // console.log(parents, childNode, treeData, 2)
@@ -1104,10 +1586,10 @@
        })
      }
      // 存货档案
      if (this.sheetName.indexOf('存货类型') !== -1 && this.activeName === '0') {
      if (this.sheetName.indexOf('存货分类') !== -1 && this.activeName === '0') {
        this.tableData[0].unshift({
          uuid: nanoid(),
          '*存货分类编码(唯一)': '',
          '*存货分类编号(唯一)': '',
          '*存货分类名称': '',
          '上级编码': ''
        })
@@ -1115,7 +1597,7 @@
      if (this.sheetName.indexOf('存货') !== -1 && this.activeName === '1') {
        this.tableData[1].unshift({
          uuid: nanoid(),
          '*存货编码(唯一)': '',
          '*存货编号(唯一)': '',
          '*存货名称': '',
          '规格型号': '',
          '*存货分类编码': '',
@@ -1130,6 +1612,124 @@
          '是否委外': '0'
        })
      }
      // 设备清单
      if (this.sheetName.indexOf('设备类型') !== -1 && this.activeName === '0') {
        this.tableData[0].unshift({
          uuid: nanoid(),
          '*设备类型编号(唯一)': '',
          '*设备类型名称': '',
          '描述': ''
        })
      }
      if (this.sheetName.indexOf('设备清单') !== -1 && this.activeName === '1') {
        this.tableData[1].unshift({
          uuid: nanoid(),
          '*设备编号(唯一)': '',
          '*设备名称': '',
          '*所属组织编码': '',
          '设备类型编码': '',
          '*状态': '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(),
          '模具编码': '',
          '产品编码': ''
        })
      }
      //  模具点检项
      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(),
          '*模具点检标准编号(唯一)': '',
          '*模具点检标准名称': '',
          '标准描述': ''
        })
      }
      if (this.sheetName.indexOf('关联模具点检部位') !== -1 && this.activeName === '1') {
        this.tableData[1].unshift({
          uuid: nanoid(),
          '*模具点检标准编号': '',
          '*点检项序号': '',
          '*模具点检项编号(唯一)': '',
          '*模具点检项名称': '',
          '点检项要求': ''
        })
      }
      //  模具保养项
      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(),
          '*模具保养标准编号(唯一)': '',
          '*模具保养标准名称': '',
          '标准描述': ''
        })
      }
      if (this.sheetName.indexOf('关联模具保养部位') !== -1 && this.activeName === '1') {
        this.tableData[1].unshift({
          uuid: nanoid(),
          '*模具保养标准编号': '',
          '*保养项序号': '',
          '*模具保养项编号(唯一)': '',
          '*模具保养项名称': '',
          '保养项要求': ''
        })
      }
    },
    delRow(row) {
      // 针对单sheet