v-uni-app-ui 1.0.0 → 1.0.4

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 (86) hide show
  1. package/README.md +147 -0
  2. package/components/config/css/basic.scss +19 -0
  3. package/components/config/interface/basic-type.js +16 -0
  4. package/components/config/interface/components-interface.ts +0 -0
  5. package/components/config/interface/monitor/components/input-monitor.js +0 -0
  6. package/components/config/interface/monitor/property-monitor.ts +136 -0
  7. package/components/config/interface/props/basic-props.ts +88 -0
  8. package/components/config/interface/props/components/button-props.ts +85 -0
  9. package/components/config/interface/props/components/input-props.ts +69 -0
  10. package/components/config/interface/props/props-tools.ts +64 -0
  11. package/components/config/style/basic.js +346 -0
  12. package/components/config/style/component-registry.js +142 -0
  13. package/components/config/style/components/button-style.js +160 -0
  14. package/components/config/style/components/input-style.js +98 -0
  15. package/components/config/style/components-style.js +622 -0
  16. package/components/config/style/property-mapper.js +377 -0
  17. package/components/config/style/pseudo-processor.js +213 -0
  18. package/components/config.js +123 -0
  19. package/components/icon/iconfont.css +87 -0
  20. package/components/icon/iconfont.js +1 -0
  21. package/components/icon/iconfont.json +135 -0
  22. package/components/icon/iconfont.ttf +0 -0
  23. package/components/icon/iconfont.woff +0 -0
  24. package/components/icon/iconfont.woff2 +0 -0
  25. package/components/layout/v-card/v-card.vue +108 -0
  26. package/components/layout/v-grid/v-grid.vue +162 -0
  27. package/components/layout/v-icon-grid/v-icon-grid.vue +195 -0
  28. package/components/layout/v-infinite-scroll/v-infinite-scroll.vue +172 -0
  29. package/components/layout/v-list/v-list.vue +43 -0
  30. package/components/layout/v-row/v-row.vue +142 -0
  31. package/components/layout/v-waterfall/v-waterfall.vue +79 -0
  32. package/components/model/compound/v-checkbox-group/v-checkbox-group.vue +96 -0
  33. package/components/model/compound/v-console/v-console.js +20 -0
  34. package/components/model/compound/v-console/v-console.vue +299 -0
  35. package/components/model/compound/v-date-time/v-date-time.vue +261 -0
  36. package/components/model/compound/v-dialog/v-dialog.vue +178 -0
  37. package/components/model/compound/v-drum-select-picker/v-drum-select-picker.vue +83 -0
  38. package/components/model/compound/v-form/v-form.vue +226 -0
  39. package/components/model/compound/v-form-item/v-form-item.vue +255 -0
  40. package/components/model/compound/v-image/v-image.vue +357 -0
  41. package/components/model/compound/v-input-desensitize/v-input-desensitize.vue +101 -0
  42. package/components/model/compound/v-page/v-page.vue +11 -0
  43. package/components/model/compound/v-pages/v-pages.vue +141 -0
  44. package/components/model/compound/v-picker-list/v-picker-list.vue +109 -0
  45. package/components/model/compound/v-popup/v-popup.vue +151 -0
  46. package/components/model/compound/v-radio-group/v-radio-group.vue +86 -0
  47. package/components/model/compound/v-select-picker/v-select-picker.vue +202 -0
  48. package/components/model/compound/v-series-picker-list/v-series-picker-list.vue +221 -0
  49. package/components/model/compound/v-series-select-picker/v-series-select-picker.vue +203 -0
  50. package/components/model/compound/v-switch/v-switch.vue +136 -0
  51. package/components/model/compound/v-tabs-page/v-tabs-page.vue +138 -0
  52. package/components/model/native/v-badge/v-badge.vue +143 -0
  53. package/components/model/native/v-button/v-button.vue +81 -0
  54. package/components/model/native/v-carousel/v-carousel.vue +138 -0
  55. package/components/model/native/v-checkbox/v-checkbox.vue +215 -0
  56. package/components/model/native/v-collapse/v-collapse.vue +190 -0
  57. package/components/model/native/v-header-navigation-bar/v-header-navigation-bar.vue +92 -0
  58. package/components/model/native/v-input/v-input.vue +163 -0
  59. package/components/model/native/v-input-code/v-input-code.vue +146 -0
  60. package/components/model/native/v-loading/v-loading.vue +206 -0
  61. package/components/model/native/v-menu/v-menu.vue +222 -0
  62. package/components/model/native/v-menu-slide/v-menu-slide.vue +364 -0
  63. package/components/model/native/v-min-loading/v-min-loading.vue +80 -0
  64. package/components/model/native/v-null/v-null.vue +97 -0
  65. package/components/model/native/v-overlay/v-overlay.vue +96 -0
  66. package/components/model/native/v-pull-up-refresh/v-pull-up-refresh.vue +157 -0
  67. package/components/model/native/v-radio/v-radio.vue +138 -0
  68. package/components/model/native/v-scroll-list/v-scroll-list.vue +169 -0
  69. package/components/model/native/v-steps/v-steps.vue +253 -0
  70. package/components/model/native/v-table/v-table.vue +203 -0
  71. package/components/model/native/v-tabs/v-tabs.vue +235 -0
  72. package/components/model/native/v-tag/v-tag.vue +206 -0
  73. package/components/model/native/v-text/v-text.vue +187 -0
  74. package/components/model/native/v-textarea/v-textarea.vue +178 -0
  75. package/components/model/native/v-title/v-title.vue +91 -0
  76. package/components/model/native/v-toast/info.png +0 -0
  77. package/components/model/native/v-toast/success.png +0 -0
  78. package/components/model/native/v-toast/v-toast.vue +198 -0
  79. package/components/model/native/v-toast/warn.png +0 -0
  80. package/components/model/native/v-upload-file-button/v-upload-file-button.vue +296 -0
  81. package/components/model/native/v-video/v-video.vue +175 -0
  82. package/components/model/native/v-window/v-window.vue +158 -0
  83. package/components/utils/event-modifiers.ts +139 -0
  84. package/components/utils/validator.ts +451 -0
  85. package/index.js +372 -0
  86. package/package.json +25 -93
@@ -0,0 +1,346 @@
1
+ export const styleConfig = {
2
+ // 基础样式配置
3
+ basic: {
4
+ // 背景颜色 - 按功能分类
5
+ backgroundColor: {
6
+ // 状态类背景色
7
+ default: '#307fff',
8
+ delete: '#ff5e5e',
9
+ success: '#31d283',
10
+ info: '#888888',
11
+ warning: '#fba000',
12
+ reversal: '#ffffff',
13
+ disabled: '#f5f5f5',
14
+
15
+ // 布局背景色
16
+ page: '#f8f8f8', // 页面背景
17
+ card: '#ffffff', // 卡片背景
18
+ section: '#fafafa', // 区域背景
19
+ mask: 'rgba(0, 0, 0, 0.5)', // 遮罩层背景
20
+
21
+ // 交互状态背景色
22
+ hover: '#f0f7ff', // 悬停背景
23
+ active: '#e6f0ff', // 激活背景
24
+ selected: '#307fff', // 选中背景
25
+ focus: 'rgba(48, 127, 255, 0.1)' // 聚焦背景
26
+ },
27
+
28
+ // 字体颜色 - 按语义分类
29
+ fontColor: {
30
+ // 状态类文字色
31
+ default: '#307fff',
32
+ delete: '#ff5e5e',
33
+ success: '#31d283',
34
+ info: '#888888',
35
+ warning: '#fba000',
36
+ reversal: '#ffffff',
37
+ disabled: '#cccccc',
38
+
39
+ // 层级文字色
40
+ primary: '#222222', // 主要文字
41
+ secondary: '#666666', // 次要文字
42
+ tertiary: '#969696', // 辅助文字
43
+ placeholder: '#cccccc', // 占位文字
44
+ description: '#888888', // 描述文字
45
+
46
+ // 特殊文字色
47
+ link: '#307fff', // 链接文字
48
+ error: '#ff5e5e', // 错误文字
49
+ warningText: '#fba000', // 警告文字
50
+ successText: '#31d283' // 成功文字
51
+ },
52
+
53
+ // 字体大小
54
+ fontSize: {
55
+ // 标题类
56
+ extraLargeTitle: '48rpx',
57
+ largeTitle: '42.5rpx',
58
+ mediumTitle: '34.5rpx',
59
+ smallTitle: '31.5rpx',
60
+ extraSmallTitle: '28rpx',
61
+
62
+ // 正文类
63
+ extraLargeText: '32rpx',
64
+ largeText: '29.5rpx',
65
+ mediumText: '25.5rpx',
66
+ smallText: '22.5rpx',
67
+ extraSmallText: '20rpx',
68
+
69
+ // 特殊类
70
+ message: '20.5rpx',
71
+ hint: '18.5rpx',
72
+ caption: '16rpx',
73
+ footnote: '14rpx'
74
+ },
75
+
76
+ // 字体其他属性
77
+ fontOther: {
78
+ fontFamily: "'Noto Sans CJK', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
79
+ fontWeight: {
80
+ thin: 100,
81
+ light: 300,
82
+ regular: 400,
83
+ medium: 500,
84
+ bold: 700,
85
+ black: 900
86
+ },
87
+ lineHeight: {
88
+ tight: 1.2,
89
+ normal: 1.5,
90
+ relaxed: 1.75,
91
+ loose: 2
92
+ }
93
+ },
94
+
95
+ // 文字间距
96
+ letterSpacing: {
97
+ tight: '-0.5rpx',
98
+ normal: '0rpx',
99
+ wide: '0.5rpx',
100
+ extraWide: '1rpx'
101
+ },
102
+
103
+ // 边框设置
104
+ border: {
105
+ // 边框颜色
106
+ color: {
107
+ default: '#307fff',
108
+ delete: '#ff5e5e',
109
+ success: '#31d283',
110
+ info: '#888888',
111
+ warning: '#fba000',
112
+ divider: '#e0e0e0', // 分割线
113
+ light: '#f0f0f0', // 浅色边框
114
+ dark: '#d9d9d9', // 深色边框
115
+ primary: '#d0d0d0' // 主要边框颜色
116
+ },
117
+
118
+ // 边框宽度
119
+ width: {
120
+ primary: '1rpx', //主要宽度
121
+ secondary: '2rpx', //次要宽度
122
+ medium: '3rpx', //中等
123
+ thick: '7.5rpx' //粗
124
+ },
125
+
126
+ // 边框样式
127
+ style: {
128
+ solid: 'solid',
129
+ dashed: 'dashed',
130
+ dotted: 'dotted'
131
+ }
132
+ },
133
+
134
+ // 圆角设置
135
+ borderRadius: {
136
+ default: '8rpx',
137
+ none: '0',
138
+ extraSmall: '4rpx',
139
+ small: '8rpx',
140
+ medium: '12rpx',
141
+ large: '16rpx',
142
+ extraLarge: '24rpx',
143
+ full: '9999rpx',
144
+ circle: '35rpx'
145
+ },
146
+
147
+ // 透明度
148
+ opacity: {
149
+ // 交互状态
150
+ hover: 0.9,
151
+ active: 0.8,
152
+ click: 0.8,
153
+ disabled: 0.6,
154
+
155
+ // 视觉层次
156
+ subtle: 0.3,
157
+ medium: 0.5,
158
+ strong: 0.7,
159
+
160
+ // 组件
161
+ toast: 0.95,
162
+ mask: 0.4,
163
+ border: 0.3,
164
+ overlay: 0.2
165
+ },
166
+
167
+ // 间距系统
168
+ spacing: {
169
+ // 基础间距
170
+ extraSmall: '4rpx',
171
+ small: '8rpx',
172
+ medium: '12rpx',
173
+ large: '16rpx',
174
+ extraLarge: '24rpx',
175
+ extraExtraLarge: '32rpx',
176
+ superLarge: '48rpx',
177
+
178
+ // 布局间距
179
+ pagePadding: '32rpx',
180
+ cardPadding: '24rpx',
181
+ sectionPadding: '16rpx',
182
+ itemSpacing: '12rpx'
183
+ },
184
+
185
+ // 阴影系统
186
+ shadow: {
187
+ // 层级阴影
188
+ none: 'none',
189
+ small: '0 2rpx 8rpx rgba(0, 0, 0, 0.1)',
190
+ medium: '0 4rpx 12rpx rgba(0, 0, 0, 0.15)',
191
+ large: '0 8rpx 24rpx rgba(0, 0, 0, 0.2)',
192
+ extraLarge: '0 12rpx 48rpx rgba(0, 0, 0, 0.25)',
193
+
194
+ // 特殊阴影
195
+ focus: '0 0 0 3rpx rgba(48, 127, 255, 0.2)',
196
+ inset: 'inset 0 2rpx 4rpx rgba(0, 0, 0, 0.1)',
197
+
198
+ // 颜色阴影
199
+ default: '0 4rpx 12rpx rgba(48, 127, 255, 0.3)',
200
+ success: '0 4rpx 12rpx rgba(49, 210, 131, 0.3)',
201
+ warning: '0 4rpx 12rpx rgba(251, 160, 0, 0.3)',
202
+ info: '0 4rpx 12rpx rgba(0, 0, 0, 0.3)',
203
+ delete: '0 4rpx 12rpx rgba(255, 94, 94, 0.3)'
204
+ },
205
+
206
+ // 动画时长
207
+ animation: {
208
+ duration: {
209
+ instant: '100ms',
210
+ fast: '200ms',
211
+ normal: '300ms',
212
+ slow: '500ms',
213
+ verySlow: '800ms'
214
+ },
215
+ easing: {
216
+ linear: 'linear',
217
+ easeInOut: 'ease-in-out',
218
+ easeOut: 'ease-out',
219
+ easeIn: 'ease-in',
220
+ easeOutCubic: 'cubic-bezier(0.33, 1, 0.68, 1)',
221
+ easeInOutCubic: 'cubic-bezier(0.65, 0, 0.35, 1)',
222
+ easeOutBack: 'cubic-bezier(0.34, 1.56, 0.64, 1)',
223
+ easeInOutBack: 'cubic-bezier(0.68, -0.6, 0.32, 1.6)'
224
+ },
225
+ transition: {
226
+ default: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)'
227
+ },
228
+ },
229
+
230
+ // z-index层级
231
+ zIndex: {
232
+ base: 0,
233
+ content: 10,
234
+ overlay: 100,
235
+ modal: 1000,
236
+ toast: 1100,
237
+ tooltip: 1200,
238
+ dropdown: 1300,
239
+ notification: 1400
240
+ }
241
+ },
242
+
243
+ // 暗黑模式配置
244
+ darkMode: {
245
+ backgroundColor: {
246
+ default: '#307fff',
247
+ delete: '#ff5e5e',
248
+ success: '#31d283',
249
+ info: '#888888',
250
+ warning: '#fba000',
251
+ reversal: '#1a1a1a',
252
+ disabled: '#2a2a2a',
253
+ page: '#121212',
254
+ card: '#1e1e1e',
255
+ section: '#2a2a2a',
256
+ mask: 'rgba(0, 0, 0, 0.7)',
257
+ hover: 'rgba(48, 127, 255, 0.2)',
258
+ active: 'rgba(48, 127, 255, 0.3)',
259
+ selected: '#307fff',
260
+ focus: 'rgba(48, 127, 255, 0.1)'
261
+ },
262
+ fontColor: {
263
+ default: '#307fff',
264
+ delete: '#ff5e5e',
265
+ success: '#31d283',
266
+ info: '#888888',
267
+ warning: '#fba000',
268
+ reversal: '#ffffff',
269
+ disabled: '#555555',
270
+ primary: '#ffffff',
271
+ secondary: '#cccccc',
272
+ tertiary: '#999999',
273
+ placeholder: '#666666',
274
+ description: '#888888',
275
+ link: '#307fff',
276
+ error: '#ff5e5e',
277
+ warningText: '#fba000',
278
+ successText: '#31d283'
279
+ },
280
+ border: {
281
+ color: {
282
+ default: '#307fff',
283
+ delete: '#ff5e5e',
284
+ success: '#31d283',
285
+ info: '#888888',
286
+ warning: '#fba000',
287
+ divider: '#333333',
288
+ light: '#2a2a2a',
289
+ dark: '#444444'
290
+ }
291
+ }
292
+ },
293
+
294
+ // 响应式断点(基于rpx)
295
+ breakpoints: {
296
+ mobile: '768rpx',
297
+ tablet: '1024rpx',
298
+ desktop: '1280rpx',
299
+ wide: '1440rpx'
300
+ },
301
+
302
+ // 组件特定配置
303
+ components: {
304
+ VButton: {
305
+ height: {
306
+ small: '50rpx',
307
+ medium: '60rpx',
308
+ large: '70rpx'
309
+ },
310
+ padding: {
311
+ small: '14rpx 10rpx',
312
+ medium: '15rpx 15rpx',
313
+ large: '20rpx 20rpx'
314
+ },
315
+ plain: {
316
+ backgroundColor: 'transparent',
317
+ borderWidth: '1rpx'
318
+ },
319
+ text: {
320
+ backgroundColor: 'transparent',
321
+ borderWidth: '0'
322
+ },
323
+ shape: {
324
+ default: {
325
+ width: "1rpx",
326
+ style: 'solid'
327
+ },
328
+ none: {
329
+ width: "1rpx",
330
+ style: 'solid'
331
+ },
332
+ circle: {
333
+ width: "1rpx",
334
+ style: 'solid'
335
+ }
336
+ }
337
+ },
338
+ VInput: {
339
+ height: {
340
+ small: '50rpx',
341
+ medium: '60rpx',
342
+ large: '70rpx'
343
+ },
344
+ }
345
+ }
346
+ };
@@ -0,0 +1,142 @@
1
+ import {
2
+ styleConfig
3
+ } from './basic.js'
4
+
5
+ // 导入组件样式配置
6
+ import ButtonStyleConfig from '@/components/config/style/components/button-style.js'
7
+ import InputStyleConfig from '@/components/config/style/components/input-style.js'
8
+ /**
9
+ * 默认组件样式配置
10
+ */
11
+ const DefaultStyleConfig = {}
12
+
13
+ /**
14
+ * 组件样式注册表
15
+ */
16
+ const ComponentStyleRegistry = {
17
+ button: ButtonStyleConfig,
18
+ input: InputStyleConfig,
19
+ default: DefaultStyleConfig
20
+ }
21
+
22
+ /**
23
+ * 获取组件样式配置(合并默认配置)
24
+ * @param {string} componentName 组件名称
25
+ * @returns {Object} 组件样式配置
26
+ */
27
+ export function getComponentStyleConfig(componentName) {
28
+ const config = ComponentStyleRegistry[componentName] || ComponentStyleRegistry.default
29
+
30
+ // 如果组件配置有默认样式,确保返回的是包含默认配置的对象
31
+ if (config) {
32
+ // 复制配置,确保不修改原始配置
33
+ const mergedConfig = {
34
+ ...config
35
+ }
36
+
37
+ // 如果组件有自己的默认配置,将其合并到根级别
38
+ if (mergedConfig.default) {
39
+ // 注意:这里不直接合并,因为default可能在特定场景下使用
40
+ // 保持原有结构,PropertyMapper会处理default配置
41
+ }
42
+
43
+ return mergedConfig
44
+ }
45
+
46
+ return config
47
+ }
48
+
49
+ /**
50
+ * 注册组件样式配置
51
+ * @param {string} componentName 组件名称
52
+ * @param {Object} styleConfig 样式配置
53
+ * @param {boolean} mergeWithDefault 是否与现有默认配置合并
54
+ */
55
+ export function registerComponentStyle(componentName, styleConfig, mergeWithDefault = true) {
56
+ if (!ComponentStyleRegistry[componentName]) {
57
+ ComponentStyleRegistry[componentName] = {}
58
+ }
59
+
60
+ if (mergeWithDefault) {
61
+ // 深度合并配置,包括默认配置
62
+ ComponentStyleRegistry[componentName] = deepMerge(
63
+ ComponentStyleRegistry[componentName],
64
+ styleConfig
65
+ )
66
+ } else {
67
+ // 直接覆盖
68
+ ComponentStyleRegistry[componentName] = styleConfig
69
+ }
70
+ }
71
+
72
+ /**
73
+ * 检查组件是否已注册样式
74
+ * @param {string} componentName 组件名称
75
+ * @returns {boolean}
76
+ */
77
+ export function hasComponentStyle(componentName) {
78
+ return !!ComponentStyleRegistry[componentName]
79
+ }
80
+
81
+ /**
82
+ * 获取所有已注册的组件名称
83
+ * @returns {string[]}
84
+ */
85
+ export function getRegisteredComponents() {
86
+ return Object.keys(ComponentStyleRegistry).filter(name => name !== 'default')
87
+ }
88
+
89
+ /**
90
+ * 深度合并对象
91
+ */
92
+ function deepMerge(target, source) {
93
+ const result = {
94
+ ...target
95
+ }
96
+
97
+ for (const key in source) {
98
+ if (source[key] && typeof source[key] === 'object' && !Array.isArray(source[key])) {
99
+ if (target[key] && typeof target[key] === 'object') {
100
+ result[key] = deepMerge(target[key], source[key])
101
+ } else {
102
+ result[key] = source[key]
103
+ }
104
+ } else {
105
+ result[key] = source[key]
106
+ }
107
+ }
108
+
109
+ return result
110
+ }
111
+
112
+ /**
113
+ * 设置组件的默认样式配置
114
+ * @param {string} componentName 组件名称
115
+ * @param {Object} defaultConfig 默认样式配置
116
+ */
117
+ export function setComponentDefaultConfig(componentName, defaultConfig) {
118
+ if (!ComponentStyleRegistry[componentName]) {
119
+ ComponentStyleRegistry[componentName] = {}
120
+ }
121
+
122
+ // 将默认配置合并到组件配置的default属性中
123
+ ComponentStyleRegistry[componentName].default = deepMerge(
124
+ ComponentStyleRegistry[componentName].default || {},
125
+ defaultConfig
126
+ )
127
+ }
128
+
129
+ // 导出注册表
130
+ export {
131
+ ComponentStyleRegistry
132
+ }
133
+
134
+ // 默认导出
135
+ export default {
136
+ getComponentStyleConfig,
137
+ registerComponentStyle,
138
+ hasComponentStyle,
139
+ getRegisteredComponents,
140
+ setComponentDefaultConfig,
141
+ ComponentStyleRegistry
142
+ }
@@ -0,0 +1,160 @@
1
+ import {
2
+ styleConfig
3
+ } from "@/components/config/style/basic.js"
4
+ export default {
5
+ size: {
6
+ 'small': {
7
+ height: styleConfig.components.VButton.height.small,
8
+ padding: styleConfig.components.VButton.padding.small,
9
+ fontSize: styleConfig.basic.fontSize.smallText,
10
+ },
11
+ 'medium': {
12
+ height: styleConfig.components.VButton.height.medium,
13
+ padding: styleConfig.components.VButton.padding.medium,
14
+ fontSize: styleConfig.basic.fontSize.mediumText,
15
+ },
16
+ 'large': {
17
+ height: styleConfig.components.VButton.height.large,
18
+ padding: styleConfig.components.VButton.padding.large,
19
+ fontSize: styleConfig.basic.fontSize.largeText,
20
+ },
21
+ },
22
+ type: {
23
+ 'default': {
24
+ backgroundColor: styleConfig.basic.backgroundColor.default,
25
+ color: styleConfig.basic.fontColor.reversal,
26
+ borderColor: styleConfig.basic.border.color.default
27
+ },
28
+ 'success': {
29
+ backgroundColor: styleConfig.basic.backgroundColor.success,
30
+ color: styleConfig.basic.fontColor.reversal,
31
+ borderColor: styleConfig.basic.border.color.success
32
+ },
33
+ 'warning': {
34
+ backgroundColor: styleConfig.basic.backgroundColor.warning,
35
+ color: styleConfig.basic.fontColor.reversal,
36
+ borderColor: styleConfig.basic.border.color.warning
37
+ },
38
+ 'info': {
39
+ backgroundColor: styleConfig.basic.backgroundColor.info,
40
+ color: styleConfig.basic.fontColor.reversal,
41
+ borderColor: styleConfig.basic.border.color.info
42
+ },
43
+ 'delete': {
44
+ backgroundColor: styleConfig.basic.backgroundColor.delete,
45
+ color: styleConfig.basic.fontColor.reversal,
46
+ borderColor: styleConfig.basic.border.color.delete
47
+ },
48
+
49
+ // 镂空类型
50
+ 'default-plain': {
51
+ backgroundColor: styleConfig.components.VButton.plain.backgroundColor,
52
+ color: styleConfig.basic.fontColor.default,
53
+ borderColor: styleConfig.basic.border.color.default,
54
+ borderWidth: styleConfig.components.VButton.plain.borderWidth
55
+ },
56
+ 'success-plain': {
57
+ backgroundColor: styleConfig.components.VButton.plain.backgroundColor,
58
+ color: styleConfig.basic.fontColor.success,
59
+ borderColor: styleConfig.basic.border.color.success,
60
+ borderWidth: styleConfig.components.VButton.plain.borderWidth
61
+ },
62
+ 'warning-plain': {
63
+ backgroundColor: styleConfig.components.VButton.plain.backgroundColor,
64
+ color: styleConfig.basic.fontColor.warning,
65
+ borderColor: styleConfig.basic.border.color.warning,
66
+ borderWidth: styleConfig.components.VButton.plain.borderWidth
67
+ },
68
+ 'delete-plain': {
69
+ backgroundColor: styleConfig.components.VButton.plain.backgroundColor,
70
+ color: styleConfig.basic.fontColor.delete,
71
+ borderColor: styleConfig.basic.border.color.delete,
72
+ borderWidth: styleConfig.components.VButton.plain.borderWidth
73
+ },
74
+ 'info-plain': {
75
+ backgroundColor: styleConfig.components.VButton.plain.backgroundColor,
76
+ color: styleConfig.basic.fontColor.info,
77
+ borderColor: styleConfig.basic.border.color.info,
78
+ borderWidth: styleConfig.components.VButton.plain.borderWidth
79
+ },
80
+ //文本
81
+ 'default-text': {
82
+ backgroundColor: styleConfig.components.VButton.text.backgroundColor,
83
+ color: styleConfig.basic.fontColor.default,
84
+ borderColor: styleConfig.basic.border.color.default,
85
+ borderWidth: styleConfig.components.VButton.text.borderWidth
86
+ },
87
+ 'success-text': {
88
+ backgroundColor: styleConfig.components.VButton.text.backgroundColor,
89
+ color: styleConfig.basic.fontColor.success,
90
+ borderColor: styleConfig.basic.border.color.success,
91
+ borderWidth: styleConfig.components.VButton.text.borderWidth
92
+ },
93
+ 'warning-text': {
94
+ backgroundColor: styleConfig.components.VButton.text.backgroundColor,
95
+ color: styleConfig.basic.fontColor.warning,
96
+ borderColor: styleConfig.basic.border.color.warning,
97
+ borderWidth: styleConfig.components.VButton.text.borderWidth
98
+ },
99
+ 'delete-text': {
100
+ backgroundColor: styleConfig.components.VButton.text.backgroundColor,
101
+ color: styleConfig.basic.fontColor.delete,
102
+ borderColor: styleConfig.basic.border.color.delete,
103
+ borderWidth: styleConfig.components.VButton.text.borderWidth
104
+ },
105
+ 'info-text': {
106
+ backgroundColor: styleConfig.components.VButton.text.backgroundColor,
107
+ color: styleConfig.basic.fontColor.info,
108
+ borderColor: styleConfig.basic.border.color.info,
109
+ borderWidth: styleConfig.components.VButton.text.borderWidth
110
+ }
111
+ },
112
+ shape: {
113
+ 'default': {
114
+ borderWidth: styleConfig.components.VButton.shape.default.width,
115
+ borderStyle: styleConfig.components.VButton.shape.default.style,
116
+ borderRadius: styleConfig.basic.borderRadius.default
117
+ },
118
+ 'none': {
119
+ borderWidth: styleConfig.components.VButton.shape.none.width,
120
+ borderStyle: styleConfig.components.VButton.shape.none.style,
121
+ borderRadius: styleConfig.basic.borderRadius.none
122
+ },
123
+ 'circle': {
124
+ borderWidth: styleConfig.components.VButton.shape.circle.width,
125
+ borderStyle: styleConfig.components.VButton.shape.circle.style,
126
+ borderRadius: styleConfig.basic.borderRadius.circle
127
+ }
128
+ },
129
+ default: {
130
+ cursor: 'pointer',
131
+ transition: styleConfig.basic.animation.transition.default,
132
+ display: 'inline-flex',
133
+ alignItems: 'center',
134
+ justifyContent: 'center',
135
+ _pseudo: {
136
+ '--hover': {
137
+ opacity: styleConfig.basic.opacity.hover,
138
+ boxShadow: {
139
+ type: {
140
+ default: styleConfig.basic.shadow.default,
141
+ success: styleConfig.basic.shadow.success,
142
+ warning: styleConfig.basic.shadow.warning,
143
+ info: styleConfig.basic.shadow.info,
144
+ delete: styleConfig.basic.shadow.delete,
145
+
146
+ 'default-text': styleConfig.basic.shadow.none,
147
+ 'success-text': styleConfig.basic.shadow.none,
148
+ 'warning-text': styleConfig.basic.shadow.none,
149
+ 'delete-text': styleConfig.basic.shadow.none,
150
+ 'info-text': styleConfig.basic.shadow.none,
151
+ },
152
+ }
153
+ },
154
+ '--active': {
155
+ opacity: styleConfig.basic.opacity.active,
156
+ boxShadow: styleConfig.basic.shadow.none
157
+ }
158
+ }
159
+ },
160
+ }