1. 移除工单、工件、日排产中的冗余工位组合/接驳台字段 2. 新增工位接驳台编码字段与唯一约束,关联WMS接驳台主数据 3. 重构日排产为工位产量分配模式,替代原接驳台列表 4. 新增备料单工位级字段与分批出库支持 5. 移除定时同步可生产数量,改为WMS实时拉取接口 6. 过滤操作日志,排除登录/退出相关日志 7. 调整仪表盘工序展示逻辑为今日派工路线 8. 新增接驳台维护菜单与基础数据
5 lines
6.6 KiB
JavaScript
5 lines
6.6 KiB
JavaScript
import{c as x,a as e,w as t,k as J,F as S,r as i,o as c,g as Q,f as u,n as f,p as w,t as n,m as W,d as j,h as q,i as A,v as X}from"./index-CeNpw27z.js";import{o as Y}from"./print-CSppA1Xz.js";import{n as Z,P as ee}from"./help-92MqPoF4.js";const re={__name:"Trace",setup(te){const d=A(""),l=A(null),g=A("");async function V(){if(d.value){g.value="",l.value=null;try{l.value=await q.get("/trace",{params:{sn:d.value}})}catch(p){g.value=p.message||"查询失败"}}}async function z(){if(!d.value)return;let p=[];try{const s=await q.get("/process-card",{params:{sn:d.value,check:1}});p=(s==null?void 0:s.missing)||[]}catch{}if(p.length)try{await X.confirm(`以下数据不完整,是否继续打印?
|
||
|
||
${p.map(s=>"· "+s).join(`
|
||
`)}`,"打印流程卡",{type:"warning",confirmButtonText:"继续打印",cancelButtonText:"取消"})}catch{return}await Y("/process-card",{sn:d.value})}function I(p){return{CREATED:"已创建",ONLINE:"生产中",DONE:"已完工",SCRAPPED:"已报废"}[p]||p||"-"}function v(p){return p?String(p).replace("T"," ").slice(0,19):"-"}return(p,s)=>{const R=i("el-input"),k=i("el-form-item"),B=i("el-button"),F=i("el-form"),T=i("el-alert"),_=i("el-descriptions-item"),H=i("el-descriptions"),L=i("el-timeline-item"),G=i("el-timeline"),y=i("el-tab-pane"),r=i("el-table-column"),M=i("el-tag"),C=i("el-table"),U=i("el-tabs"),$=i("el-card");return c(),x(S,null,[e($,null,{default:t(()=>[e(F,{inline:""},{default:t(()=>[e(k,{label:"工件SN"},{default:t(()=>[e(R,{modelValue:d.value,"onUpdate:modelValue":s[0]||(s[0]=a=>d.value=a),style:{width:"220px"},placeholder:"输入SN查询追溯",onKeyup:Q(V,["enter"])},null,8,["modelValue"])]),_:1}),e(k,null,{default:t(()=>[e(B,{type:"primary",onClick:V},{default:t(()=>[...s[1]||(s[1]=[u("追溯查询",-1)])]),_:1})]),_:1}),e(k,null,{default:t(()=>[e(B,{type:"warning",disabled:!d.value,onClick:z},{default:t(()=>[...s[2]||(s[2]=[u("打印流程卡",-1)])]),_:1},8,["disabled"])]),_:1})]),_:1}),g.value?(c(),f(T,{key:0,title:g.value,type:"error","show-icon":"",closable:"",style:{"margin-bottom":"10px"}},null,8,["title"])):w("",!0),l.value?(c(),x(S,{key:1},[e(H,{column:4,border:"",style:{"margin-bottom":"12px"},title:"工件信息"},{default:t(()=>{var a,m,h,N,b;return[e(_,{label:"工件SN"},{default:t(()=>{var o;return[u(n((o=l.value.workpiece)==null?void 0:o.sn),1)]}),_:1}),e(_,{label:"所属工单"},{default:t(()=>{var o;return[u(n((o=l.value.workpiece)==null?void 0:o.orderNo),1)]}),_:1}),(a=l.value.workpiece)!=null&&a.productCode||(m=l.value.order)!=null&&m.productCode?(c(),f(_,{key:0,label:"产品型号"},{default:t(()=>{var o,E,P,D,K,O;return[u(n(((o=l.value.workpiece)==null?void 0:o.productCode)||((E=l.value.order)==null?void 0:E.productCode))+n((P=l.value.workpiece)!=null&&P.productName||(D=l.value.order)!=null&&D.productName?"("+(((K=l.value.workpiece)==null?void 0:K.productName)||((O=l.value.order)==null?void 0:O.productName))+")":""),1)]}),_:1})):w("",!0),e(_,{label:"状态"},{default:t(()=>{var o;return[u(n(I((o=l.value.workpiece)==null?void 0:o.status)),1)]}),_:1}),(h=l.value.workpiece)!=null&&h.currentProcess?(c(),f(_,{key:1,label:"当前工位"},{default:t(()=>{var o;return[u(n((o=l.value.workpiece)==null?void 0:o.currentProcess),1)]}),_:1})):w("",!0),(N=l.value.workpiece)!=null&&N.onlineAt?(c(),f(_,{key:2,label:"进线时间"},{default:t(()=>{var o;return[u(n(v((o=l.value.workpiece)==null?void 0:o.onlineAt)),1)]}),_:1})):w("",!0),(b=l.value.workpiece)!=null&&b.doneAt?(c(),f(_,{key:3,label:"完工时间"},{default:t(()=>{var o;return[u(n(v((o=l.value.workpiece)==null?void 0:o.doneAt)),1)]}),_:1})):w("",!0)]}),_:1}),e(T,{type:"info",closable:!1,style:{"margin-bottom":"12px"},title:"追溯链路:产品型号(物)→ 工单(批次任务)→ 工件(实例SN)。本页展示单个工件的完整生命周期。"}),e(U,null,{default:t(()=>[e(y,{label:"工位时间线"},{default:t(()=>[e(G,null,{default:t(()=>[(c(!0),x(S,null,W(l.value.processTimeline||[],a=>(c(),f(L,{key:a.id,timestamp:a.operator?a.operator+" · "+v(a.endedAt):v(a.endedAt),type:a.result==="NG"?"danger":"success"},{default:t(()=>[u(n(a.processName)+"(工位 "+n(a.stationNo||a.processCode)+")— "+n(a.result),1)]),_:2},1032,["timestamp","type"]))),128))]),_:1})]),_:1}),e(y,{label:"步骤考核数据"},{default:t(()=>[e(C,{data:l.value.stepData||[],border:"",size:"small"},{default:t(()=>[e(r,{prop:"stepName",label:"步骤","min-width":"110"}),e(r,{prop:"criterionName",label:"考核项","min-width":"110"}),e(r,{prop:"value",label:"数值",width:"100"}),e(r,{prop:"isOK",label:"合格",width:"80"},{default:t(({row:a})=>[e(M,{type:a.isOK?"success":"danger"},{default:t(()=>[u(n(a.isOK?"合格":"不合格"),1)]),_:2},1032,["type"])]),_:1}),e(r,{prop:"operator",label:"操作人",width:"90"})]),_:1},8,["data"])]),_:1}),e(y,{label:"拧紧数据"},{default:t(()=>[e(C,{data:l.value.torqueRecords||[],border:"",size:"small"},{default:t(()=>[e(r,{prop:"stationNo",label:"工位",width:"80"}),e(r,{prop:"torque",label:"扭矩",width:"100"}),e(r,{prop:"angle",label:"角度",width:"90"}),e(r,{prop:"result",label:"结果",width:"80"}),e(r,{prop:"operator",label:"操作人",width:"90"}),e(r,{prop:"time",label:"时间","min-width":"160"})]),_:1},8,["data"])]),_:1}),e(y,{label:"成品关联"},{default:t(()=>{var a,m;return[j("p",null,"批次号:"+n((((a=l.value.associationTrace)==null?void 0:a.batchItems)||[]).join(", ")||"无"),1),j("p",null,"电气件SN:"+n((((m=l.value.associationTrace)==null?void 0:m.serialItems)||[]).join(", ")||"无"),1)]}),_:1}),e(y,{label:"装机绑定"},{default:t(()=>{var a,m,h,N;return[e(T,{type:(a=l.value.bindTrace)!=null&&a.complete?"success":"warning",closable:!1,style:{"margin-bottom":"10px"},title:(m=l.value.bindTrace)!=null&&m.complete?"装配物料已全部绑齐 ✓":"装配物料未绑齐:"+(((h=l.value.bindTrace)==null?void 0:h.missing)||""),"show-icon":""},null,8,["type","title"]),e(C,{data:((N=l.value.bindTrace)==null?void 0:N.binds)||[],border:"",size:"small"},{default:t(()=>[e(r,{prop:"processCode",label:"工序",width:"70"}),e(r,{prop:"materialCode",label:"图号","min-width":"110"}),e(r,{prop:"materialName",label:"物料名称","min-width":"110"}),e(r,{prop:"spec",label:"规格","min-width":"90"}),e(r,{prop:"bindType",label:"类型",width:"70"},{default:t(({row:b})=>[u(n(b.bindType==="SN"?"电气件SN":"批次"),1)]),_:1}),e(r,{prop:"bindValue",label:"绑定值(SN/批次)","min-width":"140"}),e(r,{prop:"operator",label:"绑定人",width:"90"}),e(r,{prop:"createdAt",label:"绑定时间","min-width":"165"},{default:t(({row:b})=>[u(n(v(b.createdAt)),1)]),_:1})]),_:1},8,["data"])]}),_:1})]),_:1})],64)):w("",!0)]),_:1}),e(ee,{data:J(Z),page:"Trace"},null,8,["data"])],64)}}};export{re as default};
|