v2.1: DESTACO 风格选型界面 + 参数组合补全(缺组合也能出零件号)

网页版选型改版 (仅网页版, 桌面版待同步)
- 新增零件号实时条: 边选边拼, 已确定片段实心高亮, 未定片段虚化, 进度条随选推进;
  浅色配色 (初版深色块与页面不协调, 已改); 选满且唯一命中时整块转青色实心
- 技术方案: 40 系列中仅 KC 有编码模板 → 改用「当前候选型号的最长公共前缀」,
  已验证 40/40 系列前缀单调增长(不回退)
- 参数选择由下拉菜单改为可视化选项块: 悬停抬升+青色投影, 选中青色填充+✓,
  不可选取值置灰(虚线+划线, 不消失, 让用户看到选项存在但当前组合不适用),
  再点一次取消; 有说明的显示代号+说明, 纯数值用紧凑文字块
- 参数联动仍复用 allowedOptions 规则引擎, 语义未变, 只改渲染

参数组合补全
- 原逻辑: 必须有真实数模才能生成型号 → 库里没有的组合选不出来也出不了号
- infer-sku-template.py 从已有型号反推编码模板, 得 23 个系列 100% 可复现
- verify-templates.py 作为门禁: 用模板重渲染每个已有型号必须逐字一致 ——
  该检查抓出 ULM/ULP 行程补零位数写错(2位写3位), 否则会生成 3000 个不存在的零件号
- gen-missing-combos.py 补全 8 个系列共 3157 个型号 (全库 54136 → 57293)
- 占位数模: 3157 个型号共用 1 个 PLACEHOLDER.step(4.5KB), 构建器按路径打包只存一份,
  数据包仅 2.10GB → 2.14GB (中途用硬链接方案踩坑: NTFS 上限 1024, 超出退化为拷贝白占 500MB)
- _pending_models.csv 输出待补数模清单, 供 AI 补完后替换 step_file

新增脚本: infer-sku-template / verify-templates / quantify-combo-gap /
          gen-missing-combos / gen-placeholder-step / check-combo-unique
新增文档: docs/更改说明-v2.1.md

发现未处理 (已记录在更改说明):
- 夹紧缸 9 系列一组参数对应多型号 (310 个型号, 编码含参数外尾缀, 旧码/新码混用)
- UAGP/LAGP 参数顺序与官方编码结构不符 (传感器应在转角之前)
- 17 个系列因模板不干净未补全 (宁可少补, 不生成可能不存在的零件号)

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
wangruiguo
2026-09-15 02:14:55 +08:00
parent 3c4f236cba
commit fc5ee1dd36
19 changed files with 7355 additions and 25 deletions

View File

@@ -69,3 +69,133 @@ ULM50060EXK0,50,60,E,X,K,ULM50060EXK0.step
ULM50060FXK0,50,60,F,X,K,ULM50060FXK0.step
ULM50060HXK0,50,60,H,X,K,ULM50060HXK0.step
ULM50060IXK0,50,60,I,X,K,ULM50060IXK0.step
ULM50015AXK0,50,15,A,X,K,PLACEHOLDER.step
ULM50015BEK0,50,15,B,E,K,PLACEHOLDER.step
ULM50015BNK0,50,15,B,N,K,PLACEHOLDER.step
ULM50015BOK0,50,15,B,O,K,PLACEHOLDER.step
ULM50015BSK0,50,15,B,S,K,PLACEHOLDER.step
ULM50015CEK0,50,15,C,E,K,PLACEHOLDER.step
ULM50015CNK0,50,15,C,N,K,PLACEHOLDER.step
ULM50015COK0,50,15,C,O,K,PLACEHOLDER.step
ULM50015CSK0,50,15,C,S,K,PLACEHOLDER.step
ULM50015DXK0,50,15,D,X,K,PLACEHOLDER.step
ULM50015EEK0,50,15,E,E,K,PLACEHOLDER.step
ULM50015ENK0,50,15,E,N,K,PLACEHOLDER.step
ULM50015EOK0,50,15,E,O,K,PLACEHOLDER.step
ULM50015ESK0,50,15,E,S,K,PLACEHOLDER.step
ULM50015FEK0,50,15,F,E,K,PLACEHOLDER.step
ULM50015FNK0,50,15,F,N,K,PLACEHOLDER.step
ULM50015FOK0,50,15,F,O,K,PLACEHOLDER.step
ULM50015FSK0,50,15,F,S,K,PLACEHOLDER.step
ULM50015HEK0,50,15,H,E,K,PLACEHOLDER.step
ULM50015HNK0,50,15,H,N,K,PLACEHOLDER.step
ULM50015HOK0,50,15,H,O,K,PLACEHOLDER.step
ULM50015HSK0,50,15,H,S,K,PLACEHOLDER.step
ULM50015IEK0,50,15,I,E,K,PLACEHOLDER.step
ULM50015INK0,50,15,I,N,K,PLACEHOLDER.step
ULM50015IOK0,50,15,I,O,K,PLACEHOLDER.step
ULM50015ISK0,50,15,I,S,K,PLACEHOLDER.step
ULM50025AXK0,50,25,A,X,K,PLACEHOLDER.step
ULM50025BEK0,50,25,B,E,K,PLACEHOLDER.step
ULM50025BNK0,50,25,B,N,K,PLACEHOLDER.step
ULM50025BOK0,50,25,B,O,K,PLACEHOLDER.step
ULM50025BSK0,50,25,B,S,K,PLACEHOLDER.step
ULM50025CEK0,50,25,C,E,K,PLACEHOLDER.step
ULM50025CNK0,50,25,C,N,K,PLACEHOLDER.step
ULM50025COK0,50,25,C,O,K,PLACEHOLDER.step
ULM50025CSK0,50,25,C,S,K,PLACEHOLDER.step
ULM50025DXK0,50,25,D,X,K,PLACEHOLDER.step
ULM50025EEK0,50,25,E,E,K,PLACEHOLDER.step
ULM50025ENK0,50,25,E,N,K,PLACEHOLDER.step
ULM50025EOK0,50,25,E,O,K,PLACEHOLDER.step
ULM50025ESK0,50,25,E,S,K,PLACEHOLDER.step
ULM50025FEK0,50,25,F,E,K,PLACEHOLDER.step
ULM50025FNK0,50,25,F,N,K,PLACEHOLDER.step
ULM50025FOK0,50,25,F,O,K,PLACEHOLDER.step
ULM50025FSK0,50,25,F,S,K,PLACEHOLDER.step
ULM50025HEK0,50,25,H,E,K,PLACEHOLDER.step
ULM50025HNK0,50,25,H,N,K,PLACEHOLDER.step
ULM50025HOK0,50,25,H,O,K,PLACEHOLDER.step
ULM50025HSK0,50,25,H,S,K,PLACEHOLDER.step
ULM50025IEK0,50,25,I,E,K,PLACEHOLDER.step
ULM50025INK0,50,25,I,N,K,PLACEHOLDER.step
ULM50025IOK0,50,25,I,O,K,PLACEHOLDER.step
ULM50025ISK0,50,25,I,S,K,PLACEHOLDER.step
ULM50040AXK0,50,40,A,X,K,PLACEHOLDER.step
ULM50040BEK0,50,40,B,E,K,PLACEHOLDER.step
ULM50040BNK0,50,40,B,N,K,PLACEHOLDER.step
ULM50040BOK0,50,40,B,O,K,PLACEHOLDER.step
ULM50040BSK0,50,40,B,S,K,PLACEHOLDER.step
ULM50040CEK0,50,40,C,E,K,PLACEHOLDER.step
ULM50040CNK0,50,40,C,N,K,PLACEHOLDER.step
ULM50040COK0,50,40,C,O,K,PLACEHOLDER.step
ULM50040CSK0,50,40,C,S,K,PLACEHOLDER.step
ULM50040DXK0,50,40,D,X,K,PLACEHOLDER.step
ULM50040EEK0,50,40,E,E,K,PLACEHOLDER.step
ULM50040ENK0,50,40,E,N,K,PLACEHOLDER.step
ULM50040EOK0,50,40,E,O,K,PLACEHOLDER.step
ULM50040ESK0,50,40,E,S,K,PLACEHOLDER.step
ULM50040FEK0,50,40,F,E,K,PLACEHOLDER.step
ULM50040FNK0,50,40,F,N,K,PLACEHOLDER.step
ULM50040FOK0,50,40,F,O,K,PLACEHOLDER.step
ULM50040FSK0,50,40,F,S,K,PLACEHOLDER.step
ULM50040HEK0,50,40,H,E,K,PLACEHOLDER.step
ULM50040HNK0,50,40,H,N,K,PLACEHOLDER.step
ULM50040HOK0,50,40,H,O,K,PLACEHOLDER.step
ULM50040HSK0,50,40,H,S,K,PLACEHOLDER.step
ULM50040IEK0,50,40,I,E,K,PLACEHOLDER.step
ULM50040INK0,50,40,I,N,K,PLACEHOLDER.step
ULM50040IOK0,50,40,I,O,K,PLACEHOLDER.step
ULM50040ISK0,50,40,I,S,K,PLACEHOLDER.step
ULM50050AXK0,50,50,A,X,K,PLACEHOLDER.step
ULM50050BEK0,50,50,B,E,K,PLACEHOLDER.step
ULM50050BNK0,50,50,B,N,K,PLACEHOLDER.step
ULM50050BOK0,50,50,B,O,K,PLACEHOLDER.step
ULM50050BSK0,50,50,B,S,K,PLACEHOLDER.step
ULM50050CEK0,50,50,C,E,K,PLACEHOLDER.step
ULM50050CNK0,50,50,C,N,K,PLACEHOLDER.step
ULM50050COK0,50,50,C,O,K,PLACEHOLDER.step
ULM50050CSK0,50,50,C,S,K,PLACEHOLDER.step
ULM50050DXK0,50,50,D,X,K,PLACEHOLDER.step
ULM50050EEK0,50,50,E,E,K,PLACEHOLDER.step
ULM50050ENK0,50,50,E,N,K,PLACEHOLDER.step
ULM50050EOK0,50,50,E,O,K,PLACEHOLDER.step
ULM50050ESK0,50,50,E,S,K,PLACEHOLDER.step
ULM50050FEK0,50,50,F,E,K,PLACEHOLDER.step
ULM50050FNK0,50,50,F,N,K,PLACEHOLDER.step
ULM50050FOK0,50,50,F,O,K,PLACEHOLDER.step
ULM50050FSK0,50,50,F,S,K,PLACEHOLDER.step
ULM50050HEK0,50,50,H,E,K,PLACEHOLDER.step
ULM50050HNK0,50,50,H,N,K,PLACEHOLDER.step
ULM50050HOK0,50,50,H,O,K,PLACEHOLDER.step
ULM50050HSK0,50,50,H,S,K,PLACEHOLDER.step
ULM50050IEK0,50,50,I,E,K,PLACEHOLDER.step
ULM50050INK0,50,50,I,N,K,PLACEHOLDER.step
ULM50050IOK0,50,50,I,O,K,PLACEHOLDER.step
ULM50050ISK0,50,50,I,S,K,PLACEHOLDER.step
ULM50060AXK0,50,60,A,X,K,PLACEHOLDER.step
ULM50060BEK0,50,60,B,E,K,PLACEHOLDER.step
ULM50060BNK0,50,60,B,N,K,PLACEHOLDER.step
ULM50060BOK0,50,60,B,O,K,PLACEHOLDER.step
ULM50060BSK0,50,60,B,S,K,PLACEHOLDER.step
ULM50060CEK0,50,60,C,E,K,PLACEHOLDER.step
ULM50060CNK0,50,60,C,N,K,PLACEHOLDER.step
ULM50060COK0,50,60,C,O,K,PLACEHOLDER.step
ULM50060CSK0,50,60,C,S,K,PLACEHOLDER.step
ULM50060DXK0,50,60,D,X,K,PLACEHOLDER.step
ULM50060EEK0,50,60,E,E,K,PLACEHOLDER.step
ULM50060ENK0,50,60,E,N,K,PLACEHOLDER.step
ULM50060EOK0,50,60,E,O,K,PLACEHOLDER.step
ULM50060ESK0,50,60,E,S,K,PLACEHOLDER.step
ULM50060FEK0,50,60,F,E,K,PLACEHOLDER.step
ULM50060FNK0,50,60,F,N,K,PLACEHOLDER.step
ULM50060FOK0,50,60,F,O,K,PLACEHOLDER.step
ULM50060FSK0,50,60,F,S,K,PLACEHOLDER.step
ULM50060HEK0,50,60,H,E,K,PLACEHOLDER.step
ULM50060HNK0,50,60,H,N,K,PLACEHOLDER.step
ULM50060HOK0,50,60,H,O,K,PLACEHOLDER.step
ULM50060HSK0,50,60,H,S,K,PLACEHOLDER.step
ULM50060IEK0,50,60,I,E,K,PLACEHOLDER.step
ULM50060INK0,50,60,I,N,K,PLACEHOLDER.step
ULM50060IOK0,50,60,I,O,K,PLACEHOLDER.step
ULM50060ISK0,50,60,I,S,K,PLACEHOLDER.step
1 model_code size stroke rod orient sensor step_file
69 ULM50060FXK0 50 60 F X K ULM50060FXK0.step
70 ULM50060HXK0 50 60 H X K ULM50060HXK0.step
71 ULM50060IXK0 50 60 I X K ULM50060IXK0.step
72 ULM50015AXK0 50 15 A X K PLACEHOLDER.step
73 ULM50015BEK0 50 15 B E K PLACEHOLDER.step
74 ULM50015BNK0 50 15 B N K PLACEHOLDER.step
75 ULM50015BOK0 50 15 B O K PLACEHOLDER.step
76 ULM50015BSK0 50 15 B S K PLACEHOLDER.step
77 ULM50015CEK0 50 15 C E K PLACEHOLDER.step
78 ULM50015CNK0 50 15 C N K PLACEHOLDER.step
79 ULM50015COK0 50 15 C O K PLACEHOLDER.step
80 ULM50015CSK0 50 15 C S K PLACEHOLDER.step
81 ULM50015DXK0 50 15 D X K PLACEHOLDER.step
82 ULM50015EEK0 50 15 E E K PLACEHOLDER.step
83 ULM50015ENK0 50 15 E N K PLACEHOLDER.step
84 ULM50015EOK0 50 15 E O K PLACEHOLDER.step
85 ULM50015ESK0 50 15 E S K PLACEHOLDER.step
86 ULM50015FEK0 50 15 F E K PLACEHOLDER.step
87 ULM50015FNK0 50 15 F N K PLACEHOLDER.step
88 ULM50015FOK0 50 15 F O K PLACEHOLDER.step
89 ULM50015FSK0 50 15 F S K PLACEHOLDER.step
90 ULM50015HEK0 50 15 H E K PLACEHOLDER.step
91 ULM50015HNK0 50 15 H N K PLACEHOLDER.step
92 ULM50015HOK0 50 15 H O K PLACEHOLDER.step
93 ULM50015HSK0 50 15 H S K PLACEHOLDER.step
94 ULM50015IEK0 50 15 I E K PLACEHOLDER.step
95 ULM50015INK0 50 15 I N K PLACEHOLDER.step
96 ULM50015IOK0 50 15 I O K PLACEHOLDER.step
97 ULM50015ISK0 50 15 I S K PLACEHOLDER.step
98 ULM50025AXK0 50 25 A X K PLACEHOLDER.step
99 ULM50025BEK0 50 25 B E K PLACEHOLDER.step
100 ULM50025BNK0 50 25 B N K PLACEHOLDER.step
101 ULM50025BOK0 50 25 B O K PLACEHOLDER.step
102 ULM50025BSK0 50 25 B S K PLACEHOLDER.step
103 ULM50025CEK0 50 25 C E K PLACEHOLDER.step
104 ULM50025CNK0 50 25 C N K PLACEHOLDER.step
105 ULM50025COK0 50 25 C O K PLACEHOLDER.step
106 ULM50025CSK0 50 25 C S K PLACEHOLDER.step
107 ULM50025DXK0 50 25 D X K PLACEHOLDER.step
108 ULM50025EEK0 50 25 E E K PLACEHOLDER.step
109 ULM50025ENK0 50 25 E N K PLACEHOLDER.step
110 ULM50025EOK0 50 25 E O K PLACEHOLDER.step
111 ULM50025ESK0 50 25 E S K PLACEHOLDER.step
112 ULM50025FEK0 50 25 F E K PLACEHOLDER.step
113 ULM50025FNK0 50 25 F N K PLACEHOLDER.step
114 ULM50025FOK0 50 25 F O K PLACEHOLDER.step
115 ULM50025FSK0 50 25 F S K PLACEHOLDER.step
116 ULM50025HEK0 50 25 H E K PLACEHOLDER.step
117 ULM50025HNK0 50 25 H N K PLACEHOLDER.step
118 ULM50025HOK0 50 25 H O K PLACEHOLDER.step
119 ULM50025HSK0 50 25 H S K PLACEHOLDER.step
120 ULM50025IEK0 50 25 I E K PLACEHOLDER.step
121 ULM50025INK0 50 25 I N K PLACEHOLDER.step
122 ULM50025IOK0 50 25 I O K PLACEHOLDER.step
123 ULM50025ISK0 50 25 I S K PLACEHOLDER.step
124 ULM50040AXK0 50 40 A X K PLACEHOLDER.step
125 ULM50040BEK0 50 40 B E K PLACEHOLDER.step
126 ULM50040BNK0 50 40 B N K PLACEHOLDER.step
127 ULM50040BOK0 50 40 B O K PLACEHOLDER.step
128 ULM50040BSK0 50 40 B S K PLACEHOLDER.step
129 ULM50040CEK0 50 40 C E K PLACEHOLDER.step
130 ULM50040CNK0 50 40 C N K PLACEHOLDER.step
131 ULM50040COK0 50 40 C O K PLACEHOLDER.step
132 ULM50040CSK0 50 40 C S K PLACEHOLDER.step
133 ULM50040DXK0 50 40 D X K PLACEHOLDER.step
134 ULM50040EEK0 50 40 E E K PLACEHOLDER.step
135 ULM50040ENK0 50 40 E N K PLACEHOLDER.step
136 ULM50040EOK0 50 40 E O K PLACEHOLDER.step
137 ULM50040ESK0 50 40 E S K PLACEHOLDER.step
138 ULM50040FEK0 50 40 F E K PLACEHOLDER.step
139 ULM50040FNK0 50 40 F N K PLACEHOLDER.step
140 ULM50040FOK0 50 40 F O K PLACEHOLDER.step
141 ULM50040FSK0 50 40 F S K PLACEHOLDER.step
142 ULM50040HEK0 50 40 H E K PLACEHOLDER.step
143 ULM50040HNK0 50 40 H N K PLACEHOLDER.step
144 ULM50040HOK0 50 40 H O K PLACEHOLDER.step
145 ULM50040HSK0 50 40 H S K PLACEHOLDER.step
146 ULM50040IEK0 50 40 I E K PLACEHOLDER.step
147 ULM50040INK0 50 40 I N K PLACEHOLDER.step
148 ULM50040IOK0 50 40 I O K PLACEHOLDER.step
149 ULM50040ISK0 50 40 I S K PLACEHOLDER.step
150 ULM50050AXK0 50 50 A X K PLACEHOLDER.step
151 ULM50050BEK0 50 50 B E K PLACEHOLDER.step
152 ULM50050BNK0 50 50 B N K PLACEHOLDER.step
153 ULM50050BOK0 50 50 B O K PLACEHOLDER.step
154 ULM50050BSK0 50 50 B S K PLACEHOLDER.step
155 ULM50050CEK0 50 50 C E K PLACEHOLDER.step
156 ULM50050CNK0 50 50 C N K PLACEHOLDER.step
157 ULM50050COK0 50 50 C O K PLACEHOLDER.step
158 ULM50050CSK0 50 50 C S K PLACEHOLDER.step
159 ULM50050DXK0 50 50 D X K PLACEHOLDER.step
160 ULM50050EEK0 50 50 E E K PLACEHOLDER.step
161 ULM50050ENK0 50 50 E N K PLACEHOLDER.step
162 ULM50050EOK0 50 50 E O K PLACEHOLDER.step
163 ULM50050ESK0 50 50 E S K PLACEHOLDER.step
164 ULM50050FEK0 50 50 F E K PLACEHOLDER.step
165 ULM50050FNK0 50 50 F N K PLACEHOLDER.step
166 ULM50050FOK0 50 50 F O K PLACEHOLDER.step
167 ULM50050FSK0 50 50 F S K PLACEHOLDER.step
168 ULM50050HEK0 50 50 H E K PLACEHOLDER.step
169 ULM50050HNK0 50 50 H N K PLACEHOLDER.step
170 ULM50050HOK0 50 50 H O K PLACEHOLDER.step
171 ULM50050HSK0 50 50 H S K PLACEHOLDER.step
172 ULM50050IEK0 50 50 I E K PLACEHOLDER.step
173 ULM50050INK0 50 50 I N K PLACEHOLDER.step
174 ULM50050IOK0 50 50 I O K PLACEHOLDER.step
175 ULM50050ISK0 50 50 I S K PLACEHOLDER.step
176 ULM50060AXK0 50 60 A X K PLACEHOLDER.step
177 ULM50060BEK0 50 60 B E K PLACEHOLDER.step
178 ULM50060BNK0 50 60 B N K PLACEHOLDER.step
179 ULM50060BOK0 50 60 B O K PLACEHOLDER.step
180 ULM50060BSK0 50 60 B S K PLACEHOLDER.step
181 ULM50060CEK0 50 60 C E K PLACEHOLDER.step
182 ULM50060CNK0 50 60 C N K PLACEHOLDER.step
183 ULM50060COK0 50 60 C O K PLACEHOLDER.step
184 ULM50060CSK0 50 60 C S K PLACEHOLDER.step
185 ULM50060DXK0 50 60 D X K PLACEHOLDER.step
186 ULM50060EEK0 50 60 E E K PLACEHOLDER.step
187 ULM50060ENK0 50 60 E N K PLACEHOLDER.step
188 ULM50060EOK0 50 60 E O K PLACEHOLDER.step
189 ULM50060ESK0 50 60 E S K PLACEHOLDER.step
190 ULM50060FEK0 50 60 F E K PLACEHOLDER.step
191 ULM50060FNK0 50 60 F N K PLACEHOLDER.step
192 ULM50060FOK0 50 60 F O K PLACEHOLDER.step
193 ULM50060FSK0 50 60 F S K PLACEHOLDER.step
194 ULM50060HEK0 50 60 H E K PLACEHOLDER.step
195 ULM50060HNK0 50 60 H N K PLACEHOLDER.step
196 ULM50060HOK0 50 60 H O K PLACEHOLDER.step
197 ULM50060HSK0 50 60 H S K PLACEHOLDER.step
198 ULM50060IEK0 50 60 I E K PLACEHOLDER.step
199 ULM50060INK0 50 60 I N K PLACEHOLDER.step
200 ULM50060IOK0 50 60 I O K PLACEHOLDER.step
201 ULM50060ISK0 50 60 I S K PLACEHOLDER.step