| | |
| | | export default { |
| | | name: 'BaseTable', |
| | | extends: BasePage, |
| | | data () { |
| | | data() { |
| | | return { |
| | | // 接口 |
| | | api: null, |
| | |
| | | * |
| | | * @param extParams 配置参数 |
| | | */ |
| | | config (extParams) { |
| | | config(extParams) { |
| | | if (extParams == null) { |
| | | throw new Error('Parameter can not be null of method \'config\' .') |
| | | } |
| | |
| | | /** |
| | | * 搜索(点击搜索按钮时触发) |
| | | */ |
| | | search () { |
| | | search() { |
| | | this.handlePageChange(1) |
| | | }, |
| | | /** |
| | | * 导出Excel(点击导出按钮时触发) |
| | | */ |
| | | exportExcel () { |
| | | exportExcel() { |
| | | this.__checkApi() |
| | | this.$dialog.exportConfirm('确认导出吗?') |
| | | .then(() => { |
| | |
| | | /** |
| | | * 重置搜索条件(点击重置按钮时触发) |
| | | */ |
| | | reset () { |
| | | reset() { |
| | | this.$refs.searchForm.resetFields() |
| | | this.search() |
| | | }, |
| | |
| | | * |
| | | * @param pageSize 页容量 |
| | | */ |
| | | handleSizeChange (pageSize) { |
| | | handleSizeChange(pageSize) { |
| | | this.tableData.pagination.pageSize = pageSize |
| | | this.search() |
| | | }, |
| | |
| | | * |
| | | * @param selectedRows 已选中的行数组 |
| | | */ |
| | | handleSelectionChange (selectedRows) { |
| | | handleSelectionChange(selectedRows) { |
| | | this.tableData.selectedRows = selectedRows |
| | | }, |
| | | /** |
| | |
| | | * |
| | | * @param sortData 排序参数 |
| | | */ |
| | | handleSortChange (sortData) { |
| | | handleSortChange(sortData) { |
| | | this.tableData.sorts = [] |
| | | if (sortData.order != null) { |
| | | this.tableData.sorts.push({ |
| | |
| | | * |
| | | * @param pageIndex 新页码 |
| | | */ |
| | | handlePageChange (pageIndex) { |
| | | handlePageChange(pageIndex) { |
| | | this.__checkApi() |
| | | this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex |
| | | this.isWorking.search = true |
| | |
| | | * @param row 行对象 |
| | | * @param childConfirm 删除子节点时是否进行二次确认 |
| | | */ |
| | | deleteById (row, childConfirm = true) { |
| | | deleteById(row, childConfirm = true) { |
| | | this.__checkApi() |
| | | let message = `确认删除${this.module}【${row[this.configData['field.main']]}】吗?` |
| | | if (childConfirm && row.children != null && row.children.length > 0) { |
| | |
| | | this.isWorking.delete = false |
| | | }) |
| | | }) |
| | | .catch(() => {}) |
| | | .catch(() => { }) |
| | | }, |
| | | /** |
| | | * 批量删除(点击批量删除时触发) |
| | | * |
| | | * @param childConfirm 删除子节点时是否进行二次确认 |
| | | */ |
| | | deleteByIdInBatch (childConfirm = true) { |
| | | deleteByIdInBatch(childConfirm = true) { |
| | | this.__checkApi() |
| | | if (this.tableData.selectedRows.length === 0) { |
| | | this.$tip.warning('请至少选择一条数据') |
| | |
| | | this.isWorking.delete = false |
| | | }) |
| | | }) |
| | | .catch(() => {}) |
| | | .catch(() => { }) |
| | | }, |
| | | /** |
| | | * 删除后处理,在单行删除或多行删除后调用 |
| | |
| | | * @param deleteCount 删除数量 |
| | | * @private |
| | | */ |
| | | __afterDelete (deleteCount = 1) { |
| | | __afterDelete(deleteCount = 1) { |
| | | this.$tip.apiSuccess('删除成功') |
| | | // 删除当前页最后一条记录时查询上一页数据 |
| | | if (this.tableData.list.length - deleteCount === 0) { |
| | |
| | | * |
| | | * @private |
| | | */ |
| | | __checkApi () { |
| | | __checkApi() { |
| | | console.log(this.api); |
| | | if (this.api == null) { |
| | | throw new Error('The page is not initialized, you can use method \'this.config\' to initialize this page.') |
| | | } |
| | | }, |
| | | /** |
| | | * 数字相加 |
| | | * @param {*} arg1 |
| | | * @param {*} arg2 |
| | | * @returns |
| | | */ |
| | | accAdd(arg1, arg2) { |
| | | return this.changeNum(arg1, arg2) |
| | | }, |
| | | |
| | | /** |
| | | * 数字相减 |
| | | * @param {*} arg1 |
| | | * @param {*} arg2 |
| | | * @returns |
| | | */ |
| | | accSub(arg1, arg2) { |
| | | return this.changeNum(arg1, arg2, false) |
| | | }, |
| | | |
| | | /** |
| | | * 数字相乘 |
| | | * @param {*} arg1 |
| | | * @param {*} arg2 |
| | | * @returns |
| | | */ |
| | | accMul(arg1, arg2) { |
| | | let m = 0; |
| | | m = accAdd(m, getDecimalLength(arg1)) |
| | | m = accAdd(m, getDecimalLength(arg2)) |
| | | return getNum(arg1) * getNum(arg2) / Math.pow(10, m) |
| | | }, |
| | | |
| | | /** |
| | | * 数字相除 |
| | | * @param {*} arg1 |
| | | * @param {*} arg2 |
| | | * @returns |
| | | */ |
| | | accDiv(arg1, arg2) { |
| | | let t1, t2; |
| | | t1 = this.getDecimalLength(arg1) |
| | | t2 = this.getDecimalLength(arg2) |
| | | if (t1 - t2 > 0) { |
| | | return (this.getNum(arg1) / this.getNum(arg2)) / Math.pow(10, t1 - t2) |
| | | } else { |
| | | return (this.getNum(arg1) / this.getNum(arg2)) * Math.pow(10, t2 - t1) |
| | | } |
| | | }, |
| | | |
| | | changeNum(arg1 = '', arg2 = '', isAdd = true) { |
| | | function changeInteger(arg, r, maxR) { |
| | | if (r != maxR) { |
| | | let addZero = '' |
| | | for (let i = 0; i < maxR - r; i++) { |
| | | addZero += '0' |
| | | } |
| | | arg = Number(arg.toString().replace('.', '') + addZero) |
| | | } else { |
| | | arg = this.getNum(arg) |
| | | } |
| | | return arg |
| | | } |
| | | let r1, r2, maxR, m; |
| | | r1 = this.getDecimalLength(arg1) |
| | | r2 = this.getDecimalLength(arg2) |
| | | maxR = Math.max(r1, r2) |
| | | arg1 = changeInteger(arg1, r1, maxR) |
| | | arg2 = changeInteger(arg2, r2, maxR) |
| | | m = Math.pow(10, maxR) |
| | | if (isAdd) { |
| | | return (arg1 + arg2) / m |
| | | } else { |
| | | return (arg1 - arg2) / m |
| | | } |
| | | }, |
| | | |
| | | getDecimalLength(arg = '') { |
| | | try { |
| | | return arg.toString().split(".")[1].length |
| | | } catch (e) { |
| | | return 0 |
| | | } |
| | | }, |
| | | |
| | | getNum(arg = '') { |
| | | return Number(arg.toString().replace(".", "")) |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |