import Vue from 'vue' import { cloneDeep } from 'lodash' export const newTableMixin = { data() { return { ipagination: { current: 1, pageSize: 10, pageSizeOptions: ['10', '20', '30', '50', '100'], showTotal: (total, range) => { return range[0] + '-' + range[1] + ' 共' + total + '条' }, showQuickJumper: true, showSizeChanger: true, total: 0, }, /* table选中keys*/ selectedRowKeys: [], /* table选中records*/ selectionRows: [], /* 排序参数 */ isorter: { column: 'createTime', order: 'desc', }, editableData: {}, // colList: ['categoryName', 'newPosition', 'differenceCount', 'differenceReason'], colList: ['categoryName'], } }, methods: { //table功能 onSelectChange(selectedRowKeys, selectionRows) { this.selectedRowKeys = selectedRowKeys this.selectionRows = selectionRows }, handleTableChange(pagination, filters, sorter) { //分页、排序、筛选变化时触发 if (Object.keys(sorter).length > 0) { if (sorter.order) { this.isorter.column = sorter.field this.isorter.order = 'ascend' === sorter.order ? 'asc' : 'desc' } else { this.isorter.column = 'createTime' this.isorter.order = 'desc' } } if (pagination && pagination.current) { this.ipagination = pagination } this.getList() }, //禁止点击表格某一行 getCheckboxProps(record) { return { props: { disabled: record.taskStatus !== 1, }, } }, getTaskkboxProps(record) { return { props: { disabled: record.taskStatus !== 1 || record.taskStatus !== 4, }, } }, // -------------------------------------------------------------------- formateTaskStatus(type) { switch (type) { case 1: return '未开始' case 2: return '进行中' case 3: return '已完成' case 4: return '已取消' default: return '' } }, onSearch() { this.ipagination.current = 1 this.getList() }, onReset() { this.queryParam = {} this.onSearch() this.$forceUpdate() }, edit(id, col) { this.editableData[id] = cloneDeep(this.dataSource.filter((item) => id === item.id)[0]) this.$forceUpdate() }, save(id) { Object.assign(this.dataSource.filter((item) => id === item.id)[0], this.editableData[id]) delete this.editableData[id] }, cancel(id) { delete this.editableData[id] }, }, }