From 75f293f877fd200806d71a8c97146b37ee448394 Mon Sep 17 00:00:00 2001 From: wintsa <770775984@qq.com> Date: Thu, 5 Mar 2026 17:58:38 +0800 Subject: [PATCH] =?UTF-8?q?'20260305=E4=BF=AE=E5=A4=8Dbug'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 19 + index.html | 1 + public/vite.svg | 1 - src/components/common/CommonAgGrid.vue | 49 - src/components/common/XmFactorGrid.vue | 11 +- src/components/common/xmCommonAgGrid.vue | 244 +++ src/components/views/Ht.vue | 10 +- .../views/ServiceCheckboxSelector.vue | 2 +- src/components/views/Xm.vue | 43 +- src/components/views/XmMajorFactor.vue | 16 +- src/components/views/htInfo.vue | 234 +-- src/components/views/info.vue | 44 +- .../InvestmentScalePricingPane.vue | 47 +- .../pricingView/LandScalePricingPane.vue | 46 +- src/components/views/xmInfo.vue | 305 +--- src/components/views/zxFw.vue | 13 +- src/layout/tab.vue | 3 +- src/lib/pricingMethodTotals.ts | 30 +- src/lib/xmFactorDefaults.ts | 12 +- src/sql.ts | 1437 ++++++++--------- 20 files changed, 1167 insertions(+), 1400 deletions(-) create mode 100644 AGENTS.md delete mode 100644 public/vite.svg delete mode 100644 src/components/common/CommonAgGrid.vue create mode 100644 src/components/common/xmCommonAgGrid.vue diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..7c06ddf --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,19 @@ +# AGENTS.md — Encoding & Chinese Safety Rules + +## Absolute rules (must follow) +1. Never corrupt non-ASCII text (Chinese, emoji, etc.). Preserve exact Unicode characters. +2. NEVER rewrite entire files when only small edits are needed. Always apply minimal diffs/patches. +3. If a file contains Chinese characters, do not “normalize”, “escape”, “re-encode”, or “replace” them. +4. When reading/writing files via scripts/tools, always use UTF-8 explicitly (no platform default encoding). + +## Windows / PowerShell rules +- If you need to run PowerShell, force UTF-8 output/input: + - Use: `[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()` + - Prefer `Set-Content -Encoding utf8` / `Out-File -Encoding utf8` +- Avoid commands that may round-trip through ANSI/CP936/CP1252 without explicit encoding. + +## Workflow +- Before editing: inspect the target lines only. +- Apply changes as a patch (line-level edits), not full-file regeneration. +- After editing: verify the edited lines still show correct Chinese. +- If uncertain: stop and ask rather than guessing and corrupting text. \ No newline at end of file diff --git a/index.html b/index.html index cf2bef4..e76de1c 100644 --- a/index.html +++ b/index.html @@ -9,6 +9,7 @@
- - diff --git a/src/components/common/XmFactorGrid.vue b/src/components/common/XmFactorGrid.vue index 1707f7a..04dce77 100644 --- a/src/components/common/XmFactorGrid.vue +++ b/src/components/common/XmFactorGrid.vue @@ -13,6 +13,7 @@ interface DictItem { defCoe: number | null desc?: string | null notshowByzxflxs?: boolean + order?: number | null } interface FactorRow { @@ -61,10 +62,12 @@ const sortedDictEntries = () => return true }) .sort((a, b) => { - const aNum = Number(a[0]) - const bNum = Number(b[0]) - if (Number.isFinite(aNum) && Number.isFinite(bNum)) return aNum - bNum - return String(a[0]).localeCompare(String(b[0])) + const aOrder = Number(a[1]?.order) + const bOrder = Number(b[1]?.order) + if (Number.isFinite(aOrder) && Number.isFinite(bOrder) && aOrder !== bOrder) return aOrder - bOrder + if (Number.isFinite(aOrder) && !Number.isFinite(bOrder)) return -1 + if (!Number.isFinite(aOrder) && Number.isFinite(bOrder)) return 1 + return String(a[1]?.code || a[0]).localeCompare(String(b[1]?.code || b[0])) }) const buildCodePath = (code: string, selfId: string, codeIdMap: Map) => { diff --git a/src/components/common/xmCommonAgGrid.vue b/src/components/common/xmCommonAgGrid.vue new file mode 100644 index 0000000..8862673 --- /dev/null +++ b/src/components/common/xmCommonAgGrid.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/components/views/Ht.vue b/src/components/views/Ht.vue index 79ccf8c..3848438 100644 --- a/src/components/views/Ht.vue +++ b/src/components/views/Ht.vue @@ -9,7 +9,7 @@ import { TooltipContent, TooltipProvider, TooltipRoot, TooltipTrigger } from '@/ import { useTabStore } from '@/pinia/tab' import { ArrowUp, Edit3, GripVertical, MoreHorizontal, Plus, Trash2, X } from 'lucide-vue-next' import { decodeZwArchive, encodeZwArchive } from '@/lib/zwArchive' -import { majorList } from '@/sql' +import { industryTypeList } from '@/sql' import { AlertDialogAction, AlertDialogCancel, @@ -90,7 +90,7 @@ const contractListViewportRef = ref(null) const showScrollTopFab = ref(false) const isDraggingContracts = ref(false) const cardMotionState = ref<'enter' | 'ready'>('ready') -const canManageContracts = ref(false) +const canManageContracts = ref(true) let contractAutoScrollRaf = 0 let dragPointerClientY: number | null = null let cardEnterTimer: ReturnType | null = null @@ -196,10 +196,8 @@ const formatExportTimestamp = (date: Date): string => { const industryNameByCode = (() => { const map = new Map() - for (const item of Object.values(majorList as Record)) { - if (!item?.code || !item?.name) continue - if (item.code.includes('-')) continue - map.set(item.code, item.name) + for (const item of industryTypeList) { + map.set(item.id, item.name) } return map })() diff --git a/src/components/views/ServiceCheckboxSelector.vue b/src/components/views/ServiceCheckboxSelector.vue index 84d4cb1..4caa947 100644 --- a/src/components/views/ServiceCheckboxSelector.vue +++ b/src/components/views/ServiceCheckboxSelector.vue @@ -36,7 +36,7 @@ const clearAll = () => {