颜色变量
admall-ui
中使用了一下颜色变量, 请在项目中提前设置
$main-color: #ff7e12; // 主色
$main-color2: #3d7fff; // 辅助色
$border-color: #dadada; // 边框主色
$border-color2: #f0f2f5; // 边框辅助色
$font-color: #333; // 文字主色
$font-color2: #666; // 文字辅助色
$font-color3: #999; // 文字辅助色
$primary-color: #ff7e12; // 主色
$success-color: #38bd0e; // 成功
$warning-color: #ffa217; // 警告
$error-color: #ff2200; // 错误
$tips-color: #909399; // 提示
$link-color: #3d7fff;
Alert
该组件引入后可以通过自定义方法显示一个弹出确认框, 返回 Promise
对象
this.$alert(options) 默认显示不带图标的弹窗
this.$alert.success(options) 带有成功图标的弹窗
this.$alert.error(options) 带有错误图标的弹窗
this.$alert.warning(options) 带有警告图标的弹窗
this.$alert.tips(options) 带有提示图标的弹窗
options
{
title:'', // 弹窗标题,
content:'',//弹窗内容,
confirmText:''// 确认按钮文字
cancelText:''// 取消按钮文字
}
案例:
async function alert() {
try {
await this.$alert({
title: '删除提示',
content: '确定要删除该文件吗',
confirmText: '确定删除',
cancelText: '我再想想',
});
console.log('confirm');
} catch (e) {
console.log('cancel');
}
}
Avatar
头像展示组件
props | 类型 | 描述 |
---|
src | String | 头像路径,如果路径对应的资源加载失败,会显示默认头像 |
size | String | 头像尺寸 |
Button
按钮, 支持防抖功能
props | 类型 | 描述 |
---|
wait | String,Number | 设置防抖功能, 如果添加了这个属性, 默认防抖间隔为 1000 毫秒, 可以使用wait=200 的格式重新设置防抖间隔 |
w,width | String,Number | 按钮宽度 |
prefix-icon | String | 前置 icon |
primary | Boolean | 主色调按钮 |
error | Boolean | 错误样式按钮 |
warning | Boolean | 警告样式按钮 |
success | Boolean | 成功样式按钮 |
border | Boolean | 线框型按钮 |
disabled | Boolean | 禁用按钮钮 |
auto | Boolean | 默认情况下,按钮宽度为父级元素的 100%, 设置auto 为true 的时候, 按钮元素会添加width:auto 属性 |
<adm-button>普通按钮</adm-button> <adm-button wait>防抖按钮</adm-button>
Card
卡片组件
props | 类型 | 描述 |
---|
title | String | 卡片标题, 如果设置为空字符串, 会隐藏标题栏 |
slots | 作用 |
---|
default | 内容 |
subtitle | 副标题部分 |
Checkbox
复选框组件
props | 类型 | 描述 |
---|
v-model | Boolean, Array | 必须是布尔值或者数组 |
label | String,Number | 如果 v-model 是数组,label 将作为判断是否被选中的条件,必传 |
disabled | Boolean | 是否禁用组件 |
readonly | readonly | 限制组件只读 |
DatetimePicker
日历组件,暂时仅支持年月日
props | 类型 | 描述 |
---|
v-model | Boolean, Array | 绑定值 |
placeholder | String | 提示语 |
clearable | Boolean | 是否显示清空按钮 |
year | Boolean | 年份选择器 |
month | Boolean | 年月选择器 |
date | Boolean | 年月日选择器 |
width,w | String | 组件宽度 |
Picker Options | Object | 组件宽度 |
Picker Options说明
props | 类型 | 描述 |
---|
disabledDate | Function | 设置禁用状态,参数为当前日期,要求返回 Boolean |
Dialog
弹出框组件
props | 类型 | 描述 |
---|
visible.sync | Boolean | 是否显示弹出框 |
title | String | 标题 |
slot | 作用 |
---|
header | 自定义头部内容 |
default | 自定义弹出框内容 |
Field
表单字段组件,支持 v-model
props | 类型 | 描述 |
---|
required | Boolean | 是否显示星号 |
inline | Boolean | 默认 false, label 与表单内容水平布局 |
vertical | Boolean | 默认 false, label 与表单内容垂直布局 |
label | String | 字段名称 |
labelWidth | String, Number | 字段名称占用的宽度, 数字或者百分比 |
left | Boolean | 默认属性, label 内的文字靠左对齐 |
center | Boolean | label 内的文字居中对齐 |
right | Boolean | label 内的文字靠右对齐 |
top | Boolean | label 内的文字靠顶部对齐 |
msg | String | 字段提示内容 |
err | String | 字段错误警告内容 |
Input
输入框组件
props | 类型 | 描述 |
---|
format | String | 限制输入框类型, 4 表示仅允许 4 位整数,4.2 表示仅允 许 4 位整数和 2 位小数, .3 表示整数不限制,小数限制 3 位 |
prefix-icon | String | 前置 icon |
left | Boolean | 文本内容左对齐 |
center | Boolean | 文本内容居中对齐 |
right | Boolean | 文本内容右对齐 |
label | String | 输入框内左侧提示语 |
right | Boolean | 文本内容右对齐 |
readonly | Boolean | 只读输入框 |
disabled | Boolean | 被禁用输入框 |
clearable | Boolean | 显示清空按钮 |
mini | Boolean | 小型输入框,高度 22px |
w,width | String,Number | 数字类型字符串或数字,定义输入框宽度 |
data | ArrayString | 如果提供了这个属性,且属性值 length 大于 0, 会在获取焦点的时候,打开被备选框 |
event | 描述 |
---|
@input | - |
@enter | 回车事件 |
@change | 输入框的值发生改变事件, fn(v,isSelectedOption=false), v: 当前值, isSelectedOption:当点击备选值得时候,该参数值为 true, 主要是为了避免change 事件恶性循环, 使用者可以根据这个参数来判断是否执行真正的change 事件 |
<!-- 只能输入4位整数 -->
<adm-input format="4" />
<!-- 只能输入4位整数和2位小数 -->
<adm-input format="4.2" />
<!-- 限制2位小数 -->
<adm-input format=".2" />
插槽
event | 描述 |
---|
default | 默认插槽, 会显示在真实输入框右侧,一般用来显示单位 |
<adm-input label="年龄" format="4.2">岁</adm-input>
Link
props | 类型 | 描述 |
---|
wait | String,Number | 设置防抖功能, 如果添加了这个属性, 默认防抖间隔为 1000 毫秒, 可以使用wait=200 的格式重新设置防抖间隔 |
prefix-icon | String | 前置 icon |
primary | Boolean | 主色调文本 |
error | Boolean | 错误样式文本 |
warning | Boolean | 警告样式文本 |
success | Boolean | 成功样式文本 |
Message
该组件引入后可以通过自定义方法显示一个消息提示窗, 有三种类型, 例子
this.$message(msg text) 默认是成功弹窗
this.$message.success(msg text) 成功弹窗
this.$message.error(msg text) 错误弹窗
this.$message.warning(msg text) 警告弹窗
this.$message.tips(msg text) 提示弹窗
Notify
该组件引入后可以通过自定义方法显示一个通知提示框, 通知框没有数量限制, 但是在超出当前屏幕可是高度时, 会自动缓存起来, 随着关闭通知框的操作再依次展示
this.$notify(options) 默认是成功弹窗
this.$notify.success(options) 成功弹窗
this.$notify.error(options) 错误弹窗
this.$notify.warning(options) 警告弹窗
this.$notify.tips(options) 提示弹窗
options
{
title:'', // 通知标题,
content:'',//通知内容,
buttonText:''// 按钮文字
buttonCallback:''// 按钮事件, 按钮文字和按钮事件同时存在时, 才会显示按钮
meta:{}// 其他数据, 这里的数据会当做参数传递给buttonCallback事件
}
案例:
this.$notify({
title: '通知',
content: '您的剩余时间已不多, 请及时充值',
buttonText: '我知道了',
buttonCallback: (data) => {
console.log(data); // data内容与meta相同
},
meta: {
name: 'zhangsan',
},
});
Pager
页码组件
props | 类型 | 描述 |
---|
pageSize | Number | 每页展示数量 |
pageNo | Number | 当前页码 |
total | Number | 总数量 |
pageSizes | Number | 每页显示个数选择器 |
jumper | Boolean | 是否显示前往*页组件 |
event | 描述 |
---|
pageNoChanged | 页码改变事件 |
pageSizeChanged | pageSize 改变时会触发 |
Radio
复选框组件
Scene
场景组件, 该组件主要目的是为了减少 CSS 工作量, 和快速部署 flex/栅格化布局, 组件不支持的 CSS 属性,请在 CSS 中另行设置
props | 类型 | 描述 |
---|
flex | Boolean | 设置 flex 布局 |
column | Boolean | flex 垂直布局 |
wrap | Boolean | flex 内允许换行 |
grow | Boolean, String | 允许元素本身自动增长 |
shrink | Boolean | 允许元素本身在控件不够的情况下缩小尺寸 |
fixed | Boolean | 不允许元素本身增长或者被挤压 |
fill | Boolean | 设置所有的子元素自动按比例扩展尺寸 |
left | Boolean | flex 时设置子元素水平左对齐 |
right | Boolean | flex 时设置子元素水平右对齐 |
center | Boolean | flex 时设置子元素水平居中对齐 |
top | Boolean | flex 时设置子元素垂直左对齐 |
bottom | Boolean | flex 时设置子元素垂直左对齐 |
middle | Boolean | flex 时设置子元素垂直左对齐 |
width | String, Number | 设置元素宽度 |
w | String, Number | 设置元素宽度 |
p | String, Number | 设置元素 padding 值 |
pl | String, Number | 设置元素 padding-left 值 |
pr | String, Number | 设置元素 padding-right 值 |
pt | String, Number | 设置元素 padding-top 值 |
pb | String, Number | 设置元素 padding-bottom 值 |
Select
下拉框组件,支持多级下拉框
props | 类型 | 描述 |
---|
data | Array | 数据来源 |
labelNode | String | 默认值name , 这个字段属性的值会显示在列表中 |
keyNode | String | 默认值id , 这个字段功能等同于 vue 的 key 属性, 不能有重复的 key 值 如果你的数据内没有id 属性,需要自行定义 |
valueNode | String | 默认值id , 这个字段决定了组件的返回值 |
childrenNode | String | 默认值children , 多级联动时,这个字段决定了子级数据的来源 |
placeholder | String | 同 input 的 placeholder 属性 |
clearable | Boolean | 设置显示清空按钮 |
disabled | Boolean | 设置禁用按钮钮 |
w,width | String,Number | 数字类型字符串或数字,定义输入框宽度 |
range | String,Number | 限制用户选择层次, 比如该值为 3, 用户只点击前两层会无效 |
event | 描述 |
---|
@change | 下拉框值改变事件, 返回两个参数(selectValue,selectItem) |
methods | 描述 |
---|
vm.getFullValue | 获取用户选择的具体内容 |
selectValue
selectValue 表示用户当前选中项中对应value-node
的属性值
selectItem
selectItem 表示用户当前选中项中所有的属性值
SmsCode
验证码组件, 全局通用
props | 类型 | 描述 |
---|
range | Number | 倒计时周期, 默认 60 秒 |
mobile | String | 手机号码, 必传, 如果号码格式错误, 会导致按钮被禁用 |
api | Function | 要调用的接口函数 |
event | 描述 |
---|
@success | 接口调用成功事件 |
@error | 接口调用失败事件 |
// 注意, 这里的函数不需要处理axios的错误, 错误会抛出给smscode组件
export default {
async getSmsCode() {
await this.$axios.$post('/admall-user/api/login/smscode-register', {
phone: this.smsLogin.account,
});
}
},
Space
占位符组件, 在不想写padding
或者margin
时,最为又用
Steps
步骤条
| props | 类型 | 描述 |
| --------- | ----------------| ------------------------ |
| data | Array | 步骤条数据来源 |
| active | String,Number | 当前激活步骤 |
| background| String | 步骤条背景颜色,默认'#fff' |
Table
表格组件
props | 类型 | 描述 |
---|
data | Array | 数据源 |
columns | Array | 列数据 |
columns 属性
props | 类型 | 描述 |
---|
label | String | 列头文字 |
prop | String | 列 key, 自动从每行数据中获取该 key 对应的字段值展示 |
width | String | 设置列宽度, 该宽度设置后,列宽会固定 |
slot
插槽分为两种, 一种是列头的插槽, 一种是单元格插槽,
单元格插槽:
<template #prop="{row, index}">
<!-- row 单行数据 -->
<!-- index 行索引 -->
<!-- data 全部数据 -->
</template>
列头插槽:
<template #prop_th="{row, index}">
<!-- col 列信息 -->
<!-- index 列索引 -->
<!-- data 全部数据 -->
</template>
Tabs
tab 切换组件
props | 类型 | 描述 |
---|
data | Array | 标签数据来源{name:'',label:''} |
border | Boolean | 显示下方下划线 |
background | Boolean | 显示背景色和边框 |
background | Boolean | 显示背景色和边框 |
labelWidth | String, Number | 自定义标签宽度 |
defaultName | String | 默认显示的标签页,必须是 data 中某一条数据的 name 属性值 |
event | 描述 |
---|
change | tab 切换事件, 如果监听了该事件, tab 不会自动切换, 主动权交给使用者 使用者可以通过修改defaultName 的值,来触发组件真实显示的内容 |
插槽
Tab 组件的插槽与 data
中的name
属性相关
{
dict: [
{
name: 'onway',
label: '已发货',
},
{
name: 'confirmed',
label: '已收货',
},
];
}
<adm-tabs>
<template #onway="">
<!-- ...tab1 -->
</template>
<template #confirmed="">
<!-- ...tab2 -->
</template>
</adm-tabs>
Textarea
文本域组件
props | 类型 | 描述 |
---|
v-model | String | 双向绑定 |
height,h | String | 文本域高度 |
msg | String | 文本域下方, 额外的提示语信息 |
placeholder | String | 文本域内的提示信息 |
disabled | Boolean | 禁用文本域 |
event | 描述 |
---|
@input | - |
@enter | 回车事件 |
@change | - |
Upload
上传组件, 支持进度回调, 支持整体引入和单组件引入
使用组件前, 要在use
方法中,传入 OSS 参数
整体引入:
import AdmallUi from 'admall-ui'
Vue.use(AdmallUi, {
upload:{
prefix: // 上传路径前缀, 组件内实际生成的fileName为`${prefix}/${path}/20210915/hash.文件后缀`
buckets:[
{
region:bucket所属区域,
bucket: bucket名称
}
],
refreshToken: { //获取OSStoken的异步函数, 必须返回以下内容
accessKeyId:'',
accessKeySecret:'',
stsToken:'',
}
}
})
props | 类型 | 是否必传 | 描述 |
---|
accept | String | | 允许上传的文件类型默认为'*', 比如:'.jpg,.png,.gif,.mp4' |
path | String | | prefix 与日期中间的路径 |
bucket | String | | bucket 名称 |
multiple | Boolean | | 设置允许选择多个文件, 必须与 maxLength 配合使用 |
maxLength | Boolean | | 最大上传文件数量 |
progress | String | | 是否显示自带的上传进度 UI |
beforeUpload | Function | | (files, next) 第一个参数表示用户选择的所有文件, 自行处理后, 需要调用next函数,并传入新的files才能继续执行 |
event | 描述 |
---|
@change | 上传进度回调 (fileList) |
@progress | 上传进度回调 (progress, checkpoit, fileList) |
@error | 上传错误回调, (reuslt,fileList) |
result:
{
code, //错误码 1001=超过文件最大数量, 1002=文件已存在, 1002=单个文件上传失败, 1004=单个文件超限, 1005=总文件超限, 1006 文件格式不符合要求
msg, //错误文字信息
}
fileList:
hash, //hash散列值, 当前上传组件中的唯一ID, 自定义UI组件时, 推荐使用该值去对比文件是否存在,或者更新文件信息,
file, // 实际文件内容, File对象
fileName, // 上传的真实路径
progress,// 0-1, 仅表示上传进度, 不能用这个值表示上传是否成功
success, // boolean, 上传是否成功, 当success为true的时候, 才能使用fileName获取文件
error, // 表示该文件上传出现了错误
remove, // fn, 从组件中删除该文件
callback,// fn, 进度回调函数, 该函数中触发了@progress事件, 不建议对此函数进行操作