更新记录
1.0.8(2024-07-13)
下载此版本
scView
可以使用
- 基础组件
sc-text
、sc-image
、sc-button
- 布局组件
sc-view
、sc-flex
、sc-grid
,
- 反馈组件
sc-ellipsis
- 其他组件
sc-gap
、sc-footer
。
后续会添加更多组件。
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 4.0 app-vue |
× |
√ |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
× |
√ |
× |
× |
√ |
× |
√ |
√ |
√ |
scView 使用配置
组件全局引入
{
"easycom": {
"autoscan": true,
"custom": {
"^sc-(.*)": "@/uni_modules/scview-ui/components/sc-$1/sc-$1.vue"
}
},
}
全局挂载
import App from './App';
import {
createSSRApp,
} from 'vue';
import scView from '@/uni_modules/scview-ui';
export function createApp() {
const app = createSSRApp(App);
app.use(scView);
return {
app,
};
}
全局配置
app.use(scView, {
color: { 配置颜色值,可以在所有组件中使用
primary: '#4C8BFD',
success: '#5AC725',
},
button: { 按钮的默认配置
fontSize: 0.35, 按钮 - 字体大小(这里设置的不是具体的值, 而是按钮高度的百分之几)
round: 20, 按钮 - 圆角
fontWeight: 400, 按钮 - 字体粗细
default: { 默认按钮样式
bgColor: '#4C8BFD', 默认按钮 - 背景颜色
fontColor: '#fff', 默认按钮 - 字体颜色
},
plain: { 镂空按钮样式
bgColor: 'transparent', 镂空按钮 - 背景颜色
borderColor: '#4C8BFD', 镂空按钮 - 边框颜色
fontColor: '#4C8BFD', 镂空按钮 - 字体颜色
},
},
text: { 文本的默认配置
size: 24, 文本 - 字体大小
color: '#333', 文本 - 字体颜色
weight: 400, 文本 - 字体粗细
},
});
颜色使用
<sc-text color="primary"></sc-text>
<sc-button bg-color="success"></sc-button>
Api
工具库
验证
isPureNumber
: 判断一个字符串是否是纯数字
isPhone
: 判断一个字符串是否是手机号
isEmail
: 判断一个字符串是否是邮箱
isIdCard
: 判断一个字符串是否是身份证号
isColor
: 判断一个字符串是否是颜色值(HEX, RGB, RGBA)
isEmpty
: 判断一个字符串 / 数字 / 数组 / 对象 是否为空 注:对于其他类型(如函数、Date等)我们认为它不是空的
isObject
: 判断一个值是否是对象
{String} str - 待判断的字符串
其他
getDataType
:获取数据类型,可判断数据类型
string / number / boolean / null / undefined / array / function / asyncFunction / object / symbol
// {Number} data - 要判断的数据
const type = getDataType('data') // 'string'
// {Number|String} px - 要转换的数据
const val = pxToRpx(100)
// {Number|String} rpx - 要转换的数据
const val = rpxToPx(100)
deepMerge
:深度合并对象(可传入多个对象,返回值为一个新的对象)
const obj1 = {
a: 1,
b: {
c: 1,
}
}
const obj2 = {
b: {
c: 2,
}
}
const obj3 = deepMerge(obj1, obj2) // {a: 1, b: {c: 2}}
transformStyle
:样式转换 (对象转字符串,或者字符串转对象)
// {object | string} customStyle - 需要转换的目标
// {String} target 转换的目的,object-转为对象(默认),string-转为字符串
const style1 = transformStyle('width: 100px; height: 100px;') // {width: '100px', height: '100px'}
const style2 = transformStyle({width: '100px', height: '100px'},'string') // 'width: 100px; height: 100px;'
generateUnit
:生成 css 的单位值(默认值为rpx)
// {Number|String} val - 要转换的值
const unit1 = generateUnit(20) // 20rpx
const unit2 = generateUnit('20px') // 20px
// {String} str - 要脱敏的字符串
// {Array} skip - 要保留的字符数(前后)
const str = desensitize('18812345678', [3, 4]) // 188****5678
// {Number} time - 延迟时间
sleep(1000).then(() => {
console.log('延迟1秒执行')
})
例:uni.$sc.systemInfo().dpr
weChar 相关
dpr:DPR
scaleFactor:机型适配比例系数
windowHeight:当前机型-屏幕高度
windowWidth:当前机型-屏幕宽度
statusBarHeight:状态栏高度
menuButtonHeight:胶囊高度
menuButtonWidth:胶囊宽度
menuButtonTop:胶囊上边界的坐标
menuButtonRight:胶囊右边界的坐标
menuButtonBottom:胶囊下边界的坐标
menuButtonLeft:胶囊左边界的坐标
safeAreaInsets:苹果的安全区域
safeArea:苹果的安全区域
public 相关
dpr:DPR
scaleFactor:机型适配比例系数
windowHeight:当前机型-屏幕高度
windowWidth:当前机型-屏幕宽度
statusBarHeight:状态栏高度
safeAreaInsets:苹果的安全区域
safeArea:苹果的安全区域
组件
尺寸配置:
- 所有的值默认单位为
rpx
,支持单位 rpx、px、em、rem、%、vw、vh
- 如果是单个值支持
number / string
,例:width="50"
- 如果是多个值,则支持
string
,以空格分割,例:wh="20 20rpx"
颜色配置:
- 所有的
color
相关的 prop
都可以传入 config.color
配置的值,所有非 hex、rgb、rgba、linear-gradient (渐变)、radial-gradient (渐变)、transparent (透明)
,颜色值都会被认定为配置的值
margin与padding配置: margin
与 padding
配置,支持 number / string
,以空格分割,例:margin="20 20rpx"
基础组件
text 文本
props
属性 |
说明 |
类型 |
默认值 |
可选值 |
size |
字号 |
number / string |
24rpx |
- |
weight |
字体粗细 |
number / string |
- |
100 / 200 / 300/ 400 / 500 / 600 / 700 / 800 / 900 / bold |
lineHeight |
行高 |
number / string |
- |
- |
lines |
显示行数, 超出部分省略号 |
number / string |
- |
- |
align |
文字对齐方式 |
string |
left |
center (居中) / right (居右) |
block |
是否块级元素 |
boolean |
false |
false |
decoration |
修饰符 |
string |
- |
underline (下划线) / line-through (中划线) |
link |
链接(设置链接后,点击会触发跳转) |
string |
- |
- |
margin |
外边距(空格分割) |
string |
- |
- |
mt |
外上边距 |
number / string |
- |
- |
mb |
外下边距 |
number / string |
- |
- |
ml |
外左边距 |
number / string |
- |
- |
mr |
外右边距 |
number / string |
- |
- |
customClass |
自定义样式类 |
string |
- |
- |
customStyle |
自定义样式(优先级高于其他props设置的样式) |
string / object |
- |
- |
slot
event
image 图片
props
属性 |
说明 |
类型 |
默认值 |
可选值 |
src |
图片地址 (必填) |
string |
- |
- |
wh |
宽高的简略形式,如果需要设置多个值,请使用wh属性,否则请使用 width 和 height 属性 |
string |
- |
- |
width |
宽度 (必填) |
number / string |
- |
- |
height |
高度 |
number / string |
- |
- |
round |
圆角 |
number / string |
- |
- |
mode |
裁剪模式 |
string |
- |
- |
rotate |
旋转角度 |
number / string |
- |
- |
lazyLoad |
图片懒加载。只针对page与scroll-view下的image有效 |
Boolean |
false |
true |
margin |
外边距(空格分割) |
string |
- |
- |
mt |
外上边距 |
number / string |
- |
- |
mb |
外下边距 |
number / string |
- |
- |
ml |
外左边距 |
number / string |
- |
- |
mr |
外右边距 |
number / string |
- |
- |
customClass |
自定义样式类 |
string |
- |
- |
customStyle |
自定义样式(优先级高于其他props设置的样式) |
string / object |
- |
- |
event
事件 |
说明 |
回调参数 |
click |
点击时触发 |
- |
error |
当错误发生时,发布到 AppService 的事件名,事件对象event.detail = {errMsg: 'something wrong'} |
- |
load |
当图片载入完毕时,发布到 AppService 的事件名,事件对象event.detail = {height:'图片高度px', width:'图片宽度px'} |
- |
button 按钮
props
属性 |
说明 |
类型 |
默认值 |
可选值 |
type |
按钮类型 |
string |
default(纯色背景) / plain(镂空) |
- |
wh |
宽高的简略形式,如果需要设置多个值,请使用wh属性,否则请使用 width 和 height 属性 |
string |
- |
- |
width |
宽度 |
number / string |
- |
- |
height |
高度 |
number / string |
- |
- |
round |
圆角值 |
number / string |
- |
- |
bgColor |
按钮的背景颜色,在 type 为 default 时有效 |
string |
default(#4C8BFD) / plain(透明) |
- |
borderColor |
按钮的边框颜色,在 type 为 plain 时有效 |
string |
plain(#4C8BFD) |
- |
fontColor |
按钮的文字颜色 |
string |
default(#fff) / plain(#4C8BFD) |
- |
fontSize |
按钮的字号 |
number / string |
按钮高度的 35% |
- |
disabled |
是否禁用(禁用时不会触发点击事件) |
boolean |
false |
true |
loading |
按钮名称前是否带 loading 图标 |
boolean |
false |
true |
margin |
外边距 |
string |
- |
- |
mt |
外上边距 |
number / string |
- |
- |
mb |
外下边距 |
number / string |
- |
- |
ml |
外左边距 |
number / string |
- |
- |
mr |
外右边距 |
number / string |
- |
- |
customClass |
自定义样式类 |
string |
- |
- |
customStyle |
自定义样式(优先级高于其他props设置的样式) |
string / object |
- |
- |
slot
slot |
说明 |
left |
自定义左侧部分内容 |
right |
自定义右侧部分内容 |
event
布局组件
flex 弹性布局
props
属性 |
说明 |
类型 |
默认值 |
可选值属性 |
wh |
宽高的简略形式,如果需要设置多个值,请使用wh属性,否则请使用 width 和 height 属性 |
string |
- |
- |
width |
宽度 |
number / string |
- |
- |
height |
高度 |
number / string |
- |
- |
round |
圆角 |
number / string |
- |
- |
bgColor |
背景色 |
string |
#fff |
- |
direction |
属性决定主轴的方向(即项目的排列方向) |
string |
- |
rl(右到左) / tb(上到下) / bt(下到上) |
jc |
justify-content 简写(主轴对齐方式) |
string |
- |
start(flex-start) / end(flex-end) / center / between(space-between) / around(space-around) |
ai |
align-items 简写(交叉轴对齐方式) |
string |
- |
start(flex-start) / end(flex-end) / center / baseline |
ac |
align-content 简写(多根轴线的对齐方式) |
string |
- |
start(flex-start) / end(flex-end) / center / between(space-between) / around(space-around) |
wrap |
换行方式 |
string |
- |
wrap / wrap-reverse |
rowPap |
横向间隔 |
number / string |
- |
- |
columnGap |
纵向间隔 |
number / string |
- |
- |
grow |
flex-grow 的简写(项目的放大比例) |
number / string |
- |
- |
shrink |
flex-shrink 的简写(项目的缩小比例) |
number / string |
- |
- |
basis |
flex-basis 的简写(分配多余空间) |
number / string |
- |
- |
margin |
外边距 |
string |
- |
- |
mt |
外上边距 |
number / string |
- |
- |
mb |
外下边距 |
number / string |
- |
- |
ml |
外左边距 |
number / string |
- |
- |
mr |
外右边距 |
number / string |
- |
- |
padding |
内边距 |
string |
- |
- |
pt |
内上边距 |
number / string |
- |
- |
pb |
内下边距 |
number / string |
- |
- |
pl |
内左边距 |
number / string |
- |
- |
pr |
内右边距 |
number / string |
- |
- |
position |
定位 |
string |
- |
relative / absolute / fixed / sticky |
top |
上边距 |
number / string |
- |
- |
bottom |
下边距 |
number / string |
- |
- |
left |
左边距 |
number / string |
- |
- |
right |
右边距 |
number / string |
- |
- |
customClass |
自定义样式类 |
string |
- |
- |
customStyle |
自定义样式(优先级高于其他props设置的样式) |
string / object |
- |
- |
slot
grid 栅格布局
props
属性 |
说明 |
类型 |
默认值 |
可选值属性 |
wh |
宽高的简略形式,如果需要设置多个值,请使用wh属性,否则请使用 width 和 height 属性 |
string |
- |
- |
width |
宽度 |
number / string |
- |
- |
height |
高度 |
number / string |
- |
- |
bgColor |
背景色 |
string |
#fff |
- |
rows |
行数(用法与 css grid 的用法一致) |
string |
- |
- |
columns |
列数(用法与 css grid 的用法一致) |
string |
- |
- |
rowGap |
行间隔 |
number / string |
- |
- |
columnsGap |
列间隔 |
number / string |
- |
- |
ji |
justify-items 水平方向对齐(单元格内容的对齐方式) |
string |
- |
start / end / center / stretch |
ai |
align-items 垂直方向对齐(单元格内容的对齐方式) |
string |
- |
start / end / center / stretch |
jc |
justify-content 水平位置(整个内容区域在容器里的对齐方式) |
string |
- |
start / end / center / stretch / around(space-around) / between(space-between) / evenly(space-evenly) |
ac |
align-content 垂直位置(整个内容区域在容器里的对齐方式) |
string |
- |
start / end / center / stretch / around(space-around) / between(space-between) / evenly(space-evenly) |
autoRows |
grid-auto-rows 自动创建的行宽 |
string |
- |
- |
autoColumns |
grid-auto-columns 自动创建的列宽 |
string |
- |
- |
margin |
外边距 |
string |
- |
- |
mt |
外上边距 |
number / string |
- |
- |
mb |
外下边距 |
number / string |
- |
- |
ml |
外左边距 |
number / string |
- |
- |
mr |
外右边距 |
number / string |
- |
- |
padding |
内边距 |
string |
- |
- |
pt |
内上边距 |
number / string |
- |
- |
pb |
内下边距 |
number / string |
- |
- |
pl |
内左边距 |
number / string |
- |
- |
pr |
内右边距 |
number / string |
- |
- |
position |
定位 |
string |
- |
relative / absolute / fixed / sticky |
top |
上边距 |
number / string |
- |
- |
bottom |
下边距 |
number / string |
- |
- |
left |
左边距 |
number / string |
- |
- |
right |
右边距 |
number / string |
- |
- |
customClass |
自定义样式类 |
string |
- |
- |
customStyle |
自定义样式(优先级高于其他props设置的样式) |
string / object |
- |
- |
slot
view 默认容器
props
|
说明 |
类型 |
默认值 |
可选值属性 |
wh |
宽高的简略形式,如果需要设置多个值,请使用wh属性,否则请使用 width 和 height 属性 |
string |
- |
- |
width |
宽度 |
number / string |
- |
- |
height |
高度 |
number / string |
- |
- |
round |
圆角 |
number / string |
- |
- |
bgColor |
背景色 |
string |
#fff |
- |
grow |
flex-grow 的简写(项目的放大比例) |
number / string |
- |
- |
shrink |
flex-shrink 的简写(项目的缩小比例) |
number / string |
- |
- |
basis |
flex-basis 的简写(分配多余空间) |
number / string |
- |
- |
js |
justify-self 的简写(grid 单元格中水平位置) |
string |
- |
start / end / center / stretch |
as |
align-self 的简写(grid 单元格中垂直位置) |
string |
- |
start / end / center / stretch |
margin |
外边距 |
string |
- |
- |
mt |
外上边距 |
number / string |
- |
- |
mb |
外下边距 |
number / string |
- |
- |
ml |
外左边距 |
number / string |
- |
- |
mr |
外右边距 |
number / string |
- |
- |
padding |
内边距 |
string |
- |
- |
pt |
内上边距 |
number / string |
- |
- |
pb |
内下边距 |
number / string |
- |
- |
pl |
内左边距 |
number / string |
- |
- |
pr |
内右边距 |
number / string |
- |
- |
position |
定位 |
string |
- |
relative / absolute / fixed / sticky |
top |
上边距 |
number / string |
- |
- |
bottom |
下边距 |
number / string |
- |
- |
left |
左边距 |
number / string |
- |
- |
right |
右边距 |
number / string |
- |
- |
customClass |
自定义样式类 |
string |
- |
- |
customStyle |
自定义样式(优先级高于其他props设置的样式) |
string / object |
- |
- |
footer 页脚
props
|
说明 |
类型 |
默认值 |
可选值属性 |
height |
高度 |
number / string |
- |
- |
bgColor |
背景色 |
string |
#fff |
- |
placeholder |
是否显示占位符 |
boolean |
true |
false |
customClass |
自定义样式类 |
string |
- |
- |
customStyle |
自定义样式(优先级高于其他props设置的样式) |
string / object |
- |
- |
slot
反馈组件
ellipsis 文本溢出显示展开/收起
props
属性 |
说明 |
类型 |
默认值 |
可选值参数 |
text |
文本内容 |
string |
- |
- |
fontSize |
文本行高(请传入字体大小的倍数) |
number / string |
30rpx |
- |
lineHeight |
文本行高 |
number / string |
1.2 |
- |
color |
文本颜色 |
string |
#333 |
- |
maxLine |
最大行数 |
number / string |
2 |
- |
maxWidth |
最大宽度 |
number / string |
500rpx |
- |
suffixOpen |
展开文本 |
string |
展开 |
- |
suffixClose |
收起文本 |
string |
收起 |
- |
suffixColor |
展开/收起文本颜色 |
string |
#999 |
- |
其他组件
gap 间隔槽
props
属性 |
说明 |
类型 |
默认值 |
可选值参数 |
height |
高度 |
number / string |
20 |
- |
bgColor |
背景色 |
string |
- |
- |
customClass |
自定义样式类 |
string |
- |
- |
customStyle |
自定义样式(优先级高于其他props设置的样式) |
string / object |
- |
- |