icarys-fc-vant 1.0.16 → 1.0.18

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.
Files changed (115) hide show
  1. package/README.md +123 -97
  2. package/dist/index.js +7589 -45
  3. package/dist/index.min.js +7 -0
  4. package/dist/index.min.js.map +1 -0
  5. package/package.json +54 -29
  6. package/src/components/common/subform/LICENSE +21 -0
  7. package/src/components/common/subform/README.md +6 -0
  8. package/src/components/common/wangeditor/LICENSE +21 -0
  9. package/src/components/common/wangeditor/README.md +14 -0
  10. package/src/core/LICENSE +21 -0
  11. package/src/core/README.md +120 -0
  12. package/src/index.js +5 -0
  13. package/src/utils/LICENSE +21 -0
  14. package/src/utils/README.md +24 -0
  15. package/src/vant/LICENSE +21 -0
  16. package/src/vant/examples/App.vue +96 -0
  17. package/src/vant/public/index.html +14 -0
  18. package/src/vant/src/components/icon/IconWarning.vue +12 -0
  19. package/dist/icarys-fc-vant.umd.js +0 -17
  20. package/dist/index.esm.js +0 -39
  21. package/dist/vant/types/index.d.ts +0 -27
  22. /package/{dist → src}/components/common/subform/package.json +0 -0
  23. /package/{dist → src}/components/common/subform/src/component.jsx +0 -0
  24. /package/{dist → src}/components/common/subform/src/index.js +0 -0
  25. /package/{dist → src}/components/common/wangeditor/package-lock.json +0 -0
  26. /package/{dist → src}/components/common/wangeditor/package.json +0 -0
  27. /package/{dist → src}/components/common/wangeditor/src/component.jsx +0 -0
  28. /package/{dist → src}/components/common/wangeditor/src/index.js +0 -0
  29. /package/{dist → src}/core/babel.config.js +0 -0
  30. /package/{dist → src}/core/bili.config.js +0 -0
  31. /package/{dist → src}/core/package-lock.json +0 -0
  32. /package/{dist → src}/core/package.json +0 -0
  33. /package/{dist → src}/core/src/components/formCreate.js +0 -0
  34. /package/{dist → src}/core/src/components/fragment.js +0 -0
  35. /package/{dist → src}/core/src/factory/context.js +0 -0
  36. /package/{dist → src}/core/src/factory/creator.js +0 -0
  37. /package/{dist → src}/core/src/factory/maker.js +0 -0
  38. /package/{dist → src}/core/src/factory/manager.js +0 -0
  39. /package/{dist → src}/core/src/factory/node.js +0 -0
  40. /package/{dist → src}/core/src/factory/parser.js +0 -0
  41. /package/{dist → src}/core/src/frame/api.js +0 -0
  42. /package/{dist → src}/core/src/frame/attrs.js +0 -0
  43. /package/{dist → src}/core/src/frame/dataDriver.js +0 -0
  44. /package/{dist → src}/core/src/frame/fetch.js +0 -0
  45. /package/{dist → src}/core/src/frame/index.js +0 -0
  46. /package/{dist → src}/core/src/frame/language.js +0 -0
  47. /package/{dist → src}/core/src/frame/provider.js +0 -0
  48. /package/{dist → src}/core/src/frame/util.js +0 -0
  49. /package/{dist → src}/core/src/handler/context.js +0 -0
  50. /package/{dist → src}/core/src/handler/effect.js +0 -0
  51. /package/{dist → src}/core/src/handler/index.js +0 -0
  52. /package/{dist → src}/core/src/handler/inject.js +0 -0
  53. /package/{dist → src}/core/src/handler/input.js +0 -0
  54. /package/{dist → src}/core/src/handler/lifecycle.js +0 -0
  55. /package/{dist → src}/core/src/handler/loader.js +0 -0
  56. /package/{dist → src}/core/src/handler/page.js +0 -0
  57. /package/{dist → src}/core/src/handler/render.js +0 -0
  58. /package/{dist → src}/core/src/index.js +0 -0
  59. /package/{dist → src}/core/src/parser/html.js +0 -0
  60. /package/{dist → src}/core/src/render/cache.js +0 -0
  61. /package/{dist → src}/core/src/render/index.js +0 -0
  62. /package/{dist → src}/core/src/render/render.js +0 -0
  63. /package/{dist → src}/core/types/index.d.ts +0 -0
  64. /package/{dist → src}/utils/lib/console.js +0 -0
  65. /package/{dist → src}/utils/lib/debounce.js +0 -0
  66. /package/{dist → src}/utils/lib/deepextend.js +0 -0
  67. /package/{dist → src}/utils/lib/deepset.js +0 -0
  68. /package/{dist → src}/utils/lib/extend.js +0 -0
  69. /package/{dist → src}/utils/lib/index.js +0 -0
  70. /package/{dist → src}/utils/lib/json.js +0 -0
  71. /package/{dist → src}/utils/lib/mergeprops.js +0 -0
  72. /package/{dist → src}/utils/lib/mitt.js +0 -0
  73. /package/{dist → src}/utils/lib/modify.js +0 -0
  74. /package/{dist → src}/utils/lib/slot.js +0 -0
  75. /package/{dist → src}/utils/lib/toarray.js +0 -0
  76. /package/{dist → src}/utils/lib/tocase.js +0 -0
  77. /package/{dist → src}/utils/lib/todate.js +0 -0
  78. /package/{dist → src}/utils/lib/toline.js +0 -0
  79. /package/{dist → src}/utils/lib/topromise.js +0 -0
  80. /package/{dist → src}/utils/lib/tostring.js +0 -0
  81. /package/{dist → src}/utils/lib/type.js +0 -0
  82. /package/{dist → src}/utils/lib/unique.js +0 -0
  83. /package/{dist → src}/utils/package.json +0 -0
  84. /package/{dist → src}/vant/auto-import.d.ts +0 -0
  85. /package/{dist → src}/vant/auto-import.js +0 -0
  86. /package/{dist → src}/vant/babel.config.js +0 -0
  87. /package/{dist → src}/vant/bili.config.js +0 -0
  88. /package/{dist → src}/vant/examples/main.js +0 -0
  89. /package/{dist → src}/vant/examples/rule.js +0 -0
  90. /package/{dist → src}/vant/package.json +0 -0
  91. /package/{dist → src}/vant/src/components/calendar.jsx +0 -0
  92. /package/{dist → src}/vant/src/components/cascader.jsx +0 -0
  93. /package/{dist → src}/vant/src/components/checkbox.jsx +0 -0
  94. /package/{dist → src}/vant/src/components/datePicker.jsx +0 -0
  95. /package/{dist → src}/vant/src/components/group.jsx +0 -0
  96. /package/{dist → src}/vant/src/components/index.js +0 -0
  97. /package/{dist → src}/vant/src/components/radio.jsx +0 -0
  98. /package/{dist → src}/vant/src/components/select.jsx +0 -0
  99. /package/{dist → src}/vant/src/components/timePicker.jsx +0 -0
  100. /package/{dist → src}/vant/src/components/uploader.jsx +0 -0
  101. /package/{dist → src}/vant/src/core/alias.js +0 -0
  102. /package/{dist → src}/vant/src/core/api.js +0 -0
  103. /package/{dist → src}/vant/src/core/config.js +0 -0
  104. /package/{dist → src}/vant/src/core/index.js +0 -0
  105. /package/{dist → src}/vant/src/core/manager.js +0 -0
  106. /package/{dist → src}/vant/src/core/provider.js +0 -0
  107. /package/{dist → src}/vant/src/core/utils.js +0 -0
  108. /package/{dist → src}/vant/src/index.js +0 -0
  109. /package/{dist → src}/vant/src/parsers/hidden.js +0 -0
  110. /package/{dist → src}/vant/src/parsers/index.js +0 -0
  111. /package/{dist → src}/vant/src/parsers/row.js +0 -0
  112. /package/{dist → src}/vant/src/style/index.css +0 -0
  113. /package/{dist → src}/vant/types/config.d.ts +0 -0
  114. /package/{dist → src/vant/types}/index.d.ts +0 -0
  115. /package/{dist → src}/vant/vue.config.js +0 -0
package/README.md CHANGED
@@ -1,144 +1,170 @@
1
- # icarys-fc-vant
1
+ # @icarys/fc-vant
2
2
 
3
- 基于 FormCreate 和 Vant 的低代码表单生成器
3
+ 基于 FormCreate 和 Vant 的移动端低代码表单组件库
4
4
 
5
- ## 安装
5
+ ## 特性
6
6
 
7
- ```bash
8
- npm install icarys-fc-vant
9
- ```
7
+ - 🚀 基于 Vue 3 + Vant 4
8
+ - 📱 专为移动端优化
9
+ - 🎯 通过 JSON 配置生成表单
10
+ - 🔧 支持动态渲染、数据收集、验证和提交
11
+ - 📦 开箱即用,简单易集成
10
12
 
11
- ## 使用方式
12
-
13
- ### 1. 推荐使用方式(完整功能)
13
+ ## 安装
14
14
 
15
- 由于复杂的JSX组件依赖,推荐直接使用官方包:
15
+ ```bash
16
+ # 安装组件库
17
+ npm install @icarys/fc-vant
16
18
 
17
- ```javascript
18
- import formCreate from '@form-create/vant'
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
- ```javascript
26
- // CommonJS
27
- const { parseJson, toJson, toArray } = require('icarys-fc-vant');
26
+ ### 基础用法
28
27
 
29
- // ESM
30
- import { parseJson, toJson, toArray } from 'icarys-fc-vant';
31
- ```
28
+ #### 方法1:在模板中使用组件
32
29
 
33
- ### 3. 基础API使用
30
+ #### 导入使用
34
31
 
35
32
  ```javascript
36
- // 获取FormCreate实例
37
- import { formCreateMobile, createFormCreate } from 'icarys-fc-vant';
38
-
39
- const fc = createFormCreate();
40
- // fc.component('custom-component', CustomComponent);
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
- ## API 参考
44
-
45
- ### FormCreate API
46
-
47
- #### formCreateMobile
48
- FormCreate移动端实例(基础实现)
49
-
50
- #### createFormCreate()
51
- 创建FormCreate工厂函数
73
+ #### 使用工具方法
52
74
 
53
75
  ```javascript
54
- const fc = createFormCreate();
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
- #### parseJson(str)
62
- 解析JSON字符串为对象
81
+ // 序列化对象为JSON
82
+ const jsonString = formCreate.jsonStringify(rules)
63
83
 
64
- ```javascript
65
- const option = parseJson('{"title": "表单标题"}');
66
- // {title: "表单标题"}
84
+ // 创建表单
85
+ const $f = formCreate.create(rules)
67
86
  ```
68
87
 
69
- #### toJson(obj)
70
- 将对象转换为JSON字符串
88
+ ### 在 Vue 组件中使用
71
89
 
72
- ```javascript
73
- const jsonString = toJson({title: "表单标题"});
74
- // '{"title":"表单标题"}'
75
- ```
76
-
77
- #### toArray(val)
78
- 将值转换为数组
90
+ ```vue
91
+ <template>
92
+ <div>
93
+ <div id="form-container"></div>
94
+ </div>
95
+ </template>
79
96
 
80
- ```javascript
81
- toArray('test'); // ['test']
82
- toArray(['a', 'b']); // ['a', 'b']
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
- #### toString(val)
86
- 将值转换为字符串
120
+ ## API
87
121
 
88
- ```javascript
89
- toString(null); // ''
90
- toString(123); // '123'
91
- ```
122
+ ### formCreateMobile(rule, options)
92
123
 
93
- #### extend(target, ...sources)
94
- 对象扩展函数
124
+ 创建表单实例
95
125
 
96
- ```javascript
97
- extend({}, {a: 1}, {b: 2}); // {a: 1, b: 2}
98
- ```
126
+ - `rule`: 表单配置规则数组
127
+ - `options`: 配置选项
99
128
 
100
- ## 在Vue中使用
129
+ 返回表单实例对象,包含以下方法:
101
130
 
102
- ```vue
103
- <template>
104
- <!-- 由于JSX复杂性,推荐使用 @form-create/vant -->
105
- <div>使用 @form-create/vant 获取完整功能</div>
106
- </template>
131
+ - `mount(selector)`: 挂载到DOM元素
132
+ - `destroy()`: 销毁表单实例
133
+ - `resetFields()`: 重置表单
134
+ - `validate()`: 验证表单
135
+ - `getValue()`: 获取表单值
136
+ - `setValue(data)`: 设置表单值
107
137
 
108
- <script setup>
109
- import { parseJson } from 'icarys-fc-vant'
138
+ ## 支持的组件类型
110
139
 
111
- // 仍然可以使用工具函数
112
- const option = parseJson('{"title": "表单标题"}')
113
- </script>
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.9+
120
-
121
- ## 注意事项
154
+ - Vue ^3.1.0
155
+ - Vant ^4.0.0
122
156
 
123
- 1. **JSX组件支持**: 由于JSX组件的复杂依赖关系,这个包提供了基础的FormCreate API,但完整的表单组件功能需要使用 `@form-create/vant`
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 build
163
+ # 开发模式
164
+ npm run dev
140
165
 
141
- # 构建产物在 dist/ 目录
166
+ # 发布(直接发布源文件,无需构建)
167
+ npm publish
142
168
  ```
143
169
 
144
170
  ## 许可证