@bdsoft/element 1.1.9 → 1.1.12

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 (244) hide show
  1. package/dist/BdElement.js +23111 -0
  2. package/index.js +11 -11
  3. package/package.json +2 -1
  4. package/global/index.ts +0 -6
  5. package/global/register-properties.ts +0 -10
  6. package/index.html +0 -13
  7. package/package-form/core/components/formCreate.js +0 -274
  8. package/package-form/core/components/fragment.js +0 -12
  9. package/package-form/core/factory/context.js +0 -257
  10. package/package-form/core/factory/creator.js +0 -63
  11. package/package-form/core/factory/maker.js +0 -17
  12. package/package-form/core/factory/manager.js +0 -79
  13. package/package-form/core/factory/node.js +0 -85
  14. package/package-form/core/factory/parser.js +0 -28
  15. package/package-form/core/frame/api.js +0 -599
  16. package/package-form/core/frame/attrs.js +0 -12
  17. package/package-form/core/frame/dataDriver.js +0 -76
  18. package/package-form/core/frame/fetch.js +0 -119
  19. package/package-form/core/frame/formCreate.js +0 -274
  20. package/package-form/core/frame/index.js +0 -760
  21. package/package-form/core/frame/provider.js +0 -288
  22. package/package-form/core/frame/util.js +0 -274
  23. package/package-form/core/handler/context.js +0 -380
  24. package/package-form/core/handler/effect.js +0 -122
  25. package/package-form/core/handler/index.js +0 -111
  26. package/package-form/core/handler/inject.js +0 -145
  27. package/package-form/core/handler/input.js +0 -197
  28. package/package-form/core/handler/lifecycle.js +0 -43
  29. package/package-form/core/handler/loader.js +0 -373
  30. package/package-form/core/handler/page.js +0 -46
  31. package/package-form/core/handler/render.js +0 -29
  32. package/package-form/core/index.js +0 -12
  33. package/package-form/core/package.json +0 -15
  34. package/package-form/core/parser/html.js +0 -17
  35. package/package-form/core/render/cache.js +0 -47
  36. package/package-form/core/render/index.js +0 -31
  37. package/package-form/core/render/render.js +0 -393
  38. package/package-form/element-form/components/checkbox/package.json +0 -17
  39. package/package-form/element-form/components/checkbox/src/component.jsx +0 -110
  40. package/package-form/element-form/components/checkbox/src/index.js +0 -3
  41. package/package-form/element-form/components/frame/package.json +0 -17
  42. package/package-form/element-form/components/frame/src/IconCircleClose.vue +0 -14
  43. package/package-form/element-form/components/frame/src/IconDelete.vue +0 -12
  44. package/package-form/element-form/components/frame/src/IconDocument.vue +0 -12
  45. package/package-form/element-form/components/frame/src/IconFolderOpened.vue +0 -12
  46. package/package-form/element-form/components/frame/src/IconView.vue +0 -12
  47. package/package-form/element-form/components/frame/src/component.jsx +0 -349
  48. package/package-form/element-form/components/frame/src/index.js +0 -3
  49. package/package-form/element-form/components/frame/src/style.css +0 -66
  50. package/package-form/element-form/components/group/package.json +0 -17
  51. package/package-form/element-form/components/group/src/component.jsx +0 -314
  52. package/package-form/element-form/components/group/src/index.js +0 -3
  53. package/package-form/element-form/components/group/src/style.css +0 -125
  54. package/package-form/element-form/components/index.js +0 -22
  55. package/package-form/element-form/components/radio/package.json +0 -17
  56. package/package-form/element-form/components/radio/src/component.jsx +0 -101
  57. package/package-form/element-form/components/radio/src/index.js +0 -3
  58. package/package-form/element-form/components/select/package.json +0 -17
  59. package/package-form/element-form/components/select/src/component.jsx +0 -52
  60. package/package-form/element-form/components/select/src/index.js +0 -3
  61. package/package-form/element-form/components/subform/package.json +0 -14
  62. package/package-form/element-form/components/subform/src/component.jsx +0 -76
  63. package/package-form/element-form/components/subform/src/index.js +0 -3
  64. package/package-form/element-form/components/tree/package.json +0 -17
  65. package/package-form/element-form/components/tree/src/component.jsx +0 -62
  66. package/package-form/element-form/components/tree/src/index.js +0 -3
  67. package/package-form/element-form/components/upload/package.json +0 -17
  68. package/package-form/element-form/components/upload/src/IconUpload.vue +0 -12
  69. package/package-form/element-form/components/upload/src/component.jsx +0 -129
  70. package/package-form/element-form/components/upload/src/index.js +0 -3
  71. package/package-form/element-form/components/upload/src/style.css +0 -11
  72. package/package-form/element-form/index.js +0 -8
  73. package/package-form/element-form/package.json +0 -16
  74. package/package-form/element-form/src/components/icon/IconWarning.vue +0 -12
  75. package/package-form/element-form/src/components/index.js +0 -22
  76. package/package-form/element-form/src/core/alias.js +0 -34
  77. package/package-form/element-form/src/core/api.js +0 -208
  78. package/package-form/element-form/src/core/config.js +0 -62
  79. package/package-form/element-form/src/core/index.js +0 -60
  80. package/package-form/element-form/src/core/maker.js +0 -76
  81. package/package-form/element-form/src/core/manager.js +0 -315
  82. package/package-form/element-form/src/core/provider.js +0 -79
  83. package/package-form/element-form/src/parsers/datePicker.js +0 -31
  84. package/package-form/element-form/src/parsers/hidden.js +0 -12
  85. package/package-form/element-form/src/parsers/index.js +0 -17
  86. package/package-form/element-form/src/parsers/input.js +0 -21
  87. package/package-form/element-form/src/parsers/row.js +0 -10
  88. package/package-form/element-form/src/parsers/select.js +0 -15
  89. package/package-form/element-form/src/parsers/slider.js +0 -21
  90. package/package-form/element-form/src/parsers/timePicker.js +0 -17
  91. package/package-form/element-form/src/style/index.css +0 -52
  92. package/src/App.vue +0 -28
  93. package/src/assets/css/element.scss +0 -196
  94. package/src/assets/css/layout.scss +0 -215
  95. package/src/assets/css/tailwind.scss +0 -67
  96. package/src/assets/images/banner.gif +0 -0
  97. package/src/assets/images/banner.png +0 -0
  98. package/src/assets/images/bg1.svg +0 -22
  99. package/src/assets/images/bg2.png +0 -0
  100. package/src/assets/images/ff.png +0 -0
  101. package/src/assets/images/home-file1.png +0 -0
  102. package/src/assets/images/ky.png +0 -0
  103. package/src/assets/images/menu/add.png +0 -0
  104. package/src/assets/images/menu/del.png +0 -0
  105. package/src/assets/images/menu/down.png +0 -0
  106. package/src/assets/images/menu/dr.png +0 -0
  107. package/src/assets/images/menu/edit.png +0 -0
  108. package/src/assets/images/menu/kx.png +0 -0
  109. package/src/assets/images/menu/mb.png +0 -0
  110. package/src/assets/images/menu/pz.png +0 -0
  111. package/src/assets/images/menu/save.png +0 -0
  112. package/src/assets/images/menu/sj.png +0 -0
  113. package/src/assets/images/menu/sjk.png +0 -0
  114. package/src/assets/images/menu/up.png +0 -0
  115. package/src/assets/images/po-i.png +0 -0
  116. package/src/assets/images/po1-i1.png +0 -0
  117. package/src/assets/images/po1-i2.png +0 -0
  118. package/src/assets/images/po1-i3.png +0 -0
  119. package/src/assets/images/po1-i4.png +0 -0
  120. package/src/assets/images/po1-i5.png +0 -0
  121. package/src/assets/images/po1-i6.png +0 -0
  122. package/src/assets/images/po1-i7.png +0 -0
  123. package/src/assets/images/po1-i8.png +0 -0
  124. package/src/assets/images/po2-i1.png +0 -0
  125. package/src/assets/images/po2-i2.png +0 -0
  126. package/src/assets/images/po3-i1.png +0 -0
  127. package/src/assets/images/po4-i1.png +0 -0
  128. package/src/assets/images/po5-i1.png +0 -0
  129. package/src/assets/images/po6-i1.png +0 -0
  130. package/src/assets/images/po6-i2.png +0 -0
  131. package/src/assets/images/po7-i1.png +0 -0
  132. package/src/assets/images/tj1.png +0 -0
  133. package/src/assets/images/tj2.png +0 -0
  134. package/src/assets/images/tj3.png +0 -0
  135. package/src/components/3dcloudwords/index.js +0 -346
  136. package/src/components/3dcloudwords/index.vue +0 -99
  137. package/src/components/3dcloudwords/readme.md +0 -66
  138. package/src/components/badge/index.js +0 -167
  139. package/src/components/badge/index.scss +0 -166
  140. package/src/components/badge/index.vue +0 -98
  141. package/src/components/badge/readme.md +0 -18
  142. package/src/components/basic/Finish.vue +0 -107
  143. package/src/components/basic/button.vue +0 -19
  144. package/src/components/basic/readme.md +0 -7
  145. package/src/components/button/index.vue +0 -48
  146. package/src/components/button/readme.md +0 -62
  147. package/src/components/carousel/index.vue +0 -104
  148. package/src/components/carousel/readme.md +0 -12
  149. package/src/components/chartconfig/index.vue +0 -141
  150. package/src/components/chartconfig/readme.md +0 -25
  151. package/src/components/contextMenu/hookContxtMenu.js +0 -41
  152. package/src/components/contextMenu/index.vue +0 -245
  153. package/src/components/contextMenu/readme.md +0 -55
  154. package/src/components/contextMenu/useElementBounding.js +0 -40
  155. package/src/components/countup/countUp.js +0 -196
  156. package/src/components/countup/index.vue +0 -114
  157. package/src/components/countup/readme.md +0 -9
  158. package/src/components/empty/assets/build.png +0 -0
  159. package/src/components/empty/assets/emptybg.gif +0 -0
  160. package/src/components/empty/assets/emptybg.png +0 -0
  161. package/src/components/empty/assets/emptybg2.jpg +0 -0
  162. package/src/components/empty/assets/emptybg3.jpg +0 -0
  163. package/src/components/empty/assets/wuxiao.png +0 -0
  164. package/src/components/empty/assets/wuxiao.webp +0 -0
  165. package/src/components/empty/building.vue +0 -117
  166. package/src/components/empty/empty.vue +0 -120
  167. package/src/components/empty/index.js +0 -12
  168. package/src/components/empty/invalid.vue +0 -56
  169. package/src/components/error/Error.vue +0 -79
  170. package/src/components/error/readme.md +0 -20
  171. package/src/components/form/Form.vue +0 -84
  172. package/src/components/form/FormItem.vue +0 -143
  173. package/src/components/form/data.js +0 -52
  174. package/src/components/form/readme.md +0 -69
  175. package/src/components/layout/banner.vue +0 -412
  176. package/src/components/layout/bar.vue +0 -43
  177. package/src/components/layout/layout1.vue +0 -60
  178. package/src/components/layout/layout2.vue +0 -134
  179. package/src/components/layout/layout3.vue +0 -107
  180. package/src/components/layout/layout4.vue +0 -66
  181. package/src/components/layout/nav.vue +0 -333
  182. package/src/components/layout/readme.md +0 -61
  183. package/src/components/loading/index.vue +0 -122
  184. package/src/components/loading/readme.md +0 -6
  185. package/src/components/notice/NoticeList.vue +0 -198
  186. package/src/components/notice/NoticeListPaging.vue +0 -281
  187. package/src/components/notice/NoticeView.vue +0 -92
  188. package/src/components/notice/readme.md +0 -1
  189. package/src/components/pagination/index.vue +0 -100
  190. package/src/components/pagination/readme.md +0 -19
  191. package/src/components/pagination/scroll-to.js +0 -51
  192. package/src/components/progress/bar.vue +0 -72
  193. package/src/components/progress/progress.vue +0 -58
  194. package/src/components/screenfull/index.js +0 -3
  195. package/src/components/screenfull/index.vue +0 -65
  196. package/src/components/screenfull/package.json +0 -15
  197. package/src/components/screenfull/readme.md +0 -6
  198. package/src/components/statisticalCount/index.vue +0 -80
  199. package/src/components/statisticalCount/readme.md +0 -21
  200. package/src/components/username/index.vue +0 -79
  201. package/src/components/username/readme.md +0 -22
  202. package/src/components/username//346/225/210/346/236/234/345/233/276.png +0 -0
  203. package/src/index.js +0 -88
  204. package/src/utils/index.js +0 -32
  205. package/src/xm_components/HeadSearch/hook/hookSearch.js +0 -96
  206. package/src/xm_components/HeadSearch/index.vue +0 -206
  207. package/src/xm_components/HeadSearch/readme.md +0 -12
  208. package/src/xm_components/HeadSearch//346/220/234/347/264/242/345/210/227/350/241/250.png +0 -0
  209. package/src/xm_components/Milestone/index.vue +0 -213
  210. package/src/xm_components/Milestone/readme.md +0 -15
  211. package/src/xm_components/MultiStatisticalCard/image.png +0 -0
  212. package/src/xm_components/MultiStatisticalCard/index.vue +0 -114
  213. package/src/xm_components/MultiStatisticalCard/readme.md +0 -29
  214. package/src/xm_components/StatisticalCard/image.png +0 -0
  215. package/src/xm_components/StatisticalCard/index.vue +0 -196
  216. package/src/xm_components/StatisticalCard/readme.md +0 -41
  217. package/src/xm_components/readme.md +0 -1
  218. package/utils/coms/load.jsx +0 -10
  219. package/utils/func.js +0 -32
  220. package/utils/hookDialog.js +0 -38
  221. package/utils/hookPage.js +0 -49
  222. package/utils/index.js +0 -5
  223. package/utils/lib/console.js +0 -39
  224. package/utils/lib/debounce.js +0 -19
  225. package/utils/lib/deepextend.js +0 -51
  226. package/utils/lib/deepset.js +0 -14
  227. package/utils/lib/extend.js +0 -28
  228. package/utils/lib/index.js +0 -13
  229. package/utils/lib/json.js +0 -90
  230. package/utils/lib/mergeprops.js +0 -62
  231. package/utils/lib/mitt.js +0 -43
  232. package/utils/lib/modify.js +0 -8
  233. package/utils/lib/slot.js +0 -19
  234. package/utils/lib/toarray.js +0 -5
  235. package/utils/lib/tocase.js +0 -11
  236. package/utils/lib/todate.js +0 -10
  237. package/utils/lib/toline.js +0 -10
  238. package/utils/lib/tostring.js +0 -7
  239. package/utils/lib/type.js +0 -45
  240. package/utils/lib/unique.js +0 -6
  241. package/utils/message.js +0 -164
  242. package/utils/package.json +0 -16
  243. package/utils/type.js +0 -45
  244. package/vite.config.js +0 -56
@@ -1,599 +0,0 @@
1
- import {byCtx, invoke, mergeRule, parseFn, toJson} from './util';
2
- import {$set} from '@bdsoft-element/utils/lib/modify';
3
- import {deepCopy} from '@bdsoft-element/utils/lib/deepextend';
4
- import is, {hasProperty} from '@bdsoft-element/utils/lib/type';
5
- import extend from '@bdsoft-element/utils/lib/extend';
6
- import {format} from '@bdsoft-element/utils/lib/console';
7
- import {asyncFetch} from './fetch';
8
- import {nextTick} from 'vue';
9
-
10
-
11
- function copy(value) {
12
- return deepCopy(value);
13
- }
14
-
15
- export default function Api(h) {
16
-
17
- function tidyFields(fields) {
18
- if (is.Undef(fields))
19
- fields = h.fields();
20
- else if (!Array.isArray(fields))
21
- fields = [fields];
22
- return fields;
23
- }
24
-
25
- function props(fields, key, val) {
26
- tidyFields(fields).forEach(field => {
27
- h.getCtxs(field).forEach(ctx => {
28
- $set(ctx.rule, key, val);
29
- h.$render.clearCache(ctx);
30
- });
31
- })
32
- }
33
-
34
- function allSubForm() {
35
- const subs = h.subForm;
36
- return Object.keys(subs).reduce((initial, k) => {
37
- const sub = subs[k];
38
- if (!sub) return initial;
39
- if (Array.isArray(sub))
40
- initial.push(...sub);
41
- else
42
- initial.push(sub);
43
- return initial;
44
- }, []);
45
- }
46
-
47
- const api = {
48
- get config() {
49
- return h.options
50
- },
51
- set config(val) {
52
- h.fc.options.value = val;
53
- },
54
- get options() {
55
- return h.options
56
- },
57
- set options(val) {
58
- h.fc.options.value = val;
59
- },
60
- get form() {
61
- return h.form
62
- },
63
- get rule() {
64
- return h.rules
65
- },
66
- get parent() {
67
- return h.vm.setupState.parent && h.vm.setupState.parent.setupState.fapi
68
- },
69
- get top() {
70
- if (api.parent) {
71
- return api.parent.top;
72
- }
73
- return api;
74
- },
75
- get children() {
76
- return allSubForm();
77
- },
78
- get siblings() {
79
- const inject = h.vm.setupState.getGroupInject();
80
- if (inject) {
81
- const subForm = inject.getSubForm();
82
- if (Array.isArray(subForm)) {
83
- return [...subForm];
84
- }
85
- }
86
- return undefined;
87
- },
88
- get index() {
89
- const siblings = api.siblings;
90
- if (siblings) {
91
- const idx = siblings.indexOf(api);
92
- return idx > -1 ? idx : undefined;
93
- }
94
- return undefined;
95
- },
96
- formData(fields) {
97
- if (fields == null) {
98
- const data = {};
99
- Object.keys(h.form).forEach(k => {
100
- if (h.ignoreFields.indexOf(k) === -1) {
101
- data[k] = copy(h.form[k]);
102
- }
103
- });
104
- return data;
105
- } else {
106
- return tidyFields(fields).reduce((initial, id) => {
107
- initial[id] = api.getValue(id);
108
- return initial;
109
- }, {});
110
- }
111
- },
112
- getValue(field) {
113
- const ctx = h.getFieldCtx(field);
114
- if (!ctx) {
115
- if (h.options.appendValue !== false && hasProperty(h.appendData, field)) {
116
- return copy(h.appendData[field]);
117
- }
118
- return undefined;
119
- }
120
- return copy(ctx.rule.value);
121
- },
122
- coverValue(formData) {
123
- const data = {...(formData || {})};
124
- h.deferSyncValue(() => {
125
- h.appendData = {};
126
- api.fields().forEach(key => {
127
- const ctxs = h.fieldCtx[key];
128
- if (ctxs) {
129
- const flag = hasProperty(formData, key);
130
- ctxs.forEach(ctx => {
131
- ctx.rule.value = flag ? formData[key] : undefined;
132
- })
133
- delete data[key];
134
- }
135
- });
136
- extend(h.appendData, data);
137
- }, true)
138
- },
139
- setValue(field) {
140
- let formData = field;
141
- if (arguments.length >= 2)
142
- formData = {[field]: arguments[1]};
143
- h.deferSyncValue(() => {
144
- Object.keys(formData).forEach(key => {
145
- const ctxs = h.fieldCtx[key];
146
- if (!ctxs) return h.appendData[key] = formData[key];
147
- ctxs.forEach(ctx => {
148
- ctx.rule.value = formData[key];
149
- });
150
- });
151
- }, true)
152
- },
153
- removeField(field) {
154
- const ctx = h.getCtx(field);
155
- h.deferSyncValue(() => {
156
- h.getCtxs(field).forEach(ctx => {
157
- ctx.rm();
158
- });
159
- }, true);
160
- return ctx ? ctx.origin : undefined;
161
- },
162
- removeRule(rule) {
163
- const ctx = rule && byCtx(rule);
164
- if (!ctx) return;
165
- ctx.rm();
166
- return ctx.origin;
167
- },
168
- fields: () => h.fields(),
169
- append: (rule, after, child) => {
170
- let index = h.sort.length - 1, rules;
171
- const ctx = h.getCtx(after);
172
-
173
- if (ctx) {
174
- if (child) {
175
- rules = ctx.getPending('children', ctx.rule.children);
176
- if (!Array.isArray(rules)) return;
177
- index = ctx.rule.children.length - 1;
178
- } else {
179
- index = ctx.root.indexOf(ctx.origin);
180
- rules = ctx.root;
181
- }
182
- } else rules = h.rules;
183
- rules.splice(index + 1, 0, rule);
184
- },
185
- prepend: (rule, after, child) => {
186
- let index = 0, rules;
187
- const ctx = h.getCtx(after);
188
-
189
- if (ctx) {
190
- if (child) {
191
- rules = ctx.getPending('children', ctx.rule.children);
192
- if (!Array.isArray(rules)) return;
193
- } else {
194
- index = ctx.root.indexOf(ctx.origin);
195
- rules = ctx.root;
196
- }
197
- } else rules = h.rules;
198
- rules.splice(index, 0, rule);
199
- },
200
- hidden(state, fields) {
201
- props(fields, 'hidden', !!state);
202
- h.refresh();
203
- },
204
- hiddenStatus(id) {
205
- const ctx = h.getCtx(id);
206
- if (!ctx) return;
207
- return !!ctx.rule.hidden;
208
- },
209
- display(state, fields) {
210
- props(fields, 'display', !!state);
211
- h.refresh();
212
- },
213
- displayStatus(id) {
214
- const ctx = h.getCtx(id);
215
- if (!ctx) return;
216
- return !!ctx.rule.display;
217
- },
218
- disabled(disabled, fields) {
219
- tidyFields(fields).forEach((field) => {
220
- h.getCtxs(field).forEach(ctx => {
221
- $set(ctx.rule.props, 'disabled', !!disabled);
222
- });
223
- });
224
- h.refresh();
225
- },
226
- all(origin) {
227
- return Object.keys(h.ctxs).map(k => {
228
- const ctx = h.ctxs[k];
229
- return origin ? ctx.origin : ctx.rule;
230
- });
231
- },
232
- model(origin) {
233
- return h.fields().reduce((initial, key) => {
234
- const ctx = h.fieldCtx[key][0];
235
- initial[key] = origin ? ctx.origin : ctx.rule;
236
- return initial;
237
- }, {});
238
- },
239
- component(origin) {
240
- return Object.keys(h.nameCtx).reduce((initial, key) => {
241
- const ctx = h.nameCtx[key].map(ctx => origin ? ctx.origin : ctx.rule);
242
- initial[key] = ctx.length === 1 ? ctx[0] : ctx;
243
- return initial;
244
- }, {});
245
- },
246
- bind() {
247
- return api.form;
248
- },
249
- reload: (rules) => {
250
- h.reloadRule(rules)
251
- },
252
- updateOptions(options) {
253
- h.fc.updateOptions(options);
254
- api.refresh();
255
- },
256
- onSubmit(fn) {
257
- api.updateOptions({onSubmit: fn});
258
- },
259
- sync: (field) => {
260
- if (Array.isArray(field)) {
261
- field.forEach(v => api.sync(v));
262
- return;
263
- }
264
- let ctxs = is.Object(field) ? byCtx(field) : h.getCtxs(field);
265
- if (!ctxs) {
266
- return;
267
- }
268
- ctxs = Array.isArray(ctxs) ? ctxs : [ctxs];
269
- ctxs.forEach(ctx => {
270
- if (!ctx.deleted) {
271
- const subForm = h.subForm[ctx.id];
272
- if (subForm) {
273
- if (Array.isArray(subForm)) {
274
- subForm.forEach(form => {
275
- form.refresh();
276
- })
277
- } else if (subForm) {
278
- subForm.refresh();
279
- }
280
- }
281
- //ctx.updateKey(true);
282
- h.$render.clearCache(ctx);
283
- }
284
- });
285
- h.refresh();
286
- },
287
- refresh: () => {
288
- allSubForm().forEach(sub => {
289
- sub.refresh();
290
- });
291
- h.$render.clearCacheAll();
292
- h.refresh();
293
- },
294
- refreshOptions() {
295
- h.$manager.updateOptions(h.options);
296
- api.refresh();
297
- },
298
- hideForm: (hide) => {
299
- h.vm.setupState.isShow = !hide;
300
- },
301
- changeStatus: () => {
302
- return h.changeStatus;
303
- },
304
- clearChangeStatus: () => {
305
- h.changeStatus = false;
306
- },
307
- updateRule(id, rule) {
308
- h.getCtxs(id).forEach(ctx => {
309
- extend(ctx.rule, rule);
310
- });
311
- },
312
- updateRules(rules) {
313
- Object.keys(rules).forEach(id => {
314
- api.updateRule(id, rules[id]);
315
- })
316
- },
317
- mergeRule: (id, rule) => {
318
- h.getCtxs(id).forEach(ctx => {
319
- mergeRule(ctx.rule, rule);
320
- });
321
- },
322
- mergeRules(rules) {
323
- Object.keys(rules).forEach(id => {
324
- api.mergeRule(id, rules[id]);
325
- })
326
- },
327
- getRule: (id, origin) => {
328
- const ctx = h.getCtx(id);
329
- if (ctx) {
330
- return origin ? ctx.origin : ctx.rule;
331
- }
332
- },
333
- getRenderRule: (id) => {
334
- const ctx = h.getCtx(id);
335
- if (ctx) {
336
- return ctx.prop;
337
- }
338
- },
339
- getRefRule: (id) => {
340
- const ctxs = h.getCtxs(id);
341
- if (ctxs) {
342
- const rules = ctxs.map(ctx => {
343
- return ctx.rule;
344
- })
345
- return rules.length === 1 ? rules[0] : rules;
346
- }
347
- },
348
- setEffect(id, attr, value) {
349
- const ctx = h.getCtx(id);
350
- if (ctx && attr) {
351
- if (attr[0] === '$') {
352
- attr = attr.substr(1);
353
- }
354
- if (hasProperty(ctx.rule, '$' + attr)) {
355
- $set(ctx.rule, '$' + attr, value);
356
- }
357
- if (!hasProperty(ctx.rule, 'effect')) {
358
- ctx.rule.effect = {};
359
- }
360
- $set(ctx.rule.effect, attr, value);
361
- }
362
- },
363
- clearEffectData(id, attr) {
364
- const ctx = h.getCtx(id);
365
- if (ctx) {
366
- if (attr && attr[0] === '$') {
367
- attr = attr.substr(1);
368
- }
369
- ctx.clearEffectData(attr);
370
- api.sync(id);
371
- }
372
- },
373
- updateValidate(id, validate, merge) {
374
- if (merge) {
375
- api.mergeRule(id, {validate})
376
- } else {
377
- props(id, 'validate', validate);
378
- }
379
- },
380
- updateValidates(validates, merge) {
381
- Object.keys(validates).forEach(id => {
382
- api.updateValidate(id, validates[id], merge);
383
- })
384
- },
385
- refreshValidate() {
386
- api.refresh();
387
- },
388
- resetFields(fields) {
389
- tidyFields(fields).forEach(field => {
390
- h.getCtxs(field).forEach(ctx => {
391
- h.$render.clearCache(ctx);
392
- ctx.rule.value = copy(ctx.defaultValue);
393
- });
394
- });
395
- nextTick(() => {
396
- nextTick(() => {
397
- nextTick(() => {
398
- api.clearValidateState(fields);
399
- });
400
- });
401
- });
402
- if (fields == null) {
403
- is.Function(h.options.onReset) && invoke(() => h.options.onReset(api));
404
- h.vm.emit('reset', api);
405
- }
406
- },
407
- method(id, name) {
408
- const el = api.el(id);
409
- if (!el || !el[name])
410
- throw new Error(format('err', `${name} 方法不存在`));
411
- return (...args) => {
412
- return el[name](...args);
413
- }
414
- },
415
- exec(id, name, ...args) {
416
- return invoke(() => api.method(id, name)(...args));
417
- },
418
- toJson(space) {
419
- return toJson(api.rule, space);
420
- },
421
- trigger(id, event, ...args) {
422
- const el = api.el(id);
423
- el && el.$emit(event, ...args);
424
- },
425
- el(id) {
426
- const ctx = h.getCtx(id);
427
- if (ctx) return ctx.el || h.vm.refs[ctx.ref];
428
- },
429
- closeModal: (id) => {
430
- h.bus.$emit('fc:closeModal:' + id);
431
- },
432
- getSubForm(field) {
433
- const ctx = h.getCtx(field);
434
- return ctx ? h.subForm[ctx.id] : undefined;
435
- },
436
- getChildrenRuleList(id) {
437
- const flag = typeof id === 'object';
438
- const ctx = flag ? byCtx(id) : h.getCtx(id);
439
- const rule = ctx ? ctx.rule : (flag ? id : api.getRule(id));
440
- if (!rule) {
441
- return [];
442
- }
443
- const rules = [];
444
- const findRules = children => {
445
- children && children.forEach(item => {
446
- if (typeof item !== 'object') {
447
- return;
448
- }
449
- if (item.field) {
450
- rules.push(item);
451
- }
452
- rules.push(...api.getChildrenRuleList(item));
453
- });
454
- }
455
- findRules(ctx ? ctx.loadChildrenPending() : rule.children);
456
- return rules;
457
- },
458
- getParentRule(id) {
459
- const flag = typeof id === 'object';
460
- const ctx = flag ? byCtx(id) : h.getCtx(id);
461
- return ctx.parent.rule;
462
- },
463
- getParentSubRule(id) {
464
- const flag = typeof id === 'object';
465
- const ctx = flag ? byCtx(id) : h.getCtx(id);
466
- if (ctx) {
467
- const group = ctx.getParentGroup();
468
- if (group) {
469
- return group.rule;
470
- }
471
- }
472
- },
473
- getChildrenFormData(id) {
474
- const rules = api.getChildrenRuleList(id);
475
- return rules.reduce((formData, rule) => {
476
- formData[rule.field] = copy(rule.value);
477
- return formData;
478
- }, {});
479
- },
480
- setChildrenFormData(id, formData, cover) {
481
- const rules = api.getChildrenRuleList(id);
482
- h.deferSyncValue(() => {
483
- rules.forEach(rule => {
484
- if (hasProperty(formData, rule.field)) {
485
- rule.value = formData[rule.field];
486
- } else if (cover) {
487
- rule.value = undefined;
488
- }
489
- });
490
- });
491
- },
492
- getGlobalEvent(name) {
493
- let event = api.options.globalEvent[name];
494
- if (event) {
495
- if (typeof event === 'object') {
496
- event = event.handle;
497
- }
498
- return parseFn(event);
499
- }
500
- return undefined;
501
- },
502
- getGlobalData(name) {
503
- return new Promise((resolve, inject) => {
504
- let config = api.options.globalData[name];
505
- if (!config) {
506
- resolve(h.fc.loadData[name]);
507
- }
508
- if (config.type === 'fetch') {
509
- api.fetch(config).then(res => {
510
- resolve(res);
511
- }).catch(inject);
512
- } else {
513
- resolve(config.data);
514
- }
515
- });
516
- },
517
- nextTick(fn) {
518
- h.bus.$once('next-tick', fn);
519
- h.refresh();
520
- },
521
- nextRefresh(fn) {
522
- h.nextRefresh();
523
- fn && invoke(fn);
524
- },
525
- deferSyncValue(fn, sync) {
526
- h.deferSyncValue(fn, sync);
527
- },
528
- emit(name, ...args) {
529
- h.vm.emit(name, ...args);
530
- },
531
- bus: h.bus,
532
- fetch(opt) {
533
- return new Promise((resolve, reject) => {
534
- opt = deepCopy(opt);
535
- opt = h.loadFetchVar(opt);
536
- h.beforeFetch(opt).then(() => {
537
- return asyncFetch(opt, h.fc.create.fetch, api).then((res) => {
538
- invoke(() => opt.onSuccess && opt.onSuccess(res));
539
- resolve(res);
540
- }).catch((e) => {
541
- invoke(() => opt.onError && opt.onError(e));
542
- reject(e);
543
- });
544
- });
545
- });
546
- },
547
- watchFetch(opt, callback, error, beforeFetch) {
548
- return h.fc.watchLoadData((get, change) => {
549
- let _opt = deepCopy(opt);
550
- _opt = h.loadFetchVar(_opt, get);
551
- if (beforeFetch && beforeFetch(_opt, change) === false) {
552
- return;
553
- }
554
- h.beforeFetch(_opt).then(() => {
555
- return asyncFetch(_opt, h.fc.create.fetch, api).then(res => {
556
- invoke(() => _opt.onSuccess && _opt.onSuccess(res));
557
- callback && callback(res, change);
558
- }).catch(e => {
559
- invoke(() => _opt.onError && _opt.onError(e));
560
- error && error(e);
561
- });
562
- });
563
- }, opt.wait == null ? 1000 : opt.wait);
564
- },
565
- getData(id, def) {
566
- return h.fc.getLoadData(id, def);
567
- },
568
- watchData(fn) {
569
- return h.fc.watchLoadData((get, change) => {
570
- invoke(() => fn(get, change));
571
- })
572
- },
573
- setData(id, data, isGlobal) {
574
- return h.fc.setData(id, data, isGlobal);
575
- },
576
- refreshData(id) {
577
- return h.fc.refreshData(id);
578
- },
579
- t(id, params) {
580
- return h.fc.t(id, params);
581
- },
582
- getLocale() {
583
- return h.fc.getLocale();
584
- },
585
- helper: {
586
- tidyFields, props
587
- }
588
- };
589
-
590
- ['on', 'once', 'off'].forEach(n => {
591
- api[n] = function (...args) {
592
- h.bus[`$${n}`](...args);
593
- }
594
- });
595
-
596
- api.changeValue = api.changeField = api.setValue;
597
-
598
- return api;
599
- }
@@ -1,12 +0,0 @@
1
- import {functionalMerge, normalMerge, toArrayMerge} from '@bdsoft-element/utils/lib/mergeprops';
2
-
3
-
4
- export const keyAttrs = ['type', 'slot', 'ignore', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key', 'slotUpdate', 'computed', 'preview', 'component', 'cache', 'modelEmit'];
5
-
6
- export const arrayAttrs = ['validate', 'children', 'control'];
7
-
8
- export const normalAttrs = ['effect', 'deep', 'renderSlots'];
9
-
10
- export function attrs() {
11
- return [...keyAttrs, ...normalMerge, ...toArrayMerge, ...functionalMerge, ...arrayAttrs, ...normalAttrs];
12
- }
@@ -1,76 +0,0 @@
1
- import {deepGet} from './util';
2
-
3
- function getCookie(name) {
4
- name = name + '=';
5
-
6
- const decodedCookie = decodeURIComponent(document.cookie);
7
- const cookieArray = decodedCookie.split(';');
8
-
9
- for (let i = 0; i < cookieArray.length; i++) {
10
- let cookie = cookieArray[i];
11
- while (cookie.charAt(0) === ' ') {
12
- cookie = cookie.substring(1);
13
- }
14
- if (cookie.indexOf(name) === 0) {
15
- cookie = cookie.substring(name.length, cookie.length);
16
- try {
17
- return JSON.parse(cookie);
18
- } catch (e) {
19
- return cookie;
20
- }
21
- }
22
- }
23
- return null;
24
- }
25
-
26
- function getLocalStorage(name) {
27
- const value = localStorage.getItem(name);
28
- if (value) {
29
- try {
30
- return JSON.parse(value);
31
- } catch (e) {
32
- return value;
33
- }
34
- }
35
- return null;
36
- }
37
-
38
- function getSessionStorage(name) {
39
- const value = sessionStorage.getItem(name);
40
- if (value) {
41
- try {
42
- return JSON.parse(value);
43
- } catch (e) {
44
- return value;
45
- }
46
- }
47
- return null;
48
- }
49
-
50
- export function baseDriver(driver, name) {
51
- if (!name) {
52
- return null;
53
- }
54
- const split = name.split('.');
55
- let value = driver(split.shift());
56
-
57
- if (!split.length) {
58
- return value;
59
- }
60
- if (value == null) {
61
- return null;
62
- }
63
- return deepGet(value, split);
64
- }
65
-
66
- export function cookieDriver(name) {
67
- return baseDriver(getCookie, name);
68
- }
69
-
70
- export function localStorageDriver(name) {
71
- return baseDriver(getLocalStorage, name);
72
- }
73
-
74
- export function sessionStorageDriver(name) {
75
- return baseDriver(getSessionStorage, name);
76
- }