From bbc9ad13fe113997b265dc38569f0b2bcdca0ebc Mon Sep 17 00:00:00 2001 From: wintsa <770775984@qq.com> Date: Thu, 9 Apr 2026 09:15:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/features/ht/components/zxFw.vue | 18 +- .../components/InvestmentScalePricingPane.vue | 4 +- .../components/LandScalePricingPane.vue | 2 +- .../components/ServiceCheckboxSelector.vue | 56 +- .../components/QuickCalcWorkbenchView.vue | 45 +- src/i18n/locales/en-US.ts | 2 +- src/i18n/locales/zh-CN.ts | 2 +- src/layout/typeLine.vue | 91 +- src/lib/pricingMethodTotals.ts | 10 +- src/lib/pricingScaleCalc.ts | 2 +- src/lib/pricingScaleFee.ts | 8 +- src/sql.ts | 851 +++++++++++++++++- src/style.css | 77 +- 13 files changed, 1056 insertions(+), 112 deletions(-) diff --git a/src/features/ht/components/zxFw.vue b/src/features/ht/components/zxFw.vue index 2c1a7b8..4aae2e7 100644 --- a/src/features/ht/components/zxFw.vue +++ b/src/features/ht/components/zxFw.vue @@ -46,6 +46,16 @@ interface ServiceItem { type: ServiceMethodType } +const SERVICE_SELECTOR_ROWS: string[][] = [ + ['0', '2', '3', '4'], + ['6', '7', '10', '8', '9', '11', '12', '13'], + ['37', '38', '39', '40'], + ['21', '22', '23', '24', '25', '26'], + ['15', '16', '17', '18', '19', '20'], + ['29', '30', '31', '32', '33', '34', '35', '36'], + ['41', '42', '43', '44'] +] + interface DetailRow { id: string code: string @@ -162,6 +172,12 @@ const serviceDict = computed(() => { const serviceById = computed(() => new Map(serviceDict.value.map(item => [item.id, item]))) const serviceIdByCode = computed(() => new Map(serviceDict.value.map(item => [item.code, item.id]))) const serviceIdSignature = computed(() => serviceDict.value.map(item => item.id).join('|')) +const serviceSelectorRows = computed(() => { + const available = new Set(serviceDict.value.map(item => item.id)) + return SERVICE_SELECTOR_ROWS + .map(row => row.filter(id => available.has(id))) + .filter(row => row.length > 0) +}) const fixedBudgetRow: Pick = { id: 'fixed-budget-c', code: '', name: t('htZxFw.subtotal') } /** 判断是否固定汇总行(小计行)。 */ @@ -1276,7 +1292,7 @@ onActivated(async () => {