@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,76 +0,0 @@
1
- import {defineComponent, reactive, markRaw, nextTick} from 'vue';
2
-
3
- const NAME = 'fcSubForm';
4
-
5
-
6
- export default defineComponent({
7
- name: NAME,
8
- props: {
9
- rule: Array,
10
- options: {
11
- type: Object,
12
- default: () => reactive(({
13
- submitBtn: false,
14
- resetBtn: false,
15
- }))
16
- },
17
- modelValue: {
18
- type: Object,
19
- default: () => ({})
20
- },
21
- disabled: {
22
- type: Boolean,
23
- default: false
24
- },
25
- syncDisabled: {
26
- type: Boolean,
27
- default: true
28
- },
29
- formCreateInject: Object,
30
- },
31
- data() {
32
- return {
33
- cacheValue: {},
34
- subApi: {},
35
- form: markRaw(this.formCreateInject.form.$form())
36
- }
37
- },
38
- emits: ['fc:subform', 'update:modelValue', 'change', 'itemMounted'],
39
- watch: {
40
- modelValue(n) {
41
- this.setValue(n);
42
- }
43
- },
44
- methods: {
45
- formData(value) {
46
- this.cacheValue = JSON.stringify(value);
47
- this.$emit('update:modelValue', value);
48
- this.$emit('change', value);
49
- },
50
- setValue(value) {
51
- const str = JSON.stringify(value);
52
- if (this.cacheValue === str) {
53
- return;
54
- }
55
- this.cacheValue = str;
56
- this.subApi.coverValue(value || {});
57
- },
58
- add$f(api) {
59
- this.subApi = api;
60
- nextTick(() => {
61
- this.$emit('itemMounted', api);
62
- });
63
- }
64
- },
65
- render() {
66
- const Type = this.form;
67
- return <Type
68
- disabled={this.disabled}
69
- onUpdate:modelValue={this.formData}
70
- modelValue={this.modelValue}
71
- onEmit-event={this.$emit}
72
- onUpdate:api={this.add$f}
73
- rule={this.rule}
74
- option={this.options} extendOption={true}/>
75
- }
76
- })
@@ -1,3 +0,0 @@
1
- import Sub from './component';
2
-
3
- export default Sub;
@@ -1,17 +0,0 @@
1
- {
2
- "name": "@bdsoft-element/form-tree",
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,62 +0,0 @@
1
- import {defineComponent} from 'vue';
2
- import toArray from '@bdsoft-element/utils/lib/toarray';
3
-
4
- const NAME = 'fcTree';
5
-
6
- export default defineComponent({
7
- name: NAME,
8
- inheritAttrs: false,
9
- formCreateParser: {
10
- mergeProp(ctx) {
11
- const props = ctx.prop.props;
12
- if (!props.nodeKey) props.nodeKey = 'id';
13
- if (!props.props) props.props = {
14
- label: 'title'
15
- };
16
- }
17
- },
18
- props: {
19
- type: String,
20
- modelValue: {
21
- type: [Array, String, Number],
22
- default: () => ([])
23
- }
24
- },
25
- emits: ['update:modelValue', 'fc.el'],
26
- watch: {
27
- modelValue() {
28
- this.setValue();
29
- }
30
- },
31
- methods: {
32
- updateValue() {
33
- if (!this.$refs.tree) return;
34
- let value;
35
- if (this.type === 'selected') {
36
- value = this.$refs.tree.getCurrentKey();
37
- } else {
38
- value = this.$refs.tree.getCheckedKeys();
39
- }
40
- this.$emit('update:modelValue', value);
41
- },
42
- setValue() {
43
- if (!this.$refs.tree) return;
44
- const type = this.type;
45
-
46
- if (type === 'selected') {
47
- this.$refs.tree.setCurrentKey(this.modelValue);
48
- } else {
49
- this.$refs.tree.setCheckedKeys(toArray(this.modelValue));
50
- }
51
- }
52
- },
53
- render() {
54
- return <ElTree {...this.$attrs} ref="tree" onCheck={this.updateValue}
55
- onNodeClick={this.updateValue}
56
- v-slots={this.$slots}/>;
57
- },
58
- mounted() {
59
- this.setValue();
60
- this.$emit('fc.el',this.$refs.tree);
61
- }
62
- });
@@ -1,3 +0,0 @@
1
- import Tree from './component';
2
-
3
- export default Tree;
@@ -1,17 +0,0 @@
1
- {
2
- "name": "@bdsoft-element/form-upload",
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,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 832h704a32 32 0 110 64H160a32 32 0 110-64zm384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248L544 253.696z"></path>
5
- </svg>
6
- </template>
7
-
8
- <script>
9
- export default {
10
- name: 'IconUpload'
11
- }
12
- </script>
@@ -1,129 +0,0 @@
1
- import toArray from '@bdsoft-element/utils/lib/toarray';
2
- import getSlot from '@bdsoft-element/utils/lib/slot';
3
- import './style.css';
4
- import {defineComponent} from 'vue';
5
- import IconUpload from './IconUpload.vue';
6
-
7
- function parseFile(file, i) {
8
- if (typeof file === 'object') {
9
- return file;
10
- }
11
- return {
12
- url: file,
13
- is_string: true,
14
- name: getFileName(file),
15
- uid: i
16
- };
17
- }
18
-
19
- function parseUpload(file) {
20
- return {...file, file, value: file};
21
- }
22
-
23
- function getFileName(file) {
24
- return ('' + file).split('/').pop()
25
- }
26
-
27
- const NAME = 'fcUpload';
28
-
29
- export default defineComponent({
30
- name: NAME,
31
- inheritAttrs: false,
32
- formCreateParser: {
33
- toFormValue(value) {
34
- return toArray(value);
35
- },
36
- toValue(formValue, ctx) {
37
- return ctx.prop.props.limit === 1 ? (formValue[0] || '') : formValue;
38
- }
39
- },
40
- props: {
41
- previewMask: undefined,
42
- onPreview: Function,
43
- httpRequest: Function,
44
- modalTitle: String,
45
- listType: String,
46
- formCreateInject: Object,
47
- modelValue: [Array, String, Object]
48
- },
49
- emits: ['update:modelValue', 'change', 'remove', 'fc.el'],
50
- data() {
51
- return {
52
- previewVisible: false,
53
- previewImage: '',
54
- fileList: [],
55
- }
56
- },
57
- created() {
58
- this.fileList = toArray(this.modelValue).map(parseFile).map(parseUpload);
59
- },
60
- watch: {
61
- modelValue(n) {
62
- this.fileList = toArray(n).map(parseFile).map(parseUpload);
63
- }
64
- },
65
- methods: {
66
- handlePreview(file) {
67
- if (this.onPreview) {
68
- this.onPreview(...arguments);
69
- } else {
70
- if ('text' === this.listType) {
71
- window.open(file.url);
72
- } else {
73
- this.previewImage = file.url;
74
- this.previewVisible = true;
75
- }
76
- }
77
- },
78
- update(fileList) {
79
- let files = fileList.map((v) => v.is_string ? v.url : (v.value || v.url)).filter((url) => url !== undefined);
80
- this.$emit('update:modelValue', files);
81
- },
82
- handleCancel() {
83
- this.previewVisible = false;
84
- },
85
- handleChange(file, fileList) {
86
- this.$emit('change', ...arguments);
87
- if (file.status === 'success') {
88
- this.update(fileList);
89
- }
90
- },
91
- handleRemove(file, fileList) {
92
- this.$emit('remove', ...arguments);
93
- this.update(fileList);
94
- },
95
- doHttpRequest(option) {
96
- if (this.httpRequest) {
97
- return this.httpRequest(option);
98
- } else {
99
- option.source = 'upload';
100
- this.formCreateInject.api.fetch(option);
101
- }
102
- },
103
- },
104
- render() {
105
- const len = toArray(this.modelValue).length;
106
- return (
107
- <div class="_fc-upload"><ElUpload key={len} {...this.$attrs} listType={this.listType || 'picture-card'}
108
- class={{'_fc-exceed': this.$attrs.limit ? this.$attrs.limit <= len : false}}
109
- onPreview={this.handlePreview} onChange={this.handleChange}
110
- onRemove={this.handleRemove} httpRequest={this.doHttpRequest}
111
- fileList={this.fileList}
112
- v-slots={getSlot(this.$slots, ['default'])} ref="upload">
113
- {((this.$slots.default?.()) ||
114
- (['text', 'picture'].indexOf(this.listType) === -1 ? <ElIcon>
115
- <IconUpload/>
116
- </ElIcon> : <ElButton type="primary">{this.formCreateInject.t('clickToUpload') || '点击上传'}</ElButton>)
117
- )}
118
- </ElUpload>
119
- <ElDialog appendToBody={true} modal={this.previewMask} title={this.modalTitle}
120
- modelValue={this.previewVisible}
121
- onClose={this.handleCancel}>
122
- <img style="width: 100%" src={this.previewImage}/>
123
- </ElDialog>
124
- </div>);
125
- },
126
- mounted() {
127
- this.$emit('fc.el', this.$refs.upload);
128
- }
129
- })
@@ -1,3 +0,0 @@
1
- import Upload from './component';
2
-
3
- export default Upload;
@@ -1,11 +0,0 @@
1
- ._fc-upload{
2
- width: 100%;
3
- }
4
-
5
- ._fc-exceed .el-upload {
6
- display: none;
7
- }
8
-
9
- .el-upload-list.is-disabled .el-upload {
10
- cursor: not-allowed !important;
11
- }
@@ -1,8 +0,0 @@
1
- import elmFormCreate from './src/core/index';
2
-
3
- const FormNew = elmFormCreate();
4
-
5
- if (typeof window !== 'undefined') {
6
- window.FormNew = FormNew;
7
- }
8
- export default FormNew;
@@ -1,16 +0,0 @@
1
- {
2
- "name": "@bdsoft/element-form",
3
- "version": "1.0.0",
4
- "description": "",
5
- "main": "index.js",
6
- "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
8
- },
9
- "keywords": [],
10
- "author": "",
11
- "license": "ISC",
12
- "dependencies": {
13
- "@bdsoft-element/formcore": "workspace:^",
14
- "@bdsoft-element/utils": "workspace:^1.0.1"
15
- }
16
- }
@@ -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 64a448 448 0 110 896 448 448 0 010-896zm0 832a384 384 0 000-768 384 384 0 000 768zm48-176a48 48 0 11-96 0 48 48 0 0196 0zm-48-464a32 32 0 0132 32v288a32 32 0 01-64 0V288a32 32 0 0132-32z"></path>
5
- </svg>
6
- </template>
7
-
8
- <script>
9
- export default {
10
- name: 'IconWarning'
11
- }
12
- </script>
@@ -1,22 +0,0 @@
1
- import checkbox from '../../components/checkbox/src/index';
2
- import frame from '../../components/frame/src/index';
3
- import radio from '../../components/radio/src/index';
4
- import select from '../../components/select/src/index';
5
- import tree from '../../components/tree/src/index';
6
- import upload from '../../components/upload/src/index';
7
- import group from '../../components/group/src/index';
8
- // import subForm from '../../components/subform/src/index';
9
- import IconWarning from './icon/IconWarning.vue';
10
-
11
-
12
- export default [
13
- checkbox,
14
- frame,
15
- radio,
16
- select,
17
- tree,
18
- upload,
19
- group,
20
- // subForm,
21
- IconWarning,
22
- ]
@@ -1,34 +0,0 @@
1
- const PRE = 'el';
2
- export default {
3
- button: PRE + '-button',
4
- icon: PRE + '-icon',
5
- slider: PRE + '-slider',
6
- rate: PRE + '-rate',
7
- upload: 'fc-upload',
8
- cascader: PRE + '-cascader',
9
- popover: PRE + '-popover',
10
- tooltip: PRE + '-tooltip',
11
- colorPicker: PRE + '-colorPicker',
12
- timePicker: PRE + '-time-picker',
13
- timeSelect: PRE + '-time-select',
14
- datePicker: PRE + '-date-picker',
15
- 'switch': PRE + '-switch',
16
- select: 'fc-select',
17
- checkbox: 'fc-checkbox',
18
- radio: 'fc-radio',
19
- inputNumber: PRE + '-input-number',
20
- number: PRE + '-input-number',
21
- input: PRE + '-input',
22
- formItem: PRE + '-form-item',
23
- form: PRE + '-form',
24
- frame: 'fc-frame',
25
- col: PRE + '-col',
26
- row: PRE + '-row',
27
- tree: 'fc-tree',
28
- autoComplete: PRE + '-autocomplete',
29
- auto: PRE + '-autocomplete',
30
- group: 'fc-group',
31
- array: 'fc-group',
32
- object: 'fc-sub-form',
33
- subForm: 'fc-sub-form',
34
- }
@@ -1,208 +0,0 @@
1
- import extend from '@bdsoft-element/utils/lib/extend';
2
- import is from '@bdsoft-element/utils/lib/type';
3
- import {invoke} from '@bdsoft-element/formcore/frame/util';
4
- import toArray from '@bdsoft-element/utils/lib/toarray';
5
-
6
- function tidyBtnProp(btn, def) {
7
- if (is.Boolean(btn))
8
- btn = {show: btn};
9
- else if (!is.Undef(btn) && !is.Object(btn)) btn = {show: def};
10
- return btn;
11
- }
12
-
13
- /**
14
- * 扩展 API 功能的函数
15
- * @param {Object} api - 原始 API 对象
16
- * @param {Object} h - 辅助对象,包含一些工具方法和上下文信息
17
- * @returns {Object} 扩展后的 API 对象
18
- */
19
- export default function extendApi(api, h) {
20
- return {
21
- /**
22
- * 获取表单元素
23
- * @returns {HTMLElement} 表单元素
24
- */
25
- formEl() {
26
- return h.$manager.form();
27
- },
28
- /**
29
- * 根据字段 ID 获取包装元素
30
- * @param {string} id - 字段 ID
31
- * @returns {HTMLElement|undefined} 包装元素,如果未找到则返回 undefined
32
- */
33
- wrapEl(id) {
34
- const ctx = h.getFieldCtx(id);
35
- if (!ctx) return;
36
- return h.vm.refs[ctx.wrapRef];
37
- },
38
- /**
39
- * 验证整个表单
40
- * @param {Function} [callback] - 验证完成后的回调函数,接收验证结果作为参数
41
- * @returns {Promise<boolean>} 验证结果的 Promise 对象
42
- */
43
- validate(callback) {
44
- return new Promise((resolve, reject) => {
45
- const forms = api.children;
46
- const all = [h.$manager.validate()];
47
- // 遍历所有子表单并添加验证 Promise
48
- forms.forEach(v => {
49
- all.push(v.validate());
50
- })
51
- Promise.all(all).then(() => {
52
- resolve(true);
53
- callback && callback(true);
54
- }).catch((e) => {
55
- reject(e);
56
- callback && callback(e);
57
- h.vm.emit('validate-fail', e, {api});
58
- })
59
- });
60
- },
61
- /**
62
- * 验证指定字段
63
- * @param {string} field - 字段名
64
- * @param {Function} [callback] - 验证完成后的回调函数,接收验证错误信息作为参数
65
- * @returns {Promise<null|Error>} 验证结果的 Promise 对象
66
- */
67
- validateField(field, callback) {
68
- return new Promise((resolve, reject) => {
69
- const ctx = h.getFieldCtx(field);
70
- if (!ctx) return;
71
- const sub = h.subForm[ctx.id];
72
- const all = [h.$manager.validateField(ctx.id)];
73
- // 遍历所有子表单并添加验证 Promise
74
- toArray(sub).forEach(v => {
75
- all.push(v.validate());
76
- })
77
- Promise.all(all).then(() => {
78
- resolve(null);
79
- callback && callback(null);
80
- }).catch((e) => {
81
- reject(e);
82
- callback && callback(e);
83
- h.vm.emit('validate-field-fail', e, {field, api});
84
- })
85
- });
86
- },
87
- /**
88
- * 清除指定字段的验证状态
89
- * @param {string|string[]} fields - 字段名或字段名数组
90
- * @param {boolean} [clearSub=true] - 是否清除子表单的验证状态
91
- */
92
- clearValidateState(fields, clearSub = true) {
93
- api.helper.tidyFields(fields).forEach(field => {
94
- if (clearSub) this.clearSubValidateState(field);
95
- h.getCtxs(field).forEach(ctx => {
96
- h.$manager.clearValidateState(ctx);
97
- });
98
- });
99
- },
100
- /**
101
- * 清除指定字段的子表单验证状态
102
- * @param {string|string[]} fields - 字段名或字段名数组
103
- */
104
- clearSubValidateState(fields) {
105
- api.helper.tidyFields(fields).forEach(field => {
106
- h.getCtxs(field).forEach(ctx => {
107
- const subForm = h.subForm[ctx.id];
108
- if (!subForm) return;
109
- if (Array.isArray(subForm)) {
110
- subForm.forEach(form => {
111
- form.clearValidateState();
112
- })
113
- } else if (subForm) {
114
- subForm.clearValidateState();
115
- }
116
- });
117
- })
118
- },
119
- // 提交按钮相关操作
120
- btn: {
121
- /**
122
- * 设置提交按钮的加载状态
123
- * @param {boolean} [loading=true] - 是否加载中
124
- */
125
- loading: (loading = true) => {
126
- api.submitBtnProps({loading: !!loading});
127
- },
128
- /**
129
- * 设置提交按钮的禁用状态
130
- * @param {boolean} [disabled=true] - 是否禁用
131
- */
132
- disabled: (disabled = true) => {
133
- api.submitBtnProps({disabled: !!disabled});
134
- },
135
- /**
136
- * 设置提交按钮的显示状态
137
- * @param {boolean} [isShow=true] - 是否显示
138
- */
139
- show: (isShow = true) => {
140
- api.submitBtnProps({show: !!isShow});
141
- }
142
- },
143
- // 重置按钮相关操作
144
- resetBtn: {
145
- /**
146
- * 设置重置按钮的加载状态
147
- * @param {boolean} [loading=true] - 是否加载中
148
- */
149
- loading: (loading = true) => {
150
- api.resetBtnProps({loading: !!loading});
151
- },
152
- /**
153
- * 设置重置按钮的禁用状态
154
- * @param {boolean} [disabled=true] - 是否禁用
155
- */
156
- disabled: (disabled = true) => {
157
- api.resetBtnProps({disabled: !!disabled});
158
- },
159
- /**
160
- * 设置重置按钮的显示状态
161
- * @param {boolean} [isShow=true] - 是否显示
162
- */
163
- show: (isShow = true) => {
164
- api.resetBtnProps({show: !!isShow});
165
- }
166
- },
167
- /**
168
- * 设置提交按钮的属性
169
- * @param {Object} [props={}] - 按钮属性对象
170
- */
171
- submitBtnProps: (props = {}) => {
172
- let btn = tidyBtnProp(h.options.submitBtn, true);
173
- extend(btn, props);
174
- h.options.submitBtn = btn;
175
- api.refreshOptions();
176
- },
177
- /**
178
- * 设置重置按钮的属性
179
- * @param {Object} [props={}] - 按钮属性对象
180
- */
181
- resetBtnProps: (props = {}) => {
182
- let btn = tidyBtnProp(h.options.resetBtn, false);
183
- extend(btn, props);
184
- h.options.resetBtn = btn;
185
- api.refreshOptions();
186
- },
187
- /**
188
- * 提交表单
189
- * @param {Function} [successFn] - 提交成功后的回调函数,接收表单数据和 API 对象作为参数
190
- * @param {Function} [failFn] - 提交失败后的回调函数,接收 API 对象和错误信息作为参数
191
- * @returns {Promise<Object>} 表单数据的 Promise 对象
192
- */
193
- submit(successFn, failFn) {
194
- return new Promise((resolve, reject) => {
195
- api.validate().then(() => {
196
- let formData = api.formData();
197
- is.Function(successFn) && invoke(() => successFn(formData, api));
198
- is.Function(h.options.onSubmit) && invoke(() => h.options.onSubmit(formData, api));
199
- h.vm.emit('submit', formData, api);
200
- resolve(formData);
201
- }).catch((...args) => {
202
- is.Function(failFn) && invoke(() => failFn(api, ...args));
203
- reject(...args)
204
- })
205
- });
206
- },
207
- };
208
- }