'
- + '| ' + (index + 1) + ' | '
+ + '' + r.id + ' | '
+ '' + esc(r.platform) + ' | '
+ '▶ ' + esc(r.item) + ' | '
+ '' + esc(r.memo || '-') + ' | '
@@ -678,6 +686,20 @@
var cats = (OPTIONS.categories || []).slice();
(fCategory.value ? [fCategory.value] : []).forEach(function (v) { if (cats.indexOf(v) < 0) { cats.push(v); } });
fill(fCategory, cats, fCategory.value);
+ rebuildItemOptions();
+ }
+
+ // 账单项目筛选:和其他筛选一样用下拉,选项按当前选中的平台收窄
+ function rebuildItemOptions() {
+ var platform = fPlatform.value || '';
+ var seen = {};
+ ROWS.forEach(function (r) {
+ if (platform && r.platform !== platform) { return; }
+ if (r.item) { seen[r.item] = true; }
+ });
+ var items = Object.keys(seen).sort();
+ if (fItem.value && items.indexOf(fItem.value) < 0) { items.unshift(fItem.value); }
+ fill(fItem, items, fItem.value);
}
function fill(select, values, current) {
@@ -1092,12 +1114,15 @@
document.getElementById('amHistoryBtn').addEventListener('click', openHistory);
/* ---------- 筛选 ---------- */
- [kw, fPlatform, fCategory, fBasis, fOnly].forEach(function (el) {
+ [kw, fPlatform, fItem, fCategory, fBasis, fOnly].forEach(function (el) {
el.addEventListener('input', render);
el.addEventListener('change', render);
});
+ // 换平台时,账单项目下拉的选项跟着换(原来选的项目保留在列表里)
+ fPlatform.addEventListener('change', rebuildItemOptions);
document.getElementById('amResetFilter').addEventListener('click', function () {
- kw.value = ''; fPlatform.value = ''; fCategory.value = ''; fBasis.value = ''; fOnly.value = '';
+ kw.value = ''; fPlatform.value = ''; fItem.value = ''; fCategory.value = ''; fBasis.value = ''; fOnly.value = '';
+ rebuildItemOptions();
render();
});
@@ -1107,6 +1132,7 @@
});
render();
+ rebuildItemOptions();
// 后台预取账套科目清单(160KB 左右)。不做这一步的话,第一次点「编辑」要等它下载完
// 才有反应,用户会以为按钮坏了。