### [[2025]]年 - [[2025-06|06月]], [[2025-06-19|<]] [[第171天]] [[2025-06-21|>]] , 金曜日 --- ## 記事 https://fantia.jp/products/751632 https://fantia.jp/products/783630 https://fantia.jp/products/751628 https://fantia.jp/products/751630 https://fantia.jp/products/828556 イェローサブマリン すごろくや 2477-1990-120 8200+3100+1200+800+2500+500+6000+1000+4500+3000+900+2800+1000+4300+4600+3400+14000+13600+2000+1000+800+2000+600+1100+2000+1900+1800+2000 582+290+124+74+207+55+430+10+100+309+10+231+5+80+286+95-5+5+305+325+5+245+912+58+903+52+165+92+5+80+5+10+70+101+150+40-5+158+152+180 90600 * 0.05 4620-6896 ```dataviewjs // 筛选 2025 年 6 月的所有页面 const pages = dv.pages() .where(p => p.file.name.startsWith("2025-06")) // 你也可以用 file.path.includes 等更细致的筛选 // 初始化总和变量 let amex = 0, tongyi = 0, nashiga = 0 let use_tongyi = 0, use_nashiga = 0 let sal_tongyi = 0, sal_nashiga = 0 let income_tongyi = 0, income_tongyitongyi = 0 let tongyi_amex = 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_tongyi += d.Inashiga || 0 income_tongyitongyi += d.Itongyi || 0 tongyi_amex += d.oTONGYIamex || 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_tongyi + income_tongyitongyi const itongyiyen = income_tongyi * 20 const iALLyen = iALL * 20 const itongyitongyiyen = income_tongyitongyi * 20 // === Chart 配置 === const chartData = { type: 'doughnut', data: { labels: [ '出', '入tongyi', '入同一何' ], datasets: [ { label: '出入总入', data: [oALL,itongyitongyiyen,itongyiyen,tongyi_amex], backgroundColor: [ 'rgba(75, 192, 192, 0.6)', // OUT 'rgba(153, 102, 255, 0.6)', // INall 'rgba(255, 159, 64, 0.6)' // incometongyi ], 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) ``` [駿河屋 -\<中古\>妖華語り / 葉月ゆら(ミュージック)](https://www.suruga-ya.jp/product/detail/186145320) [駿河屋 -\<中古\>Shadows ~影色妖精絵本~ / 葉月ゆら(ミュージック)](https://www.suruga-ya.jp/product/detail/186137082) [虚構の楽園 / 葉月ゆらの取り扱い店舗一覧\|中古・新品通販の駿河屋](https://www.suruga-ya.jp/product/other/186148491) [\*Cherry Melody【特典付】 通販 - メロンブックス](https://www.melonbooks.co.jp/detail/detail.php?product_id=634397) [葉月ゆら Secret Rose Garden【特典 A4サイズ クリアファイル】 \| あきばお~こく](https://www.akibaoo.com/c/item/2500020496275/) 162+88+215+110+64+105+100+185-149 1476 * 0.055 + 10 2000+1000+3000+3000+1500 #### 出账 ##### 货款 ###### amex Oamex:: ###### tongyi Otongyi:: 31222 581+171+800+2270+3000+700+700+700+1200+700+700+700+1300+2400+1300+2000+9000+5800-2800 oTONGYIamex:: 27965 ###### nashiga Onashiga:: 6300 ##### 消耗 ###### tongyi Utongyi:: 4150+ ###### nashiga Unashiga:: ##### 工资 ###### tongyi Stongyi:: 1000 ###### nashiga Snashiga:: #### 入账 ###### tongyi Inashiga:: 1953 287+118+770+253+162+143+110+110 Itongyi:: 1282 176+30+82+290+183+32+116+223+150 ```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