@bdsoft/element 1.1.8 → 1.1.11

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 (243) hide show
  1. package/dist/BdElement.js +23111 -0
  2. package/package.json +2 -1
  3. package/global/index.ts +0 -6
  4. package/global/register-properties.ts +0 -10
  5. package/index.html +0 -13
  6. package/package-form/core/components/formCreate.js +0 -274
  7. package/package-form/core/components/fragment.js +0 -12
  8. package/package-form/core/factory/context.js +0 -257
  9. package/package-form/core/factory/creator.js +0 -63
  10. package/package-form/core/factory/maker.js +0 -17
  11. package/package-form/core/factory/manager.js +0 -79
  12. package/package-form/core/factory/node.js +0 -85
  13. package/package-form/core/factory/parser.js +0 -28
  14. package/package-form/core/frame/api.js +0 -599
  15. package/package-form/core/frame/attrs.js +0 -12
  16. package/package-form/core/frame/dataDriver.js +0 -76
  17. package/package-form/core/frame/fetch.js +0 -119
  18. package/package-form/core/frame/formCreate.js +0 -274
  19. package/package-form/core/frame/index.js +0 -760
  20. package/package-form/core/frame/provider.js +0 -288
  21. package/package-form/core/frame/util.js +0 -274
  22. package/package-form/core/handler/context.js +0 -380
  23. package/package-form/core/handler/effect.js +0 -122
  24. package/package-form/core/handler/index.js +0 -111
  25. package/package-form/core/handler/inject.js +0 -145
  26. package/package-form/core/handler/input.js +0 -197
  27. package/package-form/core/handler/lifecycle.js +0 -43
  28. package/package-form/core/handler/loader.js +0 -373
  29. package/package-form/core/handler/page.js +0 -46
  30. package/package-form/core/handler/render.js +0 -29
  31. package/package-form/core/index.js +0 -12
  32. package/package-form/core/package.json +0 -15
  33. package/package-form/core/parser/html.js +0 -17
  34. package/package-form/core/render/cache.js +0 -47
  35. package/package-form/core/render/index.js +0 -31
  36. package/package-form/core/render/render.js +0 -393
  37. package/package-form/element-form/components/checkbox/package.json +0 -17
  38. package/package-form/element-form/components/checkbox/src/component.jsx +0 -110
  39. package/package-form/element-form/components/checkbox/src/index.js +0 -3
  40. package/package-form/element-form/components/frame/package.json +0 -17
  41. package/package-form/element-form/components/frame/src/IconCircleClose.vue +0 -14
  42. package/package-form/element-form/components/frame/src/IconDelete.vue +0 -12
  43. package/package-form/element-form/components/frame/src/IconDocument.vue +0 -12
  44. package/package-form/element-form/components/frame/src/IconFolderOpened.vue +0 -12
  45. package/package-form/element-form/components/frame/src/IconView.vue +0 -12
  46. package/package-form/element-form/components/frame/src/component.jsx +0 -349
  47. package/package-form/element-form/components/frame/src/index.js +0 -3
  48. package/package-form/element-form/components/frame/src/style.css +0 -66
  49. package/package-form/element-form/components/group/package.json +0 -17
  50. package/package-form/element-form/components/group/src/component.jsx +0 -314
  51. package/package-form/element-form/components/group/src/index.js +0 -3
  52. package/package-form/element-form/components/group/src/style.css +0 -125
  53. package/package-form/element-form/components/index.js +0 -22
  54. package/package-form/element-form/components/radio/package.json +0 -17
  55. package/package-form/element-form/components/radio/src/component.jsx +0 -101
  56. package/package-form/element-form/components/radio/src/index.js +0 -3
  57. package/package-form/element-form/components/select/package.json +0 -17
  58. package/package-form/element-form/components/select/src/component.jsx +0 -52
  59. package/package-form/element-form/components/select/src/index.js +0 -3
  60. package/package-form/element-form/components/subform/package.json +0 -14
  61. package/package-form/element-form/components/subform/src/component.jsx +0 -76
  62. package/package-form/element-form/components/subform/src/index.js +0 -3
  63. package/package-form/element-form/components/tree/package.json +0 -17
  64. package/package-form/element-form/components/tree/src/component.jsx +0 -62
  65. package/package-form/element-form/components/tree/src/index.js +0 -3
  66. package/package-form/element-form/components/upload/package.json +0 -17
  67. package/package-form/element-form/components/upload/src/IconUpload.vue +0 -12
  68. package/package-form/element-form/components/upload/src/component.jsx +0 -129
  69. package/package-form/element-form/components/upload/src/index.js +0 -3
  70. package/package-form/element-form/components/upload/src/style.css +0 -11
  71. package/package-form/element-form/index.js +0 -8
  72. package/package-form/element-form/package.json +0 -16
  73. package/package-form/element-form/src/components/icon/IconWarning.vue +0 -12
  74. package/package-form/element-form/src/components/index.js +0 -22
  75. package/package-form/element-form/src/core/alias.js +0 -34
  76. package/package-form/element-form/src/core/api.js +0 -208
  77. package/package-form/element-form/src/core/config.js +0 -62
  78. package/package-form/element-form/src/core/index.js +0 -60
  79. package/package-form/element-form/src/core/maker.js +0 -76
  80. package/package-form/element-form/src/core/manager.js +0 -315
  81. package/package-form/element-form/src/core/provider.js +0 -79
  82. package/package-form/element-form/src/parsers/datePicker.js +0 -31
  83. package/package-form/element-form/src/parsers/hidden.js +0 -12
  84. package/package-form/element-form/src/parsers/index.js +0 -17
  85. package/package-form/element-form/src/parsers/input.js +0 -21
  86. package/package-form/element-form/src/parsers/row.js +0 -10
  87. package/package-form/element-form/src/parsers/select.js +0 -15
  88. package/package-form/element-form/src/parsers/slider.js +0 -21
  89. package/package-form/element-form/src/parsers/timePicker.js +0 -17
  90. package/package-form/element-form/src/style/index.css +0 -52
  91. package/src/App.vue +0 -28
  92. package/src/assets/css/element.scss +0 -196
  93. package/src/assets/css/layout.scss +0 -215
  94. package/src/assets/css/tailwind.scss +0 -67
  95. package/src/assets/images/banner.gif +0 -0
  96. package/src/assets/images/banner.png +0 -0
  97. package/src/assets/images/bg1.svg +0 -22
  98. package/src/assets/images/bg2.png +0 -0
  99. package/src/assets/images/ff.png +0 -0
  100. package/src/assets/images/home-file1.png +0 -0
  101. package/src/assets/images/ky.png +0 -0
  102. package/src/assets/images/menu/add.png +0 -0
  103. package/src/assets/images/menu/del.png +0 -0
  104. package/src/assets/images/menu/down.png +0 -0
  105. package/src/assets/images/menu/dr.png +0 -0
  106. package/src/assets/images/menu/edit.png +0 -0
  107. package/src/assets/images/menu/kx.png +0 -0
  108. package/src/assets/images/menu/mb.png +0 -0
  109. package/src/assets/images/menu/pz.png +0 -0
  110. package/src/assets/images/menu/save.png +0 -0
  111. package/src/assets/images/menu/sj.png +0 -0
  112. package/src/assets/images/menu/sjk.png +0 -0
  113. package/src/assets/images/menu/up.png +0 -0
  114. package/src/assets/images/po-i.png +0 -0
  115. package/src/assets/images/po1-i1.png +0 -0
  116. package/src/assets/images/po1-i2.png +0 -0
  117. package/src/assets/images/po1-i3.png +0 -0
  118. package/src/assets/images/po1-i4.png +0 -0
  119. package/src/assets/images/po1-i5.png +0 -0
  120. package/src/assets/images/po1-i6.png +0 -0
  121. package/src/assets/images/po1-i7.png +0 -0
  122. package/src/assets/images/po1-i8.png +0 -0
  123. package/src/assets/images/po2-i1.png +0 -0
  124. package/src/assets/images/po2-i2.png +0 -0
  125. package/src/assets/images/po3-i1.png +0 -0
  126. package/src/assets/images/po4-i1.png +0 -0
  127. package/src/assets/images/po5-i1.png +0 -0
  128. package/src/assets/images/po6-i1.png +0 -0
  129. package/src/assets/images/po6-i2.png +0 -0
  130. package/src/assets/images/po7-i1.png +0 -0
  131. package/src/assets/images/tj1.png +0 -0
  132. package/src/assets/images/tj2.png +0 -0
  133. package/src/assets/images/tj3.png +0 -0
  134. package/src/components/3dcloudwords/index.js +0 -346
  135. package/src/components/3dcloudwords/index.vue +0 -99
  136. package/src/components/3dcloudwords/readme.md +0 -66
  137. package/src/components/badge/index.js +0 -167
  138. package/src/components/badge/index.scss +0 -166
  139. package/src/components/badge/index.vue +0 -98
  140. package/src/components/badge/readme.md +0 -18
  141. package/src/components/basic/Finish.vue +0 -107
  142. package/src/components/basic/button.vue +0 -19
  143. package/src/components/basic/readme.md +0 -7
  144. package/src/components/button/index.vue +0 -48
  145. package/src/components/button/readme.md +0 -62
  146. package/src/components/carousel/index.vue +0 -104
  147. package/src/components/carousel/readme.md +0 -12
  148. package/src/components/chartconfig/index.vue +0 -141
  149. package/src/components/chartconfig/readme.md +0 -25
  150. package/src/components/contextMenu/hookContxtMenu.js +0 -41
  151. package/src/components/contextMenu/index.vue +0 -245
  152. package/src/components/contextMenu/readme.md +0 -55
  153. package/src/components/contextMenu/useElementBounding.js +0 -40
  154. package/src/components/countup/countUp.js +0 -196
  155. package/src/components/countup/index.vue +0 -114
  156. package/src/components/countup/readme.md +0 -9
  157. package/src/components/empty/assets/build.png +0 -0
  158. package/src/components/empty/assets/emptybg.gif +0 -0
  159. package/src/components/empty/assets/emptybg.png +0 -0
  160. package/src/components/empty/assets/emptybg2.jpg +0 -0
  161. package/src/components/empty/assets/emptybg3.jpg +0 -0
  162. package/src/components/empty/assets/wuxiao.png +0 -0
  163. package/src/components/empty/assets/wuxiao.webp +0 -0
  164. package/src/components/empty/building.vue +0 -117
  165. package/src/components/empty/empty.vue +0 -120
  166. package/src/components/empty/index.js +0 -12
  167. package/src/components/empty/invalid.vue +0 -56
  168. package/src/components/error/Error.vue +0 -79
  169. package/src/components/error/readme.md +0 -20
  170. package/src/components/form/Form.vue +0 -84
  171. package/src/components/form/FormItem.vue +0 -143
  172. package/src/components/form/data.js +0 -52
  173. package/src/components/form/readme.md +0 -69
  174. package/src/components/layout/banner.vue +0 -412
  175. package/src/components/layout/bar.vue +0 -43
  176. package/src/components/layout/layout1.vue +0 -60
  177. package/src/components/layout/layout2.vue +0 -134
  178. package/src/components/layout/layout3.vue +0 -107
  179. package/src/components/layout/layout4.vue +0 -66
  180. package/src/components/layout/nav.vue +0 -333
  181. package/src/components/layout/readme.md +0 -61
  182. package/src/components/loading/index.vue +0 -122
  183. package/src/components/loading/readme.md +0 -6
  184. package/src/components/notice/NoticeList.vue +0 -198
  185. package/src/components/notice/NoticeListPaging.vue +0 -281
  186. package/src/components/notice/NoticeView.vue +0 -92
  187. package/src/components/notice/readme.md +0 -1
  188. package/src/components/pagination/index.vue +0 -100
  189. package/src/components/pagination/readme.md +0 -19
  190. package/src/components/pagination/scroll-to.js +0 -51
  191. package/src/components/progress/bar.vue +0 -72
  192. package/src/components/progress/progress.vue +0 -58
  193. package/src/components/screenfull/index.js +0 -3
  194. package/src/components/screenfull/index.vue +0 -65
  195. package/src/components/screenfull/package.json +0 -15
  196. package/src/components/screenfull/readme.md +0 -6
  197. package/src/components/statisticalCount/index.vue +0 -80
  198. package/src/components/statisticalCount/readme.md +0 -21
  199. package/src/components/username/index.vue +0 -79
  200. package/src/components/username/readme.md +0 -22
  201. package/src/components/username//346/225/210/346/236/234/345/233/276.png +0 -0
  202. package/src/index.js +0 -88
  203. package/src/utils/index.js +0 -32
  204. package/src/xm_components/HeadSearch/hook/hookSearch.js +0 -96
  205. package/src/xm_components/HeadSearch/index.vue +0 -206
  206. package/src/xm_components/HeadSearch/readme.md +0 -12
  207. package/src/xm_components/HeadSearch//346/220/234/347/264/242/345/210/227/350/241/250.png +0 -0
  208. package/src/xm_components/Milestone/index.vue +0 -213
  209. package/src/xm_components/Milestone/readme.md +0 -15
  210. package/src/xm_components/MultiStatisticalCard/image.png +0 -0
  211. package/src/xm_components/MultiStatisticalCard/index.vue +0 -114
  212. package/src/xm_components/MultiStatisticalCard/readme.md +0 -29
  213. package/src/xm_components/StatisticalCard/image.png +0 -0
  214. package/src/xm_components/StatisticalCard/index.vue +0 -196
  215. package/src/xm_components/StatisticalCard/readme.md +0 -41
  216. package/src/xm_components/readme.md +0 -1
  217. package/utils/coms/load.jsx +0 -10
  218. package/utils/func.js +0 -32
  219. package/utils/hookDialog.js +0 -38
  220. package/utils/hookPage.js +0 -49
  221. package/utils/index.js +0 -5
  222. package/utils/lib/console.js +0 -39
  223. package/utils/lib/debounce.js +0 -19
  224. package/utils/lib/deepextend.js +0 -51
  225. package/utils/lib/deepset.js +0 -14
  226. package/utils/lib/extend.js +0 -28
  227. package/utils/lib/index.js +0 -13
  228. package/utils/lib/json.js +0 -90
  229. package/utils/lib/mergeprops.js +0 -62
  230. package/utils/lib/mitt.js +0 -43
  231. package/utils/lib/modify.js +0 -8
  232. package/utils/lib/slot.js +0 -19
  233. package/utils/lib/toarray.js +0 -5
  234. package/utils/lib/tocase.js +0 -11
  235. package/utils/lib/todate.js +0 -10
  236. package/utils/lib/toline.js +0 -10
  237. package/utils/lib/tostring.js +0 -7
  238. package/utils/lib/type.js +0 -45
  239. package/utils/lib/unique.js +0 -6
  240. package/utils/message.js +0 -164
  241. package/utils/package.json +0 -16
  242. package/utils/type.js +0 -45
  243. package/vite.config.js +0 -51
@@ -1,393 +0,0 @@
1
- import extend, {copy} from '@bdsoft-element/utils/lib/extend';
2
- import mergeProps from '@bdsoft-element/utils/lib/mergeprops';
3
- import is from '@bdsoft-element/utils/lib/type';
4
- import {invoke, makeSlotBag, mergeRule} from '../frame/util';
5
- import toCase, {lower} from '@bdsoft-element/utils/lib/tocase';
6
- import {deepSet, toLine} from '@bdsoft-element/utils/lib';
7
- import {computed, nextTick} from 'vue';
8
-
9
- export default function useRender(Render) {
10
- extend(Render.prototype, {
11
- initRender() {
12
- this.cacheConfig = {};
13
- },
14
- getTypeSlot(ctx) {
15
- const _fn = (vm) => {
16
- if (vm) {
17
- let slot = undefined;
18
- if (ctx.rule.field) {
19
- slot = vm.slots['field-' + toLine(ctx.rule.field)] || vm.slots['field-' + ctx.rule.field];
20
- }
21
- if (!slot) {
22
- slot = vm.slots['type-' + toLine(ctx.type)] || vm.slots['type-' + ctx.type];
23
- }
24
- if (slot) {
25
- return slot;
26
- }
27
- return _fn(vm.setupState.parent);
28
- }
29
- }
30
- return _fn(this.vm);
31
- },
32
- render() {
33
- // console.warn('renderrrrr', this.id);
34
- if (!this.vm.setupState.isShow) {
35
- return;
36
- }
37
- this.$manager.beforeRender();
38
- const slotBag = makeSlotBag();
39
- this.sort.forEach((k) => {
40
- this.renderSlot(slotBag, this.$handle.ctxs[k]);
41
- });
42
-
43
- return this.$manager.render(slotBag);
44
- },
45
- renderSlot(slotBag, ctx, parent) {
46
- if (this.isFragment(ctx)) {
47
- ctx.initProp();
48
- this.mergeGlobal(ctx);
49
- ctx.initNone();
50
- const slots = this.renderChildren(ctx.loadChildrenPending(), ctx);
51
- const def = slots.default;
52
- def && slotBag.setSlot(ctx.rule.slot, () => def());
53
- delete slots.default;
54
- slotBag.mergeBag(slots);
55
- } else {
56
- slotBag.setSlot(ctx.rule.slot, this.renderCtx(ctx, parent));
57
- }
58
- },
59
- mergeGlobal(ctx) {
60
- const g = this.$handle.options.global;
61
- if (!g) return;
62
- if (!this.cacheConfig[ctx.trueType]) {
63
- this.cacheConfig[ctx.trueType] = computed(() => {
64
- const g = this.$handle.options.global;
65
- return mergeRule({}, [g['*'] || g.default || {}, g[ctx.originType] || g[ctx.type] || g[ctx.type] || {}]);
66
- });
67
- }
68
- ctx.prop = mergeRule({}, [this.cacheConfig[ctx.trueType].value, ctx.prop]);
69
- },
70
- setOptions(ctx) {
71
- const opt = ctx.loadPending({key: 'options', origin: ctx.prop.options, def: []});
72
- ctx.prop.options = opt;
73
- if (ctx.prop.optionsTo && opt) {
74
- deepSet(ctx.prop, ctx.prop.optionsTo, opt);
75
- }
76
- },
77
- deepSet(ctx) {
78
- const deep = ctx.rule.deep;
79
- deep && Object.keys(deep).sort((a, b) => a.length < b.length ? -1 : 1).forEach(str => {
80
- deepSet(ctx.prop, str, deep[str]);
81
- });
82
- },
83
- parseSide(side, ctx) {
84
- return is.Object(side) ? mergeRule({props: {formCreateInject: ctx.prop.props.formCreateInject}}, side) : side;
85
- },
86
- renderSides(vn, ctx, temp) {
87
- const prop = ctx[temp ? 'rule' : 'prop'];
88
- return [this.renderRule(this.parseSide(prop.prefix, ctx)), vn, this.renderRule(this.parseSide(prop.suffix, ctx))];
89
- },
90
- renderId(name, type) {
91
- const ctxs = this.$handle[type === 'field' ? 'fieldCtx' : 'nameCtx'][name]
92
- return ctxs ? ctxs.map(ctx => this.renderCtx(ctx, ctx.parent)) : undefined;
93
- },
94
- renderCtx(ctx, parent) {
95
- try {
96
- if (ctx.type === 'hidden') return;
97
- const rule = ctx.rule;
98
- if ((!this.cache[ctx.id]) || this.cache[ctx.id].slot !== rule.slot) {
99
- let vn;
100
- ctx.initProp();
101
- this.mergeGlobal(ctx);
102
- ctx.initNone();
103
- this.$manager.tidyRule(ctx);
104
- this.deepSet(ctx);
105
- this.setOptions(ctx);
106
- this.ctxProp(ctx);
107
- let prop = ctx.prop;
108
- prop.preview = !!(prop.preview != null ? prop.preview : this.$handle.preview);
109
- prop.props.formCreateInject = this.injectProp(ctx);
110
- let cacheFlag = prop.cache !== false;
111
- const preview = prop.preview;
112
-
113
- if (prop.hidden) {
114
- this.setCache(ctx, undefined, parent);
115
- return;
116
- }
117
- vn = (...slotValue) => {
118
- const inject = {
119
- rule,
120
- prop,
121
- preview,
122
- api: this.$handle.api,
123
- model: prop.model || {},
124
- slotValue
125
- }
126
- if (slotValue.length && rule.slotUpdate) {
127
- invoke(() => rule.slotUpdate(inject))
128
- }
129
- let children = {};
130
- const _load = ctx.loadChildrenPending();
131
- if (ctx.parser.renderChildren) {
132
- children = ctx.parser.renderChildren(_load, ctx);
133
- } else if (ctx.parser.loadChildren !== false) {
134
- children = this.renderChildren(_load, ctx);
135
- }
136
- Object.keys(prop.renderSlots || {}).forEach(key => {
137
- children[key] = () => {
138
- const rule = this.parseSide(prop.renderSlots[key], ctx);
139
- return this.renderRule(rule);
140
- }
141
- })
142
- const slot = this.getTypeSlot(ctx);
143
- let _vn;
144
- if (slot) {
145
- inject.children = children;
146
- _vn = slot(inject)
147
- } else {
148
- _vn = preview ? ctx.parser.preview(copy(children), ctx) : ctx.parser.render(copy(children), ctx);
149
- }
150
- _vn = this.renderSides(_vn, ctx);
151
- if ((!(!ctx.input && is.Undef(prop.native))) && prop.native !== true) {
152
- this.fc.targetFormDriver('updateWrap', ctx)
153
- _vn = this.$manager.makeWrap(ctx, _vn);
154
- }
155
- if (ctx.none) {
156
- if (Array.isArray(_vn)) {
157
- _vn = _vn.map(v => {
158
- if (!v || !v.__v_isVNode) {
159
- return v;
160
- }
161
- return this.none(v);
162
- });
163
- } else {
164
- _vn = this.none(_vn);
165
- }
166
- }
167
- cacheFlag && this.setCache(ctx, () => {
168
- return this.stable(_vn);
169
- }, parent);
170
- return _vn
171
- };
172
- this.setCache(ctx, vn, parent);
173
- }
174
- return (...args) => {
175
- const cache = this.getCache(ctx);
176
- if (cache) {
177
- return cache(...args);
178
- } else if (this.cache[ctx.id]) {
179
- return;
180
- }
181
- const _vn = this.renderCtx(ctx, ctx.parent);
182
- if (_vn) {
183
- return _vn();
184
- }
185
- };
186
- } catch (e) {
187
- console.error(e);
188
- return;
189
- }
190
- },
191
- none(vn) {
192
- if (vn) {
193
- vn.props.class = this.mergeClass(vn.props.class, 'fc-none')
194
- return vn;
195
- }
196
- },
197
- mergeClass(target, value) {
198
- if (Array.isArray(target)) {
199
- target.push(value);
200
- } else {
201
- return target ? [target, value] : value;
202
- }
203
- return target;
204
- },
205
- stable(vn) {
206
- const list = Array.isArray(vn) ? vn : [vn];
207
- list.forEach(v => {
208
- if (v && v.__v_isVNode && v.children && typeof v.children === 'object') {
209
- v.children.$stable = true;
210
- this.stable(v.children);
211
- }
212
- });
213
- return vn;
214
- },
215
- getModelField(ctx) {
216
- return ctx.prop.modelField || ctx.parser.modelField || this.fc.modelFields[this.vNode.aliasMap[ctx.type]] || this.fc.modelFields[ctx.type] || this.fc.modelFields[ctx.originType] || 'modelValue';
217
- },
218
- isFragment(ctx) {
219
- return ctx.type === 'fragment' || ctx.type === 'template';
220
- },
221
- injectProp(ctx) {
222
- const state = this.vm.setupState;
223
- if (!state.ctxInject[ctx.id]) {
224
- state.ctxInject[ctx.id] = {
225
- api: this.$handle.api,
226
- form: this.fc.create,
227
- subForm: subForm => {
228
- this.$handle.addSubForm(ctx, subForm);
229
- },
230
- getSubForm: () => {
231
- return this.$handle.subForm[ctx.id];
232
- },
233
- slots: () => {
234
- return this.vm.setupState.top.slots;
235
- },
236
- options: [],
237
- children: [],
238
- preview: false,
239
- id: ctx.id,
240
- field: ctx.field,
241
- rule: ctx.rule,
242
- input: ctx.input,
243
- t: (...args) => {
244
- return this.$handle.api.t(...args);
245
- },
246
- updateValue: (data) => {
247
- this.$handle.onUpdateValue(ctx, data);
248
- }
249
- }
250
- }
251
- const inject = state.ctxInject[ctx.id];
252
- extend(inject, {
253
- preview: ctx.prop.preview,
254
- options: ctx.prop.options,
255
- children: ctx.loadChildrenPending()
256
- });
257
- return inject;
258
- },
259
- ctxProp(ctx) {
260
- const {ref, key, rule} = ctx;
261
- this.$manager.mergeProp(ctx);
262
- ctx.parser.mergeProp(ctx);
263
- const props = [
264
- {
265
- ref: ref,
266
- key: rule.key || `${key}fc`,
267
- slot: undefined,
268
- on: {
269
- vnodeMounted: (vn) => {
270
- vn.el.__rule__ = ctx.rule;
271
- this.onMounted(ctx, vn.el);
272
- },
273
- 'fc.updateValue': (data) => {
274
- this.$handle.onUpdateValue(ctx, data);
275
- },
276
- 'fc.el': (el) => {
277
- ctx.exportEl = el;
278
- if (el) {
279
- (el.$el || el).__rule__ = ctx.rule;
280
- }
281
- }
282
- }
283
- }
284
- ]
285
-
286
- if (ctx.input) {
287
- if (this.vm.props.disabled === true) {
288
- ctx.prop.props.disabled = true;
289
- }
290
- const field = this.getModelField(ctx);
291
- const model = {
292
- callback: (value) => {
293
- this.onInput(ctx, value);
294
- },
295
- modelField: field,
296
- value: this.$handle.getFormData(ctx)
297
- };
298
- props.push({
299
- on: {
300
- [`update:${field}`]: model.callback,
301
- ...(ctx.prop.modelEmit ? {
302
- [ctx.prop.modelEmit]: () => this.onEmitInput(ctx)
303
- } : {}),
304
- },
305
- props: {
306
- [field]: model.value
307
- }
308
- })
309
- ctx.prop.model = model;
310
- }
311
- mergeProps(props, ctx.prop);
312
- return ctx.prop;
313
- },
314
- onMounted(ctx, el) {
315
- ctx.el = this.vm.refs[ctx.ref] || el;
316
- ctx.parser.mounted(ctx);
317
- this.$handle.effect(ctx, 'mounted');
318
- this.$handle.targetHook(ctx, 'mounted');
319
- },
320
- onInput(ctx, value) {
321
- if (ctx.prop.modelEmit) {
322
- this.$handle.onBaseInput(ctx, value);
323
- return;
324
- }
325
- this.$handle.onInput(ctx, value);
326
- },
327
- onEmitInput(ctx) {
328
- this.$handle.setValue(ctx, ctx.parser.toValue(ctx.modelValue, ctx), ctx.modelValue);
329
- },
330
- renderChildren(children, ctx) {
331
- if (!is.trueArray(children)) return {};
332
- const slotBag = makeSlotBag()
333
- children.map(child => {
334
- if (!child) return;
335
- if (is.String(child)) return slotBag.setSlot(null, child);
336
- if (child.__fc__) {
337
- return this.renderSlot(slotBag, child.__fc__, ctx);
338
- }
339
- if (child.type) {
340
- nextTick(() => {
341
- this.$handle.loadChildren(children, ctx);
342
- this.$handle.refresh();
343
- });
344
- }
345
- });
346
- return slotBag.getSlots();
347
- },
348
- defaultRender(ctx, children) {
349
- const prop = ctx.prop;
350
- if (prop.component) {
351
- if (typeof prop.component === 'string') {
352
- return this.vNode.make(prop.component, prop, children);
353
- } else {
354
- return this.vNode.makeComponent(prop.component, prop, children);
355
- }
356
- }
357
- if (this.vNode[ctx.type])
358
- return this.vNode[ctx.type](prop, children);
359
- if (this.vNode[ctx.originType])
360
- return this.vNode[ctx.originType](prop, children);
361
- return this.vNode.make(lower(prop.type), prop, children);
362
- },
363
- renderRule(rule, children, origin) {
364
- if (!rule) return undefined;
365
- if (is.String(rule)) return rule;
366
-
367
- let type;
368
- if (origin) {
369
- type = rule.type;
370
- } else {
371
- type = rule.is;
372
- if (rule.type) {
373
- type = toCase(rule.type);
374
- const alias = this.vNode.aliasMap[type];
375
- if (alias) type = toCase(alias);
376
- }
377
- }
378
-
379
- if (!type) return undefined;
380
-
381
- const slotBag = makeSlotBag();
382
- if (is.trueArray(rule.children)) {
383
- rule.children.forEach(v => {
384
- v && slotBag.setSlot(v?.slot, () => this.renderRule(v));
385
- });
386
- }
387
- const props = {...rule};
388
- delete props.type;
389
- delete props.is;
390
- return this.vNode.make(type, props, slotBag.mergeBag(children).getSlots());
391
- }
392
- })
393
- }
@@ -1,17 +0,0 @@
1
- {
2
- "name": "@bdsoft-element/form-checkbox",
3
- "version": "0.0.1",
4
- "description": "",
5
- "main": "./dist/index.min.js",
6
- "module": "./dist/index.esm.js",
7
- "unpkg": "./dist/index.min.js",
8
- "jsdelivr": "./dist/index.min.js",
9
- "scripts": {
10
- "clean": "rimraf dist/",
11
- "bili": "cross-env bili",
12
- "build": "npm-run-all clean bili"
13
- },
14
- "dependencies": {
15
- "@bdsoft-element/utils": "workspace:^1.0.1"
16
- }
17
- }
@@ -1,110 +0,0 @@
1
- import {computed, defineComponent, ref, resolveComponent, toRef, watch} from 'vue';
2
- import getSlot from '@bdsoft-element/utils/lib/slot';
3
- import toArray from '@bdsoft-element/utils/lib/toarray';
4
-
5
- const NAME = 'fcCheckbox';
6
-
7
- export default defineComponent({
8
- name: NAME,
9
- inheritAttrs: false,
10
- props: {
11
- formCreateInject: Object,
12
- modelValue: {
13
- type: Array,
14
- default: () => []
15
- },
16
- type: String,
17
- options: Array,
18
- input: Boolean,
19
- inputValue: String,
20
- },
21
- emits: ['update:modelValue', 'fc.el'],
22
- setup(props, _) {
23
- const options = toRef(props.formCreateInject, 'options', []);
24
- const opt = toRef(props, 'options');
25
- const value = toRef(props, 'modelValue');
26
- const inputValue = toRef(props, 'inputValue', '');
27
- const customValue = ref(inputValue.value);
28
- const input = toRef(props, 'input', false);
29
- const updateCustomValue = (n) => {
30
- const _value = [...toArray(value.value)];
31
- const idx = _value.indexOf(customValue.value);
32
- customValue.value = n;
33
- if (idx > -1) {
34
- _value.splice(idx, 1);
35
- _value.push(n);
36
- onInput(_value);
37
- }
38
- }
39
- watch(inputValue, (n) => {
40
- if (!input.value) {
41
- customValue.value = n;
42
- return undefined;
43
- }
44
- updateCustomValue(n);
45
- })
46
-
47
- const _options = computed(() => {
48
- let arr = options.value || [];
49
- if (opt.value) {
50
- arr = opt.value || [];
51
- }
52
- return Array.isArray(arr) ? arr : [];
53
- });
54
-
55
-
56
- watch(value, (n) => {
57
- let value = null;
58
- if (!inputValue.value && n != null && Array.isArray(n) && n.length > 0 && input.value) {
59
- const values = _options.value.map(item => {
60
- return item.value;
61
- });
62
- n.forEach((val) => {
63
- if (values.indexOf(val) === -1) {
64
- value = val;
65
- }
66
- })
67
- }
68
- if (value != null) {
69
- customValue.value = value;
70
- }
71
- }, {immediate: true});
72
-
73
- const onInput = (n) => {
74
- _.emit('update:modelValue', n);
75
- };
76
-
77
- return {
78
- options: _options,
79
- value,
80
- onInput,
81
- updateCustomValue,
82
- makeInput(Type) {
83
- if (!input.value) {
84
- return undefined;
85
- }
86
- return <Type value={customValue.value || undefined} label={customValue.value || undefined}>
87
- <ElInput size="small" modelValue={customValue.value}
88
- onUpdate:modelValue={updateCustomValue}></ElInput>
89
- </Type>
90
- },
91
- }
92
- },
93
- render() {
94
- const name = this.type === 'button' ? 'ElCheckboxButton' : 'ElCheckbox';
95
- const Type = resolveComponent(name);
96
- return <ElCheckboxGroup {...this.$attrs} modelValue={this.value} v-slots={getSlot(this.$slots, ['default'])}
97
- onUpdate:modelValue={this.onInput} ref="el">{this.options.map((opt, index) => {
98
- const props = {...opt};
99
- const value = props.value;
100
- const label = props.label;
101
- delete props.value;
102
- delete props.label;
103
- return <Type {...props} label={value} value={value}
104
- key={name + index + '-' + value}>{label || value || ''}</Type>
105
- })}{this.$slots.default?.()}{this.makeInput(Type)}</ElCheckboxGroup>
106
- },
107
- mounted() {
108
- this.$emit('fc.el', this.$refs.el);
109
- }
110
- });
@@ -1,3 +0,0 @@
1
- import Checkbox from './component';
2
-
3
- export default Checkbox;
@@ -1,17 +0,0 @@
1
- {
2
- "name": "@bdsoft-element/form-frame",
3
- "version": "0.0.1",
4
- "description": "",
5
- "main": "./dist/index.min.js",
6
- "module": "./dist/index.esm.js",
7
- "unpkg": "./dist/index.min.js",
8
- "jsdelivr": "./dist/index.min.js",
9
- "scripts": {
10
- "clean": "rimraf dist/",
11
- "bili": "cross-env bili",
12
- "build": "npm-run-all clean bili"
13
- },
14
- "dependencies": {
15
- "@bdsoft-element/utils": "workspace:^1.0.1"
16
- }
17
- }
@@ -1,14 +0,0 @@
1
- <template>
2
- <svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
3
- <path fill="currentColor"
4
- d="M466.752 512l-90.496-90.496a32 32 0 0145.248-45.248L512 466.752l90.496-90.496a32 32 0 1145.248 45.248L557.248 512l90.496 90.496a32 32 0 11-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 01-45.248-45.248L466.752 512z"></path>
5
- <path fill="currentColor"
6
- d="M512 896a384 384 0 100-768 384 384 0 000 768zm0 64a448 448 0 110-896 448 448 0 010 896z"></path>
7
- </svg>
8
- </template>
9
-
10
- <script>
11
- export default {
12
- name: 'IconCircleClose'
13
- }
14
- </script>
@@ -1,12 +0,0 @@
1
- <template>
2
- <svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
3
- <path fill="currentColor"
4
- d="M160 256H96a32 32 0 010-64h256V95.936a32 32 0 0132-32h256a32 32 0 0132 32V192h256a32 32 0 110 64h-64v672a32 32 0 01-32 32H192a32 32 0 01-32-32V256zm448-64v-64H416v64h192zM224 896h576V256H224v640zm192-128a32 32 0 01-32-32V416a32 32 0 0164 0v320a32 32 0 01-32 32zm192 0a32 32 0 01-32-32V416a32 32 0 0164 0v320a32 32 0 01-32 32z"></path>
5
- </svg>
6
- </template>
7
-
8
- <script>
9
- export default {
10
- name: 'IconDelete'
11
- }
12
- </script>
@@ -1,12 +0,0 @@
1
- <template>
2
- <svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
3
- <path fill="currentColor"
4
- d="M832 384H576V128H192v768h640V384zm-26.496-64L640 154.496V320h165.504zM160 64h480l256 256v608a32 32 0 01-32 32H160a32 32 0 01-32-32V96a32 32 0 0132-32zm160 448h384v64H320v-64zm0-192h160v64H320v-64zm0 384h384v64H320v-64z"></path>
5
- </svg>
6
- </template>
7
-
8
- <script>
9
- export default {
10
- name: 'IconDocument'
11
- }
12
- </script>
@@ -1,12 +0,0 @@
1
- <template>
2
- <svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
3
- <path fill="currentColor"
4
- d="M878.08 448H241.92l-96 384h636.16l96-384zM832 384v-64H485.76L357.504 192H128v448l57.92-231.744A32 32 0 01216.96 384H832zm-24.96 512H96a32 32 0 01-32-32V160a32 32 0 0132-32h287.872l128.384 128H864a32 32 0 0132 32v96h23.04a32 32 0 0131.04 39.744l-112 448A32 32 0 01807.04 896z"></path>
5
- </svg>
6
- </template>
7
-
8
- <script>
9
- export default {
10
- name: 'IconFolderOpened'
11
- }
12
- </script>
@@ -1,12 +0,0 @@
1
- <template>
2
- <svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
3
- <path fill="currentColor"
4
- d="M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352zm0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 110 448 224 224 0 010-448zm0 64a160.192 160.192 0 00-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160z"></path>
5
- </svg>
6
- </template>
7
-
8
- <script>
9
- export default {
10
- name: 'IconView'
11
- }
12
- </script>