import{j as le,c as v,a as e,w as n,k as I,F as $,i as c,l as Q,E as _,h as V,r as d,o,m as A,n as u,f as y,p as b,d as w,t as g,B as te,g as ae}from"./index-CeNpw27z.js";import{c as ne}from"./perm-DCTK2KrM.js";import{m as oe,P as se}from"./help-92MqPoF4.js";import{l as ie}from"./stations-DTFB--m9.js";const re={slot:"header",style:{display:"flex","justify-content":"space-between","align-items":"center"}},ue={key:1},de={key:1,style:{color:"#909399"}},pe={slot:"header",style:{display:"flex","justify-content":"space-between","align-items":"center"}},me={key:0,style:{color:"#909399"}},ce={style:{display:"flex",gap:"4px"}},be={__name:"Scan",setup(fe){const L=c("entry"),U=c(1),O=c(20),G=c(0),s=Q({stationNo:1,sn:""}),f=c([]),T=c(""),J=c(!1),r=c(null),E=c(!1),x=Q({sn:"",orderNo:""}),q=c([]),K=c([]);function W(t){switch(t.logic){case"GE":return` ≥${t.target}${t.unit}`;case"LE":return` ≤${t.target}${t.unit}`;case"GT":return` >${t.target}${t.unit}`;case"LT":return` <${t.target}${t.unit}`;case"RANGE":return` [${t.min},${t.max}]${t.unit}`;case"EQUAL":return` =${t.target}${t.unit}`;default:return t.name||""}}async function B(){if(!s.sn)return _.warning("请先输入工件SN");r.value=null;try{const t=await V.get("/process-steps",{params:{stationNo:s.stationNo}})||[];f.value=t.map(a=>({...a,value:"",text:""})),T.value="",f.value.length||_.warning(`工位${s.stationNo} 未配置启用的工艺流程,请到「工艺流程」维护`),F()}catch{f.value=[]}}async function F(){if(s.sn)try{const t=await V.get("/bind-panel",{params:{sn:s.sn,processCode:s.stationNo}})||null;t!=null&&t.required&&t.required.forEach(a=>{a._input=""}),r.value=t}catch{r.value=null}}async function R(t){const a=(t._input||"").trim();if(!a)return _.warning("请先输入绑定值(电气件扫码SN / 结构件批次号)");E.value=!0;try{await V.post("/binds",{sn:s.sn,orderNo:"",processCode:s.stationNo,stationNo:s.stationNo,items:[{materialCode:t.materialCode,bindValue:a}]}),_.success("绑定成功"),F()}catch{}E.value=!1}async function X(){var a,S;if(!s.sn)return _.warning("请输入SN");if(!f.value.length)return _.warning("该工位未配置工艺步骤,无法报工");if((a=r.value)!=null&&a.enabled&&!((S=r.value)!=null&&S.complete))return _.warning("装配物料未绑齐,请先完成装机绑定:"+(r.value.missing||""));const t=f.value.filter(m=>m.collectType!=="NONE"&&(m.text!==""||m.value!=="")).map(m=>({stepId:m.id,name:m.name,value:Number(m.value)||0,text:m.text||String(m.value||"")}));await V.post("/workpiece/process/report",{sn:s.sn,processCode:s.stationNo,stationNo:s.stationNo,steps:t}),_.success("报工成功"),f.value=[],r.value=null,Object.assign(s,{sn:""}),C()}async function C(){const t=await V.get("/scan/records",{params:{...x,page:U.value,pageSize:O.value}});q.value=(t==null?void 0:t.list)||[],G.value=(t==null?void 0:t.total)||0}function Y(t){t==="records"&&!q.value.length&&C()}return le(async()=>{K.value=await ie(),s.stationNo&&B()}),(t,a)=>{const S=d("el-option"),m=d("el-select"),N=d("el-form-item"),k=d("el-input"),h=d("el-tag"),D=d("el-form"),M=d("el-button"),i=d("el-table-column"),P=d("el-table"),j=d("el-card"),z=d("el-alert"),H=d("el-tab-pane"),Z=d("el-pagination"),ee=d("el-tabs");return o(),v($,null,[e(j,null,{default:n(()=>[e(ee,{modelValue:L.value,"onUpdate:modelValue":a[5]||(a[5]=l=>L.value=l),onTabChange:Y},{default:n(()=>[e(H,{label:"报工录入",name:"entry"},{default:n(()=>[e(D,{inline:""},{default:n(()=>[e(N,{label:"工位"},{default:n(()=>[e(m,{modelValue:s.stationNo,"onUpdate:modelValue":a[0]||(a[0]=l=>s.stationNo=l),placeholder:"请选择工位",style:{width:"120px"},onChange:B},{default:n(()=>[(o(!0),v($,null,A(K.value,l=>(o(),u(S,{key:l,value:l,label:`工位${l}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(N,{label:"工件SN"},{default:n(()=>[e(k,{modelValue:s.sn,"onUpdate:modelValue":a[1]||(a[1]=l=>s.sn=l),placeholder:"扫码或手输",style:{width:"190px"},onChange:B},null,8,["modelValue"])]),_:1}),e(N,null,{default:n(()=>[f.value.length?(o(),u(h,{key:0,type:"success",size:"small"},{default:n(()=>[...a[6]||(a[6]=[y("已自动载入当前工位应做步骤",-1)])]),_:1})):b("",!0)]),_:1})]),_:1}),f.value.length?(o(),u(j,{key:0,shadow:"never",style:{"margin-bottom":"12px"}},{default:n(()=>[w("div",re,[w("b",null,"工位 "+g(s.stationNo)+" 参数采集"+g(T.value?"("+T.value+")":""),1),I(ne)("produce.scan")?(o(),u(M,{key:0,type:"primary",size:"small",loading:J.value,onClick:X},{default:n(()=>[...a[7]||(a[7]=[y("提交报工",-1)])]),_:1},8,["loading"])):b("",!0)]),e(P,{data:f.value,border:"",size:"small"},{default:n(()=>[e(i,{prop:"seq",label:"步骤",width:"60",align:"center"}),e(i,{prop:"name",label:"步骤名称","min-width":"130"}),e(i,{label:"采集方式",width:"130",align:"center"},{default:n(({row:l})=>[l.collectType==="AUTO"?(o(),u(h,{key:0,type:"warning",size:"small"},{default:n(()=>[...a[8]||(a[8]=[y("拧紧枪自动",-1)])]),_:1})):l.collectType==="MANUAL"?(o(),u(h,{key:1,type:"primary",size:"small"},{default:n(()=>[...a[9]||(a[9]=[y("手填",-1)])]),_:1})):(o(),u(h,{key:2,type:"info",size:"small"},{default:n(()=>[...a[10]||(a[10]=[y("仅记录",-1)])]),_:1}))]),_:1}),e(i,{label:"采集值","min-width":"180"},{default:n(({row:l})=>[l.collectType!=="NONE"?(o(),u(k,{key:0,modelValue:l.value,"onUpdate:modelValue":p=>l.value=p,placeholder:"采集值(可空)",style:{width:"130px"}},null,8,["modelValue","onUpdate:modelValue"])):(o(),v("span",ue,"-"))]),_:1}),e(i,{label:"判定标准","min-width":"200"},{default:n(({row:l})=>[l.criteria.length?(o(!0),v($,{key:0},A(l.criteria,p=>(o(),u(h,{key:p.id,size:"small",style:{"margin-right":"4px"}},{default:n(()=>[y(g(p.name)+g(W(p)),1)]),_:2},1024))),128)):(o(),v("span",de,"未设标准"))]),_:1})]),_:1},8,["data"])]),_:1})):b("",!0),r.value?(o(),u(j,{key:1,shadow:"never",style:{"margin-bottom":"12px","border-color":"var(--el-color-primary)"}},{default:n(()=>[w("div",pe,[w("b",null,"装配工位 "+g(s.stationNo)+" 装机绑定(装配物料)",1),r.value.enabled&&!r.value.complete?(o(),u(z,{key:0,type:"warning",closable:!1,"show-icon":"",style:{flex:"1","margin-left":"16px"},title:"尚未绑齐:"+r.value.missing},null,8,["title"])):r.value.enabled&&r.value.complete?(o(),u(z,{key:1,type:"success",closable:!1,"show-icon":"",style:{flex:"1","margin-left":"16px"},title:"装配物料已绑齐,可提交报工"})):(o(),u(z,{key:2,type:"info",closable:!1,style:{flex:"1","margin-left":"16px"},title:"该产品未在当前装配工位配置需绑定物料(物料清单「装配工位」为空),不校验"}))]),r.value.required&&r.value.required.length?(o(),u(P,{key:0,data:r.value.required,border:"",size:"small"},{default:n(()=>[e(i,{prop:"materialCode",label:"图号","min-width":"110"}),e(i,{prop:"materialName",label:"物料名称","min-width":"120"}),e(i,{prop:"manageMode",label:"管理方式",width:"120"},{default:n(({row:l})=>[y(g(l.manageMode==="2"?"电气件(SN)":"结构件(批次)"),1)]),_:1}),e(i,{label:"已绑/需绑",width:"100",align:"center"},{default:n(({row:l})=>[w("b",{style:te({color:l.complete?"var(--el-color-success)":"var(--el-color-danger)"})},g(l.boundCount)+"/"+g(l.need),5)]),_:1}),e(i,{label:"已绑定值","min-width":"170"},{default:n(({row:l})=>[(o(!0),v($,null,A(l.bound,p=>(o(),u(h,{key:p,size:"small",style:{"margin-right":"4px"}},{default:n(()=>[y(g(p),1)]),_:2},1024))),128)),l.bound.length?b("",!0):(o(),v("span",me,"未绑定"))]),_:1}),e(i,{label:"绑定操作",width:"230"},{default:n(({row:l})=>[w("div",ce,[e(k,{modelValue:l._input,"onUpdate:modelValue":p=>l._input=p,placeholder:l.manageMode==="2"?"扫码SN":"扫码/输入批次号",size:"small",onKeyup:ae(p=>R(l),["enter"])},null,8,["modelValue","onUpdate:modelValue","placeholder","onKeyup"]),e(M,{size:"small",type:"primary",loading:E.value,onClick:p=>R(l)},{default:n(()=>[...a[11]||(a[11]=[y("绑定",-1)])]),_:1},8,["loading","onClick"])])]),_:1})]),_:1},8,["data"])):b("",!0)]),_:1})):b("",!0),!f.value.length&&!r.value?(o(),u(z,{key:2,type:"info",closable:!1,title:"请选择工位、输入SN后点【载入工艺步骤】;若提示未配置工序步骤,请到「工艺流程」为该工位启用流程并维护工艺步骤"})):b("",!0)]),_:1}),e(H,{label:"报工记录",name:"records",lazy:""},{default:n(()=>[e(D,{inline:""},{default:n(()=>[e(N,{label:"SN"},{default:n(()=>[e(k,{modelValue:x.sn,"onUpdate:modelValue":a[2]||(a[2]=l=>x.sn=l),clearable:"",style:{width:"160px"}},null,8,["modelValue"])]),_:1}),e(N,{label:"工单号"},{default:n(()=>[e(k,{modelValue:x.orderNo,"onUpdate:modelValue":a[3]||(a[3]=l=>x.orderNo=l),clearable:"",style:{width:"160px"}},null,8,["modelValue"])]),_:1}),e(N,null,{default:n(()=>[e(M,{onClick:C},{default:n(()=>[...a[12]||(a[12]=[y("刷新",-1)])]),_:1})]),_:1})]),_:1}),e(P,{data:q.value,border:"",size:"small"},{default:n(()=>[e(i,{prop:"sn",label:"SN","min-width":"130"}),e(i,{prop:"orderNo",label:"工单号","min-width":"130"}),e(i,{prop:"station",label:"工位",width:"80"}),e(i,{prop:"type",label:"类型",width:"110"}),e(i,{prop:"processCode",label:"工位号",width:"80"}),e(i,{prop:"operator",label:"操作人",width:"90"}),e(i,{prop:"time",label:"时间","min-width":"170"})]),_:1},8,["data"]),e(Z,{style:{"margin-top":"12px","justify-content":"flex-end"},background:"",layout:"total, prev, pager, next",total:G.value,"page-size":O.value,"current-page":U.value,"onUpdate:currentPage":a[4]||(a[4]=l=>U.value=l),onCurrentChange:C},null,8,["total","page-size","current-page"])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(se,{data:I(oe),page:"Scan"},null,8,["data"])],64)}}};export{be as default};