fix: 计划费用保存卡顿+月度总览增加回款现金流行

- plan_expense.js: savePlanExpense/deletePlanExpItem改用api()+load()
- 去掉多余的applyUserTenants和手动fetch bootstrap
- plan.js月度总览增加回款和项目现金流两行
- 版本号 v1.0.0.33
This commit is contained in:
mac
2026-07-08 17:45:48 +08:00
parent cfd5137edc
commit 1e82ca73d9
3 changed files with 30 additions and 28 deletions

View File

@@ -184,36 +184,35 @@ window.savePlanExpense = async function(event) {
if (data.amount === '' || data.amount === undefined) data.amount = 0;
if (data.incurred_amount === '' || data.incurred_amount === undefined) data.incurred_amount = 0;
if (!data.status) data.status = '计入费用';
var isEdit = !!data.expense_id;
var id = data.expense_id;
delete data.expense_id;
data.tenant = state.tenant;
var id = form.querySelector('[name="expense_id"]').value;
var url = isEdit ? "/api/planExpense/" + id : "/api/planExpense";
var method = isEdit ? "PUT" : "POST";
var resp = await fetch(url, { method: method, headers: { "Content-Type": "application/json" }, body: JSON.stringify({ data: Object.assign({}, data, { tenant: state.tenant }) }) });
if (!resp.ok) { var err = await resp.text(); alert("保存失败:" + err); return; }
var bResp = await fetch("/api/bootstrap?tenant=" + encodeURIComponent(state.tenant));
if (bResp.ok) {
var bd = await bResp.json();
state.data = bd;
applyUserTenants();
renderPlanExpense();
try {
if (id) {
await api("/api/planExpense/" + id, { method: "PUT", body: JSON.stringify({ data }) });
} else {
await api("/api/planExpense", { method: "POST", body: JSON.stringify({ data }) });
}
} catch (error) {
toast("保存失败:" + error.message, "error");
return;
}
closePlanExpModal();
await load();
renderPlanExpense();
};
window.deletePlanExpItem = async function() {
var id = document.querySelector("#planExpenseModal form [name='expense_id']").value;
if (!id || !confirm("确定删除?")) return;
var resp = await fetch("/api/planExpense/" + id, { method: "DELETE" });
if (!resp.ok) { alert("删除失败"); return; }
var bResp = await fetch("/api/bootstrap?tenant=" + encodeURIComponent(state.tenant));
if (bResp.ok) {
var bd = await bResp.json();
state.data = bd;
applyUserTenants();
renderPlanExpense();
try {
await api("/api/planExpense/" + id, { method: "DELETE" });
} catch (error) {
toast("删除失败:" + error.message, "error");
return;
}
closePlanExpModal();
await load();
renderPlanExpense();
};