style(css): 更新样式文件并添加新图标
- 更新 main.scss 和 public.scss,使用 @use 替代 @import - 添加 upload 和 shanchu1 两个新图标 - 更新 iconfont.css 和相关文件以包含新图标
This commit is contained in:
@@ -4,7 +4,7 @@ import { onMounted } from 'vue';
|
|||||||
import appBridge from '@/assets/js/appBridge';
|
import appBridge from '@/assets/js/appBridge';
|
||||||
import utils from '@/assets/js/common';
|
import utils from '@/assets/js/common';
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async() => {
|
||||||
if (utils.getParameter('digitalYiliToken')) {
|
if (utils.getParameter('digitalYiliToken')) {
|
||||||
// 隐藏/显示 header
|
// 隐藏/显示 header
|
||||||
appBridge.setHeaderShown(false);
|
appBridge.setHeaderShown(false);
|
||||||
|
|||||||
@@ -85,9 +85,9 @@ export default class CommonApi {
|
|||||||
};
|
};
|
||||||
/* eslint-disable no-useless-escape */
|
/* eslint-disable no-useless-escape */
|
||||||
const reg = /\\|\/|\?|\?|\*|"|“|”|'|‘|’|<|>|{|}|\[|\]|\【|\】|:|:|、|\^|\$|!|~|`|\s|\+/g;
|
const reg = /\\|\/|\?|\?|\*|"|“|”|'|‘|’|<|>|{|}|\[|\]|\【|\】|:|:|、|\^|\$|!|~|`|\s|\+/g;
|
||||||
name =
|
name
|
||||||
name ||
|
= name
|
||||||
getRandomFileName(file?.name?.replace(reg, '') ?? '' ?? `${new Date().getTime()}.png`);
|
|| getRandomFileName(file?.name?.replace(reg, '') ?? '' ?? `${new Date().getTime()}.png`);
|
||||||
const res = await CommonApi.getOssInfo();
|
const res = await CommonApi.getOssInfo();
|
||||||
/* eslint-enable no-useless-escape */
|
/* eslint-enable no-useless-escape */
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,20 @@
|
|||||||
|
// main.scss
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
@import 'theme';
|
@import 'theme';
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
@import 'base';
|
@import 'base';
|
||||||
@import '../../fonts/iconfont.css';
|
|
||||||
@import '../../fonts/moblie/iconfont.css';
|
/* eslint-disable */
|
||||||
@import 'public';
|
@import 'public';
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
@import '../../fonts/iconfont.css';
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
@import '../../fonts/moblie/iconfont.css';
|
||||||
|
|
||||||
a,
|
a,
|
||||||
.green {
|
.green {
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
// public.scss
|
||||||
.van-nav-bar {
|
.van-nav-bar {
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
padding-top: calc(var(--status-bar-height) + 15px) !important;
|
padding-top: calc(var(--status-bar-height) + 15px) !important;
|
||||||
@@ -88,7 +89,7 @@
|
|||||||
bottom: -2px;
|
bottom: -2px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-bottom: 0.0267rem solid #ebedf0;
|
border-bottom: 0.0267rem solid #fff;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
transform: scaleY(0.5);
|
transform: scaleY(0.5);
|
||||||
}
|
}
|
||||||
@@ -115,6 +116,11 @@
|
|||||||
color: $theme-color;
|
color: $theme-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.van-dialog__confirm,
|
||||||
|
.van-dialog__confirm:active {
|
||||||
|
color: $theme-color;
|
||||||
|
}
|
||||||
|
|
||||||
.round-group {
|
.round-group {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
margin: 13px 10px;
|
margin: 13px 10px;
|
||||||
|
|||||||
@@ -170,8 +170,8 @@ const getMaxDateLimit = computed(() => {
|
|||||||
props.format
|
props.format
|
||||||
);
|
);
|
||||||
const tempStr = '0000-12-31 23:59:59';
|
const tempStr = '0000-12-31 23:59:59';
|
||||||
const result =
|
const result
|
||||||
props.maxDate.length !== 0 && thisMax.length > props.maxDate.length
|
= props.maxDate.length !== 0 && thisMax.length > props.maxDate.length
|
||||||
? thisMax.slice(0, props.maxDate.length) + tempStr.slice(props.maxDate.length)
|
? thisMax.slice(0, props.maxDate.length) + tempStr.slice(props.maxDate.length)
|
||||||
: thisMax;
|
: thisMax;
|
||||||
return result.slice(0, props.format.length);
|
return result.slice(0, props.format.length);
|
||||||
@@ -194,8 +194,8 @@ function onChange({ selectedValues, columnIndex }) {
|
|||||||
renderMinuteColumns,
|
renderMinuteColumns,
|
||||||
renderSecondColumns
|
renderSecondColumns
|
||||||
];
|
];
|
||||||
updateColumns[columnIndex] &&
|
updateColumns[columnIndex]
|
||||||
updateColumns[columnIndex](changeValue, getMinDateLimit.value, getMaxDateLimit.value, false);
|
&& updateColumns[columnIndex](changeValue, getMinDateLimit.value, getMaxDateLimit.value, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 渲染全部列
|
// 渲染全部列
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ const functions = {
|
|||||||
document.execCommand('italic', false, null);
|
document.execCommand('italic', false, null);
|
||||||
},
|
},
|
||||||
|
|
||||||
uploadImage: async () => {
|
uploadImage: async() => {
|
||||||
// 保存当前光标位置
|
// 保存当前光标位置
|
||||||
savedRange.value = saveSelection();
|
savedRange.value = saveSelection();
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ const functions = {
|
|||||||
|
|
||||||
fileInput.click();
|
fileInput.click();
|
||||||
|
|
||||||
fileInput.onchange = async (e) => {
|
fileInput.onchange = async(e) => {
|
||||||
const [file] = e.target.files;
|
const [file] = e.target.files;
|
||||||
if (!file) return;
|
if (!file) return;
|
||||||
if (file.size > 2 * 1024 * 1024) {
|
if (file.size > 2 * 1024 * 1024) {
|
||||||
|
|||||||
@@ -4,11 +4,11 @@
|
|||||||
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
|
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
|
||||||
src:
|
src:
|
||||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix')
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix')
|
||||||
format('embedded-opentype'),
|
format('embedded-opentype'),
|
||||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
|
||||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
|
||||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont')
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont')
|
||||||
format('svg');
|
format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
|
|||||||
@@ -4,11 +4,11 @@
|
|||||||
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
|
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
|
||||||
src:
|
src:
|
||||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix')
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix')
|
||||||
format('embedded-opentype'),
|
format('embedded-opentype'),
|
||||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
|
||||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
|
||||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont')
|
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont')
|
||||||
format('svg');
|
format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: mobilefont; /* Project id 4841764 */
|
font-family: mobilefont; /* Project id 4841764 */
|
||||||
src:
|
src:
|
||||||
url('iconfont.woff2?t=1742191207096') format('woff2'),
|
url('iconfont.woff2?t=1742209273577') format('woff2'),
|
||||||
url('iconfont.woff?t=1742191207096') format('woff'),
|
url('iconfont.woff?t=1742209273577') format('woff'),
|
||||||
url('iconfont.ttf?t=1742191207096') format('truetype');
|
url('iconfont.ttf?t=1742209273577') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.mobilefont {
|
.mobilefont {
|
||||||
@@ -14,6 +14,14 @@
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mobilefont-upload::before {
|
||||||
|
content: '\e682';
|
||||||
|
}
|
||||||
|
|
||||||
|
.mobilefont-shanchu1::before {
|
||||||
|
content: '\ed1b';
|
||||||
|
}
|
||||||
|
|
||||||
.mobilefont-left-long::before {
|
.mobilefont-left-long::before {
|
||||||
content: '\e601';
|
content: '\e601';
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -5,6 +5,20 @@
|
|||||||
"css_prefix_text": "mobilefont-",
|
"css_prefix_text": "mobilefont-",
|
||||||
"description": "",
|
"description": "",
|
||||||
"glyphs": [
|
"glyphs": [
|
||||||
|
{
|
||||||
|
"icon_id": "15838548",
|
||||||
|
"name": "upload",
|
||||||
|
"font_class": "upload",
|
||||||
|
"unicode": "e682",
|
||||||
|
"unicode_decimal": 59010
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "24737052",
|
||||||
|
"name": "删除",
|
||||||
|
"font_class": "shanchu1",
|
||||||
|
"unicode": "ed1b",
|
||||||
|
"unicode_decimal": 60699
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"icon_id": "36915584",
|
"icon_id": "36915584",
|
||||||
"name": "left-long",
|
"name": "left-long",
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -376,39 +376,39 @@ export function isCross(range1, range2) {
|
|||||||
const isSibling = isLeft || isRight;
|
const isSibling = isLeft || isRight;
|
||||||
|
|
||||||
// 逻辑包含循环
|
// 逻辑包含循环
|
||||||
const contain =
|
const contain
|
||||||
(isPlainSequence &&
|
= (isPlainSequence
|
||||||
(((isNullish(start2) || isSequence(judge, start2, start1)) &&
|
&& (((isNullish(start2) || isSequence(judge, start2, start1))
|
||||||
(isNullish(end2) || isSequence(judge, end2, start1))) ||
|
&& (isNullish(end2) || isSequence(judge, end2, start1)))
|
||||||
((isNullish(start2) || isSequence(start1, start2, end1)) &&
|
|| ((isNullish(start2) || isSequence(start1, start2, end1))
|
||||||
(isNullish(end2) || isSequence(start1, end2, end1))))) ||
|
&& (isNullish(end2) || isSequence(start1, end2, end1)))))
|
||||||
(!isPlainSequence &&
|
|| (!isPlainSequence
|
||||||
(judge < start1
|
&& (judge < start1
|
||||||
? ((isNullish(start2) || isSequence(judge, start2, start1)) &&
|
? ((isNullish(start2) || isSequence(judge, start2, start1))
|
||||||
(isNullish(end2) || isSequence(judge, end2, start1))) ||
|
&& (isNullish(end2) || isSequence(judge, end2, start1)))
|
||||||
((isNullish(start2) || isSequence(start1, start2, end1)) &&
|
|| ((isNullish(start2) || isSequence(start1, start2, end1))
|
||||||
(isNullish(end2) || isSequence(start1, end2, end1)))
|
&& (isNullish(end2) || isSequence(start1, end2, end1)))
|
||||||
: ((isNullish(start2) || isSequence(start1, start2, judge)) &&
|
: ((isNullish(start2) || isSequence(start1, start2, judge))
|
||||||
(isNullish(end2) || isSequence(start1, end2, judge))) ||
|
&& (isNullish(end2) || isSequence(start1, end2, judge)))
|
||||||
((isNullish(start2) || isSequence(judge, start2, end1)) &&
|
|| ((isNullish(start2) || isSequence(judge, start2, end1))
|
||||||
(isNullish(end2) || isSequence(judge, end2, end1)))));
|
&& (isNullish(end2) || isSequence(judge, end2, end1)))));
|
||||||
// 循环存在封闭区间,并且循环包含逻辑
|
// 循环存在封闭区间,并且循环包含逻辑
|
||||||
const contained =
|
const contained
|
||||||
!isNullish(start2) &&
|
= !isNullish(start2)
|
||||||
!isNullish(end2) &&
|
&& !isNullish(end2)
|
||||||
// [judge, start1, end1];
|
// [judge, start1, end1];
|
||||||
((isPlainSequence && start2 <= judge && end1 <= end2) ||
|
&& ((isPlainSequence && start2 <= judge && end1 <= end2)
|
||||||
// [judge, start1, end1];
|
// [judge, start1, end1];
|
||||||
// [start1, judge, end1];
|
// [start1, judge, end1];
|
||||||
(!isPlainSequence && start2 <= start1 && start2 <= judge && end1 <= end2));
|
|| (!isPlainSequence && start2 <= start1 && start2 <= judge && end1 <= end2));
|
||||||
// 循环不存在封闭区间
|
// 循环不存在封闭区间
|
||||||
const unCircled =
|
const unCircled
|
||||||
(!isNullish(start2) &&
|
= (!isNullish(start2)
|
||||||
isNullish(end2) &&
|
&& isNullish(end2)
|
||||||
((isPlainSequence && start2 === judge) || (!isPlainSequence && judge < start1)
|
&& ((isPlainSequence && start2 === judge) || (!isPlainSequence && judge < start1)
|
||||||
? start2 === judge
|
? start2 === judge
|
||||||
: start2 === start1)) ||
|
: start2 === start1))
|
||||||
(isNullish(start2) && !isNullish(end2) && end2 === end1);
|
|| (isNullish(start2) && !isNullish(end2) && end2 === end1);
|
||||||
|
|
||||||
return !(isSibling || contain || contained || unCircled);
|
return !(isSibling || contain || contained || unCircled);
|
||||||
}
|
}
|
||||||
@@ -428,8 +428,8 @@ function isSequence(s1, s2, s3, equal) {
|
|||||||
* @param store
|
* @param store
|
||||||
*/
|
*/
|
||||||
export function updateNewQuestionsByLoopingEffect(quesSaveParam, store) {
|
export function updateNewQuestionsByLoopingEffect(quesSaveParam, store) {
|
||||||
const { questionInfoBeforeModified = {}, questionInfo = {} } =
|
const { questionInfoBeforeModified = {}, questionInfo = {} }
|
||||||
JSON.parse(JSON.stringify(store.state.common)) || {};
|
= JSON.parse(JSON.stringify(store.state.common)) || {};
|
||||||
|
|
||||||
const oldPages = questionInfoBeforeModified.survey.pages;
|
const oldPages = questionInfoBeforeModified.survey.pages;
|
||||||
const newQuestions = questionInfo.questions;
|
const newQuestions = questionInfo.questions;
|
||||||
|
|||||||
@@ -43,13 +43,13 @@ function showModal(options) {
|
|||||||
* @param {*} data
|
* @param {*} data
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
const canPlanetPublishPSM = function (data) {
|
const canPlanetPublishPSM = function(data) {
|
||||||
let isFb = true;
|
let isFb = true;
|
||||||
let message = '';
|
let message = '';
|
||||||
let title = '题目设置未完成';
|
let title = '题目设置未完成';
|
||||||
const incompleteQuestionList = [];
|
const incompleteQuestionList = [];
|
||||||
data.questions &&
|
data.questions
|
||||||
data.questions.forEach((s) => {
|
&& data.questions.forEach((s) => {
|
||||||
if (s.question_type === 101 && s.config.price_gradient.length <= 0) {
|
if (s.question_type === 101 && s.config.price_gradient.length <= 0) {
|
||||||
isFb = false;
|
isFb = false;
|
||||||
message = 'psm题目未完成设置,请设置价格区间后投放';
|
message = 'psm题目未完成设置,请设置价格区间后投放';
|
||||||
@@ -73,15 +73,15 @@ const canPlanetPublishPSM = function (data) {
|
|||||||
* @param {*} data
|
* @param {*} data
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
const canPlanetPublishMxdAndHotArea = function (data) {
|
const canPlanetPublishMxdAndHotArea = function(data) {
|
||||||
let isFb = true;
|
let isFb = true;
|
||||||
let message = '';
|
let message = '';
|
||||||
const qSteams = [];
|
const qSteams = [];
|
||||||
const incompleteQuestionList = [];
|
const incompleteQuestionList = [];
|
||||||
let type = 0;
|
let type = 0;
|
||||||
let title = '题目设置未完成';
|
let title = '题目设置未完成';
|
||||||
data.questions &&
|
data.questions
|
||||||
data.questions.forEach((s) => {
|
&& data.questions.forEach((s) => {
|
||||||
if (s.question_type === 105 && s.config.design_version <= 0) {
|
if (s.question_type === 105 && s.config.design_version <= 0) {
|
||||||
isFb = false;
|
isFb = false;
|
||||||
message = 'maxdiff题目未完成设置,请生成设计后投放';
|
message = 'maxdiff题目未完成设置,请生成设计后投放';
|
||||||
@@ -120,23 +120,23 @@ const canPlanetPublishMxdAndHotArea = function (data) {
|
|||||||
* @param {*} data
|
* @param {*} data
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
const canPlanetPublish3D = function (data) {
|
const canPlanetPublish3D = function(data) {
|
||||||
console.log(56, data);
|
|
||||||
|
|
||||||
{
|
{
|
||||||
let canFB = true;
|
let canFB = true;
|
||||||
let message = '';
|
let message = '';
|
||||||
const qSteams = [];
|
const qSteams = [];
|
||||||
let title = '';
|
let title = '';
|
||||||
data.questions &&
|
data.questions
|
||||||
data.questions.forEach((s) => {
|
&& data.questions.forEach((s) => {
|
||||||
if (QUESTION_TYPE.contains(s.question_type)) {
|
if (QUESTION_TYPE.contains(s.question_type)) {
|
||||||
try {
|
try {
|
||||||
if (s.config.is_three_dimensions && !s.config.scene) {
|
if (s.config.is_three_dimensions && !s.config.scene) {
|
||||||
canFB = false;
|
canFB = false;
|
||||||
qSteams.push(`(${s.title})`);
|
qSteams.push(`(${s.title})`);
|
||||||
}
|
}
|
||||||
} catch (error) {}
|
} catch (error) {
|
||||||
|
// error
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -157,15 +157,15 @@ const canPlanetPublish3D = function (data) {
|
|||||||
let message = '';
|
let message = '';
|
||||||
const qSteams = [];
|
const qSteams = [];
|
||||||
let title = '';
|
let title = '';
|
||||||
data.questions &&
|
data.questions
|
||||||
data.questions.forEach((s) => {
|
&& data.questions.forEach((s) => {
|
||||||
if (QUESTION_TYPE.contains(s.question_type)) {
|
if (QUESTION_TYPE.contains(s.question_type)) {
|
||||||
try {
|
try {
|
||||||
if (s.config.is_three_dimensions && s.config.is_binding_goods) {
|
if (s.config.is_three_dimensions && s.config.is_binding_goods) {
|
||||||
const wares = [];
|
const wares = [];
|
||||||
const _sceneInformation = s.config.scene_information;
|
const _sceneInformation = s.config.scene_information;
|
||||||
const sceneInformation =
|
const sceneInformation
|
||||||
typeof _sceneInformation === 'string'
|
= typeof _sceneInformation === 'string'
|
||||||
? JSON.parse(_sceneInformation)
|
? JSON.parse(_sceneInformation)
|
||||||
: _sceneInformation;
|
: _sceneInformation;
|
||||||
sceneInformation.shelves.forEach((shelf) => {
|
sceneInformation.shelves.forEach((shelf) => {
|
||||||
@@ -215,14 +215,14 @@ const canPlanetPublish3D = function (data) {
|
|||||||
* @param {*} data
|
* @param {*} data
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
const canPlanetPublishImage = function (data) {
|
const canPlanetPublishImage = function(data) {
|
||||||
{
|
{
|
||||||
let canFB = true;
|
let canFB = true;
|
||||||
let message = '';
|
let message = '';
|
||||||
const qSteams = [];
|
const qSteams = [];
|
||||||
let title = '';
|
let title = '';
|
||||||
data.questions &&
|
data.questions
|
||||||
data.questions.forEach((s) => {
|
&& data.questions.forEach((s) => {
|
||||||
if (s.question_type === 13) {
|
if (s.question_type === 13) {
|
||||||
try {
|
try {
|
||||||
if (s.options.length <= 0 || s.options.some((y) => y.length <= 0)) {
|
if (s.options.length <= 0 || s.options.some((y) => y.length <= 0)) {
|
||||||
@@ -317,8 +317,8 @@ function canPublishRandom(data, publishType) {
|
|||||||
if (!isValidated) {
|
if (!isValidated) {
|
||||||
errors.push({
|
errors.push({
|
||||||
message:
|
message:
|
||||||
field.message ||
|
field.message
|
||||||
`请填写"${random.title}"中第${index + 1}组"随机题组"的"${field.name}"`
|
|| `请填写"${random.title}"中第${index + 1}组"随机题组"的"${field.name}"`
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -397,11 +397,11 @@ function isLoopingLogicValid(data, publishType) {
|
|||||||
if (
|
if (
|
||||||
(data?.cycle_pages || []).every((i) => {
|
(data?.cycle_pages || []).every((i) => {
|
||||||
return (
|
return (
|
||||||
i.question_index &&
|
i.question_index
|
||||||
i.relation_type !== undefined &&
|
&& i.relation_type !== undefined
|
||||||
i.relation_type !== null &&
|
&& i.relation_type !== null
|
||||||
i.first_page &&
|
&& i.first_page
|
||||||
i.last_page
|
&& i.last_page
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
) {
|
) {
|
||||||
@@ -425,7 +425,7 @@ function isLoopingLogicValid(data, publishType) {
|
|||||||
* @param sn
|
* @param sn
|
||||||
* @param publishType undefined投放;null投放;0投放;1预览;2投放;3测试
|
* @param publishType undefined投放;null投放;0投放;1预览;2投放;3测试
|
||||||
*/
|
*/
|
||||||
export const canPlanetPublish = async function (sn, publishType) {
|
export const canPlanetPublish = async function(sn, publishType) {
|
||||||
const parsedPublishType = !publishType ? 2 : publishType;
|
const parsedPublishType = !publishType ? 2 : publishType;
|
||||||
const num = window.location.href.indexOf('code=');
|
const num = window.location.href.indexOf('code=');
|
||||||
let code;
|
let code;
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
export const surveyQuestion =
|
export const surveyQuestion
|
||||||
'https://yls-api-uat.dctest.digitalyili.com/api/console/surveys/RWNK9BYp/questions';
|
= 'https://yls-api-uat.dctest.digitalyili.com/api/console/surveys/RWNK9BYp/questions';
|
||||||
|
|||||||
@@ -39,10 +39,10 @@ service.interceptors.request.use(
|
|||||||
service.interceptors.response.use(
|
service.interceptors.response.use(
|
||||||
(response) => {
|
(response) => {
|
||||||
if (
|
if (
|
||||||
response.status === 200 ||
|
response.status === 200
|
||||||
response.status === 201 ||
|
|| response.status === 201
|
||||||
response.status === 202 ||
|
|| response.status === 202
|
||||||
response.status === 204
|
|| response.status === 204
|
||||||
) {
|
) {
|
||||||
if (response.config.method === 'put') {
|
if (response.config.method === 'put') {
|
||||||
// message.success('保存中...');
|
// message.success('保存中...');
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export default {
|
|||||||
options: [
|
options: [
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
id: 'b68d45eb-d833-4b25-b0aa-2fde1310e88d',
|
id: '',
|
||||||
is_fixed: 0,
|
is_fixed: 0,
|
||||||
is_other: 0,
|
is_other: 0,
|
||||||
is_remove_other: 0,
|
is_remove_other: 0,
|
||||||
|
|||||||
@@ -45,10 +45,10 @@ service.interceptors.request.use(
|
|||||||
service.interceptors.response.use(
|
service.interceptors.response.use(
|
||||||
(response) => {
|
(response) => {
|
||||||
if (
|
if (
|
||||||
response.status === 200 ||
|
response.status === 200
|
||||||
response.status === 201 ||
|
|| response.status === 201
|
||||||
response.status === 202 ||
|
|| response.status === 202
|
||||||
response.status === 204
|
|| response.status === 204
|
||||||
) {
|
) {
|
||||||
if (response.config.method === 'put') {
|
if (response.config.method === 'put') {
|
||||||
// message.success('保存中...');
|
// message.success('保存中...');
|
||||||
|
|||||||
@@ -134,23 +134,23 @@ const openOptionActionModel = (item, index) => {
|
|||||||
// 上下移动
|
// 上下移动
|
||||||
const optionMove = (action) => {
|
const optionMove = (action) => {
|
||||||
switch (action.action) {
|
switch (action.action) {
|
||||||
case 'up':
|
case 'up':
|
||||||
if (activeIndex.value === 0) {
|
if (activeIndex.value === 0) {
|
||||||
moveShow.value = false;
|
moveShow.value = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// 向上移动
|
// 向上移动
|
||||||
element.value.splice(activeIndex.value - 1, 0, element.value.splice(activeIndex.value, 1)[0]);
|
element.value.splice(activeIndex.value - 1, 0, element.value.splice(activeIndex.value, 1)[0]);
|
||||||
activeIndex.value -= 1;
|
activeIndex.value -= 1;
|
||||||
break;
|
break;
|
||||||
case 'down':
|
case 'down':
|
||||||
if (activeIndex.value === element.value.length - 1) {
|
if (activeIndex.value === element.value.length - 1) {
|
||||||
moveShow.value = false;
|
moveShow.value = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
element.value.splice(activeIndex.value + 1, 0, element.value.splice(activeIndex.value, 1)[0]);
|
element.value.splice(activeIndex.value + 1, 0, element.value.splice(activeIndex.value, 1)[0]);
|
||||||
activeIndex.value += 1;
|
activeIndex.value += 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -267,8 +267,8 @@ const getSkipTypeText = (skipType) => {
|
|||||||
const ls = [];
|
const ls = [];
|
||||||
logics.map((item) => {
|
logics.map((item) => {
|
||||||
if (
|
if (
|
||||||
item.skip_type === skipType &&
|
item.skip_type === skipType
|
||||||
item.question_index === activeQuestion.value.question_index
|
&& item.question_index === activeQuestion.value.question_index
|
||||||
) {
|
) {
|
||||||
ls.push(item);
|
ls.push(item);
|
||||||
}
|
}
|
||||||
@@ -284,13 +284,13 @@ const getSkipTypeText = (skipType) => {
|
|||||||
|
|
||||||
const questionSetting = (type) => {
|
const questionSetting = (type) => {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'before':
|
case 'before':
|
||||||
questionBeforeShow.value = true;
|
questionBeforeShow.value = true;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'after':
|
case 'after':
|
||||||
questionBeforeShow.value = true;
|
questionBeforeShow.value = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
skipType.value = type === 'before' ? 1 : 0;
|
skipType.value = type === 'before' ? 1 : 0;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -144,8 +144,8 @@
|
|||||||
<BeforeRate
|
<BeforeRate
|
||||||
v-if="
|
v-if="
|
||||||
log.logic !== 'always' &&
|
log.logic !== 'always' &&
|
||||||
log.is_answer !== 0 &&
|
log.is_answer !== 0 &&
|
||||||
[5, 106].includes(log.question_type)
|
[5, 106].includes(log.question_type)
|
||||||
"
|
"
|
||||||
:activeQuestion="activeQuestion"
|
:activeQuestion="activeQuestion"
|
||||||
:logic="log"
|
:logic="log"
|
||||||
|
|||||||
@@ -108,9 +108,9 @@ function isSurplus() {
|
|||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
return (
|
return (
|
||||||
parseFloat(((localConfig.value.max - localConfig.value.min) * 1000).toFixed(4, 10)) %
|
parseFloat(((localConfig.value.max - localConfig.value.min) * 1000).toFixed(4, 10))
|
||||||
parseFloat((localConfig.value.score_interval * 1000).toFixed(4, 10)) ===
|
% parseFloat((localConfig.value.score_interval * 1000).toFixed(4, 10))
|
||||||
0
|
=== 0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ const emitValue = () => {
|
|||||||
:label="element.stem"
|
:label="element.stem"
|
||||||
:required="element.config.is_required === 1"
|
:required="element.config.is_required === 1"
|
||||||
label-align="top"
|
label-align="top"
|
||||||
|
class="contenteditable-question-title"
|
||||||
>
|
>
|
||||||
<template #left-icon>
|
<template #left-icon>
|
||||||
{{ index + 1 }}
|
{{ index + 1 }}
|
||||||
@@ -79,8 +80,8 @@ const emitValue = () => {
|
|||||||
|
|
||||||
<template #input>
|
<template #input>
|
||||||
<div class="file-upload-label">
|
<div class="file-upload-label">
|
||||||
<van-icon name="photo"></van-icon>
|
<van-icon class-prefix="mobilefont" name="upload " />
|
||||||
<span>上传文件</span>
|
<span>文件上传</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</van-field>
|
</van-field>
|
||||||
@@ -90,12 +91,20 @@ const emitValue = () => {
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.file-upload-label {
|
.file-upload-label {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 10px;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: 100%;
|
justify-content: center;
|
||||||
|
|
||||||
|
//width: 100%;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
padding: 5px;
|
margin: 60px 0;
|
||||||
border: 1px solid #dfdfdf;
|
padding: 16px 18px;
|
||||||
border-radius: 3px;
|
border: 1px dashed #979797;
|
||||||
|
border-radius: 8px;
|
||||||
|
color: #666;
|
||||||
|
|
||||||
|
//gap: 10px;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -21,14 +21,14 @@ const { element } = toRefs(props);
|
|||||||
*/
|
*/
|
||||||
const tableInputTypeMapping = (/** regx?: any */) => {
|
const tableInputTypeMapping = (/** regx?: any */) => {
|
||||||
switch (element.value.question_type) {
|
switch (element.value.question_type) {
|
||||||
case 8:
|
case 8:
|
||||||
return 'text';
|
return 'text';
|
||||||
case 9:
|
case 9:
|
||||||
return 'radio';
|
return 'radio';
|
||||||
case 10:
|
case 10:
|
||||||
return 'checkbox';
|
return 'checkbox';
|
||||||
default:
|
default:
|
||||||
return 'radio';
|
return 'radio';
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -23,14 +23,14 @@ const matrixAnswer = ref({
|
|||||||
*/
|
*/
|
||||||
const tableInputTypeMapping = (/** regx?: any */) => {
|
const tableInputTypeMapping = (/** regx?: any */) => {
|
||||||
switch (element.question_type) {
|
switch (element.question_type) {
|
||||||
case 8:
|
case 8:
|
||||||
return 'text';
|
return 'text';
|
||||||
case 9:
|
case 9:
|
||||||
return 'radio';
|
return 'radio';
|
||||||
case 10:
|
case 10:
|
||||||
return 'checkbox';
|
return 'checkbox';
|
||||||
default:
|
default:
|
||||||
return 'radio';
|
return 'radio';
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -67,55 +67,55 @@ function handleColNameChange(rowOption: string, colOption: string, e: any) {
|
|||||||
|
|
||||||
// 不同的 question_type 的 matrix 问卷处理不同的结果
|
// 不同的 question_type 的 matrix 问卷处理不同的结果
|
||||||
switch (element.question_type) {
|
switch (element.question_type) {
|
||||||
case 8: {
|
case 8: {
|
||||||
// 获取输入框元素
|
// 获取输入框元素
|
||||||
const inputElement = e.target as HTMLInputElement;
|
const inputElement = e.target as HTMLInputElement;
|
||||||
// 如果没有获取到输入框元素,则直接返回
|
// 如果没有获取到输入框元素,则直接返回
|
||||||
if (!inputElement) return;
|
if (!inputElement) return;
|
||||||
// 将输入框的值保存到 rowRecord 对应位置
|
// 将输入框的值保存到 rowRecord 对应位置
|
||||||
rowRecord[col] = e!.target!.value;
|
rowRecord[col] = e!.target!.value;
|
||||||
// 清空 matrixAnswer 的 answer 属性
|
// 清空 matrixAnswer 的 answer 属性
|
||||||
matrixAnswer.value.answer = {};
|
matrixAnswer.value.answer = {};
|
||||||
// 遍历所有行选项
|
// 遍历所有行选项
|
||||||
element.options[0].forEach((_, rowIndex) => {
|
element.options[0].forEach((_, rowIndex) => {
|
||||||
// 获取当前行记录
|
// 获取当前行记录
|
||||||
const colOptions = rowRecord[rowIndex];
|
const colOptions = rowRecord[rowIndex];
|
||||||
// 如果当前行有记录,则更新 matrixAnswer 的 answer 属性
|
// 如果当前行有记录,则更新 matrixAnswer 的 answer 属性
|
||||||
if (colOptions) {
|
if (colOptions) {
|
||||||
matrixAnswer.value.answer[`R${rowIndex + 1}_C${col + 1}`] = colOptions;
|
matrixAnswer.value.answer[`R${rowIndex + 1}_C${col + 1}`] = colOptions;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 9:
|
case 9:
|
||||||
// 将选择的行索引加1后保存到 rowRecord 对应位置
|
// 将选择的行索引加1后保存到 rowRecord 对应位置
|
||||||
rowRecord[col] = row + 1;
|
rowRecord[col] = row + 1;
|
||||||
// 清空 matrixAnswer 的 answer 属性
|
// 清空 matrixAnswer 的 answer 属性
|
||||||
matrixAnswer.value.answer = {};
|
matrixAnswer.value.answer = {};
|
||||||
// 遍历 rowRecord,更新 matrixAnswer 的 answer 属性
|
// 遍历 rowRecord,更新 matrixAnswer 的 answer 属性
|
||||||
rowRecord.forEach((row, index) => {
|
rowRecord.forEach((row, index) => {
|
||||||
matrixAnswer.value.answer[`${index + 1}_${row}`] = 1;
|
matrixAnswer.value.answer[`${index + 1}_${row}`] = 1;
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
// 将选择的行索引加1后添加到 rowRecord 对应位置的数组中
|
// 将选择的行索引加1后添加到 rowRecord 对应位置的数组中
|
||||||
rowRecord[col] = (rowRecord[col] || []).concat(row + 1);
|
rowRecord[col] = (rowRecord[col] || []).concat(row + 1);
|
||||||
// 清空 matrixAnswer 的 answer 属性
|
// 清空 matrixAnswer 的 answer 属性
|
||||||
matrixAnswer.value.answer = {};
|
matrixAnswer.value.answer = {};
|
||||||
// 遍历所有行选项
|
// 遍历所有行选项
|
||||||
element.options[0].forEach((rowOption, rowIndex) => {
|
element.options[0].forEach((rowOption, rowIndex) => {
|
||||||
// 获取当前行记录
|
// 获取当前行记录
|
||||||
const colOptions = rowRecord[rowIndex];
|
const colOptions = rowRecord[rowIndex];
|
||||||
// 如果当前行有记录,则更新 matrixAnswer 的 answer 属性
|
// 如果当前行有记录,则更新 matrixAnswer 的 answer 属性
|
||||||
if (colOptions) {
|
if (colOptions) {
|
||||||
colOptions.forEach((col: any) => {
|
colOptions.forEach((col: any) => {
|
||||||
matrixAnswer.value.answer[`R${rowIndex + 1}_C${col}`] = true;
|
matrixAnswer.value.answer[`R${rowIndex + 1}_C${col}`] = true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
:label="element.stem"
|
:label="element.stem"
|
||||||
:required="element.config.is_required === 1"
|
:required="element.config.is_required === 1"
|
||||||
label-align="top"
|
label-align="top"
|
||||||
|
class="contenteditable-question-title"
|
||||||
>
|
>
|
||||||
<template #left-icon>
|
<template #left-icon>
|
||||||
{{ index + 1 }}
|
{{ index + 1 }}
|
||||||
@@ -16,25 +17,24 @@
|
|||||||
<div
|
<div
|
||||||
v-for="(optionItem, optionItemIndex) in isPreview ? element.list : element.options"
|
v-for="(optionItem, optionItemIndex) in isPreview ? element.list : element.options"
|
||||||
:key="optionItemIndex"
|
:key="optionItemIndex"
|
||||||
|
class="rate-content"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
v-for="(item, optionIndex) in isPreview ? optionItem.options : optionItem"
|
v-for="(item, optionIndex) in isPreview ? optionItem.options : optionItem"
|
||||||
:key="optionIndex"
|
:key="optionIndex"
|
||||||
@click="chooseOption(item)"
|
@click="chooseOption(item)"
|
||||||
>
|
>
|
||||||
<RateCharacter
|
<div class="tips mb5">
|
||||||
v-model="rate"
|
|
||||||
:index="optionIndex"
|
|
||||||
:config="element.config"
|
|
||||||
@change="handleRateChange"
|
|
||||||
>
|
|
||||||
</RateCharacter>
|
|
||||||
<div class="tips">
|
|
||||||
<p>{{ element.config.prompt_left }}</p>
|
<p>{{ element.config.prompt_left }}</p>
|
||||||
<p>{{ element.config.prompt_center }}</p>
|
<p>{{ element.config.prompt_center }}</p>
|
||||||
<p>{{ element.config.prompt_right }}</p>
|
<p>{{ element.config.prompt_right }}</p>
|
||||||
</div>
|
</div>
|
||||||
<RateCharacter v-model="answerValue" :config="element.config"></RateCharacter>
|
<RateCharacter
|
||||||
|
v-model="answerValue"
|
||||||
|
:config="element.config"
|
||||||
|
:index="optionIndex"
|
||||||
|
@change="handleRateChange"
|
||||||
|
></RateCharacter>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -43,14 +43,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, toRefs } from 'vue';
|
import { ref } from 'vue';
|
||||||
import RateCharacter from './RateCharacter.vue';
|
import RateCharacter from './RateCharacter.vue';
|
||||||
|
|
||||||
const isPreview = defineModel('isPreview', { default: false, type: Boolean });
|
const isPreview = defineModel('isPreview', { default: false, type: Boolean });
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
element: {
|
|
||||||
type: Object
|
|
||||||
},
|
|
||||||
index: {
|
index: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0
|
default: 0
|
||||||
@@ -66,6 +63,14 @@ const props = defineProps({
|
|||||||
// answer 的答案以 矩阵形式存储, 例如 [4,7],上层更新答案的时候也容易
|
// answer 的答案以 矩阵形式存储, 例如 [4,7],上层更新答案的时候也容易
|
||||||
const rates = defineModel('rates', { default: [], type: Array });
|
const rates = defineModel('rates', { default: [], type: Array });
|
||||||
const rate = ref(0);
|
const rate = ref(0);
|
||||||
|
const answerValue = ref();
|
||||||
|
|
||||||
|
const element = defineModel('element', {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// 不知道的 BUG ,开始的时候不能重置颜色。 故如此
|
// 不知道的 BUG ,开始的时候不能重置颜色。 故如此
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -92,7 +97,6 @@ function handleRateChange(index, rate) {
|
|||||||
localStorage.setItem(props.sn, rate.value);
|
localStorage.setItem(props.sn, rate.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
const { element } = toRefs(props);
|
|
||||||
const chooseId = ref('');
|
const chooseId = ref('');
|
||||||
const emit = defineEmits(['update:element']);
|
const emit = defineEmits(['update:element']);
|
||||||
const saveStem = () => {
|
const saveStem = () => {
|
||||||
@@ -107,11 +111,33 @@ const chooseOption = (item) => {
|
|||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.content {
|
.content {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
|
||||||
|
& .rate-content {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 12px;
|
||||||
|
|
||||||
|
& .rate-item {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
padding: 11px 13px;
|
||||||
|
border: 1px solid #f4f4f4;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #fafbfc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.mb10 {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mb5 {
|
||||||
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tips {
|
.tips {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
color: #b8b8b8;
|
color: #b8b8b8;
|
||||||
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -18,14 +18,24 @@
|
|||||||
></contenteditable>
|
></contenteditable>
|
||||||
</template>
|
</template>
|
||||||
<template #input>
|
<template #input>
|
||||||
<div v-for="(optionItem, optionItemIndex) in element.options" :key="optionItemIndex">
|
<div
|
||||||
|
v-for="(optionItem, optionItemIndex) in element.options"
|
||||||
|
:key="optionItemIndex"
|
||||||
|
class="rate-content"
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
v-for="(item, optionIndex) in optionItem"
|
v-for="(item, optionIndex) in optionItem"
|
||||||
:key="optionIndex"
|
:key="optionIndex"
|
||||||
|
class="rate-item"
|
||||||
@click="chooseOption(item)"
|
@click="chooseOption(item)"
|
||||||
>
|
>
|
||||||
<contenteditable v-model="item.option" :active="active"></contenteditable>
|
<div class="mb5">
|
||||||
<RateCharacter :config="element.config"></RateCharacter>
|
<contenteditable v-model="item.option" :active="active"></contenteditable>
|
||||||
|
</div>
|
||||||
|
<div class="mb10">
|
||||||
|
<RateCharacter :config="element.config"></RateCharacter>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="tips">
|
<div class="tips">
|
||||||
<p>{{ element.config.prompt_left }}</p>
|
<p>{{ element.config.prompt_left }}</p>
|
||||||
<p>{{ element.config.prompt_center }}</p>
|
<p>{{ element.config.prompt_center }}</p>
|
||||||
@@ -81,8 +91,29 @@ const chooseOption = (item) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
.mb10 {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mb5 {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
|
||||||
|
& .rate-content {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 12px;
|
||||||
|
|
||||||
|
& .rate-item {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
padding: 11px 5px;
|
||||||
|
border: 1px solid #f4f4f4;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #fafbfc;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.tips {
|
.tips {
|
||||||
|
|||||||
@@ -107,19 +107,28 @@ watch(
|
|||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
ul {
|
ul {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-bottom: 10px;
|
|
||||||
|
//margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.rate_item {
|
.rate_item {
|
||||||
margin: 0 3px;
|
width: 21px;
|
||||||
margin-top: 5px;
|
height: 21px;
|
||||||
padding: 0 6px;
|
margin: 0 5px 0 0;
|
||||||
border: 1px solid #ddd;
|
border: 1px solid #979797;
|
||||||
border-radius: 4px;
|
border-radius: 5px;
|
||||||
color: #666;
|
|
||||||
|
//padding: 0 6px;
|
||||||
|
color: #000;
|
||||||
|
|
||||||
|
//margin-top: 5px;
|
||||||
|
font-weight: 600;
|
||||||
|
line-height: 20px;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.active_item {
|
.active_item {
|
||||||
|
border-color: #70b936;
|
||||||
background-color: #70b936;
|
background-color: #70b936;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
:label="element.stem"
|
:label="element.stem"
|
||||||
:required="element.config.is_required === 1"
|
:required="element.config.is_required === 1"
|
||||||
label-align="top"
|
label-align="top"
|
||||||
class="base-select"
|
class="base-select contenteditable-question-title"
|
||||||
>
|
>
|
||||||
<template #left-icon>
|
<template #left-icon>
|
||||||
{{ index + 1 }}
|
{{ index + 1 }}
|
||||||
|
|||||||
@@ -11,8 +11,7 @@
|
|||||||
class="iconfont active-icon"
|
class="iconfont active-icon"
|
||||||
:style="{ marginRight: isLastPage ? '0' : '16px' }"
|
:style="{ marginRight: isLastPage ? '0' : '16px' }"
|
||||||
@click="activePage"
|
@click="activePage"
|
||||||
></i
|
></i>
|
||||||
>
|
|
||||||
<template v-if="!isLastPage">
|
<template v-if="!isLastPage">
|
||||||
<i class="iconfont moverQues" style="margin-right: 16px"></i>
|
<i class="iconfont moverQues" style="margin-right: 16px"></i>
|
||||||
<i class="iconfont" @click="deleteHandle"></i>
|
<i class="iconfont" @click="deleteHandle"></i>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import { showFailToast } from 'vant';
|
|||||||
const contentShow = ref(false);
|
const contentShow = ref(false);
|
||||||
const show = ref(false);
|
const show = ref(false);
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async() => {
|
||||||
if (utils.getSessionStorage('xToken')) {
|
if (utils.getSessionStorage('xToken')) {
|
||||||
const appToken = utils.getSessionStorage('xToken');
|
const appToken = utils.getSessionStorage('xToken');
|
||||||
getUserInfo(appToken)
|
getUserInfo(appToken)
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ import { getSurveysPage } from '@/api/home/index.js';
|
|||||||
const survey = ref({
|
const survey = ref({
|
||||||
project_name: ''
|
project_name: ''
|
||||||
});
|
});
|
||||||
const fetchSurveys = async () => {
|
const fetchSurveys = async() => {
|
||||||
const params = {
|
const params = {
|
||||||
page: 1,
|
page: 1,
|
||||||
per_page: 10,
|
per_page: 10,
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ const marketList = ref([]);
|
|||||||
const active = ref(null);
|
const active = ref(null);
|
||||||
const marketInfo = ref([]);
|
const marketInfo = ref([]);
|
||||||
|
|
||||||
const getTableList = async () => {
|
const getTableList = async() => {
|
||||||
const res = await getListScene();
|
const res = await getListScene();
|
||||||
if (res.data.code === 0) {
|
if (res.data.code === 0) {
|
||||||
res.data.data.forEach((item) => {
|
res.data.data.forEach((item) => {
|
||||||
@@ -31,7 +31,7 @@ const getTableList = async () => {
|
|||||||
getMarketInfo(marketList.value[0]);
|
getMarketInfo(marketList.value[0]);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const getMarketInfo = async (item) => {
|
const getMarketInfo = async(item) => {
|
||||||
const data = marketList.value.filter((market, index) => item === index)[0];
|
const data = marketList.value.filter((market, index) => item === index)[0];
|
||||||
if (data) {
|
if (data) {
|
||||||
const params = {
|
const params = {
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ const deleteItem = (item) => {
|
|||||||
showCancelButton: true,
|
showCancelButton: true,
|
||||||
confirmButtonColor: '#03B03C'
|
confirmButtonColor: '#03B03C'
|
||||||
})
|
})
|
||||||
.then(async () => {
|
.then(async() => {
|
||||||
const res = await deleteTemplate(item.sn);
|
const res = await deleteTemplate(item.sn);
|
||||||
if (res.data.code === 0) {
|
if (res.data.code === 0) {
|
||||||
showSuccessToast('删除成功');
|
showSuccessToast('删除成功');
|
||||||
|
|||||||
@@ -3,9 +3,7 @@
|
|||||||
<div v-for="item in 10" :key="item" class="template">
|
<div v-for="item in 10" :key="item" class="template">
|
||||||
<img src="https://picsum.photos/131/128" width="110" height="100" alt="" />
|
<img src="https://picsum.photos/131/128" width="110" height="100" alt="" />
|
||||||
<span>报名/签到模板</span>
|
<span>报名/签到模板</span>
|
||||||
<span style="color: rgb(127, 127, 127)"
|
<span style="color: rgb(127, 127, 127)">报名签到 | 引用 {{ item }} 次 | 创建人: {{ '张三' }}</span>
|
||||||
>报名签到 | 引用 {{ item }} 次 | 创建人: {{ '张三' }}</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -46,10 +46,10 @@
|
|||||||
<div>
|
<div>
|
||||||
<el-button @click="deleteItem(item)"> 删除</el-button>
|
<el-button @click="deleteItem(item)"> 删除</el-button>
|
||||||
<el-button @click="copyItem(item)"> 复制</el-button>
|
<el-button @click="copyItem(item)"> 复制</el-button>
|
||||||
<el-button @click="toPreiview(item)" style="border: 2px solid #71b73c">
|
<el-button style="border: 2px solid #71b73c" @click="toPreiview(item)">
|
||||||
<el-text style="color: #71b73c">预览</el-text>
|
<el-text style="color: #71b73c">预览</el-text>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button @click="toPublish(item)" color="#6fb937">
|
<el-button color="#6fb937" @click="toPublish(item)">
|
||||||
<el-text style="color: white">开启投放</el-text>
|
<el-text style="color: white">开启投放</el-text>
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, onMounted } from 'vue';
|
import { ref, onMounted } from 'vue';
|
||||||
import { deleteTemplate, getSurveysPage, copySurveys, deleteSurveys } from '@/api/home/index.js';
|
import { getSurveysPage, copySurveys, deleteSurveys } from '@/api/home/index.js';
|
||||||
import { Io5EllipsisHorizontalSharp } from 'vue-icons-plus/io5';
|
import { Io5EllipsisHorizontalSharp } from 'vue-icons-plus/io5';
|
||||||
import { showDialog, showFailToast, showSuccessToast, showToast } from 'vant';
|
import { showDialog, showFailToast, showSuccessToast, showToast } from 'vant';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
@@ -81,7 +81,7 @@ const form = ref({
|
|||||||
pageSize: 10
|
pageSize: 10
|
||||||
});
|
});
|
||||||
|
|
||||||
const fetchSurveys = async () => {
|
const fetchSurveys = async() => {
|
||||||
const params = {
|
const params = {
|
||||||
page: form.value.page,
|
page: form.value.page,
|
||||||
per_page: form.value.pageSize,
|
per_page: form.value.pageSize,
|
||||||
@@ -112,7 +112,7 @@ const deleteItem = (item) => {
|
|||||||
showCancelButton: true,
|
showCancelButton: true,
|
||||||
confirmButtonColor: '#03B03C'
|
confirmButtonColor: '#03B03C'
|
||||||
})
|
})
|
||||||
.then(async () => {
|
.then(async() => {
|
||||||
const res = await deleteSurveys(item.sn);
|
const res = await deleteSurveys(item.sn);
|
||||||
if (res.data.message) {
|
if (res.data.message) {
|
||||||
showToast(res.data.message);
|
showToast(res.data.message);
|
||||||
@@ -136,9 +136,8 @@ const copyItem = (item) => {
|
|||||||
showCancelButton: true,
|
showCancelButton: true,
|
||||||
confirmButtonColor: '#03B03C'
|
confirmButtonColor: '#03B03C'
|
||||||
})
|
})
|
||||||
.then(async () => {
|
.then(async() => {
|
||||||
const res = await copySurveys(item.sn);
|
const res = await copySurveys(item.sn);
|
||||||
console.log(res);
|
|
||||||
if (res.data.code === 200 || res.data.code === 201) {
|
if (res.data.code === 200 || res.data.code === 201) {
|
||||||
showSuccessToast('复制成功');
|
showSuccessToast('复制成功');
|
||||||
form.value.page = 1;
|
form.value.page = 1;
|
||||||
|
|||||||
@@ -408,14 +408,14 @@ const questionEvent = (item) => {
|
|||||||
options:
|
options:
|
||||||
item.json.options.length > 0
|
item.json.options.length > 0
|
||||||
? item.json.options.map((item) => {
|
? item.json.options.map((item) => {
|
||||||
return item.map((it) => {
|
return item.map((it) => {
|
||||||
return {
|
return {
|
||||||
...it,
|
...it,
|
||||||
// 主键生成
|
// 主键生成
|
||||||
id: uuidv4()
|
id: uuidv4()
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
: []
|
: []
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@@ -548,7 +548,7 @@ const previewQuestion = () => {
|
|||||||
router.push({ name: 'preview', query: { ...route.query } });
|
router.push({ name: 'preview', query: { ...route.query } });
|
||||||
};
|
};
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async() => {
|
||||||
await getQuestionDetail();
|
await getQuestionDetail();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -565,7 +565,7 @@ onMounted(async () => {
|
|||||||
max-height: 200px;
|
max-height: 200px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
|
||||||
::v-deep .content-title {
|
:deep(.content-title) {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
width: 230px;
|
width: 230px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
@@ -574,7 +574,7 @@ onMounted(async () => {
|
|||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .introduction {
|
:deep(.introduction) {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
width: 230px;
|
width: 230px;
|
||||||
height: 45px;
|
height: 45px;
|
||||||
@@ -617,7 +617,7 @@ onMounted(async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .van-popup--bottom.van-popup--round {
|
:deep(.van-popup--bottom.van-popup--round) {
|
||||||
background-color: #f2f2f2 !important;
|
background-color: #f2f2f2 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -730,20 +730,20 @@ onMounted(async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.child-group {
|
.child-group {
|
||||||
& ::v-deep .van-field__label {
|
& :deep(.van-field__label) {
|
||||||
width: 140px;
|
width: 140px;
|
||||||
color: #bfbfbf;
|
color: #bfbfbf;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
& ::v-deep .van-cell__title {
|
& :deep(.van-cell__title) {
|
||||||
width: 140px;
|
width: 140px;
|
||||||
color: #bfbfbf;
|
color: #bfbfbf;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .van-button--plain.van-button--primary {
|
:deep(.van-button--plain.van-button--primary) {
|
||||||
padding: 13px 15px;
|
padding: 13px 15px;
|
||||||
border: 1px solid #f0f0f0;
|
border: 1px solid #f0f0f0;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
@@ -752,7 +752,7 @@ onMounted(async () => {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .van-button--plain.van-button--success {
|
:deep(.van-button--plain.van-button--success) {
|
||||||
padding: 13px 15px;
|
padding: 13px 15px;
|
||||||
border: 1px solid #70b937;
|
border: 1px solid #70b937;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
|
|||||||
@@ -227,8 +227,8 @@ export default defineComponent({
|
|||||||
.map((option) => {
|
.map((option) => {
|
||||||
return this.wares.find(
|
return this.wares.find(
|
||||||
(ware) =>
|
(ware) =>
|
||||||
ware.question_index === option.question_index &&
|
ware.question_index === option.question_index
|
||||||
ware.option_index === option.option_index
|
&& ware.option_index === option.option_index
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
wares = wares.filter((x) => x);
|
wares = wares.filter((x) => x);
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
debounce(func, wait) {
|
debounce(func, wait) {
|
||||||
let timeout;
|
let timeout;
|
||||||
return function (...args) {
|
return function(...args) {
|
||||||
clearTimeout(timeout);
|
clearTimeout(timeout);
|
||||||
timeout = setTimeout(() => func.apply(this, args), wait);
|
timeout = setTimeout(() => func.apply(this, args), wait);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -106,40 +106,40 @@ export default defineComponent({
|
|||||||
const isEndUrl = computed(() => {
|
const isEndUrl = computed(() => {
|
||||||
const code = props.action ? props.action.code : props.code;
|
const code = props.action ? props.action.code : props.code;
|
||||||
return (
|
return (
|
||||||
(code === 20004 &&
|
(code === 20004
|
||||||
props.survey.screening_end_url_select &&
|
&& props.survey.screening_end_url_select
|
||||||
props.survey.screening_end_url) ||
|
&& props.survey.screening_end_url)
|
||||||
(code === 20011 && props.survey.success_end_url_select && props.survey.success_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 === 20016 && props.survey.quota_end_url_select && props.survey.quota_end_url)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 跳转
|
// 跳转
|
||||||
function toEndUrl() {
|
function toEndUrl() {
|
||||||
switch (props.action.code) {
|
switch (props.action.code) {
|
||||||
// 被甄别
|
// 被甄别
|
||||||
case 20004:
|
case 20004:
|
||||||
if (props.survey.screening_end_url_select && props.survey.screening_end_url) {
|
if (props.survey.screening_end_url_select && props.survey.screening_end_url) {
|
||||||
const url = props.survey.screening_end_url;
|
const url = props.survey.screening_end_url;
|
||||||
toUrl(url);
|
toUrl(url);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
// 成功
|
// 成功
|
||||||
case 20011:
|
case 20011:
|
||||||
if (props.survey.success_end_url_select && props.survey.success_end_url) {
|
if (props.survey.success_end_url_select && props.survey.success_end_url) {
|
||||||
const url = props.survey.success_end_url;
|
const url = props.survey.success_end_url;
|
||||||
toUrl(url);
|
toUrl(url);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
// 配额超限
|
// 配额超限
|
||||||
case 20016:
|
case 20016:
|
||||||
if (props.survey.quota_end_url_select && props.survey.quota_end_url) {
|
if (props.survey.quota_end_url_select && props.survey.quota_end_url) {
|
||||||
const url = props.survey.quota_end_url;
|
const url = props.survey.quota_end_url;
|
||||||
toUrl(url);
|
toUrl(url);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -267,16 +267,16 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!compareArrayByField(options.value, newOptions, 'option_key') ||
|
!compareArrayByField(options.value, newOptions, 'option_key')
|
||||||
!compareArrayByField(options.value, newOptions, 'option')
|
|| !compareArrayByField(options.value, newOptions, 'option')
|
||||||
) {
|
) {
|
||||||
options.value = newOptions;
|
options.value = newOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 清空值和答案
|
// 清空值和答案
|
||||||
if (
|
if (
|
||||||
value.value &&
|
value.value
|
||||||
options.value.findIndex((option) => option.option_key === value.value) === -1
|
&& options.value.findIndex((option) => option.option_key === value.value) === -1
|
||||||
) {
|
) {
|
||||||
// 清空值
|
// 清空值
|
||||||
value.value = '';
|
value.value = '';
|
||||||
@@ -294,8 +294,8 @@ export default defineComponent({
|
|||||||
() => options.value,
|
() => options.value,
|
||||||
(val, oldVal) => {
|
(val, oldVal) => {
|
||||||
if (
|
if (
|
||||||
compareArrayByField(val, oldVal || [], 'option_key') &&
|
compareArrayByField(val, oldVal || [], 'option_key')
|
||||||
compareArrayByField(val, oldVal || [], 'option')
|
&& compareArrayByField(val, oldVal || [], 'option')
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -147,8 +147,8 @@ export default defineComponent({
|
|||||||
// 替换文本
|
// 替换文本
|
||||||
let replacement = '';
|
let replacement = '';
|
||||||
// 查找引用问题
|
// 查找引用问题
|
||||||
const question =
|
const question
|
||||||
props.questions.find((question) => {
|
= props.questions.find((question) => {
|
||||||
// 矩阵题
|
// 矩阵题
|
||||||
if (question.question_type >= 8 && question.question_type <= 11) {
|
if (question.question_type >= 8 && question.question_type <= 11) {
|
||||||
return question.title === value.split('_R')[0].split('_C')[0];
|
return question.title === value.split('_R')[0].split('_C')[0];
|
||||||
@@ -158,8 +158,8 @@ export default defineComponent({
|
|||||||
return question.title === value.split('_A')[0];
|
return question.title === value.split('_A')[0];
|
||||||
}
|
}
|
||||||
return question.title === value;
|
return question.title === value;
|
||||||
}) ||
|
})
|
||||||
props.questions.find((question) => {
|
|| props.questions.find((question) => {
|
||||||
// 矩阵题
|
// 矩阵题
|
||||||
if (question.question_type >= 8 && question.question_type <= 11) {
|
if (question.question_type >= 8 && question.question_type <= 11) {
|
||||||
return question.title === (value + cycleIndexStr).split('_R')[0].split('_C')[0];
|
return question.title === (value + cycleIndexStr).split('_R')[0].split('_C')[0];
|
||||||
@@ -187,8 +187,8 @@ export default defineComponent({
|
|||||||
replacement = answer[option.option_key];
|
replacement = answer[option.option_key];
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
question.question_type === 2 &&
|
question.question_type === 2
|
||||||
Object.keys(answer).length >= question.config.min_select
|
&& Object.keys(answer).length >= question.config.min_select
|
||||||
) {
|
) {
|
||||||
// 查找引用选项(多选)
|
// 查找引用选项(多选)
|
||||||
options.forEach((option) => {
|
options.forEach((option) => {
|
||||||
|
|||||||
@@ -350,7 +350,7 @@ export const language = {
|
|||||||
zh: '请点击查看图片'
|
zh: '请点击查看图片'
|
||||||
},
|
},
|
||||||
NoteCantViewAfterTimeLimit: {
|
NoteCantViewAfterTimeLimit: {
|
||||||
en: "Note: Can't view after time limit",
|
en: 'Note: Can\'t view after time limit',
|
||||||
zh: '注意:超过显示时间限制后将无法再次查看'
|
zh: '注意:超过显示时间限制后将无法再次查看'
|
||||||
},
|
},
|
||||||
DisplayTimeLimitExceeded: {
|
DisplayTimeLimitExceeded: {
|
||||||
|
|||||||
@@ -250,10 +250,10 @@ function quesHandle(answer, logChild) {
|
|||||||
const matrixRateHandle = () => {
|
const matrixRateHandle = () => {
|
||||||
// 如果配置的逻辑中参数为空,则代表没有配置逻辑匹配值,此时不做校验
|
// 如果配置的逻辑中参数为空,则代表没有配置逻辑匹配值,此时不做校验
|
||||||
if (
|
if (
|
||||||
logChild.cell_index === 0 ||
|
logChild.cell_index === 0
|
||||||
logChild.row_index === 0 ||
|
|| logChild.row_index === 0
|
||||||
!logChild.operator ||
|
|| !logChild.operator
|
||||||
!logChild.value
|
|| !logChild.value
|
||||||
) {
|
) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -265,10 +265,10 @@ function quesHandle(answer, logChild) {
|
|||||||
const matrixInputHandle = () => {
|
const matrixInputHandle = () => {
|
||||||
// 如果配置的逻辑中参数为空,则代表没有配置逻辑匹配值,此时不做校验
|
// 如果配置的逻辑中参数为空,则代表没有配置逻辑匹配值,此时不做校验
|
||||||
if (
|
if (
|
||||||
logChild.cell_index === 0 ||
|
logChild.cell_index === 0
|
||||||
logChild.row_index === 0 ||
|
|| logChild.row_index === 0
|
||||||
!logChild.operator ||
|
|| !logChild.operator
|
||||||
!logChild.value
|
|| !logChild.value
|
||||||
) {
|
) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -428,59 +428,59 @@ function getConditionStatus(logChild) {
|
|||||||
if (answer) {
|
if (answer) {
|
||||||
try {
|
try {
|
||||||
switch (logChild.question_type) {
|
switch (logChild.question_type) {
|
||||||
case 1:
|
case 1:
|
||||||
quesStatus = quesHandles.choiceHandle(config);
|
quesStatus = quesHandles.choiceHandle(config);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
quesStatus = quesHandles.choiceCheckBoxHandle(config);
|
quesStatus = quesHandles.choiceCheckBoxHandle(config);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
quesStatus = quesHandles.cascaderHandle();
|
quesStatus = quesHandles.cascaderHandle();
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
quesStatus = quesHandles.inputHandle();
|
quesStatus = quesHandles.inputHandle();
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
quesStatus = quesHandles.rateHandle();
|
quesStatus = quesHandles.rateHandle();
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
quesStatus = quesHandles.dateTimeHandle();
|
quesStatus = quesHandles.dateTimeHandle();
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
quesStatus = quesHandles.matrixInputHandle();
|
quesStatus = quesHandles.matrixInputHandle();
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
quesStatus = quesHandles.matrixRadioHandle(config);
|
quesStatus = quesHandles.matrixRadioHandle(config);
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
quesStatus = quesHandles.matrixCheckboxHandle(config);
|
quesStatus = quesHandles.matrixCheckboxHandle(config);
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
quesStatus = quesHandles.matrixRateHandle();
|
quesStatus = quesHandles.matrixRateHandle();
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
quesStatus = quesHandles.imgRadioHandle();
|
quesStatus = quesHandles.imgRadioHandle();
|
||||||
break;
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
quesStatus = quesHandles.imgCheckBoxHandle();
|
quesStatus = quesHandles.imgCheckBoxHandle();
|
||||||
break;
|
break;
|
||||||
case 15:
|
case 15:
|
||||||
quesStatus = quesHandles.classifyHandle();
|
quesStatus = quesHandles.classifyHandle();
|
||||||
break;
|
break;
|
||||||
case 16:
|
case 16:
|
||||||
quesStatus = quesHandles.sortHandle();
|
quesStatus = quesHandles.sortHandle();
|
||||||
break;
|
break;
|
||||||
case 17:
|
case 17:
|
||||||
quesStatus = quesHandles.constantSumHandle();
|
quesStatus = quesHandles.constantSumHandle();
|
||||||
break;
|
break;
|
||||||
case 23:
|
case 23:
|
||||||
quesStatus = quesHandles.agreementHandle();
|
quesStatus = quesHandles.agreementHandle();
|
||||||
break;
|
break;
|
||||||
case 101:
|
case 101:
|
||||||
quesStatus = quesHandles.psmHandle(config);
|
quesStatus = quesHandles.psmHandle(config);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// console.log(error);
|
// console.log(error);
|
||||||
@@ -519,10 +519,10 @@ function getlogicStatus(questionData) {
|
|||||||
// } else {
|
// } else {
|
||||||
// statusStr = statusStr + conditionStatus;
|
// statusStr = statusStr + conditionStatus;
|
||||||
// }
|
// }
|
||||||
statusStr =
|
statusStr
|
||||||
statusStr +
|
= statusStr
|
||||||
(logChild.logic === 'and' ? '&&' : logChild.logic === 'or' ? '||' : '') +
|
+ (logChild.logic === 'and' ? '&&' : logChild.logic === 'or' ? '||' : '')
|
||||||
conditionStatus;
|
+ conditionStatus;
|
||||||
});
|
});
|
||||||
// eslint-disable-next-line no-eval
|
// eslint-disable-next-line no-eval
|
||||||
logs.logicStatus = eval(statusStr);
|
logs.logicStatus = eval(statusStr);
|
||||||
|
|||||||
@@ -105,8 +105,8 @@ export default function answerMock(questionsData, page) {
|
|||||||
} else if (logic.skip_type === 4) {
|
} else if (logic.skip_type === 4) {
|
||||||
// 只计算跳转后所在页面的隐藏逻辑,否则会出现只返回最后一道隐藏选项题目的情况,导致失效
|
// 只计算跳转后所在页面的隐藏逻辑,否则会出现只返回最后一道隐藏选项题目的情况,导致失效
|
||||||
const toPage = page + 1;
|
const toPage = page + 1;
|
||||||
const hasHiddenLogicQuizPage =
|
const hasHiddenLogicQuizPage
|
||||||
data.pages.findIndex((page) => page.includes(logic.question_index)) + 1;
|
= data.pages.findIndex((page) => page.includes(logic.question_index)) + 1;
|
||||||
if (hasHiddenLogicQuizPage === toPage) {
|
if (hasHiddenLogicQuizPage === toPage) {
|
||||||
// 选项隐藏逻辑
|
// 选项隐藏逻辑
|
||||||
updateOptionHidden(data.hide_options, logic);
|
updateOptionHidden(data.hide_options, logic);
|
||||||
|
|||||||
@@ -155,9 +155,9 @@ export default defineComponent({
|
|||||||
question.error = translatedText.value.ThisIsARequiredQuestion;
|
question.error = translatedText.value.ThisIsARequiredQuestion;
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
answer &&
|
answer
|
||||||
questionType === 1 &&
|
&& questionType === 1
|
||||||
Object.keys(answer).findIndex((value) => !answer[value]) !== -1
|
&& Object.keys(answer).findIndex((value) => !answer[value]) !== -1
|
||||||
) {
|
) {
|
||||||
// 单选题
|
// 单选题
|
||||||
isError = true;
|
isError = true;
|
||||||
@@ -303,9 +303,9 @@ export default defineComponent({
|
|||||||
} else if (answer && questionType === 12) {
|
} else if (answer && questionType === 12) {
|
||||||
question.error = '';
|
question.error = '';
|
||||||
} else if (
|
} else if (
|
||||||
answer &&
|
answer
|
||||||
questionType === 14 &&
|
&& questionType === 14
|
||||||
Object.keys(answer).length < config.min_select
|
&& Object.keys(answer).length < config.min_select
|
||||||
) {
|
) {
|
||||||
// 图片多选题
|
// 图片多选题
|
||||||
isError = true;
|
isError = true;
|
||||||
@@ -341,51 +341,51 @@ export default defineComponent({
|
|||||||
const { value } = answer;
|
const { value } = answer;
|
||||||
const newValue = value.replace(/\n|\r|\r\n/g, '');
|
const newValue = value.replace(/\n|\r|\r\n/g, '');
|
||||||
switch (config.text_type) {
|
switch (config.text_type) {
|
||||||
// 字母
|
// 字母
|
||||||
case 3:
|
case 3:
|
||||||
isError =
|
isError
|
||||||
config.include_mark === 1
|
= config.include_mark === 1
|
||||||
? !/^[a-zA-Z·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]]+$/.test(
|
? !/^[a-zA-Z·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]]+$/.test(
|
||||||
newValue
|
newValue
|
||||||
) || !newValue.length
|
) || !newValue.length
|
||||||
: !/^[a-zA-Z]+$/.test(newValue) || !newValue.length;
|
: !/^[a-zA-Z]+$/.test(newValue) || !newValue.length;
|
||||||
question.error = isError ? translatedText.value.PleaseEnterEnglishLetters : '';
|
question.error = isError ? translatedText.value.PleaseEnterEnglishLetters : '';
|
||||||
break;
|
break;
|
||||||
// 中文
|
// 中文
|
||||||
case 4:
|
case 4:
|
||||||
isError =
|
isError
|
||||||
config.include_mark === 1
|
= 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(
|
? !/^(?:[\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
|
||||||
) || !newValue.length
|
) || !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(
|
: !/^(?:[\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
|
||||||
) || !newValue.length;
|
) || !newValue.length;
|
||||||
question.error = isError ? translatedText.value.PleaseEnterChineseWords : '';
|
question.error = isError ? translatedText.value.PleaseEnterChineseWords : '';
|
||||||
break;
|
break;
|
||||||
// 邮箱
|
// 邮箱
|
||||||
case 5:
|
case 5:
|
||||||
isError =
|
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(
|
= !/^(([^<>()[\]\\.,;:\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
|
value
|
||||||
);
|
);
|
||||||
question.error = isError ? translatedText.value.PleaseEnterACorrectEmail : '';
|
question.error = isError ? translatedText.value.PleaseEnterACorrectEmail : '';
|
||||||
break;
|
break;
|
||||||
// 手机号
|
// 手机号
|
||||||
case 6:
|
case 6:
|
||||||
isError = !/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(value);
|
isError = !/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(value);
|
||||||
question.error = isError ? translatedText.value.PleaseEnterACorrectPhone : '';
|
question.error = isError ? translatedText.value.PleaseEnterACorrectPhone : '';
|
||||||
break;
|
break;
|
||||||
// 身份证号
|
// 身份证号
|
||||||
case 7:
|
case 7:
|
||||||
isError =
|
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(
|
= !/^[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
|
value
|
||||||
);
|
);
|
||||||
question.error = isError ? translatedText.value.PleaseEnterACorrectID : '';
|
question.error = isError ? translatedText.value.PleaseEnterACorrectID : '';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!isError && value.length < config.min && ![1, 2].includes(config.text_type)) {
|
if (!isError && value.length < config.min && ![1, 2].includes(config.text_type)) {
|
||||||
isError = true;
|
isError = true;
|
||||||
@@ -397,59 +397,59 @@ export default defineComponent({
|
|||||||
Object.keys(answer).forEach((key) => {
|
Object.keys(answer).forEach((key) => {
|
||||||
const value = answer[key];
|
const value = answer[key];
|
||||||
switch (config.text_type) {
|
switch (config.text_type) {
|
||||||
// 字母
|
// 字母
|
||||||
case 3:
|
case 3:
|
||||||
if (
|
if (
|
||||||
!/^[a-zA-Z·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]]+$/.test(
|
!/^[a-zA-Z·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]]+$/.test(
|
||||||
value
|
value
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
question.error = translatedText.value.PleaseEnterEnglishLetters;
|
question.error = translatedText.value.PleaseEnterEnglishLetters;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
// 中文
|
// 中文
|
||||||
case 4:
|
case 4:
|
||||||
if (
|
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(
|
!/^(?:[\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
|
value
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
question.error = translatedText.value.PleaseEnterChineseWords;
|
question.error = translatedText.value.PleaseEnterChineseWords;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
// 邮箱
|
// 邮箱
|
||||||
case 5:
|
case 5:
|
||||||
if (
|
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(
|
!/^(([^<>()[\]\\.,;:\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
|
value
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
question.error = translatedText.value.PleaseEnterACorrectEmail;
|
question.error = translatedText.value.PleaseEnterACorrectEmail;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
// 手机号
|
// 手机号
|
||||||
case 6:
|
case 6:
|
||||||
if (!/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(value)) {
|
if (!/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(value)) {
|
||||||
question.error = translatedText.value.PleaseEnterACorrectPhone;
|
question.error = translatedText.value.PleaseEnterACorrectPhone;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
// 身份证号
|
// 身份证号
|
||||||
case 7:
|
case 7:
|
||||||
if (
|
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(
|
!/^[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
|
value
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
question.error = translatedText.value.PleaseEnterACorrectID;
|
question.error = translatedText.value.PleaseEnterACorrectID;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
!question.error &&
|
!question.error
|
||||||
value.length < config.min &&
|
&& value.length < config.min
|
||||||
![1, 2].includes(config.text_type)
|
&& ![1, 2].includes(config.text_type)
|
||||||
) {
|
) {
|
||||||
question.error = translatedText.value.PleaseEnterMoreThanOneCharacters(config.min);
|
question.error = translatedText.value.PleaseEnterMoreThanOneCharacters(config.min);
|
||||||
}
|
}
|
||||||
@@ -825,8 +825,8 @@ export default defineComponent({
|
|||||||
const evt1 = {};
|
const evt1 = {};
|
||||||
|
|
||||||
if ([1].includes(question.question_type)) {
|
if ([1].includes(question.question_type)) {
|
||||||
evt1.value =
|
evt1.value
|
||||||
Object.keys(question.answer)
|
= Object.keys(question.answer)
|
||||||
.map((key) => (question.answer[key] ? key : undefined))
|
.map((key) => (question.answer[key] ? key : undefined))
|
||||||
.filter((i) => !!i)?.[0] || undefined;
|
.filter((i) => !!i)?.[0] || undefined;
|
||||||
evt1.options = question.list.flatMap((i) => i.options);
|
evt1.options = question.list.flatMap((i) => i.options);
|
||||||
|
|||||||
@@ -95,17 +95,17 @@ type OperateItem = (typeof operateList)[0];
|
|||||||
|
|
||||||
const operateBtn = (item: OperateItem) => {
|
const operateBtn = (item: OperateItem) => {
|
||||||
switch (item.type) {
|
switch (item.type) {
|
||||||
case 'shareLink':
|
case 'shareLink':
|
||||||
shareLink();
|
shareLink();
|
||||||
break;
|
break;
|
||||||
case 'copyLink':
|
case 'copyLink':
|
||||||
copyLink();
|
copyLink();
|
||||||
break;
|
break;
|
||||||
case 'qrCode':
|
case 'qrCode':
|
||||||
downLoadImg();
|
downLoadImg();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// 复制链接
|
// 复制链接
|
||||||
@@ -193,7 +193,7 @@ watch(status, (val) => {
|
|||||||
getCode();
|
getCode();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
onMounted(async () => {
|
onMounted(async() => {
|
||||||
// status.value = 1;
|
// status.value = 1;
|
||||||
// publishInfo.value.img_url
|
// publishInfo.value.img_url
|
||||||
// = 'https://test-cxp-pubcos.yili.com/uat-yls//survey-api/publish/202503130938138261340.png';
|
// = 'https://test-cxp-pubcos.yili.com/uat-yls//survey-api/publish/202503130938138261340.png';
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
const successImg =
|
const successImg
|
||||||
'https://files.axshare.com/gsc/DR6075/c7/5a/53/c75a534148d349f1bb8e185629f784ac/images/%E9%A2%84%E8%A7%88/u123.png?pageId=18fb9d8a-b9b7-465f-9bd7-625b1b78f72e';
|
= 'https://files.axshare.com/gsc/DR6075/c7/5a/53/c75a534148d349f1bb8e185629f784ac/images/%E9%A2%84%E8%A7%88/u123.png?pageId=18fb9d8a-b9b7-465f-9bd7-625b1b78f72e';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
Reference in New Issue
Block a user