From: root Date: Fri, 11 Sep 2026 10:30:36 +0000 (+0800) Subject: 页面配置-设备运维移入MU标准页面表格(按Excel更新)并移除报表Tab X-Git-Url: http://acesimba.cloud/gitweb/?a=commitdiff_plain;h=9bdd1d0bfcc2f8e6b41837cad3e7957db1e9696e;p=StationBuilder.git 页面配置-设备运维移入MU标准页面表格(按Excel更新)并移除报表Tab --- diff --git a/app/page.tsx b/app/page.tsx index f4ac85f..cad300a 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -217,8 +217,8 @@ export default function Home(){ const [view,setView]=useState<"table"|"card">("table"); const [siteEditSection,setSiteEditSection]=useState("basic"); const [assetConfigMode,setAssetConfigMode]=useState<"quick"|"manual">("quick"); - const [pageConfigTab,setPageConfigTab]=useState<"ops"|"dashboard"|"report"|"twin">("ops"); - const PAGE_CONFIG_LABEL:Record={ops:"设备运维",dashboard:"仪表板",report:"报表",twin:"数字孪生场景"}; + const [pageConfigTab,setPageConfigTab]=useState<"ops"|"dashboard"|"twin">("ops"); + const PAGE_CONFIG_LABEL:Record={ops:"设备运维",dashboard:"仪表板",twin:"数字孪生场景"}; const [functionTab,setFunctionTab]=useState<"mu"|"cube"|"menu">("mu"); const [previewTab,setPreviewTab]=useState<"info"|"json"|"feedback">("info"); const [feedbackCube,setFeedbackCube]=useState(null); @@ -700,10 +700,21 @@ export default function Home(){
-
-
内容待补充
+ {pageConfigTab==="ops" + ? {/* MU 标准页面表格,移自功能与菜单,默认全选中 */} + {(()=>{ + const opLeaves = buildMuLeaves(muTree); + const opGrouped = (()=>{ const map=new Map(); for(const l of opLeaves){ if(!map.has(l.parentMenu)) map.set(l.parentMenu,{parentMenu:l.parentMenu,items:[]}); map.get(l.parentMenu)!.items.push(l); } return Array.from(map.values()); })(); + const opAllKeys = opLeaves.map(l=>l.key); + const opSelected = site?.mu || []; + const opEff = opSelected.length ? opSelected : opAllKeys; + const opToggle=(key:string)=>{ const base=opSelected.length?opSelected:opAllKeys; saveMu(base.includes(key)?base.filter(k=>k!==key):[...base,key]); }; + return
{opGrouped.map(g=>
{g.parentMenu}
{g.items.map(item=>)}
)}
; + })()} +
+ :
内容待补充
} } {page==="functions"&&} {page==="siteEdit"&&siteEditSection==="functions"&&} @@ -1221,25 +1232,13 @@ function AssetTreeBranch({node,selectedId,search,onSelect,onOpen,onAddChild}:{no } function Functions({site,muTree,onMuChange,onSiteChange,pageStyles,notify,onViewCompletePrompt}:{site:SiteDetail|null;muTree:MuNode[];onMuChange:(s:string[])=>void;onSiteChange:(s:SiteDetail)=>void;pageStyles:PageStyle[];notify:(m:string)=>void;onViewCompletePrompt:()=>void}){ - const [tab,setTab]=useState<"mu"|"cube"|"menu">("mu"); + const [tab,setTab]=useState<"mu"|"cube"|"menu">("cube"); const leaves = useMemo(()=>buildMuLeaves(muTree),[muTree]); - const grouped = useMemo(()=>{ - const map = new Map(); - for(const leaf of leaves){ - if(!map.has(leaf.parentMenu)) map.set(leaf.parentMenu, {parentMenu:leaf.parentMenu, items:[]}); - map.get(leaf.parentMenu)!.items.push(leaf); - } - return Array.from(map.values()); - },[leaves]); const allMuKeys = useMemo(()=>leaves.map(l=>l.key),[leaves]); const selectedMu = site?.mu || []; // 默认全选中:site.mu 为空时按全部叶子键显示,首次勾选才落地保存 const effSelected = selectedMu.length ? selectedMu : allMuKeys; if(!site) return
加载中…
; - const toggleMu=(key:string)=>{ - const base = selectedMu.length ? selectedMu : allMuKeys; - onMuChange(base.includes(key)? base.filter(k=>k!==key) : [...base, key]); - }; const updateCube=(idx:number, patch:Partial)=>{ const next = site.cubes.map((c,i)=>i===idx?{...c,...patch}:c); onSiteChange({...site, cubes:next}); @@ -1327,9 +1326,7 @@ function Functions({site,muTree,onMuChange,onSiteChange,pageStyles,notify,onView finally{ clearTimeout(watchdog); setCompleting(false); } }; - return
- {/* MU 标准页面:树状上下结构,仅保留勾选框,默认全选中 */} - {tab==="mu"&&
{grouped.map(g=>
{g.parentMenu}
{g.items.map(item=>)}
)}
} + return
{/* Cube 扩展页面:左右两栏,右栏为填写建议 + AI 智能补全 */} {tab==="cube"&&
diff --git a/db-sidecar.mjs b/db-sidecar.mjs index 1b4cb79..0889bdb 100644 --- a/db-sidecar.mjs +++ b/db-sidecar.mjs @@ -40,18 +40,40 @@ const DEFAULT_DOMAINS = [ ]; const MU_TREE = [ - { - key: "设备监控", - tabs: ["设备总览", "设备详情"], - }, - { - key: "数据分析", - tabs: ["数据分析", "报表分析", "用量分析"], - }, - { - key: "智能控制", - tabs: ["远程控制计划", "执行记录", "控制模板"], - }, + { key: "设备监控", tabs: ["设备总览", "设备详情", "区域监控", "视频监控"] }, + { key: "数据分析", tabs: ["数据分析", "报表分析", "用量分析"] }, + { key: "智能控制", tabs: ["远程控制计划", "执行记录", "控制模板"] }, + { key: "位置设定", tabs: ["位置设定"] }, + { key: "区域监控", tabs: ["区域监控"] }, + { key: "综合事务维修", tabs: ["综合事务维修"] }, + { key: "设备维修", tabs: ["设备维修"] }, + { key: "外委维修", tabs: ["外委维修"] }, + { key: "保养工单", tabs: ["保养工单"] }, + { key: "保养计划", tabs: ["保养计划"] }, + { key: "保养标准", tabs: ["保养标准"] }, + { key: "点检工单", tabs: ["点检工单"] }, + { key: "异常工单", tabs: ["异常工单"] }, + { key: "点检计划", tabs: ["点检计划"] }, + { key: "点检标准", tabs: ["点检标准"] }, + { key: "台账列表", tabs: ["台账列表"] }, + { key: "台账模板", tabs: ["台账模板"] }, + { key: "设备类型", tabs: ["设备类型"] }, + { key: "定时提醒日志", tabs: ["定时提醒日志"] }, + { key: "备件列表", tabs: ["备件列表"] }, + { key: "备件入库", tabs: ["备件入库"] }, + { key: "备件出库", tabs: ["备件出库"] }, + { key: "备件盘点", tabs: ["备件盘点"] }, + { key: "仓库管理", tabs: ["仓库管理"] }, + { key: "库位管理", tabs: ["库位管理"] }, + { key: "出入库类型", tabs: ["出入库类型"] }, + { key: "工单中心", tabs: ["工单中心"] }, + { key: "表单设计", tabs: ["表单设计"] }, + { key: "流程设计", tabs: ["流程设计"] }, + { key: "系统设置", tabs: ["自定义应用", "设备类型"] }, + { key: "台账设置", tabs: ["台账设置"] }, + { key: "备件设置", tabs: ["备件设置"] }, + { key: "工单管理设置", tabs: ["综合事务分类", "故障分类", "多级告警", "流程表单配置"] }, + { key: "设备监控设置", tabs: ["区域监控设置"] }, ]; const DASHBOARD_SPEC = `