Ver Fonte

fix(web):仅实质/形式显示用到的去重值,其余轴(目的池/业务阶段/模态/知识类型)显示完整池

实质80、形式48 池子大、只列这批 query 实际用到的去重值;作用/感受/意图(195)、业务阶段(15,
完整分组)、模态(2)、知识类型(3) 显示完整池。列头计数随之区分。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
SamLee há 2 semanas atrás
pai
commit
6ff1da4b3c

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
acquisition/web/app/dist/assets/index-BAjoUM6G.js


+ 1 - 1
acquisition/web/app/dist/index.html

@@ -4,7 +4,7 @@
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>创作知识 · 找帖子</title>
-    <script type="module" crossorigin src="/app/assets/index-C2LJfRpb.js"></script>
+    <script type="module" crossorigin src="/app/assets/index-BAjoUM6G.js"></script>
     <link rel="stylesheet" crossorigin href="/app/assets/index-BweFrMrP.css">
   </head>
   <body>

+ 17 - 7
acquisition/web/app/src/pages/CreationDemo.jsx

@@ -10,6 +10,10 @@ const PARTS_KEY = {       // 家族 axes 里的轴名 → 每条 query 的 parts
 const AXIS_LABEL = {      // 列头显示用的标注(取值层级)
   '实质': '实质(3-4层)', '形式': '形式(3-4层)',
 }
+const USED_ONLY = new Set(['实质', '形式'])   // 仅这两轴只显示这批 query 用到的去重值;其余轴显示完整池
+const POOL_KEY = {                            // 完整池轴名 → axis_values 键
+  '作用/感受/意图': '目的池', '模态': '模态', '知识类型': '知识类型',
+}
 
 // 该家族 query 在某轴上实际用过的去重值(按首次出现顺序)
 function usedValues(items, pk) {
@@ -22,26 +26,32 @@ function usedValues(items, pk) {
 }
 
 function AxisCol({ ax, fam, axisValues }) {
-  const used = usedValues(fam.items, PARTS_KEY[ax])
-  const usedSet = new Set(used)
   const grouping = axisValues['业务阶段']         // {灵感:[...],选题:[...],脚本:[...]}
-  let body
+  let body, count
   if (ax === '业务阶段' && grouping && !Array.isArray(grouping)) {
+    // 业务阶段:完整分组 + 缩进(不按用到与否过滤)
     const groups = Object.entries(grouping)
-      .map(([grp, words]) => [grp, words.filter(w => usedSet.has(w))])
-      .filter(([, words]) => words.length)
+    count = groups.reduce((n, [, w]) => n + w.length, 0)
     body = groups.map(([grp, words]) => (
       <div key={grp}>
         <div className="axv grp">{grp}</div>
         {words.map((w, i) => <div className="axv child" key={i}>{w}</div>)}
       </div>
     ))
-  } else {
+  } else if (USED_ONLY.has(ax)) {
+    // 实质/形式:只显示这批 query 用到的去重值
+    const used = usedValues(fam.items, PARTS_KEY[ax])
+    count = used.length
     body = used.map((v, i) => <div className="axv" key={i}>{v}</div>)
+  } else {
+    // 作用/感受/意图、模态、知识类型:完整池
+    const pool = axisValues[POOL_KEY[ax]] || []
+    count = pool.length
+    body = pool.map((v, i) => <div className="axv" key={i}>{v}</div>)
   }
   return (
     <div className="axcol">
-      <div className="axhd">{AXIS_LABEL[ax] || ax}<span className="gn">{used.length}</span></div>
+      <div className="axhd">{AXIS_LABEL[ax] || ax}<span className="gn">{count}</span></div>
       <div className="axlist">{body}</div>
     </div>
   )

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff