sh-view 1.5.2

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 (209) hide show
  1. package/.eslintrc.js +21 -0
  2. package/README.en.md +36 -0
  3. package/README.md +39 -0
  4. package/package.json +64 -0
  5. package/packages/assets/css/animated.scss +33 -0
  6. package/packages/assets/css/loader.scss +193 -0
  7. package/packages/assets/css/main.scss +235 -0
  8. package/packages/assets/css/theme.scss +52 -0
  9. package/packages/assets/icons/demo.css +539 -0
  10. package/packages/assets/icons/iconfont.css +415 -0
  11. package/packages/assets/icons/iconfont.js +1 -0
  12. package/packages/assets/icons/iconfont.json +709 -0
  13. package/packages/assets/icons/iconfont.ttf +0 -0
  14. package/packages/assets/icons/iconfont.woff +0 -0
  15. package/packages/assets/icons/iconfont.woff2 +0 -0
  16. package/packages/assets/img/image-error.png +0 -0
  17. package/packages/assets/img/square-image.png +0 -0
  18. package/packages/components/global-components/sh-card/index.vue +122 -0
  19. package/packages/components/global-components/sh-code-editor/index.vue +237 -0
  20. package/packages/components/global-components/sh-corner/index.vue +236 -0
  21. package/packages/components/global-components/sh-count-to/index.vue +46 -0
  22. package/packages/components/global-components/sh-empty/index.vue +43 -0
  23. package/packages/components/global-components/sh-header/index.vue +269 -0
  24. package/packages/components/global-components/sh-icon/icons.vue +32 -0
  25. package/packages/components/global-components/sh-icon/index.vue +27 -0
  26. package/packages/components/global-components/sh-iv-form/components/iv-group-item.vue +57 -0
  27. package/packages/components/global-components/sh-iv-form/components/iv-single-item.vue +76 -0
  28. package/packages/components/global-components/sh-iv-form/index.vue +255 -0
  29. package/packages/components/global-components/sh-layout/index.vue +142 -0
  30. package/packages/components/global-components/sh-loading/index.vue +42 -0
  31. package/packages/components/global-components/sh-noticebar/index.vue +201 -0
  32. package/packages/components/global-components/sh-preview/index.vue +62 -0
  33. package/packages/components/global-components/sh-pull-refresh/index.vue +290 -0
  34. package/packages/components/global-components/sh-result/index.vue +88 -0
  35. package/packages/components/global-components/sh-sheet/index.vue +173 -0
  36. package/packages/components/global-components/sh-upload/components/u-img.vue +63 -0
  37. package/packages/components/global-components/sh-upload/components/u-list.vue +100 -0
  38. package/packages/components/global-components/sh-upload/index.vue +418 -0
  39. package/packages/components/global-components/sh-vxe-form/components/form-item.vue +25 -0
  40. package/packages/components/global-components/sh-vxe-form/css/index.scss +55 -0
  41. package/packages/components/global-components/sh-vxe-form/index.vue +115 -0
  42. package/packages/components/global-components/sh-vxe-form/js/methods.js +170 -0
  43. package/packages/components/global-components/sh-vxe-form/js/props.js +63 -0
  44. package/packages/components/global-components/sh-vxe-form/mixin/defaultData.js +33 -0
  45. package/packages/components/global-components/sh-vxe-list/index.vue +129 -0
  46. package/packages/components/global-components/sh-vxe-modal/index.vue +209 -0
  47. package/packages/components/global-components/sh-vxe-query/index.vue +286 -0
  48. package/packages/components/global-components/sh-vxe-table/components/importModal.vue +377 -0
  49. package/packages/components/global-components/sh-vxe-table/css/index.scss +94 -0
  50. package/packages/components/global-components/sh-vxe-table/index.vue +350 -0
  51. package/packages/components/global-components/sh-vxe-table/js/excel_to_json.js +313 -0
  52. package/packages/components/global-components/sh-vxe-table/js/methods.js +614 -0
  53. package/packages/components/global-components/sh-vxe-table/js/props.js +311 -0
  54. package/packages/components/global-components/sh-vxe-table/mixin/defaultData.js +116 -0
  55. package/packages/components/global-components/sh-vxe-toolbar/index.vue +172 -0
  56. package/packages/components/global-components/sh-vxe-tree/components/table-tree.vue +251 -0
  57. package/packages/components/global-components/sh-vxe-tree/css/index.scss +20 -0
  58. package/packages/components/global-components/sh-vxe-tree/index.vue +85 -0
  59. package/packages/components/global-components/sh-vxe-tree/js/props.js +120 -0
  60. package/packages/components/global-components/sh-vxe-tree/js/treeMethods.js +171 -0
  61. package/packages/components/global-components/sh-vxe-tree/mixin/defaultData.js +48 -0
  62. package/packages/components/global-components/sh-vxe-tree/vxe-direct-tree.vue +202 -0
  63. package/packages/components/global-components/sh-vxe-tree/vxe-select-tree.vue +291 -0
  64. package/packages/components/global-components/sh-water-fall/index.vue +87 -0
  65. package/packages/components/global-components/sh-word/index.vue +110 -0
  66. package/packages/components/index.js +64 -0
  67. package/packages/components/other-components/sh-cron-modal/components/cron-content.vue +287 -0
  68. package/packages/components/other-components/sh-cron-modal/css/index.scss +45 -0
  69. package/packages/components/other-components/sh-cron-modal/index.vue +67 -0
  70. package/packages/components/other-components/sh-cron-modal/mixin/cron-box.js +169 -0
  71. package/packages/components/other-components/sh-cron-modal/tabs/cron-day-box.vue +92 -0
  72. package/packages/components/other-components/sh-cron-modal/tabs/cron-hour-box.vue +56 -0
  73. package/packages/components/other-components/sh-cron-modal/tabs/cron-minute-box.vue +56 -0
  74. package/packages/components/other-components/sh-cron-modal/tabs/cron-month-box.vue +56 -0
  75. package/packages/components/other-components/sh-cron-modal/tabs/cron-second-box.vue +56 -0
  76. package/packages/components/other-components/sh-cron-modal/tabs/cron-week-box.vue +115 -0
  77. package/packages/components/other-components/sh-cron-modal/tabs/cron-year-box.vue +46 -0
  78. package/packages/components/other-components/sh-cron-modal/utils/index.js +52 -0
  79. package/packages/components/other-components/sh-markdown/index.vue +170 -0
  80. package/packages/components/other-components/sh-markdown/tinymce/langs/ar.js +7 -0
  81. package/packages/components/other-components/sh-markdown/tinymce/langs/az.js +7 -0
  82. package/packages/components/other-components/sh-markdown/tinymce/langs/bg_BG.js +7 -0
  83. package/packages/components/other-components/sh-markdown/tinymce/langs/bn_BD.js +7 -0
  84. package/packages/components/other-components/sh-markdown/tinymce/langs/ca.js +7 -0
  85. package/packages/components/other-components/sh-markdown/tinymce/langs/cs.js +7 -0
  86. package/packages/components/other-components/sh-markdown/tinymce/langs/cy.js +7 -0
  87. package/packages/components/other-components/sh-markdown/tinymce/langs/da.js +7 -0
  88. package/packages/components/other-components/sh-markdown/tinymce/langs/de.js +7 -0
  89. package/packages/components/other-components/sh-markdown/tinymce/langs/dv.js +7 -0
  90. package/packages/components/other-components/sh-markdown/tinymce/langs/el.js +7 -0
  91. package/packages/components/other-components/sh-markdown/tinymce/langs/eo.js +7 -0
  92. package/packages/components/other-components/sh-markdown/tinymce/langs/es.js +7 -0
  93. package/packages/components/other-components/sh-markdown/tinymce/langs/es_MX.js +7 -0
  94. package/packages/components/other-components/sh-markdown/tinymce/langs/et.js +7 -0
  95. package/packages/components/other-components/sh-markdown/tinymce/langs/eu.js +7 -0
  96. package/packages/components/other-components/sh-markdown/tinymce/langs/fa.js +7 -0
  97. package/packages/components/other-components/sh-markdown/tinymce/langs/fi.js +7 -0
  98. package/packages/components/other-components/sh-markdown/tinymce/langs/fr_FR.js +7 -0
  99. package/packages/components/other-components/sh-markdown/tinymce/langs/ga.js +7 -0
  100. package/packages/components/other-components/sh-markdown/tinymce/langs/gl.js +7 -0
  101. package/packages/components/other-components/sh-markdown/tinymce/langs/he_IL.js +7 -0
  102. package/packages/components/other-components/sh-markdown/tinymce/langs/hi.js +7 -0
  103. package/packages/components/other-components/sh-markdown/tinymce/langs/hr.js +7 -0
  104. package/packages/components/other-components/sh-markdown/tinymce/langs/hu_HU.js +7 -0
  105. package/packages/components/other-components/sh-markdown/tinymce/langs/hy.js +7 -0
  106. package/packages/components/other-components/sh-markdown/tinymce/langs/id.js +7 -0
  107. package/packages/components/other-components/sh-markdown/tinymce/langs/is_IS.js +7 -0
  108. package/packages/components/other-components/sh-markdown/tinymce/langs/it.js +7 -0
  109. package/packages/components/other-components/sh-markdown/tinymce/langs/ja.js +7 -0
  110. package/packages/components/other-components/sh-markdown/tinymce/langs/kab.js +7 -0
  111. package/packages/components/other-components/sh-markdown/tinymce/langs/kk.js +7 -0
  112. package/packages/components/other-components/sh-markdown/tinymce/langs/ko_KR.js +7 -0
  113. package/packages/components/other-components/sh-markdown/tinymce/langs/ku.js +7 -0
  114. package/packages/components/other-components/sh-markdown/tinymce/langs/lt.js +7 -0
  115. package/packages/components/other-components/sh-markdown/tinymce/langs/lv.js +7 -0
  116. package/packages/components/other-components/sh-markdown/tinymce/langs/nb_NO.js +7 -0
  117. package/packages/components/other-components/sh-markdown/tinymce/langs/ne.js +7 -0
  118. package/packages/components/other-components/sh-markdown/tinymce/langs/nl.js +7 -0
  119. package/packages/components/other-components/sh-markdown/tinymce/langs/nl_BE.js +7 -0
  120. package/packages/components/other-components/sh-markdown/tinymce/langs/oc.js +7 -0
  121. package/packages/components/other-components/sh-markdown/tinymce/langs/pl.js +7 -0
  122. package/packages/components/other-components/sh-markdown/tinymce/langs/pt_BR.js +7 -0
  123. package/packages/components/other-components/sh-markdown/tinymce/langs/ro.js +7 -0
  124. package/packages/components/other-components/sh-markdown/tinymce/langs/ru.js +7 -0
  125. package/packages/components/other-components/sh-markdown/tinymce/langs/sk.js +7 -0
  126. package/packages/components/other-components/sh-markdown/tinymce/langs/sl_SI.js +7 -0
  127. package/packages/components/other-components/sh-markdown/tinymce/langs/sq.js +7 -0
  128. package/packages/components/other-components/sh-markdown/tinymce/langs/sr.js +7 -0
  129. package/packages/components/other-components/sh-markdown/tinymce/langs/sv_SE.js +7 -0
  130. package/packages/components/other-components/sh-markdown/tinymce/langs/ta.js +7 -0
  131. package/packages/components/other-components/sh-markdown/tinymce/langs/tg.js +7 -0
  132. package/packages/components/other-components/sh-markdown/tinymce/langs/th_TH.js +7 -0
  133. package/packages/components/other-components/sh-markdown/tinymce/langs/tr.js +7 -0
  134. package/packages/components/other-components/sh-markdown/tinymce/langs/ug.js +7 -0
  135. package/packages/components/other-components/sh-markdown/tinymce/langs/uk.js +7 -0
  136. package/packages/components/other-components/sh-markdown/tinymce/langs/vi.js +7 -0
  137. package/packages/components/other-components/sh-markdown/tinymce/langs/zh-Hans.js +7 -0
  138. package/packages/components/other-components/sh-markdown/tinymce/skins/content/dark/content.css +72 -0
  139. package/packages/components/other-components/sh-markdown/tinymce/skins/content/dark/content.min.css +7 -0
  140. package/packages/components/other-components/sh-markdown/tinymce/skins/content/default/content.css +67 -0
  141. package/packages/components/other-components/sh-markdown/tinymce/skins/content/default/content.min.css +7 -0
  142. package/packages/components/other-components/sh-markdown/tinymce/skins/content/document/content.css +72 -0
  143. package/packages/components/other-components/sh-markdown/tinymce/skins/content/document/content.min.css +7 -0
  144. package/packages/components/other-components/sh-markdown/tinymce/skins/content/writer/content.css +68 -0
  145. package/packages/components/other-components/sh-markdown/tinymce/skins/content/writer/content.min.css +7 -0
  146. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/content.css +732 -0
  147. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/content.inline.css +726 -0
  148. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/content.inline.min.css +7 -0
  149. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/content.min.css +7 -0
  150. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/content.mobile.css +29 -0
  151. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/content.mobile.min.css +7 -0
  152. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff +0 -0
  153. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/skin.css +3047 -0
  154. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/skin.min.css +7 -0
  155. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/skin.mobile.css +673 -0
  156. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/skin.mobile.min.css +7 -0
  157. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/skin.shadowdom.css +37 -0
  158. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/skin.shadowdom.min.css +7 -0
  159. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.css +714 -0
  160. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.inline.css +726 -0
  161. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.inline.min.css +7 -0
  162. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.min.css +7 -0
  163. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.mobile.css +29 -0
  164. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.mobile.min.css +7 -0
  165. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff +0 -0
  166. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.css +3047 -0
  167. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.min.css +7 -0
  168. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.mobile.css +673 -0
  169. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.mobile.min.css +7 -0
  170. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +37 -0
  171. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +7 -0
  172. package/packages/components/other-components/sh-menu-card/index.vue +224 -0
  173. package/packages/components/other-components/sh-menu-card/menu-box.vue +68 -0
  174. package/packages/components/other-components/sh-system-tip/index.vue +113 -0
  175. package/packages/css/index.js +6 -0
  176. package/packages/directive/directives.js +27 -0
  177. package/packages/directive/index.js +19 -0
  178. package/packages/directive/module/draggable.js +42 -0
  179. package/packages/index.js +40 -0
  180. package/packages/iview/css/index.scss +32 -0
  181. package/packages/iview/index.js +24 -0
  182. package/packages/mixin/index.js +87 -0
  183. package/packages/vxeTable/css/index.scss +454 -0
  184. package/packages/vxeTable/css/variable.scss +256 -0
  185. package/packages/vxeTable/index.js +178 -0
  186. package/packages/vxeTable/render/cell/vxe-render-checkbox.vue +19 -0
  187. package/packages/vxeTable/render/cell/vxe-render-checkgroup.vue +36 -0
  188. package/packages/vxeTable/render/cell/vxe-render-code.vue +19 -0
  189. package/packages/vxeTable/render/cell/vxe-render-goption.vue +93 -0
  190. package/packages/vxeTable/render/cell/vxe-render-href.vue +11 -0
  191. package/packages/vxeTable/render/cell/vxe-render-img.vue +28 -0
  192. package/packages/vxeTable/render/cell/vxe-render-input.vue +51 -0
  193. package/packages/vxeTable/render/cell/vxe-render-money.vue +25 -0
  194. package/packages/vxeTable/render/cell/vxe-render-progress.vue +19 -0
  195. package/packages/vxeTable/render/cell/vxe-render-radio.vue +19 -0
  196. package/packages/vxeTable/render/cell/vxe-render-radiogroup.vue +36 -0
  197. package/packages/vxeTable/render/cell/vxe-render-select.vue +36 -0
  198. package/packages/vxeTable/render/cell/vxe-render-switch.vue +19 -0
  199. package/packages/vxeTable/render/cell/vxe-render-table.vue +78 -0
  200. package/packages/vxeTable/render/cell/vxe-render-textarea.vue +19 -0
  201. package/packages/vxeTable/render/cell/vxe-render-time.vue +34 -0
  202. package/packages/vxeTable/render/cell/vxe-render-tree.vue +59 -0
  203. package/packages/vxeTable/render/cell/vxe-render-upload.vue +24 -0
  204. package/packages/vxeTable/render/filters/vxe-filter-input.vue +43 -0
  205. package/packages/vxeTable/render/footer/vxe-footer-input.vue +13 -0
  206. package/packages/vxeTable/render/footer/vxe-footer-money.vue +20 -0
  207. package/packages/vxeTable/render/globalRenders.js +491 -0
  208. package/packages/vxeTable/render/header/vxe-header-money.vue +21 -0
  209. package/packages/vxeTable/render/mixin/cell-mixin.js +195 -0
@@ -0,0 +1,311 @@
1
+ export default {
2
+ id: {
3
+ type: String,
4
+ default: 'shtable'
5
+ },
6
+ dataSourse: {
7
+ type: Array,
8
+ default() {
9
+ return []
10
+ }
11
+ },
12
+ columns: {
13
+ type: Array,
14
+ default() {
15
+ return []
16
+ }
17
+ },
18
+ width: {
19
+ type: [Number, String]
20
+ },
21
+ height: {
22
+ type: [Number, String]
23
+ },
24
+ maxHeight: {
25
+ type: [Number, String]
26
+ },
27
+ autoResize: {
28
+ type: Boolean,
29
+ default: true
30
+ },
31
+ syncResize: {
32
+ type: [Boolean, String, Number],
33
+ default: true
34
+ },
35
+ stripe: {
36
+ type: Boolean,
37
+ default: true
38
+ },
39
+ border: {
40
+ type: [Boolean, String],
41
+ default: 'full'
42
+ },
43
+ round: {
44
+ type: Boolean,
45
+ default: false
46
+ },
47
+ size: {
48
+ type: String,
49
+ default: 'small' // medium / small / mini
50
+ },
51
+ loading: {
52
+ type: Boolean,
53
+ default: false
54
+ },
55
+ align: {
56
+ type: String,
57
+ default: 'left'
58
+ },
59
+ headerAlign: {
60
+ type: String,
61
+ default: 'center'
62
+ },
63
+ showHeader: {
64
+ type: Boolean,
65
+ default: true
66
+ },
67
+ rowClassName: {
68
+ type: [String, Function]
69
+ },
70
+ cellClassName: {
71
+ type: [String, Function]
72
+ },
73
+ headerRowClassName: {
74
+ type: [String, Function]
75
+ },
76
+ headerCellClassName: {
77
+ type: [String, Function]
78
+ },
79
+ footerRowClassName: {
80
+ type: [String, Function]
81
+ },
82
+ footerCellClassName: {
83
+ type: [String, Function]
84
+ },
85
+ showFooter: {
86
+ type: Boolean,
87
+ default: false
88
+ },
89
+ footerMethod: {
90
+ type: Function
91
+ },
92
+ mergeCells: {
93
+ type: [Array]
94
+ },
95
+ mergeFooterItems: {
96
+ type: [Array]
97
+ },
98
+ showOverflow: {
99
+ type: [Boolean, String],
100
+ default: 'tooltip'
101
+ },
102
+ showHeaderOverflow: {
103
+ type: [Boolean, String],
104
+ default: 'tooltip'
105
+ },
106
+ showFooterOverflow: {
107
+ type: [Boolean, String],
108
+ default: false
109
+ },
110
+ footerSpanMethod: {
111
+ type: [Function]
112
+ },
113
+ keepSource: {
114
+ type: Boolean,
115
+ default: true
116
+ },
117
+ noDataIcon: {
118
+ type: String
119
+ },
120
+ noDataText: {
121
+ type: String
122
+ },
123
+ rowConfig: {
124
+ type: Object,
125
+ default() {
126
+ return {}
127
+ }
128
+ },
129
+ columnConfig: {
130
+ type: Object,
131
+ default() {
132
+ return {}
133
+ }
134
+ },
135
+ seqConfig: {
136
+ type: Object,
137
+ default() {
138
+ return {}
139
+ }
140
+ },
141
+ checkboxConfig: {
142
+ type: Object,
143
+ default() {
144
+ return {}
145
+ }
146
+ },
147
+ radioConfig: {
148
+ type: Object,
149
+ default() {
150
+ return {}
151
+ }
152
+ },
153
+ treeConfig: {
154
+ type: Object,
155
+ default() {
156
+ return {}
157
+ }
158
+ },
159
+ expandConfig: {
160
+ type: Object,
161
+ default() {
162
+ return {}
163
+ }
164
+ },
165
+ tooltipConfig: {
166
+ type: Object,
167
+ default() {
168
+ return {}
169
+ }
170
+ },
171
+ editConfig: {
172
+ type: Object,
173
+ default() {
174
+ return {}
175
+ }
176
+ },
177
+ validConfig: {
178
+ default() {
179
+ return { autoPos: true, showMessage: true }
180
+ }
181
+ },
182
+ editRules: {
183
+ type: Object,
184
+ default() {
185
+ return {}
186
+ }
187
+ },
188
+ sortConfig: {
189
+ type: Object,
190
+ default() {
191
+ return {}
192
+ }
193
+ },
194
+ mouseConfig: {
195
+ type: Object,
196
+ default() {
197
+ return {}
198
+ }
199
+ },
200
+ customConfig: {
201
+ type: Object,
202
+ default() {
203
+ return {}
204
+ }
205
+ },
206
+ exportConfig: {
207
+ type: Object,
208
+ default() {
209
+ return {}
210
+ }
211
+ },
212
+ printConfig: {
213
+ type: Object,
214
+ default() {
215
+ return {}
216
+ }
217
+ },
218
+ formConfig: {
219
+ type: Object,
220
+ default() {
221
+ return {}
222
+ }
223
+ },
224
+ toolbarConfig: {
225
+ type: Object,
226
+ default() {
227
+ return {}
228
+ }
229
+ },
230
+ pagerConfig: {
231
+ type: [Object, Boolean],
232
+ default: false
233
+ },
234
+ keyboardConfig: {
235
+ type: Object,
236
+ default() {
237
+ return {}
238
+ }
239
+ },
240
+ scrollX: {
241
+ type: Object
242
+ },
243
+ scrollY: {
244
+ type: Object
245
+ },
246
+
247
+ // 扩展配置
248
+ disabled: {
249
+ type: Boolean, // 表格是否可编辑,默认不可编辑
250
+ default: true
251
+ },
252
+ columnObj: {
253
+ type: Object,
254
+ default() {
255
+ return {}
256
+ }
257
+ },
258
+ globalConfig: {
259
+ type: Object,
260
+ default() {
261
+ return {}
262
+ }
263
+ },
264
+ footerCalculate: {
265
+ type: Object,
266
+ default() {
267
+ return {
268
+ calculate: ['subTotal']
269
+ // subTotal: { name: '合计', data: {} },
270
+ // allTotal: { name: '总计', data: {} },
271
+ // mean: { name: '平均', data: {} }
272
+ }
273
+ }
274
+ },
275
+ reverse: {
276
+ type: Boolean,
277
+ default: false
278
+ },
279
+ reverseConfig: {
280
+ type: Object,
281
+ default() {
282
+ return {
283
+ num: 0,
284
+ keyPrefix: 'reversePre',
285
+ titPrefix: ''
286
+ }
287
+ }
288
+ },
289
+ tableName: {
290
+ type: String,
291
+ default: ''
292
+ },
293
+ queryData: {
294
+ type: Object,
295
+ default() {
296
+ return {}
297
+ }
298
+ },
299
+ onToolbarBtnAddBefore: {
300
+ type: Function
301
+ },
302
+ onToolbarBtnDeleteBefore: {
303
+ type: Function
304
+ },
305
+ onExportMethod: {
306
+ type: Function
307
+ },
308
+ onPrintMethod: {
309
+ type: Function
310
+ }
311
+ }
@@ -0,0 +1,116 @@
1
+ export default {
2
+ data() {
3
+ return {
4
+ // 全局配置
5
+ globalConfigDefault: {
6
+ tableName: '',
7
+ title: false, // 是否显示 tableName
8
+ checkbox: true, // 是否展示复选框
9
+ radio: false, // 是否展示单选框
10
+ seq: true, // 是否展示序号列
11
+ ghost: false, // 是否开启透明
12
+ search: false, // 表格是否开启查询,默认不开启,根据columns配置字段 search 为 true
13
+ globalFilter: false, // 表格是否开启全局过滤
14
+ zoom: false, // 表格是否开启缩放
15
+ import: false, // 表格是否支持导入
16
+ export: false, // 表格是否支持导出
17
+ print: false, // 表格是否支持导引
18
+ addRow: false, // 表格是否支持新增行
19
+ deleteRow: false, // 表格是否支持删除行
20
+ formToggleNum: 4,
21
+ formToggle: true
22
+ },
23
+ // 分页配置
24
+ pagerConfigDefault: {
25
+ enabled: true,
26
+ currentPage: 1,
27
+ pageSize: 50,
28
+ total: 0,
29
+ className: 'sh-table-footer',
30
+ slots: {
31
+ left: 'pagerLeftSlot',
32
+ right: 'pagerRightSlot'
33
+ }
34
+ },
35
+ // 表头默认值
36
+ columnObjDefault: {
37
+ minWidth: 120,
38
+ sortable: true,
39
+ filter: true
40
+ },
41
+ // 表头默认列
42
+ columnsConfigDefault: [
43
+ {
44
+ title: '',
45
+ type: 'checkbox',
46
+ width: 60,
47
+ align: 'center',
48
+ fixed: 'left',
49
+ sortable: false,
50
+ resizable: false,
51
+ className: 'table-row-checkbox'
52
+ },
53
+ {
54
+ title: '单选',
55
+ type: 'radio',
56
+ width: 60,
57
+ align: 'center',
58
+ fixed: 'left',
59
+ sortable: false,
60
+ resizable: false,
61
+ className: 'table-row-radio'
62
+ },
63
+ {
64
+ title: '序号',
65
+ type: 'seq',
66
+ width: 70,
67
+ align: 'center',
68
+ fixed: 'left',
69
+ sortable: false,
70
+ resizable: false,
71
+ className: 'table-row-seq'
72
+ }
73
+ ],
74
+ columnConfigDefault: {
75
+ isCurrent: false,
76
+ isHover: true,
77
+ resizable: true
78
+ },
79
+ exportConfigDefault: {
80
+ type: 'xlsx',
81
+ types: ['xlsx', 'csv', 'pdf', 'html', 'xml', 'txt'],
82
+ mode: 'current',
83
+ original: false,
84
+ message: true,
85
+ isHeader: true,
86
+ isColgroup: true,
87
+ isFooter: false,
88
+ isMerge: false,
89
+ isAllExpand: true,
90
+ download: true,
91
+ useStyle: false,
92
+ columnFilterMethod: this.columnDefaultFilterMethod,
93
+ sheetMethod: this.exportSheetMethod,
94
+ beforeExportMethod: obj => this.getExportPrintDataByOption(obj, 'export')
95
+ },
96
+ printConfigDefault: {
97
+ mode: 'current',
98
+ original: false,
99
+ message: true,
100
+ isHeader: true,
101
+ isColgroup: true,
102
+ isFooter: false,
103
+ isMerge: false,
104
+ isAllExpand: true,
105
+ download: true,
106
+ useStyle: false,
107
+ columnFilterMethod: this.columnDefaultFilterMethod,
108
+ beforePrintMethod: obj => this.getExportPrintDataByOption(obj, 'print')
109
+ }
110
+ }
111
+ },
112
+ computed: {},
113
+ methods: {},
114
+ created() {},
115
+ activated() {}
116
+ }
@@ -0,0 +1,172 @@
1
+ <template>
2
+ <div class="sh-vxe-toolbar">
3
+ <div class="toolbar-left">
4
+ <slot name="left"></slot>
5
+ <template v-if="isTool">
6
+ <template v-for="(toolBtn, toolBtnIndex) in toolBtns" :key="toolBtnIndex">
7
+ <vxe-button v-bind="toolBtn" @click="handleToolBtn(toolBtn)"></vxe-button>
8
+ </template>
9
+ </template>
10
+ <vxe-radio-group v-else v-model="leftActive">
11
+ <template v-for="(leftBtn, leftBtnIndex) in leftBtns" :key="leftBtnIndex">
12
+ <vxe-radio-button v-bind="leftBtn" :label="leftBtn.value"></vxe-radio-button>
13
+ </template>
14
+ </vxe-radio-group>
15
+ <slot name="leftr"></slot>
16
+ </div>
17
+ <div class="toolbar-right">
18
+ <slot name="rightl"></slot>
19
+ <template v-for="(rightBtn, rightBtnIndex) in rightBtns" :key="rightBtnIndex">
20
+ <vxe-button v-bind="rightBtn" @click="handleRightBtn(rightBtn)"></vxe-button>
21
+ </template>
22
+ <slot name="right"></slot>
23
+ </div>
24
+ </div>
25
+ </template>
26
+
27
+ <script>
28
+ export default {
29
+ name: 'ShToolbar',
30
+ props: {
31
+ modelValue: {
32
+ type: String
33
+ },
34
+ relation: {
35
+ type: Boolean
36
+ },
37
+ leftContain: {
38
+ type: Array,
39
+ default() {
40
+ return []
41
+ }
42
+ },
43
+ leftConfig: {
44
+ type: Array,
45
+ default() {
46
+ return [
47
+ { value: '0', code: 'wss', content: '未送审' },
48
+ { value: '-1', code: 'bth', content: '被退回' },
49
+ { value: '1', code: 'yss', content: '已送审' },
50
+ { value: '999', code: 'ygd', content: '已归档' },
51
+ { value: '-999', code: 'qb', content: '全部' },
52
+ { value: '1', code: 'dsh', content: '待审核' },
53
+ { value: '999', code: 'ysh', content: '已审核' }
54
+ ]
55
+ }
56
+ },
57
+ rightConfig: {
58
+ type: Array,
59
+ default() {
60
+ return []
61
+ }
62
+ },
63
+ isTool: {
64
+ type: Boolean
65
+ },
66
+ toolsContain: {
67
+ type: Array,
68
+ default() {
69
+ return []
70
+ }
71
+ },
72
+ toolsConfig: {
73
+ type: Array,
74
+ default() {
75
+ return [
76
+ { code: 'add', content: '新增', status: 'primary', icon: 'vxe-icon-add' },
77
+ { code: 'edit', content: '修改', status: 'warning', icon: 'vxe-icon-edit' },
78
+ { code: 'delete', content: '删除', status: 'danger', icon: 'vxe-icon-delete' },
79
+ { code: 'detail', content: '查看', status: '', icon: 'vxe-icon-information' },
80
+ { code: 'batch-add', content: '批量新增', status: 'primary', icon: 'vxe-icon-add' },
81
+ { code: 'batch-edit', content: '批量修改', status: 'warning', icon: 'vxe-icon-edit' },
82
+ { code: 'batch-delete', content: '批量删除', status: 'danger', icon: 'vxe-icon-delete' },
83
+ { code: 'batch-detail', content: '查看', status: '', icon: 'vxe-icon-information' }
84
+ ]
85
+ }
86
+ }
87
+ },
88
+ emits: ['update:modelValue', 'left', 'right', 'tool'],
89
+ data() {
90
+ return {
91
+ leftActive: this.modelValue
92
+ }
93
+ },
94
+ computed: {
95
+ leftBtns() {
96
+ let lBtns = []
97
+ let { leftContain, leftConfig } = this
98
+ if (leftContain && Array.isArray(leftContain)) {
99
+ lBtns = leftContain.map(item => {
100
+ return leftConfig.find(btn => btn.code === item)
101
+ })
102
+ }
103
+ return lBtns
104
+ },
105
+ rightBtns() {
106
+ let rBtns = []
107
+ let { rightConfig } = this
108
+ if (rightConfig && Array.isArray(rightConfig)) {
109
+ rBtns = rightConfig
110
+ }
111
+ if (this.relation) {
112
+ rBtns = rBtns.filter(item => item.code && item.code.split(',').includes(this.leftActive))
113
+ }
114
+ return rBtns
115
+ },
116
+ toolBtns() {
117
+ let toolBtns = []
118
+ let { toolsContain, toolsConfig } = this
119
+ if (toolsContain && Array.isArray(toolsContain)) {
120
+ toolBtns = toolsContain.map(item => {
121
+ return toolsConfig.find(btn => btn.code === item)
122
+ })
123
+ }
124
+ return toolBtns
125
+ }
126
+ },
127
+ watch: {
128
+ modelValue(nv, ov) {
129
+ this.leftActive = nv
130
+ },
131
+ leftActive(nv, ov) {
132
+ this.$emit('update:modelValue', nv)
133
+ this.handleLeftBtn(nv)
134
+ }
135
+ },
136
+ methods: {
137
+ handleLeftBtn(value) {
138
+ let btnObj = this.leftConfig.find(item => item.value === value)
139
+ this.$emit('left', value, btnObj)
140
+ },
141
+ handleRightBtn(btn) {
142
+ this.$emit('right', btn.value, btn)
143
+ },
144
+ handleToolBtn(btn) {
145
+ this.$emit('tool', btn)
146
+ }
147
+ }
148
+ }
149
+ </script>
150
+
151
+ <style lang="scss">
152
+ .sh-vxe-toolbar {
153
+ display: flex;
154
+ justify-content: space-between;
155
+ align-items: center;
156
+ padding: 10px 5px;
157
+ box-sizing: border-box;
158
+ background-color: var(--body-background);
159
+ .toolbar-left {
160
+ flex: 1;
161
+ white-space: nowrap;
162
+ .vxe-radio-button > input:checked + .vxe-radio--label {
163
+ border-color: var(--theme-color);
164
+ background: linear-gradient(-10deg, var(--theme-color), var(--theme-weak-color));
165
+ }
166
+ }
167
+ .toolbar-right {
168
+ flex: 0;
169
+ white-space: nowrap;
170
+ }
171
+ }
172
+ </style>