From b1b6f3725d5abd7d366289c94bf8d71eb9180043 Mon Sep 17 00:00:00 2001
From: mamc <1428594221@qq.com>
Date: 星期三, 28 六月 2023 14:43:20 +0800
Subject: [PATCH] 默认参照列表接口修改
---
Source/UBCS-WEB/src/components/BatchImport/index.vue | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 204 insertions(+), 34 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/BatchImport/index.vue b/Source/UBCS-WEB/src/components/BatchImport/index.vue
index cb6d21f..b7d08ea 100644
--- a/Source/UBCS-WEB/src/components/BatchImport/index.vue
+++ b/Source/UBCS-WEB/src/components/BatchImport/index.vue
@@ -1,18 +1,36 @@
<template>
- <el-dialog :title="title" :visible="visible" append-to-body>
+ <el-dialog
+ v-if="dialogVisible"
+ :title="title"
+ :visible.sync="dialogVisible"
+ append-to-body
+ v-dialogDrag
+ >
<Divider text="瀵煎叆鎻愮ず" left="30px"></Divider>
<ul>
- <li v-for="(item, index) in tipInfo" :key="index">
+ <li v-for="(item, index) in tipList" :key="index">
{{ item }}
</li>
</ul>
- <div class="radio_box">
+ <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>
+ <FormTemplate
+ style="margin-top: 30px;"
+ type="add"
+ :selfColumnType="selfColumnType"
+ :selfColumnConfig="selfColumnConfig"
+ ref="CodeApply"
+ @getFormData="getCodeApplyFormData"
+ @referConfigDataUpdate="referConfigDataUpdate"
+ ></FormTemplate>
+ </div>
<Divider text="excel鏂囦欢锛岄�夋嫨鏂囦欢鍚庝細鑷姩涓婁紶" left="30px"></Divider>
<el-upload
class="upload"
@@ -20,66 +38,215 @@
:action="action"
:before-upload="beforeUpload"
:on-exceed="handleExceed"
+ :headers="uploadHeaders"
+ :on-success="onSuccess"
+ :show-file-list="false"
+ :on-change="uploadChange"
+ :data="upParams"
>
- <el-button size="small" type="primary"><i class="el-icon-upload"></i> 鐐瑰嚮涓婁紶</el-button>
+ <el-button size="small" type="primary"
+ ><i class="el-icon-upload"></i> 鐐瑰嚮涓婁紶</el-button
+ >
</el-upload>
<template #footer>
- <el-button type="primary" size="small" @click="downloadTemplateFun">涓嬭浇瀵煎叆妯℃澘</el-button>
- <el-button size="small">鍏抽棴</el-button>
+ <el-button
+ type="primary"
+ size="small"
+ @click="downloadTemplateFun"
+ :loading="downloadLoading"
+ >涓嬭浇瀵煎叆妯℃澘</el-button
+ >
+ <el-button size="small" @click="dialogVisible = false">鍏抽棴</el-button>
</template>
+ <ShowImportData
+ :visible.sync="showVisible"
+ v-if="showVisible"
+ :leftTree="leftTree"
+ :classifyAttr="classifyAttr"
+ :codeClassifyOid="codeClassifyOid"
+ :redisOid="redisOid"
+ :type="type"
+ ></ShowImportData>
</el-dialog>
</template>
<script>
-import { downloadTemplate } from '../../api/batchImport/index'
+import ShowImportData from "./ShowImportData.vue";
+import {
+ downloadHistoryImportTemplate,
+ downloadErrorFile,
+ getHistoryLeftTree,
+ downloadBatchImportApplyTemplate
+} from "../../api/batchImport/index";
+import FormTemplate from "../FormTemplate/FormTemplate.vue";
+import { getToken } from "@/util/auth";
+import codeApply from '@/mixins/codeApply.js'
export default {
- name: "",
+ name: "BatchImport",
+ mixins: [codeApply],
+ components: { ShowImportData, FormTemplate },
props: {
- title: {
- type: String,
- default: "鎵归噺鐢宠缂栫爜",
- },
- tipInfo: {
- type: Array,
- default: () => [],
- },
visible: {
type: Boolean,
default: false,
},
accept: {
type: String,
- default: '.xlsx, .xls'
+ default: ".xlsx, .xls",
},
codeClassifyOid: {
type: String,
- default: ''
+ default: "",
},
- downloadTemplateFun: {
- type: Function
+ type: {
+ type: String,
+ default: "",
+ },
+ },
+ computed: {
+ uploadHeaders() {
+ return {
+ "Blade-Auth": "bearer " + getToken(),
+ };
+ },
+ dialogVisible: {
+ get() {
+ return this.visible;
+ },
+ set(val) {
+ this.$emit("update:visible", val);
+ },
+ },
+ title() {
+ return this.currentTypeObj[this.type]['title']
+ },
+ tipList() {
+ return this.currentTypeObj[this.type]['tipList']
+ },
+ downloadTemplateApi() {
+ return this.currentTypeObj[this.type]['downloadTemplateFun']
+ },
+ action() {
+ return this.currentTypeObj[this.type]['action']
+ },
+ upParams() {
+ if (this.type === 'historyImport') {
+ return {
+ codeClassifyOid: this.codeClassifyOid,
+ classifyAttr: this.classifyAttr,
+ }
+ } else if(this.type === 'batchImportApply') {
+ return {
+ codeClassifyOid: this.codeClassifyOid,
+ secDTOList: this.secDTOList,
+ ...this.codeApplyForm
+ }
+ }
}
},
data() {
return {
- classType: "classCode",
+ classifyAttr: "id",
+ downloadLoading: false,
+ showVisible: false,
+ leftTree: [],
+ redisOid: "",
+ pageLoading: null,
+ currentTypeObj: {
+ historyImport: {
+ title: "鍘嗗彶鏁版嵁瀵煎叆",
+ tipList: [
+ "1.鏍囬甯︿簲瑙掓槦鐨勮〃绀哄叧閿睘鎬э紝甯︽槦鍙疯〃绀哄繀杈撻」",
+ "2.浼佷笟缂栫爜锛岄泦鍥㈢爜鍜岀姸鎬侀兘闇�瑕佸鍏�",
+ "3.姣忔浠呰兘鏈�澶氬鍏�10000鏉℃暟鎹紝濡傛灉鍑洪敊浼氳繑鍥為敊璇殑鏁版嵁鍜屽師鍥狅紝浣嗘槸姝g‘鐨勬暟鎹細淇濆瓨",
+ "4.鍒嗙被鐨勮矾寰勯渶瑕佺敤#鍒嗛殧銆備粎濉啓褰撳墠閫夌殑鍒嗙被鏍戜笂鐨勪笅绾у垎绫荤殑璺緞锛屽鏋滃綋鍓嶅垎绫诲凡缁忔槸鍙跺瓙鑺傜偣锛屽垯涓嶅~鍐�",
+ ],
+ action: "/api/ubcs-code/mdmEngineController/batchImportHistoryData",
+ downloadTemplateFun: downloadHistoryImportTemplate,
+ upParams: 'classifyAttr'
+ },
+ batchImportApply: {
+ title: "鎵归噺鐢宠缂栫爜",
+ tipList: [
+ "1.鏍囬甯︿簲瑙掓槦鐨勮〃绀哄叧閿睘鎬э紝甯︽槦鍙疯〃绀哄繀杈撻」",
+ "2.璇蜂竴瀹氬厛閫夋嫨/杈撳叆缂栫爜瑙勫垯鐨勭爜娈靛�煎悗鍐嶉�夋嫨excel鏂囦欢",
+ "3.姣忔浠呰兘鏈�澶氬鍏�10000鏉℃暟鎹紝濡傛灉鍑洪敊浼氳繑鍥為敊璇殑鏁版嵁鍜屽師鍥狅紝浣嗘槸姝g‘鐨勬暟鎹細淇濆瓨",
+ "4.濡傛灉灞炴�т负鍙傜収锛屽湪鍙傜収閰嶇疆涓缃涓睘鎬ф椂锛屼紭鍏堜娇鐢╪ame灞炴�х殑鍊硷紝鍚﹀垯濉啓绗竴涓睘鎬х殑鍊笺��",
+ ],
+ action: "/api/ubcs-code/mdmEngineController/batchImportCode",
+ downloadTemplateFun: downloadBatchImportApplyTemplate,
+ upParams: false
+ }
+ },
};
},
- computed: {
- action() {
- console.log(process, 'process');
- return '/api/ubcs-code/mdmEngineController/mdmEngineController/batchTopImportCode'
- }
- },
methods: {
- beforeUpload(file) {
- const fileType = file.name.split('.').pop()
- if (fileType !== 'xlsx' && fileType !== 'xls') {
+ async beforeUpload(file) {
+ console.log(223344);
+ const fileType = file.name.split(".").pop();
+ if (fileType !== "xlsx" && fileType !== "xls") {
// 涓婁紶鏍煎紡涓嶇鍚堣姹傦紝鎻愮ず閿欒淇℃伅骞跺彇娑堜笂浼�
- this.$message.error('鍙厑璁镐笂浼爔lsx銆亁ls鏍煎紡鐨勬枃浠�');
- return false;
+ this.$message.error("鍙厑璁镐笂浼爔lsx銆亁ls鏍煎紡鐨勬枃浠�");
+ return Promise.reject(false)
+ }
+ if (this.type === 'batchImportApply') {
+ const flag = await this.$refs.CodeApply.validate()
+ if (!flag) {
+ return Promise.reject(false)
+ }
}
return true;
},
+ // 涓嬭浇瀵煎叆妯℃澘
+ downloadTemplateFun() {
+ this.downloadLoading = true;
+ this.downloadTemplateApi({
+ codeClassifyOid: this.codeClassifyOid,
+ })
+ .then((res) => {
+ this.$utilFunc.downloadFileByBlob(res.data, this.title + "妯℃澘.xls");
+ this.downloadLoading = false;
+ })
+ .catch(() => {
+ this.downloadLoading = false;
+ });
+ },
+ onSuccess(res) {
+ let fileName = res.data.filePath.split("/").pop();
+ if (res.data.fileOid) {
+ this.$message.error("璇蜂笅杞介敊璇俊鎭枃浠惰繘琛屾煡鐪嬶紒");
+ downloadErrorFile({ uuid: res.data.fileOid }).then((res2) => {
+ this.$utilFunc.downloadFileByBlob(res2.data, fileName);
+ });
+ }
+ if (res.data.redisUuid) {
+ this.redisOid = res.data.redisUuid;
+ getHistoryLeftTree(res.data.redisUuid).then((res) => {
+ this.leftTree = res.obj.map((item) => {
+ return {
+ ...item.codeClassifyTemplateVO,
+ cloNamesList: item.cloNamesList,
+ };
+ });
+ this.showVisible = true;
+ });
+ }
+ },
+ 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: {
},
};
</script>
@@ -87,7 +254,7 @@
<style lang="scss" scoped>
ul {
color: rgb(188, 188, 188);
- margin: 20px 0 0 0;
+ margin: 20px 0 20px 0;
padding: 0;
padding-left: 30px;
list-style: none;
@@ -98,7 +265,7 @@
}
.radio_box {
padding-left: 30px;
- margin: 20px 0 25px 0;
+ margin: 0px 0 25px 0;
display: flex;
align-items: center;
span {
@@ -109,4 +276,7 @@
padding-left: 30px;
margin-top: 30px;
}
+/deep/ .no-print {
+ display: none !important;
+}
</style>
--
Gitblit v1.10.0