UNPKG

cloud-ui.vusion

Version:
1,248 lines (1,189 loc) 49.4 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 <<<<<<< HEAD | 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 | `` | 自定义过滤方法 | ======= #### 视图相关属性 | Attr/Prop | Type | Default | Description | | --------- | ---- | ------- | ----------- | | color | String | | 值为`'light'`的时,表格头背景是`#fff` | | visible| Boolean | `true` | 表格是否可见 | | showHeader| Boolean | `true` | 是否展示表格头 | | layout| String | `'fixed'` | 表格的布局方式, 可选值: `'fixed'`, `'auto'` | | border | Boolean | `'false'` | 是否展示表格边框 | | width | Integer/String | | 表格组件的宽度 | | height| Integer/String | | 表格组件的高度 | | maxHeight| Integer/String | | 表格组件的最大高度 | | minHeight| Integer/String | | 表格组件的最小高度 | | defaultText | String | `'-'` | 默认当单元格取值为空时,默认显示的内容,此处是设置整个表格 | | loading| Boolean | `false` | 是否展示加载中的状态信息 | | loadText| String | `''` | 加载中的文字信息提示 | | noDataText | String | `''` | 当`data`属性为空数组时,展示的信息 | | pattern| String | `'normal'` | 值设置为`'limit'`可支持显示指定数目的数据,可选值: `'normal'`, `'limit'` | | limit| String, Number | `5` | 在`pattern`属性值为`'limit'`时,默认显示数据的数目 | | limitText| String | `'查看更多'` | 在`pattern`属性值为`'limit'`时,数据的数目大于`'limit'`属性 的值时默认在表格最后一行显示的提示内容 | | allText| String | `'收起'`| 在`pattern`属性值为`'limit'`时,显示所有数据后默认在表格最后一行显示的提示内容 | | expandPattern | String | `'toggle'` | 规定`type`属性值为`'expand'`列的展开行为,可选值: `'toggle'`,`'normal'`。值为`'toggle'`时,展开一行后其他行将收回。 值为`'normal'`时,每行都可以展开。| | rowClassName | Function | | 给表格行添加自定义class函数,第一个参数表示索引,即在第几行中,第二个参数是表格当前行数据 | #### 数据相关属性 | Attr/Prop | Type | Default | Description | | --------- | ---- | ------- | ----------- | | data | Array | | 表格默认要显示的数据 | | allChecked.sync | Boolean | `false` | 默认是否全部选中 | | defaultSort | Object\< title, order \> | | 默认的排序列和顺序值,其中`title`属性指定默认排序的列。`order`指定默认排序的顺序,可选值: `'desc'`,`'asc'`。 | | forceFilter | Boolean | `true` | 数据发生变化时,存在数据过滤列,是否需要进行过滤,默认是需要的,但是异步获取的情况下,会出现死循环,需要将此值置为`false` | >>>>>>> bugfix/doc ### Slots #### (default) 插入`<u-resize-table-column>`子组件。 #### limit-text 在pattern属性值为limit时,数据的数目大于limit的值时默认在表格最后一行显示的提示内容 #### all-text 在pattern属性值为limit时,显示所有数据后默认在表格最后一行显示的提示内容 #### no-data-text 数据为空时自定义显示文本 #### expandIcon 在列中`type`属性值为`'expand'`时,替换默认的切换图标 ### 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 | 选中行的数据 | ## ResizeTableColumn API ### Props/Attrs ### 视图相关属性 | Prop/Attr | Type | Default | Description | | --------- | ---- | ------- | ----------- | | width | String | | 是指列的宽度值 | | filterMaxWidth | String, Number | | 过滤弹出框最大宽度 | | border | Boolean | `false` | 是否有边框,默认无 | | fixed | String | | 将列固定在左边或右边,参见例子`固定左右列`,可选值:`'left'`,`'right'`,`''` | | move | Boolean | `true` | 表格列是否可以改变宽度 | | icon | String | | 表格头提示`icon`的`url` | | iconContent | String | `'提示信息'` | 表格头的提示消息 | | iconPlacement | Stirng |`'bottom'`| 表格头的提示消息弹出方向,可选值:`'top'`, `'bottom'`, `'left'`, `'right'`, `'top-start'`, `'top-end'`, `'bottom-start'`, `'bottom-end'`, `'left-start'`,`'left-end'`, `'right-start'`, `'right-end'` | | ellipsis | Boolean | `false` | 是否换行,默认换行,值为`true`则开启不换行,超出部分显示为省略号 | | defaultText | String | `'-'` | 默认当单元格取值为空时,默认显示的内容,此处是设置某一列的显示 | | headClass | String | `''` | 给表格头部`'th'`添表格内容过多加自定义`'class'`名称,方便对表格头部自定义样式 | | placement | String | `'bottom-start'` | 可过滤列选项弹出层的弹出方向,可选值:`'top'`, `'bottom'`, `'left'`, `'right'`, `'top-start'`, `'top-end'`, `'bottom-start'`, `'bottom-end'`, `'left-start'`,`'left-end'`, `'right-start'`, `'right-end'` | | expandIcon | String | `'right-down'` | `icon`的图标展开方向,提供两种类型,一种是默认向右点击向下`'right-down'`,另一种是默认向下点击向上`'up-down'` | | expandStrict | Boolean | `false` | 当`type`属性值为`'expand'`时,开启`'expand'`严格匹配模式, 只有对应的`label`字段有值才显示`icon` | | expandLabel | String | | 当`type`属性值为`'expand'`时,当出现组合形式的时候,使用此字段指定`icon`展开依赖的属性字段 | | expandClass | String | | 当`type`属性值为`'expand'`时,定义`icon`的样式 | #### 数据相关属性 | Prop/Attr | Type | Default | Description | | --------- | ---- | ------- | ----------- | | title | String | | 列的标题 | | value | String | | 默认过滤项选中的值 | | label | String | | 对象`data`中对象的属性 | | field | String | | `options`中显示文本的字段 | | type | String | | 可选值:`'selection'`,`'expand'`,`'time'`。值为`'selection'`,表示此列是否是可选择的, 对于日期类型的值可以设置值为`'time'`,配合`timeFormat`属性,转换成想要的日期格式, `'expand'`表示在当前行出现`icon`标识,点击`icon`当前行下新增新一行数据 | | timeFormat | String | `'YYYY-MM-DD HH:mm:ss'` | 定义`type`属性值为`'time'`时,返回的指定日期格式的值 | | sortable | Boolean | `false` | 列是否可排序 | | filter | Boolean | `false` | 列是否可过滤 | | headSelection | Boolean | `true` | 列表是否可全选 | | options | Array\{name, value} | | 过滤项列表 | | formatter | Function | | 自定义格式化列数据,第一个参数是含有该行数据的对象,第二个参数是列实例 | | sortMethod | Function | | 自定义排序方法,第一个参数为该列前一行数据,第二个参数为该列后一行数据,方法需要返回值,返回类型为`Boolean`| | sortRemoteMethod | Function| | 异步执行排序传入的方法,第一个参数是列字段,第二个参数是排序顺序,第三个参数是列对象 | | filterMethod | Function | | 自定义过滤方法,第一个参数为该列数据,第二个参数为列实例 | ### Slots #### headerTitle 插入自定义`th`标签内容。 #### expandContent 插入自定义`icon`展开的内容。