fix: 展开明细合并月份+tab选中态+默认排序+已发生改名
- 展开明细合并budget_data和expense_data月份(修复只有费用没预算时看不到) - switchFinanceTab选择器限定#financeModal(修复弹窗tab误伤顶部筛选tab) - 项目管理表格默认按确收金额从高到低排序 - 执行→已发生, tip改淡黄色 - 登录后默认选权限范围内第一个工作台 - 版本号 v1.2.0.10
This commit is contained in:
@@ -264,10 +264,14 @@ function renderPlan() {
|
||||
{ label: '付款率', hideUnsigned: true, value: ctx => ctx.sumCost && ctx.sumPaid ? Math.round(ctx.sumPaid / ctx.sumCost * 100) + '%' : '—', color: 'text-slate-500' },
|
||||
].filter(c => true);
|
||||
|
||||
// 列排序
|
||||
if (!state.planSort) state.planSort = { key: null, asc: true };
|
||||
// 列排序(默认按确收金额从高到低)
|
||||
if (!state.planSort) state.planSort = { key: 'sig|rev', asc: false };
|
||||
const sortData = (data, key) => {
|
||||
if (!key || !state.planSort.key) return data;
|
||||
if (!key) return data;
|
||||
if (!state.planSort.key) {
|
||||
// 默认按确收金额从高到低
|
||||
return data.slice().sort(function(a, b) { return (parseFloat(b.rev) || 0) - (parseFloat(a.rev) || 0); });
|
||||
}
|
||||
var asc = state.planSort.asc ? 1 : -1;
|
||||
return data.slice().sort(function(a, b) {
|
||||
var va = a[key], vb = b[key];
|
||||
@@ -351,14 +355,19 @@ function renderPlan() {
|
||||
var expenseArr = [];
|
||||
try { budgetArr = JSON.parse(pf.budget_data || "[]"); } catch(e) {}
|
||||
try { expenseArr = JSON.parse(pf.expense_data || "[]"); } catch(e) {}
|
||||
var detailRows = budgetArr.filter(function(b) {
|
||||
var exp = expenseArr.find(function(e) { return e.month === (b.month || ''); }) || {};
|
||||
// 合并 budget 和 expense 的所有月份
|
||||
var allMonths = {};
|
||||
budgetArr.forEach(function(b) { allMonths[b.month || ''] = true; });
|
||||
expenseArr.forEach(function(e) { allMonths[e.month || ''] = true; });
|
||||
var detailRows = Object.keys(allMonths).filter(function(m) {
|
||||
var b = budgetArr.find(function(x) { return x.month === m; }) || {};
|
||||
var exp = expenseArr.find(function(x) { return x.month === m; }) || {};
|
||||
var bRev = parseFloat(b.rev || 0), bGross = parseFloat(b.gross || 0), bPay = parseFloat(b.payment || 0);
|
||||
var eCost = parseFloat(exp.cost || 0), ePaid = parseFloat(exp.paid || 0);
|
||||
return bRev || bGross || bPay || eCost || ePaid;
|
||||
}).map(function(b) {
|
||||
var m = b.month || '';
|
||||
var exp = expenseArr.find(function(e) { return e.month === m; }) || {};
|
||||
}).sort().map(function(m) {
|
||||
var b = budgetArr.find(function(x) { return x.month === m; }) || {};
|
||||
var exp = expenseArr.find(function(x) { return x.month === m; }) || {};
|
||||
var bRev = parseFloat(b.rev || 0), bGross = parseFloat(b.gross || 0), bPay = parseFloat(b.payment || 0);
|
||||
var eCost = parseFloat(exp.cost || 0), ePaid = parseFloat(exp.paid || 0);
|
||||
var bCf = bPay - ePaid;
|
||||
|
||||
Reference in New Issue
Block a user