diff --git a/src/router/index.js b/src/router/index.js index 2471de88..1d9b489f 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -106,6 +106,11 @@ const constantRoutes = [ meta: { noRedirectLogin: true }, component: () => import(/* webpackChunkName: "answer" */ '../views/Answer/Index.vue') }, + { + path: '/answer/limitResult', + name: 'AnswerLimitResult', + component: () => import(/* webpackChunkName: "answer" */ '../views/Answer/pages/AnswerLimitResult.vue') + }, { path: '/preview', name: 'Preview', diff --git a/src/views/Answer/components/QuestionsMob.vue b/src/views/Answer/components/QuestionsMob.vue index c62a6544..d0f5ecd1 100644 --- a/src/views/Answer/components/QuestionsMob.vue +++ b/src/views/Answer/components/QuestionsMob.vue @@ -45,7 +45,8 @@ diff --git a/src/views/Answer/components/QuestionsPc.vue b/src/views/Answer/components/QuestionsPc.vue index bcdd110b..fbaa4f86 100644 --- a/src/views/Answer/components/QuestionsPc.vue +++ b/src/views/Answer/components/QuestionsPc.vue @@ -63,7 +63,8 @@ diff --git a/src/views/Answer/components/js/answer.js b/src/views/Answer/components/js/answer.js index ecbe37d4..ab99cefa 100644 --- a/src/views/Answer/components/js/answer.js +++ b/src/views/Answer/components/js/answer.js @@ -76,6 +76,16 @@ export default defineComponent({ is_test: proxy.$route.query.is_test, }, }); + + // 专门为 正式环境中 这两个问卷写的功能,talr 用于测试环境进行测试 + if (data.action?.code === 20017 && (['7YGakdEN', 'oxy4lVY6'].includes(proxy.$route.query.sn) || proxy.$route.query['talr'])) { + proxy.$router.push({ + path: '/answer/limitResult', + query: {...(proxy.$route.query || {})}, + }) + return + } + // 多语言 data.languageType = [ data?.survey?.style?.is_en_tips ? "en" : "", diff --git a/src/views/Answer/components/js/questions.js b/src/views/Answer/components/js/questions.js index 442113bc..782d9026 100644 --- a/src/views/Answer/components/js/questions.js +++ b/src/views/Answer/components/js/questions.js @@ -703,9 +703,62 @@ export default defineComponent({ page.value += 1; } scrollbar.value.scrollTop = 0; + jumpImmediately(); // 如果有结束跳转,则判断是否需要立即跳转 }, callbackBeforePage); } + function jumpImmediately() { + if (page.value !== pages.value.length + 1) { + return; + } + const code = questionsData.value.action.code; + const survey = questionsData.value.survey; + let countTime = 0; + let url = ''; + + page.value += 2; // 防止 QuestionsMob QuestionPc 组件里显示最后一页 + questionsData.value.action.code = 9999999; // 防止 AnswerMob AnswerPc 组件里显示最后一页 + + if ((code === 20004 && survey.screening_end_url_select && survey.screening_end_url)) { + countTime = survey.screening_standing_time; + url = survey.screening_end_url; + } + if ((code === 20011 && survey.success_end_url_select && survey.success_end_url)) { + countTime = survey.success_standing_time; + url = survey.success_end_url + } + if ((code === 20016 && survey.quota_end_url_select && survey.quota_end_url)) { + countTime = survey.quota_standing_time; + url = survey.quota_end_url + } + + // 跳转链接 + if (countTime <= 0 && url) { + url = url.replaceAll('#sn#', questionsData.value.answer.sn); + url = url.replaceAll('#user#', questionsData.value.answer.respondent); + url = url.replaceAll('#survey_sn#', questionsData.value.answer.survey_sn); + if (proxy.$route.query.source === 'YILI_APP_WANGYI') { + Object.keys(proxy.$route.query).forEach((key) => { + if (!['sn', 'source', 'is_template', 'channelUCode'].includes(key)) { + url += `${ url.indexOf('?') === -1 ? '?' : '&' }${ key }=${ proxy.$route.query[key] }`; + } + }); + } + // 判断是否小程序路径 + if (url[0] === '/') { + // 判断是否在小程序环境 + wx.miniProgram.getEnv(() => { + wx.miniProgram.redirectTo({url}); + }); + } else { + if (url.indexOf('http://') === -1 && url.indexOf('https://') === -1) { + url = `http://${ url }`; + } + open(url, '_self'); + } + } + } + // 选项隐藏 function hideOptions(hide) { const questionIndex = hide?.question_index; diff --git a/src/views/Answer/pages/AnswerLimitResult.vue b/src/views/Answer/pages/AnswerLimitResult.vue new file mode 100644 index 00000000..e34e9c30 --- /dev/null +++ b/src/views/Answer/pages/AnswerLimitResult.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/src/views/Answer/pages/img/answer-limit-result.jpg b/src/views/Answer/pages/img/answer-limit-result.jpg new file mode 100644 index 00000000..140cac6a Binary files /dev/null and b/src/views/Answer/pages/img/answer-limit-result.jpg differ