@@ -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 ;
0 commit comments