qtsk-vue3 0.0.30 → 0.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,19 @@
1
1
  <template>
2
2
  <div class="normalClass">
3
3
  <el-upload
4
- class="upload-demo"
4
+ class="upload-demo"
5
+ ref="uploadRef"
5
6
  drag
6
7
  accept=".xls,.xlsx"
7
8
  :name="name"
8
9
  :limit="limit"
9
10
  :file-list="fileListRef"
10
- :before-upload="beforeUpload"
11
11
  :on-success="handleSuccess"
12
+ :on-change="handleChange"
12
13
  :headers="headers"
14
+ :data="data"
15
+ :disabled="fileListRef.length === 0 ? false : true"
16
+ :auto-upload="false"
13
17
  :action="url">
14
18
  <Icons :type="'Plus'" :size="30"></Icons>
15
19
  <div class="el-upload__text">
@@ -21,7 +25,7 @@
21
25
  </template>
22
26
 
23
27
  <script setup>
24
- import { ref } from 'vue'
28
+ import { ref, watch } from 'vue'
25
29
  import { ElUpload } from 'element-plus'
26
30
  import Icons from '../Icons/index.vue'
27
31
  import { Message } from '../Message/index.js'
@@ -39,41 +43,53 @@ defineProps({
39
43
  type: Object,
40
44
  default: () => ({})
41
45
  },
42
- limit: Number
46
+ limit: Number,
47
+ data: {
48
+ type: Object,
49
+ default: () => ({})
50
+ }
43
51
  })
44
52
 
45
53
  const fileListRef = ref([])
54
+ const uploadRef = ref(null)
46
55
  const emits = defineEmits(['successUpload'])
47
- const beforeUpload = (file) => {
56
+
57
+ const handleChange = (file) => {
58
+ const files = fileListRef.value || []
59
+ if (files.length) return false
48
60
  const isAllowedType = /\.(xls|xlsx)$/.test(file.name);
49
61
  const isAllowedSize = file.size / 1024 / 1024 < 5;;
50
-
51
62
  if (!isAllowedType) {
52
- Message.error('只能上传xls,xlsx文件!');
63
+ fileListRef.value = []
64
+ return Message.error('只能上传xls,xlsx文件!');
53
65
  }
54
66
  if (!isAllowedSize) {
55
- Message.error('上传文件不能超过 5M');
67
+ fileListRef.value = []
68
+ return Message.error('上传文件不能超过 5M');
56
69
  }
57
- return isAllowedType && isAllowedSize;
70
+ const size = (file.size / 1024).toFixed(2)
71
+ const name = `${file.name} (${size}K)`
72
+ files.push(
73
+ {
74
+ name
75
+ }
76
+ );
77
+ fileListRef.value = files
78
+ const uploadElement = document.getElementsByClassName('el-upload')[0]
79
+ uploadElement.style.display = 'none'
58
80
  }
59
-
60
81
  const handleSuccess = (res, file, fileList) => {
61
82
  if (res.code === 200) {
62
- const size = (file.size / 1024).toFixed(2)
63
- const name = `${file.name} (${size}K)`
64
- console.log('fileList.value1', fileListRef.value)
65
- const files = fileListRef.value || []
66
- files.push(
67
- {
68
- name
69
- }
70
- );
71
- fileListRef.value = files
72
83
  emits('successUpload', res)
73
84
  } else {
74
85
  Message.error(res.msg || res.data.msg || res.message || '上传失败')
75
86
  }
76
87
  }
88
+
89
+ defineExpose({
90
+ handleUpload: () => { uploadRef.value.submit() },
91
+ getFileList: () => fileListRef.value.length
92
+ })
77
93
  </script>
78
94
 
79
95
  <style lang="less" scoped>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qtsk-vue3",
3
- "version": "0.0.30",
3
+ "version": "0.0.32",
4
4
  "description": "vue3版组件库",
5
5
  "main": "./package/index.js",
6
6
  "scripts": {