loulijun2021
2023-09-18 2aa25263601a88190319093b59e3a2f4dde01583
src/views/systemSetting/dataImport.vue
@@ -70,7 +70,7 @@
      style="margin: 10px"
    >
      <el-tabs v-model="activeName" type="border-card" @tab-click="handleTabClick">
      <el-tabs v-model="activeName" type="border-card">
        <el-tab-pane
          v-for="(i,j) in sheetName"
          :key="i+j"
@@ -124,7 +124,13 @@
                    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
                  "
                >
                  <el-input v-model="row[item]" placeholder="请输入" />
@@ -139,6 +145,31 @@
                  >
                    <el-option
                      v-for="item in statusArr"
                      :key="item.code"
                      :label="item.name"
                      :value="item.code"
                    />
                  </el-select>
                </div>
                <div
                  v-else-if="
                    item.indexOf('库位管理')!==-1||
                      item.indexOf('是否外购')!==-1||
                      item.indexOf('是否销售')!==-1||
                      item.indexOf('是否自制')!==-1||
                      item.indexOf('是否生产消耗')!==-1||
                      item.indexOf('是否委外')!==-1
                  "
                >
                  <el-select
                    v-model="row[item]"
                    placeholder="请选择"
                    filterable
                    style="width:100%"
                    clearable
                  >
                    <el-option
                      v-for="item in isYesOrNo"
                      :key="item.code"
                      :label="item.name"
                      :value="item.code"
@@ -276,7 +307,7 @@
          <el-table-column
            prop="errorField"
            label="错误字段"
            width="160"
            show-overflow-tooltip
          />
          <el-table-column
@@ -322,6 +353,10 @@
      excelArr: [],
      statusArr: [],
      isYesOrNo: [
        { code: '1', name: '是' },
        { code: '0', name: '否' }
      ],
      orgArr: [], // 组织
      orgOptions: [],
      defaultProps: {
@@ -418,6 +453,18 @@
        })
      }
      if (this.sheetName.indexOf('仓库设置') !== -1) {
        this.statusArr = [
          { code: '0', name: '正常' },
          { code: '1', name: '停用' }
        ]
        this.tableData[0].forEach(j => {
          j['*状态'] = j['*状态'] ? this.statusArr.find(e => e.name === j['*状态']).code : ''
          j['*库位管理'] = j['*库位管理'] ? this.isYesOrNo.find(e => e.name === j['*库位管理']).code : ''
          j.uuid = nanoid()
        })
      }
      // console.log(this.sheetName)
      // console.log(this.tableData)
      // console.log(this.tableHeader)
@@ -457,6 +504,20 @@
          }
          if (this.sheetName.indexOf('往来单位类型') !== -1 && this.sheetName.indexOf('往来单位') !== -1) {
            const res = this.handleContactUnitListSubmitData()
            if (res.code !== '200') {
              return this.$message.info(res.message)
            }
          }
          if (this.sheetName.indexOf('仓库设置') !== -1) {
            const res = this.handleWarehouseListSubmitData()
            if (res.code !== '200') {
              return this.$message.info(res.message)
            }
          }
          if (this.sheetName.indexOf('库位设置') !== -1) {
            const res = this.handleStorageListSubmitData()
            if (res.code !== '200') {
              return this.$message.info(res.message)
            }
@@ -743,6 +804,87 @@
      return { code: '200', message: '成功!' }
    },
    // 处理仓库设置提交数据
    handleWarehouseListSubmitData() {
      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: '成功!' }
    },
    // 处理库位设置提交数据
    handleStorageListSubmitData() {
      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 (j['上级库位编码'] === j['*库位编号(唯一)']) {
          flag = false
          msg = '*库位编号(唯一)与上级库位编码不能相同!'
        }
      })
      if (!flag) {
        return { code: '301', message: msg }
      }
      this.tableData[0].map(item => {
        delete (item.uuid)
      })
      return { code: '200', message: '成功!' }
    },
    // 处理存货档案提交数据
    handleInventoryListSubmitData() {
    },
    // 获取模板
    async getExcelModelData() {
      const { data: res } = await ExcelModelData()
@@ -757,7 +899,6 @@
      const res = await DownLoadExcel({ FileCode: this.excelCode })
      window.location.href = res.data
    },
    handleClose() {
      this.dialogTableData = []
    },
@@ -829,6 +970,7 @@
          '描述': ''
        })
      }
      // 往来单位
      if (this.sheetName.indexOf('往来单位类型') !== -1 && this.activeName === '0') {
        this.tableData[0].unshift({
          uuid: nanoid(),
@@ -849,6 +991,51 @@
          '地址': ''
        })
      }
      //  仓库设置
      if (this.sheetName.indexOf('仓库设置') !== -1) {
        this.tableData[0].unshift({
          uuid: nanoid(),
          '*仓库编号(唯一)': '',
          '*仓库名称': '',
          '*状态': '0',
          '*库位管理': '0',
          '描述': ''
        })
      }
      // 库位设置
      if (this.sheetName.indexOf('库位设置') !== -1) {
        this.tableData[0].unshift({
          uuid: nanoid(),
          '*库位编号(唯一)': '',
          '*库位名称': '',
          '*所属仓库编码': '',
          '上级库位编码': '',
          '*状态': '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',
          '*往来单位类型编码': '',
          '联系人': '',
          '联系方式': '',
          '地址': ''
        })
      }
    },
    delRow(row) {
      // 针对单sheet