diff --git a/src/assets/images/form-bg.png b/src/assets/images/form-bg.png new file mode 100644 index 0000000..986ecdd Binary files /dev/null and b/src/assets/images/form-bg.png differ diff --git a/src/assets/styles/form/home.scss b/src/assets/styles/form/home.scss index 22faecf..2b7f01f 100644 --- a/src/assets/styles/form/home.scss +++ b/src/assets/styles/form/home.scss @@ -87,7 +87,7 @@ $lighterBlue: #1890ff; } .empty-info { position: absolute; - top: 46%; + top: 36%; left: 0; right: 0; text-align: center; diff --git a/src/components/generator/config.js b/src/components/generator/config.js index d3a6974..702a6a8 100644 --- a/src/components/generator/config.js +++ b/src/components/generator/config.js @@ -11,7 +11,7 @@ export const formConf = { span: 24, title: '问卷名称', description: '为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们,我们非常重视每位\n' + - '用户的宝贵意见,期待您的参与!现在我们就马上开始吧!', + '用户的宝贵意见,期待您的参与!现在我们就马上开始吧!', formBtns: true, unFocusedComponentBorder: true } @@ -19,7 +19,7 @@ export const formConf = { // 输入型组件 【左面板】 export const inputComponents = [ { - // 组件的自定义配置 + // 组件的自定义配置 typeId: 'INPUT', __config__: { label: '单行文本', @@ -795,6 +795,7 @@ export const personalInfoComponents = [ layout: 'colFormItem', span: 24, showRegList: false, + regList: [], document: 'https://element.eleme.cn/#/zh-CN/component/input' }, placeholder: '请选择省市县', @@ -814,6 +815,7 @@ export const personalInfoComponents = [ layout: 'colFormItem', span: 24, showRegList: false, + regList: [], document: 'https://element.eleme.cn/#/zh-CN/component/input' }, placeholder: '请选择位置', @@ -833,6 +835,7 @@ export const personalInfoComponents = [ layout: 'colFormItem', span: 24, showRegList: false, + regList: [], document: 'https://element.eleme.cn/#/zh-CN/component/input' }, placeholder: '请验证手机号', diff --git a/src/components/parser/Parser.vue b/src/components/parser/Parser.vue index cbd1e93..5792294 100644 --- a/src/components/parser/Parser.vue +++ b/src/components/parser/Parser.vue @@ -31,6 +31,7 @@ const layouts = { let labelWidth = config.labelWidth ? `${config.labelWidth}px` : null if (config.showLabel === false) labelWidth = '0' let label = config.label + // 显示序号 if (formConfCopy.showNumber) { label = scheme.serialNumber + ': ' + label } @@ -404,7 +405,25 @@ export default { }, trigger: 'change' }) } + // 处理其他输入必填校验 + const validateOtherInput = (rule, value, callback) => { + // 0 等于选中其他 + if (value == 0 || (Array.isArray(value) && value.includes(0))) { + if (!this[this.formConf.labelFormModel][`${rule.field}other`]) { + callback(new Error('请输入其他内容')) + } else { + callback() + } + } else { + callback() + } + } if (Array.isArray(config.regList)) { + // 必填其他输入框校验 + if (['RADIO', 'CHECKBOX'].includes(cur.typeId)) { + const required = {validator: validateOtherInput, message: cur.placeholder} + config.regList.push(required) + } if (config.required) { const required = {required: config.required, message: cur.placeholder} if (Array.isArray(config.defaultValue)) { @@ -457,29 +476,33 @@ export default { diff --git a/src/views/form/editor/index.vue b/src/views/form/editor/index.vue index 7ca758d..c32d1af 100644 --- a/src/views/form/editor/index.vue +++ b/src/views/form/editor/index.vue @@ -89,7 +89,8 @@ />
+ 从左侧拖入或点选组件进行表单设计
提交设置
-显示提示图片
显示提示文字
跳转网页地址
公开反馈结果
回收设置
-只在微信中填写
定时收集表单
收集时间:
未启用提示语:
停用后提示语:
定时定量表单
收集时间:
未启用提示语:
停用后提示语:
定量表单填写数量:
收集完成后提示:
+ 每个微信仅填写一次 +
+每人限制填写1次
+
+ 每人限制填写1次
+
每人每天限制填写1次
重复填写后提示:
新反馈提醒我
发邮件提醒我
请填写邮箱:
发微信提醒我
提醒人:
记录微信用户个人信息
分享设置
-自定义分享图标
请上传分享图片 *
@@ -453,16 +475,16 @@
自定义分享标题 请输入标题: 自定义分享描述 请输入描述:
+