1.0.22 • Published 11 months ago
hs-form-plugin v1.0.22
##环境和依赖
- node
- yarn
- webpack
- vue
##插件使用方法
import formPlugin from 'hs-form-plugin'
Vue.use(formPlugin)
<formEditor></formEditor> // 表单设计
<formFill></formFill> // 表单填写及回显
##插件图例
formEditor 表单设计
- 画布模块
字段 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
multipleCanvas | boolean | 否 | false | 是否多个画布,默认只有一个画布 |
showFormBar | boolean | 否 | false | 是否展示标题及标签 |
- “表单设计”编辑
字段 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
initFormId | number | false | - | 表单Id(通过Id, 查询表单详情) |
formDesignData | object | false | - | 表单设计数据 |
userId | number | true | - | 用户Id |
tenantId | string | true | - | 租户Id |
- 表单基础信息
字段 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
name | string | 是 | - | 表单名称 |
tag | Array | 是 | - | 传一个就好,name值为当前平台名称,ID找后端要。例(OA平台):{id: 99, name: 'OA'} |
- 表单组件
字段 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
pluginTagObject | array | 否 | [ { key: 0, name: '设计域',moduleList:'input', 'textarea', 'input-number', 'radio', 'checkbox', 'select', 'table', 'date', 'description', 'upload'}, { key: 1, name: '业务域',moduleList:'name', 'gender', 'ID-cards', 'birth-date', 'education', 'degree', 'school', 'address', 'course-results', 'attendance', 'physique', 'department', 'personnel', 'approval'}, { key: 2, name: '表单',moduleList:'leave', 'meeting-room', 'car', 'computer', 'classroom'} ] | name:组件名字,type: 组件类型。(组件名字可更改,默认展示三个组件,传入参数时,即展示对应参数的组件!) |
type(表单组件类型,详细描述查看上面表格)
├─ 1(设计域)
│ ├─ input(文本框)
│ ├─ textarea(多行文本框)
│ ├─ input-number(数字)
│ ├─ radio(单选)
│ ├─ checkbox(多选)
│ ├─ select(下拉列表)
│ ├─ table(表格)
│ ├─ date(日期时间类型)
│ ├─ description(说明文字)
│ └─ upload(上传)
│
├─ 2(业务域)
│ ├─ name(姓名)
│ ├─ gender(性别)
│ ├─ ID-cards(身份证号)
│ ├─ birth-date(出生日期)
│ ├─ education(学历)
│ ├─ degree(学位)
│ ├─ school(学校)
│ ├─ address(地址)
│ ├─ course-results(小学课程成绩)
│ ├─ attendance(考勤情况)
│ ├─ physique(体质测试)
│ ├─ department(部门)
│ ├─ personnel(人员)
│ └─ approval(关联审批单)
│
└─ 3(套件)
├─ leave(请假)
├─ meeting-room(会议室申请)
└─ car(车辆申请)
└─ computer(电脑申请)
└─ classroom(教室申请)
moduleList中的子元素除了string类型(引用插件内部表单组件,对应下方的moduleType字段)还可以是object类型(自定义表单组件)
字段 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
icon | string | true | - | 表单元素logo |
name | string | true | - | 表单元素类型名称 |
type | number | true | - | 表单元素类型id,1是'input' 2是'textarea' 以此类推,10是上传、另外11是省市区,其它业务域套件的组件都是复用设计域的组件 |
moduleType | string | true | - | 表单元素类型英文名称 |
isRequire | boolean | true | - | 表单元素是否必填(formFill数据提交的时候会校验) |
layout | number | true | - | 表单元素布局占位-0为100%宽度、1为50%宽度 |
rule | number | true | - | 表单元素的标题字数限制 |
title | string | true | - | 表单元素的标题,相当于label效果 |
tips | string | true | - | 表单元素的placeholder |
value | string | true | - | 表单元素的值,如果是数组或对象,需要JSON.stringify转 |
arrayOptions | string/array | true | - | 表单元素的子元素的属性-radio、checkbox、select(option的key和value)、table、date(1为'YYYY-MM-DD'、0为'YYYY-MM-DD HH:mm:ss')、description说明文字的text值、upload上传允许的格式列表 |
domain | number | true | - | 表单元素disabled的状态-1为disabled、0为取消disabled |
valueIsArray | number | true | - | 表单元素的值是否为数组-0不是数组、1是数组(多选类的组件有用到) |
emitExternal | string | false | - | 当需要调用外部的自定义事件,里面有trigger、emitEventName属性,需要转成字符串 |
moduleList | array | false | - | 当组件里面含有多个子组件(套件有用到) |
示例:
moduleList: [
{
icon: require('@/assets/img/department.png'),
name: '文本框',
type: 1,
moduleType: 'department',
isEdit: true,
isRequire: true,
layout: 1,
rule: 14,
title: '部门',
tips: '请选择',
value: '',
arrayOptions: '',
domain: 1,
valueIsArray: 1,
emitExternal: JSON.stringify({ // 触发外部事件
trigger: 'click', // 诱因-内部触发 下拉框控件为focus(部门),上传控件为click(人员)
emitEventName: 'departmentEdit' // 触发事件,需要在formFill组件中添加departmentEdit事件
})
}
]
- 基础控件
字段 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
ossConfig | object | true | - | 阿里oss相关配置 {accessKeyId: 'accessKeyId',accessKeySecret: 'accessKeySecret',endpoint: 'endpoint',bucket: 'bucketName'} |
formFill 表单回填及预览
- 表单回调及预览 ()
字段 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
initFormData | object | false | - | 组件初始化的数据(包括了表单设计数据以及表单填写数据) |
initFormId | number | false | - | 表单Id(初次填写表单,通过Id, 查询表单详情) |
permissionData | object | false | - | 组件权限控制的数据(各层级的key对应initFormData中各层级的id值,form->sheet->column) |
#权限控制 permissionData
示例:
{
3348: {
9126: 'r',
9127: 'w',
9128: 'n',
9129: 'r',
9130: 'w',
9131: 'n',
9132: 'r',
9133: 'w',
9134: 'n',
}
}
#事件
版本更新: 1.0.11 1. formFill组件允许传入permissionData属性,可以对表单元素权限控制 2. emitExternal的属性传值改变
emitExternal: JSON.stringify({ // 触发外部事件
trigger: 'click', // 诱因-内部触发 下拉框控件为focus(部门、人员),上传控件为click(关联审批单)
emitEventName: 'departmentEdit' // 触发事件,需要在formFill组件中添加departmentEdit事件,插件内部默认为 moduleType + 'Edit'
})
- 插件件内已配置了多个套件,可通过字符串直接引用
├─ leave(请假)
├─ meeting-room(会议室申请)
├─ car(车辆申请)
├─ computer(电脑申请)
└─ classroom(教室申请)
也可以自定义配置
1.0.19
11 months ago
1.0.18
11 months ago
1.0.17
11 months ago
1.0.22
11 months ago
1.0.21
11 months ago
1.0.20
11 months ago
1.0.16
2 years ago
1.0.11
2 years ago
1.0.15
2 years ago
1.0.14
2 years ago
1.0.13
2 years ago
1.0.12
2 years ago
1.0.2
2 years ago
1.0.1
2 years ago
1.0.10
2 years ago
1.0.9
2 years ago
1.0.8
2 years ago
1.0.6
2 years ago
1.0.5
2 years ago
1.0.4
2 years ago
1.0.3
2 years ago
1.0.0
3 years ago