diff --git a/README.md b/README.md index a3b3421..18337b6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,117 @@ -# Tduck-WEB +

+

+

+ logo +

+

Tduck 填鸭 —— 表单收集器

+ + +### 特别鸣谢 :heart: + +#### 感谢 (https://gitee.com/eoner/vue-automation) 前端脚手架 + +#### 感谢 (https://gitee.com/mrhj/form-generator) 表单生成器 + + +### 平台简介 + +Tduck, Form collection system + +Tduck 填鸭:是基于B/S架构的一款开源的表单在线收集系统,为企业构建自己的信息反馈系统的综合解决方案,助力企业提高反馈收集客户服务效率。 + + +### 应用场景 + +主要应用与泛零售、电商、金融、调研、资料收集等行业用户,提供多种工具、多渠道、多方式收集有效信息,更好的提升客户服务,增加客户满意度。 + + +### 功能特性 +##### 界面美观,全新element-ui支持,使用流畅 +- 以一种全新的设计体验,告别繁琐的设计流程 +- 通过简单有趣的方式,轻轻松松完成表单设计 +- 支持表单样式模板选择,只为显现更精美的表单 + +##### 三大模块助力企业能力升级: +- 新建表单:自定义可拖拽式表单设计 +- 表单设置:支持多种收集方式设置 +- 反馈统计:多维度统计收集的反馈数据 + + +## 在线体验 +![首页](https://images.gitee.com/uploads/images/2021/0624/103418_43f3b04e_1495174.png "屏幕截图.png") + +### 演示环境&详细文档👮‍♀️ +- 演示地址:http://demo.tduckapp.com/ +- 演示账号/密码:扫码注册登录 +- 文档地址:http://demo.tduckapp.com/ +- V2更新日志:https://doc.tduckapp.com/log/ +- 部署默认账号: test@tduck.com/12345678 +- 获取《使用Docker运行Tduck》教程请加入社群获取 +- 获取《tduck-纯小白部署教程》请加入社群获取 +- 开源不易如果喜欢请给作者 Star 鼓励 + +### 加入社群 + logo + +#### 项目源码 + +| 后端源码 | 前端源码 | +|--- | --- | +| https://gitee.com/TDuckApp/tduck-platform | https://gitee.com/TDuckApp/tduck-front | +| https://github.com/TDuckCloud/tduck-platform | https://github.com/TDuckCloud/tduck-platform | + +感谢:logo +提供云服务器资源! + +### “项目背景” +目前市面上的表单平台虽然功能强大,但是部分业务组件或者额外收取存储等费用,且费用较高,在数据隐私性较强且有特殊表单需求的场景下无法满足业务需求, +目前国内的的开源平台表单问卷平台比较少,tduck表单平台应运而生。让中小公司拥有独立自定义表单问卷,快速赋能业务。 + +### “新特性” + +- 【表单逻辑】支持对单选,多选框,下拉框等组件进行逻辑设置,目前仅支持选中 未选中等逻辑关系 +- 【表单分页】支持对问卷问题较多时,进行分页 +- 【手写签名】支持手写签名保存上传 +- 【位置选择】支持高德地图进行地理位置选择 +- 【手机验证】支持对输入手机号进行短信验证 验证通过则能保存 +- 【省市联动】支持省市县联动选择输入 +- 【图形选择】图片选择组件,支持单选多选 +- 【图片展示】图片展示组件,展示二维码引流等 +- 【图片轮播】图片轮播组件,图片和文字轮播显示 +- 【文字描述】文件描述组件,支持颜色,位置设置 +- 【分割线】 内容分割线 +- 【联系人】 手机号,邮箱,身份证输入 格式校验 +- 【公开反馈结果】 公开反馈结果设置,开启后填写完成将看到他人填写结果 +- 【附件导出】填写完成后可对收集的附件进行导出zip下载 +- 【统计筛选】可对填写完的结果进行筛选查询 支持模糊等 +- 【表单预览】添加预览按钮,实时预览内容,预览二维码 +- 【另存为模板】添加另存为模板按钮,保存项目为模板 +- 【UI重构】项目整体UI全面重构,更美观,更简洁 +- 【验证码】验证逻辑重构,支持验证码开关 +- 【微信功能】 微信功能增加开关配置,可配置关闭微信功能 +- 【代码优化】对前后端代码进行部分优化,结构调整 +![输入图片说明](https://images.gitee.com/uploads/images/2021/0625/000932_eb5728c8_1674451.png "屏幕截图.png") +### “文档支持” +新的文档平台,后续会不断完善文档,有需要完善的内容可以在GItee提issues反馈,收到反馈我们将第一时间调整,当然有想共享文档的也欢迎提Pr。 + +![输入图片说明](https://images.gitee.com/uploads/images/2021/0625/001013_eb945bce_1674451.png "屏幕截图.png") + +![输入图片说明](https://images.gitee.com/uploads/images/2021/0625/001053_f3c320c4_1674451.png "屏幕截图.png") + +### “项目规划” +“让每个企业轻松拥有自己的问卷系统”是Tduck团队不变的初衷;v2版本的开发工作目前算是暂时结束,经过团队内部自测推出,同时欢迎大家进行测试,对存在的问题在Gitee提issues,社群内反馈可能无法及时解决,后续可能会遗忘。我们会定期对issues问题修复和做一些优化,竭力维护一个稳定的v2版本。 + +![输入图片说明](https://images.gitee.com/uploads/images/2021/0625/001803_d0b579e3_1674451.png "屏幕截图.png") + +### :heart: 致谢 ! + +Tduck诞生非常有趣,不经意之间的一个想法,一步步实现至今。在v2开发期间,团队成员非全职开发,都是业余时间进行打码,所以迭代时间较长,期间群中反馈的问题没有及时给予反馈(深感抱歉)。 + +Tduck永远珍惜每一位用户,重视每一个issues。 +感谢对Tduck团队的支持,以及大家对v2期盼与鼓励。 + + -![s8sdOO.png](https://s3.ax1x.com/2021/01/11/s8sdOO.png) TDuck 前端源码 #### 项目源码 @@ -53,14 +164,9 @@ https://www.ydyno.com/archives/1219.html - views 页面 -#### 特别鸣谢 - - -- 感谢 (https://gitee.com/eoner/vue-automation) 前端脚手架 - -- 感谢 (https://gitee.com/mrhj/form-generator) 表单生成器 - - +### ChangeLog 持续更新中 :sparkles: +增加单选/多选题型统计图 2021-07-02 +![输入图片说明](https://images.gitee.com/uploads/images/2021/0702/180333_6991a4bf_1674451.png "屏幕截图.png") diff --git a/src/components/form/InputMap/index.vue b/src/components/form/InputMap/index.vue index fe37058..6a545bf 100644 --- a/src/components/form/InputMap/index.vue +++ b/src/components/form/InputMap/index.vue @@ -319,4 +319,7 @@ export default { margin-bottom: 10px; } +::v-deep .el-dialog__headerbtn { + z-index: 999; +} diff --git a/src/components/generator/config.js b/src/components/generator/config.js index 4cf21f3..d3a6974 100644 --- a/src/components/generator/config.js +++ b/src/components/generator/config.js @@ -602,7 +602,7 @@ export const assistComponents = [ typeId: 'DIVIDER', __config__: { label: '分割线', - defaultValue: '分割线', + defaultValue: '', displayType: true, showLabel: false, showDefaultValue: false, diff --git a/src/components/parser/Parser.vue b/src/components/parser/Parser.vue index 5fe8817..cbd1e93 100644 --- a/src/components/parser/Parser.vue +++ b/src/components/parser/Parser.vue @@ -361,8 +361,10 @@ export default { if (defaultValue instanceof Array) { defaultValue.forEach(item => { if (item) { - let {label} = getObject(_.get(cur, tagOptionKey), 'value', item) - labelStr += label + ',' + let labelItem = getObject(_.get(cur, tagOptionKey), 'value', item) + if (labelItem) { + labelStr += labelItem.label + ',' + } } }) formData[cur.__vModel__] = labelStr diff --git a/src/utils/convert.js b/src/utils/convert.js index 6a360d1..4973d88 100644 --- a/src/utils/convert.js +++ b/src/utils/convert.js @@ -136,6 +136,7 @@ const dataParams = { 'CASCADER': { 'options': 'options', 'filterable': 'filterable', + 'show-all-levels': 'showAllLevels', 'multiple': 'props.props.multiple' }, // 单选框组 diff --git a/src/utils/expression.js b/src/utils/expression.js index 5b37f88..526a0e0 100644 --- a/src/utils/expression.js +++ b/src/utils/expression.js @@ -8,7 +8,9 @@ const expressionOperator = { if (!v1) { return false } - return v1 == v2 + // 当type=CHECK_BOX时此处应为包含关系 + return Array.isArray(v1) ? v1.includes(+v2) : v1 == v2 + }, ne: function(v1, v2) { if (!v1) { diff --git a/src/views/form/editor/RightPanel.vue b/src/views/form/editor/RightPanel.vue index 4ee6816..df21fa4 100644 --- a/src/views/form/editor/RightPanel.vue +++ b/src/views/form/editor/RightPanel.vue @@ -1,1275 +1,1678 @@ diff --git a/src/views/form/index.vue b/src/views/form/index.vue index 8bb8609..4def0cb 100644 --- a/src/views/form/index.vue +++ b/src/views/form/index.vue @@ -5,15 +5,15 @@ - + - + 预览 - + 保存为模板 diff --git a/src/views/form/preview/ProjectForm.vue b/src/views/form/preview/ProjectForm.vue index c551721..1bb5d34 100644 --- a/src/views/form/preview/ProjectForm.vue +++ b/src/views/form/preview/ProjectForm.vue @@ -20,7 +20,7 @@
diff --git a/src/views/form/setting/index.vue b/src/views/form/setting/index.vue index 12b7585..d3e59e2 100644 --- a/src/views/form/setting/index.vue +++ b/src/views/form/setting/index.vue @@ -80,6 +80,7 @@ +
+
+
+
+
+ Q:{{ item.label }}({{ item.type }}) + +
+ 图表类型: + + + +
+
+ +
+ +
+
+ +
+ + + + + \ No newline at end of file diff --git a/src/views/form/statistics/index.vue b/src/views/form/statistics/index.vue index 179bd32..b67fcf7 100644 --- a/src/views/form/statistics/index.vue +++ b/src/views/form/statistics/index.vue @@ -7,6 +7,9 @@ + + +
@@ -14,12 +17,14 @@