|
1 | 1 | <template>
|
2 | 2 | <div class="demo">
|
3 |
| - <el-image |
4 |
| - v-for="(item, index) in list" |
5 |
| - :key="index" |
6 |
| - :src="item" |
7 |
| - :style="{ width: '100px', marginRight: '10px' }" |
8 |
| - /> |
| 3 | + <el-tabs type="card"> |
| 4 | + <el-tab-pane label="普通上传"> |
| 5 | + <cl-upload v-model="urls" /> |
| 6 | + </el-tab-pane> |
9 | 7 |
|
10 |
| - <div class="item"> |
11 |
| - <p>普通上传</p> |
12 |
| - <cl-upload v-model="urls" /> |
13 |
| - </div> |
| 8 | + <el-tab-pane label="多图上传" lazy> |
| 9 | + <cl-upload text="选择图片" v-model="urls" multiple drag /> |
| 10 | + </el-tab-pane> |
14 | 11 |
|
15 |
| - <div class="item"> |
16 |
| - <p>多图上传 multiple</p> |
17 |
| - <cl-upload v-model="urls" multiple drag /> |
18 |
| - </div> |
| 12 | + <el-tab-pane label="文件上传" lazy> |
| 13 | + <cl-upload v-model="urls" multiple text="文件上传" type="file" /> |
| 14 | + </el-tab-pane> |
19 | 15 |
|
20 |
| - <div class="item"> |
21 |
| - <p>文件上传 file</p> |
22 |
| - <cl-upload v-model="urls" multiple text="文件上传" type="file" /> |
23 |
| - </div> |
| 16 | + <el-tab-pane label="自定义内容"> |
| 17 | + <cl-upload text="选择图片" multiple drag custom-class="custom-upload"> |
| 18 | + <el-button :icon="Upload">上传</el-button> |
24 | 19 |
|
25 |
| - <div class="item"> |
26 |
| - <p>自定义内容</p> |
27 |
| - <cl-upload text="选择图片" multiple drag> |
28 |
| - <div style="width: 100%"> |
29 |
| - <el-button>上传</el-button> |
30 |
| - </div> |
31 |
| - <template #item="{ item }"> |
32 |
| - <div class="cs-item">{{ item.url }}</div> |
33 |
| - </template> |
34 |
| - </cl-upload> |
35 |
| - </div> |
| 20 | + <template #item="{ item }"> |
| 21 | + <div class="item" v-show="item.url">{{ item.url }}</div> |
| 22 | + </template> |
| 23 | + </cl-upload> |
| 24 | + </el-tab-pane> |
36 | 25 |
|
37 |
| - <div class="item"> |
38 |
| - <p>自定义大小</p> |
39 |
| - <cl-upload text="选择图片" :size="[120, 200]" /> |
40 |
| - </div> |
| 26 | + <el-tab-pane label="自定义大小"> |
| 27 | + <cl-upload text="选择图片" :size="[120, 200]" /> |
| 28 | + </el-tab-pane> |
41 | 29 |
|
42 |
| - <div class="item"> |
43 |
| - <p>文件空间</p> |
44 |
| - <cl-upload-space /> |
45 |
| - </div> |
| 30 | + <el-tab-pane label="文件空间"> |
| 31 | + <cl-upload-space /> |
| 32 | + </el-tab-pane> |
| 33 | + </el-tabs> |
46 | 34 | </div>
|
47 | 35 | </template>
|
48 | 36 |
|
49 | 37 | <script lang="ts" name="upload" setup>
|
50 |
| -import { computed, ref } from "vue"; |
| 38 | +import { ref } from "vue"; |
| 39 | +import { Upload } from "@element-plus/icons-vue"; |
51 | 40 |
|
52 | 41 | const urls = ref("");
|
53 |
| -const list = computed(() => urls.value.split(",").filter(Boolean)); |
54 | 42 | </script>
|
55 | 43 |
|
56 | 44 | <style lang="scss" scoped>
|
57 | 45 | .demo {
|
58 | 46 | background-color: var(--el-bg-color);
|
59 |
| - .item { |
60 |
| - margin-bottom: 10px; |
61 |
| - padding: 10px; |
| 47 | + padding: 10px; |
| 48 | + height: 100%; |
| 49 | + box-sizing: border-box; |
62 | 50 |
|
63 |
| - & > p { |
64 |
| - margin-bottom: 10px; |
65 |
| - font-size: 14px; |
| 51 | + :deep(.custom-upload) { |
| 52 | + .item { |
| 53 | + border: 1px solid var(--el-border-color); |
| 54 | + border-radius: 3px; |
| 55 | + padding: 5px 10px; |
| 56 | + margin-top: 10px; |
| 57 | + font-size: 12px; |
| 58 | + width: 100%; |
| 59 | + box-sizing: border-box; |
66 | 60 | }
|
67 |
| - } |
68 | 61 |
|
69 |
| - .cs-item { |
70 |
| - border: 1px solid var(--el-border-color); |
71 |
| - padding: 5px 10px; |
| 62 | + .cl-upload__list { |
| 63 | + width: 100%; |
| 64 | + } |
72 | 65 | }
|
73 | 66 | }
|
74 | 67 | </style>
|
0 commit comments