sh-view 1.7.5 → 2.0.0

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 (206) hide show
  1. package/.eslintrc.js +20 -21
  2. package/package.json +10 -10
  3. package/packages/assets/css/animated.scss +167 -2
  4. package/packages/assets/css/loader.scss +42 -42
  5. package/packages/assets/css/main.scss +41 -21
  6. package/packages/assets/css/theme.scss +83 -44
  7. package/packages/components/global-components/sh-alert/index.vue +173 -0
  8. package/packages/components/global-components/sh-badge/index.vue +227 -0
  9. package/packages/components/global-components/sh-card/index.vue +140 -122
  10. package/packages/components/global-components/sh-code-editor/index.vue +260 -260
  11. package/packages/components/global-components/sh-col/css/index.scss +76 -0
  12. package/packages/components/global-components/sh-col/index.vue +83 -0
  13. package/packages/components/global-components/sh-corner/index.vue +1 -9
  14. package/packages/components/global-components/sh-count-to/index.vue +102 -46
  15. package/packages/components/global-components/sh-date/index.vue +40 -0
  16. package/packages/components/global-components/sh-drawer/index.vue +518 -0
  17. package/packages/components/global-components/sh-drawer/scrollbar.js +76 -0
  18. package/packages/components/global-components/sh-empty/index.vue +43 -43
  19. package/packages/components/global-components/{sh-vxe-form → sh-form}/css/index.scss +6 -6
  20. package/packages/components/global-components/{sh-vxe-form → sh-form}/index.vue +114 -115
  21. package/packages/components/global-components/sh-form/js/methods.js +146 -0
  22. package/packages/components/global-components/{sh-vxe-form → sh-form}/mixin/defaultData.js +32 -33
  23. package/packages/components/global-components/sh-header/index.vue +293 -269
  24. package/packages/components/global-components/sh-icon/css/default/fonts/ionicons.svg +870 -0
  25. package/packages/components/global-components/sh-icon/css/default/fonts/ionicons.ttf +0 -0
  26. package/packages/components/global-components/sh-icon/css/default/fonts/ionicons.woff +0 -0
  27. package/packages/components/global-components/sh-icon/css/default/fonts/ionicons.woff2 +0 -0
  28. package/packages/components/global-components/sh-icon/css/default/icons.scss +2583 -0
  29. package/packages/components/global-components/sh-icon/css/default/index.scss +27 -0
  30. package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.js +1 -0
  31. package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.json +247 -0
  32. package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.ttf +0 -0
  33. package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.woff +0 -0
  34. package/packages/components/global-components/sh-icon/css/font/fonts/iconfont.woff2 +0 -0
  35. package/packages/components/global-components/sh-icon/css/font/icons.scss +135 -0
  36. package/packages/components/global-components/sh-icon/css/font/index.scss +16 -0
  37. package/packages/components/global-components/sh-icon/icon-default.vue +32 -0
  38. package/packages/components/global-components/sh-icon/{icons.vue → icon-font.vue} +32 -32
  39. package/packages/components/global-components/sh-icon/index.vue +28 -27
  40. package/packages/components/global-components/sh-image/index.vue +123 -0
  41. package/packages/components/global-components/sh-list/index.vue +141 -0
  42. package/packages/components/global-components/sh-loading/index.vue +49 -42
  43. package/packages/components/global-components/{sh-vxe-modal → sh-modal}/index.vue +209 -209
  44. package/packages/components/global-components/sh-noticebar/index.vue +201 -201
  45. package/packages/components/global-components/sh-poptip/index.vue +479 -0
  46. package/packages/components/global-components/sh-poptip/popper.js +115 -0
  47. package/packages/components/global-components/sh-progress/index.vue +290 -0
  48. package/packages/components/global-components/sh-pull-refresh/index.vue +290 -290
  49. package/packages/components/global-components/{sh-vxe-query → sh-query}/index.vue +317 -286
  50. package/packages/components/global-components/sh-result/index.vue +110 -88
  51. package/packages/components/global-components/sh-row/css/index.scss +21 -0
  52. package/packages/components/global-components/sh-row/index.vue +63 -0
  53. package/packages/components/global-components/sh-split/components/trigger.vue +33 -0
  54. package/packages/components/global-components/sh-split/index.vue +334 -0
  55. package/packages/components/global-components/sh-table/components/importModal.vue +351 -0
  56. package/packages/components/global-components/{sh-vxe-table → sh-table}/css/index.scss +4 -22
  57. package/packages/components/global-components/{sh-vxe-table → sh-table}/index.vue +329 -351
  58. package/packages/components/global-components/{sh-vxe-table → sh-table}/js/methods.js +91 -153
  59. package/packages/components/global-components/{sh-vxe-table → sh-table}/js/props.js +304 -313
  60. package/packages/components/global-components/{sh-vxe-table → sh-table}/mixin/defaultData.js +94 -116
  61. package/packages/components/global-components/sh-tabs/index.vue +315 -0
  62. package/packages/components/global-components/sh-tag/index.vue +163 -0
  63. package/packages/components/global-components/{sh-vxe-toolbar → sh-toolbar}/index.vue +177 -172
  64. package/packages/components/global-components/sh-tree/components/table-tree.vue +280 -0
  65. package/packages/components/global-components/sh-tree/css/index.scss +54 -0
  66. package/packages/components/global-components/sh-tree/index.vue +195 -0
  67. package/packages/components/global-components/sh-tree/mixin/treeProps.js +124 -0
  68. package/packages/components/global-components/sh-upload/index.vue +278 -418
  69. package/packages/components/global-components/sh-upload/js/ajax.js +80 -0
  70. package/packages/components/global-components/sh-upload/js/mixin.js +257 -0
  71. package/packages/components/global-components/sh-water-fall/index.vue +87 -87
  72. package/packages/components/index.js +85 -59
  73. package/packages/components/other-components/sh-cron-modal/css/index.scss +2 -2
  74. package/packages/components/other-components/sh-menu-card/index.vue +224 -224
  75. package/packages/css/index.js +4 -6
  76. package/packages/directive/index.js +19 -19
  77. package/packages/directive/module/click-out.js +14 -0
  78. package/packages/directive/module/draggable.js +42 -42
  79. package/packages/directive/module/line-clamp.js +22 -0
  80. package/packages/directive/module/prevent-click.js +18 -0
  81. package/packages/directive/module/resize.js +19 -0
  82. package/packages/directive/module/ripple.js +166 -0
  83. package/packages/index.js +39 -40
  84. package/packages/utils/transfer-queue.js +12 -0
  85. package/packages/vxeTable/css/index.scss +12 -98
  86. package/packages/vxeTable/css/variable.scss +7 -265
  87. package/packages/vxeTable/index.js +184 -184
  88. package/packages/vxeTable/plugins/export.js +450 -0
  89. package/packages/vxeTable/render/cell/vxe-render-checkgroup.vue +36 -36
  90. package/packages/vxeTable/render/cell/vxe-render-goption.vue +94 -93
  91. package/packages/vxeTable/render/cell/vxe-render-img.vue +21 -28
  92. package/packages/vxeTable/render/cell/vxe-render-input.vue +51 -51
  93. package/packages/vxeTable/render/cell/vxe-render-progress.vue +19 -19
  94. package/packages/vxeTable/render/cell/vxe-render-radiogroup.vue +36 -36
  95. package/packages/vxeTable/render/cell/vxe-render-select.vue +36 -36
  96. package/packages/vxeTable/render/cell/vxe-render-tree.vue +59 -59
  97. package/packages/vxeTable/render/globalRenders.jsx +498 -491
  98. package/packages/assets/icons/demo.css +0 -539
  99. package/packages/assets/icons/iconfont.css +0 -415
  100. package/packages/assets/icons/iconfont.js +0 -1
  101. package/packages/assets/icons/iconfont.json +0 -709
  102. package/packages/assets/icons/iconfont.ttf +0 -0
  103. package/packages/assets/icons/iconfont.woff +0 -0
  104. package/packages/assets/icons/iconfont.woff2 +0 -0
  105. package/packages/assets/img/image-error.png +0 -0
  106. package/packages/assets/img/square-image.png +0 -0
  107. package/packages/components/global-components/sh-iv-form/components/iv-group-item.vue +0 -57
  108. package/packages/components/global-components/sh-iv-form/components/iv-single-item.vue +0 -76
  109. package/packages/components/global-components/sh-iv-form/index.vue +0 -255
  110. package/packages/components/global-components/sh-layout/index.vue +0 -142
  111. package/packages/components/global-components/sh-upload/components/u-img.vue +0 -63
  112. package/packages/components/global-components/sh-upload/components/u-list.vue +0 -100
  113. package/packages/components/global-components/sh-vxe-form/js/methods.js +0 -170
  114. package/packages/components/global-components/sh-vxe-list/index.vue +0 -129
  115. package/packages/components/global-components/sh-vxe-table/components/importModal.vue +0 -377
  116. package/packages/components/global-components/sh-vxe-tree/components/table-tree.vue +0 -233
  117. package/packages/components/global-components/sh-vxe-tree/css/index.scss +0 -20
  118. package/packages/components/global-components/sh-vxe-tree/index.vue +0 -85
  119. package/packages/components/global-components/sh-vxe-tree/js/props.js +0 -120
  120. package/packages/components/global-components/sh-vxe-tree/js/treeMethods.js +0 -169
  121. package/packages/components/global-components/sh-vxe-tree/mixin/defaultData.js +0 -54
  122. package/packages/components/global-components/sh-vxe-tree/vxe-direct-tree.vue +0 -203
  123. package/packages/components/global-components/sh-vxe-tree/vxe-select-tree.vue +0 -291
  124. package/packages/components/other-components/sh-markdown/tinymce/langs/ar.js +0 -7
  125. package/packages/components/other-components/sh-markdown/tinymce/langs/az.js +0 -7
  126. package/packages/components/other-components/sh-markdown/tinymce/langs/bg_BG.js +0 -7
  127. package/packages/components/other-components/sh-markdown/tinymce/langs/bn_BD.js +0 -7
  128. package/packages/components/other-components/sh-markdown/tinymce/langs/ca.js +0 -7
  129. package/packages/components/other-components/sh-markdown/tinymce/langs/cs.js +0 -7
  130. package/packages/components/other-components/sh-markdown/tinymce/langs/cy.js +0 -7
  131. package/packages/components/other-components/sh-markdown/tinymce/langs/da.js +0 -7
  132. package/packages/components/other-components/sh-markdown/tinymce/langs/de.js +0 -7
  133. package/packages/components/other-components/sh-markdown/tinymce/langs/dv.js +0 -7
  134. package/packages/components/other-components/sh-markdown/tinymce/langs/el.js +0 -7
  135. package/packages/components/other-components/sh-markdown/tinymce/langs/eo.js +0 -7
  136. package/packages/components/other-components/sh-markdown/tinymce/langs/es.js +0 -7
  137. package/packages/components/other-components/sh-markdown/tinymce/langs/es_MX.js +0 -7
  138. package/packages/components/other-components/sh-markdown/tinymce/langs/et.js +0 -7
  139. package/packages/components/other-components/sh-markdown/tinymce/langs/eu.js +0 -7
  140. package/packages/components/other-components/sh-markdown/tinymce/langs/fa.js +0 -7
  141. package/packages/components/other-components/sh-markdown/tinymce/langs/fi.js +0 -7
  142. package/packages/components/other-components/sh-markdown/tinymce/langs/fr_FR.js +0 -7
  143. package/packages/components/other-components/sh-markdown/tinymce/langs/ga.js +0 -7
  144. package/packages/components/other-components/sh-markdown/tinymce/langs/gl.js +0 -7
  145. package/packages/components/other-components/sh-markdown/tinymce/langs/he_IL.js +0 -7
  146. package/packages/components/other-components/sh-markdown/tinymce/langs/hi.js +0 -7
  147. package/packages/components/other-components/sh-markdown/tinymce/langs/hr.js +0 -7
  148. package/packages/components/other-components/sh-markdown/tinymce/langs/hu_HU.js +0 -7
  149. package/packages/components/other-components/sh-markdown/tinymce/langs/hy.js +0 -7
  150. package/packages/components/other-components/sh-markdown/tinymce/langs/id.js +0 -7
  151. package/packages/components/other-components/sh-markdown/tinymce/langs/is_IS.js +0 -7
  152. package/packages/components/other-components/sh-markdown/tinymce/langs/it.js +0 -7
  153. package/packages/components/other-components/sh-markdown/tinymce/langs/ja.js +0 -7
  154. package/packages/components/other-components/sh-markdown/tinymce/langs/kab.js +0 -7
  155. package/packages/components/other-components/sh-markdown/tinymce/langs/kk.js +0 -7
  156. package/packages/components/other-components/sh-markdown/tinymce/langs/ko_KR.js +0 -7
  157. package/packages/components/other-components/sh-markdown/tinymce/langs/ku.js +0 -7
  158. package/packages/components/other-components/sh-markdown/tinymce/langs/lt.js +0 -7
  159. package/packages/components/other-components/sh-markdown/tinymce/langs/lv.js +0 -7
  160. package/packages/components/other-components/sh-markdown/tinymce/langs/nb_NO.js +0 -7
  161. package/packages/components/other-components/sh-markdown/tinymce/langs/ne.js +0 -7
  162. package/packages/components/other-components/sh-markdown/tinymce/langs/nl.js +0 -7
  163. package/packages/components/other-components/sh-markdown/tinymce/langs/nl_BE.js +0 -7
  164. package/packages/components/other-components/sh-markdown/tinymce/langs/oc.js +0 -7
  165. package/packages/components/other-components/sh-markdown/tinymce/langs/pl.js +0 -7
  166. package/packages/components/other-components/sh-markdown/tinymce/langs/pt_BR.js +0 -7
  167. package/packages/components/other-components/sh-markdown/tinymce/langs/ro.js +0 -7
  168. package/packages/components/other-components/sh-markdown/tinymce/langs/ru.js +0 -7
  169. package/packages/components/other-components/sh-markdown/tinymce/langs/sk.js +0 -7
  170. package/packages/components/other-components/sh-markdown/tinymce/langs/sl_SI.js +0 -7
  171. package/packages/components/other-components/sh-markdown/tinymce/langs/sq.js +0 -7
  172. package/packages/components/other-components/sh-markdown/tinymce/langs/sr.js +0 -7
  173. package/packages/components/other-components/sh-markdown/tinymce/langs/sv_SE.js +0 -7
  174. package/packages/components/other-components/sh-markdown/tinymce/langs/ta.js +0 -7
  175. package/packages/components/other-components/sh-markdown/tinymce/langs/tg.js +0 -7
  176. package/packages/components/other-components/sh-markdown/tinymce/langs/th_TH.js +0 -7
  177. package/packages/components/other-components/sh-markdown/tinymce/langs/tr.js +0 -7
  178. package/packages/components/other-components/sh-markdown/tinymce/langs/ug.js +0 -7
  179. package/packages/components/other-components/sh-markdown/tinymce/langs/uk.js +0 -7
  180. package/packages/components/other-components/sh-markdown/tinymce/langs/vi.js +0 -7
  181. package/packages/components/other-components/sh-markdown/tinymce/skins/content/dark/content.css +0 -72
  182. package/packages/components/other-components/sh-markdown/tinymce/skins/content/dark/content.min.css +0 -7
  183. package/packages/components/other-components/sh-markdown/tinymce/skins/content/default/content.min.css +0 -7
  184. package/packages/components/other-components/sh-markdown/tinymce/skins/content/document/content.css +0 -72
  185. package/packages/components/other-components/sh-markdown/tinymce/skins/content/document/content.min.css +0 -7
  186. package/packages/components/other-components/sh-markdown/tinymce/skins/content/writer/content.css +0 -68
  187. package/packages/components/other-components/sh-markdown/tinymce/skins/content/writer/content.min.css +0 -7
  188. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.css +0 -714
  189. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.inline.css +0 -726
  190. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.inline.min.css +0 -7
  191. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.min.css +0 -7
  192. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.mobile.css +0 -29
  193. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.mobile.min.css +0 -7
  194. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff +0 -0
  195. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.css +0 -3047
  196. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.min.css +0 -7
  197. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.mobile.css +0 -673
  198. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.mobile.min.css +0 -7
  199. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +0 -37
  200. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +0 -7
  201. package/packages/directive/directives.js +0 -27
  202. package/packages/iview/css/index.scss +0 -32
  203. package/packages/iview/index.js +0 -25
  204. /package/packages/components/global-components/{sh-vxe-form → sh-form}/components/form-item.vue +0 -0
  205. /package/packages/components/global-components/{sh-vxe-form → sh-form}/js/props.js +0 -0
  206. /package/packages/components/global-components/{sh-vxe-table → sh-table}/js/excel_to_json.js +0 -0
@@ -0,0 +1,80 @@
1
+ function getError(action, option, xhr) {
2
+ const msg = `fail to post ${action} ${xhr.status}'`
3
+ const err = new Error(msg)
4
+ err.status = xhr.status
5
+ err.method = 'post'
6
+ err.url = action
7
+ return err
8
+ }
9
+
10
+ function getBody(xhr) {
11
+ const text = xhr.responseText || xhr.response
12
+ if (!text) {
13
+ return text
14
+ }
15
+
16
+ try {
17
+ return JSON.parse(text)
18
+ } catch (e) {
19
+ return text
20
+ }
21
+ }
22
+
23
+ export default function upload(option) {
24
+ if (typeof XMLHttpRequest === 'undefined') {
25
+ return
26
+ }
27
+
28
+ const xhr = new XMLHttpRequest()
29
+ const action = option.action
30
+
31
+ if (xhr.upload) {
32
+ xhr.upload.onprogress = function progress(e) {
33
+ if (e.total > 0) {
34
+ e.percent = (e.loaded / e.total) * 100
35
+ }
36
+ option.onProgress(e)
37
+ }
38
+ }
39
+
40
+ const formData = new FormData()
41
+
42
+ if (option.data) {
43
+ Object.keys(option.data).map(key => {
44
+ formData.append(key, option.data[key])
45
+ })
46
+ }
47
+
48
+ formData.append(option.filename, option.file)
49
+
50
+ xhr.onerror = function error(e) {
51
+ option.onError(e)
52
+ }
53
+
54
+ xhr.onload = function onload() {
55
+ if (xhr.status < 200 || xhr.status >= 300) {
56
+ return option.onError(getError(action, option, xhr), getBody(xhr))
57
+ }
58
+
59
+ option.onSuccess(getBody(xhr))
60
+ }
61
+
62
+ xhr.open('post', action, true)
63
+
64
+ if (option.withCredentials && 'withCredentials' in xhr) {
65
+ xhr.withCredentials = true
66
+ }
67
+
68
+ const headers = option.headers || {}
69
+
70
+ // if (headers['X-Requested-With'] !== null) {
71
+ // xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
72
+ // }
73
+
74
+ for (let item in headers) {
75
+ if (headers.hasOwnProperty(item) && headers[item] !== null) {
76
+ xhr.setRequestHeader(item, headers[item])
77
+ }
78
+ }
79
+ xhr.send(formData)
80
+ }
@@ -0,0 +1,257 @@
1
+ // 上传组件通用方法
2
+
3
+ import ajax from './ajax'
4
+
5
+ export default {
6
+ props: {
7
+ modelValue: {
8
+ type: Array,
9
+ default() {
10
+ return []
11
+ }
12
+ },
13
+ action: {
14
+ type: String,
15
+ default: 'fileservice/v2/upload'
16
+ },
17
+ headers: {
18
+ type: Object,
19
+ default() {
20
+ return {}
21
+ }
22
+ },
23
+ disabled: {
24
+ type: Boolean,
25
+ default: false
26
+ },
27
+ maxSize: {
28
+ type: Number,
29
+ default: 1024 * 2 // 文件大小限制,单位 kb
30
+ },
31
+ accept: {
32
+ type: String,
33
+ default: '.doc,.docx,.xls,.xlsx,.txt,.pdf,.jpg,.jpeg,.png,.txt,.7z,.zip,.rar'
34
+ },
35
+ name: {
36
+ type: String,
37
+ default: 'file'
38
+ },
39
+ beforeUpload: {
40
+ type: Function
41
+ },
42
+ webkitdirectory: {
43
+ type: Boolean,
44
+ default: false // 是否开启选择文件夹,部分浏览器适用
45
+ },
46
+ withCredentials: {
47
+ type: Boolean,
48
+ default: false // 支持发送 cookie 凭证信息
49
+ },
50
+ paste: {
51
+ type: Boolean,
52
+ default: false // 是否支持粘贴上传文件
53
+ },
54
+ format: {
55
+ type: Array,
56
+ default() {
57
+ return []
58
+ }
59
+ },
60
+ onFormatError: {
61
+ type: Function
62
+ },
63
+ onExceededSize: {
64
+ type: Function
65
+ },
66
+ onProgress: {
67
+ type: Function,
68
+ default() {}
69
+ },
70
+ onSuccess: {
71
+ type: Function,
72
+ default() {}
73
+ },
74
+ onError: {
75
+ type: Function,
76
+ default() {}
77
+ },
78
+ onRemove: {
79
+ type: Function,
80
+ default() {}
81
+ },
82
+ onPreview: {
83
+ type: Function,
84
+ default() {}
85
+ },
86
+ onDownload: {
87
+ type: Function,
88
+ default() {}
89
+ }
90
+ },
91
+ data() {
92
+ return {
93
+ tempIndex: 1,
94
+ dragOver: false,
95
+ fileList: []
96
+ }
97
+ },
98
+ methods: {
99
+ progressConfig(file) {
100
+ return {
101
+ textInside: true,
102
+ strokeWidth: 20,
103
+ percent: parseInt(file.percentage, 10),
104
+ status: file.status
105
+ }
106
+ },
107
+ handleClick() {
108
+ if (this.disabled) return
109
+ this.$refs.input.click()
110
+ },
111
+ handleChange(e) {
112
+ const files = e.target.files
113
+ if (!files) return
114
+ this.uploadFiles(files)
115
+ this.$refs.input.value = null
116
+ },
117
+ handleStart(file) {
118
+ file.uid = Date.now() + this.tempIndex++
119
+ const _file = {
120
+ status: 'active',
121
+ name: file.name,
122
+ size: file.size,
123
+ percentage: 0,
124
+ uid: file.uid,
125
+ showProgress: true
126
+ }
127
+ this.fileList.push(_file)
128
+ },
129
+ handlePaste(e) {
130
+ if (this.disabled) return
131
+ if (this.paste) {
132
+ this.uploadFiles(e.clipboardData.files)
133
+ }
134
+ },
135
+ handleProgress(e, file) {
136
+ const _file = this.getFile(file)
137
+ this.onProgress(e, _file, this.fileList)
138
+ _file.percentage = e.percent || 0
139
+ },
140
+ handleSuccess(res, file) {
141
+ const _file = this.getFile(file)
142
+ if (_file) {
143
+ _file.status = 'success'
144
+ _file.response = res
145
+ this.emitValue()
146
+ this.onSuccess(res, _file, this.fileList)
147
+ setTimeout(() => {
148
+ _file.showProgress = false
149
+ }, 1000)
150
+ }
151
+ },
152
+ handleError(err, response, file) {
153
+ const _file = this.getFile(file)
154
+ const fileList = this.fileList
155
+ _file.status = 'wrong'
156
+ fileList.splice(fileList.indexOf(_file), 1)
157
+ this.onError(err, response, file)
158
+ },
159
+ handleRemove(file) {
160
+ const fileList = this.fileList
161
+ fileList.splice(fileList.indexOf(file), 1)
162
+ this.emitValue()
163
+ this.onRemove(file, fileList)
164
+ },
165
+ handlePreview(file) {
166
+ const fileList = this.fileList
167
+ fileList.splice(fileList.indexOf(file), 1)
168
+ this.onRemove(file, fileList)
169
+ },
170
+ handleDownload(file) {
171
+ const fileList = this.fileList
172
+ fileList.splice(fileList.indexOf(file), 1)
173
+ this.onDownload(file, fileList)
174
+ },
175
+ onDrop(e) {
176
+ this.dragOver = false
177
+ if (this.disabled) return
178
+ this.uploadFiles(e.dataTransfer.files)
179
+ },
180
+ uploadFiles(files) {
181
+ let postFiles = Array.prototype.slice.call(files)
182
+ if (!this.multiple) postFiles = postFiles.slice(0, 1)
183
+ if (postFiles.length === 0) return
184
+ postFiles.forEach(file => {
185
+ this.upload(file)
186
+ })
187
+ },
188
+ upload(file) {
189
+ if (!this.beforeUpload) {
190
+ return this.post(file)
191
+ }
192
+ const before = this.beforeUpload(file)
193
+ if (before && before.then) {
194
+ before.then(processedFile => {
195
+ if (Object.prototype.toString.call(processedFile) === '[object File]') {
196
+ this.post(processedFile)
197
+ } else {
198
+ this.post(file)
199
+ }
200
+ })
201
+ } else if (before !== false) {
202
+ this.post(file)
203
+ }
204
+ },
205
+ async post(file) {
206
+ let { headers, name, params, action, withCredentials } = this
207
+ if (this.validateFile) {
208
+ let valResult = this.validateFile(file)
209
+ if (!valResult) return
210
+ }
211
+ this.handleStart(file)
212
+ ajax({
213
+ headers: headers,
214
+ withCredentials: withCredentials,
215
+ file: file,
216
+ data: params,
217
+ filename: name,
218
+ action: action,
219
+ onProgress: e => {
220
+ this.handleProgress(e, file)
221
+ },
222
+ onSuccess: res => {
223
+ this.handleSuccess(res, file)
224
+ },
225
+ onError: (err, response) => {
226
+ this.handleError(err, response, file)
227
+ }
228
+ })
229
+ },
230
+ getFile(file) {
231
+ const fileList = this.fileList
232
+ let target
233
+ fileList.every(item => {
234
+ target = file.uid === item.uid ? item : null
235
+ return !target
236
+ })
237
+ return target
238
+ },
239
+ clearFiles() {
240
+ this.fileList = []
241
+ this.emitValue()
242
+ },
243
+ emitValue() {
244
+ let list = this.getModelValue ? this.getModelValue() : this.fileList
245
+ this.$emit('update:modelValue', list)
246
+ }
247
+ },
248
+ watch: {
249
+ modelValue: {
250
+ handler(fileList) {
251
+ this.fileList = fileList
252
+ },
253
+ immediate: true,
254
+ deep: true
255
+ }
256
+ }
257
+ }
@@ -1,87 +1,87 @@
1
- <template>
2
- <div
3
- v-masonry
4
- class="sh-waterfall"
5
- :transition-duration="duration"
6
- :item-selector="selector"
7
- :origin-left="originLeft"
8
- :origin-top="originTop"
9
- :fit-width="fitWidth"
10
- :stamp="stamp"
11
- :gutter="gutter"
12
- :horizontal-order="horizontalOrder">
13
- <div v-for="(item, itemindex) in dataSourse" :key="itemindex" v-masonry-tile class="sh-list-item" :class="itemClassName">
14
- <slot name="item" :item="item" :index="itemindex"></slot>
15
- </div>
16
- </div>
17
- </template>
18
-
19
- <script>
20
- export default {
21
- name: 'ShWaterFall',
22
- components: {},
23
- props: {
24
- id: {
25
- type: String,
26
- default: 'containerId'
27
- },
28
- dataSourse: {
29
- type: Array,
30
- default() {
31
- return []
32
- }
33
- },
34
- itemClassName: {
35
- type: String
36
- },
37
- duration: {
38
- type: String,
39
- default: '0.3s'
40
- },
41
- selector: {
42
- type: String,
43
- default: '.sh-list-item'
44
- },
45
- fitWidth: {
46
- type: Boolean,
47
- default: false
48
- },
49
- originLeft: {
50
- type: Boolean,
51
- default: true
52
- },
53
- originTop: {
54
- type: Boolean,
55
- default: true
56
- },
57
- horizontalOrder: {
58
- type: Boolean,
59
- default: true
60
- },
61
- stamp: {
62
- type: String,
63
- default: ''
64
- },
65
- gutter: {
66
- type: [String, Number],
67
- default: 10
68
- }
69
- },
70
- data() {
71
- return {}
72
- },
73
- computed: {},
74
- watch: {},
75
- mounted() {},
76
- methods: {}
77
- }
78
- </script>
79
-
80
- <style lang="scss" scoped>
81
- .sh-waterfall {
82
- width: 100%;
83
- margin: auto;
84
- .sh-list-item {
85
- }
86
- }
87
- </style>
1
+ <template>
2
+ <div
3
+ v-masonry
4
+ class="sh-waterfall"
5
+ :transition-duration="duration"
6
+ :item-selector="selector"
7
+ :origin-left="originLeft"
8
+ :origin-top="originTop"
9
+ :fit-width="fitWidth"
10
+ :stamp="stamp"
11
+ :gutter="gutter"
12
+ :horizontal-order="horizontalOrder">
13
+ <div v-for="(item, itemindex) in dataSourse" :key="itemindex" v-masonry-tile class="sh-water-item" :class="itemClassName">
14
+ <slot name="item" :item="item" :index="itemindex"></slot>
15
+ </div>
16
+ </div>
17
+ </template>
18
+
19
+ <script>
20
+ export default {
21
+ name: 'ShWaterFall',
22
+ components: {},
23
+ props: {
24
+ id: {
25
+ type: String,
26
+ default: 'containerId'
27
+ },
28
+ dataSourse: {
29
+ type: Array,
30
+ default() {
31
+ return []
32
+ }
33
+ },
34
+ itemClassName: {
35
+ type: String
36
+ },
37
+ duration: {
38
+ type: String,
39
+ default: '0.3s'
40
+ },
41
+ selector: {
42
+ type: String,
43
+ default: '.sh-water-item'
44
+ },
45
+ fitWidth: {
46
+ type: Boolean,
47
+ default: false
48
+ },
49
+ originLeft: {
50
+ type: Boolean,
51
+ default: true
52
+ },
53
+ originTop: {
54
+ type: Boolean,
55
+ default: true
56
+ },
57
+ horizontalOrder: {
58
+ type: Boolean,
59
+ default: true
60
+ },
61
+ stamp: {
62
+ type: String,
63
+ default: ''
64
+ },
65
+ gutter: {
66
+ type: [String, Number],
67
+ default: 10
68
+ }
69
+ },
70
+ data() {
71
+ return {}
72
+ },
73
+ computed: {},
74
+ watch: {},
75
+ mounted() {},
76
+ methods: {}
77
+ }
78
+ </script>
79
+
80
+ <style lang="scss" scoped>
81
+ .sh-waterfall {
82
+ width: 100%;
83
+ margin: auto;
84
+ .sh-list-item {
85
+ }
86
+ }
87
+ </style>
@@ -1,59 +1,85 @@
1
- // 全局公共封装组件
2
- import ShCard from './global-components/sh-card/index.vue'
3
- import ShCodeEditor from './global-components/sh-code-editor/index.vue'
4
- import ShCorner from './global-components/sh-corner/index.vue'
5
- import ShCountTo from './global-components/sh-count-to/index.vue'
6
- import ShEmpty from './global-components/sh-empty/index.vue'
7
- import ShHeader from './global-components/sh-header/index.vue'
8
- import ShIcon from './global-components/sh-icon/index.vue'
9
- import ShIvForm from './global-components/sh-iv-form/index.vue'
10
- import ShLayout from './global-components/sh-layout/index.vue'
11
- import ShLoading from './global-components/sh-loading/index.vue'
12
- import ShNoticeBar from './global-components/sh-noticebar/index.vue'
13
- import ShPullRefresh from './global-components/sh-pull-refresh/index.vue'
14
- import ShResult from './global-components/sh-result/index.vue'
15
- import ShUpload from './global-components/sh-upload/index.vue'
16
- import ShForm from './global-components/sh-vxe-form/index.vue'
17
- import ShList from './global-components/sh-vxe-list/index.vue'
18
- import ShModal from './global-components/sh-vxe-modal/index.vue'
19
- import ShQuery from './global-components/sh-vxe-query/index.vue'
20
- import ShTable from './global-components/sh-vxe-table/index.vue'
21
- import ShToolbar from './global-components/sh-vxe-toolbar/index.vue'
22
- import ShTree from './global-components/sh-vxe-tree/index.vue'
23
- import ShWaterFall from './global-components/sh-water-fall/index.vue'
24
-
25
- const components = {
26
- ShCard,
27
- ShCodeEditor,
28
- ShCorner,
29
- ShCountTo,
30
- ShEmpty,
31
- ShHeader,
32
- ShIcon,
33
- ShIvForm,
34
- ShLayout,
35
- ShLoading,
36
- ShNoticeBar,
37
- ShPullRefresh,
38
- ShResult,
39
- ShUpload,
40
- ShForm,
41
- ShList,
42
- ShModal,
43
- ShQuery,
44
- ShTable,
45
- ShToolbar,
46
- ShTree,
47
- ShWaterFall
48
- }
49
-
50
- const index = {
51
- install: function (Vue, { excludeComponents = [] }) {
52
- let globalComponentKeys = Object.keys(components).filter(key => !excludeComponents.includes(key))
53
- globalComponentKeys.forEach(key => {
54
- Vue.component(key, components[key])
55
- })
56
- }
57
- }
58
-
59
- export default index
1
+ // 全局公共封装组件
2
+ import ShAlert from './global-components/sh-alert/index.vue'
3
+ import ShBadge from './global-components/sh-badge/index.vue'
4
+ import ShCard from './global-components/sh-card/index.vue'
5
+ import ShCodeEditor from './global-components/sh-code-editor/index.vue'
6
+ import ShCol from './global-components/sh-col/index.vue'
7
+ import ShCorner from './global-components/sh-corner/index.vue'
8
+ import ShCountTo from './global-components/sh-count-to/index.vue'
9
+ import ShDate from './global-components/sh-date/index.vue'
10
+ import ShDrawer from './global-components/sh-drawer/index.vue'
11
+ import ShEmpty from './global-components/sh-empty/index.vue'
12
+ import ShForm from './global-components/sh-form/index.vue'
13
+ import ShHeader from './global-components/sh-header/index.vue'
14
+ import ShIcon from './global-components/sh-icon/index.vue'
15
+ import ShImage from './global-components/sh-image/index.vue'
16
+ import ShList from './global-components/sh-list/index.vue'
17
+ import ShLoading from './global-components/sh-loading/index.vue'
18
+ import ShModal from './global-components/sh-modal/index.vue'
19
+ import ShNoticebar from './global-components/sh-noticebar/index.vue'
20
+ import ShPoptip from './global-components/sh-poptip/index.vue'
21
+ import ShProgress from './global-components/sh-progress/index.vue'
22
+ import ShPullRefresh from './global-components/sh-pull-refresh/index.vue'
23
+ import ShQuery from './global-components/sh-query/index.vue'
24
+ import ShResult from './global-components/sh-result/index.vue'
25
+ import ShRow from './global-components/sh-row/index.vue'
26
+ import ShSplit from './global-components/sh-split/index.vue'
27
+ import ShTable from './global-components/sh-table/index.vue'
28
+ import ShTabs from './global-components/sh-tabs/index.vue'
29
+ import ShTag from './global-components/sh-tag/index.vue'
30
+ import ShToolbar from './global-components/sh-toolbar/index.vue'
31
+ import ShTree from './global-components/sh-tree/index.vue'
32
+ import ShUpload from './global-components/sh-upload/index.vue'
33
+ import ShWaterFall from './global-components/sh-water-fall/index.vue'
34
+ import { VxeButton, VxeInput, VxeTextarea, VxeSelect } from 'vxe-table'
35
+
36
+ const components = {
37
+ ShAlert,
38
+ ShBadge,
39
+ ShCard,
40
+ ShCodeEditor,
41
+ ShCol,
42
+ ShCorner,
43
+ ShCountTo,
44
+ ShDate,
45
+ ShDrawer,
46
+ ShEmpty,
47
+ ShForm,
48
+ ShHeader,
49
+ ShIcon,
50
+ ShImage,
51
+ ShList,
52
+ ShLoading,
53
+ ShModal,
54
+ ShNoticebar,
55
+ ShPoptip,
56
+ ShProgress,
57
+ ShPullRefresh,
58
+ ShQuery,
59
+ ShResult,
60
+ ShRow,
61
+ ShSplit,
62
+ ShTable,
63
+ ShTabs,
64
+ ShTag,
65
+ ShToolbar,
66
+ ShTree,
67
+ ShUpload,
68
+ ShWaterFall,
69
+
70
+ ShButton: VxeButton,
71
+ ShInput: VxeInput,
72
+ ShTextarea: VxeTextarea,
73
+ ShSelect: VxeSelect
74
+ }
75
+
76
+ const index = {
77
+ install(Vue, { excludeComponents = [] }) {
78
+ let globalComponentKeys = Object.keys(components).filter(key => !excludeComponents.includes(key))
79
+ globalComponentKeys.forEach(key => {
80
+ Vue.component(key, components[key])
81
+ })
82
+ }
83
+ }
84
+
85
+ export default index
@@ -11,7 +11,7 @@
11
11
  margin-top: 5px;
12
12
  display: flex;
13
13
  align-items: center;
14
- font-size: var(--font-size-base);
14
+ font-size: var(--vxe-font-size);
15
15
  .choice{
16
16
  padding: 5px 8px;
17
17
  margin-right: 10px;
@@ -37,7 +37,7 @@
37
37
  }
38
38
  .cron-title{
39
39
  font-weight: bold;
40
- border-left: 3px solid var(--theme-color);
40
+ border-left: 3px solid var(--vxe-primary-color);
41
41
  padding: 0 5px;
42
42
  box-sizing: border-box;
43
43
  margin: 10px 0;