sh-view 2.1.0 → 2.3.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 (128) hide show
  1. package/package.json +9 -13
  2. package/packages/components/global-components/sh-alert/index.vue +175 -173
  3. package/packages/components/global-components/sh-badge/index.vue +57 -43
  4. package/packages/components/global-components/sh-card/index.vue +24 -16
  5. package/packages/components/global-components/sh-code-editor/index.vue +250 -260
  6. package/packages/components/global-components/sh-col/index.vue +44 -36
  7. package/packages/components/global-components/sh-corner/index.vue +230 -228
  8. package/packages/components/global-components/sh-count-to/index.vue +60 -51
  9. package/packages/components/global-components/sh-drawer/index.vue +209 -182
  10. package/packages/components/global-components/sh-drawer/scrollbar.js +44 -42
  11. package/packages/components/global-components/sh-empty/index.vue +0 -1
  12. package/packages/components/global-components/sh-form/form.vue +110 -0
  13. package/packages/components/global-components/sh-form/js/props.js +76 -63
  14. package/packages/components/global-components/sh-form/js/useForm.js +236 -0
  15. package/packages/components/global-components/sh-form/query.vue +70 -0
  16. package/packages/components/global-components/sh-header/index.vue +35 -50
  17. package/packages/components/global-components/sh-icon/css/index.scss +44 -0
  18. package/packages/components/global-components/sh-icon/index.vue +24 -11
  19. package/packages/components/global-components/sh-image/index.vue +47 -38
  20. package/packages/components/global-components/sh-list/index.vue +42 -37
  21. package/packages/components/global-components/sh-loading/index.vue +12 -8
  22. package/packages/components/global-components/sh-modal/index.vue +49 -40
  23. package/packages/components/global-components/sh-noticebar/index.vue +68 -54
  24. package/packages/components/global-components/sh-poptip/index.vue +247 -130
  25. package/packages/components/global-components/sh-progress/index.vue +71 -69
  26. package/packages/components/global-components/sh-pull-refresh/index.vue +156 -157
  27. package/packages/components/global-components/sh-result/index.vue +37 -28
  28. package/packages/components/global-components/sh-row/index.vue +21 -18
  29. package/packages/components/global-components/sh-split/index.vue +115 -109
  30. package/packages/components/global-components/sh-table/components/importModal.vue +95 -86
  31. package/packages/components/global-components/sh-table/components/sh-column.vue +62 -0
  32. package/packages/components/global-components/sh-table/{index.vue → grid.vue} +34 -145
  33. package/packages/components/global-components/sh-table/js/tableMethods.js +175 -0
  34. package/packages/components/global-components/sh-table/js/useTable.js +592 -0
  35. package/packages/components/global-components/sh-table/table.vue +266 -0
  36. package/packages/components/global-components/sh-tabs/index.vue +118 -93
  37. package/packages/components/global-components/sh-tag/index.vue +52 -51
  38. package/packages/components/global-components/sh-toolbar/index.vue +53 -47
  39. package/packages/components/global-components/sh-tree/components/table-tree.vue +152 -139
  40. package/packages/components/global-components/sh-tree/index.vue +218 -195
  41. package/packages/components/global-components/sh-tree/mixin/treeProps.js +118 -120
  42. package/packages/components/global-components/sh-upload/index.vue +308 -51
  43. package/packages/components/global-components/sh-water-fall/index.vue +4 -11
  44. package/packages/components/index.js +5 -3
  45. package/packages/components/other-components/sh-cron-modal/components/cron-content.vue +140 -129
  46. package/packages/components/other-components/sh-cron-modal/css/index.scss +0 -5
  47. package/packages/components/other-components/sh-cron-modal/index.vue +81 -67
  48. package/packages/components/other-components/sh-cron-modal/mixin/cron-emits.js +1 -0
  49. package/packages/components/other-components/sh-cron-modal/mixin/cron-hooks.js +179 -0
  50. package/packages/components/other-components/sh-cron-modal/mixin/cron-props.js +9 -0
  51. package/packages/components/other-components/sh-cron-modal/tabs/cron-day-box.vue +101 -92
  52. package/packages/components/other-components/sh-cron-modal/tabs/cron-hour-box.vue +68 -56
  53. package/packages/components/other-components/sh-cron-modal/tabs/cron-minute-box.vue +68 -56
  54. package/packages/components/other-components/sh-cron-modal/tabs/cron-month-box.vue +68 -56
  55. package/packages/components/other-components/sh-cron-modal/tabs/cron-second-box.vue +68 -56
  56. package/packages/components/other-components/sh-cron-modal/tabs/cron-week-box.vue +126 -115
  57. package/packages/components/other-components/sh-cron-modal/tabs/cron-year-box.vue +59 -46
  58. package/packages/components/other-components/sh-menu/index.vue +73 -60
  59. package/packages/components/other-components/sh-menu/menu-group-content.vue +71 -59
  60. package/packages/components/other-components/sh-menu/menu-item-content.vue +40 -30
  61. package/packages/components/other-components/sh-menu-card/index.vue +70 -64
  62. package/packages/components/other-components/sh-menu-card/menu-box.vue +50 -44
  63. package/packages/components/other-components/sh-preview/components/sh-excel.vue +182 -0
  64. package/packages/components/other-components/sh-preview/components/sh-word.vue +73 -0
  65. package/packages/components/other-components/sh-preview/index.vue +86 -85
  66. package/packages/components/other-components/sh-preview/js/data-hook.js +37 -0
  67. package/packages/components/other-components/sh-preview/js/data-props.js +11 -0
  68. package/packages/components/other-components/sh-system-tip/index.vue +28 -24
  69. package/packages/css/index.js +4 -4
  70. package/packages/directive/module/prevent-click.js +1 -1
  71. package/packages/directive/module/resize.js +11 -154
  72. package/packages/index.js +39 -39
  73. package/packages/mixin/index.js +86 -87
  74. package/packages/vxeTable/render/cell/vxe-render-checkbox.vue +14 -5
  75. package/packages/vxeTable/render/cell/vxe-render-checkgroup.vue +43 -36
  76. package/packages/vxeTable/render/cell/vxe-render-code.vue +14 -5
  77. package/packages/vxeTable/render/cell/vxe-render-goption.vue +34 -24
  78. package/packages/vxeTable/render/cell/vxe-render-href.vue +21 -11
  79. package/packages/vxeTable/render/cell/vxe-render-img.vue +16 -10
  80. package/packages/vxeTable/render/cell/vxe-render-input.vue +83 -79
  81. package/packages/vxeTable/render/cell/vxe-render-money.vue +14 -6
  82. package/packages/vxeTable/render/cell/vxe-render-progress.vue +28 -19
  83. package/packages/vxeTable/render/cell/vxe-render-radio.vue +14 -5
  84. package/packages/vxeTable/render/cell/vxe-render-radiogroup.vue +43 -36
  85. package/packages/vxeTable/render/cell/vxe-render-select.vue +44 -36
  86. package/packages/vxeTable/render/cell/vxe-render-switch.vue +14 -5
  87. package/packages/vxeTable/render/cell/vxe-render-table.vue +51 -78
  88. package/packages/vxeTable/render/cell/vxe-render-textarea.vue +14 -5
  89. package/packages/vxeTable/render/cell/vxe-render-time.vue +23 -13
  90. package/packages/vxeTable/render/cell/vxe-render-tree.vue +23 -27
  91. package/packages/vxeTable/render/cell/vxe-render-upload.vue +11 -7
  92. package/packages/vxeTable/render/filters/vxe-filter-input.vue +25 -43
  93. package/packages/vxeTable/render/footer/vxe-footer-input.vue +23 -13
  94. package/packages/vxeTable/render/footer/vxe-footer-money.vue +30 -20
  95. package/packages/vxeTable/render/globalRenders.jsx +1 -1
  96. package/packages/vxeTable/render/header/vxe-header-money.vue +31 -21
  97. package/packages/vxeTable/render/mixin/cell-hooks.js +162 -0
  98. package/packages/vxeTable/render/mixin/cell-props.js +23 -0
  99. package/packages/vxeTable/render/mixin/filter-hooks.js +28 -0
  100. package/packages/components/global-components/sh-form/components/form-item.vue +0 -25
  101. package/packages/components/global-components/sh-form/css/index.scss +0 -55
  102. package/packages/components/global-components/sh-form/index.vue +0 -114
  103. package/packages/components/global-components/sh-form/js/methods.js +0 -146
  104. package/packages/components/global-components/sh-form/mixin/defaultData.js +0 -32
  105. package/packages/components/global-components/sh-icon/css/default/index.scss +0 -27
  106. package/packages/components/global-components/sh-icon/css/font/index.scss +0 -16
  107. package/packages/components/global-components/sh-icon/icon-default.vue +0 -32
  108. package/packages/components/global-components/sh-icon/icon-font.vue +0 -32
  109. package/packages/components/global-components/sh-poptip/popper.js +0 -115
  110. package/packages/components/global-components/sh-query/index.vue +0 -317
  111. package/packages/components/global-components/sh-table/js/methods.js +0 -549
  112. package/packages/components/global-components/sh-table/mixin/defaultData.js +0 -94
  113. package/packages/components/global-components/sh-upload/js/mixin.js +0 -257
  114. package/packages/components/other-components/sh-cron-modal/mixin/cron-box.js +0 -169
  115. package/packages/vxeTable/render/mixin/cell-mixin.js +0 -195
  116. /package/packages/components/global-components/sh-icon/css/default/{fonts/ionicons.svg → ionicons.svg} +0 -0
  117. /package/packages/components/global-components/sh-icon/css/default/{fonts/ionicons.ttf → ionicons.ttf} +0 -0
  118. /package/packages/components/global-components/sh-icon/css/default/{fonts/ionicons.woff → ionicons.woff} +0 -0
  119. /package/packages/components/global-components/sh-icon/css/default/{fonts/ionicons.woff2 → ionicons.woff2} +0 -0
  120. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.js → iconfont.js} +0 -0
  121. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.json → iconfont.json} +0 -0
  122. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.ttf → iconfont.ttf} +0 -0
  123. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.woff → iconfont.woff} +0 -0
  124. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.woff2 → iconfont.woff2} +0 -0
  125. /package/packages/{assets/css → css}/animated.scss +0 -0
  126. /package/packages/{assets/css → css}/loader.scss +0 -0
  127. /package/packages/{assets/css → css}/main.scss +0 -0
  128. /package/packages/{assets/css → css}/theme.scss +0 -0
@@ -12,7 +12,7 @@
12
12
  @paste="handlePaste"
13
13
  @dragover.prevent="dragOver = true"
14
14
  @dragleave.prevent="dragOver = false">
15
- <input ref="input" type="file" class="sh-upload-input" :multiple="multiple" :webkitdirectory="webkitdirectory" :accept="accept" @change="handleChange" />
15
+ <input ref="inputRef" type="file" class="sh-upload-input" :multiple="multiple" :webkitdirectory="webkitdirectory" :accept="accept" @change="handleChange" />
16
16
  <slot>
17
17
  <div class="upload-box" :class="{ drag, card }" :style="upStyles">
18
18
  <sh-icon v-if="icon" class="upload-box-icon" :type="icon" :size="iconSize"></sh-icon>
@@ -40,11 +40,17 @@
40
40
  </template>
41
41
 
42
42
  <script>
43
- import mixin from './js/mixin'
44
- export default {
43
+ import { defineComponent, computed, getCurrentInstance, ref, watch, onBeforeMount } from 'vue'
44
+ import ajax from './js/ajax'
45
+ export default defineComponent({
45
46
  name: 'ShUpload',
46
- mixins: [mixin],
47
47
  props: {
48
+ modelValue: {
49
+ type: Array,
50
+ default() {
51
+ return []
52
+ }
53
+ },
48
54
  baseUrl: {
49
55
  type: String,
50
56
  default: ''
@@ -89,90 +95,341 @@ export default {
89
95
  resKey: {
90
96
  type: String,
91
97
  default: 'data'
92
- }
93
- },
94
- emits: ['update:modelValue', 'action'],
95
- data() {
96
- return {}
97
- },
98
- computed: {
99
- multiple() {
100
- return this.limit > 1
101
98
  },
102
- upStyles() {
103
- return this.card ? { width: `${this.width}px`, height: `${this.height}px` } : {}
99
+ action: {
100
+ type: String,
101
+ default: 'fileservice/v2/upload'
104
102
  },
105
- upClass() {
106
- return {
107
- 'sh-upload-list': !this.card,
108
- 'sh-upload-select': !this.drag,
109
- 'sh-upload-drag': this.drag,
110
- 'sh-upload-dragOver': this.drag && this.dragOver
103
+ headers: {
104
+ type: Object,
105
+ default() {
106
+ return {}
107
+ }
108
+ },
109
+ disabled: {
110
+ type: Boolean,
111
+ default: false
112
+ },
113
+ maxSize: {
114
+ type: Number,
115
+ default: 1024 * 2 // 文件大小限制,单位 kb
116
+ },
117
+ accept: {
118
+ type: String,
119
+ default: '.doc,.docx,.xls,.xlsx,.txt,.pdf,.jpg,.jpeg,.png,.txt,.7z,.zip,.rar'
120
+ },
121
+ name: {
122
+ type: String,
123
+ default: 'file'
124
+ },
125
+ beforeUpload: {
126
+ type: Function
127
+ },
128
+ webkitdirectory: {
129
+ type: Boolean,
130
+ default: false // 是否开启选择文件夹,部分浏览器适用
131
+ },
132
+ withCredentials: {
133
+ type: Boolean,
134
+ default: false // 支持发送 cookie 凭证信息
135
+ },
136
+ paste: {
137
+ type: Boolean,
138
+ default: false // 是否支持粘贴上传文件
139
+ },
140
+ format: {
141
+ type: Array,
142
+ default() {
143
+ return []
111
144
  }
112
145
  },
113
- fileFormat() {
114
- return this.format.length ? this.format : this.accept.split(',').map(_ => String(_).replace('.', ''))
146
+ onFormatError: {
147
+ type: Function
148
+ },
149
+ onExceededSize: {
150
+ type: Function
151
+ },
152
+ onProgress: {
153
+ type: Function,
154
+ default() {}
155
+ },
156
+ onSuccess: {
157
+ type: Function,
158
+ default() {}
159
+ },
160
+ onError: {
161
+ type: Function,
162
+ default() {}
115
163
  },
116
- listActions() {
164
+ onRemove: {
165
+ type: Function,
166
+ default() {}
167
+ },
168
+ onPreview: {
169
+ type: Function,
170
+ default() {}
171
+ },
172
+ onDownload: {
173
+ type: Function,
174
+ default() {}
175
+ }
176
+ },
177
+ emits: ['update:modelValue', 'action'],
178
+ setup(props, context) {
179
+ const { proxy } = getCurrentInstance()
180
+ const { $vUtils } = proxy
181
+ const { emit, slots } = context
182
+
183
+ const inputRef = ref()
184
+ const tempIndex = ref(1)
185
+ const dragOver = ref(false)
186
+ const fileList = ref([])
187
+
188
+ const multiple = computed(() => props.limit > 1)
189
+ const upStyles = computed(() => {
190
+ return props.card ? { width: `${props.width}px`, height: `${props.height}px` } : {}
191
+ })
192
+ const upClass = computed(() => {
193
+ return {
194
+ 'sh-upload-list': !props.card,
195
+ 'sh-upload-select': !props.drag,
196
+ 'sh-upload-drag': props.drag,
197
+ 'sh-upload-dragOver': props.drag && dragOver.value
198
+ }
199
+ })
200
+ const fileFormat = computed(() => (props.format.length ? props.format : props.accept.split(',').map(_ => String(_).replace('.', ''))))
201
+ const listActions = computed(() => {
117
202
  let list = [
118
203
  { title: '查看文件', icon: 'ios-eye-outline', code: 'detail' },
119
204
  { title: '下载文件', icon: 'ios-download', code: 'download' }
120
205
  ]
121
- if (!this.disabled) {
206
+ if (!props.disabled) {
122
207
  list.push({ title: '删除文件', icon: 'ios-trash-outline', code: 'delete' })
123
208
  }
124
- return list.filter(item => this.actionList.includes(item.code))
209
+ return list.filter(item => props.actionList.includes(item.code))
210
+ })
211
+
212
+ const progressConfig = file => {
213
+ return {
214
+ textInside: true,
215
+ strokeWidth: 20,
216
+ percent: parseInt(file.percentage, 10),
217
+ status: file.status
218
+ }
125
219
  }
126
- },
127
- methods: {
220
+ const handleClick = () => {
221
+ if (props.disabled) return
222
+ inputRef.value.click()
223
+ }
224
+ const handleChange = e => {
225
+ const files = e.target.files
226
+ if (!files) return
227
+ uploadFiles(files)
228
+ inputRef.value.value = null
229
+ }
230
+ const handleStart = file => {
231
+ file.uid = Date.now() + tempIndex.value++
232
+ const _file = {
233
+ status: 'active',
234
+ name: file.name,
235
+ size: file.size,
236
+ percentage: 0,
237
+ uid: file.uid,
238
+ showProgress: true
239
+ }
240
+ fileList.value.push(_file)
241
+ }
242
+ const handlePaste = e => {
243
+ if (props.disabled) return
244
+ if (props.paste) {
245
+ uploadFiles(e.clipboardData.files)
246
+ }
247
+ }
248
+ const handleProgress = (e, file) => {
249
+ const _file = getFile(file)
250
+ props.onProgress(e, _file, fileList.value)
251
+ _file.percentage = e.percent || 0
252
+ }
253
+ const handleSuccess = (res, file) => {
254
+ const _file = getFile(file)
255
+ if (_file) {
256
+ _file.status = 'success'
257
+ _file.response = res
258
+ emitValue()
259
+ props.onSuccess(res, _file, fileList.value)
260
+ setTimeout(() => {
261
+ _file.showProgress = false
262
+ }, 1000)
263
+ }
264
+ }
265
+ const handleError = (err, response, file) => {
266
+ const _file = getFile(file)
267
+ const fileArray = fileList.value
268
+ _file.status = 'wrong'
269
+ fileArray.splice(fileArray.indexOf(_file), 1)
270
+ props.onError(err, response, file)
271
+ }
272
+ const handleRemove = file => {
273
+ const fileArray = fileList.value
274
+ fileArray.splice(fileArray.indexOf(file), 1)
275
+ emitValue()
276
+ props.onRemove(file, fileArray)
277
+ }
278
+ const handlePreview = file => {
279
+ const fileArray = fileList.value
280
+ fileArray.splice(fileArray.indexOf(file), 1)
281
+ props.onRemove(file, fileArray)
282
+ }
283
+ const handleDownload = file => {
284
+ const fileArray = fileList.value
285
+ fileArray.splice(fileArray.indexOf(file), 1)
286
+ props.onDownload(file, fileArray)
287
+ }
288
+ const onDrop = e => {
289
+ dragOver.value = false
290
+ if (props.disabled) return
291
+ uploadFiles(e.dataTransfer.files)
292
+ }
293
+ const uploadFiles = files => {
294
+ let postFiles = Array.prototype.slice.call(files)
295
+ if (!multiple.value) postFiles = postFiles.slice(0, 1)
296
+ if (postFiles.length === 0) return
297
+ postFiles.forEach(file => {
298
+ upload(file)
299
+ })
300
+ }
301
+ const upload = file => {
302
+ if (!props.beforeUpload) {
303
+ return post(file)
304
+ }
305
+ const before = props.beforeUpload(file)
306
+ if (before && before.then) {
307
+ before.then(processedFile => {
308
+ if (Object.prototype.toString.call(processedFile) === '[object File]') {
309
+ post(processedFile)
310
+ } else {
311
+ post(file)
312
+ }
313
+ })
314
+ } else if (before !== false) {
315
+ post(file)
316
+ }
317
+ }
318
+ const post = async file => {
319
+ let { headers, name, params, action, withCredentials } = props
320
+ if (validateFile) {
321
+ let valResult = validateFile(file)
322
+ if (!valResult) return
323
+ }
324
+ handleStart(file)
325
+ ajax({
326
+ headers: headers,
327
+ withCredentials: withCredentials,
328
+ file: file,
329
+ data: params,
330
+ filename: name,
331
+ action: action,
332
+ onProgress: e => {
333
+ handleProgress(e, file)
334
+ },
335
+ onSuccess: res => {
336
+ handleSuccess(res, file)
337
+ },
338
+ onError: (err, response) => {
339
+ handleError(err, response, file)
340
+ }
341
+ })
342
+ }
343
+ const getFile = file => {
344
+ const fileArray = fileList.value
345
+ let target
346
+ fileArray.every(item => {
347
+ target = file.uid === item.uid ? item : null
348
+ return !target
349
+ })
350
+ return target
351
+ }
352
+ const clearFiles = () => {
353
+ fileList.value = []
354
+ emitValue()
355
+ }
356
+ const emitValue = () => {
357
+ let list = getModelValue ? getModelValue() : fileList.value
358
+ emit('update:modelValue', list)
359
+ }
360
+
128
361
  // 上传校验
129
- validateFile(file) {
130
- let { fileList, action, fileFormat, maxSize } = this
362
+ const validateFile = file => {
363
+ let { action, maxSize } = props
131
364
  // check format
132
- if (fileFormat.length) {
365
+ if (fileFormat.value.length) {
133
366
  const _file_format = file.name.split('.').pop().toLocaleLowerCase()
134
- const checked = fileFormat.some(item => item.toLocaleLowerCase() === _file_format)
367
+ const checked = fileFormat.value.some(item => item.toLocaleLowerCase() === _file_format)
135
368
  if (!checked) {
136
- let errorMsg = `格式不正确,请上传 ${fileFormat.join(' ')} 格式文件`
137
- this.onFormatError ? this.onFormatError(file, errorMsg, fileList) : this.msginfo(errorMsg)
369
+ let errorMsg = `格式不正确,请上传 ${fileFormat.value.join(' ')} 格式文件`
370
+ props.onFormatError ? props.onFormatError(file, errorMsg, fileList.value) : proxy.msginfo(errorMsg)
138
371
  return
139
372
  }
140
373
  }
141
374
  // check maxSize
142
375
  if (maxSize && file.size > maxSize * 1024) {
143
376
  let errorMsg = `文件大小不能超过 ${maxSize / 1024} M`
144
- this.onExceededSize ? this.onExceededSize(file, errorMsg, fileList) : this.msginfo(errorMsg)
377
+ props.onExceededSize ? props.onExceededSize(file, errorMsg, fileList.value) : proxy.msginfo(errorMsg)
145
378
  return
146
379
  }
147
380
  if (!action) {
148
- this.msginfo('上传地址不能为空')
381
+ proxy.msginfo('上传地址不能为空')
149
382
  return
150
383
  }
151
384
  return true
152
- },
385
+ }
153
386
  // 附件操作点击事件
154
- onActionClick(obj, file) {
387
+ const onActionClick = (obj, file) => {
155
388
  if (obj.code === 'delete') {
156
- this.handleRemove(file)
389
+ handleRemove(file)
157
390
  } else if (obj.code === 'detail') {
158
- this.handlePreview(file)
391
+ handlePreview(file)
159
392
  } else if (obj.code === 'download') {
160
- this.handleDownload(file)
393
+ handleDownload(file)
161
394
  }
162
- this.$emit('action', obj)
163
- },
395
+ emit('action', obj)
396
+ }
164
397
  // 获取双向绑定值
165
- getModelValue() {
166
- return this.fileList.map(item => {
167
- let url = this.$vUtils.get(item, `response.${this.resKey}`)
168
- return {
169
- name: item.name,
170
- url: url
171
- }
398
+ const getModelValue = () => {
399
+ return fileList.value.map(item => {
400
+ let url = $vUtils.get(item, `response.${props.resKey}`)
401
+ return { name: item.name, url: url }
172
402
  })
173
403
  }
404
+
405
+ watch(
406
+ () => props.modelValue,
407
+ value => {
408
+ fileList.value = value
409
+ },
410
+ {
411
+ immediate: true,
412
+ deep: true
413
+ }
414
+ )
415
+
416
+ return {
417
+ inputRef,
418
+ fileList,
419
+ upClass,
420
+ upStyles,
421
+ dragOver,
422
+ multiple,
423
+ listActions,
424
+ handleClick,
425
+ handlePaste,
426
+ handleChange,
427
+ progressConfig,
428
+ onDrop,
429
+ onActionClick
430
+ }
174
431
  }
175
- }
432
+ })
176
433
  </script>
177
434
 
178
435
  <style scoped lang="scss">
@@ -17,9 +17,9 @@
17
17
  </template>
18
18
 
19
19
  <script>
20
- export default {
20
+ import { defineComponent, computed, getCurrentInstance, ref, watch, onBeforeMount } from 'vue'
21
+ export default defineComponent({
21
22
  name: 'ShWaterFall',
22
- components: {},
23
23
  props: {
24
24
  id: {
25
25
  type: String,
@@ -66,15 +66,8 @@ export default {
66
66
  type: [String, Number],
67
67
  default: 10
68
68
  }
69
- },
70
- data() {
71
- return {}
72
- },
73
- computed: {},
74
- watch: {},
75
- mounted() {},
76
- methods: {}
77
- }
69
+ }
70
+ })
78
71
  </script>
79
72
 
80
73
  <style lang="scss" scoped>
@@ -8,7 +8,7 @@ import ShCorner from './global-components/sh-corner/index.vue'
8
8
  import ShCountTo from './global-components/sh-count-to/index.vue'
9
9
  import ShDrawer from './global-components/sh-drawer/index.vue'
10
10
  import ShEmpty from './global-components/sh-empty/index.vue'
11
- import ShForm from './global-components/sh-form/index.vue'
11
+ import ShForm from './global-components/sh-form/form.vue'
12
12
  import ShHeader from './global-components/sh-header/index.vue'
13
13
  import ShIcon from './global-components/sh-icon/index.vue'
14
14
  import ShImage from './global-components/sh-image/index.vue'
@@ -19,11 +19,12 @@ import ShNoticebar from './global-components/sh-noticebar/index.vue'
19
19
  import ShPoptip from './global-components/sh-poptip/index.vue'
20
20
  import ShProgress from './global-components/sh-progress/index.vue'
21
21
  import ShPullRefresh from './global-components/sh-pull-refresh/index.vue'
22
- import ShQuery from './global-components/sh-query/index.vue'
22
+ import ShQuery from './global-components/sh-form/query.vue'
23
23
  import ShResult from './global-components/sh-result/index.vue'
24
24
  import ShRow from './global-components/sh-row/index.vue'
25
25
  import ShSplit from './global-components/sh-split/index.vue'
26
- import ShTable from './global-components/sh-table/index.vue'
26
+ import ShGrid from './global-components/sh-table/grid.vue'
27
+ import ShTable from './global-components/sh-table/table.vue'
27
28
  import ShTabs from './global-components/sh-tabs/index.vue'
28
29
  import ShTag from './global-components/sh-tag/index.vue'
29
30
  import ShToolbar from './global-components/sh-toolbar/index.vue'
@@ -57,6 +58,7 @@ const components = {
57
58
  ShResult,
58
59
  ShRow,
59
60
  ShSplit,
61
+ ShGrid,
60
62
  ShTable,
61
63
  ShTabs,
62
64
  ShTag,