xiejun
2023-07-11 2024d0f570d9da956e792746992852749c06227c
Source/UBCS-WEB/src/components/BatchImport/index.vue
@@ -12,17 +12,26 @@
        {{ item }}
      </li>
    </ul>
    <div class="radio_box" v-show="currentTypeObj[type]['upParams'] === 'classifyAttr'">
    <div
      class="radio_box"
      v-show="currentTypeObj[type]['upParams'] === 'classifyAttr'"
    >
      <span>分类的路径使用的属性:</span>
      <el-radio-group v-model="classifyAttr">
        <el-radio label="id">分类编号</el-radio>
        <el-radio label="name">分类名称</el-radio>
      </el-radio-group>
    </div>
    <div style="margin-top: 20px;" v-if="showCodeApply && type === 'batchImportApply'">
      <Divider text="编码规则的码段信息,请先选择后再导入" left="30px"></Divider>
    <div
      style="margin-top: 20px"
      v-if="showCodeApply && currentTypeObj[type]['upParams'] === 'codeApply'"
    >
      <Divider
        text="编码规则的码段信息,请先选择后再导入"
        left="30px"
      ></Divider>
      <FormTemplate
        style="margin-top: 30px;"
        style="margin-top: 30px"
        type="add"
        :selfColumnType="selfColumnType"
        :selfColumnConfig="selfColumnConfig"
@@ -40,6 +49,7 @@
      :on-exceed="handleExceed"
      :headers="uploadHeaders"
      :on-success="onSuccess"
      :on-error="onError"
      :show-file-list="false"
      :on-change="uploadChange"
      :data="upParams"
@@ -66,6 +76,8 @@
      :codeClassifyOid="codeClassifyOid"
      :redisOid="redisOid"
      :type="type"
      :title="title"
      :secDTOList="secDTOList"
    ></ShowImportData>
  </el-dialog>
</template>
@@ -75,12 +87,13 @@
import {
  downloadHistoryImportTemplate,
  downloadErrorFile,
  getHistoryLeftTree,
  downloadBatchImportApplyTemplate
  importDataShow,
  downloadBatchImportApplyTemplate,
  downloadBatchApplyCodeTemplate,
} from "../../api/batchImport/index";
import FormTemplate from "../FormTemplate/FormTemplate.vue";
import { getToken } from "@/util/auth";
import codeApply from '@/mixins/codeApply.js'
import codeApply from "@/mixins/codeApply.js";
export default {
  name: "BatchImport",
  mixins: [codeApply],
@@ -118,31 +131,39 @@
      },
    },
    title() {
      return this.currentTypeObj[this.type]['title']
      return this.currentTypeObj[this.type]["title"];
    },
    tipList() {
      return this.currentTypeObj[this.type]['tipList']
      return this.currentTypeObj[this.type]["tipList"];
    },
    downloadTemplateApi() {
      return this.currentTypeObj[this.type]['downloadTemplateFun']
      console.log(this.currentTypeObj[this.type], "this.type");
      return this.currentTypeObj[this.type]["downloadTemplateFun"];
    },
    action() {
      return this.currentTypeObj[this.type]['action']
      return this.currentTypeObj[this.type]["action"];
    },
    upParams() {
      if (this.type === 'historyImport') {
        return {
        codeClassifyOid: this.codeClassifyOid,
        classifyAttr: this.classifyAttr,
      }
      } else if(this.type === 'batchImportApply') {
      if (this.type === "historyImport" || this.type === "batchApplyCode") {
        return {
          codeClassifyOid: this.codeClassifyOid,
          secDTOList: this.secDTOList,
          ...this.codeApplyForm
        }
          classifyAttr: this.classifyAttr,
        };
      } else if (this.type === "batchImportApply") {
        // eslint-disable-next-line vue/no-side-effects-in-computed-properties
        this.secDTOList = this.localSecVOList.map((item) => {
          return {
            secOid: item.oid,
            secValue: this.codeApplyForm[item.oid],
          };
        });
        return {
          codeClassifyOid: this.codeClassifyOid,
          secDTOList: JSON.stringify(this.secDTOList),
          ...this.codeApplyForm,
        };
      }
    }
    },
  },
  data() {
    return {
@@ -152,6 +173,7 @@
      leftTree: [],
      redisOid: "",
      pageLoading: null,
      showCodeApply: false,
      currentTypeObj: {
        historyImport: {
          title: "历史数据导入",
@@ -163,7 +185,7 @@
          ],
          action: "/api/ubcs-code/mdmEngineController/batchImportHistoryData",
          downloadTemplateFun: downloadHistoryImportTemplate,
          upParams: 'classifyAttr'
          upParams: "classifyAttr",
        },
        batchImportApply: {
          title: "批量申请编码",
@@ -175,26 +197,42 @@
          ],
          action: "/api/ubcs-code/mdmEngineController/batchImportCode",
          downloadTemplateFun: downloadBatchImportApplyTemplate,
          upParams: false
        }
          upParams: "codeApply",
        },
        batchApplyCode: {
          title: "批量申请编码",
          tipList: [
            "1.标题带五角星的表示关键属性,带星号表示必输项",
            "2.分类的路径需要用#分隔。从当前选择分类节点的下级开始填写,直到最末尾节点,如 产品#主机产品#主机产品",
          ],
          action: "/api/ubcs-code/mdmEngineController/batchTopImportCode",
          downloadTemplateFun: downloadBatchApplyCodeTemplate,
          upParams: "classifyAttr",
        },
      },
      secDTOList: [],
    };
  },
  methods: {
    async beforeUpload(file) {
      console.log(223344);
      const fileType = file.name.split(".").pop();
      if (fileType !== "xlsx" && fileType !== "xls") {
        // 上传格式不符合要求,提示错误信息并取消上传
        this.$message.error("只允许上传xlsx、xls格式的文件");
        return Promise.reject(false)
        return Promise.reject(false);
      }
      if (this.type === 'batchImportApply') {
        const flag = await this.$refs.CodeApply.validate()
      if (this.type === "batchImportApply" && this.showCodeApply) {
        const flag = await this.$refs.CodeApply.validate();
        if (!flag) {
          return Promise.reject(false)
          return Promise.reject(false);
        }
      }
      this.pageLoading = this.$loading({
        lock: true,
        text: "文件上传中",
        spinner: "el-icon-loading",
        background: "rgba(0, 0, 0, 0.7)",
      });
      return true;
    },
    // 下载导入模板
@@ -212,8 +250,13 @@
        });
    },
    onSuccess(res) {
      let fileName = res.data.filePath.split("/").pop();
      if (Object.keys(res.data).length === 0) {
        this.$message.success(this.title + "导入成功!");
        this.dialogVisible = false;
        return;
      }
      if (res.data.fileOid) {
        const fileName = res.data.filePath.split("/").pop();
        this.$message.error("请下载错误信息文件进行查看!");
        downloadErrorFile({ uuid: res.data.fileOid }).then((res2) => {
          this.$utilFunc.downloadFileByBlob(res2.data, fileName);
@@ -221,33 +264,39 @@
      }
      if (res.data.redisUuid) {
        this.redisOid = res.data.redisUuid;
        getHistoryLeftTree(res.data.redisUuid).then((res) => {
          this.leftTree = res.obj.map((item) => {
            return {
        importDataShow(res.data.redisUuid).then((res2) => {
          this.leftTree = res2.data.data.map((item) => {
            if (this.type === 'batchApplyCode') {
              return {
                cloNamesList: item.cloNamesList,
                oid: item.codeTemplateOid,
                codeClassifyOid: item.codeClassifyOid,
                codeRuleOid: item.codeRuleOid,
                name: item.codeRuleVO.name
              }
            } else {
              return {
              ...item.codeClassifyTemplateVO,
              cloNamesList: item.cloNamesList,
              codeClassifyOid: item.codeClassifyTemplateVO.codeclassifyoid
            };
            }
          });
          this.showVisible = true;
        });
      }
    },
    onError(err) {
      console.log(err, "err");
      this.pageLoading.close();
    },
    uploadChange(file) {
      if (file.status === "uploadin") {
        this.pageLoading = this.$loading({
          lock: true,
          text: "文件上传中",
          spinner: "el-icon-loading",
          background: "rgba(0, 0, 0, 0.7)",
        });
      }
      if (file.status === "success" || file.status === "error") {
        this.pageLoading.close();
      }
    },
  },
  watch: {
  },
  watch: {},
};
</script>