You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.0 KiB
40 lines
1.0 KiB
import { getDict } from '@/utils/dictionary'
|
|
export default {
|
|
data() {
|
|
return {
|
|
page: 1,
|
|
total: 10,
|
|
pageSize: 10,
|
|
tableData: [],
|
|
searchInfo: {}
|
|
}
|
|
},
|
|
methods: {
|
|
filterDict(value, type) {
|
|
const rowLabel = this[type + 'Options'] && this[type + 'Options'].filter(item => item.value === value)
|
|
return rowLabel && rowLabel[0] && rowLabel[0].label
|
|
},
|
|
async getDict(type) {
|
|
const dicts = await getDict(type)
|
|
this[type + 'Options'] = dicts
|
|
return dicts
|
|
},
|
|
handleSizeChange(val) {
|
|
this.pageSize = val
|
|
this.getTableData()
|
|
},
|
|
handleCurrentChange(val) {
|
|
this.page = val
|
|
this.getTableData()
|
|
},
|
|
async getTableData(page = this.page, pageSize = this.pageSize) {
|
|
const table = await this.listApi({ page, pageSize, ...this.searchInfo })
|
|
if (table.code === 0) {
|
|
this.tableData = table.data.list
|
|
this.total = table.data.total
|
|
this.page = table.data.page
|
|
this.pageSize = table.data.pageSize
|
|
}
|
|
}
|
|
}
|
|
}
|