UNPKG

cloud-ui.vusion

Version:
1,183 lines (1,137 loc) 44.8 kB
# 可变化宽度表格 ResizeTable ## 示例 ### 基本形式 ``` vue <template> <u-resize-table :data="tdata"> <u-resize-table-column title="日期" label="date"></u-resize-table-column> <u-resize-table-column title="姓名" label="name" :formatter="formatter"></u-resize-table-column> <u-resize-table-column title="地址" icon="help" icon-content="提示" label="address"></u-resize-table-column> <u-resize-table-column title="性别" label="female" ></u-resize-table-column> </u-resize-table> </template> <script> export default { data: function () { return { tdata: [{ date: '2016-05-02', name: '王小虎aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', address: '浙江省杭州市滨江区网商路 599号 11111111111111111111111111111111', female: '男', }, { date: '2016-05-04', name: '王大虎ssssssssssssssssssssssssssssssssssssssssssssssssssssss', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '男', }, { date: '2016-05-01', name: '天王盖地虎dddddddddddddddddddddddddddddddddddddddddddddddddddddddd', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '男', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '女', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '男', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '女', }], options: [ { text: '全部', value: '', }, { text: '男', value: '男' }, { text: '女', value: '女' }, ], value: '' }; }, methods: { formatter(row, column) { if (row.name === '天王盖地虎') return '逗比一号'; else return row.name; }, filterMethod(value, columnValue) { if (value === '') return true; return columnValue === value; }, } }; </script> ``` ### 加载状态表格 ``` vue <template> <u-resize-table :data="tdata" :loading="loading" load-text="加载中…"> <u-resize-table-column title="日期" label="date"></u-resize-table-column> <u-resize-table-column title="姓名" label="name"></u-resize-table-column> <u-resize-table-column title="地址" label="address"></u-resize-table-column> <u-resize-table-column title="性别" label="female" ></u-resize-table-column> </u-resize-table> </template> <script> export default { data: function () { return { tdata: [{ date: '2016-05-02', name: '王小虎aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', address: '浙江省杭州市滨江区网商路 599号 11111111111111111111111111111111', female: '男', }, { date: '2016-05-04', name: '王大虎ssssssssssssssssssssssssssssssssssssssssssssssssssssss', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '男', }, { date: '2016-05-01', name: '天王盖地虎dddddddddddddddddddddddddddddddddddddddddddddddddddddddd', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '男', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '女', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '男', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '女', }], loading: true, }; }, created() { setTimeout(() => { this.loading = false; }, 5000); }, }; </script> ``` ### 空数据状态表格 ``` vue <template> <u-resize-table :data="tdata"> <u-resize-table-column title="日期" label="date"></u-resize-table-column> <u-resize-table-column title="姓名" label="name"></u-resize-table-column> <u-resize-table-column title="地址" label="address"></u-resize-table-column> <u-resize-table-column title="性别" label="female" ></u-resize-table-column> <div slot="no-data-text"> 暂无数据,你可以手动添加数据,请点击<u-link>这里!</u-link> </div> </u-resize-table> </template> <script> export default { data: function () { return { tdata: [], }; }, }; </script> ``` ### 带复选框的表格 ``` vue <template> <u-resize-table :data="tdata" @selection-change="selectionChange" :all-checked.sync="allChecked"> <u-resize-table-column type="selection"></u-resize-table-column> <u-resize-table-column title="日期" label="date"></u-resize-table-column> <u-resize-table-column title="姓名" label="name" :formatter="formatter"></u-resize-table-column> <u-resize-table-column title="地址" label="address"></u-resize-table-column> <u-resize-table-column title="性别" max-width="180" label="female" ></u-resize-table-column> </u-resize-table> </template> <script> export default { data: function () { return { tdata: [{ date: '2016-05-02', name: '王小虎aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', address: '浙江省杭州市滨江区网商路 599号 11111111111111111111111111111111', female: '男', }, { date: '2016-05-04', name: '王大虎ssssssssssssssssssssssssssssssssssssssssssssssssssssss', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '男', }, { date: '2016-05-01', name: '天王盖地虎dddddddddddddddddddddddddddddddddddddddddddddddddddddddd', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '男', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '女', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '男', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '女', }], options: [ { text: '全部', value: '', }, { text: '男', value: '男' }, { text: '女', value: '女' }, ], value: '', allChecked: false, }; }, methods: { formatter(row, column) { if (row.name === '天王盖地虎') return '逗比一号'; else return row.name; }, filterMethod(value, columnValue) { if (value === '') return true; return columnValue === value; }, selectionChange(value) { console.log(value); }, }, watch: { allChecked(newValue) { console.log(newValue); }, }, }; </script> ``` ### 自定义表格内容显示 ``` vue <template> <u-resize-table :data="tdata"> <u-resize-table-column title="姓名" label="name" :min-width="86"> <template slot-scope="scope"> <u-status-icon name="success"></u-status-icon> <span style="display:inline-block;margin-left: 10px;overflow: hidden;max-width: calc(100% - 42px);text-overflow: ellipsis;white-space: nowrap;vertical-align: middle;">{{ scope.row.name}}</span> </template> </u-resize-table-column> <u-resize-table-column title="日期" label="date" type="time"></u-resize-table-column> <u-resize-table-column title="地址" label="address"> <template slot-scope="scope"> {{ scope.row.address && scope.row.address.slice(0, 10) }} </template> </u-resize-table-column> <u-resize-table-column title="操作" label="female" min-width="135"> <template slot-scope="scope"> <u-link-list> <u-link-list-item>设置</u-link-list-item> <u-link-list-item>删除</u-link-list-item> <u-link-list-item>更改规格</u-link-list-item> <u-link-list-item>转包年包月</u-link-list-item> </u-link-list> </template> </u-resize-table-column> </u-resize-table> </template> <script> export default { data: function () { return { tdata: [{ date: 1533427200000, name: '王小虎aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', address: '浙江省杭州市滨江区网商路 599号 11111111111111111111111111111111', female: 'male', }, { date: 1533340800000, name: '王大虎ssssssssssssssssssssssssssssssssssssssssssssssssssssss', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: 'male', }, { date: 1533254400000, name: '天王盖地虎dddddddddddddddddddddddddddddddddddddddddddddddddddddddd', address: '浙江省杭州市滨江区 西可科技园', female: 'female', }, { date: 1533168000000, name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: 'male', }, { date: 1533081600000, name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: 'female', } ], value: '' }; }, methods: { filter(value, row, column) { console.log(value, row, column); if (value === 'male') return '男'; else if(value === 'female') return '女'; }, } }; </script> ``` ### 排序表格 ``` vue <template> <u-resize-table :data="tdata" :default-sort="defaultSort" @sort-change="sortChange"> <u-resize-table-column title="日期" type="sortable" label="date"></u-resize-table-column> <u-resize-table-column title="姓名" type="sortable" label="name" :formatter="formatter"></u-resize-table-column> <u-resize-table-column title="地址" label="address"></u-resize-table-column> <u-resize-table-column title="性别" max-width="180" label="female" ></u-resize-table-column> </u-resize-table> </template> <script> export default { data: function () { return { tdata: [{ date: '2016-05-02', name: '王小虎aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', address: '浙江省杭州市滨江区网商路 599号 11111111111111111111111111111111', female: '男', }, { date: '2016-05-04', name: '王大虎ssssssssssssssssssssssssssssssssssssssssssssssssssssss', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '男', }, { date: '2016-05-01', name: '天王盖地虎dddddddddddddddddddddddddddddddddddddddddddddddddddddddd', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '男', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '女', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '男', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '女', }], options: [ { text: '全部', value: '', }, { text: '男', value: '男' }, { text: '女', value: '女' }, ], value: '', defaultSort: { title: '姓名', order: 'desc', } }; }, methods: { formatter(row, column) { if (row.name === '天王盖地虎') return '逗比一号'; else return row.name; }, sortChange(value) { console.log(value); }, } }; </script> ``` ### 过滤表格 ``` vue <template> <u-resize-table :data="tdata" @filter-change="filterChange"> <u-resize-table-column title="日期" label="date"></u-resize-table-column> <u-resize-table-column title="姓名" label="name" :formatter="formatter"></u-resize-table-column> <u-resize-table-column title="地址" label="address"></u-resize-table-column> <u-resize-table-column title="性别" max-width="180" type="filter" :options="options" :value="value" filter-max-width="180px" label="female" ></u-resize-table-column> </u-resize-table> </template> <script> export default { data: function () { return { tdata: [{ date: '2016-05-02', name: '王小虎aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', address: '浙江省杭州市滨江区网商路 599号 11111111111111111111111111111111', female: '男', }, { date: '2016-05-04', name: '王大虎ssssssssssssssssssssssssssssssssssssssssssssssssssssss', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '男', }, { date: '2016-05-01', name: '天王盖地虎dddddddddddddddddddddddddddddddddddddddddddddddddddddddd', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '男', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '女', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '男', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '女', }], options: [ { text: '全部', value: '', }, { text: '男', value: '男' }, { text: '女', value: '女' }, ], value: '' }; }, methods: { formatter(row, column) { if (row.name === '天王盖地虎') return '逗比一号'; else return row.name; }, filterChange(value) { console.log(value); }, } }; </script> ``` ### 扩展显示表格 ``` vue <template> <u-resize-table :data="tdata"> <u-resize-table-column title="姓名" label="name"></u-resize-table-column> <u-resize-table-column title="日期" label="date" type="time"></u-resize-table-column> <u-resize-table-column title="地址" label="address"></u-resize-table-column> <u-resize-table-column title="性别" label="female" :filter="filter"></u-resize-table-column> <u-resize-table-column title="详细信息" expand-class="infoIcon" type="expand" label="listlogs" default-text="" expand-strict expand-icon="up-down"> <template slot="expandContent" slot-scope="scope"> <div> <p v-for="item in scope.row.listlogs" v-text="item"></p> </div> </template> </u-resize-table-column> </u-resize-table> </template> <script> export default { data: function () { return { tdata: [{ date: 1533427200000, name: '王小虎aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', address: '浙江省杭州市滨江区网商路 599号 11111111111111111111111111111111', female: 'male', listlogs:[ '2018-04-19 14:52:49实例开始创建..', '2018-04-19 14:52:49云主机开始创建...', '2018-04-19 14:53:20云主机创建完成,云主机 UUID:05ab50b1-a981-492d-bfac-ebbbf94cea5e', '2018-04-19 14:53:20云硬盘开始创建...', ], }, { date: 1533340800000, name: '王大虎ssssssssssssssssssssssssssssssssssssssssssssssssssssss', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: 'male', listlogs:[ '2018-04-19 14:52:49实例开始创建..', '2018-04-19 14:52:49云主机开始创建...', '2018-04-19 14:53:20云主机创建完成,云主机 UUID:05ab50b1-a981-492d-bfac-ebbbf94cea5e', '2018-04-19 14:53:20云硬盘开始创建...', ], }, { date: 1533254400000, name: '天王盖地虎dddddddddddddddddddddddddddddddddddddddddddddddddddddddd', address: '浙江省杭州市滨江区 西可科技园', female: 'female', listlogs:[ '2018-04-19 14:52:49实例开始创建..', '2018-04-19 14:52:49云主机开始创建...', '2018-04-19 14:53:20云主机创建完成,云主机 UUID:05ab50b1-a981-492d-bfac-ebbbf94cea5e', '2018-04-19 14:53:20云硬盘开始创建...', ], }, { date: 1533168000000, name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: 'male', listlogs:[ '2018-04-19 14:52:49实例开始创建..', '2018-04-19 14:52:49云主机开始创建...', '2018-04-19 14:53:20云主机创建完成,云主机 UUID:05ab50b1-a981-492d-bfac-ebbbf94cea5e', '2018-04-19 14:53:20云硬盘开始创建...', ], }, { date: 1533081600000, name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: 'female', listlogs:[ '2018-04-19 14:52:49实例开始创建..', '2018-04-19 14:52:49云主机开始创建...', '2018-04-19 14:53:20云主机创建完成,云主机 UUID:05ab50b1-a981-492d-bfac-ebbbf94cea5e', '2018-04-19 14:53:20云硬盘开始创建...', ], } ], value: '' }; }, methods: { filter(value, row, column) { console.log(value, row, column); if (value === 'male') return '男'; else if(value === 'female') return '女'; }, } }; </script> ``` ### 自定义表头 ``` vue <template> <u-resize-table :data="tdata"> <u-resize-table-column title="姓名" label="name"> <template slot="headerTitle"> <u-tooltip content="身份证上的姓名"> <span>姓名</span> </u-tooltip> </template> </u-resize-table-column> <u-resize-table-column title="日期" label="date" type="time"></u-resize-table-column> <u-resize-table-column title="地址" label="address"></u-resize-table-column> <u-resize-table-column title="性别" label="female" :filter="filter"></u-resize-table-column> </u-resize-table> </template> <script> export default { data: function () { return { tdata: [{ date: 1533427200000, name: '王小虎aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', address: '浙江省杭州市滨江区网商路 599号 11111111111111111111111111111111', female: 'male', }, { date: 1533340800000, name: '王大虎ssssssssssssssssssssssssssssssssssssssssssssssssssssss', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: 'male', }, { date: 1533254400000, name: '天王盖地虎dddddddddddddddddddddddddddddddddddddddddddddddddddddddd', address: '浙江省杭州市滨江区 西可科技园', female: 'female', }, { date: 1533168000000, name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: 'male', }, { date: 1533081600000, name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: 'female', } ], value: '' }; }, methods: { filter(value, row, column) { console.log(value, row, column); if (value === 'male') return '男'; else if(value === 'female') return '女'; }, } }; </script> ``` ### 表格显示/隐藏切换 ``` vue <template> <div> <u-button @click="toggle">toggle</u-button> <u-resize-table style="marginTop: 20px;" :data="tdata" :visible="visible"> <u-resize-table-column title="姓名" label="name"></u-resize-table-column> <u-resize-table-column title="日期" label="date" type="time"></u-resize-table-column> <u-resize-table-column title="地址" label="address"></u-resize-table-column> <u-resize-table-column title="性别" label="female" :filter="filter"></u-resize-table-column> </u-resize-table> </div> </template> <script> export default { data: function () { return { tdata: [{ date: 1533427200000, name: '王小虎aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', address: '浙江省杭州市滨江区网商路 599号 11111111111111111111111111111111', female: 'male', }, { date: 1533340800000, name: '王大虎ssssssssssssssssssssssssssssssssssssssssssssssssssssss', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: 'male', }, { date: 1533254400000, name: '天王盖地虎dddddddddddddddddddddddddddddddddddddddddddddddddddddddd', address: '浙江省杭州市滨江区 西可科技园', female: 'female', }, { date: 1533168000000, name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: 'male', }, { date: 1533081600000, name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: 'female', } ], value: '', visible: false, }; }, methods: { toggle() { this.visible = !this.visible; }, filter(value, row, column) { console.log(value, row, column); if (value === 'male') return '男'; else if(value === 'female') return '女'; }, } }; </script> ``` ### 指定显示行数据表格 ``` vue <template> <u-resize-table :data="tdata" pattern="limit" :limit="5"> <u-resize-table-column title="日期" label="date"></u-resize-table-column> <u-resize-table-column title="姓名" label="name" :formatter="formatter"></u-resize-table-column> <u-resize-table-column title="地址" label="address"></u-resize-table-column> <u-resize-table-column title="性别" type="filter" :options="options" :value="value" label="female" ></u-resize-table-column> </u-resize-table> </template> <script> export default { data: function () { return { tdata: [{ date: '2016-05-02', name: '王小虎aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', address: '浙江省杭州市滨江区网商路 599号 11111111111111111111111111111111', female: '男', }, { date: '2016-05-04', name: '王大虎ssssssssssssssssssssssssssssssssssssssssssssssssssssss', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '男', }, { date: '2016-05-01', name: '天王盖地虎dddddddddddddddddddddddddddddddddddddddddddddddddddddddd', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '男', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '女', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '男', } ], options: [ { text: '全部', value: '', }, { text: '男', value: '男' }, { text: '女', value: '女' }, ], value: '' }; }, methods: { formatter(row, column) { if (row.name === '天王盖地虎') return '逗比一号'; else return row.name; }, filterMethod(value, columnValue) { if (value === '') return true; return columnValue === value; }, } }; </script> ``` ### 指定表格高度 ``` vue <template> <u-resize-table :data="tdata" max-height="300"> <u-resize-table-column title="日期" label="date"></u-resize-table-column> <u-resize-table-column title="姓名" label="name" :formatter="formatter"></u-resize-table-column> <u-resize-table-column title="地址" label="address"></u-resize-table-column> <u-resize-table-column title="性别" type="filter" :options="options" :value="value" label="female" ></u-resize-table-column> </u-resize-table> </template> <script> export default { data: function () { return { tdata: [{ date: '2016-05-02', name: '王小虎aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', address: '浙江省杭州市滨江区网商路 599号 11111111111111111111111111111111', female: '男', }, { date: '2016-05-04', name: '王大虎ssssssssssssssssssssssssssssssssssssssssssssssssssssss', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '男', }, { date: '2016-05-01', name: '天王盖地虎dddddddddddddddddddddddddddddddddddddddddddddddddddddddd', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '男', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '女', }, { date: '2016-05-03', name: '小鸡炖蘑菇', address: '浙江省杭州市滨江区 东忠科技园', female: '女', }, { date: '2016-05-02', name: '王小虎', address: '浙江省杭州市滨江区网商路 599号', female: '男', }, { date: '2016-05-04', name: '王大虎', address: '浙江省杭州市滨江区英飞特 D栋3楼', female: '女', }, { date: '2016-05-01', name: '天王盖地虎', address: '浙江省杭州市滨江区 西可科技园', female: '男', } ], options: [ { text: '全部', value: '', }, { text: '男', value: '男' }, { text: '女', value: '女' }, ], value: '' }; }, methods: { formatter(row, column) { if (row.name === '天王盖地虎') return '逗比一号'; else return row.name; }, filterMethod(value, columnValue) { if (value === '') return true; return columnValue === value; }, } }; </script> ``` ## ResizeTable API ### Attrs/Props | Attr/Prop | Type | Default | Description | | --------- | ---- | ------- | ----------- | | data | Array | '' | 表格默认要显示的数据 | | allChecked.sync | Boolean | false | 默认是否全部选中 | | defaultSort | Object | '' | 默认的排序列和顺序值,其title属性指定默认排序的列,order指定默认排序的顺序 | | noDataText | String | '' | 当data为空数组时,展示的信息 | | loading| Boolean | false | 是否展示加载中的状态信息 | | loadText| String | `` | 加载中的文字信息提示 | | showHeader| Boolean | `true` | 是否展示表格头 | | rowClassName | Function | `` | 给表格行添加自定义class函数,第一个参数表示索引,即在第几行中,第二个参数是表格当前行数据 | height| Integer/String | | 表格组件的高度 | | maxHeight| Integer/String | | 表格组件的最大高度 | | minHeight| Integer/String | | 表格组件的最小高度 | | visible| Boolean | true | 默认显示 | | defaultText | String | `'-'` | 默认当单元格取值为空时,默认显示的内容,此处是设置整个表格 | | color | String | `` | 值为light的时,表格头背景是#fff | | expandPattern | String | `'toggle'` | 规定expand中icon每次展开数量的限制,默认只能展开一个,传入`'normal'`可取消此限制 | | ellipsis | Boolean | `false` | 是否换行,默认换行,值为true则开启不换行,超出部分显示为省略号 | | sortMethod | Function | `` | 自定义排序方法 | | sortRemoteMethod | Funtion| `` | 异步执行排序传入的方法,第一个参数是列字段,第二个参数是排序顺序,第三个参数是列对象 | | filterMethod | Function | `` | 自定义过滤方法 | ### Slots #### (default) 插入`<u-resize-table-column>`子组件。 #### limit-text 在pattern属性值为limit时,数据的数目大于limit的值时默认在表格最后一行显示的提示内容 #### all-text 在pattern属性值为limit时,显示所有数据后默认在表格最后一行显示的提示内容 #### no-data-text 数据为空时自定义显示文本 ### Events #### @sort-change 点击排序标签触发 | Param | Type | Description | | ----- | ---- | ----------- | | $event.column | Object | 当前列column的实例,含有当前列的所有信息,实质是table-view-column实例 | | $event.label | String | 当前列的标签值 | | $event.order | String | 当前列排序值: 'asc'或'desc' | #### @filter-change 点击过滤标签触发 | Param | Type | Description | | ----- | ---- | ----------- | | $event.column | Object | 当前列column的实例,含有当前列的所有信息,实质是table-view-column实例 | | $event.value | String | 选中的标签值 | | $event.index | Number | 当前列的索引值 | #### @selection-change 点击checkbox触发 | Param | Type | Description | | ----- | ---- | ----------- | | $event | Array | 选中的行的数据集合 | #### @row-click 点击表格行触发 | Param | Type | Description | | ----- | ---- | ----------- | | $event.data | Object | 选中的行的数据集合 | | $event.index | Int | 行数据所在的索引值 | ### @toggle-expand | Param | Type | Description | | ----- | ---- | ----------- | | $event.index | Int | 选中的行的数据索引 | | $event.direction | String | icon的方向,向哪个方向展开或收起 | | $event.row | Object | 选中行的数据 | ## TableViewColumn API ### Props/Attrs | Prop/Attr | Type | Default | Description | | --------- | ---- | ------- | ----------- | | title | String | `` | 列的标题 | | options | Array\{name, value} | `` | 过滤项列表 | | value | String | `` | 默认过滤项选中的值 | | label | String | `` | 对象data中对象的属性 | | type | String | `` | 可选值有`'selection'`,`'expand'`,`'time'`,`'sortable'`,`'filter'`,,值为`'selection'`,表示此列是否是可选择的, 对于日期类型的值可以设置值为`'time'`,配合timeFormat属性,转换成想要的日期格式, `'expand'`表示在当前行出现icon标识,点击icon当前行下新增新一行数据 | | width | String | `` | 是指列的宽度值 | | filter | Function | `` | 自定义列的值 | | sortMethod | Function | `` | 自定义排序方法 | | sortRemoteMethod | Funtion| `` | 异步执行排序传入的方法,第一个参数是列字段,第二个参数是排序顺序,第三个参数是列对象 | | filterMethod | Function | `` | 自定义过滤方法 | | timeFormat | String | `'YYYY-MM-DD HH:mm:ss'` | 定义type值为time时,返回的指定日期格式的值 | | expandIcon | String | `'right-down'` | icon的图标展开方向,提供两种类型,一种是默认向右点击向下`'right-down'`,另一种是默认向下点击向上`'up-down'` | | expandStrict | Boolean | `false` | 开启expand严格匹配模式, 只有对应的label字段有值才显示icon | | expandLabel | String | `` | expand模式下使用,当出现组合形式的时候,使用此字段指定icon展开依赖的属性字段 | | expandClass | String | `` | 定义expand的icon的样式 | | defaultText | String | `'-'` | 默认当单元格取值为空时,默认显示的内容,此处是设置某一列的显示 | | headClass | String | `''` | 给表格头部`'th'`添加自定义`'class'`名称,方便对表格头部自定义样式 | ### Slots | Slot | Description | | ---- | ----------- | | headerTitle | 插入自定义`th`标签内容 | | expandContent | 插入自定义icon展开的内容 |