| | |
| | | <template> |
| | | <el-dialog |
| | | v-if="dialogVisible" |
| | | v-dialogDrag |
| | | :title="title" |
| | | :visible.sync="dialogVisible" |
| | | append-to-body |
| | | v-dialogDrag |
| | | > |
| | | <Divider text="导入提示" left="30px"></Divider> |
| | | <Divider left="30px" text="导入提示"></Divider> |
| | | <ul> |
| | | <li v-for="(item, index) in tipList" :key="index"> |
| | | {{ item }} |
| | | </li> |
| | | </ul> |
| | | <div |
| | | v-show="currentTypeObj[type]['upParams'] === 'classifyAttr' && this.type !== 'bulkEdit'&& this.type !== 'groupCode'" |
| | | class="radio_box" |
| | | v-show="currentTypeObj[type]['upParams'] === 'classifyAttr'" |
| | | > |
| | | <span>分类的路径使用的属性:</span> |
| | | <el-radio-group v-model="classifyAttr"> |
| | |
| | | </el-radio-group> |
| | | </div> |
| | | <div |
| | | style="margin-top: 20px" |
| | | v-if="showCodeApply && currentTypeObj[type]['upParams'] === 'codeApply'" |
| | | style="margin-top: 20px" |
| | | > |
| | | <Divider |
| | | text="编码规则的码段信息,请先选择后再导入" |
| | | left="30px" |
| | | text="编码规则的码段信息,请先选择后再导入" |
| | | ></Divider> |
| | | <FormTemplate |
| | | ref="CodeApply" |
| | | v-loading="!showCodeApply" |
| | | :selfColumnConfig="selfColumnConfig" |
| | | :selfColumnType="selfColumnType" |
| | | style="margin-top: 30px" |
| | | type="add" |
| | | :selfColumnType="selfColumnType" |
| | | :selfColumnConfig="selfColumnConfig" |
| | | ref="CodeApply" |
| | | @getFormData="getCodeApplyFormData" |
| | | @referConfigDataUpdate="referConfigDataUpdate" |
| | | ></FormTemplate> |
| | | </div> |
| | | <Divider text="excel文件,选择文件后会自动上传" left="30px"></Divider> |
| | | <Divider left="30px" text="excel文件,选择文件后会自动上传"></Divider> |
| | | <el-upload |
| | | class="upload" |
| | | :accept="accept" |
| | | :action="action" |
| | | :before-upload="beforeUpload" |
| | | :on-exceed="handleExceed" |
| | | :headers="uploadHeaders" |
| | | :on-success="onSuccess" |
| | | :on-error="onError" |
| | | :show-file-list="false" |
| | | :on-change="uploadChange" |
| | | :data="upParams" |
| | | :headers="uploadHeaders" |
| | | :on-change="uploadChange" |
| | | :on-error="onError" |
| | | :on-exceed="handleExceed" |
| | | :on-success="onSuccess" |
| | | :show-file-list="false" |
| | | class="upload" |
| | | > |
| | | <el-button size="small" type="primary" |
| | | ><i class="el-icon-upload"></i> 点击上传</el-button |
| | | ><i class="el-icon-upload"></i> 点击上传 |
| | | </el-button |
| | | > |
| | | </el-upload> |
| | | <template #footer> |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | @click="downloadTemplateFun" |
| | | :loading="downloadLoading" |
| | | >下载导入模板</el-button |
| | | > |
| | | <el-button size="small" @click="dialogVisible = false">关闭</el-button> |
| | | <div style="display: inline-block" v-if="type != 'groupCode'"> |
| | | <el-button |
| | | v-if="type !== 'bulkEdit' " |
| | | :loading="downloadLoading" |
| | | size="small" |
| | | type="primary" |
| | | @click="downloadTemplateFun" |
| | | >下载导入模板 |
| | | </el-button> |
| | | <el-button v-if="type === 'bulkEdit'" |
| | | :loading="downloadLoading" |
| | | size="small" |
| | | type="primary" |
| | | @click="downloadTemplateFun" |
| | | >下载编辑模板 |
| | | </el-button> |
| | | </div> |
| | | <div style="display: inline-block"> |
| | | <el-button size="small" @click="dialogVisible = false">关闭</el-button> |
| | | </div> |
| | | |
| | | </template> |
| | | <ShowImportData |
| | | :visible.sync="showVisible" |
| | | v-if="showVisible" |
| | | :leftTree="leftTree" |
| | | :classifyAttr="classifyAttr" |
| | | :codeClassifyOid="codeClassifyOid" |
| | | :leftTree="leftTree" |
| | | :redisOid="redisOid" |
| | | :type="type" |
| | | :title="title" |
| | | :secDTOList="secDTOList" |
| | | :resetTable="resetTable" |
| | | :secDTOList="secDTOList" |
| | | :title="title" |
| | | :type="type" |
| | | :visible.sync="showVisible" |
| | | ></ShowImportData> |
| | | </el-dialog> |
| | | </template> |
| | |
| | | importDataShow, |
| | | downloadBatchImportApplyTemplate, |
| | | downloadBatchApplyCodeTemplate, |
| | | downloadExcelBatchEdit |
| | | } from "../../api/batchImport/index"; |
| | | import {exportCode} from '@/api/GetItem' |
| | | import func from "@/util/func"; |
| | | import FormTemplate from "../FormTemplate/FormTemplate.vue"; |
| | | import { getToken } from "@/util/auth"; |
| | | import {getToken} from "@/util/auth"; |
| | | import codeApply from "@/mixins/codeApply.js"; |
| | | |
| | | export default { |
| | | name: "BatchImport", |
| | | mixins: [codeApply], |
| | | components: { ShowImportData, FormTemplate }, |
| | | components: {ShowImportData, FormTemplate}, |
| | | props: { |
| | | visible: { |
| | | type: Boolean, |
| | |
| | | type: { |
| | | type: String, |
| | | default: "", |
| | | }, |
| | | tableHeadFindData: { |
| | | type: Array, |
| | | default: [] |
| | | }, |
| | | selectRow: { |
| | | type: Array, |
| | | default: [] |
| | | }, |
| | | resetTable: Function |
| | | }, |
| | |
| | | secDTOList: JSON.stringify(this.secDTOList), |
| | | ...this.codeApplyForm, |
| | | }; |
| | | } else if (this.type === "bulkEdit") { |
| | | return { |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | }; |
| | | } else if (this.type === 'groupCode') { |
| | | return { |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | }; |
| | | } |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | exportArrTwo: {}, |
| | | classifyAttr: "id", |
| | | downloadLoading: false, |
| | | showVisible: false, |
| | |
| | | tipList: [ |
| | | "1.标题带五角星的表示关键属性,带星号表示必输项", |
| | | "2.企业编码,集团码和状态都需要导入", |
| | | "3.每次仅能最多导入10000条数据,如果出错会返回错误的数据和原因,但是正确的数据会保存", |
| | | "3.每次仅能最多导入5000条数据(可通过nacos进行配置,推荐5000/次导入),如果出错会返回错误的数据和原因,但是正确数据可以继续保存", |
| | | "4.分类的路径需要用#分隔。仅填写当前选的分类树上的下级分类的路径,如果当前分类已经是叶子节点,则不填写", |
| | | ], |
| | | action: "/api/ubcs-code/mdmEngineController/batchImportHistoryData", |
| | | downloadTemplateFun: downloadHistoryImportTemplate, |
| | | upParams: "classifyAttr", |
| | | }, |
| | | bulkEdit: { |
| | | title: "批量编辑导入", |
| | | tipList: [ |
| | | "1.标题带五角星的表示关键属性,带星号表示必输项", |
| | | "2.每次仅能最多导入5000条数据(可通过nacos进行配置,推荐5000/次导入),如果出错会返回错误的数据和原因,但是正确数据可以继续保存", |
| | | "3.请按照下载的编辑模板所使用的配置进行具体配置" |
| | | ], |
| | | action: "/api/ubcs-code/mdmEngineController/batchImportEdit", |
| | | downloadTemplateFun: downloadExcelBatchEdit, |
| | | upParams: "classifyAttr", |
| | | }, |
| | | batchImportApply: { |
| | | title: "批量申请编码", |
| | | title: "批量导入申请", |
| | | tipList: [ |
| | | "1.标题带五角星的表示关键属性,带星号表示必输项", |
| | | "2.请一定先选择/输入编码规则的码段值后再选择excel文件", |
| | |
| | | downloadTemplateFun: downloadBatchApplyCodeTemplate, |
| | | upParams: "classifyAttr", |
| | | }, |
| | | groupCode: { |
| | | title: "集团码导入", |
| | | tipList: [ |
| | | "1.标题带五角星的表示关键属性,带星号表示必输项", |
| | | "2.每次仅能最多导入5000条数据(可通过nacos进行配置,推荐5000/次导入),如果出错会返回错误的数据和原因,但是正确数据可以继续保存", |
| | | "3.Excel第一行和第二行依次为企业编码和集团编码(必填)" |
| | | ], |
| | | action: "/api/ubcs-code/mdmEngineController/importGroupCode", |
| | | downloadTemplateFun: null, |
| | | upParams: "classifyAttr", |
| | | } |
| | | }, |
| | | secDTOList: [], |
| | | }; |
| | |
| | | }, |
| | | // 下载导入模板 |
| | | downloadTemplateFun() { |
| | | this.downloadLoading = true; |
| | | this.downloadTemplateApi({ |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | }) |
| | | .then((res) => { |
| | | this.$utilFunc.downloadFileByBlob(res.data, this.title + "模板.xls"); |
| | | this.downloadLoading = false; |
| | | if (this.type !== 'bulkEdit') { |
| | | this.downloadLoading = true; |
| | | this.downloadTemplateApi({ |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | }) |
| | | .catch(() => { |
| | | this.downloadLoading = false; |
| | | }); |
| | | .then((res) => { |
| | | this.$utilFunc.downloadFileByBlob(res.data, this.title + "模板.xls"); |
| | | this.downloadLoading = false; |
| | | }) |
| | | .catch(() => { |
| | | this.downloadLoading = false; |
| | | }); |
| | | return; |
| | | } |
| | | if (this.type === 'bulkEdit') { |
| | | downloadExcelBatchEdit({ |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | }).then(res => { |
| | | if (res) { |
| | | func.downloadFileByBlobHandler(res); |
| | | this.$message.success('下载成功,请查看!') |
| | | } |
| | | }) |
| | | return; |
| | | } |
| | | }, |
| | | onSuccess(res) { |
| | | console.log(res) |
| | | if (Object.keys(res.data).length === 0) { |
| | | this.$message.success(this.title + "导入成功!"); |
| | | this.resetTable() |
| | | 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) => { |
| | | downloadErrorFile({uuid: res.data.fileOid}).then((res2) => { |
| | | this.$utilFunc.downloadFileByBlob(res2.data, fileName); |
| | | }); |
| | | } |
| | |
| | | } |
| | | } else { |
| | | return { |
| | | ...item.codeClassifyTemplateVO, |
| | | cloNamesList: item.cloNamesList, |
| | | codeClassifyOid: item.codeClassifyTemplateVO.codeclassifyoid |
| | | }; |
| | | ...item.codeClassifyTemplateVO, |
| | | cloNamesList: item.cloNamesList, |
| | | codeClassifyOid: item.codeClassifyTemplateVO.codeclassifyoid |
| | | }; |
| | | } |
| | | }); |
| | | this.showVisible = true; |
| | |
| | | }, |
| | | onError(err) { |
| | | this.pageLoading.close(); |
| | | //console.log('onError') |
| | | }, |
| | | uploadChange(file) { |
| | | if (file.status === "success" || file.status === "error") { |
| | | this.pageLoading.close(); |
| | | //console.log('uploadChange') |
| | | } |
| | | }, |
| | | }, |
| | |
| | | padding: 0; |
| | | padding-left: 30px; |
| | | list-style: none; |
| | | |
| | | li { |
| | | margin-bottom: 5px; |
| | | font-size: 12px; |
| | | } |
| | | } |
| | | |
| | | .radio_box { |
| | | padding-left: 30px; |
| | | margin: 0px 0 25px 0; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | span { |
| | | margin-right: 20px; |
| | | } |
| | | } |
| | | |
| | | .upload { |
| | | padding-left: 30px; |
| | | margin-top: 30px; |
| | | } |
| | | |
| | | /deep/ .no-print { |
| | | display: none !important; |
| | | } |