### [[2025]]年 - [[2025-06|06月]], [[2025-06-10|<]] [[第162天]] [[2025-06-12|>]] , 水曜日 --- ## 記事 6325 * 0.055 + 40 2000+3000+1000+2880+3000+1500 13380* 0.05 160+88+220+115+105+75+185-48 669-900 28230+2750国际运费+300转运费+300国内运费 = 31580 3000+2000+ 3000+2000+4800+3600+1800 = 15200 15200 * 0.09 * 0.5 = 684 #### 出账 ##### 货款 ###### amex Oamex:: 17578 票 需议 3601另算 oTONGYIamex:: 14390 5340+1310+1400+1740+6300-850-850 ###### tongyi Otongyi:: ###### nashiga Onashiga:: 4150 ##### 消耗 ###### tongyi Utongyi:: ###### nashiga Unashiga:: 4150 ##### 工资 ###### tongyi Stongyi:: ###### nashiga Snashiga:: 760 CN105865942JP #### 入账 ###### tongyi Inashiga:: Itongyi:: ```dataviewjs const d = dv.current() // === 原始字段 === const amex = d.Oamex || 0 const tongyi = d.Otongyi || 0 const nashiga = d.Onashiga || 0 const use_tongyi = d.Utongyi || 0 const use_nashiga = d.Unashiga || 0 const sal_tongyi = d.Stongyi || 0 const sal_nashiga = d.Snashiga || 0 // === 汇总值 === const oOUTall = amex + tongyi + nashiga const oUSEall = use_tongyi + use_nashiga const oSALall = sal_tongyi + sal_nashiga const oALL = oOUTall + oUSEall + oSALall // === Chart 配置 === const chartData = { type: 'doughnut', data: { labels: [ '总货款', '总消耗', '总工资' ], datasets: [ { label: '总支出分类', data: [oOUTall, oUSEall, oSALall], backgroundColor: [ 'rgba(75, 192, 192, 0.6)', // OUT 'rgba(153, 102, 255, 0.6)', // USE 'rgba(255, 159, 64, 0.6)' // SAL ], borderColor: [ 'rgba(75, 192, 192, 1)', 'rgba(153, 102, 255, 1)', 'rgba(255, 159, 64, 1)' ], borderWidth: 1 } ] }, options: { responsive: true, cutout: '50%', plugins: { legend: { position: 'bottom' }, tooltip: { enabled: true }, centerText: { display: true, text: `总支出:¥${oALL.toLocaleString()}` } } }, plugins: [ { id: 'centerText', beforeDraw: function (chart) { const width = chart.width; const height = chart.height; const ctx = chart.ctx; ctx.restore(); const fontSize = (height / 150).toFixed(2); ctx.font = `${fontSize}em sans-serif`; ctx.textBaseline = 'middle'; const text = chart.options.plugins.centerText.text; const textX = Math.round((width - ctx.measureText(text).width) / 2); const textY = height / 2; ctx.fillText(text, textX, textY); ctx.save(); } } ] } window.renderChart(chartData, this.container) ``` --- # memos