icarys-fc-vant 1.0.16 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +123 -97
- package/dist/index.js +7589 -45
- package/dist/index.min.js +7 -0
- package/dist/index.min.js.map +1 -0
- package/package.json +54 -29
- package/src/components/common/subform/LICENSE +21 -0
- package/src/components/common/subform/README.md +6 -0
- package/src/components/common/wangeditor/LICENSE +21 -0
- package/src/components/common/wangeditor/README.md +14 -0
- package/src/core/LICENSE +21 -0
- package/src/core/README.md +120 -0
- package/src/index.js +5 -0
- package/src/utils/LICENSE +21 -0
- package/src/utils/README.md +24 -0
- package/src/vant/LICENSE +21 -0
- package/src/vant/examples/App.vue +96 -0
- package/src/vant/public/index.html +14 -0
- package/src/vant/src/components/icon/IconWarning.vue +12 -0
- package/dist/icarys-fc-vant.umd.js +0 -17
- package/dist/index.esm.js +0 -39
- package/dist/vant/types/index.d.ts +0 -27
- /package/{dist → src}/components/common/subform/package.json +0 -0
- /package/{dist → src}/components/common/subform/src/component.jsx +0 -0
- /package/{dist → src}/components/common/subform/src/index.js +0 -0
- /package/{dist → src}/components/common/wangeditor/package-lock.json +0 -0
- /package/{dist → src}/components/common/wangeditor/package.json +0 -0
- /package/{dist → src}/components/common/wangeditor/src/component.jsx +0 -0
- /package/{dist → src}/components/common/wangeditor/src/index.js +0 -0
- /package/{dist → src}/core/babel.config.js +0 -0
- /package/{dist → src}/core/bili.config.js +0 -0
- /package/{dist → src}/core/package-lock.json +0 -0
- /package/{dist → src}/core/package.json +0 -0
- /package/{dist → src}/core/src/components/formCreate.js +0 -0
- /package/{dist → src}/core/src/components/fragment.js +0 -0
- /package/{dist → src}/core/src/factory/context.js +0 -0
- /package/{dist → src}/core/src/factory/creator.js +0 -0
- /package/{dist → src}/core/src/factory/maker.js +0 -0
- /package/{dist → src}/core/src/factory/manager.js +0 -0
- /package/{dist → src}/core/src/factory/node.js +0 -0
- /package/{dist → src}/core/src/factory/parser.js +0 -0
- /package/{dist → src}/core/src/frame/api.js +0 -0
- /package/{dist → src}/core/src/frame/attrs.js +0 -0
- /package/{dist → src}/core/src/frame/dataDriver.js +0 -0
- /package/{dist → src}/core/src/frame/fetch.js +0 -0
- /package/{dist → src}/core/src/frame/index.js +0 -0
- /package/{dist → src}/core/src/frame/language.js +0 -0
- /package/{dist → src}/core/src/frame/provider.js +0 -0
- /package/{dist → src}/core/src/frame/util.js +0 -0
- /package/{dist → src}/core/src/handler/context.js +0 -0
- /package/{dist → src}/core/src/handler/effect.js +0 -0
- /package/{dist → src}/core/src/handler/index.js +0 -0
- /package/{dist → src}/core/src/handler/inject.js +0 -0
- /package/{dist → src}/core/src/handler/input.js +0 -0
- /package/{dist → src}/core/src/handler/lifecycle.js +0 -0
- /package/{dist → src}/core/src/handler/loader.js +0 -0
- /package/{dist → src}/core/src/handler/page.js +0 -0
- /package/{dist → src}/core/src/handler/render.js +0 -0
- /package/{dist → src}/core/src/index.js +0 -0
- /package/{dist → src}/core/src/parser/html.js +0 -0
- /package/{dist → src}/core/src/render/cache.js +0 -0
- /package/{dist → src}/core/src/render/index.js +0 -0
- /package/{dist → src}/core/src/render/render.js +0 -0
- /package/{dist → src}/core/types/index.d.ts +0 -0
- /package/{dist → src}/utils/lib/console.js +0 -0
- /package/{dist → src}/utils/lib/debounce.js +0 -0
- /package/{dist → src}/utils/lib/deepextend.js +0 -0
- /package/{dist → src}/utils/lib/deepset.js +0 -0
- /package/{dist → src}/utils/lib/extend.js +0 -0
- /package/{dist → src}/utils/lib/index.js +0 -0
- /package/{dist → src}/utils/lib/json.js +0 -0
- /package/{dist → src}/utils/lib/mergeprops.js +0 -0
- /package/{dist → src}/utils/lib/mitt.js +0 -0
- /package/{dist → src}/utils/lib/modify.js +0 -0
- /package/{dist → src}/utils/lib/slot.js +0 -0
- /package/{dist → src}/utils/lib/toarray.js +0 -0
- /package/{dist → src}/utils/lib/tocase.js +0 -0
- /package/{dist → src}/utils/lib/todate.js +0 -0
- /package/{dist → src}/utils/lib/toline.js +0 -0
- /package/{dist → src}/utils/lib/topromise.js +0 -0
- /package/{dist → src}/utils/lib/tostring.js +0 -0
- /package/{dist → src}/utils/lib/type.js +0 -0
- /package/{dist → src}/utils/lib/unique.js +0 -0
- /package/{dist → src}/utils/package.json +0 -0
- /package/{dist → src}/vant/auto-import.d.ts +0 -0
- /package/{dist → src}/vant/auto-import.js +0 -0
- /package/{dist → src}/vant/babel.config.js +0 -0
- /package/{dist → src}/vant/bili.config.js +0 -0
- /package/{dist → src}/vant/examples/main.js +0 -0
- /package/{dist → src}/vant/examples/rule.js +0 -0
- /package/{dist → src}/vant/package.json +0 -0
- /package/{dist → src}/vant/src/components/calendar.jsx +0 -0
- /package/{dist → src}/vant/src/components/cascader.jsx +0 -0
- /package/{dist → src}/vant/src/components/checkbox.jsx +0 -0
- /package/{dist → src}/vant/src/components/datePicker.jsx +0 -0
- /package/{dist → src}/vant/src/components/group.jsx +0 -0
- /package/{dist → src}/vant/src/components/index.js +0 -0
- /package/{dist → src}/vant/src/components/radio.jsx +0 -0
- /package/{dist → src}/vant/src/components/select.jsx +0 -0
- /package/{dist → src}/vant/src/components/timePicker.jsx +0 -0
- /package/{dist → src}/vant/src/components/uploader.jsx +0 -0
- /package/{dist → src}/vant/src/core/alias.js +0 -0
- /package/{dist → src}/vant/src/core/api.js +0 -0
- /package/{dist → src}/vant/src/core/config.js +0 -0
- /package/{dist → src}/vant/src/core/index.js +0 -0
- /package/{dist → src}/vant/src/core/manager.js +0 -0
- /package/{dist → src}/vant/src/core/provider.js +0 -0
- /package/{dist → src}/vant/src/core/utils.js +0 -0
- /package/{dist → src}/vant/src/index.js +0 -0
- /package/{dist → src}/vant/src/parsers/hidden.js +0 -0
- /package/{dist → src}/vant/src/parsers/index.js +0 -0
- /package/{dist → src}/vant/src/parsers/row.js +0 -0
- /package/{dist → src}/vant/src/style/index.css +0 -0
- /package/{dist → src}/vant/types/config.d.ts +0 -0
- /package/{dist → src/vant/types}/index.d.ts +0 -0
- /package/{dist → src}/vant/vue.config.js +0 -0
package/README.md
CHANGED
|
@@ -1,144 +1,170 @@
|
|
|
1
|
-
# icarys
|
|
1
|
+
# @icarys/fc-vant
|
|
2
2
|
|
|
3
|
-
基于 FormCreate 和 Vant
|
|
3
|
+
基于 FormCreate 和 Vant 的移动端低代码表单组件库
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 特性
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
- 🚀 基于 Vue 3 + Vant 4
|
|
8
|
+
- 📱 专为移动端优化
|
|
9
|
+
- 🎯 通过 JSON 配置生成表单
|
|
10
|
+
- 🔧 支持动态渲染、数据收集、验证和提交
|
|
11
|
+
- 📦 开箱即用,简单易集成
|
|
10
12
|
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
### 1. 推荐使用方式(完整功能)
|
|
13
|
+
## 安装
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
```bash
|
|
16
|
+
# 安装组件库
|
|
17
|
+
npm install @icarys/fc-vant
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
# 安装必需的依赖(Vue 3 和 Vant)
|
|
20
|
+
npm install vue@^3.1.0 vant@^4.0.0
|
|
19
21
|
```
|
|
20
22
|
|
|
21
|
-
### 2. 工具函数使用
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
## 使用
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
// CommonJS
|
|
27
|
-
const { parseJson, toJson, toArray } = require('icarys-fc-vant');
|
|
26
|
+
### 基础用法
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
import { parseJson, toJson, toArray } from 'icarys-fc-vant';
|
|
31
|
-
```
|
|
28
|
+
#### 方法1:在模板中使用组件
|
|
32
29
|
|
|
33
|
-
|
|
30
|
+
#### 导入使用
|
|
34
31
|
|
|
35
32
|
```javascript
|
|
36
|
-
|
|
37
|
-
import
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
33
|
+
import Vue from 'vue'
|
|
34
|
+
import Vant from 'vant'
|
|
35
|
+
import 'vant/lib/index.css'
|
|
36
|
+
import formCreate from '@icarys/fc-vant'
|
|
37
|
+
|
|
38
|
+
Vue.use(Vant)
|
|
39
|
+
|
|
40
|
+
// 创建表单规则
|
|
41
|
+
const rule = [
|
|
42
|
+
{
|
|
43
|
+
type: 'input',
|
|
44
|
+
field: 'name',
|
|
45
|
+
title: '姓名',
|
|
46
|
+
props: {
|
|
47
|
+
placeholder: '请输入姓名'
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
type: 'select',
|
|
52
|
+
field: 'city',
|
|
53
|
+
title: '城市',
|
|
54
|
+
options: [
|
|
55
|
+
{ label: '北京', value: 'beijing' },
|
|
56
|
+
{ label: '上海', value: 'shanghai' }
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
|
|
61
|
+
// 创建表单实例
|
|
62
|
+
const $f = formCreate.create(rule)
|
|
63
|
+
|
|
64
|
+
// 挂载到DOM
|
|
65
|
+
$f.mount('#form-container')
|
|
66
|
+
|
|
67
|
+
// 或者提交表单
|
|
68
|
+
$f.submit().then(data => {
|
|
69
|
+
console.log('表单数据:', data)
|
|
70
|
+
})
|
|
41
71
|
```
|
|
42
72
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
### FormCreate API
|
|
46
|
-
|
|
47
|
-
#### formCreateMobile
|
|
48
|
-
FormCreate移动端实例(基础实现)
|
|
49
|
-
|
|
50
|
-
#### createFormCreate()
|
|
51
|
-
创建FormCreate工厂函数
|
|
73
|
+
#### 使用工具方法
|
|
52
74
|
|
|
53
75
|
```javascript
|
|
54
|
-
|
|
55
|
-
fc.component('name', Component); // 注册组件
|
|
56
|
-
fc.componentAlias({ alias: 'realName' }); // 设置别名
|
|
57
|
-
```
|
|
76
|
+
import formCreate from '@icarys/fc-vant'
|
|
58
77
|
|
|
59
|
-
|
|
78
|
+
// 解析JSON规则
|
|
79
|
+
const rules = formCreate.jsonParse('[{"type":"input","field":"name"}]')
|
|
60
80
|
|
|
61
|
-
|
|
62
|
-
|
|
81
|
+
// 序列化对象为JSON
|
|
82
|
+
const jsonString = formCreate.jsonStringify(rules)
|
|
63
83
|
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
// {title: "表单标题"}
|
|
84
|
+
// 创建表单
|
|
85
|
+
const $f = formCreate.create(rules)
|
|
67
86
|
```
|
|
68
87
|
|
|
69
|
-
|
|
70
|
-
将对象转换为JSON字符串
|
|
88
|
+
### 在 Vue 组件中使用
|
|
71
89
|
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
将值转换为数组
|
|
90
|
+
```vue
|
|
91
|
+
<template>
|
|
92
|
+
<div>
|
|
93
|
+
<div id="form-container"></div>
|
|
94
|
+
</div>
|
|
95
|
+
</template>
|
|
79
96
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
97
|
+
<script>
|
|
98
|
+
import { formCreateMobile } from '@icarys/fc-vant'
|
|
99
|
+
|
|
100
|
+
export default {
|
|
101
|
+
mounted() {
|
|
102
|
+
const rule = [
|
|
103
|
+
{
|
|
104
|
+
type: 'input',
|
|
105
|
+
field: 'name',
|
|
106
|
+
title: '姓名',
|
|
107
|
+
props: {
|
|
108
|
+
placeholder: '请输入姓名'
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
|
|
113
|
+
const $f = formCreateMobile(rule)
|
|
114
|
+
$f.mount('#form-container')
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
</script>
|
|
83
118
|
```
|
|
84
119
|
|
|
85
|
-
|
|
86
|
-
将值转换为字符串
|
|
120
|
+
## API
|
|
87
121
|
|
|
88
|
-
|
|
89
|
-
toString(null); // ''
|
|
90
|
-
toString(123); // '123'
|
|
91
|
-
```
|
|
122
|
+
### formCreateMobile(rule, options)
|
|
92
123
|
|
|
93
|
-
|
|
94
|
-
对象扩展函数
|
|
124
|
+
创建表单实例
|
|
95
125
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
```
|
|
126
|
+
- `rule`: 表单配置规则数组
|
|
127
|
+
- `options`: 配置选项
|
|
99
128
|
|
|
100
|
-
|
|
129
|
+
返回表单实例对象,包含以下方法:
|
|
101
130
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
131
|
+
- `mount(selector)`: 挂载到DOM元素
|
|
132
|
+
- `destroy()`: 销毁表单实例
|
|
133
|
+
- `resetFields()`: 重置表单
|
|
134
|
+
- `validate()`: 验证表单
|
|
135
|
+
- `getValue()`: 获取表单值
|
|
136
|
+
- `setValue(data)`: 设置表单值
|
|
107
137
|
|
|
108
|
-
|
|
109
|
-
import { parseJson } from 'icarys-fc-vant'
|
|
138
|
+
## 支持的组件类型
|
|
110
139
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
140
|
+
- input - 输入框
|
|
141
|
+
- textarea - 文本域
|
|
142
|
+
- select - 下拉选择
|
|
143
|
+
- radio - 单选框
|
|
144
|
+
- checkbox - 多选框
|
|
145
|
+
- switch - 开关
|
|
146
|
+
- datePicker - 日期选择器
|
|
147
|
+
- timePicker - 时间选择器
|
|
148
|
+
- calendar - 日历
|
|
149
|
+
- uploader - 文件上传
|
|
150
|
+
- cascader - 级联选择
|
|
115
151
|
|
|
116
152
|
## 依赖要求
|
|
117
153
|
|
|
118
|
-
- Vue 3.1.0
|
|
119
|
-
- Vant 4.
|
|
120
|
-
|
|
121
|
-
## 注意事项
|
|
154
|
+
- Vue ^3.1.0
|
|
155
|
+
- Vant ^4.0.0
|
|
122
156
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
2. **完整功能**: 如需完整的表单生成功能,请直接使用 `@form-create/vant` 包
|
|
126
|
-
|
|
127
|
-
3. **工具函数**: 这个包的工具函数可以独立使用,无需依赖其他包
|
|
128
|
-
|
|
129
|
-
## 从源码构建
|
|
157
|
+
## 开发
|
|
130
158
|
|
|
131
159
|
```bash
|
|
132
|
-
# 克隆源码
|
|
133
|
-
git clone <your-repo>
|
|
134
|
-
|
|
135
160
|
# 安装依赖
|
|
136
161
|
npm install
|
|
137
162
|
|
|
138
|
-
#
|
|
139
|
-
npm run
|
|
163
|
+
# 开发模式
|
|
164
|
+
npm run dev
|
|
140
165
|
|
|
141
|
-
#
|
|
166
|
+
# 发布(直接发布源文件,无需构建)
|
|
167
|
+
npm publish
|
|
142
168
|
```
|
|
143
169
|
|
|
144
170
|
## 许可证
|