|
@@ -16,6 +16,23 @@
|
|
|
<div class="design-preview-frame" v-if="cardPreviewUrl">
|
|
|
<iframe :src="cardPreviewUrl" frameborder="0"></iframe>
|
|
|
</div>
|
|
|
+ <!-- card-view-dialog -->
|
|
|
+ <el-dialog
|
|
|
+ class="card-view-dialog"
|
|
|
+ :visible.sync="dialogIsShow"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :close-on-press-escape="false"
|
|
|
+ append-to-body
|
|
|
+ fullscreen
|
|
|
+ @closed="dialogClosed"
|
|
|
+ >
|
|
|
+ <iframe
|
|
|
+ v-if="dialogIsShow && cardDialogPreviewUrl"
|
|
|
+ :src="cardDialogPreviewUrl"
|
|
|
+ frameborder="0"
|
|
|
+ :style="dialogFrameStyle"
|
|
|
+ ></iframe>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -49,6 +66,10 @@ export default {
|
|
|
cardPreviewUrl: "",
|
|
|
canSave: false,
|
|
|
dataReady: false,
|
|
|
+ // card-view-dialog
|
|
|
+ dialogIsShow: false,
|
|
|
+ cardDialogPreviewUrl: "",
|
|
|
+ dialogFrameStyle: {},
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
@@ -78,8 +99,20 @@ export default {
|
|
|
// }
|
|
|
this.initCard();
|
|
|
this.registWindowSubmit();
|
|
|
+ // card-view
|
|
|
+ this.initFrameStyle();
|
|
|
+ window.addEventListener("resize", this.initFrameStyle);
|
|
|
},
|
|
|
methods: {
|
|
|
+ initFrameStyle() {
|
|
|
+ this.dialogFrameStyle = {
|
|
|
+ width: window.innerWidth + "px",
|
|
|
+ height: window.innerHeight + "px",
|
|
|
+ overflow: "auto",
|
|
|
+ border: "none",
|
|
|
+ outline: "none",
|
|
|
+ };
|
|
|
+ },
|
|
|
async initCard() {
|
|
|
this.dataReady = false;
|
|
|
if (this.isEdit) {
|
|
@@ -197,18 +230,28 @@ export default {
|
|
|
if (this.cardId) cardInfo.id = this.cardId;
|
|
|
return cardInfo;
|
|
|
},
|
|
|
- async toPreview(cardModel) {
|
|
|
- const res = await this.toSave(cardModel);
|
|
|
- if (!res) return;
|
|
|
-
|
|
|
+ // card preview dialog
|
|
|
+ dialogClosed() {
|
|
|
+ this.cardDialogPreviewUrl = "";
|
|
|
+ },
|
|
|
+ toPreview(cardData) {
|
|
|
+ window.cardData = {
|
|
|
+ ...cardData,
|
|
|
+ createMethod: this.cardCreateMethod,
|
|
|
+ type: this.cardType,
|
|
|
+ };
|
|
|
const { href } = this.$router.resolve({
|
|
|
name: "CardPreview",
|
|
|
params: {
|
|
|
- cardId: this.cardId,
|
|
|
- viewType: "view",
|
|
|
+ cardId: 1,
|
|
|
+ viewType: "frame-view",
|
|
|
+ },
|
|
|
+ query: {
|
|
|
+ t: Date.now(),
|
|
|
},
|
|
|
});
|
|
|
- window.open(href);
|
|
|
+ this.cardDialogPreviewUrl = href;
|
|
|
+ this.dialogIsShow = true;
|
|
|
},
|
|
|
// save
|
|
|
async toSave(datas) {
|
|
@@ -332,6 +375,7 @@ export default {
|
|
|
beforeDestroy() {
|
|
|
this.$ls.remove("cardId");
|
|
|
this.$ls.remove("prepareTcPCard");
|
|
|
+ window.removeEventListener("resize", this.initFrameStyle);
|
|
|
delete window.submitCardTemp;
|
|
|
},
|
|
|
};
|