diff --git a/public/index.html b/public/index.html index c4fcea4..45df6a9 100644 --- a/public/index.html +++ b/public/index.html @@ -3,10 +3,18 @@ - + + + + + + + + diff --git a/src/components/common/head.vue b/src/components/common/head.vue index dfdaff8..c0349e2 100644 --- a/src/components/common/head.vue +++ b/src/components/common/head.vue @@ -66,7 +66,9 @@ export default { // this.$router.push('/login'); this.$router.push('/myPage'); if (this.$route.name == 'myPage') { - window.location.reload(); + await this.$router.go(0); + // window.location.reload(); + // this.$forceUpdate(); } localStorage.removeItem('AccessToken'); } catch (error) { diff --git a/src/mixins/leaveDialog.js b/src/mixins/leaveDialog.js new file mode 100644 index 0000000..832e167 --- /dev/null +++ b/src/mixins/leaveDialog.js @@ -0,0 +1,49 @@ +import { Dialog } from 'vant'; +export default { + data() { + return { + currentUrl: "" + } + }, + create() { + console.log('初始化了'); + }, + mounted() { + // this.currentUrl = window.location.href + // 监听浏览器返回 + window.addEventListener("popstate", this.beforeUnloadHandler, false) + }, + destroyed() { + window.removeEventListener("popstate", this.beforeUnloadHandler, false) + }, + methods: { + beforeUnloadHandler(event) { + event.returnValue = "离开此页面?" // 此处返回任意字符串,不返回null即可,不能修改默认提示内容 + // console.log('beforeUnloadHandler'); + event.preventDefault(); + event.returnValue = ''; + const message = '确定离开页面吗?' + event.returnValue = message + return message + }, + + }, + beforeRouteLeave(to, from, next) { + let that=this + setTimeout(() => { + Dialog.confirm({ + message: '需要保存草稿吗?', + cancelButtonText: '狠心离去', + confirmButtonText:'保存' + }) + .then(async () => { + await that.submit(2); // 保存草稿 + next() + }) + .catch(() => { + next() + }) + },200) + } + +} diff --git a/src/utils/request.js b/src/utils/request.js index 5355734..0912300 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -45,7 +45,7 @@ request.interceptors.response.use( } else if (code != 200) { if (code == 1053) { router.push("/login"); - Toast.fail("请您先登录!"); + // Toast.fail("请您先登录!"); return } else if (code == 500) { diff --git a/src/views/login/login.vue b/src/views/login/login.vue index 3e319a9..a3869af 100644 --- a/src/views/login/login.vue +++ b/src/views/login/login.vue @@ -458,6 +458,10 @@ export default { }, // 提交邀请码 submitInviteCode() { + if (!this.form.inviteCode) { + Toast.fail('邀请码不能为空'); + return; + } const data = { inviteCode: this.form.inviteCode }; diff --git a/src/views/model/editModel.vue b/src/views/model/editModel.vue index 4bec6ed..5bfdf67 100644 --- a/src/views/model/editModel.vue +++ b/src/views/model/editModel.vue @@ -322,7 +322,7 @@ import { mapState, mapActions } from 'vuex'; import HeadTop from './../../components/common/head.vue'; import CutImg from '../../components/CutImg.vue'; import EditPosition from '../../components/editPosition.vue'; - +import leaveDialog from '../../mixins/leaveDialog'; // 工具 import { scrollToID } from '../../utils'; // 语言检测插件 @@ -342,6 +342,7 @@ import { getModelDetailById } from '../../api/getPaper.js'; Vue.use(-Toast); export default { + mixins: [leaveDialog], components: { HeadTop, CutImg, @@ -1038,6 +1039,7 @@ export default { // await this.submit(2); // 保存草稿 // console.log('保存了'); } + // 使用路由守卫判断是否离开当前页面 }; diff --git a/src/views/model/videoCreate.vue b/src/views/model/videoCreate.vue index 740c54d..8d64098 100644 --- a/src/views/model/videoCreate.vue +++ b/src/views/model/videoCreate.vue @@ -2,6 +2,9 @@
+
+ +

提交视频生成成功

请耐心等待

@@ -34,7 +37,7 @@ export default { data() { return { inPage: false, - countdown: 10, + countdown: 10000, timer: null }; }, diff --git a/src/views/myPage/myPage.vue b/src/views/myPage/myPage.vue index 6347d16..f0e8807 100644 --- a/src/views/myPage/myPage.vue +++ b/src/views/myPage/myPage.vue @@ -16,7 +16,7 @@ 只看竖屏 只看横屏 草稿箱 - 已完成 + 返回视频列表
@@ -317,7 +317,7 @@ export default { async loadVideoList(pageNum, pageSize, videoType) { if (!this.hasToken) { // this.$router.push('/login'); - Toast.fail('请您先登录!'); + // Toast.fail('请您先登录!'); return; } try {