vue 组件库
因为测试平台中有一些常见的可以模块化的 UI 界面, 使用 Vue 框架之后,将其抽象出来,成为单一的组件。以下是测试平台常用的组件列表。css 文件引用的是 bootstrap.min.css。
select 组件
属性名 |
描述 |
类型 |
title |
select元素的标题 |
String |
width |
控制select元素的宽度 |
Number |
spanWidth |
控制标题的长度 |
Number |
height |
控制select元素的高度 |
Number |
value |
select的当前option的value |
[String,Number] |
options |
选项列表 |
Array |
disabled |
是否disabled当前select,默认值为false |
Boolean |
事件名 |
描述 |
switchOption |
当option发生改变时触发,回传的值是options的元单元 |
如果你想实现的是,当option发生改变时,调ajax或者其他,可以这样写
import Select from 'select.vue'
export default {
data: function(){
return {
options:[
{
text: '张三',
value: 'zhangsan'
},
{
text: '李四',
value: 'lisi'
}
],
selectVal: ''
}
},
components: {
"h-select": Select
},
watch: {
selectVal: {
handler: function(newval ,oldVal){
//ajax请求
}
deep: true //这个选项会监测selecVal每个key值的变化
}
},
}
参考链接:
How do I watch all keys in a data object in Vue 2
vue2中watch的官方文档
ZeusDatePicker的用法
无
table的用法
特殊一点。可以合并单元格。
唯一的不同是tableData 属性,每一条记录需要在增加rowspan属性,
tableData: [
{
....
rowspan: {
appName: {
stopRowSpan: false, //需要合并的列是appName,从本条记录开始合并,合并 crossLine 行
crossLine: 2
}
},
{
....
rowspan: {
appName: {
stopRowSpan: true, //本条记录的appName列被上一条记录合并
crossLine: 0
},
}
},
{
....
rowspan: {
appName: {
stopRowSpan:false, //从本条记录开始,
crossLine: 0
},
}
},
]
属性名 |
描述 |
类型 |
mergeCell |
是否合并单元格。默认false |
Boolean |
dataRender |
表格头部信息,包含头部标题和index |
Array |
data |
表格数据信息 |
Array |
needPage |
是否需要分页 |
Boolean |
totalCount |
table的总数据 |
Number |
countPerPage |
一页显示多少行数据 |
Number |
needExpand |
有展开的效果,设置该属性为true时,不能合并单元格 |
Boolean |
expandHeadKey |
第几列被点击时,会显示或者隐藏下一列 |
String |
widthUnit |
thead的宽度,默认值是% |
String |
无
page组件
属性名 |
描述 |
类型 |
size |
是否合并单元格。默认false |
Boolean |
page-size |
每页多少条数据 |
Number |
total |
一共多少条数据 |
Number |
事件名 |
描述 |
currentPage |
当页面发生改变时,事件触发 |
zeusReverseTable组件
属性名 |
描述 |
类型 |
tableData |
table的数据 |
Array |
headData |
table的标题 |
Array |
border |
table的样式,是否需要边界,默认false |
Boolean |
customClass |
自定义table的样式 |
String |
thWidth |
table标题栏的宽度,自带单位,如'150px','10%' |
String |
zeusSwitchTab组件
import zeusSwitchTab from '../../components/zeusSwitchTab.vue'
export default {
components: {
'z-tab': zeusSwitchTab,
},
data: function() {
navInfos: [
{
text: '接口测试',
value: 0
},
{
text: 'UI测试',
value: 1
},
],
initVal:0
}
}
属性名 |
描述 |
类型 |
navInfos |
见用法 |
Array |
value |
获取当前active的tab的value |
String,Number |
无
zeusSearch组件
属性名 |
描述 |
类型 |
placeholder |
input框的placehoder |
String |
value |
获取当前input框的值,可以不传 |
String |
searchTitle |
search组件的标题 |
String |
width |
控制input框的长度 |
Number |
事件名 |
描述 |
search |
当输入框按下enter或者点击搜索按钮,即可触发 |
如果某个组件依赖了别的组件,是不是需要package.json,把它下下来。
alert组件
属性名 |
描述 |
类型 |
type |
类型,info,danger等等 |
String |
v-model |
控制当前alert显示或者不显示 |
String |
text |
alert显示的提示文案 |
String |
custom-class |
自定义class |
String |
timeout |
多长时间alert自动消失,单位毫秒 |
Number |
无
zeusInput组件
import zeusInput from 'zeusInput/zeusInput.vue';
export default {
components: {
'z-input': zeusInput,
},
data: function() {
return {
jobName: 'testng接口测试Job',
}
},
}
属性名 |
描述 |
类型 |
inputLabel |
输入框的标题 |
String |
value |
输入框的值 |
String |
width |
输入框的长度 |
Number |
spanWidth |
标题的长度 |
Number |
disableWhenNotEmpty |
当输入框的初始值不为空时,disable掉这个input |
Boolean |
clear |
为true时,清除input框 |
Boolean |
hasHelp |
为true时,显示问号 |
Boolean |
事件名 |
描述 |
helped |
点击help图标时,触发该事件 |
zeusRadios组件
import zeusRadios from 'zeusRadios/zeusRadios.vue';
export default {
components: {
'z-radios': zeusRadios,
},
data: function() {
return {
radios: [
{
text:'Java',
value: 'Java'
},
{
text:'NodeJS',
value: 'NodeJS'
},
{
text:'Android',
value: 'Android'
},
{
text:'iOS',
value: 'iOS'
}
],
chooseRadioVal: "Java"
}
},
}
属性名 |
描述 |
类型 |
labelForRadios |
单选项列表的标题 |
String |
radios |
单选项列表,数据格式见上面的类型 |
Array |
value |
单选项列表,当前被选的radio的值 |
String,Number,Boolean |
spanWidth |
单选项列表的标题的长度 |
Number |
disabled |
disabled 单选项,默认false |
Boolean |
neccessary |
是否需要必填的标识符,默认值false |
Boolean |
无
zeusTextarea
import zeusTextarea from 'zeusTextarea/zeusTextarea.vue'
export default {
components: {
'z-textarea': zeusTextarea
},
data: function() {
return {
commands: "mvn clean test 命令换行",
title: '构建命令',
neccessary: true,
}
},
}
属性名 |
描述 |
类型 |
title |
textarea的标题 |
String |
spanWidth |
标题的长度 |
Number |
value |
textarea的值 |
String |
width |
textarea的长度 |
Number |
placeholder |
textarea的placeholder |
String |
neccessary |
是否显示必填的标识符,默认为false,不显示 |
Boolean |
disabled |
是否disabled掉textarea,默认为false,不disabled |
Boolean |
无
zeusCheckboxes
//其中slot和checkboxes属性的value保持一致
import zeusCheckboxes from 'zeusCheckboxes/zeusCheckboxes.vue'
export default {
components: {
'z-checkboxes': zeusCheckboxes
},
data: function() {
//value 返回值1
return {
checkboxes: ["定时"],
currentCheckbox:["定时"]
}
//value 返回值2
return {
checkboxes: [
{value: 1,text: 'alice'},
{value: 2,text: 'lily'},
{value: 3,text: 'bob'},
],
currentCheckbox: {
1: "true",
2: "false",
3: ""
}
}
},
}
属性名 |
描述 |
类型 |
labelForCheckBoxes |
checkboxes的标题 |
String |
directions |
checkbox水平排列,还是垂直排列 |
String,默认值'horizontal',vertical |
checkboxes |
checkbox的选项值 |
Array([1,2,3]或者[{value: 123,text: number}] |
neccessary |
该group是否是必填性 |
Boolean,默认值true |
value |
checkboxes的值,是数组或者object,由变量returnArrayOrJson 决定 |
Array或者Object.其中 |
returnArrayOrJson |
返回值是array还是json,默认是array |
Boolean |
无
multiSelect 组件
支持ajax实时更新option
import multiSelect from 'vue-multiSelect/Multiselect.vue'
export default{
components: {
'm-select': multiSelect
},
data(){
return {
recipients:[] ,//数据格式和users一样
users:[]
}
},
methods: {
searchForUsers: function(search) {
axios.get(API.searchForUsers, {
params: {
search: search
}
})
.then(res => {
this.users = res.data //res.data的数据格式
[
// {
// userName: "zhangsan",
// realName: "张三"
// },
// {
// userName: "lisi",
// realName: "李四"
// }
// ],
})
.catch(e => {
// this.alert = JSON.parse(JSON.stringify(CONFIG.internalErrorMsg));
})
}
}
}
属性名 |
描述 |
类型 |
value |
输入框的值 |
Array |
options |
所有可供选择的筛选项 |
String |
multiple |
支持多选 |
Boolean |
neccessary |
是否显示必填项的标识符, 默认false |
Boolean |
title |
标题 |
String |
width |
输入框长度 |
Number |
disabled |
是否disabled输入框,默认false |
Boolean |
spanWidth |
标题长度 |
Number |
clear |
为true时,清除select框中所有选项,默认false |
Boolean |
label |
输入框中展示的是options属性中的哪个键值,比如上面例子中显示的是realName |
String |
事件名 |
描述 |
searchChange |
当用户输入的值发生变化时,该事件触发 |
zeusBreadcrumb
属性名 |
描述 |
类型 |
crumbList |
面包屑数据,格式如上述例子 |
Array |
图表
之前在 echart 的基础上二次封装一些图表组件,包括柱折混合图,水滴图等。后来发现,一旦引用封装后的图表组件,会使编译后的 js 文件十分大,影响性能, 因此不展示图表组件。但是有兴趣的同学,可以和我联系,代码可发你一份。