3 lines
22 KiB
JavaScript
3 lines
22 KiB
JavaScript
import{_ as We,j as Qe,c as m,a as t,w as o,k as E,F as _,h as I,i as V,r as i,l as j,z as Xe,o as n,e as G,m as U,n as d,f as r,t as u,d as z,p as k,g as Ze,A as el,E as N}from"./index-CeNpw27z.js";import{j as ll,P as tl}from"./help-92MqPoF4.js";import{l as ol}from"./stations-DTFB--m9.js";import{f as Q}from"./format-Cv489sdL.js";const al={class:"photo-box"},nl={key:1,class:"photo-tip"},rl={class:"photo-box"},sl={key:1,class:"photo-tip"},ul={class:"photo-box"},il={key:1,class:"photo-tip"},dl={key:1},pl={key:1},ml={class:"pager"},cl={key:1},fl={key:0,class:"detail-photo"},vl={__name:"Inspect",setup(yl){const A=(()=>{try{return JSON.parse(localStorage.getItem("user"))||null}catch{return null}})(),ue=(A==null?void 0:A.permissionCodes)||[],R=a=>!!A&&(A.roleCode==="SUPER_ADMIN"||ue.includes("*")||ue.includes(a)),Ne=R("sys.inspect:checkin"),ke=R("sys.inspect:point"),Ve=R("sys.inspect:process"),we=R("sys.inspect:done"),he=R("sys.inspect:alarm"),ie=R("sys.inspect:view"),q=A&&(A.name||A.username)||"",Ce=["早班","中班","晚班"],Se=["设备运行正常","安全防护到位","工具齐全","工位清洁"],Oe=["设备故障","物料异常","工艺偏差","安全隐患","其他"],de=[{v:"CHECKIN",l:"开工签到"},{v:"POINT",l:"工位点检"},{v:"PROCESS",l:"过程巡检"},{v:"DONE",l:"完工确认"},{v:"ALARM",l:"异常上报"}],X=a=>(de.find(l=>l.v===a)||{}).l||a||"-",pe=a=>a==="OK"?"合格":a==="NG"?"不合格":a||"-",xe=a=>({CREATED:"已创建",RELEASED:"已发布",IN_PROGRESS:"生产中",DONE:"已完成",PENDING:"待排产",CONFIRMED:"已确认"})[a]||a||"-",me=V("CHECKIN"),O=V(!1),K=V([]),C=j({stationNo:1,shift:"早班",photo:""}),w=j({stationNo:1,items:[],photo:""}),p=j({orderNo:"",order:null,stationNo:1,result:"OK",remark:""}),B=V([]),Z=V(!1),h=j({orderNo:"",order:null,confirmed:!1,remark:""}),g=j({stationNo:1,items:[],photo:"",remark:""}),$=V([]);async function Ue(){try{const a=await I.get("/work-orders");$.value=(a&&Array.isArray(a.list)?a.list:a)||[]}catch{$.value=[]}}function De(a){p.order=$.value.find(l=>l.workOrderNo===a)||null}function Ee(a){h.order=$.value.find(l=>l.workOrderNo===a)||null}async function Ie(){if(!p.stationNo){B.value=[];return}try{const a=await I.get("/process-steps",{params:{stationNo:p.stationNo}}),l=Array.isArray(a)?a:(a==null?void 0:a.list)||[];B.value=l.map(b=>({id:b.id,name:b.name,measured:"",result:"OK",loading:!1}))}catch{B.value=[]}}async function ee(a,l){const b=a.target.files&&a.target.files[0];if(a.target.value="",!b)return;if(!/^image\//.test(b.type))return N.warning("请选择图片文件");const x=new FormData;x.append("file",b);try{const s=await I.post("/inspections/upload",x);l.photo=(s==null?void 0:s.url)||(s!=null&&s.filename?"/api/v1/files/"+s.filename:""),N.success("照片上传成功")}catch{}}async function Ae(){if(!C.shift)return N.warning("请选择班次");O.value=!0;try{await I.post("/inspections",{category:"CHECKIN",shift:C.shift,stationNo:C.stationNo,photo:C.photo,operator:q}),N.success("签到成功"),C.photo=""}finally{O.value=!1}}async function Pe(){if(!w.items.length)return N.warning("请至少勾选一项点检项");O.value=!0;try{await I.post("/inspections",{category:"POINT",stationNo:w.stationNo,items:w.items,photo:w.photo,operator:q}),N.success("点检提交成功"),w.items=[],w.photo=""}finally{O.value=!1}}async function ze(a){if(!p.orderNo)return N.warning("请先选择工单号");a.loading=!0;try{await I.post("/inspections",{category:"PROCESS",orderNo:p.orderNo,processCode:p.stationNo,stepId:a.id,stepName:a.name,measuredValue:String(a.measured??""),result:a.result,remark:p.remark,operator:q}),N.success(`步骤「${a.name}」已上报`)}finally{a.loading=!1}}async function Re(){if(!p.orderNo)return N.warning("请先选择工单号");Z.value=!0;try{const a=await I.post("/inspections/generate-inter-process",{orderNo:p.orderNo}),l=Array.isArray(a)?a:(a==null?void 0:a.data)||[];N.success("已生成《工序间检验记录》"),ae.value=!0,F.value=l}finally{Z.value=!1}}async function Ke(){if(!h.orderNo)return N.warning("请选择工单号");if(!h.confirmed)return
|
|||
|
|
`)],{type:"text/csv;charset=utf-8"}),P=document.createElement("a");P.href=URL.createObjectURL(ne),P.download=`巡检记录_${new Date().toISOString().slice(0,10)}.csv`,P.click(),URL.revokeObjectURL(P.href)}catch{}}return Qe(async()=>{Ue(),J(),K.value=await ol()}),(a,l)=>{const b=i("el-option"),x=i("el-select"),s=i("el-form-item"),ne=i("el-radio-button"),P=i("el-radio-group"),f=i("el-image"),S=i("el-button"),L=i("el-form"),T=i("el-tab-pane"),re=i("el-checkbox"),ye=i("el-checkbox-group"),ge=i("el-alert"),y=i("el-table-column"),M=i("el-input"),_e=i("el-radio"),se=i("el-table"),Me=i("el-empty"),je=i("el-date-picker"),W=i("el-tag"),Ge=i("el-pagination"),D=i("el-descriptions-item"),qe=i("el-descriptions"),Be=i("el-drawer"),He=i("el-tabs"),Fe=i("el-dialog"),Ye=i("el-card"),Je=Xe("loading");return n(),m(_,null,[t(Ye,{class:"inspect-card"},{default:o(()=>{var be;return[t(He,{modelValue:me.value,"onUpdate:modelValue":l[30]||(l[30]=e=>me.value=e)},{default:o(()=>[t(T,{label:"开工签到",name:"CHECKIN"},{default:o(()=>[t(L,{"label-position":"top",class:"pad-form",onSubmit:l[3]||(l[3]=G(()=>{},["prevent"]))},{default:o(()=>[t(s,{label:"工位号"},{default:o(()=>[t(x,{modelValue:C.stationNo,"onUpdate:modelValue":l[0]||(l[0]=e=>C.stationNo=e),placeholder:"请选择工位",style:{width:"100%"}},{default:o(()=>[(n(!0),m(_,null,U(K.value,e=>(n(),d(b,{key:e,label:`工位${e}`,value:e},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(s,{label:"班次"},{default:o(()=>[t(P,{modelValue:C.shift,"onUpdate:modelValue":l[1]||(l[1]=e=>C.shift=e)},{default:o(()=>[(n(),m(_,null,U(Ce,e=>t(ne,{key:e,value:e},{default:o(()=>[r(u(e),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1}),t(s,{label:"签到拍照"},{default:o(()=>[z("input",{type:"file",accept:"image/*",class:"file-input",onChange:l[2]||(l[2]=e=>ee(e,C))},null,32),z("div",al,[C.photo?(n(),d(f,{key:0,src:C.photo,"preview-src-list":[C.photo],fit:"cover",class:"photo-preview","preview-teleported":""},null,8,["src","preview-src-list"])):(n(),m("span",nl,"点击上方按钮拍照上传"))])]),_:1}),t(s,null,{default:o(()=>[E(Ne)?(n(),d(S,{key:0,type:"primary",loading:O.value,onClick:Ae},{default:o(()=>[...l[32]||(l[32]=[r("提交签到",-1)])]),_:1},8,["loading"])):k("",!0)]),_:1})]),_:1})]),_:1}),t(T,{label:"工位点检",name:"POINT"},{default:o(()=>[t(L,{"label-position":"top",class:"pad-form",onSubmit:l[7]||(l[7]=G(()=>{},["prevent"]))},{default:o(()=>[t(s,{label:"工位号"},{default:o(()=>[t(x,{modelValue:w.stationNo,"onUpdate:modelValue":l[4]||(l[4]=e=>w.stationNo=e),placeholder:"请选择工位",style:{width:"100%"}},{default:o(()=>[(n(!0),m(_,null,U(K.value,e=>(n(),d(b,{key:e,label:`工位${e}`,value:e},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(s,{label:"点检项(可多选)"},{default:o(()=>[t(ye,{modelValue:w.items,"onUpdate:modelValue":l[5]||(l[5]=e=>w.items=e)},{default:o(()=>[(n(),m(_,null,U(Se,e=>t(re,{key:e,value:e},{default:o(()=>[r(u(e),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1}),t(s,{label:"点检拍照"},{default:o(()=>[z("input",{type:"file",accept:"image/*",class:"file-input",onChange:l[6]||(l[6]=e=>ee(e,w))},null,32),z("div",rl,[w.photo?(n(),d(f,{key:0,src:w.photo,"preview-src-list":[w.photo],fit:"cover",class:"photo-preview","preview-teleported":""},null,8,["src","preview-src-list"])):(n(),m("span",sl,"点击上方按钮拍照上传"))])]),_:1}),t(s,null,{default:o(()=>[E(ke)?(n(),d(S,{key:0,type:"primary",loading:O.value,onClick:Pe},{default:o(()=>[...l[33]||(l[33]=[r("提交点检",-1)])]),_:1},8,["loading"])):k("",!0)]),_:1})]),_:1})]),_:1}),t(T,{label:"过程巡检",name:"PROCESS"},{default:o(()=>[t(L,{"label-position":"top",class:"pad-form",onSubmit:l[11]||(l[11]=G(()=>{},["prevent"]))},{default:o(()=>[t(s,{label:"工单号(输入搜索)"},{default:o(()=>[t(x,{modelValue:p.orderNo,"onUpdate:modelValue":l[8]||(l[8]=e=>p.orderNo=e),filterable:"",placeholder:"输入工单号搜索",style:{width:"100%"},onChange:De},{default:o(()=>[(n(!0),m(_,null,U($.value,e=>(n(),d(b,{key:e.work
|