介绍
FddContract 是电子签行业的前端核心组件库,提供了合同文档查看、控件设置、控件填写、控件签署等能力,有力的支撑了签署业务最核心的流程
地址
👉 Demo
👉 更新日志
贡献者
👉 贡献者 - Gitlabopen in new window
技术栈
| 项目 | 说明 |
|---|---|
| 开发语言 | Vue 2.7, Typescript, Scss |
| 构建工具 | Vite 4.x |
| 代码检查和风格 | Eslint, Stylelint, Prettier 规则类别:vue/recommended |
| 技术栈 | Vue 2.7 |
| 依赖 | element-ui, vue-lazyload |
功能列表
- 支持合同缩放展示
- 支持异形合同
- 通过虚拟滚动支持 2w+ 超多页面的合同预览
- 支持的签署控件:签名,印章,签署日期,签署备注
- 支持的填写控件:单行文本,多行文本,勾选框,图片,附件,数字,身份证号,填写日期,单选框,复选框,下拉选择,表格
- 支持骑缝章的设置和加盖
- 支持批量控件,可以批量应用签署控件到指定文档和页面
- 图片控件支持裁剪后上传
- 控件支持跨页拖拽移动
- 支持点击和框选方式多选控件
- 支持快捷键批量操作控件:移动、删除、复制、剪切等
核心 UI 组件
FaLayout 布局
提供了顶栏、左中右栏、底栏可配置的经典圣杯布局
FaDragResize 拖拽大小
提供拖拽移动位置和调整大小的能力,支持以下功能:
- 限定移动范围为父元素,或指定选择器的 parent 节点
- 拖拽坐标轴,可指定 x、y 坐标移动
- 配置调整大小时显示的句柄
- 配置元素拖拽大小的最大最小宽高
- 限定调整大小范围为父元素
- 按宽高比调整大小
- 以中心点位置调整大小
- 支持缩放展示的节点拖拽位置和调整大小
FaDragSort 拖拽排序
提供拖拽调整列表顺序的功能
FaImageCropper 图片裁剪
将图片文件或地址裁剪成指定的尺寸和格式
已知问题
- [ ] 在当前页码非常大时,鼠标操作难以选中页面元素
- [ ] 打包后部分文件的 ts 类型文件未生存,原因是 reactive 推导类型容易过深,不能依赖类型自动推导
后续计划
- [x] 构建工具和文档工具升级最新的版本,提供更健全的类型建议
- [x] 批量印章支持,以适应标书等需要每页盖章的场景
- [ ] 不同的控件基于 Widget 子类实现(不确定是否有必要)
- [ ] 多语言支持,便于后续中英文切换国际化需求
- [ ] 控件操作步骤记录,支持撤销和重做
浏览器限制
开发虚拟滚动遇到的浏览器限制
- 浏览器的滚动高度有限制,超过指定范围不会显示
- Chrome 浏览器有节点数限制,超过大概一百五十万节点浏览器即使操作不卡顿也会直接崩溃
- Chrome 浏览器 svg 图片也会占用节点数,即使用 img.src 或者 background-image 都会