Files
geMoldInsight/static/assets/ResultView-Bg_syxh8.js
T
2026-06-10 11:21:17 +08:00

1 line
26 KiB
JavaScript

import{A as e,D as t,E as n,F as r,I as i,L as a,M as o,O as s,P as c,S as l,_ as u,b as d,c as f,d as ee,g as p,h as m,i as h,j as te,l as g,m as _,p as v,r as y,s as b,u as x,v as S,w as C,x as w}from"./index-CpL0XiXx.js";import{a as T}from"./utils-COFIQvWo.js";var ne={class:`page-container`},re={class:`page-header`},ie={key:1,class:`result-container`},ae={class:`result-header`},oe={class:`result-anchor-nav`},se=[`href`],ce={class:`result-grid result-priority-grid`},le={class:`summary-header`},ue={class:`info-list`},de={class:`info-item`},fe={class:`info-value`,style:{"font-weight":`600`,"font-size":`1.05rem`,color:`var(--text-primary)`}},pe={class:`info-item`},me={class:`info-value`},he={class:`info-item`},ge={class:`info-value`},_e={class:`info-item`},ve={class:`info-value`},E={class:`info-item`},D={class:`info-value`},O={class:`info-item`},k={class:`info-value`},A={class:`summary-header`},j={class:`info-list`},M={class:`info-item`},N={class:`info-value`},P={class:`info-item`},F={class:`info-value`},ye={class:`info-item`},be={class:`info-value`},xe={class:`info-item`},Se={class:`info-value`},Ce={class:`info-item`},we={class:`info-value`},Te={key:1,class:`result-card result-card-highlight`},Ee={class:`summary-header`},De={class:`info-list`},Oe={class:`info-item`},ke={class:`info-value`,style:{"font-weight":`500`}},Ae={key:0,class:`export-buttons-bar`,style:{display:`flex`,gap:`var(--space-2)`,"flex-wrap":`wrap`,"justify-content":`center`,padding:`var(--space-3) 0`}},je={key:1,id:`preview-3d`,class:`viewer-section viewer-section-hero`},Me={class:`summary-header`},Ne=[`src`],Pe={key:2,id:`preview-3d-placeholder`,class:`viewer-section viewer-section-hero`},Fe={class:`summary-header`},Ie={key:3,id:`candidate-schemes`,class:`viewer-section diagnostic-panel`,style:{"margin-top":`var(--space-3)`}},Le={class:`result-card full-width diagnostic-panel-body`},Re={key:0,style:{color:`var(--primary-color)`,"font-weight":`600`}},ze={key:1,style:{color:`var(--warning-color)`,"font-weight":`600`}},Be={id:`ai-side-action`,class:`viewer-section`},Ve={class:`summary-header`},He={key:0,class:`result-grid`},Ue={class:`result-card`},We={class:`info-list`},Ge={class:`info-item`},Ke={class:`info-value`},qe={class:`info-item`},Je={class:`info-value`},Ye={class:`info-item`},Xe={class:`info-value`},Ze={class:`info-item`},Qe={class:`info-value`},$e={class:`result-card result-card-highlight`},et={class:`info-list`},tt={class:`info-item`},nt={class:`info-value`},rt={class:`info-item`},it={class:`info-value`},at={key:0,class:`info-item`},ot={class:`info-value`},st={class:`info-item`},ct={class:`info-value`},lt={class:`inline-note`,style:{"margin-top":`var(--space-2)`,"font-weight":`600`,"font-size":`1rem`,color:`var(--text-primary)`}},ut={class:`result-card`},dt={key:0},ft={class:`recommendations-list`},pt={class:`recommendation-text`},mt={key:1,style:{"margin-top":`var(--space-3)`}},ht={class:`recommendations-list`},gt={class:`recommendation-text`},_t={key:2,style:{"margin-top":`var(--space-3)`}},vt={class:`recommendations-list`},yt={class:`recommendation-text`},bt={id:`export-cam`,class:`viewer-section`},xt={class:`summary-header`},St={class:`result-card`,style:{"margin-bottom":`var(--space-4)`}},Ct={class:`info-list`},I={class:`info-item`},wt={class:`info-item`},Tt={class:`info-item`},Et={class:`info-item`},Dt={class:`checkbox-group`},Ot={class:`result-grid`},kt={class:`result-card`},At={class:`info-list`},jt={class:`info-item`},Mt={class:`info-value`},Nt={class:`info-item`},Pt={class:`info-value`},Ft={class:`info-item`},It={class:`info-value`},Lt={class:`info-item`},Rt={class:`info-value`},zt={class:`result-card`},Bt={class:`info-list`},Vt={class:`info-item`},Ht={class:`info-value`},Ut={class:`info-item`},Wt={class:`info-value`},Gt={class:`result-card full-width`},Kt={class:`result-card full-width`},qt={class:`recommendations-list`},Jt={class:`recommendation-text`},Yt={key:4,id:`llm-report`,class:`viewer-section`},Xt={class:`summary-header`},Zt={key:0,class:`inline-note`,style:{"margin-bottom":`var(--space-4)`,"font-size":`0.95rem`,color:`var(--text-primary)`}},Qt={class:`result-grid`},$t={key:0,class:`recommendations-list`},en={class:`recommendation-text`},tn={key:2,class:`recommendations-list`},nn={class:`recommendation-text`},rn={key:3,class:`inline-note`},L=l({__name:`ResultView`,setup(l){let L=g(),R=x(),z=f(),B=o({task:null,loading:!0,error:``,selectedSchemeId:null,previewStatus:`idle`,camLoading:!1,camError:``,camPlan:null,camForm:{mold_steel:`P20`,surface_quality:`standard`,controller:`fanuc`,include_gcode:!1}}),an=[{value:`P20`,label:`P20`},{value:`718H`,label:`718H`},{value:`NAK80`,label:`NAK80`},{value:`S136`,label:`S136`},{value:`H13`,label:`H13`}],on=[{value:`standard`,label:`标准`},{value:`fine`,label:`精细`},{value:`mirror`,label:`镜面`}],sn=[{value:`fanuc`,label:`Fanuc`},{value:`siemens`,label:`Siemens`}],cn=async()=>{try{B.task=await b(`/api/status/${L.params.taskId}`,{method:`POST`}),B.task?.best_scheme_id?B.selectedSchemeId=B.task.best_scheme_id:B.task?.candidate_schemes?.length&&(B.selectedSchemeId=B.task.candidate_schemes[0].scheme_id);let e=B.task?.cam_preferences||{};B.camForm.mold_steel=e.mold_steel||`P20`,B.camForm.surface_quality=e.surface_quality||`standard`,B.camForm.controller=e.controller||`fanuc`,B.camForm.include_gcode=!!e.include_gcode,B.previewStatus=`loading`}catch(e){B.error=h(e,`加载任务详情`)}finally{B.loading=!1}};C(()=>{if(!z.user){R.push(`/login`);return}cn()});let V=_(()=>B.task?.candidate_schemes||[]);_(()=>V.value.length===1);let H=_(()=>V.value.length?V.value.find(e=>e.scheme_id===B.selectedSchemeId)||V.value[0]:null),U=_(()=>H.value?.cavity_data||B.task?.cavity_data||null),ln=_(()=>H.value?.key_info||B.task?.key_info||null),W=_(()=>H.value?.html_file||B.task?.html_file||``),G=_(()=>H.value?.dfm_violations||[]),un=_(()=>U.value?.injection_system||B.task?.plan_result?.injection_system||null),dn=_(()=>H.value?.side_actions||U.value?.side_actions||B.task?.side_actions||null),fn=e=>{let t=String(e||``).match(/<!--SIDE_ACTION_AI_BEGIN-->\s*([\s\S]*?)\s*<!--SIDE_ACTION_AI_END-->/);if(!t)return null;try{return JSON.parse(t[1])}catch(e){return console.warn(`AI 倒扣分析解析失败:`,e),null}},pn=e=>{let t=String(e||``).match(/<!--DESIGN_REPORT_BEGIN-->\s*([\s\S]*?)\s*<!--DESIGN_REPORT_END-->/);if(!t)return null;try{return JSON.parse(t[1])}catch(e){return console.warn(`LLM 设计报告解析失败:`,e),null}},K=(e,t=`ai`)=>{if(!e||typeof e!=`object`)return null;let n=[`required`,`not_required`,`manual_review`].includes(e.status)?e.status:`manual_review`,r=[`slider`,`lifter`,`mixed`,`none`,`manual_review`].includes(e.mechanism_recommendation)?e.mechanism_recommendation:`manual_review`,i=Number(e.confidence),a={required:`需要倒扣/抽芯`,not_required:`无需倒扣/抽芯`,manual_review:`需人工确认`};return{source:t,status:n,statusLabel:a[n],mechanismRecommendation:r,mechanismLabel:{slider:`优先滑块`,lifter:`优先斜顶`,mixed:`滑块 + 斜顶`,none:`无需侧向机构`,manual_review:`人工评审`}[r],confidence:Number.isFinite(i)?Math.max(0,Math.min(i,1)):null,conclusion:e.conclusion||a[n],summary:e.summary||``,reasons:Array.isArray(e.reasons)?e.reasons.filter(Boolean).slice(0,5):[],standardAdvice:Array.isArray(e.standard_advice)?e.standard_advice.filter(Boolean).slice(0,5):[],manualReviewItems:Array.isArray(e.manual_review_items)?e.manual_review_items.filter(Boolean).slice(0,4):[]}},mn=_(()=>{let e=dn.value;if(!e||typeof e!=`object`)return null;let t=e.summary||{},n=(e.slider_mechanisms||[]).length,r=(e.lifter_mechanisms||[]).length,i=n+r,a=n&&r?`mixed`:n?`slider`:r?`lifter`:`none`,o=i>0?`required`:t.total_undercut_faces===0?`not_required`:`manual_review`;return K({status:o,confidence:.55,conclusion:o===`required`?`规则分析判断当前产品需要倒扣/抽芯机构`:o===`not_required`?`规则分析未发现必须采用倒扣/抽芯机构的特征`:`当前规则结果不足以完成稳定判断,建议人工复核`,mechanism_recommendation:a===`none`?`none`:a,summary:o===`required`?`检测到 ${n} 个滑块需求、${r} 个斜顶需求,建议先按标准机构路线做结构评审。`:o===`not_required`?`当前方案未发现明显倒扣特征,可优先按常规模具结构推进。`:`现有数据可用于初筛,但不足以替代工程师对复杂倒扣的最终确认。`,reasons:[i>0?`规则分析识别出 ${i} 处侧向机构需求`:`规则分析未识别出明确侧向机构需求`,t.complexity?`当前复杂度判定为 ${t.complexity}`:`当前复杂度信息不足`,`当前倒扣方案若存在大行程滑块,优先按气动抽芯条件评估`].filter(Boolean),standard_advice:(e.recommendations||[]).slice(0,4),manual_review_items:[`结合 3D 预览复核倒扣是否可通过改产品取消`,`确认侧向机构与顶出、冷却、分型面是否存在干涉`]},`rules`)});_(()=>{let e={critical:0,high:0,medium:0,low:0};return(G.value||[]).forEach(t=>{let n=String(t.level||`medium`).toLowerCase();e[n]===void 0?e.medium+=1:e[n]+=1}),e});let q=_(()=>K(fn(B.task?.llm_report||``),`ai`)||mn.value),J=_(()=>{let e=H.value?.side_actions?.summary||{};return{total_slider_count:e.total_slider_count??0,total_lifter_count:e.total_lifter_count??0,total_mechanism_count:e.total_mechanism_count??0,complexity:e.complexity||`未知`}}),Y=_(()=>pn(B.task?.llm_report||``)),hn=_(()=>Y.value&&(Y.value.sections&&Y.value.sections.length>0||!!Y.value.overview)),gn=_(()=>(Y.value?.sections||[]).filter(e=>e.type===`issues`?e.items?.length>0:e.type===`params_table`?e.rows?.length>0:e.type===`recommendations`?e.items?.length>0:!0));_(()=>{let e=B.task?.stage_timings||{};return Object.entries(e).filter(([,e])=>typeof e==`number`).sort((e,t)=>t[1]-e[1])});let _n=_(()=>{let e={critical:0,high:1,medium:2,low:3};return[...B.task?.analysis_result?.design_recommendations||[]].sort((t,n)=>(e[t.priority]??99)-(e[n.priority]??99))});_(()=>_n.value[0]||null);let X=_(()=>G.value?.length||0),vn=_(()=>{let e=U.value?.mold_cavities?.cavity_count;if(typeof e==`number`)return e;let t=U.value?.mold_cavities||ln.value?.mold_cavities||{};return t.cavity_count||Object.keys(t).filter(e=>e.startsWith(`cavity_`)).length||1});_(()=>X.value?X.value>=4?`高风险`:X.value>=2?`中风险`:`低风险`:`低风险`);let yn=[{id:`candidate-schemes`,label:`方案`},{id:`preview-3d`,label:`预览`},{id:`ai-side-action`,label:`AI倒扣分析`},{id:`export-cam`,label:`CAM/CNC`},{id:`llm-report`,label:`设计报告`}],bn=e=>e.map((e,t)=>{let n={_rowId:t};return e.forEach((e,t)=>{n[`col_`+t]=e}),n}),Z=e=>{e&&(B.selectedSchemeId=e),B.previewStatus=`loading`,B.camPlan=null,B.camError=``},xn=()=>{B.previewStatus=`loaded`},Sn=()=>{B.previewStatus=`error`},Q=e=>{if(!e)return`N/A`;if(e.parting?.axis)return`${e.parting.axis} 轴`;let t=e.parting?.direction;return Array.isArray(t)?`[${t.map(e=>Number(e).toFixed(2)).join(`, `)}]`:`N/A`};_(()=>B.task?.analysis_result?.detected_features||[]);let Cn=async(e,t)=>{let n={};z.token&&(n.Authorization=`Bearer ${z.token}`);let r=await fetch(e,{headers:n});if(!r.ok)throw Error(`下载失败 (${r.status}): 无法下载,需要授权`);let i=await r.blob(),a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(a)},$=async e=>{try{let t=L.params.taskId,n=await b(`/api/export-mold`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({task_id:t,scheme_id:H.value?.scheme_id||B.selectedSchemeId,formats:[e],components:[`cavity`,`core`,`parting_surface`]})});if(n.status===`success`&&n.data.files){for(let e of n.data.files){let n=e.relative_path||(e.filepath?e.filepath.replace(/\\/g,`/`).split(`/`).slice(-2).join(`/`):``);await Cn(e.download_path||`/api/export-download/${encodeURI(n)}?task_id=${encodeURIComponent(t)}`,e.filename)}y(`已导出 ${n.data.files.length} 个 ${e.toUpperCase()} 文件`,`success`)}else n.data.errors&&n.data.errors.length>0&&y(`导出失败: ${n.data.errors[0]}`,`error`)}catch(e){y(`导出失败: ${e.message}`,`error`)}},wn=async()=>{try{B.camLoading=!0,B.camError=``;let e={task_id:L.params.taskId,scheme_id:H.value?.scheme_id,mold_steel:B.camForm.mold_steel,surface_quality:B.camForm.surface_quality,controller:B.camForm.controller,include_gcode:B.camForm.include_gcode},t=await b(`/api/cam/plan`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});B.camPlan=t?.data||null,t?.cam_preferences&&(B.camForm.mold_steel=t.cam_preferences.mold_steel||B.camForm.mold_steel,B.camForm.surface_quality=t.cam_preferences.surface_quality||B.camForm.surface_quality,B.camForm.controller=t.cam_preferences.controller||B.camForm.controller,B.camForm.include_gcode=!!t.cam_preferences.include_gcode),y(`CAM 计划生成完成`,`success`)}catch(e){B.camPlan=null,B.camError=e.message||`CAM 计划生成失败`,y(`CAM 计划生成失败: ${B.camError}`,`error`)}finally{B.camLoading=!1}};return(o,l)=>{let f=s(`t-button`),h=s(`t-alert`),g=s(`t-tag`),_=s(`t-table-column`),y=s(`t-table`),b=s(`t-option`),x=s(`t-select`),C=s(`t-loading`);return n(),S(`div`,ne,[m(`div`,re,[w(f,{variant:`text`,onClick:l[0]||=e=>c(R).back()},{default:e(()=>[...l[13]||=[m(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[m(`path`,{d:`M19 12H5M12 19l-7-7 7-7`})],-1),d(` 返回 `,-1)]]),_:1}),l[14]||=m(`h1`,null,`分析结果`,-1)]),w(C,{loading:B.loading,text:`加载中...`},{default:e(()=>[B.error?(n(),p(h,{key:0,theme:`error`,message:B.error},null,8,[`message`])):B.task?(n(),S(`div`,ie,[m(`div`,ae,[m(`h2`,null,a(B.task.filename),1),w(g,{type:B.task.status===`completed`?`success`:`danger`},{default:e(()=>[d(a(B.task.status),1)]),_:1},8,[`type`])]),m(`div`,oe,[(n(),S(v,null,t(yn,e=>m(`a`,{key:e.id,class:`anchor-pill`,href:`#`+e.id},a(e.label),9,se)),64))]),m(`div`,ce,[m(`div`,{class:`result-card result-card-highlight`,style:{cursor:`pointer`},onClick:l[1]||=e=>Z(H.value?.scheme_id)},[m(`div`,le,[l[15]||=m(`h3`,null,`推荐方案`,-1),w(g,{theme:`primary`},{default:e(()=>[d(a(H.value?.title||H.value?.scheme_id||`方案待定`),1)]),_:1})]),m(`div`,ue,[m(`div`,de,[l[16]||=m(`span`,{class:`info-label`},`方案说明`,-1),m(`span`,fe,a(H.value?.summary||H.value?.reason||`基于当前几何与制造约束自动推荐`),1)]),m(`div`,pe,[l[17]||=m(`span`,{class:`info-label`},`分型方向`,-1),m(`span`,me,a(Q(H.value)),1)]),m(`div`,he,[l[18]||=m(`span`,{class:`info-label`},`模具结构`,-1),m(`span`,ge,a(H.value?.mold_structure_type===`two_half_cavity`?`两板半腔(无独立模芯)`:`型腔 + 模芯`),1)]),m(`div`,_e,[l[19]||=m(`span`,{class:`info-label`},`分型面位置`,-1),m(`span`,ve,a(H.value?.offset_label||`中面`),1)]),m(`div`,E,[l[20]||=m(`span`,{class:`info-label`},`型腔数`,-1),m(`span`,D,a(vn.value)+` 腔`,1)]),m(`div`,O,[l[21]||=m(`span`,{class:`info-label`},`预计成型周期`,-1),m(`span`,k,a(un.value?.overall_assessment?.estimated_cycle_time||`N/A`)+` s`,1)])])]),V.value.length>1?(n(),S(`div`,{key:0,class:`result-card result-card-highlight`,style:{cursor:`pointer`},onClick:l[2]||=e=>Z(V.value[1]?.scheme_id)},[m(`div`,A,[l[23]||=m(`h3`,null,`备选方案`,-1),w(g,{theme:`warning`},{default:e(()=>[...l[22]||=[d(`1 个备选`,-1)]]),_:1})]),m(`div`,j,[(n(!0),S(v,null,t(V.value.slice(1,2),e=>(n(),S(v,{key:`alt-`+e.scheme_id},[m(`div`,M,[l[24]||=m(`span`,{class:`info-label`},`方案说明`,-1),m(`span`,N,a(e.summary||e.reason||`暂无说明`),1)]),m(`div`,P,[l[25]||=m(`span`,{class:`info-label`},`分型方向`,-1),m(`span`,F,a(Q(e)),1)]),m(`div`,ye,[l[26]||=m(`span`,{class:`info-label`},`模具结构`,-1),m(`span`,be,a(e.mold_structure_type===`two_half_cavity`?`两板半腔(无独立模芯)`:`型腔 + 模芯`),1)]),m(`div`,xe,[l[27]||=m(`span`,{class:`info-label`},`分型面位置`,-1),m(`span`,Se,a(e.offset_label||`中面`),1)]),m(`div`,Ce,[l[28]||=m(`span`,{class:`info-label`},`方案总分`,-1),m(`span`,we,a(c(T)(e.score)),1)])],64))),128))])])):(n(),S(`div`,Te,[m(`div`,Ee,[l[30]||=m(`h3`,null,`方案概览`,-1),w(g,{theme:`success`},{default:e(()=>[...l[29]||=[d(`单一方案`,-1)]]),_:1})]),m(`div`,De,[m(`div`,Oe,[l[31]||=m(`span`,{class:`info-label`},`详细方案说明`,-1),m(`span`,ke,a(H.value?.summary||H.value?.reason||`当前仅生成 1 套可用分模方案,已在推荐方案区域展示核心参数。`),1)])])]))]),B.task.status===`completed`?(n(),S(`div`,Ae,[w(f,{type:`primary`,size:`small`,onClick:l[3]||=e=>$(`step`),title:`导出装配体STEP格式(UG/FreeCAD/SolidWorks通用)`},{default:e(()=>[...l[32]||=[d(` 📦 导出 STEP `,-1)]]),_:1}),w(f,{type:`default`,size:`small`,onClick:l[4]||=e=>$(`iges`),title:`导出IGES格式(兼容旧系统)`},{default:e(()=>[...l[33]||=[d(` 导出 IGES `,-1)]]),_:1}),w(f,{type:`default`,size:`small`,onClick:l[5]||=e=>$(`stl`),title:`导出STL网格格式(3D打印预览)`},{default:e(()=>[...l[34]||=[d(` 导出 STL `,-1)]]),_:1}),w(f,{type:`default`,size:`small`,onClick:l[6]||=e=>$(`brep`),title:`导出BRep格式(FreeCAD原生)`},{default:e(()=>[...l[35]||=[d(` 导出 BRep `,-1)]]),_:1})])):u(``,!0),W.value?(n(),S(`div`,je,[m(`div`,Me,[l[37]||=m(`h3`,null,`3D 预览`,-1),w(g,{theme:`primary`},{default:e(()=>[...l[36]||=[d(`重点区域`,-1)]]),_:1})]),B.previewStatus===`error`?(n(),p(h,{key:0,theme:`warning`,title:`预览加载失败`,message:`HTML 已生成但加载异常,请检查该链接是否可访问:`+W.value,style:{"margin-bottom":`var(--space-3)`}},null,8,[`message`])):u(``,!0),(n(),S(`iframe`,{key:W.value,src:W.value,class:`viewer-frame viewer-frame-hero`,onLoad:xn,onError:Sn},null,40,Ne))])):(n(),S(`div`,Pe,[m(`div`,Fe,[l[39]||=m(`h3`,null,`3D 预览`,-1),w(g,{theme:`warning`},{default:e(()=>[...l[38]||=[d(`未生成`,-1)]]),_:1})]),w(h,{theme:`warning`,title:`预览未生成`,message:`当前任务没有返回 HTML 预览链接,属于未生成状态。`})])),V.value.length>1?(n(),S(`div`,Ie,[l[40]||=m(`summary`,null,`📊 方案对比`,-1),m(`div`,Le,[w(y,{data:V.value.slice(0,2),"row-key":`scheme_id`,stripe:``,hover:``,onRowClick:l[7]||=e=>Z(e.row.scheme_id)},{default:e(()=>[w(_,{title:`方案`},{default:e(({rowIndex:e})=>[e===0?(n(),S(`span`,Re,`★ 推荐方案`)):(n(),S(`span`,ze,`备选方案`))]),_:1}),w(_,{title:`方向`},{default:e(({row:e})=>[d(a(Q(e)),1)]),_:1}),w(_,{title:`位置`},{default:e(({row:e})=>[d(a(e.offset_label||`中面`),1)]),_:1}),w(_,{title:`总分`},{default:e(({row:e})=>[d(a(c(T)(e.score)),1)]),_:1}),w(_,{title:`可制造性`},{default:e(({row:e})=>[d(a(c(T)(e.score_breakdown?.manufacturability||0)),1)]),_:1}),w(_,{title:`分型质量`},{default:e(({row:e})=>[d(a(c(T)(e.score_breakdown?.parting_quality||0)),1)]),_:1}),w(_,{title:`倒扣数`},{default:e(({row:e})=>[d(a(e.key_info?.quality_considerations?.undercut_count||0),1)]),_:1}),w(_,{title:`锁模力`},{default:e(({row:e})=>[d(a(e.cavity_data?.manufacturing_info?.estimated_clamping_force||`N/A`),1)]),_:1})]),_:1},8,[`data`])])])):u(``,!0),m(`div`,Be,[m(`div`,Ve,[l[42]||=m(`h3`,null,`AI 倒扣与抽芯分析`,-1),q.value?(n(),p(g,{key:0,type:q.value.status===`required`?`danger`:q.value.status===`not_required`?`success`:`warning`},{default:e(()=>[d(a(q.value.statusLabel),1)]),_:1},8,[`type`])):(n(),p(g,{key:1,theme:`warning`},{default:e(()=>[...l[41]||=[d(`未生成`,-1)]]),_:1}))]),q.value?(n(),S(`div`,He,[m(`div`,Ue,[l[47]||=m(`h4`,null,`规则检测摘要`,-1),m(`div`,We,[m(`div`,Ge,[l[43]||=m(`span`,{class:`info-label`},`检测状态`,-1),m(`span`,Ke,a(J.value.total_mechanism_count>0?`检测到倒扣`:`未检测到倒扣`),1)]),m(`div`,qe,[l[44]||=m(`span`,{class:`info-label`},`滑块数量`,-1),m(`span`,Je,a(J.value.total_slider_count||0),1)]),m(`div`,Ye,[l[45]||=m(`span`,{class:`info-label`},`斜顶数量`,-1),m(`span`,Xe,a(J.value.total_lifter_count||0),1)]),m(`div`,Ze,[l[46]||=m(`span`,{class:`info-label`},`复杂度`,-1),m(`span`,Qe,a(J.value.complexity||`未知`),1)])])]),m(`div`,$e,[l[52]||=m(`h4`,null,`AI 结论`,-1),m(`div`,et,[m(`div`,tt,[l[48]||=m(`span`,{class:`info-label`},`判断结果`,-1),m(`span`,nt,a(q.value.conclusion),1)]),m(`div`,rt,[l[49]||=m(`span`,{class:`info-label`},`推荐方案`,-1),m(`span`,it,a(q.value.mechanismLabel),1)]),q.value.confidence==null?u(``,!0):(n(),S(`div`,at,[l[50]||=m(`span`,{class:`info-label`},`置信度`,-1),m(`span`,ot,a(Math.round(q.value.confidence*100))+`%`,1)])),m(`div`,st,[l[51]||=m(`span`,{class:`info-label`},`分析来源`,-1),m(`span`,ct,a(q.value.source===`ai`?`AI 模型`:`规则回退`),1)])]),m(`div`,lt,a(q.value.summary||`当前任务未返回更多摘要。`),1)]),m(`div`,ut,[q.value.reasons.length?(n(),S(`div`,dt,[l[53]||=m(`h4`,null,`判断依据`,-1),m(`div`,ft,[(n(!0),S(v,null,t(q.value.reasons,(e,t)=>(n(),S(`div`,{class:`recommendation-item medium`,key:`ai-reason-`+t},[m(`div`,pt,a(e),1)]))),128))])])):u(``,!0),q.value.standardAdvice.length?(n(),S(`div`,mt,[l[54]||=m(`h4`,null,`标准化建议`,-1),m(`div`,ht,[(n(!0),S(v,null,t(q.value.standardAdvice,(e,t)=>(n(),S(`div`,{class:`recommendation-item low`,key:`ai-advice-`+t},[m(`div`,gt,a(e),1)]))),128))])])):u(``,!0),q.value.manualReviewItems.length?(n(),S(`div`,_t,[l[55]||=m(`h4`,null,`人工复核项`,-1),m(`div`,vt,[(n(!0),S(v,null,t(q.value.manualReviewItems,(e,t)=>(n(),S(`div`,{class:`recommendation-item medium`,key:`ai-review-`+t},[m(`div`,yt,a(e),1)]))),128))])])):u(``,!0)])])):(n(),p(h,{key:1,theme:`warning`,title:`AI 结论未生成`,message:`当前任务未生成倒扣与抽芯 AI 分析,请检查模型配置或重新运行分析。`}))]),m(`div`,bt,[m(`div`,xt,[l[57]||=m(`h3`,null,`CAM 与 CNC 加工`,-1),w(g,{theme:`primary`},{default:e(()=>[...l[56]||=[d(`工艺规划`,-1)]]),_:1})]),m(`div`,St,[l[63]||=m(`h4`,null,`CAM 参数`,-1),m(`div`,Ct,[m(`div`,I,[l[58]||=m(`span`,{class:`info-label`},`模具钢`,-1),w(x,{modelValue:B.camForm.mold_steel,"onUpdate:modelValue":l[8]||=e=>B.camForm.mold_steel=e,style:{width:`200px`}},{default:e(()=>[(n(),S(v,null,t(an,e=>w(b,{key:`steel-`+e.value,value:e.value,label:e.label},null,8,[`value`,`label`])),64))]),_:1},8,[`modelValue`])]),m(`div`,wt,[l[59]||=m(`span`,{class:`info-label`},`表面质量`,-1),w(x,{modelValue:B.camForm.surface_quality,"onUpdate:modelValue":l[9]||=e=>B.camForm.surface_quality=e,style:{width:`200px`}},{default:e(()=>[(n(),S(v,null,t(on,e=>w(b,{key:`surf-`+e.value,value:e.value,label:e.label},null,8,[`value`,`label`])),64))]),_:1},8,[`modelValue`])]),m(`div`,Tt,[l[60]||=m(`span`,{class:`info-label`},`控制器`,-1),w(x,{modelValue:B.camForm.controller,"onUpdate:modelValue":l[10]||=e=>B.camForm.controller=e,style:{width:`200px`}},{default:e(()=>[(n(),S(v,null,t(sn,e=>w(b,{key:`ctrl-`+e.value,value:e.value,label:e.label},null,8,[`value`,`label`])),64))]),_:1},8,[`modelValue`])]),m(`div`,Et,[l[62]||=m(`span`,{class:`info-label`},`包含G代码`,-1),m(`label`,Dt,[te(m(`input`,{type:`checkbox`,class:`checkbox-input`,"onUpdate:modelValue":l[11]||=e=>B.camForm.include_gcode=e},null,512),[[ee,B.camForm.include_gcode]]),l[61]||=m(`span`,{class:`checkbox-label`},`返回G代码文本`,-1)])])]),w(f,{type:`primary`,size:`small`,disabled:B.camLoading,onClick:l[12]||=e=>wn(),style:{"margin-top":`var(--space-2)`},title:`基于当前选中方案生成CAM工艺计划`},{default:e(()=>[d(a(B.camLoading?`⏳ 生成中...`:`🔧 生成 CAM 计划`),1)]),_:1},8,[`disabled`])]),B.camError?(n(),p(h,{key:0,theme:`warning`,title:`CAM 计划生成失败`,message:B.camError},null,8,[`message`])):B.camPlan?(n(),S(v,{key:2},[m(`div`,Ot,[m(`div`,kt,[l[68]||=m(`h4`,null,`计划摘要`,-1),m(`div`,At,[m(`div`,jt,[l[64]||=m(`span`,{class:`info-label`},`方案ID`,-1),m(`span`,Mt,a(B.camPlan.scheme_id||`N/A`),1)]),m(`div`,Nt,[l[65]||=m(`span`,{class:`info-label`},`总工序数`,-1),m(`span`,Pt,a(B.camPlan.summary?.total_operations||0),1)]),m(`div`,Ft,[l[66]||=m(`span`,{class:`info-label`},`预计总时长`,-1),m(`span`,It,a(c(T)(B.camPlan.summary?.total_estimated_time_min||0))+` min`,1)]),m(`div`,Lt,[l[67]||=m(`span`,{class:`info-label`},`方案可信度`,-1),m(`span`,Rt,a(c(T)(B.camPlan.confidence?.score||0)),1)])])]),m(`div`,zt,[l[71]||=m(`h4`,null,`刀具建议`,-1),m(`div`,Bt,[m(`div`,Vt,[l[69]||=m(`span`,{class:`info-label`},`粗加工刀具`,-1),m(`span`,Ht,a(B.camPlan.tooling_suggestion?.roughing_tool?.tool_id||`N/A`),1)]),m(`div`,Ut,[l[70]||=m(`span`,{class:`info-label`},`精加工刀具`,-1),m(`span`,Wt,a(B.camPlan.tooling_suggestion?.finishing_tool?.tool_id||`N/A`),1)])])])]),m(`div`,Gt,[l[72]||=m(`h4`,null,`工序计划`,-1),w(y,{data:B.camPlan.process_plan||[],"row-key":`seq`,stripe:``},{default:e(()=>[w(_,{colKey:`seq`,title:`序号`}),w(_,{colKey:`operation`,title:`工序`}),w(_,{title:`刀具`},{default:e(({row:e})=>[d(a(e.tool_id||`N/A`),1)]),_:1}),w(_,{title:`主轴转速`},{default:e(({row:e})=>[d(a(c(T)(e.spindle_speed_rpm||0)),1)]),_:1}),w(_,{title:`进给率`},{default:e(({row:e})=>[d(a(c(T)(e.feed_rate_mm_min||0)),1)]),_:1}),w(_,{title:`预计时长(min)`},{default:e(({row:e})=>[d(a(c(T)(e.estimated_time_min||0)),1)]),_:1})]),_:1},8,[`data`])]),m(`div`,Kt,[l[73]||=m(`h4`,null,`制造风险提示`,-1),m(`div`,qt,[(n(!0),S(v,null,t(B.camPlan.manufacturing_warnings||[],(e,t)=>(n(),S(`div`,{class:`recommendation-item medium`,key:`cam-warn-`+t},[m(`div`,Jt,a(e),1)]))),128))])])],64)):(n(),p(h,{key:1,theme:`warning`,title:`尚未生成 CAM 计划`,message:`点击上方"生成 CAM 计划"后,将返回工序计划、刀具建议与制造风险提示。`}))]),hn.value?(n(),S(`div`,Yt,[m(`div`,Xt,[l[74]||=m(`h3`,null,`LLM 设计报告`,-1),w(g,{type:(Y.value?.overall_score||0)>=7?`success`:(Y.value?.overall_score||0)>=5?`warning`:`danger`},{default:e(()=>[d(` 评分 `+a(Y.value?.overall_score||`N/A`)+` / 10 `,1)]),_:1},8,[`type`])]),Y.value?.overview?(n(),S(`div`,Zt,a(Y.value?.overview),1)):u(``,!0),m(`div`,Qt,[(n(!0),S(v,null,t(gn.value,(e,o)=>(n(),S(`div`,{key:`dr-sec-`+o,class:r([`result-card`,e.type===`issues`?`result-card-highlight`:``])},[m(`h4`,{style:i(e.type===`issues`?`color: var(--danger-color);`:``)},a(e.heading),5),e.type===`issues`?(n(),S(`div`,$t,[(n(!0),S(v,null,t(e.items,(e,t)=>(n(),S(`div`,{key:`dr-issue-`+t,class:r([`recommendation-item`,e.level===`high`?`high`:e.level===`medium`?`medium`:`low`])},[m(`span`,{class:r([`priority-badge`,e.level||`medium`]),style:{"margin-right":`var(--space-1)`}},a(e.level===`high`?`🔴`:e.level===`medium`?`🟡`:`🟢`),3),m(`div`,en,a(e.content),1)],2))),128))])):e.type===`params_table`?(n(),p(y,{key:1,columns:e.headers.map((e,t)=>({colKey:`col_`+t,title:e})),data:bn(e.rows),"row-key":`_rowId`,stripe:``,bordered:``},null,8,[`columns`,`data`])):e.type===`recommendations`?(n(),S(`div`,tn,[(n(!0),S(v,null,t(e.items,(e,t)=>(n(),S(`div`,{class:`recommendation-item low`,key:`dr-rec-`+t},[m(`div`,nn,`💡 `+a(e),1)]))),128))])):(n(),S(`div`,rn,a(JSON.stringify(e)),1))],2))),128))])])):u(``,!0)])):u(``,!0)]),_:1},8,[`loading`])])}}});export{L as default};