Skip to content

Commit c252084

Browse files
authored
feat: remove preview component using el-image instead (#435)
1 parent 6758449 commit c252084

File tree

26 files changed

+67
-528
lines changed

26 files changed

+67
-528
lines changed

.env.development

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
ENV = 'development'
22

3-
VUE_APP_BASE_URL = 'http://face.api.talelin.com/'
3+
VUE_APP_BASE_URL = 'http://localhost:5000/'

src/assets/style/realize/element-variable.scss

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -423,11 +423,11 @@ thead tr {
423423
overflow-y: auto;
424424
}
425425

426-
.el-menu--vertical ::v-deep .icon-erjizhibiao {
426+
.el-menu--vertical :v-deep(.icon-erjizhibiao) {
427427
display: none;
428428
}
429429

430-
.el-menu--vertical ::v-deep .two-folder {
430+
.el-menu--vertical :v-deep(.two-folder) {
431431
margin-left: 40px;
432432
}
433433

src/component/base/preview/preview.vue

Lines changed: 0 additions & 225 deletions
This file was deleted.

src/component/base/search/lin-search.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export default {
4343
}
4444
</script>
4545
<style lang="scss" scoped>
46-
.lin-search ::v-deep .el-input__inner {
46+
.lin-search :v-deep(.el-input__inner) {
4747
width: 150px;
4848
border-radius: 20px;
4949
transition: all 0.2s linear;
@@ -53,7 +53,7 @@ export default {
5353
transition: all 0.3s linear;
5454
}
5555
}
56-
.lin-search ::v-deep .el-input__suffix {
56+
.lin-search :v-deep(.el-input__suffix) {
5757
cursor: pointer;
5858
}
5959
</style>

src/component/base/upload-image/index.vue

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,15 @@ todo: 文件判断使用 serveWorker 优化性能
1111
<template v-for="(item, i) in itemList">
1212
<template v-if="item.display">
1313
<div class="thumb-item" :key="item.id" :style="boxStyle" v-loading="item.loading">
14-
<el-image class="thumb-item-img" :src="item.display" :fit="fit" style="width: 100%; height: 100%;"></el-image>
14+
<el-image
15+
:fit="fit"
16+
:ref="setImageRef"
17+
:src="item.display"
18+
class="thumb-item-img"
19+
:previewSrcList="srcList"
20+
style="width: 100%; height: 100%;"
21+
>
22+
</el-image>
1523
<div class="info">
1624
<i
1725
v-if="item.file"
@@ -73,6 +81,7 @@ todo: 文件判断使用 serveWorker 优化性能
7381
:multiple="multiple"
7482
:accept="accept"
7583
/>
84+
<!-- <el-image-viewer v-if="showViewer" @close="closeViewer" :initial-index="imageInitialIndex" :url-list="srcList" /> -->
7685
</div>
7786
</template>
7887

@@ -221,10 +230,12 @@ export default {
221230
name: 'UploadImgs',
222231
data() {
223232
return {
233+
srcList: [],
224234
itemList: [],
235+
imageRefs: [],
225236
loading: false,
226237
currentId: '', // 正在操作项的id
227-
globalImgPriview: '$imagePreview', // 全局图片预览方法名
238+
imageInitialIndex: 0,
228239
}
229240
},
230241
props: {
@@ -714,23 +725,13 @@ export default {
714725
* @param {Number} index 索引序号
715726
*/
716727
previewImg(data, index) {
717-
// 如果有全局预览方法
718-
if (this[this.globalImgPriview]) {
719-
const images = []
720-
this.itemList.forEach(element => {
721-
if (element.display) {
722-
images.push(element.display)
723-
}
724-
})
725-
this[this.globalImgPriview]({
726-
images,
727-
index,
728-
})
729-
} else {
730-
// element 原生粗糙模式
731-
this.$confirm(`<img src="${data.display}" style="width: 100%;" />`, '预览', {
732-
dangerouslyUseHTMLString: true,
733-
})
728+
const usable = this.itemList.filter(item => item.status !== 'input')
729+
this.srcList = usable.map(item => item.display)
730+
this.imageRefs[index].showViewer = true
731+
},
732+
setImageRef(el) {
733+
if (el) {
734+
this.imageRefs.push(el)
734735
}
735736
},
736737
/**
@@ -1079,6 +1080,12 @@ export default {
10791080
}
10801081
10811082
.thumb-item {
1083+
:v-deep(.el-image-viewer__canvas) {
1084+
position: absolute;
1085+
max-width: 800px;
1086+
left: 50%;
1087+
transform: translateX(-50%);
1088+
}
10821089
.info {
10831090
display: flex;
10841091
align-items: center;

src/component/layout/user.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -392,12 +392,12 @@ export default {
392392
</script>
393393
394394
<style lang="scss" scoped>
395-
.user-dialog ::v-deep .el-dialog .el-dialog__header {
395+
.user-dialog :v-deep(.el-dialog .el-dialog__header) {
396396
border-bottom: 1px solid #dae1ed;
397397
padding-bottom: 20px;
398398
}
399399
400-
.user-dialog ::v-deep .el-dialog .el-dialog__body {
400+
.user-dialog :v-deep(.el-dialog .el-dialog__body) {
401401
padding-bottom: 00px;
402402
}
403403

0 commit comments

Comments
 (0)