diff --git a/components.d.ts b/components.d.ts index f15d4ea..edf019e 100644 --- a/components.d.ts +++ b/components.d.ts @@ -19,11 +19,18 @@ declare module 'vue' { VanCheckbox: typeof import('vant/es')['Checkbox'] VanCheckboxGroup: typeof import('vant/es')['CheckboxGroup'] VanCol: typeof import('vant/es')['Col'] + VanDatePicker: typeof import('vant/es')['DatePicker'] + VanDatetimePicker: typeof import('vant/es')['DatetimePicker'] VanDialog: typeof import('vant/es')['Dialog'] VanDivider: typeof import('vant/es')['Divider'] + VanFiel: typeof import('vant/es')['Fiel'] VanField: typeof import('vant/es')['Field'] + VanGrid: typeof import('vant/es')['Grid'] + VanGridItem: typeof import('vant/es')['GridItem'] VanIcon: typeof import('vant/es')['Icon'] VanNavBar: typeof import('vant/es')['NavBar'] + VanPicker: typeof import('vant/es')['Picker'] + VanPikcer: typeof import('vant/es')['Pikcer'] VanPopup: typeof import('vant/es')['Popup'] VanRadio: typeof import('vant/es')['Radio'] VanRadioGroup: typeof import('vant/es')['RadioGroup'] @@ -33,6 +40,8 @@ declare module 'vue' { VanSwitch: typeof import('vant/es')['Switch'] VanTabbar: typeof import('vant/es')['Tabbar'] VanTabbarItem: typeof import('vant/es')['TabbarItem'] + VanTimePicker: typeof import('vant/es')['TimePicker'] + YLPicker: typeof import('./src/components/YLPicker.vue')['default'] YLSelect: typeof import('./src/components/YLSelect.vue')['default'] } } diff --git a/src/assets/css/main.scss b/src/assets/css/main.scss index 9c41435..603da52 100644 --- a/src/assets/css/main.scss +++ b/src/assets/css/main.scss @@ -1,6 +1,7 @@ @import 'base'; @import '../../fonts/iconfont.css'; @import 'vant'; +@import '../../fonts/moblie/iconfont.css'; a, .green { diff --git a/src/components/YLPicker.vue b/src/components/YLPicker.vue new file mode 100644 index 0000000..9cabea6 --- /dev/null +++ b/src/components/YLPicker.vue @@ -0,0 +1,698 @@ + + + + diff --git a/src/components/contenteditable.vue b/src/components/contenteditable.vue index 78e2ecd..01338d2 100644 --- a/src/components/contenteditable.vue +++ b/src/components/contenteditable.vue @@ -86,7 +86,11 @@ onMounted(() => { editor.value.addEventListener('focus', () => { showAction.value = true; }); - + editor.value.addEventListener('blur', () => { + setTimeout(() => { + showAction.value = false; + }); + }); document.addEventListener('resize', () => { showAction.value = false; }); diff --git a/src/fonts/demo.css b/src/fonts/demo.css index 12ec742..7df7d71 100644 --- a/src/fonts/demo.css +++ b/src/fonts/demo.css @@ -9,6 +9,14 @@ 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') format('svg'); + src: + url('//at.alicdn.com/t/c/font_4841764_vat2jbvw3q.woff2?t=1741575060989') format('woff2'), + url('//at.alicdn.com/t/c/font_4841764_vat2jbvw3q.woff?t=1741575060989') format('woff'), + url('//at.alicdn.com/t/c/font_4841764_vat2jbvw3q.ttf?t=1741575060989') format('truetype'); +} + +@font-face { + font-family: ''; } .logo { diff --git a/src/fonts/moblie/demo.css b/src/fonts/moblie/demo.css new file mode 100644 index 0000000..12ec742 --- /dev/null +++ b/src/fonts/moblie/demo.css @@ -0,0 +1,548 @@ +/* Logo 字体 */ +@font-face { + font-family: 'iconfont logo'; + 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#iefix') + 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.ttf?t=1545807318834') format('truetype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') + format('svg'); +} + +.logo { + font-style: normal; + font-size: 160px; + font-family: 'iconfont logo'; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* tabs */ +.nav-tabs { + position: relative; +} + +.nav-tabs .nav-more { + position: absolute; + right: 0; + bottom: 0; + height: 42px; + color: #666; + line-height: 42px; +} + +#tabs { + border-bottom: 1px solid #eee; +} + +#tabs li { + position: relative; + z-index: 1; + width: 100px; + height: 40px; + margin-bottom: -1px; + border-bottom: 2px solid transparent; + color: #666; + font-size: 16px; + line-height: 40px; + text-align: center; + cursor: pointer; +} + +#tabs .active { + border-bottom-color: #f00; + color: #222; +} + +.tab-container .content { + display: none; +} + +/* 页面布局 */ +.main { + width: 960px; + margin: 0 auto; + padding: 30px 100px; +} + +.main .logo { + overflow: hidden; + height: 110px; + margin-top: -50px; + margin-bottom: 30px; + color: #333; + line-height: 1; + text-align: left; + *zoom: 1; +} + +.main .logo a { + color: #333; + font-size: 160px; +} + +.helps { + margin-top: 40px; +} + +.helps pre { + overflow: auto; + margin: 10px 0; + padding: 20px; + border: solid 1px #e7e1cd; + background-color: #fffdef; +} + +.icon_lists { + overflow: hidden; + width: 100% !important; + *zoom: 1; +} + +.icon_lists li { + width: 100px; + margin-right: 20px; + margin-bottom: 10px; + list-style: none !important; + text-align: center; + cursor: default; +} + +.icon_lists li .code-name { + line-height: 1.2; +} + +.icon_lists .icon { + display: block; + height: 100px; + margin: 10px auto; + color: #333; + font-size: 42px; + line-height: 100px; + -webkit-transition: + font-size 0.25s linear, + width 0.25s linear; + -moz-transition: + font-size 0.25s linear, + width 0.25s linear; + transition: + font-size 0.25s linear, + width 0.25s linear; +} + +.icon_lists .icon:hover { + font-size: 100px; +} + +.icon_lists .svg-icon { + /* 图标和文字相邻时,垂直对齐 */ + vertical-align: -0.15em; + + /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 + normalize.css 中也包含这行 */ + overflow: hidden; + + /* 通过设置 font-size 来改变图标大小 */ + width: 1em; + + /* 通过设置 color 来改变 SVG 的颜色/fill */ + fill: currentcolor; +} + +.icon_lists li .name, +.icon_lists li .code-name { + color: #666; +} + +/* markdown 样式 */ +.markdown { + color: #666; + font-size: 14px; + line-height: 1.8; +} + +.highlight { + line-height: 1.5; +} + +.markdown img { + vertical-align: middle; + max-width: 100%; +} + +.markdown h1 { + margin-bottom: 24px; + color: #404040; + font-weight: 500; + line-height: 40px; +} + +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + clear: both; + margin: 1.6em 0 0.6em; + color: #404040; + font-weight: 500; +} + +.markdown h1 { + font-size: 28px; +} + +.markdown h2 { + font-size: 22px; +} + +.markdown h3 { + font-size: 16px; +} + +.markdown h4 { + font-size: 14px; +} + +.markdown h5 { + font-size: 12px; +} + +.markdown h6 { + font-size: 12px; +} + +.markdown hr { + clear: both; + height: 1px; + margin: 16px 0; + border: 0; + background: #e9e9e9; +} + +.markdown p { + margin: 1em 0; +} + +.markdown > p, +.markdown > blockquote, +.markdown > .highlight, +.markdown > ol, +.markdown > ul { + width: 80%; +} + +.markdown ul > li { + list-style: circle; +} + +.markdown > ul li, +.markdown blockquote ul > li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown > ul li p, +.markdown > ol li p { + margin: 0.6em 0; +} + +.markdown ol > li { + list-style: decimal; +} + +.markdown > ol li, +.markdown blockquote ol > li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown code { + margin: 0 3px; + padding: 0 5px; + border-radius: 3px; + background: #eee; +} + +.markdown strong, +.markdown b { + font-weight: 600; +} + +.markdown > table { + width: 95%; + margin-bottom: 24px; + border: 1px solid #e9e9e9; + border-spacing: 0; + border-collapse: collapse; + empty-cells: show; +} + +.markdown > table th { + color: #333; + font-weight: 600; + white-space: nowrap; +} + +.markdown > table th, +.markdown > table td { + padding: 8px 16px; + border: 1px solid #e9e9e9; + text-align: left; +} + +.markdown > table th { + background: #f7f7f7; +} + +.markdown blockquote { + margin: 1em 0; + padding-left: 0.8em; + border-left: 4px solid #e9e9e9; + color: #999; + font-size: 90%; +} + +.markdown blockquote p { + margin: 0; +} + +.markdown .anchor { + margin-left: 8px; + opacity: 0; + transition: opacity 0.3s ease; +} + +.markdown .waiting { + color: #ccc; +} + +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + display: inline-block; + opacity: 1; +} + +.markdown > br, +.markdown > p > br { + clear: both; +} + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: white; + color: #333; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + background-color: #eaffea; + color: #55a532; +} + +.hljs-deletion { + background-color: #ffecec; + color: #bd2c00; +} + +.hljs-link { + text-decoration: underline; +} + +/* 代码高亮 */ + +/* PrismJS 1.15.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ + +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*='language-'], +pre[class*='language-'] { + background: none; + color: black; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + line-height: 1.5; + text-align: left; + text-shadow: 0 1px white; + white-space: pre; + word-spacing: normal; + word-wrap: normal; + word-break: normal; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*='language-']::-moz-selection, +pre[class*='language-'] ::-moz-selection, +code[class*='language-']::-moz-selection, +code[class*='language-'] ::-moz-selection { + background: #b3d4fc; + text-shadow: none; +} + +pre[class*='language-']::selection, +pre[class*='language-'] ::selection, +code[class*='language-']::selection, +code[class*='language-'] ::selection { + background: #b3d4fc; + text-shadow: none; +} + +@media print { + code[class*='language-'], + pre[class*='language-'] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*='language-'] { + overflow: auto; + margin: 0.5em 0; + padding: 1em; +} + +:not(pre) > code[class*='language-'], +pre[class*='language-'] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre) > code[class*='language-'] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: 0.7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + background: hsla(0deg, 0%, 100%, 0.5); + color: #9a6e3a; +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #dd4a68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/src/fonts/moblie/iconfont.css b/src/fonts/moblie/iconfont.css new file mode 100644 index 0000000..e9186ca --- /dev/null +++ b/src/fonts/moblie/iconfont.css @@ -0,0 +1,75 @@ +@font-face { + font-family: mobilefont; /* Project id 4841764 */ + src: + url('iconfont.woff2?t=1741575354833') format('woff2'), + url('iconfont.woff?t=1741575354833') format('woff'), + url('iconfont.ttf?t=1741575354833') format('truetype'); +} + +.mobilefont { + font-style: normal; + font-size: 18px; + font-family: mobilefont !important; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-radiobox::before { + content: '\e75b'; +} + +.icon-juzhendafen::before { + content: '\e641'; +} + +.icon-checkbox-checked::before { + content: '\e6c3'; +} + +.icon-nps::before { + content: '\e6b0'; +} + +.icon-input::before { + content: '\e6fd'; +} + +.icon-juzhentiankong::before { + content: '\e62e'; +} + +.icon-wenjianshangchuan::before { + content: '\e631'; +} + +.icon-qianming::before { + content: '\e661'; +} + +.icon-tuwen::before { + content: '\e62c'; +} + +.icon-juzhenduoxuan::before { + content: '\e818'; +} + +.icon-juzhendanxuan::before { + content: '\13c7f'; +} + +.icon-edit2::before { + content: '\e630'; +} + +.icon-copy::before { + content: '\e632'; +} + +.icon-delete::before { + content: '\e63f'; +} + +.icon-sort::before { + content: '\e6a0'; +} diff --git a/src/fonts/moblie/iconfont.js b/src/fonts/moblie/iconfont.js new file mode 100644 index 0000000..00018eb --- /dev/null +++ b/src/fonts/moblie/iconfont.js @@ -0,0 +1,67 @@ +(window._iconfont_svg_string_4841764 = + ''), + ((l) => { + var a = (t = (t = document.getElementsByTagName('script'))[t.length - 1]).getAttribute( + 'data-injectcss' + ), + t = t.getAttribute('data-disable-injectsvg'); + if (!t) { + var c, + i, + e, + h, + o, + n = function (a, t) { + t.parentNode.insertBefore(a, t); + }; + if (a && !l.__iconfont__svg__cssinject__) { + l.__iconfont__svg__cssinject__ = !0; + try { + document.write( + '' + ); + } catch (a) { + console && console.log(a); + } + } + (c = function () { + var a, + t = document.createElement('div'); + (t.innerHTML = l._iconfont_svg_string_4841764), + (t = t.getElementsByTagName('svg')[0]) && + (t.setAttribute('aria-hidden', 'true'), + (t.style.position = 'absolute'), + (t.style.width = 0), + (t.style.height = 0), + (t.style.overflow = 'hidden'), + (t = t), + (a = document.body).firstChild ? n(t, a.firstChild) : a.appendChild(t)); + }), + document.addEventListener + ? ~['complete', 'loaded', 'interactive'].indexOf(document.readyState) + ? setTimeout(c, 0) + : ((i = function () { + document.removeEventListener('DOMContentLoaded', i, !1), c(); + }), + document.addEventListener('DOMContentLoaded', i, !1)) + : document.attachEvent && + ((e = c), + (h = l.document), + (o = !1), + s(), + (h.onreadystatechange = function () { + 'complete' == h.readyState && ((h.onreadystatechange = null), d()); + })); + } + function d() { + o || ((o = !0), e()); + } + function s() { + try { + h.documentElement.doScroll('left'); + } catch (a) { + return void setTimeout(s, 50); + } + d(); + } + })(window); diff --git a/src/fonts/moblie/iconfont.json b/src/fonts/moblie/iconfont.json new file mode 100644 index 0000000..f9f4e22 --- /dev/null +++ b/src/fonts/moblie/iconfont.json @@ -0,0 +1,114 @@ +{ + "id": "4841764", + "name": "yl", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "", + "glyphs": [ + { + "icon_id": "240132", + "name": "radio_box", + "font_class": "radiobox", + "unicode": "e75b", + "unicode_decimal": 59227 + }, + { + "icon_id": "844024", + "name": "矩阵打分", + "font_class": "juzhendafen", + "unicode": "e641", + "unicode_decimal": 58945 + }, + { + "icon_id": "1176868", + "name": "checkbox-checked", + "font_class": "checkbox-checked", + "unicode": "e6c3", + "unicode_decimal": 59075 + }, + { + "icon_id": "8766356", + "name": "nps", + "font_class": "nps", + "unicode": "e6b0", + "unicode_decimal": 59056 + }, + { + "icon_id": "11215250", + "name": "input", + "font_class": "input", + "unicode": "e6fd", + "unicode_decimal": 59133 + }, + { + "icon_id": "15969322", + "name": "矩阵填空", + "font_class": "juzhentiankong", + "unicode": "e62e", + "unicode_decimal": 58926 + }, + { + "icon_id": "15969340", + "name": "文件上传", + "font_class": "wenjianshangchuan", + "unicode": "e631", + "unicode_decimal": 58929 + }, + { + "icon_id": "17269853", + "name": "签名", + "font_class": "qianming", + "unicode": "e661", + "unicode_decimal": 58977 + }, + { + "icon_id": "17373529", + "name": "图文", + "font_class": "tuwen", + "unicode": "e62c", + "unicode_decimal": 58924 + }, + { + "icon_id": "36443758", + "name": "矩阵多选", + "font_class": "juzhenduoxuan", + "unicode": "e818", + "unicode_decimal": 59416 + }, + { + "icon_id": "38465935", + "name": "矩阵单选", + "font_class": "juzhendanxuan", + "unicode": "13c7f", + "unicode_decimal": 81023 + }, + { + "icon_id": "1160114", + "name": "edit-2", + "font_class": "edit2", + "unicode": "e630", + "unicode_decimal": 58928 + }, + { + "icon_id": "1160116", + "name": "copy", + "font_class": "copy", + "unicode": "e632", + "unicode_decimal": 58930 + }, + { + "icon_id": "1160129", + "name": "delete", + "font_class": "delete", + "unicode": "e63f", + "unicode_decimal": 58943 + }, + { + "icon_id": "1160227", + "name": "sort", + "font_class": "sort", + "unicode": "e6a0", + "unicode_decimal": 59040 + } + ] +} diff --git a/src/fonts/moblie/iconfont.ttf b/src/fonts/moblie/iconfont.ttf new file mode 100644 index 0000000..ec87c07 Binary files /dev/null and b/src/fonts/moblie/iconfont.ttf differ diff --git a/src/fonts/moblie/iconfont.woff b/src/fonts/moblie/iconfont.woff new file mode 100644 index 0000000..33c8376 Binary files /dev/null and b/src/fonts/moblie/iconfont.woff differ diff --git a/src/fonts/moblie/iconfont.woff2 b/src/fonts/moblie/iconfont.woff2 new file mode 100644 index 0000000..6b0fc4c Binary files /dev/null and b/src/fonts/moblie/iconfont.woff2 differ diff --git a/src/stores/modules/common.ts b/src/stores/modules/common.ts index 5c74ada..1989863 100644 --- a/src/stores/modules/common.ts +++ b/src/stores/modules/common.ts @@ -9,8 +9,9 @@ export const useCommonStore = defineStore('common', { state: () => ({ questionsInfo: { survey: { - id: 8721, - introduction: '

【样本量要求≥60】

', + id: '', + introduction: + '

为优化活动服务品质,烦请完成问卷,感谢配合!您的反馈至关重要!(此提示语为默认提示语,您可选择自行输入本问卷的提示语)

', pages: [ [24, 27, 26, 1], [2, 3, 4, 5, 6, 7], @@ -18,24 +19,17 @@ export const useCommonStore = defineStore('common', { [15, 16, 17, 18, 19, 20, 21], [28, 22] ], - sn: '8YXK4kW5', + sn: '', status: 0, - title: - '

液态奶产品研究标准化问卷-概念测试(内测标准版)

', - detail_pages: [ - [24, 27, 26, 1], - [2, 3, 4, 5, 6, 7], - [8, 9, 10, 11, 12, 13, 14], - [15, 16, 17, 18, 19, 20, 21], - [28, 22] - ], + title: '

问卷标题

', + detail_pages: [], group_pages: [], is_one_page_one_question: 0, last_question_index: 0, is_three_d_permissions: 0, is_dept: 1, last_title: 'Q5', - project_name: '概念诊断问卷示例-0227', + project_name: '', quota_end_content: '

\n

很抱歉,本次调研不太适合您的情况,感谢您的参与!

', quota_end_url: '', diff --git a/src/utils/QuestionJsons/FileUpload.js b/src/utils/QuestionJsons/FileUpload.js new file mode 100644 index 0000000..868a7a8 --- /dev/null +++ b/src/utils/QuestionJsons/FileUpload.js @@ -0,0 +1,29 @@ +export default { + id: '', + question_type: 18, + question_index: 41, + stem: '请上传文件', + title: 'Q14', + options: [], + last_option_index: 0, + config: { + is_required: 1, + quick_type: 0, + is_show: [], + select_random: 0, + min_number: 1, + max_number: 1, + min_size: 0, + max_size: 1, + is_file: 0, + file_type: '0' + }, + associate: [], + question_code: '', + logic_config: { + order: 0, + type: 0, + expect: '', + stay_time: '' + } +}; diff --git a/src/utils/QuestionJsons/MartrixQuestion.js b/src/utils/QuestionJsons/MartrixQuestion.js index 5da73ce..583eccf 100644 --- a/src/utils/QuestionJsons/MartrixQuestion.js +++ b/src/utils/QuestionJsons/MartrixQuestion.js @@ -1,14 +1,14 @@ export default { // JSON 需要修改 id: '', - question_type: 5, + question_type: '', question_index: '', - stem: '请完成打分', + stem: '请每行选择一个选项', title: '', options: [ [ { - id: 'e46f51b1-bfd8-4d9c-becc-4fb7d175a6f4', + id: '', is_fixed: 0, is_other: 0, is_remove_other: 0, @@ -25,6 +25,83 @@ export default { type: 0, cascade: [], config: [] + }, + { + id: '', + is_fixed: 0, + is_other: 0, + is_remove_other: 0, + option: '

选项2

', + option_config: { + image_url: [], + title: '', + instructions: [], + option_type: 0, + limit_right_content: '' + }, + option_index: 1, + parent_id: 0, + type: 0, + cascade: [], + config: [] + } + ], + [ + { + option: '

列标签1

', + id: '1049201', + type: 2, + is_other: 0, + is_fixed: 0, + is_remove_other: 0, + created_at: null, + created_user_id: null, + parent_id: null, + option_index: 3, + list_id: 74491, + option_code: '', + option_config: { + title: '', + instructions: [], + price: 0, + gradient: '', + image_url: [], + option_type: 0, + type: 0, + limit_right_content: '', + child_area: null, + binding_goods_id: '' + }, + disable_option_update: null, + cascade: [] + }, + { + option: '

列标签2

', + id: '1049202', + type: 2, + is_other: 0, + is_fixed: 0, + is_remove_other: 0, + created_at: null, + created_user_id: null, + parent_id: null, + option_index: 4, + list_id: 74491, + option_code: '', + option_config: { + title: '', + instructions: [], + price: 0, + gradient: '', + image_url: [], + option_type: 0, + type: 0, + limit_right_content: '', + child_area: null, + binding_goods_id: '' + }, + disable_option_update: null, + cascade: [] } ] ], diff --git a/src/utils/QuestionJsons/NPS.js b/src/utils/QuestionJsons/NPS.js new file mode 100644 index 0000000..0f305ef --- /dev/null +++ b/src/utils/QuestionJsons/NPS.js @@ -0,0 +1,54 @@ +export default { + id: '', + question_type: 106, + question_index: 0, + stem: '您向朋友或同事推荐我们的可能性多大?', + title: '', + options: [ + [ + { + id: 'b68d45eb-d833-4b25-b0aa-2fde1310e88d', + is_fixed: 0, + is_other: 0, + is_remove_other: 0, + option: '

选项1

', + option_config: { + image_url: [], + title: '', + instructions: [], + option_type: 0, + limit_right_content: '' + }, + option_index: 1, + parent_id: 0, + type: 0, + cascade: [], + config: [] + } + ] + ], + last_option_index: 0, + config: { + is_required: 1, + quick_type: 0, + is_show: [], + version: 2, + prompt_left: '不可能', + prompt_right: '极有可能', + prompt_center: '', + max: 10, + min: 0, + score_interval: 1, + score_type: 0, + score_way: 1, + prompt_score: 2 + }, + associate: [], + question_code: '', + logic_config: { + order: 0, + type: 0, + expect: '', + stay_time: '' + } +}; diff --git a/src/utils/QuestionJsons/SignQuestion.js b/src/utils/QuestionJsons/SignQuestion.js new file mode 100644 index 0000000..c8e11da --- /dev/null +++ b/src/utils/QuestionJsons/SignQuestion.js @@ -0,0 +1,37 @@ +export default { + id: '17852690', + title: 'Q7', + stem: '请留下您的姓名', + other: '', + question_index: 10, + question_type: 22, + config: { + is_required: 1, + select_random: 0, + float_window: 0, + float_window_content: '', + popup_window: 0, + popup_window_content: '', + is_show: [], + quick_type: 0 + }, + created_at: '2025-03-06T15:51:13', + created_user_id: 1281, + updated_user_id: null, + survey_id: 9482, + logic_config: { + expect: '', + order: 0, + type: 0, + stay_time: '' + }, + options: [], + associate: [], + logics_has: null, + last_option_index: 0, + question_code: '', + question_value: '', + question_tag: '', + planet_id: '', + permissions: null +}; diff --git a/src/utils/QuestionJsons/TextWithImages.js b/src/utils/QuestionJsons/TextWithImages.js new file mode 100644 index 0000000..1c8d613 --- /dev/null +++ b/src/utils/QuestionJsons/TextWithImages.js @@ -0,0 +1,22 @@ +export default { + id: '', + question_type: '', + question_index: 0, + stem: '请认真阅读以下内容', + title: '', + options: [], + last_option_index: 0, + config: { + is_required: 1, + quick_type: 0, + is_show: [] + }, + associate: [], + question_code: '', + logic_config: { + order: 0, + type: 0, + expect: '', + stay_time: '' + } +}; diff --git a/src/utils/importJsons.js b/src/utils/importJsons.js index b952229..66ff0ab 100644 --- a/src/utils/importJsons.js +++ b/src/utils/importJsons.js @@ -4,3 +4,7 @@ export { default as checkbox } from './QuestionJsons/Checkbox.js'; export { default as completion } from './QuestionJsons/Completion.js'; export { default as rate } from './QuestionJsons/Rate.js'; export { default as martrixQuestion } from './QuestionJsons/MartrixQuestion.js'; +export { default as fileUpload } from './QuestionJsons/FileUpload.js'; +export { default as textWithImages } from './QuestionJsons/TextWithImages.js'; +export { default as signQuestion } from './QuestionJsons/SignQuestion.js'; +export { default as nps } from './QuestionJsons/NPS.js'; diff --git a/src/views/Design/Index.vue b/src/views/Design/Index.vue index dbc3f3e..4e30306 100644 --- a/src/views/Design/Index.vue +++ b/src/views/Design/Index.vue @@ -87,7 +87,11 @@