![]()
- {{ survey.scene_name }}
+ {{ survey.scene_name }} |
![]()
- {{ survey.source === 1 ? '移动端' : 'PC端' }}
+ {{ survey.source === 1 ? '移动端' : 'PC端' }} |
![]()
@@ -46,7 +46,7 @@ import { consoleSurveys } from '@/api/home/index.js';
const survey = ref({
project_name: ''
});
-const fetchSurveys = async() => {
+const fetchSurveys = async () => {
const params = {
page: 1,
per_page: 10,
@@ -117,18 +117,22 @@ onMounted(() => {
.survey_con_label {
margin-left: 10px;
color: #666;
- font-size: 12px;
+ font-size: 10px !important;
+
+ div {
+ margin-right: 5px;
+ }
}
.survey_remark {
+ box-sizing: border-box;
margin: 10px 0 0 10px;
- padding-bottom: 10px;
+ padding: 10px 5px;
+ border-radius: 10px;
color: #828282;
font-weight: 400;
font-style: normal;
font-size: 12px;
- line-height: 16px;
- text-align: left;
}
}
}
diff --git a/src/views/Market/Index.vue b/src/views/Market/Index.vue
index a9c47ed..e25ee42 100644
--- a/src/views/Market/Index.vue
+++ b/src/views/Market/Index.vue
@@ -3,7 +3,9 @@
报名/签到模板
-
报名签到 | 引用 {{ item }} 次 | 创建人: {{ '张三' }}
+
报名签到 | 引用 {{ item }} 次 | 创建人: {{ '张三' }}
diff --git a/src/views/Survey/views/Preview/components/AnswerViewer.vue b/src/views/Survey/views/Preview/components/AnswerViewer.vue
index 40b7c63..bb6bc21 100644
--- a/src/views/Survey/views/Preview/components/AnswerViewer.vue
+++ b/src/views/Survey/views/Preview/components/AnswerViewer.vue
@@ -227,8 +227,8 @@ export default defineComponent({
.map((option) => {
return this.wares.find(
(ware) =>
- ware.question_index === option.question_index
- && ware.option_index === option.option_index
+ ware.question_index === option.question_index &&
+ ware.option_index === option.option_index
);
});
wares = wares.filter((x) => x);
diff --git a/src/views/Survey/views/Preview/components/SceneSurveyViewerPage/Index.vue b/src/views/Survey/views/Preview/components/SceneSurveyViewerPage/Index.vue
index 176060e..1092d79 100644
--- a/src/views/Survey/views/Preview/components/SceneSurveyViewerPage/Index.vue
+++ b/src/views/Survey/views/Preview/components/SceneSurveyViewerPage/Index.vue
@@ -144,7 +144,7 @@ export default {
methods: {
debounce(func, wait) {
let timeout;
- return function(...args) {
+ return function (...args) {
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(this, args), wait);
};
diff --git a/src/views/Survey/views/Preview/components/questions/QLast.vue b/src/views/Survey/views/Preview/components/questions/QLast.vue
index f3fc728..5b28901 100644
--- a/src/views/Survey/views/Preview/components/questions/QLast.vue
+++ b/src/views/Survey/views/Preview/components/questions/QLast.vue
@@ -102,37 +102,37 @@ export default defineComponent({
const isEndUrl = computed(() => {
const code = props.action ? props.action.code : props.code;
return (
- (code === 20004
- && props.survey.screening_end_url_select
- && props.survey.screening_end_url)
- || (code === 20011 && props.survey.success_end_url_select && props.survey.success_end_url)
- || (code === 20016 && props.survey.quota_end_url_select && props.survey.quota_end_url)
+ (code === 20004 &&
+ props.survey.screening_end_url_select &&
+ props.survey.screening_end_url) ||
+ (code === 20011 && props.survey.success_end_url_select && props.survey.success_end_url) ||
+ (code === 20016 && props.survey.quota_end_url_select && props.survey.quota_end_url)
);
});
// 跳转
function toEndUrl() {
switch (props.action.code) {
- case 20004: // 被甄别
- if (props.survey.screening_end_url_select && props.survey.screening_end_url) {
- const url = props.survey.screening_end_url;
- toUrl(url);
- }
- break;
- case 20011: // 成功
- if (props.survey.success_end_url_select && props.survey.success_end_url) {
- const url = props.survey.success_end_url;
- toUrl(url);
- }
- break;
- case 20016: // 配额超限
- if (props.survey.quota_end_url_select && props.survey.quota_end_url) {
- const url = props.survey.quota_end_url;
- toUrl(url);
- }
- break;
- default:
- break;
+ case 20004: // 被甄别
+ if (props.survey.screening_end_url_select && props.survey.screening_end_url) {
+ const url = props.survey.screening_end_url;
+ toUrl(url);
+ }
+ break;
+ case 20011: // 成功
+ if (props.survey.success_end_url_select && props.survey.success_end_url) {
+ const url = props.survey.success_end_url;
+ toUrl(url);
+ }
+ break;
+ case 20016: // 配额超限
+ if (props.survey.quota_end_url_select && props.survey.quota_end_url) {
+ const url = props.survey.quota_end_url;
+ toUrl(url);
+ }
+ break;
+ default:
+ break;
}
}
diff --git a/src/views/Survey/views/Preview/components/questions/QRadio.vue b/src/views/Survey/views/Preview/components/questions/QRadio.vue
index 7884b24..d558f1a 100644
--- a/src/views/Survey/views/Preview/components/questions/QRadio.vue
+++ b/src/views/Survey/views/Preview/components/questions/QRadio.vue
@@ -264,16 +264,16 @@ export default defineComponent({
});
if (
- !compareArrayByField(options.value, newOptions, 'option_key')
- || !compareArrayByField(options.value, newOptions, 'option')
+ !compareArrayByField(options.value, newOptions, 'option_key') ||
+ !compareArrayByField(options.value, newOptions, 'option')
) {
options.value = newOptions;
}
// 清空值和答案
if (
- value.value
- && options.value.findIndex((option) => option.option_key === value.value) === -1
+ value.value &&
+ options.value.findIndex((option) => option.option_key === value.value) === -1
) {
// 清空值
value.value = '';
@@ -291,8 +291,8 @@ export default defineComponent({
() => options.value,
(val, oldVal) => {
if (
- compareArrayByField(val, oldVal || [], 'option_key')
- && compareArrayByField(val, oldVal || [], 'option')
+ compareArrayByField(val, oldVal || [], 'option_key') &&
+ compareArrayByField(val, oldVal || [], 'option')
) {
return;
}
diff --git a/src/views/Survey/views/Preview/components/questions/Question.vue b/src/views/Survey/views/Preview/components/questions/Question.vue
index b6df9da..1651686 100644
--- a/src/views/Survey/views/Preview/components/questions/Question.vue
+++ b/src/views/Survey/views/Preview/components/questions/Question.vue
@@ -132,8 +132,8 @@ export default defineComponent({
const value = matchValue.replace('[%cite(', '').replace(')%]', '');
let replacement = ''; // 替换文本
// 查找引用问题
- const question
- = props.questions.find((question) => {
+ const question =
+ props.questions.find((question) => {
// 矩阵题
if (question.question_type >= 8 && question.question_type <= 11) {
return question.title === value.split('_R')[0].split('_C')[0];
@@ -143,8 +143,8 @@ export default defineComponent({
return question.title === value.split('_A')[0];
}
return question.title === value;
- })
- || props.questions.find((question) => {
+ }) ||
+ props.questions.find((question) => {
// 矩阵题
if (question.question_type >= 8 && question.question_type <= 11) {
return question.title === (value + cycleIndexStr).split('_R')[0].split('_C')[0];
@@ -171,8 +171,8 @@ export default defineComponent({
replacement = answer[option.option_key];
}
} else if (
- question.question_type === 2
- && Object.keys(answer).length >= question.config.min_select
+ question.question_type === 2 &&
+ Object.keys(answer).length >= question.config.min_select
) {
// 查找引用选项(多选)
options.forEach((option) => {
diff --git a/src/views/Survey/views/Preview/js/language.js b/src/views/Survey/views/Preview/js/language.js
index f0e84d2..8b439cd 100644
--- a/src/views/Survey/views/Preview/js/language.js
+++ b/src/views/Survey/views/Preview/js/language.js
@@ -350,7 +350,7 @@ export const language = {
zh: '请点击查看图片'
},
NoteCantViewAfterTimeLimit: {
- en: 'Note: Can\'t view after time limit',
+ en: "Note: Can't view after time limit",
zh: '注意:超过显示时间限制后将无法再次查看'
},
DisplayTimeLimitExceeded: {
diff --git a/src/views/Survey/views/Preview/js/logical.js b/src/views/Survey/views/Preview/js/logical.js
index 1cf5d42..c8cf555 100644
--- a/src/views/Survey/views/Preview/js/logical.js
+++ b/src/views/Survey/views/Preview/js/logical.js
@@ -250,10 +250,10 @@ function quesHandle(answer, logChild) {
const matrixRateHandle = () => {
// 如果配置的逻辑中参数为空,则代表没有配置逻辑匹配值,此时不做校验
if (
- logChild.cell_index === 0
- || logChild.row_index === 0
- || !logChild.operator
- || !logChild.value
+ logChild.cell_index === 0 ||
+ logChild.row_index === 0 ||
+ !logChild.operator ||
+ !logChild.value
) {
return true;
}
@@ -265,10 +265,10 @@ function quesHandle(answer, logChild) {
const matrixInputHandle = () => {
// 如果配置的逻辑中参数为空,则代表没有配置逻辑匹配值,此时不做校验
if (
- logChild.cell_index === 0
- || logChild.row_index === 0
- || !logChild.operator
- || !logChild.value
+ logChild.cell_index === 0 ||
+ logChild.row_index === 0 ||
+ !logChild.operator ||
+ !logChild.value
) {
return true;
}
@@ -428,59 +428,59 @@ function getConditionStatus(logChild) {
if (answer) {
try {
switch (logChild.question_type) {
- case 1:
- quesStatus = quesHandles.choiceHandle(config);
- break;
- case 2:
- quesStatus = quesHandles.choiceCheckBoxHandle(config);
- break;
- case 3:
- quesStatus = quesHandles.cascaderHandle();
- break;
- case 4:
- quesStatus = quesHandles.inputHandle();
- break;
- case 5:
- quesStatus = quesHandles.rateHandle();
- break;
- case 7:
- quesStatus = quesHandles.dateTimeHandle();
- break;
- case 8:
- quesStatus = quesHandles.matrixInputHandle();
- break;
- case 9:
- quesStatus = quesHandles.matrixRadioHandle(config);
- break;
- case 10:
- quesStatus = quesHandles.matrixCheckboxHandle(config);
- break;
- case 11:
- quesStatus = quesHandles.matrixRateHandle();
- break;
- case 13:
- quesStatus = quesHandles.imgRadioHandle();
- break;
- case 14:
- quesStatus = quesHandles.imgCheckBoxHandle();
- break;
- case 15:
- quesStatus = quesHandles.classifyHandle();
- break;
- case 16:
- quesStatus = quesHandles.sortHandle();
- break;
- case 17:
- quesStatus = quesHandles.constantSumHandle();
- break;
- case 23:
- quesStatus = quesHandles.agreementHandle();
- break;
- case 101:
- quesStatus = quesHandles.psmHandle(config);
- break;
- default:
- break;
+ case 1:
+ quesStatus = quesHandles.choiceHandle(config);
+ break;
+ case 2:
+ quesStatus = quesHandles.choiceCheckBoxHandle(config);
+ break;
+ case 3:
+ quesStatus = quesHandles.cascaderHandle();
+ break;
+ case 4:
+ quesStatus = quesHandles.inputHandle();
+ break;
+ case 5:
+ quesStatus = quesHandles.rateHandle();
+ break;
+ case 7:
+ quesStatus = quesHandles.dateTimeHandle();
+ break;
+ case 8:
+ quesStatus = quesHandles.matrixInputHandle();
+ break;
+ case 9:
+ quesStatus = quesHandles.matrixRadioHandle(config);
+ break;
+ case 10:
+ quesStatus = quesHandles.matrixCheckboxHandle(config);
+ break;
+ case 11:
+ quesStatus = quesHandles.matrixRateHandle();
+ break;
+ case 13:
+ quesStatus = quesHandles.imgRadioHandle();
+ break;
+ case 14:
+ quesStatus = quesHandles.imgCheckBoxHandle();
+ break;
+ case 15:
+ quesStatus = quesHandles.classifyHandle();
+ break;
+ case 16:
+ quesStatus = quesHandles.sortHandle();
+ break;
+ case 17:
+ quesStatus = quesHandles.constantSumHandle();
+ break;
+ case 23:
+ quesStatus = quesHandles.agreementHandle();
+ break;
+ case 101:
+ quesStatus = quesHandles.psmHandle(config);
+ break;
+ default:
+ break;
}
} catch (error) {
// console.log(error);
@@ -519,10 +519,10 @@ function getlogicStatus(questionData) {
// } else {
// statusStr = statusStr + conditionStatus;
// }
- statusStr
- = statusStr
- + (logChild.logic === 'and' ? '&&' : logChild.logic === 'or' ? '||' : '')
- + conditionStatus;
+ statusStr =
+ statusStr +
+ (logChild.logic === 'and' ? '&&' : logChild.logic === 'or' ? '||' : '') +
+ conditionStatus;
});
// eslint-disable-next-line no-eval
logs.logicStatus = eval(statusStr);
diff --git a/src/views/Survey/views/Preview/js/mock.js b/src/views/Survey/views/Preview/js/mock.js
index f4c3e84..93dea50 100644
--- a/src/views/Survey/views/Preview/js/mock.js
+++ b/src/views/Survey/views/Preview/js/mock.js
@@ -105,8 +105,8 @@ export default function answerMock(questionsData, page) {
} else if (logic.skip_type === 4) {
// 只计算跳转后所在页面的隐藏逻辑,否则会出现只返回最后一道隐藏选项题目的情况,导致失效
const toPage = page + 1;
- const hasHiddenLogicQuizPage
- = data.pages.findIndex((page) => page.includes(logic.question_index)) + 1;
+ const hasHiddenLogicQuizPage =
+ data.pages.findIndex((page) => page.includes(logic.question_index)) + 1;
if (hasHiddenLogicQuizPage === toPage) {
// 选项隐藏逻辑
updateOptionHidden(data.hide_options, logic);
diff --git a/src/views/Survey/views/Preview/js/questions.js b/src/views/Survey/views/Preview/js/questions.js
index 4918df1..1d68f15 100644
--- a/src/views/Survey/views/Preview/js/questions.js
+++ b/src/views/Survey/views/Preview/js/questions.js
@@ -154,9 +154,9 @@ export default defineComponent({
question.error = translatedText.value.ThisIsARequiredQuestion;
}
} else if (
- answer
- && questionType === 1
- && Object.keys(answer).findIndex((value) => !answer[value]) !== -1
+ answer &&
+ questionType === 1 &&
+ Object.keys(answer).findIndex((value) => !answer[value]) !== -1
) {
// 单选题
isError = true;
@@ -302,9 +302,9 @@ export default defineComponent({
} else if (answer && questionType === 12) {
question.error = '';
} else if (
- answer
- && questionType === 14
- && Object.keys(answer).length < config.min_select
+ answer &&
+ questionType === 14 &&
+ Object.keys(answer).length < config.min_select
) {
// 图片多选题
isError = true;
@@ -340,46 +340,46 @@ export default defineComponent({
const { value } = answer;
const newValue = value.replace(/\n|\r|\r\n/g, '');
switch (config.text_type) {
- case 3: // 字母
- isError
- = config.include_mark === 1
- ? !/^[a-zA-Z·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]]+$/.test(
- newValue
- ) || !newValue.length
- : !/^[a-zA-Z]+$/.test(newValue) || !newValue.length;
- question.error = isError ? translatedText.value.PleaseEnterEnglishLetters : '';
- break;
- case 4: // 中文
- isError
- = config.include_mark === 1
- ? !/^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|[·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]])+$/.test(
- newValue
- ) || !newValue.length
- : !/^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/.test(
- newValue
- ) || !newValue.length;
- question.error = isError ? translatedText.value.PleaseEnterChineseWords : '';
- break;
- case 5: // 邮箱
- isError
- = !/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(
- value
- );
- question.error = isError ? translatedText.value.PleaseEnterACorrectEmail : '';
- break;
- case 6: // 手机号
- isError = !/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(value);
- question.error = isError ? translatedText.value.PleaseEnterACorrectPhone : '';
- break;
- case 7: // 身份证号
- isError
- = !/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/.test(
- value
- );
- question.error = isError ? translatedText.value.PleaseEnterACorrectID : '';
- break;
- default:
- break;
+ case 3: // 字母
+ isError =
+ config.include_mark === 1
+ ? !/^[a-zA-Z·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]]+$/.test(
+ newValue
+ ) || !newValue.length
+ : !/^[a-zA-Z]+$/.test(newValue) || !newValue.length;
+ question.error = isError ? translatedText.value.PleaseEnterEnglishLetters : '';
+ break;
+ case 4: // 中文
+ isError =
+ config.include_mark === 1
+ ? !/^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|[·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]])+$/.test(
+ newValue
+ ) || !newValue.length
+ : !/^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/.test(
+ newValue
+ ) || !newValue.length;
+ question.error = isError ? translatedText.value.PleaseEnterChineseWords : '';
+ break;
+ case 5: // 邮箱
+ isError =
+ !/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(
+ value
+ );
+ question.error = isError ? translatedText.value.PleaseEnterACorrectEmail : '';
+ break;
+ case 6: // 手机号
+ isError = !/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(value);
+ question.error = isError ? translatedText.value.PleaseEnterACorrectPhone : '';
+ break;
+ case 7: // 身份证号
+ isError =
+ !/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/.test(
+ value
+ );
+ question.error = isError ? translatedText.value.PleaseEnterACorrectID : '';
+ break;
+ default:
+ break;
}
if (!isError && value.length < config.min && ![1, 2].includes(config.text_type)) {
isError = true;
@@ -391,54 +391,54 @@ export default defineComponent({
Object.keys(answer).forEach((key) => {
const value = answer[key];
switch (config.text_type) {
- case 3: // 字母
- if (
- !/^[a-zA-Z·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]]+$/.test(
- value
- )
- ) {
- question.error = translatedText.value.PleaseEnterEnglishLetters;
- }
- break;
- case 4: // 中文
- if (
- !/^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|[·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]])+$/.test(
- value
- )
- ) {
- question.error = translatedText.value.PleaseEnterChineseWords;
- }
- break;
- case 5: // 邮箱
- if (
- !/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(
- value
- )
- ) {
- question.error = translatedText.value.PleaseEnterACorrectEmail;
- }
- break;
- case 6: // 手机号
- if (!/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(value)) {
- question.error = translatedText.value.PleaseEnterACorrectPhone;
- }
- break;
- case 7: // 身份证号
- if (
- !/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/.test(
- value
- )
- ) {
- question.error = translatedText.value.PleaseEnterACorrectID;
- }
- break;
- default:
- break;
+ case 3: // 字母
+ if (
+ !/^[a-zA-Z·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]]+$/.test(
+ value
+ )
+ ) {
+ question.error = translatedText.value.PleaseEnterEnglishLetters;
+ }
+ break;
+ case 4: // 中文
+ if (
+ !/^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|[·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]])+$/.test(
+ value
+ )
+ ) {
+ question.error = translatedText.value.PleaseEnterChineseWords;
+ }
+ break;
+ case 5: // 邮箱
+ if (
+ !/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(
+ value
+ )
+ ) {
+ question.error = translatedText.value.PleaseEnterACorrectEmail;
+ }
+ break;
+ case 6: // 手机号
+ if (!/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(value)) {
+ question.error = translatedText.value.PleaseEnterACorrectPhone;
+ }
+ break;
+ case 7: // 身份证号
+ if (
+ !/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/.test(
+ value
+ )
+ ) {
+ question.error = translatedText.value.PleaseEnterACorrectID;
+ }
+ break;
+ default:
+ break;
}
if (
- !question.error
- && value.length < config.min
- && ![1, 2].includes(config.text_type)
+ !question.error &&
+ value.length < config.min &&
+ ![1, 2].includes(config.text_type)
) {
question.error = translatedText.value.PleaseEnterMoreThanOneCharacters(config.min);
}
@@ -814,8 +814,8 @@ export default defineComponent({
const evt1 = {};
if ([1].includes(question.question_type)) {
- evt1.value
- = Object.keys(question.answer)
+ evt1.value =
+ Object.keys(question.answer)
.map((key) => (question.answer[key] ? key : undefined))
.filter((i) => !!i)?.[0] || undefined;
evt1.options = question.list.flatMap((i) => i.options);
diff --git a/src/views/Survey/views/Success/Index.vue b/src/views/Survey/views/Success/Index.vue
index e85b8d2..9da41c8 100644
--- a/src/views/Survey/views/Success/Index.vue
+++ b/src/views/Survey/views/Success/Index.vue
@@ -6,8 +6,8 @@