UNPKG

@wiajs/ui

Version:

wia app ui packages

241 lines (240 loc) 5.86 kB
import { Page } from '@wiajs/core'; import DataTable from '@wiajs/ui/dataTable'; import ExcelExport from '@wiajs/lib/excelExport'; const _name = 'pay/index'; const _title = '结算列表'; // 全局数据 const _from = {}; let _; let _tb; // 表头 const _head = [ { checkbox: 'index', id: [ 0 ], hide: [ 4 ], link: [ 1 ], page: 10, pageLink: 10, sort: '入账时间' }, { name: '银行流水', type: 'string', sort: false }, { name: '入账金额', type: 'number', sort: true }, { name: '入账时间', type: 'datetime', sort: true }, { name: '入账名称', type: 'string', sort: false }, { name: '状态', type: 'string', sort: true }, { name: '摘要', type: 'string', sort: false } ]; let _data = []; export default class Index extends Page { constructor(opt){ opt = opt || {}; super(opt.app || $.app, opt.name || _name, opt.title || _title); console.log(`${_name} constructor:`, { opt }); } load(param) { super.load(param); console.log(`${_name} load:`, { param }); } // 在已就绪的视图上绑定事件 ready(v, param) { super.ready(v, param); console.log(`${_name} ready:`, { v, param }); _ = v; init.bind(this)(); bind(this); } show(v, param) { super.show(v, param); console.log(`${_name} show:`, { v, param }); $.assign(_from, param); show(); } back(v, param) { super.back(v, param); console.log(`${_name} back:`, { v, param }); } hide(v) { console.log(`${_name} hide:`, { v }); } } async function init() { try { _tb = new DataTable(this, { el: _.dataTable, name: 'tbPay', head: _head }); } catch (e) { console.log('init exp!', { e }); } } function bind(p) { try { _.btnExcel.click((ev)=>{ const head = [ '银行流水', '入账金额', '入账时间', '入账名称', '入账账号', '状态', '摘要' ]; const txt = _.lsUnit.dom.options[_.lsUnit.dom.selectedIndex].text; const excel = new ExcelExport(head, _data, { title: `${txt}${_.txStartDate.val()}${$.date('MM-dd', _.txEndDate.val())} 结算表`, fileName: `${txt}${_.txStartDate.val()}${$.date('MM-dd', _.txEndDate.val())}结算v${$.date('yyMMdd')}` }); excel.save(); }); _.btnSelAll.click((ev)=>{ _tb.selAll(); }); _.btnCancelSel.click((ev)=>{ _tb.cancelSel(); }); // checkbox事件 _tb.on('check', (sel)=>{ console.log('check', { sel }); let amount = 0; const cnt = sel.size; sel.forEach((i)=>{ const v = _tb.data[i]; amount += toFen(v[1]); }); amount = toYuan(amount); _.class('data-table-selected-count').text(cnt); _.class('data-table-selected-info').text(`条记录,金额:${amount}元`); }); // 行选择事件 _tb.on('select', (rs)=>{ console.log('select', { rs }); }); } catch (ex) { console.log('bind exp!', { ex }); } } /** * 结算查询 */ async function queryPay(rs) { try { if (rs) { _data = rs; _tb.setView(rs); } else { _tb.setView([]); } } catch (ex) { console.error('queryPay exp:', ex.message); } } /** */ async function dist() { try { const { sel } = _tb; if (sel && sel.size) { const arr = Array.from(sel); const today = arr.some((i)=>{ const v = _tb.data[i]; return new Date(v[2]) >= new Date($.date('yyyy-MM-dd')); }); if (today) { await promisify($.app.dialog.alert, 0)('目前暂不支持当日结算款转账!', '转 帐'); return; } const ps = []; let distAmount = 0; let cnt = 0; _tb.sel.forEach((i)=>{ const r = _tb.data[i]; let [, amount] = r; amount = toFen(amount); if (amount) { cnt++; distAmount += amount; ps.push([ r[0], amount, r[2] ]); } }); } } catch (ex) { console.error('dist exp:', ex?.message); } } function showTb(data) { _tb.setView(data); } async function show(param) { // 测试数据; const rs = { data: _data }; // debugger; // const rs = await _api.find({ // cdt: {pid: 1}, // 查询条件,pid: 1 表示限定自己,如果要看别人的,需要权限 // limit: 50, // 一次查询返回多少条数据 // skip: 0, // 后续查询,跳过条数 // sort: '-addTime', // 最新的在前面 // }); // const rs = await _api.get({id: 1}); if (rs.data) { showTb(rs.data); } }