Appearance

so-grid

so-grid组件 是 ipad 端展示数据的表格,接口简洁清晰。

代码示例

模板代码

<so-grid ref="grid" :cols="cols" :url="url" :params="params" @onClickRow="clickRow" @onClickCell="clickCell" @onCheck="checkItem" @onCheckAll="checkAll" :pagenav="true" :checkbox="true">
    <view slot="header">
    	...
    </view> 
</so-grid>

js代码

...
data(){
  return{
      url : '/api/userlist',
      params : {type:2},
      cols : [
          {title: '姓名',field: 'name',width:100}, 
          {title: '年龄',field: 'age',width:80}, 
          {title: '地址',field: 'address',width:260,align:'left'}, 
          {title: '电话',field: 'phone',width:120}, 
          {title: '日期',field: 'date',width:120,formatter:({value,rowIndex,colIndex,row})=>{
              return this.$t.fmtDate(value,'yyyy-MM-dd');
          }},
      ],
  }  
},
metods:{
    loadData(){
        this.$refs.grid.loadData(this.colsData);
    },
    refreshGrid(){//
        this.$refs.grid.refresh();
    },
	getD(){//
	    console.log('getChecked:',this.$refs.grid.getChecked());
	    console.log('getSelected:',this.$refs.grid.getSelected());
	    console.log('getData:',this.$refs.grid.getData());
	    console.log('getRows:',this.$refs.grid.getRows());
	},
	clickRow(index,row){//点击 row
	    // console.log(index,row);
	    console.log(this.$refs.grid.getSelected());
	},
	clickCell(data){//点击单元格
	    console.log(data);
	},
	checkAll(checkedAll){//选择全部
	    console.log(checkedAll);
	},
	checkItem(value,index,row){
	    // console.log(value,index,row)
	    console.log(this.$refs.grid.getChecked());//取选择项
	},
	onScrollToTop(){//滚到顶部行事件
	    console.log('滚动到顶部了...')
	},
	onScrollToBottom(){//滚到底部执行事件
	    console.log('滚动到底部了...')
	}
}
...

Props

参数说明类型默认值可选值
col列配置Array[]
colAutoFit列是否自适应屏幕宽Booleanfalsetrue
ajaxType请求类型,默认postString'post''get'
url请求urlString''-
params请求参数Object{}-
emptyMsg无信息提示String'暂无信息...'-
datagrid数据Array,Object[]-
defColWidth列默认宽(不设置宽度的时候)String,Number160-
colBorderRight是否显示列右边框Booleanfalsetrue
rownumbers是否显示行号Booleantruefalse
rownumbersWidth行号宽度String,Number40-
pagenav是否显示分页Booleantruefalse
pageStart请求起始页Number,String1-
pageSize分页每页数量Number,String20-
checkbox是否需要checkboxBooleanfalsetrue
checkDisabled禁用checkboxBooleanfalsetrue
checkOnSelectselect 行时同时check rowBooleantruefalse
showRefresh有分页时是否显示刷新按钮Booleanfalsetrue
initQuery是否直接请求数据,开启才请求Booleantruefalse

col 选项

参数说明类型默认值可选值
title列标题String''-
field列数据对应字段,暂不支持子对象String''-
width列宽,默认160rpxString'160rpx'-
formatterformat 值,必须要有 return ,参数:Function({value,rowIndex,colIndex,row})Function--
align对齐方式,默认是 居中String'center''left','right'

Events

方法名说明参数
onLoadSuccess当数据加载完执行Function({rows,total})
onClickRow点击行事件Function(index,row)
onClickCell点击单元格事件Function(cellData)
onCheckAll勾选全部时事件Function(cecked)
onCheck勾选行Function(value,name,rowData)
onScrollToToptable滚动到顶部执行事件null
onScrollToBottontable滚动到底部执行事件null
onScrollToLefttable滚动到最左侧(当有横向滚动时)执行事件null
onScrollToRighttable滚动到最左侧(当有横向滚动时)执行事件null

Method

数名说明参数
scrollToToptable滚动到顶部null
refresh刷新grid,不翻页null
loadData直接加载数据Function(data);
load重新加载数据Function({data,params,url})
reload重新加载(不改变当前page)Fnction({data,params,url})
getData获取数据Function(rows,total)
getRows获取行数据Function(rowData)
getSelected获取被选择数据Function({index,rows})
getChecked获取被勾选数据Function({indexs,rows})

slots

名称说明参数
header插入表格上方null
footer插入表格下方null
navbar插入底部nav中null
itemOpsrow操作 slot,单击时显示item(row数据)