### [[2025]]年 - [[2025-08|08月]], [[2025-08-11|<]] [[第224天]] [[2025-08-13|>]] , 火曜日 --- ## 記事 ```dataviewjs const container = this.container; // ========== 生成月份列表 ========== const allPages = dv.pages(); const monthSet = new Set(); for (const p of allPages) { const match = p.file.name.match(/^2025-(\d{2})/); if (match) monthSet.add(`2025-${match[1]}`); } const sortedMonths = Array.from(monthSet).sort(); // ========== 创建下拉框 ========== const monthSelect = document.createElement("select"); monthSelect.style.marginBottom = "1em"; monthSelect.style.padding = "4px"; for (const m of sortedMonths) { const option = document.createElement("option"); option.value = m; option.text = m; monthSelect.appendChild(option); } container.appendChild(monthSelect); // ========== 表格容器 ========== const tableDiv = document.createElement("div"); container.appendChild(tableDiv); // ========== 渲染表格函数 ========== function renderTableForMonth(month) { const pages = dv.pages() .where(p => p.file.name.startsWith(month)); let amex = 0, tongyi = 0, nashiga = 0; let use_tongyi = 0, use_nashiga = 0; let sal_tongyi = 0, sal_nashiga = 0; let income_nashiga = 0, income_tongyi = 0; let special_tongyi = 0; for (const d of pages) { amex += d.Oamex || 0; tongyi += d.Otongyi || 0; nashiga += d.Onashiga || 0; use_tongyi += d.Utongyi || 0; use_nashiga += d.Unashiga || 0; sal_tongyi += d.Stongyi || 0; sal_nashiga += d.Snashiga || 0; income_nashiga += d.Inashiga * 20 || 0; income_tongyi += d.Itongyi * 20 || 0; special_tongyi += d.Otongyi1 || 0; } const oOUTall = amex + tongyi + nashiga; const oUSEall = use_tongyi + use_nashiga; const oSALall = sal_tongyi + sal_nashiga; const oALL = oOUTall + oUSEall + oSALall; const iALL = income_nashiga + income_tongyi; const balance = income_nashiga - oALL; const tongyiTOnashigaM = (amex + nashiga - tongyi) * 0.5; const tongyiTOnashigaU = (use_nashiga - use_tongyi) * 0.5; const tongyiTOnashigaS = (sal_nashiga - sal_tongyi) * 0.5; const tongyiTOnashigaI = income_nashiga * 0.5; const xyFEEnashiga = -income_nashiga * 0.016; const tongyiTOnashigaALL = tongyiTOnashigaM + tongyiTOnashigaU + tongyiTOnashigaS + tongyiTOnashigaI + special_tongyi + xyFEEnashiga * 0.5; let tableHTML = ` <table style="width:100%; border-collapse: collapse; text-align: center; border: 1px solid #ccc;"> <thead> <tr style="background:#1e5587;"> <th style="border:1px solid #ccc; padding:4px;">分类</th> <th style="border:1px solid #ccc; padding:4px;">细项</th> <th style="border:1px solid #ccc; padding:4px;">金额 (¥)</th> </tr> </thead> <tbody> <tr><td rowspan="4" style="border:1px solid #ccc; padding:4px;">货款</td><td style="border:1px solid #ccc; padding:4px;">Amex用了</td><td style="border:1px solid #ccc; padding:4px;">${amex.toLocaleString()}</td></tr> <tr><td style="border:1px solid #ccc; padding:4px;">Tongyi用了</td><td style="border:1px solid #ccc; padding:4px;">${tongyi.toLocaleString()}</td></tr> <tr><td style="border:1px solid #ccc; padding:4px;">Tongyi自用</td><td style="border:1px solid #ccc; padding:4px;">${special_tongyi.toLocaleString()}</td></tr> <tr><td style="border:1px solid #ccc; padding:4px;">Nashiga用了</td><td style="border:1px solid #ccc; padding:4px;">${nashiga.toLocaleString()}</td></tr> <tr style="background:#353b47;"><td colspan="2" style="border:1px solid #ccc; padding:4px;">tongyi给nashiga货款(amex一半nashiga一半 - tongyi一半)</td><td style="border:1px solid #ccc; padding:4px;"><b>${tongyiTOnashigaM.toLocaleString()}</b></td></tr> <tr><td rowspan="2" style="border:1px solid #ccc; padding:4px;">消耗</td><td style="border:1px solid #ccc; padding:4px;">Tongyi</td><td style="border:1px solid #ccc; padding:4px;">${use_tongyi.toLocaleString()}</td></tr> <tr><td style="border:1px solid #ccc; padding:4px;">Nashiga</td><td style="border:1px solid #ccc; padding:4px;">${use_nashiga.toLocaleString()}</td></tr> <tr style="background:#353b47;"><td colspan="2" style="border:1px solid #ccc; padding:4px;">tongyi给nashiga消耗</td><td style="border:1px solid #ccc; padding:4px;"><b>${tongyiTOnashigaU.toLocaleString()}</b></td></tr> <tr><td rowspan="2" style="border:1px solid #ccc; padding:4px;">工资</td><td style="border:1px solid #ccc; padding:4px;">Tongyi</td><td style="border:1px solid #ccc; padding:4px;">${sal_tongyi.toLocaleString()}</td></tr> <tr><td style="border:1px solid #ccc; padding:4px;">Nashiga</td><td style="border:1px solid #ccc; padding:4px;">${sal_nashiga.toLocaleString()}</td></tr> <tr style="background:#353b47;"><td colspan="2" style="border:1px solid #ccc; padding:4px;">tongyi给nashiga工资</td><td style="border:1px solid #ccc; padding:4px;"><b>${tongyiTOnashigaS.toLocaleString()}</b></td></tr> <tr style="background:#353b47;"><td colspan="2" style="border:1px solid #ccc; padding:4px;">总支出</td><td style="border:1px solid #ccc; padding:4px;"><b>${oALL.toLocaleString()}</b></td></tr> <tr><td rowspan="3" style="border:1px solid #ccc; padding:4px;">收入</td><td style="border:1px solid #ccc; padding:4px;">Nashiga部份</td><td style="border:1px solid #ccc; padding:4px;">${income_nashiga.toLocaleString()}</td></tr> <tr><td style="border:1px solid #ccc; padding:4px;">Nashiga部份手续费</td><td style="border:1px solid #ccc; padding:4px;">${Math.round(xyFEEnashiga).toLocaleString()}</td></tr> <tr><td style="border:1px solid #ccc; padding:4px;">Tongyi部份</td><td style="border:1px solid #ccc; padding:4px;">${income_tongyi.toLocaleString()}</td></tr> <tr style="background:#353b47;"><td colspan="2" style="border:1px solid #ccc; padding:4px;">tongyi给nashiga收入</td><td style="border:1px solid #ccc; padding:4px;"><b>${tongyiTOnashigaI.toLocaleString()}</b></td></tr> <tr style="background:#24292f;"><td colspan="2" style="border:1px solid #ccc; padding:4px;">tongyi要给nashiga(上面3个要给+tongyi自用-手续费一半)</td><td style="border:1px solid #ccc; padding:4px;"><b>${Math.round(tongyiTOnashigaALL).toLocaleString()}</b></td></tr> <tr style="background:#24292f;"><td colspan="2" style="border:1px solid #ccc; padding:4px;">亏损</td><td style="border:1px solid #ccc; padding:4px; color:${balance >= 0 ? 'green' : 'red'};"><b>${balance.toLocaleString()}</b></td></tr> </tbody> </table> `; tableDiv.innerHTML = tableHTML; } // 初始渲染 if (sortedMonths.length > 0) { renderTableForMonth(sortedMonths[0]); } // 切换月份 monthSelect.addEventListener("change", () => { renderTableForMonth(monthSelect.value); }); ``` #### 出账 ##### 货款 ###### amex Oamex:: 6870 3015+990+2865 ###### tongyi Otongyi:: 1870 1870 Otongyi1:: 4191 4191 ###### nashiga Onashiga:: ##### 消耗 ###### tongyi Utongyi:: ###### nashiga Unashiga:: ##### 工资 ###### tongyi Stongyi:: ###### nashiga Snashiga:: ###### 瑜谌 Syuchen::2536 2536 #### 入账 Inashiga:: 2555 1050+370+1135 ###### tongyi Itongyi:: 435 435 --- # memos 2500+2400 4900 * 0.07 343+50+40 200+200+200+200 - 50 200+130+145+40-10