sh-view 2.8.1 → 2.8.3

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 (91) hide show
  1. package/.eslintrc.js +25 -20
  2. package/other.js +8 -8
  3. package/package.json +9 -6
  4. package/packages/components/index.js +91 -91
  5. package/packages/components/sh-alert/alert.ts +30 -0
  6. package/packages/components/sh-alert/index.vue +143 -168
  7. package/packages/components/sh-badge/index.vue +242 -242
  8. package/packages/components/sh-calendar/index.vue +650 -650
  9. package/packages/components/sh-card/index.vue +148 -148
  10. package/packages/components/sh-code-editor/index.vue +19 -19
  11. package/packages/components/sh-col/index.vue +92 -92
  12. package/packages/components/sh-corner/index.vue +230 -230
  13. package/packages/components/sh-count-to/index.vue +131 -131
  14. package/packages/components/sh-date/index.vue +301 -301
  15. package/packages/components/sh-drawer/index.vue +579 -579
  16. package/packages/components/sh-drawer/scrollbar.js +78 -78
  17. package/packages/components/sh-empty/index.vue +42 -42
  18. package/packages/components/sh-form/js/props.js +76 -76
  19. package/packages/components/sh-form/js/useForm.js +229 -229
  20. package/packages/components/sh-header/index.vue +261 -260
  21. package/packages/components/sh-icon/css/default/ionicons.svg +869 -869
  22. package/packages/components/sh-icon/css/font/iconfont.json +247 -247
  23. package/packages/components/sh-icon/index.vue +41 -41
  24. package/packages/components/sh-image/index.vue +133 -133
  25. package/packages/components/sh-list/index.vue +146 -146
  26. package/packages/components/sh-loading/index.vue +53 -53
  27. package/packages/components/sh-modal/index.vue +188 -188
  28. package/packages/components/sh-noticebar/index.vue +215 -215
  29. package/packages/components/sh-poptip/index.vue +597 -597
  30. package/packages/components/sh-progress/index.vue +276 -276
  31. package/packages/components/sh-pull-refresh/index.vue +289 -289
  32. package/packages/components/sh-result/index.vue +114 -114
  33. package/packages/components/sh-row/index.vue +66 -66
  34. package/packages/components/sh-split/components/trigger.vue +33 -33
  35. package/packages/components/sh-split/index.vue +342 -342
  36. package/packages/components/sh-table/components/importModal.vue +363 -363
  37. package/packages/components/sh-table/components/sh-column.vue +68 -68
  38. package/packages/components/sh-table/js/excel_to_json.js +313 -313
  39. package/packages/components/sh-table/js/props.js +305 -305
  40. package/packages/components/sh-table/js/tableMethods.js +167 -167
  41. package/packages/components/sh-table/js/useTable.js +636 -636
  42. package/packages/components/sh-table/table.vue +217 -217
  43. package/packages/components/sh-tabs/index.vue +426 -426
  44. package/packages/components/sh-tag/index.vue +168 -168
  45. package/packages/components/sh-toolbar/index.vue +182 -182
  46. package/packages/components/sh-tree/components/table-tree.vue +289 -289
  47. package/packages/components/sh-tree/mixin/treeProps.js +122 -122
  48. package/packages/components/sh-upload/index.vue +535 -535
  49. package/packages/components/sh-water-fall/index.vue +80 -80
  50. package/packages/components/sh-water-mark/index.vue +96 -96
  51. package/packages/css/index.js +4 -4
  52. package/packages/directive/index.js +19 -19
  53. package/packages/directive/module/click-out.js +14 -14
  54. package/packages/directive/module/draggable.js +42 -42
  55. package/packages/directive/module/line-clamp.js +22 -22
  56. package/packages/directive/module/prevent-click.js +18 -18
  57. package/packages/directive/module/resize.js +14 -14
  58. package/packages/directive/module/ripple.js +166 -166
  59. package/packages/index.js +39 -39
  60. package/packages/mixin/index.js +86 -86
  61. package/packages/other/sh-cron-modal/components/cron-content.vue +294 -294
  62. package/packages/other/sh-cron-modal/index.vue +81 -81
  63. package/packages/other/sh-cron-modal/mixin/cron-emits.js +1 -1
  64. package/packages/other/sh-cron-modal/mixin/cron-props.js +9 -9
  65. package/packages/other/sh-cron-modal/tabs/cron-week-box.vue +126 -126
  66. package/packages/other/sh-menu/index.vue +326 -326
  67. package/packages/other/sh-menu/menu-group-content.vue +136 -136
  68. package/packages/other/sh-menu/menu-item-content.vue +71 -71
  69. package/packages/other/sh-menu-card/index.vue +250 -250
  70. package/packages/other/sh-menu-card/menu-box.vue +87 -87
  71. package/packages/other/sh-preview/components/sh-excel.vue +163 -163
  72. package/packages/other/sh-preview/js/data-hook.js +41 -41
  73. package/packages/other/sh-preview/js/data-props.js +15 -15
  74. package/packages/other/sh-system-tip/index.vue +115 -115
  75. package/packages/utils/resize.js +69 -70
  76. package/packages/utils/transfer-queue.js +12 -12
  77. package/packages/vxeTable/index.js +193 -184
  78. package/packages/vxeTable/plugins/export.js +450 -450
  79. package/packages/vxeTable/render/cell/vxe-render-img.vue +27 -27
  80. package/packages/vxeTable/render/cell/vxe-render-table.vue +51 -51
  81. package/packages/vxeTable/render/cell/vxe-render-time.vue +44 -44
  82. package/packages/vxeTable/render/cell/vxe-render-tree.vue +70 -70
  83. package/packages/vxeTable/render/filters/vxe-filter-input.vue +26 -26
  84. package/packages/vxeTable/render/filters/vxe-filter-time.vue +26 -26
  85. package/packages/vxeTable/render/globalRenders.jsx +514 -514
  86. package/packages/vxeTable/render/mixin/cell-hooks.js +198 -198
  87. package/packages/vxeTable/render/mixin/cell-props.js +23 -23
  88. package/packages/vxeTable/render/mixin/filter-hooks.js +46 -46
  89. package/tsconfig.json +25 -0
  90. package/types/component.d.ts +1 -0
  91. package/types/index.ts +0 -0
@@ -1,260 +1,261 @@
1
- <template>
2
- <div class="sh-pageheader" :style="styles" :class="classes">
3
- <sh-loading :loading="loading" fix />
4
- <div class="sh-pageheader-heading">
5
- <div v-if="showback" class="sh-pageheader-back">
6
- <div class="sh-pageheader-back-button" @click="handleBack"><sh-icon :size="iconSize" type="ios-arrow-back" /></div>
7
- </div>
8
- <sh-icon v-if="icon" style="margin-right: 0.5rem" :type="icon" :size="iconSize" :color="iconColor"></sh-icon>
9
- <span v-if="title || slots.title" class="sh-pageheader-title" :style="titleStyle">
10
- <slot name="title">{{ title }}</slot>
11
- </span>
12
- <span v-if="subTitle || slots.subTitle" class="sh-pageheader-subtitle">
13
- <slot name="subTitle">{{ subTitle }}</slot>
14
- </span>
15
- <div v-if="slots.tags" class="sh-pageheader-tags"><slot name="tags"></slot></div>
16
- <div v-if="slots.extra" class="sh-pageheader-extra"><slot name="extra"></slot></div>
17
- </div>
18
- <div v-if="slots.default" :class="contentClass">
19
- <slot></slot>
20
- </div>
21
- <slot name="body"></slot>
22
- <div v-if="slots.footer" class="sh-pageheader-footer"><slot name="footer"></slot></div>
23
- </div>
24
- </template>
25
-
26
- <script>
27
- import { defineComponent, computed } from 'vue'
28
- export default defineComponent({
29
- name: 'ShHeader',
30
- props: {
31
- size: {
32
- type: String,
33
- default: 'default'
34
- },
35
- color: {
36
- type: String,
37
- default: ''
38
- },
39
- theme: {
40
- type: String,
41
- default: ''
42
- },
43
- icon: {
44
- type: String
45
- },
46
- iconSize: {
47
- type: Number,
48
- default: 20
49
- },
50
- iconColor: {
51
- type: String
52
- },
53
- ghost: {
54
- type: Boolean
55
- },
56
- full: {
57
- type: Boolean
58
- },
59
- border: {
60
- type: Boolean
61
- },
62
- type: {
63
- type: String,
64
- default: '' // 'success', 'info', 'warning', 'error'
65
- },
66
- title: {
67
- type: String,
68
- default: ''
69
- },
70
- subTitle: {
71
- type: String,
72
- default: ''
73
- },
74
- loading: {
75
- type: Boolean
76
- },
77
- nowrap: {
78
- type: Boolean
79
- },
80
- showback: {
81
- type: Boolean
82
- }
83
- },
84
- emits: ['back'],
85
- setup(props, context) {
86
- const { emit, slots } = context
87
-
88
- let sizeMap = {
89
- large: '19px',
90
- default: '17px',
91
- medium: 'var(--vxe-font-size)',
92
- small: 'var(--vxe-font-size-small)',
93
- mini: 'var(--vxe-font-size-smini)'
94
- }
95
-
96
- const styles = computed(() => {
97
- return {
98
- backgroundColor: props.color
99
- }
100
- })
101
- const classes = computed(() => {
102
- return {
103
- 'sh-pageheader-ghost': props.ghost,
104
- 'sh-pageheader-full': props.full,
105
- 'sh-pageheader-border': props.border,
106
- [`sh-pageheader-theme-${props.theme}`]: props.theme,
107
- 'has-footer': slots.footer,
108
- [`sh-pageheader-type-${props.type}`]: props.type,
109
- [`${props.size}`]: props.size
110
- }
111
- })
112
- const titleStyle = computed(() => {
113
- return {
114
- fontSize: sizeMap[props.size] || sizeMap.default,
115
- whiteSpace: props.nowrap ? 'nowrap' : ''
116
- }
117
- })
118
- const contentClass = computed(() => {
119
- return {
120
- 'sh-pageheader-content': true,
121
- 'no-padding': !props.title && !slots.title && !props.subTitle && !slots.subTitle && !slots.tags && !slots.extra
122
- }
123
- })
124
-
125
- const handleBack = () => {
126
- emit('back')
127
- }
128
- return {
129
- styles,
130
- classes,
131
- titleStyle,
132
- contentClass,
133
- slots,
134
- handleBack
135
- }
136
- }
137
- })
138
- </script>
139
-
140
- <style lang="scss" scoped>
141
- .sh-pageheader {
142
- display: block;
143
- box-sizing: border-box;
144
- border-radius: 2px;
145
- line-height: 1.5;
146
- position: relative;
147
- padding: 0.5rem 1rem;
148
- background-color: var(--vxe-table-body-background-color);
149
- &-theme {
150
- color: #fff;
151
- &-primary {
152
- background-color: var(--vxe-primary-color);
153
- }
154
- &-success {
155
- background-color: var(--vxe-success-color);
156
- }
157
- &-warning {
158
- background-color: var(--vxe-warning-color);
159
- }
160
- &-error {
161
- background-color: var(--vxe-danger-color);
162
- }
163
- &-info {
164
- background-color: var(--vxe-info-color);
165
- }
166
- }
167
- &-type {
168
- color: #fff;
169
- &-primary {
170
- border-left: 4px solid var(--vxe-primary-color);
171
- background-color: var(--primary-weak-color);
172
- .sh-pageheader-heading-title {
173
- color: var(--vxe-primary-color);
174
- }
175
- }
176
- &-success {
177
- border-left: 4px solid var(--vxe-success-color);
178
- background-color: #edfff3;
179
- .sh-pageheader-heading-title {
180
- color: var(--vxe-success-color);
181
- }
182
- }
183
- &-warning {
184
- border-left: 4px solid var(--vxe-warning-color);
185
- background-color: #fff9e6;
186
- .sh-pageheader-heading-title {
187
- color: var(--vxe-warning-color);
188
- }
189
- }
190
- &-error {
191
- border-left: 4px solid var(--vxe-danger-color);
192
- background-color: #ffefe6;
193
- .sh-pageheader-heading-title {
194
- color: var(--vxe-danger-color);
195
- }
196
- }
197
- &-info {
198
- border-left: 4px solid var(--vxe-info-color);
199
- background-color: #f0faff;
200
- .sh-pageheader-heading-title {
201
- color: var(--vxe-info-color);
202
- }
203
- }
204
- }
205
- &-full {
206
- padding-left: 0;
207
- padding-right: 0;
208
- }
209
- &-ghost {
210
- background-color: transparent;
211
- }
212
- &-border {
213
- border: 1px solid var(--vxe-table-border-color);
214
- }
215
- &-heading {
216
- width: 100%;
217
- display: flex;
218
- justify-content: space-between;
219
- align-items: center;
220
- }
221
- &-content {
222
- margin-top: 10px;
223
- &.no-padding {
224
- padding-top: 0;
225
- }
226
- }
227
- &-footer {
228
- margin-top: 10px;
229
- }
230
- &-back {
231
- font-size: 1.2rem;
232
- line-height: 1;
233
- margin-right: 0.5rem;
234
- &-button {
235
- color: inherit;
236
- text-decoration: none;
237
- outline: none;
238
- transition: color 0.3s;
239
- cursor: pointer;
240
- &:hover {
241
- opacity: 0.85;
242
- }
243
- }
244
- }
245
- &-title {
246
- display: block;
247
- margin-right: 0.5rem;
248
- font-weight: 600;
249
- }
250
- &-subtitle {
251
- margin-right: 0.5rem;
252
- color: rgba(0, 0, 0, 0.45);
253
- }
254
- &-tags {
255
- }
256
- &-extra {
257
- margin-left: auto;
258
- }
259
- }
260
- </style>
1
+ <template>
2
+ <div class="sh-pageheader" :style="styles" :class="classes">
3
+ <sh-loading :loading="loading" fix />
4
+ <div class="sh-pageheader-heading">
5
+ <div v-if="showback" class="sh-pageheader-back">
6
+ <div class="sh-pageheader-back-button" @click="handleBack"><sh-icon :size="iconSize" type="ios-arrow-back" /></div>
7
+ </div>
8
+ <sh-icon v-if="icon" style="margin-right: 0.5rem" :type="icon" :size="iconSize" :color="iconColor"></sh-icon>
9
+ <span v-if="title || slots.title" class="sh-pageheader-title" :style="titleStyle">
10
+ <slot name="title">{{ title }}</slot>
11
+ </span>
12
+ <span v-if="subTitle || slots.subTitle" class="sh-pageheader-subtitle">
13
+ <slot name="subTitle">{{ subTitle }}</slot>
14
+ </span>
15
+ <div v-if="slots.tags" class="sh-pageheader-tags"><slot name="tags"></slot></div>
16
+ <div v-if="slots.extra" class="sh-pageheader-extra"><slot name="extra"></slot></div>
17
+ </div>
18
+ <div v-if="slots.default" :class="contentClass">
19
+ <slot></slot>
20
+ </div>
21
+ <slot name="body"></slot>
22
+ <div v-if="slots.footer" class="sh-pageheader-footer"><slot name="footer"></slot></div>
23
+ </div>
24
+ </template>
25
+
26
+ <script>
27
+ import { defineComponent, computed } from 'vue'
28
+ export default defineComponent({
29
+ name: 'ShHeader',
30
+ props: {
31
+ size: {
32
+ type: String,
33
+ default: 'default'
34
+ },
35
+ color: {
36
+ type: String,
37
+ default: ''
38
+ },
39
+ theme: {
40
+ type: String,
41
+ default: ''
42
+ },
43
+ icon: {
44
+ type: String
45
+ },
46
+ iconSize: {
47
+ type: Number,
48
+ default: 20
49
+ },
50
+ iconColor: {
51
+ type: String
52
+ },
53
+ ghost: {
54
+ type: Boolean
55
+ },
56
+ full: {
57
+ type: Boolean
58
+ },
59
+ border: {
60
+ type: Boolean
61
+ },
62
+ type: {
63
+ type: String,
64
+ default: '' // 'success', 'info', 'warning', 'error'
65
+ },
66
+ title: {
67
+ type: String,
68
+ default: ''
69
+ },
70
+ subTitle: {
71
+ type: String,
72
+ default: ''
73
+ },
74
+ loading: {
75
+ type: Boolean
76
+ },
77
+ nowrap: {
78
+ type: Boolean
79
+ },
80
+ showback: {
81
+ type: Boolean
82
+ }
83
+ },
84
+ emits: ['back'],
85
+ setup(props, context) {
86
+ const { emit, slots } = context
87
+
88
+ let sizeMap = {
89
+ large: '19px',
90
+ default: '17px',
91
+ medium: 'var(--vxe-font-size)',
92
+ small: 'var(--vxe-font-size-small)',
93
+ mini: 'var(--vxe-font-size-smini)'
94
+ }
95
+
96
+ const styles = computed(() => {
97
+ return {
98
+ backgroundColor: props.color
99
+ }
100
+ })
101
+ const classes = computed(() => {
102
+ return {
103
+ 'sh-pageheader-ghost': props.ghost,
104
+ 'sh-pageheader-full': props.full,
105
+ 'sh-pageheader-border': props.border,
106
+ [`sh-pageheader-theme-${props.theme}`]: props.theme,
107
+ 'has-footer': slots.footer,
108
+ [`sh-pageheader-type-${props.type}`]: props.type,
109
+ [`${props.size}`]: props.size
110
+ }
111
+ })
112
+ const titleStyle = computed(() => {
113
+ return {
114
+ fontSize: sizeMap[props.size] || sizeMap.default,
115
+ whiteSpace: props.nowrap ? 'nowrap' : ''
116
+ }
117
+ })
118
+ const contentClass = computed(() => {
119
+ return {
120
+ 'sh-pageheader-content': true,
121
+ 'no-padding': !props.title && !slots.title && !props.subTitle && !slots.subTitle && !slots.tags && !slots.extra
122
+ }
123
+ })
124
+
125
+ const handleBack = () => {
126
+ emit('back')
127
+ }
128
+ return {
129
+ styles,
130
+ classes,
131
+ titleStyle,
132
+ contentClass,
133
+ slots,
134
+ handleBack
135
+ }
136
+ }
137
+ })
138
+ </script>
139
+
140
+ <style lang="scss" scoped>
141
+ .sh-pageheader {
142
+ display: block;
143
+ box-sizing: border-box;
144
+ border-radius: 2px;
145
+ line-height: 1.5;
146
+ position: relative;
147
+ padding: 0.5rem 1rem;
148
+ background-color: var(--vxe-table-body-background-color);
149
+ &-theme {
150
+ color: #fff;
151
+ &-primary {
152
+ background-color: var(--vxe-primary-color);
153
+ }
154
+ &-success {
155
+ background-color: var(--vxe-success-color);
156
+ }
157
+ &-warning {
158
+ background-color: var(--vxe-warning-color);
159
+ }
160
+ &-error {
161
+ background-color: var(--vxe-danger-color);
162
+ }
163
+ &-info {
164
+ background-color: var(--vxe-info-color);
165
+ }
166
+ }
167
+ &-type {
168
+ color: #fff;
169
+ &-primary {
170
+ border-left: 4px solid var(--vxe-primary-color);
171
+ background-color: var(--primary-weak-color);
172
+ .sh-pageheader-heading-title {
173
+ color: var(--vxe-primary-color);
174
+ }
175
+ }
176
+ &-success {
177
+ border-left: 4px solid var(--vxe-success-color);
178
+ background-color: #edfff3;
179
+ .sh-pageheader-heading-title {
180
+ color: var(--vxe-success-color);
181
+ }
182
+ }
183
+ &-warning {
184
+ border-left: 4px solid var(--vxe-warning-color);
185
+ background-color: #fff9e6;
186
+ .sh-pageheader-heading-title {
187
+ color: var(--vxe-warning-color);
188
+ }
189
+ }
190
+ &-error {
191
+ border-left: 4px solid var(--vxe-danger-color);
192
+ background-color: #ffefe6;
193
+ .sh-pageheader-heading-title {
194
+ color: var(--vxe-danger-color);
195
+ }
196
+ }
197
+ &-info {
198
+ border-left: 4px solid var(--vxe-info-color);
199
+ background-color: #f0faff;
200
+ .sh-pageheader-heading-title {
201
+ color: var(--vxe-info-color);
202
+ }
203
+ }
204
+ }
205
+ &-full {
206
+ padding-left: 0;
207
+ padding-right: 0;
208
+ }
209
+ &-ghost {
210
+ background-color: transparent;
211
+ }
212
+ &-border {
213
+ border: 1px solid var(--vxe-table-border-color);
214
+ }
215
+ &-heading {
216
+ width: 100%;
217
+ display: flex;
218
+ justify-content: space-between;
219
+ align-items: center;
220
+ }
221
+ &-content {
222
+ margin-top: 10px;
223
+ &.no-padding {
224
+ margin-top: 0;
225
+ padding-top: 0;
226
+ }
227
+ }
228
+ &-footer {
229
+ margin-top: 10px;
230
+ }
231
+ &-back {
232
+ font-size: 1.2rem;
233
+ line-height: 1;
234
+ margin-right: 0.5rem;
235
+ &-button {
236
+ color: inherit;
237
+ text-decoration: none;
238
+ outline: none;
239
+ transition: color 0.3s;
240
+ cursor: pointer;
241
+ &:hover {
242
+ opacity: 0.85;
243
+ }
244
+ }
245
+ }
246
+ &-title {
247
+ display: block;
248
+ margin-right: 0.5rem;
249
+ font-weight: 600;
250
+ }
251
+ &-subtitle {
252
+ margin-right: 0.5rem;
253
+ color: rgba(0, 0, 0, 0.45);
254
+ }
255
+ &-tags {
256
+ }
257
+ &-extra {
258
+ margin-left: auto;
259
+ }
260
+ }
261
+ </style>