sh-view 1.7.6 → 2.0.1

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 (256) hide show
  1. package/.eslintrc.js +20 -21
  2. package/dist/css/227.45fab5b7.css +1 -0
  3. package/dist/css/291.e7facf7d.css +1 -0
  4. package/dist/css/299.e98df6ce.css +1 -0
  5. package/dist/css/358.e641c5d1.css +1 -0
  6. package/dist/css/534.726e6699.css +1 -0
  7. package/dist/css/769.8008ac6c.css +1 -0
  8. package/dist/css/index.2bd4fb37.css +1 -0
  9. package/dist/css/index.2bd4fb37.css.gz +0 -0
  10. package/dist/fonts/iconfont.03e5a9f9.ttf +0 -0
  11. package/dist/fonts/iconfont.03e5a9f9.ttf.gz +0 -0
  12. package/dist/fonts/ionicons.31fd4446.ttf +0 -0
  13. package/dist/fonts/ionicons.31fd4446.ttf.gz +0 -0
  14. package/dist/fonts/ionicons.d03f2836.woff2 +0 -0
  15. package/dist/fonts/ionicons.dacd136b.woff +0 -0
  16. package/dist/fonts/ionicons.dacd136b.woff.gz +0 -0
  17. package/dist/img/ionicons.6e8059e8.svg +870 -0
  18. package/dist/img/ionicons.6e8059e8.svg.gz +0 -0
  19. package/dist/js/152.588ca5b4.js +1 -0
  20. package/dist/js/165.f026fdcd.js +1 -0
  21. package/dist/js/227.6d340a71.js +1 -0
  22. package/dist/js/257.285f071f.js +1 -0
  23. package/dist/js/264.32b3a9a5.js +1 -0
  24. package/dist/js/291.e100da5e.js +1 -0
  25. package/dist/js/299.2062f9ff.js +1 -0
  26. package/dist/js/322.ff97ab5e.js +1 -0
  27. package/dist/js/333.da633859.js +1 -0
  28. package/dist/js/341.d4433549.js +1 -0
  29. package/dist/js/358.81429379.js +1 -0
  30. package/dist/js/387.7b1e3b8a.js +1 -0
  31. package/dist/js/392.c53bf6c9.js +1 -0
  32. package/dist/js/400.03e3be15.js +1 -0
  33. package/dist/js/41.fca2504e.js +1 -0
  34. package/dist/js/444.a0350517.js +1 -0
  35. package/dist/js/452.7f75d556.js +2 -0
  36. package/dist/js/452.7f75d556.js.gz +0 -0
  37. package/dist/js/497.06080ae1.js +1 -0
  38. package/dist/js/514.2ea0055a.js +1 -0
  39. package/dist/js/534.40a67536.js +1 -0
  40. package/dist/js/558.6175bf20.js +15 -0
  41. package/dist/js/558.6175bf20.js.gz +0 -0
  42. package/dist/js/586.098ab36d.js +1 -0
  43. package/dist/js/593.df7d7c2e.js +1 -0
  44. package/dist/js/601.abf6f256.js +1 -0
  45. package/dist/js/654.99b45cd4.js +18 -0
  46. package/dist/js/654.99b45cd4.js.gz +0 -0
  47. package/dist/js/668.a15a0058.js +1 -0
  48. package/dist/js/704.52e87fec.js +1 -0
  49. package/dist/js/720.aceca876.js +1 -0
  50. package/dist/js/769.1376ca7f.js +1 -0
  51. package/dist/js/875.975891f5.js +1 -0
  52. package/dist/js/89.c7317ccb.js +1 -0
  53. package/dist/js/94.d54e8b09.js +1 -0
  54. package/dist/js/chunk-vendors.e05ef0ac.js +438 -0
  55. package/dist/js/chunk-vendors.e05ef0ac.js.gz +0 -0
  56. package/dist/js/index.b31868df.js +1 -0
  57. package/dist/js/index.b31868df.js.gz +0 -0
  58. package/package.json +10 -10
  59. package/packages/assets/css/animated.scss +167 -2
  60. package/packages/assets/css/loader.scss +42 -42
  61. package/packages/assets/css/main.scss +41 -21
  62. package/packages/assets/css/theme.scss +83 -44
  63. package/packages/components/global-components/sh-alert/index.vue +173 -0
  64. package/packages/components/global-components/sh-badge/index.vue +227 -0
  65. package/packages/components/global-components/sh-card/index.vue +140 -122
  66. package/packages/components/global-components/sh-code-editor/index.vue +260 -260
  67. package/packages/components/global-components/sh-col/css/index.scss +76 -0
  68. package/packages/components/global-components/sh-col/index.vue +83 -0
  69. package/packages/components/global-components/sh-corner/index.vue +1 -9
  70. package/packages/components/global-components/sh-count-to/index.vue +102 -46
  71. package/packages/components/global-components/sh-date/index.vue +40 -0
  72. package/packages/components/global-components/sh-drawer/index.vue +518 -0
  73. package/packages/components/global-components/sh-drawer/scrollbar.js +76 -0
  74. package/packages/components/global-components/sh-empty/index.vue +43 -43
  75. package/packages/components/global-components/{sh-vxe-form → sh-form}/css/index.scss +6 -6
  76. package/packages/components/global-components/{sh-vxe-form → sh-form}/index.vue +114 -115
  77. package/packages/components/global-components/{sh-vxe-form → sh-form}/js/methods.js +146 -157
  78. package/packages/components/global-components/{sh-vxe-form → sh-form}/mixin/defaultData.js +32 -33
  79. package/packages/components/global-components/sh-header/index.vue +293 -269
  80. package/packages/components/global-components/sh-icon/css/default/fonts/ionicons.svg +870 -0
  81. package/packages/components/global-components/sh-icon/css/default/fonts/ionicons.ttf +0 -0
  82. package/packages/components/global-components/sh-icon/css/default/fonts/ionicons.woff +0 -0
  83. package/packages/components/global-components/sh-icon/css/default/fonts/ionicons.woff2 +0 -0
  84. package/packages/components/global-components/sh-icon/css/default/icons.scss +2583 -0
  85. package/packages/components/global-components/sh-icon/css/default/index.scss +27 -0
  86. package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.js +1 -0
  87. package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.json +247 -0
  88. package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.ttf +0 -0
  89. package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.woff +0 -0
  90. package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.woff2 +0 -0
  91. package/packages/components/global-components/sh-icon/css/font/icons.scss +135 -0
  92. package/packages/components/global-components/sh-icon/css/font/index.scss +16 -0
  93. package/packages/components/global-components/sh-icon/icon-default.vue +32 -0
  94. package/packages/components/global-components/sh-icon/{icons.vue → icon-font.vue} +32 -32
  95. package/packages/components/global-components/sh-icon/index.vue +28 -27
  96. package/packages/components/global-components/sh-image/index.vue +123 -0
  97. package/packages/components/global-components/sh-list/index.vue +141 -0
  98. package/packages/components/global-components/sh-loading/index.vue +49 -42
  99. package/packages/components/global-components/{sh-vxe-modal → sh-modal}/index.vue +209 -209
  100. package/packages/components/global-components/sh-noticebar/index.vue +201 -201
  101. package/packages/components/global-components/sh-poptip/index.vue +479 -0
  102. package/packages/components/global-components/sh-poptip/popper.js +115 -0
  103. package/packages/components/global-components/sh-progress/index.vue +290 -0
  104. package/packages/components/global-components/sh-pull-refresh/index.vue +290 -290
  105. package/packages/components/global-components/{sh-vxe-query → sh-query}/index.vue +317 -310
  106. package/packages/components/global-components/sh-result/index.vue +110 -88
  107. package/packages/components/global-components/sh-row/css/index.scss +21 -0
  108. package/packages/components/global-components/sh-row/index.vue +63 -0
  109. package/packages/components/global-components/sh-split/components/trigger.vue +33 -0
  110. package/packages/components/global-components/sh-split/index.vue +334 -142
  111. package/packages/components/global-components/sh-table/components/importModal.vue +351 -0
  112. package/packages/components/global-components/{sh-vxe-table → sh-table}/css/index.scss +4 -22
  113. package/packages/components/global-components/{sh-vxe-table → sh-table}/index.vue +329 -351
  114. package/packages/components/global-components/{sh-vxe-table → sh-table}/js/methods.js +33 -88
  115. package/packages/components/global-components/{sh-vxe-table → sh-table}/js/props.js +304 -313
  116. package/packages/components/global-components/{sh-vxe-table → sh-table}/mixin/defaultData.js +94 -116
  117. package/packages/components/global-components/sh-tabs/index.vue +322 -0
  118. package/packages/components/global-components/sh-tag/index.vue +163 -0
  119. package/packages/components/global-components/{sh-vxe-toolbar → sh-toolbar}/index.vue +177 -172
  120. package/packages/components/global-components/sh-tree/components/table-tree.vue +280 -0
  121. package/packages/components/global-components/sh-tree/css/index.scss +54 -0
  122. package/packages/components/global-components/sh-tree/index.vue +195 -0
  123. package/packages/components/global-components/sh-tree/mixin/treeProps.js +124 -0
  124. package/packages/components/global-components/sh-upload/index.vue +278 -275
  125. package/packages/components/global-components/sh-water-fall/index.vue +87 -87
  126. package/packages/components/index.js +85 -59
  127. package/packages/components/other-components/sh-cron-modal/css/index.scss +2 -2
  128. package/packages/components/other-components/sh-menu-card/index.vue +224 -224
  129. package/packages/css/index.js +4 -6
  130. package/packages/directive/index.js +19 -19
  131. package/packages/directive/module/click-out.js +14 -0
  132. package/packages/directive/module/draggable.js +42 -42
  133. package/packages/directive/module/line-clamp.js +22 -0
  134. package/packages/directive/module/prevent-click.js +18 -0
  135. package/packages/directive/module/resize.js +19 -0
  136. package/packages/directive/module/ripple.js +166 -0
  137. package/packages/index.js +39 -40
  138. package/packages/utils/transfer-queue.js +12 -0
  139. package/packages/vxeTable/css/index.scss +12 -98
  140. package/packages/vxeTable/css/variable.scss +7 -265
  141. package/packages/vxeTable/index.js +184 -183
  142. package/packages/vxeTable/plugins/export.js +450 -0
  143. package/packages/vxeTable/render/cell/vxe-render-checkgroup.vue +36 -36
  144. package/packages/vxeTable/render/cell/vxe-render-goption.vue +94 -93
  145. package/packages/vxeTable/render/cell/vxe-render-img.vue +21 -28
  146. package/packages/vxeTable/render/cell/vxe-render-input.vue +51 -51
  147. package/packages/vxeTable/render/cell/vxe-render-progress.vue +19 -19
  148. package/packages/vxeTable/render/cell/vxe-render-radiogroup.vue +36 -36
  149. package/packages/vxeTable/render/cell/vxe-render-select.vue +36 -36
  150. package/packages/vxeTable/render/cell/vxe-render-tree.vue +59 -59
  151. package/packages/vxeTable/render/globalRenders.jsx +498 -491
  152. package/packages/assets/icons/demo.css +0 -539
  153. package/packages/assets/icons/iconfont.css +0 -415
  154. package/packages/assets/icons/iconfont.js +0 -1
  155. package/packages/assets/icons/iconfont.json +0 -709
  156. package/packages/assets/icons/iconfont.ttf +0 -0
  157. package/packages/assets/icons/iconfont.woff +0 -0
  158. package/packages/assets/icons/iconfont.woff2 +0 -0
  159. package/packages/assets/img/image-error.png +0 -0
  160. package/packages/assets/img/square-image.png +0 -0
  161. package/packages/components/global-components/sh-iv-form/components/iv-group-item.vue +0 -57
  162. package/packages/components/global-components/sh-iv-form/components/iv-single-item.vue +0 -76
  163. package/packages/components/global-components/sh-iv-form/index.vue +0 -255
  164. package/packages/components/global-components/sh-vxe-list/index.vue +0 -149
  165. package/packages/components/global-components/sh-vxe-table/components/importModal.vue +0 -377
  166. package/packages/components/global-components/sh-vxe-tree/components/table-tree.vue +0 -233
  167. package/packages/components/global-components/sh-vxe-tree/css/index.scss +0 -20
  168. package/packages/components/global-components/sh-vxe-tree/index.vue +0 -85
  169. package/packages/components/global-components/sh-vxe-tree/js/props.js +0 -120
  170. package/packages/components/global-components/sh-vxe-tree/js/treeMethods.js +0 -169
  171. package/packages/components/global-components/sh-vxe-tree/mixin/defaultData.js +0 -54
  172. package/packages/components/global-components/sh-vxe-tree/vxe-direct-tree.vue +0 -203
  173. package/packages/components/global-components/sh-vxe-tree/vxe-select-tree.vue +0 -291
  174. package/packages/components/other-components/sh-markdown/tinymce/langs/ar.js +0 -7
  175. package/packages/components/other-components/sh-markdown/tinymce/langs/az.js +0 -7
  176. package/packages/components/other-components/sh-markdown/tinymce/langs/bg_BG.js +0 -7
  177. package/packages/components/other-components/sh-markdown/tinymce/langs/bn_BD.js +0 -7
  178. package/packages/components/other-components/sh-markdown/tinymce/langs/ca.js +0 -7
  179. package/packages/components/other-components/sh-markdown/tinymce/langs/cs.js +0 -7
  180. package/packages/components/other-components/sh-markdown/tinymce/langs/cy.js +0 -7
  181. package/packages/components/other-components/sh-markdown/tinymce/langs/da.js +0 -7
  182. package/packages/components/other-components/sh-markdown/tinymce/langs/de.js +0 -7
  183. package/packages/components/other-components/sh-markdown/tinymce/langs/dv.js +0 -7
  184. package/packages/components/other-components/sh-markdown/tinymce/langs/el.js +0 -7
  185. package/packages/components/other-components/sh-markdown/tinymce/langs/eo.js +0 -7
  186. package/packages/components/other-components/sh-markdown/tinymce/langs/es.js +0 -7
  187. package/packages/components/other-components/sh-markdown/tinymce/langs/es_MX.js +0 -7
  188. package/packages/components/other-components/sh-markdown/tinymce/langs/et.js +0 -7
  189. package/packages/components/other-components/sh-markdown/tinymce/langs/eu.js +0 -7
  190. package/packages/components/other-components/sh-markdown/tinymce/langs/fa.js +0 -7
  191. package/packages/components/other-components/sh-markdown/tinymce/langs/fi.js +0 -7
  192. package/packages/components/other-components/sh-markdown/tinymce/langs/fr_FR.js +0 -7
  193. package/packages/components/other-components/sh-markdown/tinymce/langs/ga.js +0 -7
  194. package/packages/components/other-components/sh-markdown/tinymce/langs/gl.js +0 -7
  195. package/packages/components/other-components/sh-markdown/tinymce/langs/he_IL.js +0 -7
  196. package/packages/components/other-components/sh-markdown/tinymce/langs/hi.js +0 -7
  197. package/packages/components/other-components/sh-markdown/tinymce/langs/hr.js +0 -7
  198. package/packages/components/other-components/sh-markdown/tinymce/langs/hu_HU.js +0 -7
  199. package/packages/components/other-components/sh-markdown/tinymce/langs/hy.js +0 -7
  200. package/packages/components/other-components/sh-markdown/tinymce/langs/id.js +0 -7
  201. package/packages/components/other-components/sh-markdown/tinymce/langs/is_IS.js +0 -7
  202. package/packages/components/other-components/sh-markdown/tinymce/langs/it.js +0 -7
  203. package/packages/components/other-components/sh-markdown/tinymce/langs/ja.js +0 -7
  204. package/packages/components/other-components/sh-markdown/tinymce/langs/kab.js +0 -7
  205. package/packages/components/other-components/sh-markdown/tinymce/langs/kk.js +0 -7
  206. package/packages/components/other-components/sh-markdown/tinymce/langs/ko_KR.js +0 -7
  207. package/packages/components/other-components/sh-markdown/tinymce/langs/ku.js +0 -7
  208. package/packages/components/other-components/sh-markdown/tinymce/langs/lt.js +0 -7
  209. package/packages/components/other-components/sh-markdown/tinymce/langs/lv.js +0 -7
  210. package/packages/components/other-components/sh-markdown/tinymce/langs/nb_NO.js +0 -7
  211. package/packages/components/other-components/sh-markdown/tinymce/langs/ne.js +0 -7
  212. package/packages/components/other-components/sh-markdown/tinymce/langs/nl.js +0 -7
  213. package/packages/components/other-components/sh-markdown/tinymce/langs/nl_BE.js +0 -7
  214. package/packages/components/other-components/sh-markdown/tinymce/langs/oc.js +0 -7
  215. package/packages/components/other-components/sh-markdown/tinymce/langs/pl.js +0 -7
  216. package/packages/components/other-components/sh-markdown/tinymce/langs/pt_BR.js +0 -7
  217. package/packages/components/other-components/sh-markdown/tinymce/langs/ro.js +0 -7
  218. package/packages/components/other-components/sh-markdown/tinymce/langs/ru.js +0 -7
  219. package/packages/components/other-components/sh-markdown/tinymce/langs/sk.js +0 -7
  220. package/packages/components/other-components/sh-markdown/tinymce/langs/sl_SI.js +0 -7
  221. package/packages/components/other-components/sh-markdown/tinymce/langs/sq.js +0 -7
  222. package/packages/components/other-components/sh-markdown/tinymce/langs/sr.js +0 -7
  223. package/packages/components/other-components/sh-markdown/tinymce/langs/sv_SE.js +0 -7
  224. package/packages/components/other-components/sh-markdown/tinymce/langs/ta.js +0 -7
  225. package/packages/components/other-components/sh-markdown/tinymce/langs/tg.js +0 -7
  226. package/packages/components/other-components/sh-markdown/tinymce/langs/th_TH.js +0 -7
  227. package/packages/components/other-components/sh-markdown/tinymce/langs/tr.js +0 -7
  228. package/packages/components/other-components/sh-markdown/tinymce/langs/ug.js +0 -7
  229. package/packages/components/other-components/sh-markdown/tinymce/langs/uk.js +0 -7
  230. package/packages/components/other-components/sh-markdown/tinymce/langs/vi.js +0 -7
  231. package/packages/components/other-components/sh-markdown/tinymce/skins/content/dark/content.css +0 -72
  232. package/packages/components/other-components/sh-markdown/tinymce/skins/content/dark/content.min.css +0 -7
  233. package/packages/components/other-components/sh-markdown/tinymce/skins/content/default/content.min.css +0 -7
  234. package/packages/components/other-components/sh-markdown/tinymce/skins/content/document/content.css +0 -72
  235. package/packages/components/other-components/sh-markdown/tinymce/skins/content/document/content.min.css +0 -7
  236. package/packages/components/other-components/sh-markdown/tinymce/skins/content/writer/content.css +0 -68
  237. package/packages/components/other-components/sh-markdown/tinymce/skins/content/writer/content.min.css +0 -7
  238. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.css +0 -714
  239. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.inline.css +0 -726
  240. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.inline.min.css +0 -7
  241. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.min.css +0 -7
  242. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.mobile.css +0 -29
  243. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.mobile.min.css +0 -7
  244. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff +0 -0
  245. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.css +0 -3047
  246. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.min.css +0 -7
  247. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.mobile.css +0 -673
  248. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.mobile.min.css +0 -7
  249. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +0 -37
  250. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +0 -7
  251. package/packages/directive/directives.js +0 -27
  252. package/packages/iview/css/index.scss +0 -32
  253. package/packages/iview/index.js +0 -25
  254. /package/packages/components/global-components/{sh-vxe-form → sh-form}/components/form-item.vue +0 -0
  255. /package/packages/components/global-components/{sh-vxe-form → sh-form}/js/props.js +0 -0
  256. /package/packages/components/global-components/{sh-vxe-table → sh-table}/js/excel_to_json.js +0 -0
Binary file
@@ -1,57 +0,0 @@
1
- <template>
2
- <Col :span="column.span || span" v-bind="column.colProps || col">
3
- <template v-if="hasChildren(column)">
4
- <template v-for="(child, childIndex) in column.children" :key="childIndex">
5
- <iv-group-item :column="child" :data="data" :group-renders="groupRenders" :size="size" :span="span" :col="col" />
6
- </template>
7
- </template>
8
- <template v-else>
9
- <iv-single-item :column="column" :data="data" :group-renders="groupRenders" :size="size" />
10
- </template>
11
- </Col>
12
- </template>
13
-
14
- <script>
15
- import IvSingleItem from './iv-single-item.vue'
16
- export default {
17
- name: 'IvGroupItem',
18
- components: {
19
- IvSingleItem
20
- },
21
- props: {
22
- data: {
23
- type: Object,
24
- default() {
25
- return {}
26
- }
27
- },
28
- column: {
29
- type: Object,
30
- default() {
31
- return {}
32
- }
33
- },
34
- groupRenders: {
35
- type: Object,
36
- default() {
37
- return {}
38
- }
39
- },
40
- size: {
41
- type: String
42
- },
43
- span: {
44
- type: Number,
45
- default: 24
46
- },
47
- col: {
48
- type: Object,
49
- default() {
50
- return {}
51
- }
52
- }
53
- }
54
- }
55
- </script>
56
-
57
- <style scoped></style>
@@ -1,76 +0,0 @@
1
- <template>
2
- <FormItem v-bind="column">
3
- <component :is="column.renderName || 'Input'" v-bind="componentProps" v-model="formDataIn[column.prop]" @change="onItemChange">
4
- <template v-if="isGroup(column.renderName) && column.renderProps.options.length > 0">
5
- <template v-for="(option, optionIndex) in column.renderProps.options" :key="optionIndex">
6
- <component :is="isGroup(column.renderName)" v-bind="option" />
7
- </template>
8
- </template>
9
- </component>
10
- </FormItem>
11
- </template>
12
-
13
- <script>
14
- export default {
15
- name: 'IvSingleItem',
16
- inject: ['shivform'],
17
- props: {
18
- data: {
19
- type: Object,
20
- default() {
21
- return {}
22
- }
23
- },
24
- column: {
25
- type: Object,
26
- default() {
27
- return {}
28
- }
29
- },
30
- groupRenders: {
31
- type: Object,
32
- default() {
33
- return {}
34
- }
35
- },
36
- size: {
37
- type: String
38
- }
39
- },
40
- data() {
41
- return {
42
- formDataIn: this.data
43
- }
44
- },
45
- computed: {
46
- componentProps() {
47
- let { disabled } = this.shivform || {}
48
- let defaultProps = {
49
- Input: { placeholder: disabled ? '' : `请输入${this.column.label}` },
50
- Select: { placeholder: disabled ? '' : `请选择${this.column.label}` },
51
- Switch: { width: 50, inlinePrompt: true, activeValue: 1, inactiveValue: -1, activeText: '是', inactiveText: '否' }
52
- }
53
- return Object.assign({ class: ['form-item-component'] }, defaultProps[this.column.renderName], this.column.renderProps)
54
- }
55
- },
56
- watch: {
57
- data: {
58
- handler(newvalue) {
59
- this.formDataIn = this.data
60
- },
61
- deep: true
62
- }
63
- },
64
- created() {},
65
- methods: {
66
- isGroup(field) {
67
- return this.groupRenders[field]
68
- },
69
- onItemChange($event) {
70
- this.shivform.$emit('item-change', $event, this.column)
71
- }
72
- }
73
- }
74
- </script>
75
-
76
- <style scoped lang="scss"></style>
@@ -1,255 +0,0 @@
1
- <template>
2
- <div class="sh-iv-form">
3
- <Form
4
- ref="ivForm"
5
- :model="data"
6
- :rules="formRules"
7
- :inline="inline"
8
- :label-position="labelPosition"
9
- :label-width="labelWidth"
10
- :show-message="showMessage"
11
- :autocomplete="autocomplete"
12
- :hide-required-mark="hideRequiredMark"
13
- :label-colon="labelColon"
14
- :disabled="disabled">
15
- <Row v-bind="row">
16
- <template v-for="(column, columnIndex) in formItems" :key="columnIndex">
17
- <iv-group-item :data="data" :column="column" :group-renders="groupRenders" :size="size" :span="span" :col="colProps" />
18
- </template>
19
- <Col v-if="handle" :span="span" v-bind="colProps">
20
- <FormItem class="form-button-item">
21
- <Button :size="size" type="primary" :disabled="disabled" @click="onFormSubmit">{{ btnSubmitText }}</Button>
22
- <Button :size="size" type="default" @click="onFormReset">{{ btnResetText }}</Button>
23
- </FormItem>
24
- </Col>
25
- </Row>
26
- <slot name="default"></slot>
27
- <div v-if="footer" class="sh-common-footer">
28
- <div class="sh-common-footer-left">
29
- <Space><slot name="formLeft"></slot></Space>
30
- </div>
31
- <Space class="sh-common-footer-right">
32
- <slot name="formRight"></slot>
33
- <Button v-ripple type="primary" :size="size" :disabled="disabled" @click="onFormSubmit">{{ btnSubmitText }}</Button>
34
- <Button v-ripple type="default" :size="size" @click="onFormReset">{{ btnResetText }}</Button>
35
- </Space>
36
- </div>
37
- </Form>
38
- </div>
39
- </template>
40
-
41
- <script>
42
- import ivGroupItem from './components/iv-group-item.vue'
43
- export default {
44
- name: 'ShIvForm',
45
- components: {
46
- ivGroupItem
47
- },
48
- provide() {
49
- return {
50
- shivform: this
51
- }
52
- },
53
- props: {
54
- data: {
55
- type: Object,
56
- default() {
57
- return {}
58
- }
59
- },
60
- items: {
61
- type: Array,
62
- default() {
63
- return []
64
- }
65
- },
66
- rules: {
67
- type: Object,
68
- default() {
69
- return {}
70
- }
71
- },
72
- inline: {
73
- type: Boolean
74
- },
75
- labelPosition: {
76
- type: String
77
- },
78
- labelWidth: {
79
- type: Number,
80
- default: 100
81
- },
82
- showMessage: {
83
- type: Boolean,
84
- default: true
85
- },
86
- autocomplete: {
87
- type: String
88
- },
89
- hideRequiredMark: {
90
- type: Boolean
91
- },
92
- labelColon: {
93
- type: Boolean
94
- },
95
- disabled: {
96
- type: Boolean
97
- },
98
- footer: {
99
- type: Boolean,
100
- default: false
101
- },
102
- size: {
103
- type: String,
104
- default: 'default'
105
- },
106
- row: {
107
- type: Object,
108
- default() {
109
- return {
110
- gutter: 20
111
- }
112
- }
113
- },
114
- span: {
115
- type: Number,
116
- default: 24
117
- },
118
- handle: {
119
- type: Boolean,
120
- default: false
121
- },
122
- valid: {
123
- type: Boolean,
124
- default: true
125
- },
126
- btnSubmitText: {
127
- type: String,
128
- default: '确认'
129
- },
130
- btnResetText: {
131
- type: String,
132
- default: '取消'
133
- }
134
- },
135
- emits: ['submit', 'reset', 'item-change'],
136
- data() {
137
- return {
138
- formItems: [],
139
- formRules: {},
140
- groupRenders: {
141
- CheckboxGroup: 'Checkbox',
142
- RadioGroup: 'Radio',
143
- Select: 'Option'
144
- },
145
- renderRelationship: {
146
- Tree: 'TreeSelect',
147
- Time: 'DatePicker',
148
- TextArea: 'Input',
149
- Checkgroup: 'CheckboxGroup',
150
- Radiogroup: 'RadioGroup'
151
- }
152
- }
153
- },
154
- computed: {
155
- colProps() {
156
- return this.inline ? { xs: 24, sm: 12, md: 12, lg: 8, xl: 8 } : {}
157
- }
158
- },
159
- watch: {
160
- items: {
161
- handler() {
162
- this.initItemsConfig()
163
- },
164
- deep: true
165
- },
166
- rules: {
167
- handler(newvalue, oldValue) {
168
- this.initEditRules(newvalue)
169
- },
170
- deep: true,
171
- immediate: true
172
- }
173
- },
174
- created() {
175
- this.initItemsConfig()
176
- },
177
- mounted() {},
178
- methods: {
179
- formRef() {
180
- return this.$refs.ivForm
181
- },
182
- async validate() {
183
- return this.formRef().validate()
184
- },
185
- async onFormSubmit() {
186
- let validateResult = await this.validate()
187
- if (!validateResult) return
188
- this.$emit('submit', this.data)
189
- },
190
- onFormReset() {
191
- this.formRef().resetFields()
192
- this.$emit('reset', this.data)
193
- },
194
- // 根据规则重新初始化字段配置
195
- initItemsConfig() {
196
- const that = this
197
- if (that.items && that.items.length > 0) {
198
- let formItems = that.$vUtils.clone(that.items, true)
199
- let fieldRules = {}
200
- that.$vUtils.eachTree(formItems, item => {
201
- let renderProps = item.renderProps || {}
202
- item.renderName = that.getRenderName(item.renderName, renderProps)
203
- item.prop = item.prop || item.field
204
- item.label = item.label || item.title
205
- delete item.field
206
- delete item.title
207
- let arrayModelRenders = ['Cascader', 'Transfer', 'TagSelect', 'CheckboxGroup']
208
- if (item.prop && !that.$vUtils.has(that.data, item.prop)) {
209
- that.$vUtils.set(that.data, item.prop, renderProps.defaultValue || (arrayModelRenders.includes(item.renderName) ? [] : ''))
210
- }
211
- if (item.prop && +item.renderRequire) {
212
- let dataType = 'string'
213
- let arrayType = ['CheckboxGroup']
214
- if (arrayType.includes(item.renderName) || (item.renderName === 'Select' && renderProps.multiple)) {
215
- dataType = 'array'
216
- }
217
- fieldRules[item.prop] = [{ required: true, message: that.getDefaultMessage(item.renderName, item.label), type: dataType }]
218
- }
219
- })
220
- that.formItems = formItems
221
- that.initEditRules(fieldRules)
222
- }
223
- },
224
- // 初始化验证规则
225
- initEditRules(rules) {
226
- const that = this
227
- if (rules && that.$vUtils.isPlainObject(rules)) {
228
- Object.keys(rules).forEach(key => {
229
- if (that.formRules[key]) {
230
- that.formRules[key] = Array.from(new Set(that.formRules[key].concat(rules[key])))
231
- } else {
232
- that.formRules[key] = rules[key]
233
- }
234
- })
235
- }
236
- },
237
- // 获取渲染器关系
238
- getRenderName(renderName, props) {
239
- if (renderName && renderName.startsWith('$v')) {
240
- let reRender = renderName.replace('$v', '')
241
- let relationRender = this.renderRelationship[reRender]
242
- return relationRender || reRender
243
- }
244
- return renderName || 'Input'
245
- },
246
- // 获取默认验证信息
247
- getDefaultMessage(renderType, title) {
248
- const selectRenders = ['Switch', 'Select', 'TreeSelect', 'DatePicker', 'TimePicker', 'Cascader', 'City', 'Rate']
249
- return (selectRenders.includes(renderType) ? '请选择' : '请输入') + title
250
- }
251
- }
252
- }
253
- </script>
254
-
255
- <style scoped></style>
@@ -1,149 +0,0 @@
1
- <template>
2
- <div class="sh-list">
3
- <template v-if="$slots.header"><slot name="header"></slot></template>
4
- <vxe-list ref="vxeList" v-bind="listConfig">
5
- <template #default="{ items }">
6
- <sh-empty v-if="items.length === 0 && !loading" :no-data-icon="noDataIcon" :no-data-text="noDataText"></sh-empty>
7
- <Row v-if="grid" :gutter="grid.gutter">
8
- <Col v-for="(item, itemindex) in items" :key="itemindex" v-bind="grid">
9
- <div class="sh-list-item" :class="itemClassName">
10
- <slot name="item" v-bind="item"></slot>
11
- </div>
12
- </Col>
13
- </Row>
14
- <template v-else>
15
- <template v-for="(item, itemindex) in items" :key="itemindex">
16
- <div class="sh-list-item" :class="itemClassName">
17
- <slot name="item" v-bind="item"></slot>
18
- </div>
19
- </template>
20
- </template>
21
- </template>
22
- </vxe-list>
23
- <template v-if="$slots.footer"><slot name="footer"></slot></template>
24
- <vxe-pager v-if="pagerConfig" v-bind="listPagerConfig" @page-change="onPageChange"></vxe-pager>
25
- </div>
26
- </template>
27
-
28
- <script>
29
- export default {
30
- name: 'ShList',
31
- props: {
32
- dataSourse: {
33
- type: Array,
34
- default() {
35
- return []
36
- }
37
- },
38
- size: {
39
- type: String
40
- },
41
- className: {
42
- type: String
43
- },
44
- itemClassName: {
45
- type: String
46
- },
47
- loading: {
48
- type: Boolean
49
- },
50
- height: {
51
- type: [String, Number],
52
- default: 'auto'
53
- },
54
- autoResize: {
55
- type: Boolean
56
- },
57
- syncResize: {
58
- type: [Boolean, String, Number]
59
- },
60
- scrollY: {
61
- type: [Boolean, Object],
62
- default() {
63
- return { enabled: false, gt: 60 }
64
- }
65
- },
66
- pagerConfig: {
67
- type: [Object, Boolean],
68
- default: false
69
- },
70
- noDataIcon: {
71
- type: String
72
- },
73
- noDataText: {
74
- type: String
75
- },
76
- grid: {
77
- type: [Object, Boolean],
78
- default() {
79
- return { gutter: 0, span: 24 }
80
- }
81
- }
82
- },
83
- emits: ['page-change'],
84
- data() {
85
- return {
86
- pagerConfigDefault: {
87
- currentPage: 1,
88
- pageSize: 50,
89
- total: 0
90
- },
91
- listPagerConfig: {}
92
- }
93
- },
94
- computed: {
95
- listConfig() {
96
- return {
97
- data: this.dataSourse,
98
- size: this.size,
99
- className: this.className,
100
- loading: this.loading,
101
- height: this.height,
102
- autoResize: this.autoResize,
103
- syncResize: this.syncResize,
104
- scrollY: this.scrollY
105
- }
106
- }
107
- },
108
- watch: {
109
- pagerConfig: {
110
- handler(newvalue, oldValue) {
111
- this.initPagerConfig()
112
- },
113
- deep: true,
114
- immediate: true
115
- }
116
- },
117
- created() {},
118
- mounted() {},
119
- beforeUnmount() {},
120
- methods: {
121
- listRef() {
122
- return this.$refs.vxeList
123
- },
124
- // 初始化分页配置
125
- initPagerConfig() {
126
- this.listPagerConfig = Object.assign({}, this.pagerConfigDefault, this.pagerConfig)
127
- },
128
- // 分页变化触发
129
- onPageChange(data) {
130
- let { currentPage, pageSize } = data
131
- this.listPagerConfig.currentPage = currentPage
132
- this.listPagerConfig.pageSize = pageSize
133
- this.$emit('page-change', data)
134
- }
135
- }
136
- }
137
- </script>
138
-
139
- <style lang="scss" scoped>
140
- .sh-list {
141
- position: relative;
142
- .sh-list-item {
143
- display: flex;
144
- width: 100%;
145
- justify-content: space-between;
146
- align-items: center;
147
- }
148
- }
149
- </style>