瀏覽代碼

导入模板接口

duy 2 年之前
父節點
當前提交
d1a6f86ce8

+ 17 - 0
src/api/modules/tentative/parameter/container.js

@@ -65,4 +65,21 @@ export default {
             data: form
         }, msg);
     },
+    //下载导入模板
+    async downloadTemplate(form, msg = true) {
+        return httpApi({
+            url: '/api/blade-business/container/data/download-template',
+            method: 'post',
+            responseType: 'blob',
+            params: form
+        }, msg);
+    },
+    //导入/api/blade-business/container/data/import-excel
+    async importExcel(form, msg = true) {
+        return httpApi({
+            url: '/api/blade-business/container/data/import-excel',
+            method: 'post',
+            data: form
+        }, msg);
+    },
 }

+ 6 - 1
src/views/tentative/parameter/components/HcDragUpload.vue

@@ -32,6 +32,10 @@ const props = defineProps({
         type: Object,
         default: () => ({})
     },
+    action: {
+        type: String,
+        default:'/api/blade-manager/exceltab/add-buss-file'
+    },
 })
 
 //变量
@@ -40,7 +44,8 @@ const uploadData = ref(props.datas)
 const uploadFileInfo = ref({})
 const uploadDisabled = ref(false)
 
-const action = '/api/blade-manager/exceltab/add-buss-file';
+
+const action=(props.action)
 const accept = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel';
 
 //监听

+ 34 - 4
src/views/tentative/parameter/container.vue

@@ -142,9 +142,9 @@
 
         <!--导入-->
         <HcDialog :show="importModal" isRowFooter title="导入" widths="38rem" @close="importModalClose">
-            <HcDragUpload/>
+            <HcDragUpload  :datas="uploadData" :action="'/api/blade-business/container/data/import-excel'"    @finished="uploadFinished" @progress="uploadprogress" ref="uploadRef"/>
             <template #leftRowFooter>
-                <el-button size="large">
+                <el-button size="large" @click="download" :loading="downloadLoading">
                     <HcIcon name="download-2"/>
                     <span>下载模板</span>
                 </el-button>
@@ -168,7 +168,7 @@
 import {ref, onMounted, watch} from "vue";
 import {useAppStore} from "~src/store";
 import {HcIsButton} from "~src/plugins/IsButtons";
-import {arrToId, formValidate, getArrValue} from "js-fast-way"
+import {arrToId, formValidate, getArrValue,downloadBlob} from "js-fast-way"
 import HcDragUpload from "./components/HcDragUpload.vue"
 import dataApi from "~api/tentative/parameter/container"
 
@@ -614,13 +614,30 @@ const tableRemoveData = async () => {
 
 //导入
 const importModal = ref(false)
+const uploadData=ref({})
 const importModalClick = () => {
+    const {containerInitTabName} = menuItem.value
     importModal.value = true
+    uploadData.value = {
+        containerInitTabName: containerInitTabName,
+    }
+}
+const uploadRef=ref(null)
+//上传完成
+const uploadFinished = () => {
+    importModal.value = false
+    getTableData()
+}
+//上传进度
+const uploadprogress = (res) => {
+    importModalLoading.value = res
 }
 
 //确认导入
 const importModalLoading = ref(false)
 const importModalYesClick = () => {
+    uploadRef.value?.submit()
+    getTableData()
     importModal.value = false
 }
 
@@ -628,7 +645,20 @@ const importModalYesClick = () => {
 const importModalClose = () => {
     importModal.value = false
 }
-
+const downloadLoading=ref(false)
+const download=async()=>{
+    downloadLoading.value = true
+    const {error, disposition, res} = await dataApi.downloadTemplate({id: menuKey.value})
+      //处理数据
+      downloadLoading.value = false
+    if (!error) {
+        if (disposition) {
+            downloadBlob(res, disposition)
+        } else {
+            window.$message?.error('数据异常')
+        }
+    }
+}
 //左右拖动,改变树形结构宽度
 const leftWidth = ref(240);
 const onmousedown = () => {