v-uni-app-ui 1.0.2 → 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.
- package/README.md +147 -0
- package/components/config/css/basic.scss +19 -0
- package/components/config/interface/basic-type.js +16 -0
- package/components/config/interface/components-interface.ts +0 -0
- package/components/config/interface/monitor/components/input-monitor.js +0 -0
- package/components/config/interface/monitor/property-monitor.ts +136 -0
- package/components/config/interface/props/basic-props.ts +88 -0
- package/components/config/interface/props/components/button-props.ts +85 -0
- package/components/config/interface/props/components/input-props.ts +69 -0
- package/components/config/interface/props/props-tools.ts +64 -0
- package/components/config/style/basic.js +346 -0
- package/components/config/style/component-registry.js +142 -0
- package/components/config/style/components/button-style.js +160 -0
- package/components/config/style/components/input-style.js +98 -0
- package/components/config/style/components-style.js +622 -0
- package/components/config/style/property-mapper.js +377 -0
- package/components/config/style/pseudo-processor.js +213 -0
- package/components/config.js +3 -3
- package/components/icon/iconfont.css +87 -0
- package/components/icon/iconfont.js +1 -0
- package/components/icon/iconfont.json +135 -0
- package/components/icon/iconfont.ttf +0 -0
- package/components/icon/iconfont.woff +0 -0
- package/components/icon/iconfont.woff2 +0 -0
- package/components/model/native/v-button/v-button.vue +81 -273
- package/components/model/native/v-input/v-input.vue +132 -321
- package/components/utils/event-modifiers.ts +139 -0
- package/components/utils/validator.ts +451 -0
- package/index.js +372 -0
- package/package.json +12 -4
- package/components/model/native/v-text-button/v-text-button.vue +0 -139
|
@@ -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
|
+
}
|