feat: 修复 eslint 报错, 删除多余生成文件
- 删除 vite.config.ts 自动生成的 vite.config.ts.timestamp... - eslint 报错修复
This commit is contained in:
@@ -57,7 +57,8 @@ export default {
|
||||
JSON.stringify({
|
||||
type: 'back',
|
||||
data: {
|
||||
force: false // 不强制返回,让原生端判断是否可以返回
|
||||
// 不强制返回,让原生端判断是否可以返回
|
||||
force: false
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
<template>
|
||||
<div class="flex contenteditable align-center space-between" :class="className">
|
||||
<p
|
||||
:id="'editor' + id"
|
||||
ref="editor"
|
||||
:contenteditable="active"
|
||||
class="van-field contenteditable-content"
|
||||
@focus="onFocus"
|
||||
v-html="modelValue"
|
||||
:id="'editor' + id" ref="editor" :contenteditable="active" class="van-field contenteditable-content"
|
||||
@focus="onFocus" v-html="modelValue"
|
||||
></p>
|
||||
<div class="right-icon ml10">
|
||||
<slot name="right-icon"></slot>
|
||||
@@ -75,7 +71,7 @@ const functions = {
|
||||
const [file] = e.target.files;
|
||||
if (!file) return;
|
||||
if (file.size > 2 * 1024 * 1024) {
|
||||
console.error('文件大小不能超过2M');
|
||||
// console.error('文件大小不能超过2M');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -175,7 +171,7 @@ const onFocus = (e) => {
|
||||
// 阻止
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
console.log('Editor focused');
|
||||
// console.log('Editor focused');
|
||||
};
|
||||
|
||||
// 保存当前光标位置
|
||||
@@ -247,7 +243,7 @@ const insertImageAtCaret = (html) => {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
button + button {
|
||||
button+button {
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,22 +35,23 @@ const advancedQuesTypeList = [
|
||||
type: 102
|
||||
}
|
||||
];
|
||||
const advancedTypes = advancedQuesTypeList.map((i) => i.type); // 高级题型的 question_type
|
||||
// 高级题型的 question_type
|
||||
const advancedTypes = advancedQuesTypeList.map((i) => i.type);
|
||||
|
||||
const performance = {
|
||||
start(label) {
|
||||
start(/* label */) {
|
||||
if (config.currentMode === 'dev') {
|
||||
console.time(`${label} Performance`);
|
||||
// console.time(`${label} Performance`);
|
||||
}
|
||||
},
|
||||
end(label) {
|
||||
end(/* label */) {
|
||||
if (config.currentMode === 'dev') {
|
||||
console.timeEnd(`${label} Performance`);
|
||||
// console.timeEnd(`${label} Performance`);
|
||||
}
|
||||
},
|
||||
log(...rest) {
|
||||
log(/* ...rest */) {
|
||||
if (config.currentMode === 'dev') {
|
||||
console.log(...rest);
|
||||
// console.log(...rest);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -95,7 +96,8 @@ export function loopingAvailable({ cycles, questions, logics, isPerPage, reason
|
||||
const cycleList = generateCyclePages(cycles, quizList);
|
||||
const logicList = generateLogicPages(logics, quizList);
|
||||
|
||||
const lastPage = quizList.reduce((prev, curr) => Math.max(prev, curr.$page || 0), 0); // 最后一页的页码
|
||||
// 最后一页的页码
|
||||
const lastPage = quizList.reduce((prev, curr) => Math.max(prev, curr.$page || 0), 0);
|
||||
|
||||
// console.log('questions', questions, quizList);
|
||||
// console.log('cycles', cycles, cycleList);
|
||||
@@ -187,11 +189,15 @@ export function generateQuestionPages({ questions, logics, isPerPage, addon }) {
|
||||
}
|
||||
|
||||
let page = 1;
|
||||
let pageObjectCount = 0; // 计数,在 questions 有几个分页的对象
|
||||
// 计数,在 questions 有几个分页的对象
|
||||
let pageObjectCount = 0;
|
||||
return questions.map((item, index, arr) => {
|
||||
const asBlock = [...advancedTypes, 23]; // 需要自动加分页的题型:高级题型及知情同意书
|
||||
const isPrevAdv = asBlock.includes(arr[index - 1]?.question_type); // 前一道题是高级题型
|
||||
const isAdv = asBlock.includes(item?.question_type); // 当前题是高级题型
|
||||
// 需要自动加分页的题型:高级题型及知情同意书
|
||||
const asBlock = [...advancedTypes, 23];
|
||||
// 前一道题是高级题型
|
||||
const isPrevAdv = asBlock.includes(arr[index - 1]?.question_type);
|
||||
// 当前题是高级题型
|
||||
const isAdv = asBlock.includes(item?.question_type);
|
||||
// const isPrevAdv = advancedTypes.includes(arr[index - 1]?.question_type); // 前一道题是高级题型
|
||||
// const isAdv = advancedTypes.includes(item?.question_type); // 当前题是高级题型
|
||||
|
||||
@@ -201,11 +207,12 @@ export function generateQuestionPages({ questions, logics, isPerPage, addon }) {
|
||||
);
|
||||
// 当前题配置了跳转逻辑
|
||||
const isLogic = !!logics.find((logic) => logic.question_index === item.question_index);
|
||||
|
||||
const isSurroundedByPage = isAdv || isLogic; // 需要在该题前后添加分页
|
||||
|
||||
const isPrevPage = !!arr[index - 1]?.page; // 前一道题是一个分页对象
|
||||
const prevIsQuestion = !arr[index - 1]?.page; // 前一道题是一道题而不是一个分页对象
|
||||
// 需要在该题前后添加分页
|
||||
const isSurroundedByPage = isAdv || isLogic;
|
||||
// 前一道题是一个分页对象
|
||||
const isPrevPage = !!arr[index - 1]?.page;
|
||||
// 前一道题是一道题而不是一个分页对象
|
||||
const prevIsQuestion = !arr[index - 1]?.page;
|
||||
|
||||
if (!index) {
|
||||
page = 1;
|
||||
@@ -347,7 +354,8 @@ export function isCross(range1, range2) {
|
||||
const start2 = range2[0];
|
||||
const end2 = range2[1];
|
||||
|
||||
const isPlainSequence = parsedRange1[0] === start1; // 跳转逻辑的方向,true 为从前向后跳转
|
||||
// 跳转逻辑的方向,true 为从前向后跳转
|
||||
const isPlainSequence = parsedRange1[0] === start1;
|
||||
|
||||
if (isNullish(start1) || isNullish(end1) || end1 < 0 || (isNullish(start2) && isNullish(end2))) {
|
||||
return false;
|
||||
@@ -377,13 +385,13 @@ export function isCross(range1, range2) {
|
||||
|| (!isPlainSequence
|
||||
&& (judge < start1
|
||||
? ((isNullish(start2) || isSequence(judge, start2, start1))
|
||||
&& (isNullish(end2) || isSequence(judge, end2, start1)))
|
||||
|| ((isNullish(start2) || isSequence(start1, start2, end1))
|
||||
&& (isNullish(end2) || isSequence(start1, end2, end1)))
|
||||
&& (isNullish(end2) || isSequence(judge, end2, start1)))
|
||||
|| ((isNullish(start2) || isSequence(start1, start2, end1))
|
||||
&& (isNullish(end2) || isSequence(start1, end2, end1)))
|
||||
: ((isNullish(start2) || isSequence(start1, start2, judge))
|
||||
&& (isNullish(end2) || isSequence(start1, end2, judge)))
|
||||
|| ((isNullish(start2) || isSequence(judge, start2, end1))
|
||||
&& (isNullish(end2) || isSequence(judge, end2, end1)))));
|
||||
&& (isNullish(end2) || isSequence(start1, end2, judge)))
|
||||
|| ((isNullish(start2) || isSequence(judge, start2, end1))
|
||||
&& (isNullish(end2) || isSequence(judge, end2, end1)))));
|
||||
// 循环存在封闭区间,并且循环包含逻辑
|
||||
const contained
|
||||
= !isNullish(start2)
|
||||
|
||||
@@ -231,7 +231,7 @@ const canPlanetPublishImage = function(data) {
|
||||
qSteams.push(`(${s.title})`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.warn(error);
|
||||
// console.warn(error);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -25,8 +25,8 @@ export default function createCOS(data) {
|
||||
Bucket: bucket,
|
||||
Key: name,
|
||||
Body: file,
|
||||
onProgress: (progressData) => {
|
||||
console.log(progressData);
|
||||
onProgress: (/* progressData */) => {
|
||||
// console.log(progressData);
|
||||
}
|
||||
};
|
||||
const client = new COS({
|
||||
@@ -37,7 +37,8 @@ export default function createCOS(data) {
|
||||
TmpSecretKey: tmpSecretKey,
|
||||
SecurityToken: sessionToken,
|
||||
// 建议返回服务器时间作为签名的开始时间,避免用户浏览器本地时间偏差过大导致签名错误
|
||||
StartTime: startTime, // 时间戳,单位秒,如:1580000000
|
||||
// 时间戳,单位秒,如:1580000000
|
||||
StartTime: startTime,
|
||||
ExpiredTime: expiredTime
|
||||
});
|
||||
}
|
||||
@@ -45,7 +46,7 @@ export default function createCOS(data) {
|
||||
});
|
||||
return new Promise((resolve, reject) => {
|
||||
client.putObject(config, (err, data) => {
|
||||
console.log('腾讯上传', err, data);
|
||||
// console.log('腾讯上传', err, data);
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
<template>
|
||||
<div class="option-action">
|
||||
<draggable
|
||||
v-model:data="data"
|
||||
item-key="option_index"
|
||||
:handle="handle"
|
||||
chosenClass="chosen"
|
||||
animation="300"
|
||||
v-model:data="data" item-key="option_index" :handle="handle" chosenClass="chosen" animation="300"
|
||||
:scroll="true"
|
||||
>
|
||||
<!-- eslint-disable-next-line -->
|
||||
<template #item="{ element, index }">
|
||||
<div class="flex align-center option-action-container">
|
||||
<slot name="item" :element="element" :index="index"></slot>
|
||||
@@ -16,11 +13,7 @@
|
||||
name="setting "
|
||||
@click="openMoveModel(element, index)
|
||||
"/>-->
|
||||
<van-icon
|
||||
class-prefix="mobilefont"
|
||||
name="gengduo "
|
||||
@click="openOptionActionModel(element, index)"
|
||||
/>
|
||||
<van-icon class-prefix="mobilefont" name="gengduo " @click="openOptionActionModel(element, index)" />
|
||||
<van-icon class-prefix="mobilefont" name="del1 " @click="deleteOption(index)" />
|
||||
</span>
|
||||
</div>
|
||||
@@ -36,10 +29,7 @@
|
||||
<van-cell title="固定置底" :border="false">
|
||||
<template #right-icon>
|
||||
<van-switch
|
||||
v-model="activeOption.is_fixed"
|
||||
class="option-action-sheet-switch"
|
||||
size="0.5rem"
|
||||
:active-value="1"
|
||||
v-model="activeOption.is_fixed" class="option-action-sheet-switch" size="0.5rem" :active-value="1"
|
||||
:inactive-value="0"
|
||||
></van-switch>
|
||||
</template>
|
||||
@@ -47,26 +37,17 @@
|
||||
<van-cell title="设为其他项" :border="false">
|
||||
<template #right-icon>
|
||||
<van-switch
|
||||
v-model="activeOption.is_other"
|
||||
class="option-action-sheet-switch"
|
||||
size="0.5rem"
|
||||
:active-value="1"
|
||||
v-model="activeOption.is_other" class="option-action-sheet-switch" size="0.5rem" :active-value="1"
|
||||
:inactive-value="0"
|
||||
></van-switch>
|
||||
</template>
|
||||
</van-cell>
|
||||
<!--复选时出现-->
|
||||
<checkbox-action
|
||||
v-if="question?.question_type === 2"
|
||||
v-model="activeOption.is_remove_other"
|
||||
></checkbox-action>
|
||||
<checkbox-action v-if="question?.question_type === 2" v-model="activeOption.is_remove_other"></checkbox-action>
|
||||
</van-cell-group>
|
||||
</van-action-sheet>
|
||||
<van-action-sheet
|
||||
v-model:show="moveShow"
|
||||
cancel-text="取消"
|
||||
:actions="actions"
|
||||
@select="optionMove"
|
||||
v-model:show="moveShow" cancel-text="取消" :actions="actions" @select="optionMove"
|
||||
@cancel="moveShow = false"
|
||||
>
|
||||
<!-- <template #description>-->
|
||||
@@ -185,15 +166,15 @@ const deleteOption = (index) => {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
& .mobilefont + .mobilefont {
|
||||
& .mobilefont+.mobilefont {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
& .van-icon + .van-icon {
|
||||
& .van-icon+.van-icon {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
& .van-icon + .mobilefont {
|
||||
& .van-icon+.mobilefont {
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,9 @@
|
||||
import { completionOptions } from '@/utils/questionSteeingList.js';
|
||||
import YlSelect from '@/components/YLSelect.vue';
|
||||
import YlInput from '@/components/YLInput.vue';
|
||||
const logic = defineModel('logic');
|
||||
const logic = defineModel('logic', {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
});
|
||||
</script>
|
||||
<style scoped lang="scss"></style>
|
||||
|
||||
@@ -4,11 +4,7 @@
|
||||
<yl-select v-model="logic.row_index" :options="getOptions('row')" class="group"></yl-select>
|
||||
|
||||
<!-- 选项 or 分组 -->
|
||||
<yl-select
|
||||
v-model="logic.is_option_group"
|
||||
:options="groupOptions"
|
||||
class="ml10 group"
|
||||
></yl-select>
|
||||
<yl-select v-model="logic.is_option_group" :options="groupOptions" class="ml10 group"></yl-select>
|
||||
<!-- <yl-select v-model="logic.operator" :options="symbolOptions" class="ml10 symbol"></yl-select>-->
|
||||
<yl-select v-model="logic.cell_index" :options="getOptions('col')" class="ml10"></yl-select>
|
||||
<yl-select v-model="logic.is_select" class="ml10" :options="chooseOptions"></yl-select>
|
||||
@@ -21,8 +17,12 @@
|
||||
<script setup>
|
||||
import { chooseOptions, groupOptions } from '@/utils/questionSteeingList.js';
|
||||
import YlSelect from '@/components/YLSelect.vue';
|
||||
const logic = defineModel('logic');
|
||||
const beforeQuesOptions = defineModel('beforeQuesOptions');
|
||||
const logic = defineModel('logic', {
|
||||
type: Object
|
||||
});
|
||||
const beforeQuesOptions = defineModel('beforeQuesOptions', {
|
||||
type: Array
|
||||
});
|
||||
|
||||
const getOptions = (type) => {
|
||||
let options = [];
|
||||
|
||||
@@ -4,11 +4,7 @@
|
||||
<yl-select v-model="logic.row_index" :options="getOptions('row')" class="group"></yl-select>
|
||||
|
||||
<!-- 选项 or 分组 -->
|
||||
<yl-select
|
||||
v-model="logic.is_option_group"
|
||||
:options="groupOptions"
|
||||
class="ml10 group"
|
||||
></yl-select>
|
||||
<yl-select v-model="logic.is_option_group" :options="groupOptions" class="ml10 group"></yl-select>
|
||||
<yl-select v-model="logic.operator" :options="symbolOptions" class="ml10 symbol"></yl-select>
|
||||
<yl-select v-model="logic.cell_index" :options="getOptions('col')" class="ml10"></yl-select>
|
||||
|
||||
@@ -34,7 +30,7 @@ const beforeQuesOptions = defineModel('beforeQuesOptions', {
|
||||
});
|
||||
|
||||
const getOptions = (type) => {
|
||||
console.log(beforeQuesOptions);
|
||||
// console.log(beforeQuesOptions);
|
||||
let options = [];
|
||||
|
||||
beforeQuesOptions.value.forEach((item) => {
|
||||
|
||||
@@ -79,10 +79,10 @@ import OptionAction from '@/views/Design/components/ActionCompoents/OptionAction
|
||||
import { defineAsyncComponent, toRefs, ref } from 'vue';
|
||||
|
||||
// 是否是预览
|
||||
const isPreview = defineModel('isPreview', { default: false });
|
||||
const isPreview = defineModel('isPreview', { default: false, type: Booleans });
|
||||
const choiceValue = defineModel('answer', { default: '1', type: String });
|
||||
|
||||
console.log(`choiceValue.value`, choiceValue.value);
|
||||
// console.log(`choiceValue.value`, choiceValue.value);
|
||||
|
||||
const Contenteditable = defineAsyncComponent(() => import('@/components/contenteditable.vue'));
|
||||
const props = defineProps({
|
||||
|
||||
@@ -1,26 +1,18 @@
|
||||
<template>
|
||||
<div class="cont">
|
||||
<van-field
|
||||
v-model="element.stem"
|
||||
:label="element.stem"
|
||||
:required="element.config.is_required === 1"
|
||||
v-model="element.stem" :label="element.stem" :required="element.config.is_required === 1"
|
||||
label-align="top"
|
||||
>
|
||||
<template #left-icon>
|
||||
{{ index + 1 }}
|
||||
</template>
|
||||
<template #label>
|
||||
<contenteditable
|
||||
v-model="element.stem"
|
||||
:active="active"
|
||||
@blur="emitValue"
|
||||
></contenteditable>
|
||||
<contenteditable v-model="element.stem" :active="active" @blur="emitValue"></contenteditable>
|
||||
</template>
|
||||
<template #input>
|
||||
<textarea
|
||||
v-model="completionValue"
|
||||
class="other_input"
|
||||
:placeholder="element.config.placeholder"
|
||||
v-model="completionValue" class="other_input" :placeholder="element.config.placeholder"
|
||||
:rows="element.config.line_height"
|
||||
></textarea>
|
||||
</template>
|
||||
@@ -31,7 +23,7 @@
|
||||
<script setup>
|
||||
import { toRefs } from 'vue';
|
||||
|
||||
const completionValue = defineModel('completionValue', { default: '' });
|
||||
const completionValue = defineModel('completionValue', { default: '', type: String });
|
||||
const props = defineProps({
|
||||
element: {
|
||||
type: Object,
|
||||
|
||||
@@ -35,7 +35,7 @@ import { vFocus } from '@/utils/directives/useVFocus';
|
||||
const rowRecord = defineModel<number[][]>('rowRecord', { required: false, default: () => [] });
|
||||
// const matrixAnswer = defineModel<{ [key: string]: 1 }>('matrixAnswer', { required: false, default: () => ({}) });
|
||||
// 检查 rowRecord 是否存在
|
||||
console.log(`rowRecord:`, rowRecord.value);
|
||||
// console.log(`rowRecord:`, rowRecord.value);
|
||||
|
||||
/* const isPreview = */defineModel<boolean>('isPreview', { required: false, default: false });
|
||||
defineProps<{
|
||||
@@ -81,7 +81,7 @@ function handleMatrixRadioChange(row: number, col: number) {
|
||||
cols.push(col);
|
||||
}
|
||||
|
||||
console.log(`rowRecord:`, rowRecord.value);
|
||||
// console.log(`rowRecord:`, rowRecord.value);
|
||||
}
|
||||
// const handleColNameChange = (rowOption: string, colOption: string) => {
|
||||
// // const target = e.target as HTMLInputElement;
|
||||
|
||||
@@ -35,7 +35,7 @@ import { vFocus } from '@/utils/directives/useVFocus';
|
||||
const rowRecord = defineModel<number[]>('rowRecord', { required: false, default: () => [] });
|
||||
// const matrixAnswer = defineModel<{ [key: string]: 1 }>('matrixAnswer', { required: false, default: () => ({}) });
|
||||
// 检查 rowRecord 是否存在
|
||||
console.log(`rowRecord:`, rowRecord.value);
|
||||
// console.log(`rowRecord:`, rowRecord.value);
|
||||
|
||||
/* const isPreview = */defineModel<boolean>('isPreview', { required: false, default: false });
|
||||
defineProps<{
|
||||
|
||||
@@ -35,7 +35,7 @@ import { vFocus } from '@/utils/directives/useVFocus';
|
||||
const rowRecord = defineModel<string[][]>('rowRecord', { required: false, default: () => [] });
|
||||
// const matrixAnswer = defineModel<{ [key: string]: 1 }>('matrixAnswer', { required: false, default: () => ({}) });
|
||||
// 检查 rowRecord 是否存在
|
||||
console.log(`rowRecord:`, rowRecord.value);
|
||||
// console.log(`rowRecord:`, rowRecord.value);
|
||||
|
||||
/* const isPreview = */defineModel<boolean>('isPreview', { required: false, default: false });
|
||||
defineProps<{
|
||||
@@ -51,8 +51,8 @@ const handleRowNameChange = (/* value: string */) => {
|
||||
};
|
||||
|
||||
function getInputValue(row: number, col: number) {
|
||||
console.log(`row: ${row}, col: ${col}`);
|
||||
console.log(`rowRecord:`, rowRecord.value);
|
||||
// console.log(`row: ${row}, col: ${col}`);
|
||||
// console.log(`rowRecord:`, rowRecord.value);
|
||||
|
||||
return rowRecord.value?.[row]?.[col] ?? '';
|
||||
}
|
||||
@@ -70,7 +70,7 @@ function handleMatrixTextChange(row: number, col: number, e: Event) {
|
||||
// cols 的逻辑 和 handleMatrixRadioChange 一致
|
||||
const cols = rowRecord.value[row];
|
||||
cols[col] = inputValue;
|
||||
console.log(`rowRecord:`, rowRecord.value);
|
||||
// console.log(`rowRecord:`, rowRecord.value);
|
||||
}
|
||||
// const handleColNameChange = (rowOption: string, colOption: string) => {
|
||||
// // const target = e.target as HTMLInputElement;
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
import { ref, toRefs } from 'vue';
|
||||
import RateCharacter from './RateCharacter.vue';
|
||||
|
||||
const isPreview = defineModel('isPreview', { default: false });
|
||||
const isPreview = defineModel('isPreview', { default: false, type: Boolean });
|
||||
const props = defineProps({
|
||||
element: {
|
||||
type: Object
|
||||
@@ -53,13 +53,13 @@ const props = defineProps({
|
||||
});
|
||||
|
||||
// answer 的答案以 矩阵形式存储, 例如 [4,7],上层更新答案的时候也容易
|
||||
const rates = defineModel('rates', { default: [] });
|
||||
const rates = defineModel('rates', { default: [], type: Array });
|
||||
const rate = ref(0);
|
||||
|
||||
// 不知道的 BUG ,开始的时候不能重置颜色。 故如此
|
||||
setTimeout(() => {
|
||||
rate.value = localStorage.getItem(props.sn);
|
||||
console.log(`rate value:`, rate.value);
|
||||
// console.log(`rate value:`, rate.value);
|
||||
// if (rates.value[0] !== undefined) {
|
||||
// console.log(`rates value:`, rates.value);
|
||||
// rate.value = rates.value[0]
|
||||
|
||||
@@ -49,9 +49,13 @@ const props = defineProps({
|
||||
}
|
||||
});
|
||||
|
||||
const model = defineModel();
|
||||
const model = defineModel('model', {
|
||||
type: Number
|
||||
});
|
||||
|
||||
const index = defineModel('index');
|
||||
const index = defineModel('index', {
|
||||
type: Number
|
||||
});
|
||||
const emit = defineEmits(['change']);
|
||||
const renderScore = (min, max, interval) => {
|
||||
const result = [];
|
||||
|
||||
@@ -20,9 +20,7 @@
|
||||
</van-cell-group>
|
||||
</van-cell-group>
|
||||
<div
|
||||
v-if="styleInfo.logo_status && styleInfo.logo_url"
|
||||
class="example-logo"
|
||||
:style="[
|
||||
v-if="styleInfo.logo_status && styleInfo.logo_url" class="example-logo" :style="[
|
||||
{
|
||||
'justify-content':
|
||||
styleInfo.logo_site === 1
|
||||
@@ -42,53 +40,30 @@
|
||||
<img class="logo" :src="styleInfo.logo_url" alt="logo" />
|
||||
</div>
|
||||
<!-- 问题 -->
|
||||
<div
|
||||
class="questions"
|
||||
:style="`min-height: ${styleInfo.head_img_status ? 'calc(100% - 240px)' : '100%'};${
|
||||
styleInfo.background_status
|
||||
? `background-color: ${styleInfo.background_color};background-image: url(${styleInfo.background_url})`
|
||||
: ''
|
||||
}`"
|
||||
<!-- eslint-disable-next-line -->
|
||||
<div class="questions" :style="`min-height: ${styleInfo.head_img_status ? 'calc(100% - 240px)' : '100%'};${styleInfo.background_status
|
||||
? `background-color: ${styleInfo.background_color};background-image: url(${styleInfo.background_url})`
|
||||
: ''
|
||||
}`"
|
||||
>
|
||||
<!-- 提前终止和正常完成 -->
|
||||
<q-last
|
||||
v-if="page === pages.length + 1"
|
||||
:code="questionsData.action?.code"
|
||||
:action="questionsData.action"
|
||||
:survey="questionsData.survey"
|
||||
:isAnswer="isAnswer"
|
||||
:isTemplate="isTemplate"
|
||||
v-if="page === pages.length + 1" :code="questionsData.action?.code" :action="questionsData.action"
|
||||
:survey="questionsData.survey" :isAnswer="isAnswer" :isTemplate="isTemplate"
|
||||
/>
|
||||
<!-- 问卷名和描述 -->
|
||||
<q-first
|
||||
v-else-if="page === 0"
|
||||
isMobile
|
||||
:title="questionsData?.survey?.title"
|
||||
:desc="questionsData?.survey?.introduction"
|
||||
:questions="questionsData?.questions"
|
||||
:isAnswer="isAnswer"
|
||||
:showTitle="styleInfo.is_title"
|
||||
:showDesc="styleInfo.is_introduce"
|
||||
:label="questionsData?.survey?.title"
|
||||
v-else-if="page === 0" isMobile :title="questionsData?.survey?.title"
|
||||
:desc="questionsData?.survey?.introduction" :questions="questionsData?.questions" :isAnswer="isAnswer"
|
||||
:showTitle="styleInfo.is_title" :showDesc="styleInfo.is_introduce" :label="questionsData?.survey?.title"
|
||||
/>
|
||||
<!-- 题-mobile -->
|
||||
<question
|
||||
v-for="question in questions"
|
||||
v-else
|
||||
:id="'questionIndex' + question.question_index"
|
||||
:key="question.question_index"
|
||||
class="question"
|
||||
:tip="question.tip"
|
||||
:stem="question.stem"
|
||||
:title="question.title"
|
||||
:error="question.error"
|
||||
:warning="question.warning"
|
||||
:questions="questionsData.questions"
|
||||
:questionType="question.question_type"
|
||||
:questionIndex="question.question_index"
|
||||
:showTitle="styleInfo.is_question_number && true"
|
||||
isMobile
|
||||
:isAnswer="isAnswer"
|
||||
v-for="question in questions" v-else :id="'questionIndex' + question.question_index"
|
||||
:key="question.question_index" class="question" :tip="question.tip" :stem="question.stem"
|
||||
:title="question.title" :error="question.error" :warning="question.warning" :questions="questionsData.questions"
|
||||
:questionType="question.question_type" :questionIndex="question.question_index"
|
||||
:showTitle="styleInfo.is_question_number && true" isMobile :isAnswer="isAnswer"
|
||||
>
|
||||
<!-- <q-radio-->
|
||||
<!-- v-if="question.question_type === 1"-->
|
||||
@@ -106,18 +81,10 @@
|
||||
<!-- />-->
|
||||
<!-- 单选题 -->
|
||||
<preview-choice
|
||||
v-if="question.question_type === 1"
|
||||
v-model:answer="question.answer"
|
||||
v-model:answerIndex="question.answerIndex"
|
||||
:list="question.list"
|
||||
:config="question.config"
|
||||
:hideOptions="question.hideOptions"
|
||||
:stem="question.stem"
|
||||
:answerSn="questionsData.answer.sn"
|
||||
:answerSurveySn="questionsData.answer.survey_sn"
|
||||
:question="question"
|
||||
@previous="previous"
|
||||
@next="next"
|
||||
v-if="question.question_type === 1" v-model:answer="question.answer"
|
||||
v-model:answerIndex="question.answerIndex" :list="question.list" :config="question.config"
|
||||
:hideOptions="question.hideOptions" :stem="question.stem" :answerSn="questionsData.answer.sn"
|
||||
:answerSurveySn="questionsData.answer.survey_sn" :question="question" @previous="previous" @next="next"
|
||||
@change-answer="onRelation($event, question)"
|
||||
/>
|
||||
<!-- <!– 多选题 –>-->
|
||||
@@ -148,16 +115,9 @@
|
||||
<!-- />-->
|
||||
<!-- 填空题 -->
|
||||
<preview-completion
|
||||
v-else-if="question.question_type === 4"
|
||||
:config="question.config"
|
||||
:answer="question.answer"
|
||||
:stem="question.stem"
|
||||
:answerSn="questionsData.answer.sn"
|
||||
:answerSurveySn="questionsData.answer.survey_sn"
|
||||
:question="question"
|
||||
@previous="previous"
|
||||
@next="next"
|
||||
@change-answer="onRelation($event, question)"
|
||||
v-else-if="question.question_type === 4" :config="question.config" :answer="question.answer"
|
||||
:stem="question.stem" :answerSn="questionsData.answer.sn" :answerSurveySn="questionsData.answer.survey_sn"
|
||||
:question="question" @previous="previous" @next="next" @change-answer="onRelation($event, question)"
|
||||
/>
|
||||
<!-- <!– 打分题 –>-->
|
||||
<!-- <q-rate-->
|
||||
@@ -192,38 +152,21 @@
|
||||
<!-- />-->
|
||||
<!-- 矩阵填空题 -->
|
||||
<preview-matrix-text
|
||||
v-else-if="question.question_type === 8"
|
||||
v-model:answer="question.answer"
|
||||
:list="question.list"
|
||||
:config="question.config"
|
||||
:stem="question.stem"
|
||||
:question="question"
|
||||
@previous="previous"
|
||||
@next="next"
|
||||
@change-answer="onRelation($event, question)"
|
||||
v-else-if="question.question_type === 8" v-model:answer="question.answer"
|
||||
:list="question.list" :config="question.config" :stem="question.stem" :question="question"
|
||||
@previous="previous" @next="next" @change-answer="onRelation($event, question)"
|
||||
/>
|
||||
<!-- 矩阵单选题 -->
|
||||
<preview-matrix-radio
|
||||
v-else-if="question.question_type === 9"
|
||||
v-model:answer="question.answer"
|
||||
:list="question.list"
|
||||
:config="question.config"
|
||||
:stem="question.stem"
|
||||
:answerSn="questionsData.answer.sn"
|
||||
:answerSurveySn="questionsData.answer.survey_sn"
|
||||
:question="question"
|
||||
@change-answer="onRelation($event, question)"
|
||||
@previous="previous"
|
||||
@next="next"
|
||||
v-else-if="question.question_type === 9" v-model:answer="question.answer"
|
||||
:list="question.list" :config="question.config" :stem="question.stem" :answerSn="questionsData.answer.sn"
|
||||
:answerSurveySn="questionsData.answer.survey_sn" :question="question"
|
||||
@change-answer="onRelation($event, question)" @previous="previous" @next="next"
|
||||
/>
|
||||
<!-- 矩阵多选题 -->
|
||||
<preview-matrix-checkbox
|
||||
v-else-if="question.question_type === 10"
|
||||
v-model:answer="question.answer"
|
||||
:list="question.list"
|
||||
:config="question.config"
|
||||
:question="question"
|
||||
isMobile
|
||||
v-else-if="question.question_type === 10" v-model:answer="question.answer"
|
||||
:list="question.list" :config="question.config" :question="question" isMobile
|
||||
@change-answer="onRelation($event, question)"
|
||||
/>
|
||||
<!-- <!– 矩阵打分题 –>-->
|
||||
@@ -294,12 +237,8 @@
|
||||
<!-- />-->
|
||||
<!-- 文件上传题 -->
|
||||
<preview-file-upload
|
||||
v-else-if="question.question_type === 18"
|
||||
v-model:answer="question.answer"
|
||||
:config="question.config"
|
||||
:question="question"
|
||||
isMobile
|
||||
:questionIndex="question.question_index"
|
||||
v-else-if="question.question_type === 18" v-model:answer="question.answer"
|
||||
:config="question.config" :question="question" isMobile :questionIndex="question.question_index"
|
||||
@change-answer="onRelation($event, question)"
|
||||
/>
|
||||
<!-- <!– 地理位置题 –>-->
|
||||
@@ -461,58 +400,31 @@
|
||||
<!-- />-->
|
||||
<!-- <!– 高级题型-NPS –>-->
|
||||
<preview-n-p-s
|
||||
v-else-if="question.question_type === 106"
|
||||
v-model:answer="question.answer"
|
||||
:isPreview="true"
|
||||
:title="question.title"
|
||||
:stem="question.stem"
|
||||
:list="question.list"
|
||||
:config="question.config"
|
||||
:isAnswer="isAnswer"
|
||||
:questionIndex="question.question_index"
|
||||
:label="question.title"
|
||||
:loading="loading"
|
||||
:isTemplate="isTemplate"
|
||||
:showTitle="styleInfo.is_question_number"
|
||||
:question="question"
|
||||
@previous="previous"
|
||||
@next="next"
|
||||
@change-answer="onRelation($event, question)"
|
||||
v-else-if="question.question_type === 106" v-model:answer="question.answer" :isPreview="true"
|
||||
:title="question.title" :stem="question.stem" :list="question.list" :config="question.config"
|
||||
:isAnswer="isAnswer" :questionIndex="question.question_index" :label="question.title" :loading="loading"
|
||||
:isTemplate="isTemplate" :showTitle="styleInfo.is_question_number" :question="question" @previous="previous"
|
||||
@next="next" @change-answer="onRelation($event, question)"
|
||||
/>
|
||||
</question>
|
||||
<!-- 分页 -->
|
||||
<!-- eslint-disable max-len -->
|
||||
<div v-show="showPage" class="footer-page">
|
||||
<pfe-pagination
|
||||
class="pagination"
|
||||
:page="page"
|
||||
:pages="pages.length + 1"
|
||||
:min="styleInfo.is_home ? 0 : 1"
|
||||
:loading="loading"
|
||||
:showPrevious="styleInfo.is_up_button"
|
||||
:showStart="styleInfo.is_start_button"
|
||||
:startText="styleInfo.start_button_text"
|
||||
:showSubmit="styleInfo.is_submit_button"
|
||||
:submitText="
|
||||
localPageTimer.is_show && localPageTimer.short_time
|
||||
? `${localPageTimer.short_time}S`
|
||||
: styleInfo.submit_button_text
|
||||
"
|
||||
:buttonTextColor="styleInfo.button_text_color"
|
||||
:buttonColor="styleInfo.button_color"
|
||||
:nextText="
|
||||
localPageTimer.is_show && localPageTimer.short_time
|
||||
? `${localPageTimer.short_time}S`
|
||||
: ''
|
||||
"
|
||||
:nextDisabled="localPageTimer.short_time"
|
||||
isMobile
|
||||
@previous="previous"
|
||||
@next="next"
|
||||
class="pagination" :page="page" :pages="pages.length + 1" :min="styleInfo.is_home ? 0 : 1"
|
||||
:loading="loading" :showPrevious="styleInfo.is_up_button" :showStart="styleInfo.is_start_button"
|
||||
:startText="styleInfo.start_button_text" :showSubmit="styleInfo.is_submit_button" :submitText="localPageTimer.is_show && localPageTimer.short_time
|
||||
? `${localPageTimer.short_time}S`
|
||||
: styleInfo.submit_button_text
|
||||
" :buttonTextColor="styleInfo.button_text_color" :buttonColor="styleInfo.button_color" :nextText="localPageTimer.is_show && localPageTimer.short_time
|
||||
? `${localPageTimer.short_time}S`
|
||||
: ''
|
||||
" :nextDisabled="localPageTimer.short_time" isMobile @previous="previous" @next="next"
|
||||
/>
|
||||
</div>
|
||||
<!-- eslint-enable max-len -->
|
||||
<LangTranslate
|
||||
v-if="isAnswer && styleInfo.is_yip"
|
||||
translate-key="PoweredByDigitalTechnologyCenterYIP"
|
||||
v-if="isAnswer && styleInfo.is_yip" translate-key="PoweredByDigitalTechnologyCenterYIP"
|
||||
class="footer"
|
||||
/>
|
||||
</div>
|
||||
@@ -870,7 +782,8 @@ async function answer(callback, callbackBeforePage) {
|
||||
const { value } = answer;
|
||||
const newValue = value.replace(/\n|\r|\r\n/g, '');
|
||||
switch (config.text_type) {
|
||||
case 3: // 字母
|
||||
// 字母
|
||||
case 3:
|
||||
isError
|
||||
= config.include_mark === 1
|
||||
? !/^[a-zA-Z·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]]+$/.test(
|
||||
@@ -879,7 +792,8 @@ async function answer(callback, callbackBeforePage) {
|
||||
: !/^[a-zA-Z]+$/.test(newValue) || !newValue.length;
|
||||
question.error = isError ? translatedText.value.PleaseEnterEnglishLetters : '';
|
||||
break;
|
||||
case 4: // 中文
|
||||
// 中文
|
||||
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(
|
||||
@@ -898,11 +812,13 @@ async function answer(callback, callbackBeforePage) {
|
||||
);
|
||||
question.error = isError ? translatedText.value.PleaseEnterACorrectEmail : '';
|
||||
break;
|
||||
case 6: // 手机号
|
||||
// 手机号
|
||||
case 6:
|
||||
isError = !/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(value);
|
||||
question.error = isError ? translatedText.value.PleaseEnterACorrectPhone : '';
|
||||
break;
|
||||
case 7: // 身份证号
|
||||
// 身份证号
|
||||
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
|
||||
@@ -922,7 +838,8 @@ async function answer(callback, callbackBeforePage) {
|
||||
Object.keys(answer).forEach((key) => {
|
||||
const value = answer[key];
|
||||
switch (config.text_type) {
|
||||
case 3: // 字母
|
||||
// 字母
|
||||
case 3:
|
||||
isError
|
||||
= config.include_mark === 1
|
||||
? !/^[a-zA-Z·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]]+$/.test(
|
||||
@@ -931,7 +848,8 @@ async function answer(callback, callbackBeforePage) {
|
||||
: !/^[a-zA-Z]+$/.test(newValue) || !newValue.length;
|
||||
question.error = isError ? translatedText.value.PleaseEnterEnglishLetters : '';
|
||||
break;
|
||||
case 4: // 中文
|
||||
// 中文
|
||||
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(
|
||||
@@ -942,18 +860,21 @@ async function answer(callback, callbackBeforePage) {
|
||||
) || !newValue.length;
|
||||
question.error = isError ? translatedText.value.PleaseEnterChineseWords : '';
|
||||
break;
|
||||
case 5: // 邮箱
|
||||
// 邮箱
|
||||
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: // 手机号
|
||||
// 手机号
|
||||
case 6:
|
||||
isError = !/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(value);
|
||||
question.error = isError ? translatedText.value.PleaseEnterACorrectPhone : '';
|
||||
break;
|
||||
case 7: // 身份证号
|
||||
// 身份证号
|
||||
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
|
||||
@@ -1086,7 +1007,7 @@ async function answer(callback, callbackBeforePage) {
|
||||
try {
|
||||
// 模拟接口
|
||||
const data = answerMock(questionsData.value, page.value);
|
||||
console.log('模拟作答数据', data);
|
||||
// console.log('模拟作答数据', data);
|
||||
// 更新答案
|
||||
updateAnswer(data.answer_info_autofill);
|
||||
// 更新分页数组
|
||||
@@ -1100,7 +1021,7 @@ async function answer(callback, callbackBeforePage) {
|
||||
}
|
||||
callback(data.jump_to);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
// console.log(error);
|
||||
}
|
||||
return (loading.value = false);
|
||||
}
|
||||
@@ -1189,11 +1110,11 @@ async function answer(callback, callbackBeforePage) {
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
// console.log(error);
|
||||
}
|
||||
loading.value = false;
|
||||
} else {
|
||||
console.log(errors);
|
||||
// console.log(errors);
|
||||
const { error, title, question_index: questionIndex } = errors[0];
|
||||
const lines = (error || '')
|
||||
.split('\n')
|
||||
@@ -1203,7 +1124,7 @@ async function answer(callback, callbackBeforePage) {
|
||||
|
||||
// 锚点
|
||||
const anchor = document.querySelector(`#questionIndex${questionIndex}`);
|
||||
console.log(anchor, scrollbar.value);
|
||||
// console.log(anchor, scrollbar.value);
|
||||
scrollbar.value.scrollTo(0, anchor.offsetTop - (props.isMobile ? 20 : 40));
|
||||
}
|
||||
} else {
|
||||
@@ -1273,7 +1194,8 @@ function jumpImmediately() {
|
||||
|
||||
// 跳转链接
|
||||
if (countTime <= 0 && url) {
|
||||
questionsData.value.action.code = -1 * code; // 防止 AnswerMob AnswerPc 组件里显示最后一页
|
||||
// 防止 AnswerMob AnswerPc 组件里显示最后一页
|
||||
questionsData.value.action.code = -1 * code;
|
||||
|
||||
url = url.replaceAll('#sn#', questionsData.value.answer.sn);
|
||||
url = url.replaceAll('#user#', questionsData.value.answer.respondent);
|
||||
|
||||
@@ -2,10 +2,7 @@
|
||||
<div class="base">
|
||||
<div ref="target" class="container-viewer-1-"></div>
|
||||
<div ref="elCart" style="position: absolute; right: 80px; bottom: 80px"></div>
|
||||
<div
|
||||
v-if="spinning"
|
||||
style="position: absolute; top: 0; right: 0; bottom: 0; left: 0; background-color: #fff"
|
||||
>
|
||||
<div v-if="spinning" style="position: absolute; top: 0; right: 0; bottom: 0; left: 0; background-color: #fff">
|
||||
<a-spin style="position: absolute; top: 50%; left: 50%" />
|
||||
</div>
|
||||
<div v-if="freezeRotY" style="position: absolute; top: 0; right: 0; bottom: 0; left: 0"></div>
|
||||
@@ -73,8 +70,8 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
page_shelves(newVal, oldVal) {
|
||||
console.log('page ........', newVal, oldVal);
|
||||
page_shelves(newVal /* oldVal */) {
|
||||
// console.log('page ........', newVal, oldVal);
|
||||
if (viewer_) {
|
||||
viewer_.arrange_shelves(newVal).then(() => {
|
||||
// this.$emit("onPageCompletion");
|
||||
@@ -166,11 +163,13 @@ export default {
|
||||
// const isHall = this.shopData.type === 'hall';
|
||||
// this.useJoyStick = this.shopData.type == "hall";
|
||||
// useJoyStick: isHall && this.shopData?.hall.useRoaming // #20230802
|
||||
/* useJoyStick: isHall; */ /* && isHallCanWalk(this.shopData.hall); */ // #20230811
|
||||
// #20230811
|
||||
/* useJoyStick: isHall; */ /* && isHallCanWalk(this.shopData.hall); */
|
||||
|
||||
const sd = JSON.parse(JSON.stringify(this.shopData || {}));
|
||||
sd.shelves.forEach((shelve) => {
|
||||
shelve.hideWhenSurvey = true; // hideWhenSurvey 改成 true 时,不显示展台的紫色边框
|
||||
// hideWhenSurvey 改成 true 时,不显示展台的紫色边框
|
||||
shelve.hideWhenSurvey = true;
|
||||
});
|
||||
|
||||
// viewer_ = new SurveyViewer({
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
<template>
|
||||
<!-- <van-field v-model="inputValue" v-focus placeholder="请输入内容"> </van-field>-->
|
||||
<!-- <completion />-->
|
||||
<completion
|
||||
v-model:completionValue="completionValue"
|
||||
:index="answerIndex"
|
||||
:element="question"
|
||||
></completion>
|
||||
<completion v-model:completionValue="completionValue" :index="answerIndex" :element="question"></completion>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { defineEmits, ref, watch } from 'vue';
|
||||
@@ -24,8 +20,8 @@ const question = defineModel<question>('question', {});
|
||||
// // 预览新增 emit ['changeAnswer', 'previous', 'next']
|
||||
const emit = defineEmits(['previous', 'next', 'update:modelValue', 'saveOption', 'changeAnswer']);
|
||||
|
||||
console.log(`answer`, answer.value);
|
||||
console.log(question.value);
|
||||
// console.log(`answer`, answer.value);
|
||||
// console.log(question.value);
|
||||
const completionValue = ref(answer.value?.value ?? '');
|
||||
// console.log(`question:`, question.value);
|
||||
// console.log(`list: `, list.value);
|
||||
|
||||
@@ -52,12 +52,12 @@ const rowRecord = ref<number[][]>([]);
|
||||
// 假如 answer 有数值,需要解析 answer ,然后传递 record 给子组件
|
||||
answer.value && parseAnswer(answer.value);
|
||||
|
||||
console.log(`answer value`, answer.value);
|
||||
// console.log(`answer value`, answer.value);
|
||||
/**
|
||||
* 解析 answer
|
||||
*/
|
||||
function parseAnswer(answer: answer) {
|
||||
console.log(`come in parseAnswer`);
|
||||
// console.log(`come in parseAnswer`);
|
||||
const rowRecordList: number[][] = [];
|
||||
Object.entries(answer).forEach(([key]) => {
|
||||
const [row, col] = key.split('_').map(Number);
|
||||
@@ -80,7 +80,7 @@ const rows = computed(() => question.value?.list[0]?.options ?? []);
|
||||
const cols = computed(() => question.value?.list[1]?.options ?? []);
|
||||
|
||||
watch(rowRecord, () => {
|
||||
console.log(`record has changed`, rowRecord.value);
|
||||
// console.log(`record has changed`, rowRecord.value);
|
||||
// 重新生成 answer
|
||||
const newAnswer: answer = {};
|
||||
rowRecord.value.forEach((rowOptions, rowIndex) => {
|
||||
|
||||
@@ -46,7 +46,7 @@ answer.value && parseAnswer(answer.value);
|
||||
* 解析 answer
|
||||
*/
|
||||
function parseAnswer(answer: answerType) {
|
||||
console.log(`come in parseAnswer`);
|
||||
// console.log(`come in parseAnswer`);
|
||||
const rowRecordList: number[] = [];
|
||||
Object.entries(answer).forEach(([key]) => {
|
||||
const [row, col] = key.split('_');
|
||||
@@ -65,7 +65,7 @@ const rows = computed(() => question.value?.list[0]?.options ?? []);
|
||||
const cols = computed(() => question.value?.list[1]?.options ?? []);
|
||||
|
||||
watch(rowRecord, () => {
|
||||
console.log(`record has changed`, rowRecord.value);
|
||||
// console.log(`record has changed`, rowRecord.value);
|
||||
// 生成 answer
|
||||
const newAnswer: answerType = {};
|
||||
rowRecord.value.forEach((row, col) => {
|
||||
|
||||
@@ -52,7 +52,7 @@ const rowRecord = ref<string[][]>([]);
|
||||
// 假如 answer 有数值,需要解析 answer ,然后传递 record 给子组件
|
||||
answer.value && parseAnswer(answer.value);
|
||||
|
||||
console.log(`answer value`, answer.value);
|
||||
// console.log(`answer value`, answer.value);
|
||||
/**
|
||||
* 解析 answer
|
||||
*/
|
||||
@@ -62,7 +62,7 @@ function parseAnswer(answer: answerType) {
|
||||
const [row, col] = key.split('_');
|
||||
// 如果对应位置不存在数组, 重新建立
|
||||
if (!rowRecordList[Number(row) - 1]) rowRecordList[Number(row) - 1] = [];
|
||||
console.log(`value ${value}`);
|
||||
// console.log(`value ${value}`);
|
||||
rowRecordList[Number(row) - 1][Number(col) - 1] = value;
|
||||
});
|
||||
rowRecord.value = rowRecordList;
|
||||
|
||||
@@ -22,7 +22,7 @@ function getRates() {
|
||||
});
|
||||
}
|
||||
|
||||
console.log(answer.value && getRates());
|
||||
// console.log(answer.value && getRates());
|
||||
watch(
|
||||
rates,
|
||||
() => {
|
||||
|
||||
@@ -21,27 +21,20 @@
|
||||
<div class="modal">
|
||||
<div class="m-title">
|
||||
<LangTranslate
|
||||
v-if="countTime > 0"
|
||||
translate-key="QLast_RedirectingIn5Seconds"
|
||||
v-if="countTime > 0" translate-key="QLast_RedirectingIn5Seconds"
|
||||
:translate-params="[countTime]"
|
||||
/>
|
||||
<LangTranslate v-else translate-key="QLast_IosRedirectingPrompt" />
|
||||
</div>
|
||||
<div class="m-bottom">
|
||||
<LangTranslate
|
||||
v-if="countTime > 0"
|
||||
translate-key="QLast_Stay"
|
||||
class="m-btn border-right"
|
||||
@click="stopJump"
|
||||
/>
|
||||
<LangTranslate v-if="countTime > 0" translate-key="QLast_Stay" class="m-btn border-right" @click="stopJump" />
|
||||
<LangTranslate translate-key="QLast_Redirect" class="m-btn" @click="jump" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<LangTranslate
|
||||
v-if="isAnswer && questionsData.survey?.style?.is_yip"
|
||||
translate-key="PoweredByDigitalTechnologyCenterYIP"
|
||||
class="footer"
|
||||
translate-key="PoweredByDigitalTechnologyCenterYIP" class="footer"
|
||||
>
|
||||
<template #prefix>
|
||||
<img src="https://diaoyan-files.automark.cc/yili_logo.png" alt="" class="yip-icon" />
|
||||
@@ -91,12 +84,16 @@ export default defineComponent({
|
||||
},
|
||||
setup(props) {
|
||||
const { proxy } = getCurrentInstance();
|
||||
// const questionsData = inject('questionsData'); // 问卷数据
|
||||
// 问卷数据
|
||||
// const questionsData = inject('questionsData');
|
||||
const { questionsData } = storeToRefs(useQuestionStore());
|
||||
console.log(11, questionsData, props.survey);
|
||||
let countTimer; // 跳转计时器
|
||||
const animation = ref(redJson); // 立即跳转动画
|
||||
const countTime = ref(0); // 跳转倒计时
|
||||
// console.log(11, questionsData, props.survey);
|
||||
// 跳转计时器
|
||||
let countTimer;
|
||||
// 立即跳转动画
|
||||
const animation = ref(redJson);
|
||||
// 跳转倒计时
|
||||
const countTime = ref(0);
|
||||
|
||||
// 是否有跳转链接
|
||||
const isEndUrl = computed(() => {
|
||||
@@ -113,19 +110,22 @@ export default defineComponent({
|
||||
// 跳转
|
||||
function toEndUrl() {
|
||||
switch (props.action.code) {
|
||||
case 20004: // 被甄别
|
||||
// 被甄别
|
||||
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: // 成功
|
||||
// 成功
|
||||
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: // 配额超限
|
||||
// 配额超限
|
||||
case 20016:
|
||||
if (props.survey.quota_end_url_select && props.survey.quota_end_url) {
|
||||
const url = props.survey.quota_end_url;
|
||||
toUrl(url);
|
||||
@@ -138,12 +138,16 @@ export default defineComponent({
|
||||
|
||||
// 跳转链接
|
||||
function toUrl(url) {
|
||||
// eslint-disable-next-line
|
||||
url = url.replaceAll('#sn#', questionsData.value.answer.sn);
|
||||
// eslint-disable-next-line
|
||||
url = url.replaceAll('#user#', questionsData.value.answer.respondent);
|
||||
// eslint-disable-next-line
|
||||
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)) {
|
||||
// eslint-disable-next-line
|
||||
url += `${url.indexOf('?') === -1 ? '?' : '&'}${key}=${proxy.$route.query[key]}`;
|
||||
}
|
||||
});
|
||||
@@ -155,10 +159,11 @@ export default defineComponent({
|
||||
wx.miniProgram.redirectTo({ url });
|
||||
});
|
||||
} else {
|
||||
let _url;
|
||||
if (url.indexOf('http://') === -1 && url.indexOf('https://') === -1) {
|
||||
url = `http://${url}`;
|
||||
_url = `http://${url}`;
|
||||
}
|
||||
open(url, '_self');
|
||||
open(_url, '_self');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -115,9 +115,12 @@ export default defineComponent({
|
||||
}
|
||||
},
|
||||
setup(props, context) {
|
||||
const value = ref(''); // 值
|
||||
const options = ref([]); // 选项
|
||||
const optionGroups = ref([]); // 分组
|
||||
// 值
|
||||
const value = ref('');
|
||||
// 选项
|
||||
const options = ref([]);
|
||||
// 分组
|
||||
const optionGroups = ref([]);
|
||||
|
||||
// console.log(`radio input question: `, props.question);
|
||||
|
||||
|
||||
@@ -91,15 +91,23 @@ export default defineComponent({
|
||||
}
|
||||
},
|
||||
setup(props) {
|
||||
// const themeColor = inject('themeColor'); // 主题颜色
|
||||
// 主题颜色
|
||||
// const themeColor = inject('themeColor');
|
||||
const { themeColor } = storeToRefs(useQuestionStore());
|
||||
const buttonColor = themeColor.value?.buttonColor; // 按钮颜色
|
||||
const buttonTextColor = themeColor.value?.buttonTextColor; // 按钮文字颜色
|
||||
const answerColor = themeColor.value?.answerColor || '#333333'; // 答案颜色
|
||||
const answerColor30 = toRgba(answerColor, 0.3); // 背景颜色(透明度30s)
|
||||
const answerColor10 = toRgba(answerColor, 0.1); // 背景颜色(透明度10)
|
||||
const answerBorder = answerColor === '#333333' ? '#d9d9d9' : answerColor; // 边框颜色
|
||||
const answerPlaceholder = toRgba(answerColor, 0.3); // placeholder颜色
|
||||
// 按钮颜色
|
||||
const buttonColor = themeColor.value?.buttonColor;
|
||||
// 按钮文字颜色
|
||||
const buttonTextColor = themeColor.value?.buttonTextColor;
|
||||
// 答案颜色
|
||||
const answerColor = themeColor.value?.answerColor || '#333333';
|
||||
// 背景颜色(透明度30s)
|
||||
const answerColor30 = toRgba(answerColor, 0.3);
|
||||
// 背景颜色(透明度10)
|
||||
const answerColor10 = toRgba(answerColor, 0.1);
|
||||
// 边框颜色
|
||||
const answerBorder = answerColor === '#333333' ? '#d9d9d9' : answerColor;
|
||||
// placeholder颜色
|
||||
const answerPlaceholder = toRgba(answerColor, 0.3);
|
||||
// 鼠标 hover 时的背景色,目前用于:单选、多选、图片单选、图片多选的选项
|
||||
const hoverBackgroundColor = `${themeColor.value?.buttonColor}1E`;
|
||||
|
||||
@@ -125,12 +133,14 @@ export default defineComponent({
|
||||
};
|
||||
|
||||
const newTitle = computed(() => {
|
||||
const cycleIndexStr = props.title?.match(/\.\d/)?.[0] || ''; // 有循环体组的题,需要在没找到被关联的题目情况下,在循环题组内再查找一次
|
||||
// 有循环体组的题,需要在没找到被关联的题目情况下,在循环题组内再查找一次
|
||||
const cycleIndexStr = props.title?.match(/\.\d/)?.[0] || '';
|
||||
let title = props.stem;
|
||||
const matchArr = title.match(/(\[%cite\(.*?\)%\])/g) || [];
|
||||
matchArr.forEach((matchValue) => {
|
||||
const value = matchValue.replace('[%cite(', '').replace(')%]', '');
|
||||
let replacement = ''; // 替换文本
|
||||
// 替换文本
|
||||
let replacement = '';
|
||||
// 查找引用问题
|
||||
const question
|
||||
= props.questions.find((question) => {
|
||||
@@ -156,7 +166,8 @@ export default defineComponent({
|
||||
return question.title === value + cycleIndexStr;
|
||||
});
|
||||
if (question) {
|
||||
let options = []; // 选项
|
||||
// 选项
|
||||
let options = [];
|
||||
question.list.forEach((list) => {
|
||||
options = [...options, ...list.options];
|
||||
});
|
||||
@@ -274,7 +285,7 @@ export default defineComponent({
|
||||
min-height: 24px;
|
||||
margin-bottom: 24px;
|
||||
|
||||
> span {
|
||||
>span {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
@@ -302,8 +313,7 @@ export default defineComponent({
|
||||
|
||||
// .question-inner-span {
|
||||
// width: 100%;
|
||||
// }
|
||||
</style>
|
||||
// }</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
:deep(.theme-hover-default) {
|
||||
|
||||
@@ -21,7 +21,8 @@ class AnswerApi {
|
||||
url: `/console/surveys/${params.id}/detail`,
|
||||
params: params.data,
|
||||
headers: {
|
||||
'answer-session-id': AnswerApi.getLocalStorageWithExpiration('answer-session-id') // store.state.answer.answerSessionId,
|
||||
// store.state.answer.answerSessionId,
|
||||
'answer-session-id': AnswerApi.getLocalStorageWithExpiration('answer-session-id')
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -54,7 +55,8 @@ class AnswerApi {
|
||||
url: `/system/sms_codes`,
|
||||
data: params.data,
|
||||
headers: {
|
||||
'answer-session-id': AnswerApi.getLocalStorageWithExpiration('answer-session-id') // store.state.answer.answerSessionId,
|
||||
// store.state.answer.answerSessionId,
|
||||
'answer-session-id': AnswerApi.getLocalStorageWithExpiration('answer-session-id')
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -65,7 +67,8 @@ class AnswerApi {
|
||||
url: `/answer/surveys/${params.id}/password`,
|
||||
data: params.data,
|
||||
headers: {
|
||||
'answer-session-id': AnswerApi.getLocalStorageWithExpiration('answer-session-id') // store.state.answer.answerSessionId,
|
||||
// store.state.answer.answerSessionId,
|
||||
'answer-session-id': AnswerApi.getLocalStorageWithExpiration('answer-session-id')
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -75,7 +78,8 @@ class AnswerApi {
|
||||
method: 'get',
|
||||
url: `/console/survey_word_export/${sn}?${params}`,
|
||||
headers: {
|
||||
'answer-session-id': AnswerApi.getLocalStorageWithExpiration('answer-session-id') // store.state.answer.answerSessionId,
|
||||
// store.state.answer.answerSessionId,
|
||||
'answer-session-id': AnswerApi.getLocalStorageWithExpiration('answer-session-id')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -33,7 +33,8 @@ export default defineComponent({
|
||||
// const questionsData = inject('questionsData'); // 问卷数据
|
||||
|
||||
const translatedText = computed(() => questionsData.value.language || {});
|
||||
const startAnswerTime = new Date().getTime(); // 开始答题时间戳
|
||||
// 开始答题时间戳
|
||||
const startAnswerTime = new Date().getTime();
|
||||
const { proxy } = getCurrentInstance();
|
||||
const scrollbar = ref(null);
|
||||
let localPageInterval;
|
||||
@@ -340,7 +341,8 @@ export default defineComponent({
|
||||
const { value } = answer;
|
||||
const newValue = value.replace(/\n|\r|\r\n/g, '');
|
||||
switch (config.text_type) {
|
||||
case 3: // 字母
|
||||
// 字母
|
||||
case 3:
|
||||
isError
|
||||
= config.include_mark === 1
|
||||
? !/^[a-zA-Z·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]]+$/.test(
|
||||
@@ -349,7 +351,8 @@ export default defineComponent({
|
||||
: !/^[a-zA-Z]+$/.test(newValue) || !newValue.length;
|
||||
question.error = isError ? translatedText.value.PleaseEnterEnglishLetters : '';
|
||||
break;
|
||||
case 4: // 中文
|
||||
// 中文
|
||||
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(
|
||||
@@ -360,18 +363,21 @@ export default defineComponent({
|
||||
) || !newValue.length;
|
||||
question.error = isError ? translatedText.value.PleaseEnterChineseWords : '';
|
||||
break;
|
||||
case 5: // 邮箱
|
||||
// 邮箱
|
||||
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: // 手机号
|
||||
// 手机号
|
||||
case 6:
|
||||
isError = !/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(value);
|
||||
question.error = isError ? translatedText.value.PleaseEnterACorrectPhone : '';
|
||||
break;
|
||||
case 7: // 身份证号
|
||||
// 身份证号
|
||||
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
|
||||
@@ -391,7 +397,8 @@ export default defineComponent({
|
||||
Object.keys(answer).forEach((key) => {
|
||||
const value = answer[key];
|
||||
switch (config.text_type) {
|
||||
case 3: // 字母
|
||||
// 字母
|
||||
case 3:
|
||||
if (
|
||||
!/^[a-zA-Z·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]]+$/.test(
|
||||
value
|
||||
@@ -400,7 +407,8 @@ export default defineComponent({
|
||||
question.error = translatedText.value.PleaseEnterEnglishLetters;
|
||||
}
|
||||
break;
|
||||
case 4: // 中文
|
||||
// 中文
|
||||
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
|
||||
@@ -409,7 +417,8 @@ export default defineComponent({
|
||||
question.error = translatedText.value.PleaseEnterChineseWords;
|
||||
}
|
||||
break;
|
||||
case 5: // 邮箱
|
||||
// 邮箱
|
||||
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
|
||||
@@ -418,12 +427,14 @@ export default defineComponent({
|
||||
question.error = translatedText.value.PleaseEnterACorrectEmail;
|
||||
}
|
||||
break;
|
||||
case 6: // 手机号
|
||||
// 手机号
|
||||
case 6:
|
||||
if (!/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(value)) {
|
||||
question.error = translatedText.value.PleaseEnterACorrectPhone;
|
||||
}
|
||||
break;
|
||||
case 7: // 身份证号
|
||||
// 身份证号
|
||||
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
|
||||
@@ -834,10 +845,11 @@ export default defineComponent({
|
||||
wx.miniProgram.redirectTo({ url });
|
||||
});
|
||||
} else {
|
||||
let _url;
|
||||
if (url.indexOf('http://') === -1 && url.indexOf('https://') === -1) {
|
||||
url = `http://${url}`;
|
||||
_url = `http://${url}`;
|
||||
}
|
||||
open(url);
|
||||
open(_url);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,10 +29,7 @@
|
||||
<img class="not-publish-icon" src="@/assets/img/publish/not_pulish.png" alt="" />
|
||||
<div class="text">点击"启用"按钮后,问卷才可以开始回收数据</div>
|
||||
<van-button
|
||||
type="primary"
|
||||
style="margin-top: 20px"
|
||||
class="publish-btn"
|
||||
color="#70b936"
|
||||
type="primary" style="margin-top: 20px" class="publish-btn" color="#70b936"
|
||||
@click="openPublishModal"
|
||||
>
|
||||
<template #icon>
|
||||
@@ -63,7 +60,8 @@ const route = useRoute();
|
||||
const surveyTitle = route.meta.title as string;
|
||||
appBridge.setTitle(surveyTitle);
|
||||
const sn = route.query.sn;
|
||||
const status = ref<number>(0); // `0`: 编辑中 `1`: 投放中 `2`: 已结束
|
||||
// `0`: 编辑中 `1`: 投放中 `2`: 已结束
|
||||
const status = ref<number>(0);
|
||||
const publishType = ref(0);
|
||||
const operateList = reactive([
|
||||
{
|
||||
@@ -130,9 +128,10 @@ function shareLink() {
|
||||
description: publishInfo.value.desc || '',
|
||||
thumbImageUrl: publishInfo.value.img_url,
|
||||
webpageUrl: publishInfo.value.url,
|
||||
scene: 0 // 朋友圈1 微信好友0
|
||||
// 朋友圈1 微信好友0
|
||||
scene: 0
|
||||
};
|
||||
console.log('shareUrl', publishInfo.value.url);
|
||||
// console.log('shareUrl', publishInfo.value.url);
|
||||
appBridge.shareToWeChat(params);
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user