sh-view 2.0.8 → 2.2.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 (129) 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 +216 -183
  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 +54 -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 +269 -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 +294 -287
  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 +75 -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 +71 -61
  61. package/packages/components/other-components/sh-menu-card/index.vue +81 -59
  62. package/packages/components/other-components/sh-menu-card/menu-box.vue +87 -68
  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 +115 -113
  69. package/packages/css/index.js +4 -4
  70. package/packages/{assets/css → css}/main.scss +2 -50
  71. package/packages/{assets/css → css}/theme.scss +35 -16
  72. package/packages/directive/module/prevent-click.js +1 -1
  73. package/packages/directive/module/resize.js +11 -154
  74. package/packages/index.js +39 -39
  75. package/packages/mixin/index.js +86 -87
  76. package/packages/vxeTable/css/index.scss +3 -0
  77. package/packages/vxeTable/render/cell/vxe-render-checkbox.vue +14 -5
  78. package/packages/vxeTable/render/cell/vxe-render-checkgroup.vue +43 -36
  79. package/packages/vxeTable/render/cell/vxe-render-code.vue +14 -5
  80. package/packages/vxeTable/render/cell/vxe-render-goption.vue +34 -24
  81. package/packages/vxeTable/render/cell/vxe-render-href.vue +21 -11
  82. package/packages/vxeTable/render/cell/vxe-render-img.vue +16 -10
  83. package/packages/vxeTable/render/cell/vxe-render-input.vue +83 -67
  84. package/packages/vxeTable/render/cell/vxe-render-money.vue +14 -6
  85. package/packages/vxeTable/render/cell/vxe-render-progress.vue +28 -19
  86. package/packages/vxeTable/render/cell/vxe-render-radio.vue +14 -5
  87. package/packages/vxeTable/render/cell/vxe-render-radiogroup.vue +43 -36
  88. package/packages/vxeTable/render/cell/vxe-render-select.vue +44 -36
  89. package/packages/vxeTable/render/cell/vxe-render-switch.vue +14 -5
  90. package/packages/vxeTable/render/cell/vxe-render-table.vue +51 -78
  91. package/packages/vxeTable/render/cell/vxe-render-textarea.vue +14 -5
  92. package/packages/vxeTable/render/cell/vxe-render-time.vue +23 -13
  93. package/packages/vxeTable/render/cell/vxe-render-tree.vue +23 -27
  94. package/packages/vxeTable/render/cell/vxe-render-upload.vue +11 -7
  95. package/packages/vxeTable/render/filters/vxe-filter-input.vue +25 -43
  96. package/packages/vxeTable/render/footer/vxe-footer-input.vue +23 -13
  97. package/packages/vxeTable/render/footer/vxe-footer-money.vue +30 -20
  98. package/packages/vxeTable/render/globalRenders.jsx +1 -1
  99. package/packages/vxeTable/render/header/vxe-header-money.vue +31 -21
  100. package/packages/vxeTable/render/mixin/cell-hooks.js +162 -0
  101. package/packages/vxeTable/render/mixin/cell-props.js +23 -0
  102. package/packages/vxeTable/render/mixin/filter-hooks.js +28 -0
  103. package/packages/components/global-components/sh-form/components/form-item.vue +0 -25
  104. package/packages/components/global-components/sh-form/css/index.scss +0 -55
  105. package/packages/components/global-components/sh-form/index.vue +0 -114
  106. package/packages/components/global-components/sh-form/js/methods.js +0 -146
  107. package/packages/components/global-components/sh-form/mixin/defaultData.js +0 -32
  108. package/packages/components/global-components/sh-icon/css/default/index.scss +0 -27
  109. package/packages/components/global-components/sh-icon/css/font/index.scss +0 -16
  110. package/packages/components/global-components/sh-icon/icon-default.vue +0 -32
  111. package/packages/components/global-components/sh-icon/icon-font.vue +0 -32
  112. package/packages/components/global-components/sh-poptip/popper.js +0 -115
  113. package/packages/components/global-components/sh-query/index.vue +0 -317
  114. package/packages/components/global-components/sh-table/js/methods.js +0 -549
  115. package/packages/components/global-components/sh-table/mixin/defaultData.js +0 -94
  116. package/packages/components/global-components/sh-upload/js/mixin.js +0 -257
  117. package/packages/components/other-components/sh-cron-modal/mixin/cron-box.js +0 -169
  118. package/packages/vxeTable/render/mixin/cell-mixin.js +0 -206
  119. /package/packages/components/global-components/sh-icon/css/default/{fonts/ionicons.svg → ionicons.svg} +0 -0
  120. /package/packages/components/global-components/sh-icon/css/default/{fonts/ionicons.ttf → ionicons.ttf} +0 -0
  121. /package/packages/components/global-components/sh-icon/css/default/{fonts/ionicons.woff → ionicons.woff} +0 -0
  122. /package/packages/components/global-components/sh-icon/css/default/{fonts/ionicons.woff2 → ionicons.woff2} +0 -0
  123. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.js → iconfont.js} +0 -0
  124. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.json → iconfont.json} +0 -0
  125. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.ttf → iconfont.ttf} +0 -0
  126. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.woff → iconfont.woff} +0 -0
  127. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.woff2 → iconfont.woff2} +0 -0
  128. /package/packages/{assets/css → css}/animated.scss +0 -0
  129. /package/packages/{assets/css → css}/loader.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,