|
@@ -32,19 +32,24 @@
|
|
|
{ [`${prefixCls}-imgs-nosition`]: nosition }
|
|
|
]"
|
|
|
:style="styles"
|
|
|
- v-show="!loading && curImage.imgSrc"
|
|
|
v-if="modalIsShow"
|
|
|
>
|
|
|
<img
|
|
|
+ :key="curImage.imgSrc"
|
|
|
:src="curImage.imgSrc"
|
|
|
:alt="curImage.name"
|
|
|
ref="PreviewImgDetail"
|
|
|
+ @load="reizeImage"
|
|
|
/>
|
|
|
</div>
|
|
|
<div :class="[`${prefixCls}-none`]" v-if="!curImage.imgSrc">
|
|
|
<Icon type="md-image" />
|
|
|
<p>暂无数据</p>
|
|
|
</div>
|
|
|
+
|
|
|
+ <div :class="[`${prefixCls}-loading`]" v-show="loading">
|
|
|
+ <Icon class="ivu-load-loop" type="ios-loading" />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
|
|
|
<div :class="[`${prefixCls}-footer`]">
|
|
@@ -54,10 +59,6 @@
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
-
|
|
|
- <div :class="[`${prefixCls}-loading`]" v-show="loading">
|
|
|
- <Icon class="ivu-load-loop" type="ios-loading" />
|
|
|
- </div>
|
|
|
</Modal>
|
|
|
</template>
|
|
|
|
|
@@ -92,25 +93,39 @@ export default {
|
|
|
watch: {
|
|
|
"curImage.imgSrc": {
|
|
|
handler(val) {
|
|
|
- if (val) this.loading = true;
|
|
|
+ if (val) {
|
|
|
+ this.loadingSetT = setTimeout(() => {
|
|
|
+ this.loading = true;
|
|
|
+ }, 300);
|
|
|
+ this.styles = {
|
|
|
+ width: "",
|
|
|
+ height: "",
|
|
|
+ top: "",
|
|
|
+ left: "",
|
|
|
+ transform: ""
|
|
|
+ };
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
visibleChange(visible) {
|
|
|
if (!visible) return;
|
|
|
- this.loading = true;
|
|
|
- this.$nextTick(() => {
|
|
|
- this.registfileLoad();
|
|
|
- });
|
|
|
+ // this.loading = true;
|
|
|
+ // this.$nextTick(() => {
|
|
|
+ // this.registfileLoad();
|
|
|
+ // });
|
|
|
},
|
|
|
- registfileLoad() {
|
|
|
+ // registfileLoad() {
|
|
|
+ // const imgDom = this.$refs.PreviewImgDetail;
|
|
|
+ // imgDom.onload = () => {
|
|
|
+ // this.reizeImage(imgDom);
|
|
|
+ // };
|
|
|
+ // },
|
|
|
+ reizeImage() {
|
|
|
+ if (this.loadingSetT) clearTimeout(this.loadingSetT);
|
|
|
+
|
|
|
const imgDom = this.$refs.PreviewImgDetail;
|
|
|
- imgDom.onload = () => {
|
|
|
- this.rezizeImage(imgDom);
|
|
|
- };
|
|
|
- },
|
|
|
- rezizeImage(imgDom) {
|
|
|
const { naturalWidth, naturalHeight } = imgDom;
|
|
|
const imageSize = this.getImageSizePos({
|
|
|
win: {
|
|
@@ -129,14 +144,14 @@ export default {
|
|
|
height: imageSize.height + "px",
|
|
|
top: imageSize.top + "px",
|
|
|
left: imageSize.left + "px",
|
|
|
- transform: ""
|
|
|
+ marginLeft: "auto",
|
|
|
+ transform: "none"
|
|
|
});
|
|
|
this.transform = {
|
|
|
scale: 1,
|
|
|
rotate: 0
|
|
|
};
|
|
|
this.loading = false;
|
|
|
- console.log(11);
|
|
|
setTimeout(() => {
|
|
|
this.nosition = false;
|
|
|
}, 100);
|
|
@@ -230,6 +245,7 @@ export default {
|
|
|
this.nosition = false;
|
|
|
}, 100);
|
|
|
}, 200);
|
|
|
+ // 200ms当次旋转动画持续时间
|
|
|
}
|
|
|
}
|
|
|
}
|