vxe-pc-ui 4.0.90 → 4.0.92

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 (210) hide show
  1. package/es/form/src/form.js +7 -5
  2. package/es/form/src/render.js +15 -9
  3. package/es/form/style.css +7 -0
  4. package/es/form/style.min.css +1 -1
  5. package/es/form-design/src/form-design.js +7 -4
  6. package/es/form-design/src/form-view.js +105 -39
  7. package/es/form-design/src/layout-style.js +5 -3
  8. package/es/form-design/src/use/index.js +4 -0
  9. package/es/form-design/src/use/widget-name.js +11 -0
  10. package/es/form-design/src/{use.js → use/widget-prop-data-source.js} +27 -44
  11. package/es/form-design/src/use/widget-prop-default-value.js +38 -0
  12. package/es/form-design/src/use/widget-view.js +25 -0
  13. package/es/form-design/widget-input/input-view.js +3 -2
  14. package/es/form-design/widget-select/select-view.js +3 -2
  15. package/es/form-design/widget-textarea/textarea-view.js +3 -2
  16. package/es/form-design/widget-vxe-checkbox-group/vxe-checkbox-group-view.js +3 -2
  17. package/es/form-design/widget-vxe-date-picker/vxe-date-picker-data.js +5 -1
  18. package/es/form-design/widget-vxe-date-picker/vxe-date-picker-form.js +2 -0
  19. package/es/form-design/widget-vxe-date-picker/vxe-date-picker-view.js +3 -2
  20. package/es/form-design/widget-vxe-input/vxe-input-view.js +3 -2
  21. package/es/form-design/widget-vxe-number-input/vxe-number-input-view.js +3 -2
  22. package/es/form-design/widget-vxe-radio-group/vxe-radio-group-view.js +3 -2
  23. package/es/form-design/widget-vxe-select/vxe-select-view.js +3 -2
  24. package/es/form-design/widget-vxe-switch/vxe-switch-view.js +3 -2
  25. package/es/form-design/widget-vxe-textarea/vxe-textarea-view.js +3 -2
  26. package/es/form-design/widget-vxe-tree-select/vxe-tree-select-view.js +3 -2
  27. package/es/form-design/widget-vxe-upload-file/vxe-upload-file-view.js +3 -2
  28. package/es/form-design/widget-vxe-upload-image/vxe-upload-image-view.js +3 -2
  29. package/es/icon/style.css +1 -1
  30. package/es/list-design/src/default-setting-data.js +3 -1
  31. package/es/list-design/src/default-setting-form.js +204 -61
  32. package/es/list-design/src/layout-preview.js +45 -18
  33. package/es/list-design/src/list-design.js +17 -12
  34. package/es/list-design/src/list-view.js +137 -26
  35. package/es/list-design/style.css +2 -0
  36. package/es/list-design/style.min.css +1 -1
  37. package/es/list-view/style.css +15 -0
  38. package/es/list-view/style.min.css +1 -0
  39. package/es/menu/style.css +1 -4
  40. package/es/menu/style.min.css +1 -1
  41. package/es/modal/src/modal.js +65 -41
  42. package/es/style.css +1 -1
  43. package/es/style.min.css +1 -1
  44. package/es/tabs/src/tabs.js +40 -9
  45. package/es/ui/index.js +3 -1
  46. package/es/ui/src/log.js +1 -1
  47. package/es/vxe-form/style.css +7 -0
  48. package/es/vxe-form/style.min.css +1 -1
  49. package/es/vxe-list-design/style.css +2 -0
  50. package/es/vxe-list-design/style.min.css +1 -1
  51. package/es/vxe-list-view/style.css +15 -0
  52. package/es/vxe-list-view/style.min.css +1 -0
  53. package/es/vxe-menu/style.css +1 -4
  54. package/es/vxe-menu/style.min.css +1 -1
  55. package/lib/form/src/form.js +6 -4
  56. package/lib/form/src/form.min.js +1 -1
  57. package/lib/form/src/render.js +7 -7
  58. package/lib/form/src/render.min.js +1 -1
  59. package/lib/form/style/style.css +7 -0
  60. package/lib/form/style/style.min.css +1 -1
  61. package/lib/form-design/src/form-design.js +7 -4
  62. package/lib/form-design/src/form-design.min.js +1 -1
  63. package/lib/form-design/src/form-view.js +115 -41
  64. package/lib/form-design/src/form-view.min.js +1 -1
  65. package/lib/form-design/src/layout-style.js +5 -3
  66. package/lib/form-design/src/layout-style.min.js +1 -1
  67. package/lib/form-design/src/use/index.js +49 -0
  68. package/lib/form-design/src/use/index.min.js +1 -0
  69. package/lib/form-design/src/use/widget-name.js +20 -0
  70. package/lib/form-design/src/use/widget-name.min.js +1 -0
  71. package/lib/form-design/src/{use.js → use/widget-prop-data-source.js} +31 -59
  72. package/lib/form-design/src/use/widget-prop-data-source.min.js +1 -0
  73. package/lib/form-design/src/use/widget-prop-default-value.js +50 -0
  74. package/lib/form-design/src/use/widget-prop-default-value.min.js +1 -0
  75. package/lib/form-design/src/use/widget-view.js +43 -0
  76. package/lib/form-design/src/use/widget-view.min.js +1 -0
  77. package/lib/form-design/widget-input/input-view.js +3 -2
  78. package/lib/form-design/widget-input/input-view.min.js +1 -1
  79. package/lib/form-design/widget-select/select-view.js +3 -2
  80. package/lib/form-design/widget-select/select-view.min.js +1 -1
  81. package/lib/form-design/widget-textarea/textarea-view.js +3 -2
  82. package/lib/form-design/widget-textarea/textarea-view.min.js +1 -1
  83. package/lib/form-design/widget-vxe-checkbox-group/vxe-checkbox-group-view.js +3 -2
  84. package/lib/form-design/widget-vxe-checkbox-group/vxe-checkbox-group-view.min.js +1 -1
  85. package/lib/form-design/widget-vxe-date-picker/vxe-date-picker-data.js +5 -1
  86. package/lib/form-design/widget-vxe-date-picker/vxe-date-picker-data.min.js +1 -1
  87. package/lib/form-design/widget-vxe-date-picker/vxe-date-picker-form.js +4 -1
  88. package/lib/form-design/widget-vxe-date-picker/vxe-date-picker-view.js +3 -2
  89. package/lib/form-design/widget-vxe-date-picker/vxe-date-picker-view.min.js +1 -1
  90. package/lib/form-design/widget-vxe-input/vxe-input-view.js +3 -2
  91. package/lib/form-design/widget-vxe-input/vxe-input-view.min.js +1 -1
  92. package/lib/form-design/widget-vxe-number-input/vxe-number-input-view.js +3 -2
  93. package/lib/form-design/widget-vxe-number-input/vxe-number-input-view.min.js +1 -1
  94. package/lib/form-design/widget-vxe-radio-group/vxe-radio-group-view.js +3 -2
  95. package/lib/form-design/widget-vxe-radio-group/vxe-radio-group-view.min.js +1 -1
  96. package/lib/form-design/widget-vxe-select/vxe-select-view.js +3 -2
  97. package/lib/form-design/widget-vxe-select/vxe-select-view.min.js +1 -1
  98. package/lib/form-design/widget-vxe-switch/vxe-switch-view.js +3 -2
  99. package/lib/form-design/widget-vxe-switch/vxe-switch-view.min.js +1 -1
  100. package/lib/form-design/widget-vxe-textarea/vxe-textarea-view.js +3 -2
  101. package/lib/form-design/widget-vxe-textarea/vxe-textarea-view.min.js +1 -1
  102. package/lib/form-design/widget-vxe-tree-select/vxe-tree-select-view.js +3 -2
  103. package/lib/form-design/widget-vxe-tree-select/vxe-tree-select-view.min.js +1 -1
  104. package/lib/form-design/widget-vxe-upload-file/vxe-upload-file-view.js +3 -2
  105. package/lib/form-design/widget-vxe-upload-file/vxe-upload-file-view.min.js +1 -1
  106. package/lib/form-design/widget-vxe-upload-image/vxe-upload-image-view.js +3 -2
  107. package/lib/form-design/widget-vxe-upload-image/vxe-upload-image-view.min.js +1 -1
  108. package/lib/icon/style/style.css +1 -1
  109. package/lib/icon/style/style.min.css +1 -1
  110. package/lib/index.umd.js +15707 -15158
  111. package/lib/index.umd.min.js +1 -1
  112. package/lib/list-design/src/default-setting-data.js +3 -1
  113. package/lib/list-design/src/default-setting-data.min.js +1 -1
  114. package/lib/list-design/src/default-setting-form.js +211 -56
  115. package/lib/list-design/src/default-setting-form.min.js +1 -1
  116. package/lib/list-design/src/layout-preview.js +33 -6
  117. package/lib/list-design/src/layout-preview.min.js +1 -1
  118. package/lib/list-design/src/list-design.js +17 -12
  119. package/lib/list-design/src/list-design.min.js +1 -1
  120. package/lib/list-design/src/list-view.js +149 -24
  121. package/lib/list-design/src/list-view.min.js +1 -1
  122. package/lib/list-design/style/style.css +2 -0
  123. package/lib/list-design/style/style.min.css +1 -1
  124. package/lib/list-view/style/style.css +15 -0
  125. package/lib/list-view/style/style.min.css +1 -0
  126. package/lib/menu/style/style.css +1 -4
  127. package/lib/menu/style/style.min.css +1 -1
  128. package/lib/modal/src/modal.js +65 -41
  129. package/lib/modal/src/modal.min.js +1 -1
  130. package/lib/style.css +1 -1
  131. package/lib/style.min.css +1 -1
  132. package/lib/tabs/src/tabs.js +43 -11
  133. package/lib/tabs/src/tabs.min.js +1 -1
  134. package/lib/ui/index.js +3 -1
  135. package/lib/ui/index.min.js +1 -1
  136. package/lib/ui/src/log.js +1 -1
  137. package/lib/ui/src/log.min.js +1 -1
  138. package/lib/vxe-form/style/style.css +7 -0
  139. package/lib/vxe-form/style/style.min.css +1 -1
  140. package/lib/vxe-list-design/style/style.css +2 -0
  141. package/lib/vxe-list-design/style/style.min.css +1 -1
  142. package/lib/vxe-list-view/style/style.css +15 -0
  143. package/lib/vxe-list-view/style/style.min.css +1 -0
  144. package/lib/vxe-menu/style/style.css +1 -4
  145. package/lib/vxe-menu/style/style.min.css +1 -1
  146. package/package.json +1 -1
  147. package/packages/form/src/form.ts +6 -4
  148. package/packages/form/src/render.ts +14 -12
  149. package/packages/form-design/src/form-design.ts +8 -4
  150. package/packages/form-design/src/form-view.ts +115 -40
  151. package/packages/form-design/src/layout-style.ts +5 -3
  152. package/packages/form-design/src/use/index.ts +4 -0
  153. package/packages/form-design/src/use/widget-name.ts +14 -0
  154. package/packages/form-design/src/{use.ts → use/widget-prop-data-source.ts} +28 -52
  155. package/packages/form-design/src/use/widget-prop-default-value.ts +52 -0
  156. package/packages/form-design/src/use/widget-view.ts +33 -0
  157. package/packages/form-design/widget-input/input-view.ts +3 -2
  158. package/packages/form-design/widget-select/select-view.ts +3 -2
  159. package/packages/form-design/widget-textarea/textarea-view.ts +3 -2
  160. package/packages/form-design/widget-vxe-checkbox-group/vxe-checkbox-group-view.ts +3 -2
  161. package/packages/form-design/widget-vxe-date-picker/vxe-date-picker-data.ts +7 -1
  162. package/packages/form-design/widget-vxe-date-picker/vxe-date-picker-form.ts +2 -0
  163. package/packages/form-design/widget-vxe-date-picker/vxe-date-picker-view.ts +3 -2
  164. package/packages/form-design/widget-vxe-input/vxe-input-view.ts +3 -2
  165. package/packages/form-design/widget-vxe-number-input/vxe-number-input-view.ts +3 -2
  166. package/packages/form-design/widget-vxe-radio-group/vxe-radio-group-view.ts +3 -2
  167. package/packages/form-design/widget-vxe-select/vxe-select-view.ts +3 -2
  168. package/packages/form-design/widget-vxe-switch/vxe-switch-view.ts +3 -2
  169. package/packages/form-design/widget-vxe-textarea/vxe-textarea-view.ts +3 -2
  170. package/packages/form-design/widget-vxe-tree-select/vxe-tree-select-view.ts +3 -2
  171. package/packages/form-design/widget-vxe-upload-file/vxe-upload-file-view.ts +3 -2
  172. package/packages/form-design/widget-vxe-upload-image/vxe-upload-image-view.ts +3 -2
  173. package/packages/list-design/src/default-setting-data.ts +3 -1
  174. package/packages/list-design/src/default-setting-form.ts +213 -63
  175. package/packages/list-design/src/layout-preview.ts +49 -19
  176. package/packages/list-design/src/list-design.ts +20 -12
  177. package/packages/list-design/src/list-view.ts +149 -28
  178. package/packages/modal/src/modal.ts +64 -40
  179. package/packages/tabs/src/tabs.ts +40 -9
  180. package/packages/ui/index.ts +2 -0
  181. package/styles/components/form.scss +7 -0
  182. package/styles/components/list-design.scss +2 -0
  183. package/styles/components/list-view.scss +16 -0
  184. package/styles/components/menu.scss +1 -4
  185. package/types/components/button.d.ts +3 -9
  186. package/types/components/card.d.ts +6 -0
  187. package/types/components/form-design.d.ts +38 -2
  188. package/types/components/form-item.d.ts +4 -0
  189. package/types/components/form-view.d.ts +58 -3
  190. package/types/components/form.d.ts +3 -2
  191. package/types/components/input.d.ts +1 -1
  192. package/types/components/list-design.d.ts +43 -4
  193. package/types/components/list-view.d.ts +40 -9
  194. package/types/components/table.d.ts +5 -1
  195. package/types/components/tabs.d.ts +11 -0
  196. package/types/ui/global-icon.d.ts +1 -0
  197. package/types/ui/renderer.d.ts +19 -1
  198. package/lib/form-design/src/use.min.js +0 -1
  199. /package/es/icon/style/{iconfont.1723004629228.ttf → iconfont.1723111791738.ttf} +0 -0
  200. /package/es/icon/style/{iconfont.1723004629228.woff → iconfont.1723111791738.woff} +0 -0
  201. /package/es/icon/style/{iconfont.1723004629228.woff2 → iconfont.1723111791738.woff2} +0 -0
  202. /package/es/{iconfont.1723004629228.ttf → iconfont.1723111791738.ttf} +0 -0
  203. /package/es/{iconfont.1723004629228.woff → iconfont.1723111791738.woff} +0 -0
  204. /package/es/{iconfont.1723004629228.woff2 → iconfont.1723111791738.woff2} +0 -0
  205. /package/lib/icon/style/{iconfont.1723004629228.ttf → iconfont.1723111791738.ttf} +0 -0
  206. /package/lib/icon/style/{iconfont.1723004629228.woff → iconfont.1723111791738.woff} +0 -0
  207. /package/lib/icon/style/{iconfont.1723004629228.woff2 → iconfont.1723111791738.woff2} +0 -0
  208. /package/lib/{iconfont.1723004629228.ttf → iconfont.1723111791738.ttf} +0 -0
  209. /package/lib/{iconfont.1723004629228.woff → iconfont.1723111791738.woff} +0 -0
  210. /package/lib/{iconfont.1723004629228.woff2 → iconfont.1723111791738.woff2} +0 -0
@@ -493,11 +493,13 @@ export default defineComponent({
493
493
  return nextTick();
494
494
  }
495
495
  let fields = [];
496
- if (XEUtils.isArray(fieldOrItem)) {
497
- fields = fieldOrItem;
498
- }
499
- else {
500
- fields = [fieldOrItem];
496
+ if (fieldOrItem) {
497
+ if (XEUtils.isArray(fieldOrItem)) {
498
+ fields = fieldOrItem;
499
+ }
500
+ else {
501
+ fields = [fieldOrItem];
502
+ }
501
503
  }
502
504
  return beginValidate(fields.map(field => handleFieldOrItem($xeForm, field)), '', callback);
503
505
  };
@@ -1,4 +1,4 @@
1
- import { h } from 'vue';
1
+ import { createCommentVNode, h } from 'vue';
2
2
  import { getIcon, renderer } from '../../ui';
3
3
  import { getFuncText, isEnableConf } from '../../ui/src/utils';
4
4
  import { getSlotVNs } from '../../ui/src/vn';
@@ -32,7 +32,7 @@ export function renderTitle($xeForm, item) {
32
32
  const compConf = isEnableConf(itemRender) ? renderer.get(itemRender.name) : null;
33
33
  const params = { data, readonly, disabled, field, property: field, item, $form: $xeForm, $grid: $xeForm.xegrid };
34
34
  const titleSlot = slots ? slots.title : null;
35
- const contVNs = [];
35
+ const extraSlot = slots ? slots.extra : null;
36
36
  const titVNs = [];
37
37
  if (titlePrefix) {
38
38
  titVNs.push((titlePrefix.content || titlePrefix.message)
@@ -45,9 +45,6 @@ export function renderTitle($xeForm, item) {
45
45
  titVNs.push(h('span', {
46
46
  class: 'vxe-form--item-title-label'
47
47
  }, titleSlot ? $xeForm.callSlot(titleSlot, params) : (rftTitle ? getSlotVNs(rftTitle(itemRender, params)) : getFuncText(item.title))));
48
- contVNs.push(h('div', {
49
- class: 'vxe-form--item-title-content'
50
- }, titVNs));
51
48
  const fixVNs = [];
52
49
  if (titleSuffix) {
53
50
  fixVNs.push((titleSuffix.content || titleSuffix.message)
@@ -56,8 +53,17 @@ export function renderTitle($xeForm, item) {
56
53
  })
57
54
  : renderSuffixIcon(titleSuffix));
58
55
  }
59
- contVNs.push(h('div', {
60
- class: 'vxe-form--item-title-postfix'
61
- }, fixVNs));
62
- return contVNs;
56
+ return [
57
+ h('div', {
58
+ class: 'vxe-form--item-title-content'
59
+ }, titVNs),
60
+ h('div', {
61
+ class: 'vxe-form--item-title-postfix'
62
+ }, fixVNs),
63
+ extraSlot
64
+ ? h('div', {
65
+ class: 'vxe-form--item-title-extra'
66
+ }, $xeForm.callSlot(extraSlot, params))
67
+ : createCommentVNode()
68
+ ];
63
69
  }
package/es/form/style.css CHANGED
@@ -166,6 +166,13 @@
166
166
  .vxe-form--item-title .vxe-form--item-title-label {
167
167
  vertical-align: middle;
168
168
  }
169
+ .vxe-form--item-title .vxe-form--item-title-extra {
170
+ display: flex;
171
+ flex-direction: row;
172
+ align-items: center;
173
+ justify-content: right;
174
+ flex-grow: 1;
175
+ }
169
176
 
170
177
  .vxe-form--item-trigger-node {
171
178
  font-size: 12px;
@@ -1 +1 @@
1
- .vxe-form--item .vxe-default-input[type=reset]:hover,.vxe-form--item .vxe-default-input[type=submit]:hover{color:var(--vxe-ui-font-primary-lighten-color);border-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-form{position:relative;font-size:var(--vxe-ui-font-size-default);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);background-color:var(--vxe-ui-layout-background-color);text-align:left}.vxe-form .vxe-row{flex-shrink:0}.vxe-form--item-content,.vxe-form--item-row{display:flex;flex-direction:row;flex-wrap:wrap}.vxe-form--item-content>.vxe-form--item-col_1,.vxe-form--item-row>.vxe-form--item-col_1{width:4.16667%}.vxe-form--item-content>.vxe-form--item-col_2,.vxe-form--item-row>.vxe-form--item-col_2{width:8.33333%}.vxe-form--item-content>.vxe-form--item-col_3,.vxe-form--item-row>.vxe-form--item-col_3{width:12.5%}.vxe-form--item-content>.vxe-form--item-col_4,.vxe-form--item-row>.vxe-form--item-col_4{width:16.66667%}.vxe-form--item-content>.vxe-form--item-col_5,.vxe-form--item-row>.vxe-form--item-col_5{width:20.83333%}.vxe-form--item-content>.vxe-form--item-col_6,.vxe-form--item-row>.vxe-form--item-col_6{width:25%}.vxe-form--item-content>.vxe-form--item-col_7,.vxe-form--item-row>.vxe-form--item-col_7{width:29.16667%}.vxe-form--item-content>.vxe-form--item-col_8,.vxe-form--item-row>.vxe-form--item-col_8{width:33.33333%}.vxe-form--item-content>.vxe-form--item-col_9,.vxe-form--item-row>.vxe-form--item-col_9{width:37.5%}.vxe-form--item-content>.vxe-form--item-col_10,.vxe-form--item-row>.vxe-form--item-col_10{width:41.66667%}.vxe-form--item-content>.vxe-form--item-col_11,.vxe-form--item-row>.vxe-form--item-col_11{width:45.83333%}.vxe-form--item-content>.vxe-form--item-col_12,.vxe-form--item-row>.vxe-form--item-col_12{width:50%}.vxe-form--item-content>.vxe-form--item-col_13,.vxe-form--item-row>.vxe-form--item-col_13{width:54.16667%}.vxe-form--item-content>.vxe-form--item-col_14,.vxe-form--item-row>.vxe-form--item-col_14{width:58.33333%}.vxe-form--item-content>.vxe-form--item-col_15,.vxe-form--item-row>.vxe-form--item-col_15{width:62.5%}.vxe-form--item-content>.vxe-form--item-col_16,.vxe-form--item-row>.vxe-form--item-col_16{width:66.66667%}.vxe-form--item-content>.vxe-form--item-col_17,.vxe-form--item-row>.vxe-form--item-col_17{width:70.83333%}.vxe-form--item-content>.vxe-form--item-col_18,.vxe-form--item-row>.vxe-form--item-col_18{width:75%}.vxe-form--item-content>.vxe-form--item-col_19,.vxe-form--item-row>.vxe-form--item-col_19{width:79.16667%}.vxe-form--item-content>.vxe-form--item-col_20,.vxe-form--item-row>.vxe-form--item-col_20{width:83.33333%}.vxe-form--item-content>.vxe-form--item-col_21,.vxe-form--item-row>.vxe-form--item-col_21{width:87.5%}.vxe-form--item-content>.vxe-form--item-col_22,.vxe-form--item-row>.vxe-form--item-col_22{width:91.66667%}.vxe-form--item-content>.vxe-form--item-col_23,.vxe-form--item-row>.vxe-form--item-col_23{width:95.83333%}.vxe-form--item-content>.vxe-form--item-col_24,.vxe-form--item-row>.vxe-form--item-col_24{width:100%}.vxe-form-slots{display:none}.vxe-form--item-content,.vxe-form--item-trigger-node{display:inline-block;vertical-align:middle}.vxe-form--item-title{display:flex;flex-direction:row;max-width:320px;padding-right:.8em}.vxe-form--item-title.is--ellipsis .vxe-form--item-title-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-form--item-title .vxe-form--item-title-postfix,.vxe-form--item-title .vxe-form--item-title-prefix,.vxe-form--item-title .vxe-form--item-title-suffix{flex-shrink:0}.vxe-form--item-title .vxe-form--item-title-prefix,.vxe-form--item-title .vxe-form--item-title-suffix{cursor:help;vertical-align:middle}.vxe-form--item-title .vxe-form--item-title-prefix{margin-right:.25em}.vxe-form--item-title .vxe-form--item-title-suffix{margin-left:.2em}.vxe-form--item-title .vxe-form--item-title-postfix{display:flex;align-items:center}.vxe-form--item-title .vxe-form--item-title-content{flex-grow:1}.vxe-form--item-title .vxe-form--item-title-label{vertical-align:middle}.vxe-form--item-trigger-node{font-size:12px;min-width:100px;color:#909399;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer}.vxe-form--item-trigger-node .vxe-form--item-trigger-icon{display:inline-block;margin:0 .25em;transition:all .1s}.vxe-form--item-valid{position:absolute;width:100%;font-size:12px;line-height:1.2em;color:var(--vxe-ui-form-validate-error-color);background-color:var(--vxe-ui-form-validate-error-background-color);z-index:1;opacity:0;transform-origin:center top;transform:scaleY(0);transition:all .2s ease-in-out}.vxe-form .vxe-form--gather{display:inline-flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start}.vxe-form .vxe-form--wrapper{display:flex;flex-direction:row;flex-wrap:wrap}.vxe-form .vxe-form--item{display:none;padding:.5em .8em .5em 0}.vxe-form .vxe-form--item.is--vertical{padding:.4em 0 .4em 0}.vxe-form .vxe-form--item.is--active:not(.is--hidden){display:inline-flex}.vxe-form--item.is--bold>.vxe-form--item-inner>.vxe-form--item-title{font-weight:700}.vxe-form--item.is--colon .vxe-form--item-title-postfix:after{content:":";font-weight:400;margin-left:.2em}.vxe-form--item.is--asterisk.is--required .vxe-form--item-title-content:before{content:"*";color:var(--vxe-ui-form-validate-error-color);font-family:Verdana,Arial,Tahoma;margin-right:.2em;font-weight:400;vertical-align:middle}.vxe-form--item.is--vertical .vxe-form--item-inner{flex-direction:column;align-items:initial}.vxe-form--item.is--vertical .vxe-form--item-inner .vxe-form--item-title{height:2.5em;line-height:2.3em;padding-right:0;max-width:none}.vxe-form--item.is--vertical .vxe-form--item-inner .vxe-form--item-title-content{flex-grow:initial}.vxe-form--item.is--span .vxe-date-picker,.vxe-form--item.is--span .vxe-default-input:not([type=submit]):not([type=reset]),.vxe-form--item.is--span .vxe-default-select,.vxe-form--item.is--span .vxe-default-textarea,.vxe-form--item.is--span .vxe-input,.vxe-form--item.is--span .vxe-number-input,.vxe-form--item.is--span .vxe-password-input,.vxe-form--item.is--span .vxe-select,.vxe-form--item.is--span .vxe-textarea,.vxe-form--item.is--span .vxe-tree-select{width:100%}.vxe-form--item.is--error .vxe-date-picker,.vxe-form--item.is--error .vxe-default-input,.vxe-form--item.is--error .vxe-default-select,.vxe-form--item.is--error .vxe-default-textarea,.vxe-form--item.is--error .vxe-input,.vxe-form--item.is--error .vxe-number-input,.vxe-form--item.is--error .vxe-password-input,.vxe-form--item.is--error .vxe-select,.vxe-form--item.is--error .vxe-textarea>.vxe-textarea--inner,.vxe-form--item.is--error .vxe-tree-select,.vxe-form--item.is--error .vxe-upload .vxe-upload--file-action-btn>.vxe-button,.vxe-form--item.is--error .vxe-upload .vxe-upload--image-action-box{border-color:var(--vxe-ui-form-validate-error-color)}.vxe-form--item.is--error .vxe-date-picker:focus,.vxe-form--item.is--error .vxe-default-input[type=search]:focus,.vxe-form--item.is--error .vxe-default-input[type=text]:focus,.vxe-form--item.is--error .vxe-default-select:focus,.vxe-form--item.is--error .vxe-default-textarea:focus,.vxe-form--item.is--error .vxe-input:focus,.vxe-form--item.is--error .vxe-number-input:focus,.vxe-form--item.is--error .vxe-password-input:focus,.vxe-form--item.is--error .vxe-textarea>.vxe-textarea--inner:focus{border-color:var(--vxe-ui-form-validate-error-color)}.vxe-form--item.is--error .vxe-form--item-valid{opacity:1;transform:scaleY(1)}.vxe-form--item .vxe-form--item-inner{display:flex;flex-direction:row;align-items:center;flex-grow:1}.vxe-form--item .vxe-form--item-inner .vxe-form--item-title{flex-shrink:0}.vxe-form--item .vxe-form--item-inner .vxe-form--item-content{position:relative;flex-grow:1;word-break:break-all}.vxe-form--item .vxe-default-input,.vxe-form--item .vxe-default-select,.vxe-form--item .vxe-default-textarea{outline:0;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius)}.vxe-form--item .vxe-default-input,.vxe-form--item .vxe-default-select{height:var(--vxe-ui-button-height-default)}.vxe-form--item .vxe-default-input{padding:0 .8em}.vxe-form--item .vxe-default-textarea{height:calc(var(--vxe-ui-button-height-default) * 2);padding:.3em .6em}.vxe-form--item .vxe-default-input[type=number]{padding-right:.2em}.vxe-form--item .vxe-default-input[type=search],.vxe-form--item .vxe-default-input[type=text]{padding:0 1em}.vxe-form--item .vxe-default-input[type=search],.vxe-form--item .vxe-default-input[type=text],.vxe-form--item .vxe-default-select,.vxe-form--item .vxe-default-textarea{color:var(--vxe-ui-font-color)}.vxe-form--item .vxe-default-input[type=search]:focus,.vxe-form--item .vxe-default-input[type=text]:focus,.vxe-form--item .vxe-default-select:focus,.vxe-form--item .vxe-default-textarea:focus{border:1px solid var(--vxe-ui-font-primary-color)}.vxe-form--item .vxe-default-input[type=search][disabled],.vxe-form--item .vxe-default-input[type=text][disabled],.vxe-form--item .vxe-default-select[disabled],.vxe-form--item .vxe-default-textarea[disabled]{cursor:not-allowed;background-color:var(--vxe-ui-input-disabled-background-color)}.vxe-form--item .vxe-default-input[type=reset],.vxe-form--item .vxe-default-input[type=submit]{line-height:calc(var(--vxe-ui-button-height-default) - 2px);background-color:#fff;cursor:pointer}.vxe-form--item .vxe-default-input[type=reset]:active,.vxe-form--item .vxe-default-input[type=submit]:active{color:var(--vxe-ui-font-primary-darken-color);border-color:var(--vxe-ui-font-primary-darken-color)}.vxe-form--item .vxe-default-input[type=date]::-webkit-inner-spin-button{margin-top:6px}.vxe-form--item .vxe-default-input[type=date]::-webkit-inner-spin-button,.vxe-form--item .vxe-default-input[type=number]::-webkit-inner-spin-button{height:24px}.vxe-form--item .vxe-default-input::-moz-placeholder{color:var(--vxe-ui-input-placeholder-color)}.vxe-form--item .vxe-default-input::placeholder{color:var(--vxe-ui-input-placeholder-color)}.vxe-form--item .vxe-default-input[type=search],.vxe-form--item .vxe-default-input[type=text],.vxe-form--item .vxe-default-select,.vxe-form--item .vxe-default-textarea{width:180px}.vxe-form--item .vxe-default-textarea{resize:none;vertical-align:middle}.vxe-form--item .vxe-default-textarea::-moz-placeholder{color:var(--vxe-ui-input-placeholder-color)}.vxe-form--item .vxe-default-textarea::placeholder{color:var(--vxe-ui-input-placeholder-color)}.vxe-form .vxe-form--item-inner{min-height:var(--vxe-ui-form-item-min-height-default)}.vxe-form .vxe-form--item-inner>.align--center{text-align:center}.vxe-form .vxe-form--item-inner>.align--left{text-align:left}.vxe-form .vxe-form--item-inner>.align--right{text-align:right}.vxe-form.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-form.size--medium .vxe-form--item-inner{min-height:var(--vxe-ui-form-item-min-height-medium)}.vxe-form.size--medium .vxe-default-input[type=reset],.vxe-form.size--medium .vxe-default-input[type=submit]{line-height:calc(var(--vxe-ui-button-height-medium) - 2px)}.vxe-form.size--medium .vxe-default-input,.vxe-form.size--medium .vxe-default-select{height:var(--vxe-ui-button-height-medium)}.vxe-form.size--medium .vxe-default-textarea{height:calc(var(--vxe-ui-button-height-medium) * 2)}.vxe-form.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-form.size--small .vxe-form--item-inner{min-height:var(--vxe-ui-form-item-min-height-small)}.vxe-form.size--small .vxe-default-input[type=reset],.vxe-form.size--small .vxe-default-input[type=submit]{line-height:calc(var(--vxe-ui-button-height-small) - 2px)}.vxe-form.size--small .vxe-default-input,.vxe-form.size--small .vxe-default-select{height:var(--vxe-ui-button-height-small)}.vxe-form.size--small .vxe-default-textarea{height:calc(var(--vxe-ui-button-height-small) * 2)}.vxe-form.size--mini{font-size:var(--vxe-ui-font-size-mini)}.vxe-form.size--mini .vxe-form--item-inner{min-height:var(--vxe-ui-form-item-min-height-mini)}.vxe-form.size--mini .vxe-default-input[type=reset],.vxe-form.size--mini .vxe-default-input[type=submit]{line-height:calc(var(--vxe-ui-button-height-mini) - 2px)}.vxe-form.size--mini .vxe-default-input,.vxe-form.size--mini .vxe-default-select{height:var(--vxe-ui-button-height-mini)}.vxe-form.size--mini .vxe-default-textarea{height:calc(var(--vxe-ui-button-height-mini) * 2)}
1
+ .vxe-form--item .vxe-default-input[type=reset]:hover,.vxe-form--item .vxe-default-input[type=submit]:hover{color:var(--vxe-ui-font-primary-lighten-color);border-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-form{position:relative;font-size:var(--vxe-ui-font-size-default);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);background-color:var(--vxe-ui-layout-background-color);text-align:left}.vxe-form .vxe-row{flex-shrink:0}.vxe-form--item-content,.vxe-form--item-row{display:flex;flex-direction:row;flex-wrap:wrap}.vxe-form--item-content>.vxe-form--item-col_1,.vxe-form--item-row>.vxe-form--item-col_1{width:4.16667%}.vxe-form--item-content>.vxe-form--item-col_2,.vxe-form--item-row>.vxe-form--item-col_2{width:8.33333%}.vxe-form--item-content>.vxe-form--item-col_3,.vxe-form--item-row>.vxe-form--item-col_3{width:12.5%}.vxe-form--item-content>.vxe-form--item-col_4,.vxe-form--item-row>.vxe-form--item-col_4{width:16.66667%}.vxe-form--item-content>.vxe-form--item-col_5,.vxe-form--item-row>.vxe-form--item-col_5{width:20.83333%}.vxe-form--item-content>.vxe-form--item-col_6,.vxe-form--item-row>.vxe-form--item-col_6{width:25%}.vxe-form--item-content>.vxe-form--item-col_7,.vxe-form--item-row>.vxe-form--item-col_7{width:29.16667%}.vxe-form--item-content>.vxe-form--item-col_8,.vxe-form--item-row>.vxe-form--item-col_8{width:33.33333%}.vxe-form--item-content>.vxe-form--item-col_9,.vxe-form--item-row>.vxe-form--item-col_9{width:37.5%}.vxe-form--item-content>.vxe-form--item-col_10,.vxe-form--item-row>.vxe-form--item-col_10{width:41.66667%}.vxe-form--item-content>.vxe-form--item-col_11,.vxe-form--item-row>.vxe-form--item-col_11{width:45.83333%}.vxe-form--item-content>.vxe-form--item-col_12,.vxe-form--item-row>.vxe-form--item-col_12{width:50%}.vxe-form--item-content>.vxe-form--item-col_13,.vxe-form--item-row>.vxe-form--item-col_13{width:54.16667%}.vxe-form--item-content>.vxe-form--item-col_14,.vxe-form--item-row>.vxe-form--item-col_14{width:58.33333%}.vxe-form--item-content>.vxe-form--item-col_15,.vxe-form--item-row>.vxe-form--item-col_15{width:62.5%}.vxe-form--item-content>.vxe-form--item-col_16,.vxe-form--item-row>.vxe-form--item-col_16{width:66.66667%}.vxe-form--item-content>.vxe-form--item-col_17,.vxe-form--item-row>.vxe-form--item-col_17{width:70.83333%}.vxe-form--item-content>.vxe-form--item-col_18,.vxe-form--item-row>.vxe-form--item-col_18{width:75%}.vxe-form--item-content>.vxe-form--item-col_19,.vxe-form--item-row>.vxe-form--item-col_19{width:79.16667%}.vxe-form--item-content>.vxe-form--item-col_20,.vxe-form--item-row>.vxe-form--item-col_20{width:83.33333%}.vxe-form--item-content>.vxe-form--item-col_21,.vxe-form--item-row>.vxe-form--item-col_21{width:87.5%}.vxe-form--item-content>.vxe-form--item-col_22,.vxe-form--item-row>.vxe-form--item-col_22{width:91.66667%}.vxe-form--item-content>.vxe-form--item-col_23,.vxe-form--item-row>.vxe-form--item-col_23{width:95.83333%}.vxe-form--item-content>.vxe-form--item-col_24,.vxe-form--item-row>.vxe-form--item-col_24{width:100%}.vxe-form-slots{display:none}.vxe-form--item-content,.vxe-form--item-trigger-node{display:inline-block;vertical-align:middle}.vxe-form--item-title{display:flex;flex-direction:row;max-width:320px;padding-right:.8em}.vxe-form--item-title.is--ellipsis .vxe-form--item-title-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-form--item-title .vxe-form--item-title-postfix,.vxe-form--item-title .vxe-form--item-title-prefix,.vxe-form--item-title .vxe-form--item-title-suffix{flex-shrink:0}.vxe-form--item-title .vxe-form--item-title-prefix,.vxe-form--item-title .vxe-form--item-title-suffix{cursor:help;vertical-align:middle}.vxe-form--item-title .vxe-form--item-title-prefix{margin-right:.25em}.vxe-form--item-title .vxe-form--item-title-suffix{margin-left:.2em}.vxe-form--item-title .vxe-form--item-title-postfix{display:flex;align-items:center}.vxe-form--item-title .vxe-form--item-title-content{flex-grow:1}.vxe-form--item-title .vxe-form--item-title-label{vertical-align:middle}.vxe-form--item-title .vxe-form--item-title-extra{display:flex;flex-direction:row;align-items:center;justify-content:right;flex-grow:1}.vxe-form--item-trigger-node{font-size:12px;min-width:100px;color:#909399;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer}.vxe-form--item-trigger-node .vxe-form--item-trigger-icon{display:inline-block;margin:0 .25em;transition:all .1s}.vxe-form--item-valid{position:absolute;width:100%;font-size:12px;line-height:1.2em;color:var(--vxe-ui-form-validate-error-color);background-color:var(--vxe-ui-form-validate-error-background-color);z-index:1;opacity:0;transform-origin:center top;transform:scaleY(0);transition:all .2s ease-in-out}.vxe-form .vxe-form--gather{display:inline-flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start}.vxe-form .vxe-form--wrapper{display:flex;flex-direction:row;flex-wrap:wrap}.vxe-form .vxe-form--item{display:none;padding:.5em .8em .5em 0}.vxe-form .vxe-form--item.is--vertical{padding:.4em 0 .4em 0}.vxe-form .vxe-form--item.is--active:not(.is--hidden){display:inline-flex}.vxe-form--item.is--bold>.vxe-form--item-inner>.vxe-form--item-title{font-weight:700}.vxe-form--item.is--colon .vxe-form--item-title-postfix:after{content:":";font-weight:400;margin-left:.2em}.vxe-form--item.is--asterisk.is--required .vxe-form--item-title-content:before{content:"*";color:var(--vxe-ui-form-validate-error-color);font-family:Verdana,Arial,Tahoma;margin-right:.2em;font-weight:400;vertical-align:middle}.vxe-form--item.is--vertical .vxe-form--item-inner{flex-direction:column;align-items:initial}.vxe-form--item.is--vertical .vxe-form--item-inner .vxe-form--item-title{height:2.5em;line-height:2.3em;padding-right:0;max-width:none}.vxe-form--item.is--vertical .vxe-form--item-inner .vxe-form--item-title-content{flex-grow:initial}.vxe-form--item.is--span .vxe-date-picker,.vxe-form--item.is--span .vxe-default-input:not([type=submit]):not([type=reset]),.vxe-form--item.is--span .vxe-default-select,.vxe-form--item.is--span .vxe-default-textarea,.vxe-form--item.is--span .vxe-input,.vxe-form--item.is--span .vxe-number-input,.vxe-form--item.is--span .vxe-password-input,.vxe-form--item.is--span .vxe-select,.vxe-form--item.is--span .vxe-textarea,.vxe-form--item.is--span .vxe-tree-select{width:100%}.vxe-form--item.is--error .vxe-date-picker,.vxe-form--item.is--error .vxe-default-input,.vxe-form--item.is--error .vxe-default-select,.vxe-form--item.is--error .vxe-default-textarea,.vxe-form--item.is--error .vxe-input,.vxe-form--item.is--error .vxe-number-input,.vxe-form--item.is--error .vxe-password-input,.vxe-form--item.is--error .vxe-select,.vxe-form--item.is--error .vxe-textarea>.vxe-textarea--inner,.vxe-form--item.is--error .vxe-tree-select,.vxe-form--item.is--error .vxe-upload .vxe-upload--file-action-btn>.vxe-button,.vxe-form--item.is--error .vxe-upload .vxe-upload--image-action-box{border-color:var(--vxe-ui-form-validate-error-color)}.vxe-form--item.is--error .vxe-date-picker:focus,.vxe-form--item.is--error .vxe-default-input[type=search]:focus,.vxe-form--item.is--error .vxe-default-input[type=text]:focus,.vxe-form--item.is--error .vxe-default-select:focus,.vxe-form--item.is--error .vxe-default-textarea:focus,.vxe-form--item.is--error .vxe-input:focus,.vxe-form--item.is--error .vxe-number-input:focus,.vxe-form--item.is--error .vxe-password-input:focus,.vxe-form--item.is--error .vxe-textarea>.vxe-textarea--inner:focus{border-color:var(--vxe-ui-form-validate-error-color)}.vxe-form--item.is--error .vxe-form--item-valid{opacity:1;transform:scaleY(1)}.vxe-form--item .vxe-form--item-inner{display:flex;flex-direction:row;align-items:center;flex-grow:1}.vxe-form--item .vxe-form--item-inner .vxe-form--item-title{flex-shrink:0}.vxe-form--item .vxe-form--item-inner .vxe-form--item-content{position:relative;flex-grow:1;word-break:break-all}.vxe-form--item .vxe-default-input,.vxe-form--item .vxe-default-select,.vxe-form--item .vxe-default-textarea{outline:0;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius)}.vxe-form--item .vxe-default-input,.vxe-form--item .vxe-default-select{height:var(--vxe-ui-button-height-default)}.vxe-form--item .vxe-default-input{padding:0 .8em}.vxe-form--item .vxe-default-textarea{height:calc(var(--vxe-ui-button-height-default) * 2);padding:.3em .6em}.vxe-form--item .vxe-default-input[type=number]{padding-right:.2em}.vxe-form--item .vxe-default-input[type=search],.vxe-form--item .vxe-default-input[type=text]{padding:0 1em}.vxe-form--item .vxe-default-input[type=search],.vxe-form--item .vxe-default-input[type=text],.vxe-form--item .vxe-default-select,.vxe-form--item .vxe-default-textarea{color:var(--vxe-ui-font-color)}.vxe-form--item .vxe-default-input[type=search]:focus,.vxe-form--item .vxe-default-input[type=text]:focus,.vxe-form--item .vxe-default-select:focus,.vxe-form--item .vxe-default-textarea:focus{border:1px solid var(--vxe-ui-font-primary-color)}.vxe-form--item .vxe-default-input[type=search][disabled],.vxe-form--item .vxe-default-input[type=text][disabled],.vxe-form--item .vxe-default-select[disabled],.vxe-form--item .vxe-default-textarea[disabled]{cursor:not-allowed;background-color:var(--vxe-ui-input-disabled-background-color)}.vxe-form--item .vxe-default-input[type=reset],.vxe-form--item .vxe-default-input[type=submit]{line-height:calc(var(--vxe-ui-button-height-default) - 2px);background-color:#fff;cursor:pointer}.vxe-form--item .vxe-default-input[type=reset]:active,.vxe-form--item .vxe-default-input[type=submit]:active{color:var(--vxe-ui-font-primary-darken-color);border-color:var(--vxe-ui-font-primary-darken-color)}.vxe-form--item .vxe-default-input[type=date]::-webkit-inner-spin-button{margin-top:6px}.vxe-form--item .vxe-default-input[type=date]::-webkit-inner-spin-button,.vxe-form--item .vxe-default-input[type=number]::-webkit-inner-spin-button{height:24px}.vxe-form--item .vxe-default-input::-moz-placeholder{color:var(--vxe-ui-input-placeholder-color)}.vxe-form--item .vxe-default-input::placeholder{color:var(--vxe-ui-input-placeholder-color)}.vxe-form--item .vxe-default-input[type=search],.vxe-form--item .vxe-default-input[type=text],.vxe-form--item .vxe-default-select,.vxe-form--item .vxe-default-textarea{width:180px}.vxe-form--item .vxe-default-textarea{resize:none;vertical-align:middle}.vxe-form--item .vxe-default-textarea::-moz-placeholder{color:var(--vxe-ui-input-placeholder-color)}.vxe-form--item .vxe-default-textarea::placeholder{color:var(--vxe-ui-input-placeholder-color)}.vxe-form .vxe-form--item-inner{min-height:var(--vxe-ui-form-item-min-height-default)}.vxe-form .vxe-form--item-inner>.align--center{text-align:center}.vxe-form .vxe-form--item-inner>.align--left{text-align:left}.vxe-form .vxe-form--item-inner>.align--right{text-align:right}.vxe-form.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-form.size--medium .vxe-form--item-inner{min-height:var(--vxe-ui-form-item-min-height-medium)}.vxe-form.size--medium .vxe-default-input[type=reset],.vxe-form.size--medium .vxe-default-input[type=submit]{line-height:calc(var(--vxe-ui-button-height-medium) - 2px)}.vxe-form.size--medium .vxe-default-input,.vxe-form.size--medium .vxe-default-select{height:var(--vxe-ui-button-height-medium)}.vxe-form.size--medium .vxe-default-textarea{height:calc(var(--vxe-ui-button-height-medium) * 2)}.vxe-form.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-form.size--small .vxe-form--item-inner{min-height:var(--vxe-ui-form-item-min-height-small)}.vxe-form.size--small .vxe-default-input[type=reset],.vxe-form.size--small .vxe-default-input[type=submit]{line-height:calc(var(--vxe-ui-button-height-small) - 2px)}.vxe-form.size--small .vxe-default-input,.vxe-form.size--small .vxe-default-select{height:var(--vxe-ui-button-height-small)}.vxe-form.size--small .vxe-default-textarea{height:calc(var(--vxe-ui-button-height-small) * 2)}.vxe-form.size--mini{font-size:var(--vxe-ui-font-size-mini)}.vxe-form.size--mini .vxe-form--item-inner{min-height:var(--vxe-ui-form-item-min-height-mini)}.vxe-form.size--mini .vxe-default-input[type=reset],.vxe-form.size--mini .vxe-default-input[type=submit]{line-height:calc(var(--vxe-ui-button-height-mini) - 2px)}.vxe-form.size--mini .vxe-default-input,.vxe-form.size--mini .vxe-default-select{height:var(--vxe-ui-button-height-mini)}.vxe-form.size--mini .vxe-default-textarea{height:calc(var(--vxe-ui-button-height-mini) * 2)}
@@ -92,7 +92,7 @@ export default defineComponent({
92
92
  return XEUtils.clone(reactData.formData, true);
93
93
  };
94
94
  const loadFormConfig = (data) => {
95
- reactData.formData = Object.assign({}, data);
95
+ reactData.formData = Object.assign({}, createSettingForm(), data);
96
96
  return nextTick();
97
97
  };
98
98
  const getWidgetData = () => {
@@ -127,7 +127,7 @@ export default defineComponent({
127
127
  },
128
128
  clearConfig() {
129
129
  reactData.widgetObjList = [];
130
- createSettingForm();
130
+ initSettingForm();
131
131
  return nextTick();
132
132
  },
133
133
  loadConfig,
@@ -301,7 +301,10 @@ export default defineComponent({
301
301
  const createFormConfig = compConf ? compConf.createFormDesignSettingFormConfig : null;
302
302
  formData = (createFormConfig ? createFormConfig({}) : {}) || {};
303
303
  }
304
- reactData.formData = formData;
304
+ return formData;
305
+ };
306
+ const initSettingForm = () => {
307
+ reactData.formData = createSettingForm();
305
308
  };
306
309
  const openStylePreviewEvent = () => {
307
310
  openStyleSetting();
@@ -367,7 +370,7 @@ export default defineComponent({
367
370
  watch(() => props.config, (value) => {
368
371
  loadConfig(value || {});
369
372
  });
370
- createSettingForm();
373
+ initSettingForm();
371
374
  updateWidgetConfigs();
372
375
  if (props.config) {
373
376
  loadConfig(props.config);
@@ -11,10 +11,7 @@ export default defineComponent({
11
11
  name: 'VxeFormView',
12
12
  props: {
13
13
  modelValue: Object,
14
- config: {
15
- type: Object,
16
- default: () => ({})
17
- },
14
+ config: Object,
18
15
  viewRender: Object,
19
16
  createFormConfig: Function
20
17
  },
@@ -46,6 +43,12 @@ export default defineComponent({
46
43
  getRefMaps: () => refMaps,
47
44
  getComputeMaps: () => computeMaps
48
45
  };
46
+ const clearConfig = () => {
47
+ return loadConfig({
48
+ formConfig: {},
49
+ widgetData: []
50
+ });
51
+ };
49
52
  const loadConfig = (config) => {
50
53
  if (config) {
51
54
  const { formConfig, widgetData } = config;
@@ -54,42 +57,30 @@ export default defineComponent({
54
57
  }
55
58
  return nextTick();
56
59
  };
57
- const loadFormConfig = (formConfig) => {
58
- const { viewRender } = props;
59
- const { createFormConfig } = props;
60
+ const parseConfig = (config) => {
61
+ const { formConfig, widgetData } = config || {};
62
+ const widgetObjList = parseWidgetData(widgetData || []);
63
+ return Object.assign(Object.assign({}, parseForm(widgetObjList)), { formConfig: parseFormConfig(formConfig || {}), widgetData: widgetObjList });
64
+ };
65
+ const parseFormConfig = (formConfig) => {
66
+ const { viewRender, createFormConfig } = props;
60
67
  const params = { viewRender, formConfig };
61
68
  if (createFormConfig) {
62
- reactData.formConfig = createFormConfig(params);
69
+ return createFormConfig(params);
63
70
  }
64
- else {
65
- const { name } = viewRender || {};
66
- const compConf = renderer.get(name) || {};
67
- const createPCFormConfig = compConf ? compConf.createFormViewFormConfig : null;
68
- reactData.formConfig = Object.assign({}, createPCFormConfig ? createPCFormConfig(params) : createDefaultFormViewPCFormConfig(params));
69
- }
70
- return nextTick();
71
+ const { name } = viewRender || {};
72
+ const compConf = renderer.get(name) || {};
73
+ const createPCFormConfig = compConf ? compConf.createFormViewFormConfig : null;
74
+ return Object.assign({}, createPCFormConfig ? createPCFormConfig(params) : createDefaultFormViewPCFormConfig(params));
71
75
  };
72
- const loadWidgetData = (widgetData) => {
73
- reactData.widgetObjList = (widgetData || []).map(item => configToWidget(item));
74
- updateWidgetInfo();
76
+ const loadFormConfig = (formConfig) => {
77
+ reactData.formConfig = parseFormConfig(formConfig);
75
78
  return nextTick();
76
79
  };
77
- const getWidgetDefaultValue = (widget) => {
78
- switch (widget.name) {
79
- case 'subtable':
80
- return [];
81
- }
82
- return null;
83
- };
84
- const getWidgetDefaultRule = () => {
85
- return [
86
- { required: true, content: '该填写该字段!' }
87
- ];
88
- };
89
- const updateWidgetInfo = () => {
80
+ const parseForm = (widgetObjList) => {
90
81
  const formData = {};
91
82
  const formRules = {};
92
- XEUtils.eachTree(reactData.widgetObjList, widget => {
83
+ XEUtils.eachTree(widgetObjList, widget => {
93
84
  const { name, field, required } = widget;
94
85
  const compConf = renderer.get(name) || {};
95
86
  const createWidgetFieldValue = compConf.createFormDesignWidgetFieldValue;
@@ -105,10 +96,35 @@ export default defineComponent({
105
96
  formRules[field] = getWidgetDefaultRule();
106
97
  }
107
98
  }, { children: 'children' });
99
+ return {
100
+ formData,
101
+ formRules
102
+ };
103
+ };
104
+ const parseWidgetData = (widgetData) => {
105
+ return (widgetData || []).map(item => configToWidget(item));
106
+ };
107
+ const loadWidgetData = (widgetData) => {
108
+ const widgetObjList = parseWidgetData(widgetData);
109
+ reactData.widgetObjList = widgetObjList;
110
+ const { formData, formRules } = parseForm(widgetObjList);
108
111
  reactData.formRules = formRules;
109
112
  emit('update:modelValue', Object.assign(formData, props.modelValue));
113
+ return nextTick();
110
114
  };
111
- const updateItemStatus = (widget, value) => {
115
+ const getWidgetDefaultValue = (widget) => {
116
+ switch (widget.name) {
117
+ case 'subtable':
118
+ return [];
119
+ }
120
+ return null;
121
+ };
122
+ const getWidgetDefaultRule = () => {
123
+ return [
124
+ { required: true, content: '该填写该字段!' }
125
+ ];
126
+ };
127
+ const updateWidgetStatus = (widget, value) => {
112
128
  const { field } = widget;
113
129
  const $form = formRef.value;
114
130
  if ($form) {
@@ -138,14 +154,60 @@ export default defineComponent({
138
154
  const dispatchEvent = (type, params, evnt) => {
139
155
  emit(type, createEvent(evnt, { $formView: $xeFormView }, params));
140
156
  };
157
+ const toWidgetFields = (widget) => {
158
+ if (widget) {
159
+ if (XEUtils.isArray(widget)) {
160
+ return widget.map(item => item.name);
161
+ }
162
+ else {
163
+ return [widget.name];
164
+ }
165
+ }
166
+ return null;
167
+ };
141
168
  const formViewMethods = {
142
169
  dispatchEvent,
170
+ clearConfig,
143
171
  loadConfig,
172
+ parseConfig,
144
173
  loadFormConfig,
145
174
  loadWidgetData,
146
- updateItemStatus,
175
+ updateWidgetStatus,
147
176
  setItemValue,
148
- getItemValue
177
+ getItemValue,
178
+ validate() {
179
+ const $form = formRef.value;
180
+ if ($form) {
181
+ return $form.validate();
182
+ }
183
+ return nextTick();
184
+ },
185
+ validateWidget(widget) {
186
+ const $form = formRef.value;
187
+ if ($form) {
188
+ return $form.validateField(toWidgetFields(widget));
189
+ }
190
+ return nextTick();
191
+ },
192
+ clearValidate(widget) {
193
+ const $form = formRef.value;
194
+ if ($form) {
195
+ return $form.clearValidate(toWidgetFields(widget));
196
+ }
197
+ return nextTick();
198
+ },
199
+ reset() {
200
+ const $form = formRef.value;
201
+ if ($form) {
202
+ return $form.reset();
203
+ }
204
+ return nextTick();
205
+ },
206
+ /**
207
+ * 已废弃
208
+ * @deprecated
209
+ */
210
+ updateItemStatus: updateWidgetStatus
149
211
  };
150
212
  const handleSubmit = (params) => {
151
213
  dispatchEvent('submit', params, params.$event);
@@ -217,7 +279,9 @@ export default defineComponent({
217
279
  });
218
280
  }),
219
281
  footerSlot
220
- ? h(VxeFormItemComponent, {}, {
282
+ ? h(VxeFormGatherComponent, {
283
+ span: 24
284
+ }, {
221
285
  default() {
222
286
  return footerSlot({});
223
287
  }
@@ -229,10 +293,12 @@ export default defineComponent({
229
293
  ]);
230
294
  };
231
295
  $xeFormView.renderVN = renderVN;
232
- watch(() => props.config, () => {
233
- loadConfig(props.config);
296
+ watch(() => props.config, (value) => {
297
+ loadConfig(value || {});
234
298
  });
235
- loadConfig(props.config);
299
+ if (props.config) {
300
+ loadConfig(props.config);
301
+ }
236
302
  provide('$xeFormView', $xeFormView);
237
303
  return $xeFormView;
238
304
  },
@@ -1,7 +1,7 @@
1
1
  import { createCommentVNode, defineComponent, h, inject, ref, reactive, provide } from 'vue';
2
2
  import { getIcon, getI18n, renderer } from '@vxe-ui/core';
3
3
  import { getSlotVNs } from '../../ui/src/vn';
4
- import VxeDrawerComponent from '../../drawer/src/drawer';
4
+ import VxeModalComponent from '../../modal/src/modal';
5
5
  import VxeTabsComponent from '../../tabs/src/tabs';
6
6
  import VxeTabPaneComponent from '../../tabs/src/tab-pane';
7
7
  import VxeFormViewComponent from './form-view';
@@ -156,13 +156,15 @@ export default defineComponent({
156
156
  };
157
157
  const renderVN = () => {
158
158
  const { showPc, showMobile } = formDesignProps;
159
- return h(VxeDrawerComponent, {
159
+ return h(VxeModalComponent, {
160
160
  modelValue: settingVisible.value,
161
161
  title: getI18n('vxe.formDesign.styleSetting.title'),
162
162
  height: '90vh',
163
+ width: '90vw',
164
+ escClosable: true,
163
165
  maskClosable: true,
164
166
  destroyOnClose: true,
165
- position: 'bottom',
167
+ showMaximize: true,
166
168
  'onUpdate:modelValue'(val) {
167
169
  settingVisible.value = val;
168
170
  }
@@ -0,0 +1,4 @@
1
+ export * from './widget-name';
2
+ export * from './widget-view';
3
+ export * from './widget-prop-data-source';
4
+ export * from './widget-prop-default-value';
@@ -0,0 +1,11 @@
1
+ import { computed } from 'vue';
2
+ import XEUtils from 'xe-utils';
3
+ export function useWidgetName(props) {
4
+ const computeKebabCaseName = computed(() => {
5
+ const { renderOpts } = props;
6
+ return renderOpts ? XEUtils.kebabCase(renderOpts.name) : '';
7
+ });
8
+ return {
9
+ computeKebabCaseName
10
+ };
11
+ }
@@ -1,10 +1,9 @@
1
- import { h, onMounted, computed, ref, watch } from 'vue';
1
+ import { h, onMounted, ref, watch } from 'vue';
2
2
  import { VxeUI, getIcon, getI18n } from '@vxe-ui/core';
3
- import VxeFormItemComponent from '../../form/src/form-item';
4
- import VxeButtonComponent from '../../button/src/button';
5
- import VxeTextareaComponent from '../../textarea/src/textarea';
6
- import VxeTipComponent from '../../tip/src/tip';
7
- import XEUtils from 'xe-utils';
3
+ import VxeFormItemComponent from '../../../form/src/form-item';
4
+ import VxeButtonComponent from '../../../button/src/button';
5
+ import VxeTextareaComponent from '../../../textarea/src/textarea';
6
+ import VxeTipComponent from '../../../tip/src/tip';
8
7
  export function useWidgetPropDataSource(props, isSubOption) {
9
8
  const optionsContent = ref('');
10
9
  const expandIndexList = ref([]);
@@ -42,6 +41,19 @@ export function useWidgetPropDataSource(props, isSubOption) {
42
41
  expandIndexList.value.push(gIndex);
43
42
  }
44
43
  };
44
+ const removeOptionEvent = (item, group) => {
45
+ const { renderParams } = props;
46
+ const { widget } = renderParams;
47
+ const { options } = widget;
48
+ if (group) {
49
+ if (group.options) {
50
+ group.options = group.options.filter(obj => obj !== item);
51
+ }
52
+ }
53
+ else {
54
+ options.options = options.options.filter(obj => obj !== item);
55
+ }
56
+ };
45
57
  const confirmBatchAddOptionEvent = () => {
46
58
  const { renderParams } = props;
47
59
  const { widget } = renderParams;
@@ -131,7 +143,8 @@ export function useWidgetPropDataSource(props, isSubOption) {
131
143
  }
132
144
  });
133
145
  };
134
- const renderOption = (item, hasFirstLevel, isExpand, gIndex, hasSub, isFirst, isLast) => {
146
+ const renderOption = (item, group, isExpand, gIndex, hasSub, isFirst, isLast) => {
147
+ const hasFirstLevel = !group;
135
148
  return h('div', {
136
149
  class: ['vxe-form-design--widget-form-item-data-source-option', {
137
150
  'is--first': isFirst,
@@ -160,7 +173,10 @@ export function useWidgetPropDataSource(props, isSubOption) {
160
173
  h(VxeButtonComponent, {
161
174
  status: 'danger',
162
175
  mode: 'text',
163
- icon: getIcon().FORM_DESIGN_WIDGET_DELETE
176
+ icon: getIcon().FORM_DESIGN_WIDGET_DELETE,
177
+ onClick() {
178
+ removeOptionEvent(item, group);
179
+ }
164
180
  })
165
181
  ]);
166
182
  };
@@ -175,15 +191,15 @@ export function useWidgetPropDataSource(props, isSubOption) {
175
191
  const { options } = group;
176
192
  const isExpand = expandIndexList.value.includes(gIndex);
177
193
  if (options && options.length) {
178
- optVNs.push(renderOption(group, true, isExpand, gIndex, true, gIndex === 0, gIndex === groups.length - 1));
194
+ optVNs.push(renderOption(group, null, isExpand, gIndex, true, gIndex === 0, gIndex === groups.length - 1));
179
195
  if (isExpand) {
180
196
  optVNs.push(h('div', {
181
197
  class: 'vxe-form-design--widget-form-item-data-source-sub-option'
182
- }, options.map(item => renderOption(item, false, isExpand, 0, false, false, false))));
198
+ }, options.map(item => renderOption(item, group, isExpand, 0, false, false, false))));
183
199
  }
184
200
  }
185
201
  else {
186
- optVNs.push(renderOption(group, true, isExpand, gIndex, false, gIndex === 0, gIndex === groups.length - 1));
202
+ optVNs.push(renderOption(group, null, isExpand, gIndex, false, gIndex === 0, gIndex === groups.length - 1));
187
203
  }
188
204
  });
189
205
  }
@@ -226,36 +242,3 @@ export function useWidgetPropDataSource(props, isSubOption) {
226
242
  }
227
243
  };
228
244
  }
229
- export function useWidgetName(props) {
230
- const computeKebabCaseName = computed(() => {
231
- const { renderOpts } = props;
232
- return renderOpts ? XEUtils.kebabCase(renderOpts.name) : '';
233
- });
234
- return {
235
- computeKebabCaseName
236
- };
237
- }
238
- export function useWidgetView(props) {
239
- const currWidget = computed(() => {
240
- const { renderParams } = props;
241
- return renderParams.widget;
242
- });
243
- const widgetModel = computed({
244
- get() {
245
- const { renderParams } = props;
246
- const { $formView, widget } = renderParams;
247
- return $formView ? $formView.getItemValue(widget) : null;
248
- },
249
- set(value) {
250
- const { renderParams } = props;
251
- const { $formView, widget } = renderParams;
252
- if ($formView) {
253
- $formView.setItemValue(widget, value);
254
- }
255
- }
256
- });
257
- return {
258
- currWidget,
259
- widgetModel
260
- };
261
- }
@@ -0,0 +1,38 @@
1
+ import { h, ref } from 'vue';
2
+ import VxeFormItemComponent from '../../../form/src/form-item';
3
+ import VxeSelectComponent from '../../../select/src/select';
4
+ import VxeInputComponent from '../../../input/src/input';
5
+ export function useWidgetPropDefaultValue(props) {
6
+ const defValOptions = ref([
7
+ { value: 'custom', label: '自定义' }
8
+ // { value: 'linkage', label: '数据联动' }
9
+ ]);
10
+ return {
11
+ renderDefaultValueFormItem() {
12
+ const { renderParams } = props;
13
+ const { widget } = renderParams;
14
+ const { defaultValue } = widget.options;
15
+ return h(VxeFormItemComponent, {
16
+ title: '默认值'
17
+ }, {
18
+ default() {
19
+ return [
20
+ h(VxeSelectComponent, {
21
+ modelValue: defaultValue.type,
22
+ options: defValOptions.value,
23
+ 'onUpdate:modelValue'(val) {
24
+ defaultValue.type = val;
25
+ }
26
+ }),
27
+ h(VxeInputComponent, {
28
+ modelValue: defaultValue.value,
29
+ 'onUpdate:modelValue'(val) {
30
+ defaultValue.value = val;
31
+ }
32
+ })
33
+ ];
34
+ }
35
+ });
36
+ }
37
+ };
38
+ }
@@ -0,0 +1,25 @@
1
+ import { computed } from 'vue';
2
+ export function useWidgetView(props) {
3
+ const currWidget = computed(() => {
4
+ const { renderParams } = props;
5
+ return renderParams.widget;
6
+ });
7
+ const widgetModel = computed({
8
+ get() {
9
+ const { renderParams } = props;
10
+ const { $formView, widget } = renderParams;
11
+ return $formView ? $formView.getItemValue(widget) : null;
12
+ },
13
+ set(value) {
14
+ const { renderParams } = props;
15
+ const { $formView, widget } = renderParams;
16
+ if ($formView) {
17
+ $formView.setItemValue(widget, value);
18
+ }
19
+ }
20
+ });
21
+ return {
22
+ currWidget,
23
+ widgetModel
24
+ };
25
+ }
@@ -22,7 +22,7 @@ export const WidgetInputViewComponent = defineComponent({
22
22
  const { widget } = renderParams;
23
23
  if ($xeFormView) {
24
24
  const itemValue = $xeFormView ? $xeFormView.getItemValue(widget) : null;
25
- $xeFormView.updateItemStatus(widget, itemValue);
25
+ $xeFormView.updateWidgetStatus(widget, itemValue);
26
26
  }
27
27
  };
28
28
  return () => {
@@ -33,7 +33,8 @@ export const WidgetInputViewComponent = defineComponent({
33
33
  return h(VxeFormItemComponent, {
34
34
  class: ['vxe-form-design--widget-render-form-item', `widget-${kebabCaseName}`],
35
35
  field: widget.field,
36
- title: widget.title
36
+ title: widget.title,
37
+ itemRender: {}
37
38
  }, {
38
39
  default() {
39
40
  return h('input', {
@@ -21,7 +21,7 @@ export const WidgetSelectViewComponent = defineComponent({
21
21
  const { widget } = renderParams;
22
22
  if ($xeFormView) {
23
23
  const itemValue = $xeFormView ? $xeFormView.getItemValue(widget) : null;
24
- $xeFormView.updateItemStatus(widget, itemValue);
24
+ $xeFormView.updateWidgetStatus(widget, itemValue);
25
25
  }
26
26
  };
27
27
  const renderOptions = () => {
@@ -50,7 +50,8 @@ export const WidgetSelectViewComponent = defineComponent({
50
50
  return h(VxeFormItemComponent, {
51
51
  class: ['vxe-form-design--widget-render-form-item', `widget-${kebabCaseName}`],
52
52
  field: widget.field,
53
- title: widget.title
53
+ title: widget.title,
54
+ itemRender: {}
54
55
  }, {
55
56
  default() {
56
57
  return h('select', {