Commit 530a37c89eff532bc5ae15effe1f7d1affbff50d
1 parent
bb778c90
上传组件
Showing
1 changed file
with
111 additions
and
7 deletions
src/components/upload.vue
1 | <template> | 1 | <template> |
2 | <div> | 2 | <div> |
3 | - <el-upload> | ||
4 | - | ||
5 | - </el-upload> | 3 | + <div class="d1"> |
4 | + 第一步:下载模板并编辑完成学生分数<el-link | ||
5 | + type="primary" | ||
6 | + icon="el-icon-download" | ||
7 | + @click="()=>downExcel()" | ||
8 | + >下载模版</el-link | ||
9 | + > | ||
10 | + </div> | ||
11 | + <div class="d1"> | ||
12 | + 第二步:上传完成编辑的模板文件并导入 | ||
13 | + <el-upload | ||
14 | + class="upload-demo" | ||
15 | + ref="upload" | ||
16 | + action="/api/web/report/importSubjectiveScore" | ||
17 | + :multiple="false" | ||
18 | + :data="{ id: id }" | ||
19 | + :with-credentials="true" | ||
20 | + :limit="1" | ||
21 | + :on-change="change" | ||
22 | + :on-success="upSuccess" | ||
23 | + :on-error="upError" | ||
24 | + > | ||
25 | + <!-- accept="application/vnd.ms-excel" --> | ||
26 | + <el-button class="btn" size="mini" type="primary" | ||
27 | + >选择文件并上传</el-button | ||
28 | + > | ||
29 | + </el-upload> | ||
30 | + </div> | ||
6 | </div> | 31 | </div> |
7 | </template> | 32 | </template> |
8 | 33 | ||
9 | <script> | 34 | <script> |
35 | +import { downloadTemplate } from "@/api/report"; | ||
36 | +import { downloadFile } from "@/utils"; | ||
10 | export default { | 37 | export default { |
38 | + name: "downUpData", | ||
39 | + props: { | ||
40 | + id: { | ||
41 | + type: String, | ||
42 | + default: "", | ||
43 | + }, | ||
44 | + classObject: { | ||
45 | + type: Object, | ||
46 | + default: ()=> { | ||
47 | + return {} | ||
48 | + }, | ||
49 | + } | ||
50 | + }, | ||
51 | + data() { | ||
52 | + return { | ||
53 | + file: null, | ||
54 | + }; | ||
55 | + }, | ||
56 | + methods: { | ||
57 | + async submitUpload() { | ||
58 | + this.$refs.upload.submit(); | ||
11 | 59 | ||
12 | -} | 60 | + // const formData = new FormData() |
61 | + // formData.append('id',this.componentId) | ||
62 | + // formData.append('file',new File(this.file.raw)) | ||
63 | + // let {status,info} = await uploadExcel(formData); | ||
64 | + // if(status===0){ | ||
65 | + // this.$message.success(info); | ||
66 | + // this.$emit("upSuccess") | ||
67 | + // } else { | ||
68 | + // this.$message.error(info); | ||
69 | + // } | ||
70 | + }, | ||
71 | + upSuccess(res) { | ||
72 | + if (res && res.code == 0 && res.success) { | ||
73 | + this.$message.success("上传成功"); | ||
74 | + this.$emit("upSuccess"); | ||
75 | + } else { | ||
76 | + this.$message.error(res.message); | ||
77 | + } | ||
78 | + }, | ||
79 | + upError(res) { | ||
80 | + if (res && res.status == 0) { | ||
81 | + this.$message.success("上传成功"); | ||
82 | + this.$emit("upSuccess"); | ||
83 | + } else { | ||
84 | + this.$message.error(res.message); | ||
85 | + } | ||
86 | + }, | ||
87 | + change(file) { | ||
88 | + this.file = file; | ||
89 | + }, | ||
90 | + async downExcel() { | ||
91 | + let data = await downloadTemplate({ | ||
92 | + id: this.id, | ||
93 | + }); | ||
94 | + if (data && !data.code) { | ||
95 | + let filename = "模板.xlsx"; | ||
96 | + if (this.classObject) { | ||
97 | + let className = this.classObject.classObject?.[0].label; | ||
98 | + filename = className + "_" + this.classObject.subjectName + "_" + this.classObject.examinationName + "_主观题分数导入.xlsx"; | ||
99 | + } | ||
100 | + let blob = new Blob([data], { | ||
101 | + type: "application/vnd.ms-excel;charset=utf-8", | ||
102 | + }); | ||
103 | + downloadFile(filename, blob); | ||
104 | + } else { | ||
105 | + this.$message.error(data.message); | ||
106 | + } | ||
107 | + }, | ||
108 | + }, | ||
109 | +}; | ||
13 | </script> | 110 | </script> |
14 | 111 | ||
15 | -<style> | ||
16 | - | ||
17 | -</style> | ||
18 | \ No newline at end of file | 112 | \ No newline at end of file |
113 | +<style lang="scss" scoped> | ||
114 | +.d1 { | ||
115 | + padding: 10px; | ||
116 | +} | ||
117 | +.btn { | ||
118 | + margin-top: 20px; | ||
119 | + border-radius: 8px; | ||
120 | + font-weight: normal; | ||
121 | +} | ||
122 | +</style> |