|
@@ -1,12 +1,16 @@
|
|
|
<template>
|
|
|
- <el-upload class="upload-demo" drag action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" multiple>
|
|
|
- <el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
|
|
+ <el-upload class="upload-demo" :headers="upload.headers" drag :action="upload.url" multiple :on-success="handleFileSuccess">
|
|
|
+ <el-icon class="el-icon--upload">
|
|
|
+ <upload-filled/>
|
|
|
+ </el-icon>
|
|
|
<div class="el-upload__text">
|
|
|
- 将文件拖到此处,或<el-button type="primary" link>点击上传</el-button>
|
|
|
+ 将文件拖到此处,或
|
|
|
+ <el-button type="primary" link>点击上传</el-button>
|
|
|
</div>
|
|
|
<template #tip>
|
|
|
<div class="el-upload__tip">
|
|
|
- 仅允许导入xls,xlsx格式文件.<el-button type="primary" link>下载模版</el-button>
|
|
|
+ 仅允许导入xls,xlsx格式文件.
|
|
|
+ <el-button type="primary" link @click="downTemplate">下载模版</el-button>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-upload>
|
|
@@ -16,14 +20,37 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script setup lang="ts">
|
|
|
-import { UploadFilled } from '@element-plus/icons-vue'
|
|
|
+import {UploadFilled} from '@element-plus/icons-vue'
|
|
|
+import { getToken } from "@/utils/auth";
|
|
|
+const {proxy} = getCurrentInstance()
|
|
|
const emit = defineEmits(['update:visible'])
|
|
|
const props = defineProps({
|
|
|
- visible: Boolean
|
|
|
+ visible: Boolean,
|
|
|
+ rowId: {type: Number, default: null}
|
|
|
})
|
|
|
+
|
|
|
+const upload = reactive({
|
|
|
+ headers: { Authorization: "Bearer " + getToken() },
|
|
|
+ url: import.meta.env.VITE_APP_BASE_API + "/obj/metrics/importData"
|
|
|
+});
|
|
|
+
|
|
|
+function downTemplate(){
|
|
|
+ proxy.download("obj/metrics/export", {
|
|
|
+ objId: props.rowId
|
|
|
+ }, `config_${new Date().getTime()}.xlsx`);
|
|
|
+}
|
|
|
+
|
|
|
+function handleFileSuccess(res){
|
|
|
+ if(res.code === 200){
|
|
|
+ proxy.$emit("reload")
|
|
|
+ return proxy.$message.success(res.msg)
|
|
|
+ }
|
|
|
+ proxy.$message.error(res.msg)
|
|
|
+}
|
|
|
+
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
|
-.setting-btn{
|
|
|
+.setting-btn {
|
|
|
margin: 20px -20px 0 -20px;
|
|
|
border-top: 1px solid #f1f1f1;
|
|
|
padding-top: 20px;
|