DWqZOVY0.js
12.3 KB
import{d as be,u as ve,a as ge,b as ye,r as ke,o as c,c as T,e as n,f as d,w as f,g as e,h as he,i as xe,j as we,_ as Se,t as r,k as m,l as z,F as Ce,m as Te,n as w,p as y,q as Ae,s as h,v as Qe}from"./BtEn9SvP.js";import{_ as Fe}from"./7yIyqIY0.js";import{_ as Ue}from"./3BmF-CSc.js";import{_ as Ne}from"./CIIa_WCh.js";import{_ as Ee}from"./Cba5FCYW.js";import{_ as Pe}from"./BhMHHGjC.js";import{_ as qe}from"./9JBjgwkJ.js";import{_ as Me}from"./D1XImzPn.js";import{_ as $e}from"./B57PMWCO.js";import{u as Ie}from"./sZhUfCvq.js";import{u as Ve}from"./CXAJ3nxo.js";import{u as Re}from"./BW6H2G9j.js";import"./3laQJA1P.js";import"./BP6f2Ivu.js";import"./CKCLIpbs.js";const je={class:"min-h-screen bg-gradient-to-br from-default via-elevated/20 to-primary/10 px-4 py-8"},Oe={class:"mx-auto max-w-md"},ze={class:"space-y-3"},De={class:"flex items-start justify-between gap-3"},Le={class:"text-2xl font-semibold text-highlighted"},Be={class:"text-sm leading-6 text-toned"},Ke={class:"space-y-3"},Ye={class:"space-y-3"},Xe={class:"text-base font-semibold text-highlighted"},Ge={key:3,class:"space-y-3"},He={class:"flex items-center justify-between rounded-lg border border-default px-3 py-2"},Je={class:"text-sm text-muted"},We={class:"font-medium text-highlighted"},Ze={class:"flex items-center justify-between rounded-lg border border-default px-3 py-2"},et={class:"text-sm text-muted"},tt={class:"font-medium text-highlighted"},ot={class:"flex items-center justify-between rounded-lg border border-default px-3 py-2"},st={class:"text-sm text-muted"},it={class:"font-medium text-highlighted"},nt={class:"flex items-center justify-between rounded-lg border border-default px-3 py-2"},rt={class:"text-sm text-muted"},lt={class:"flex items-center justify-between rounded-lg border border-default px-3 py-2"},at={class:"text-sm text-muted"},ct={class:"flex items-center justify-between rounded-lg border border-default px-3 py-2"},ut={class:"text-sm text-muted"},dt={class:"font-medium text-highlighted"},pt={class:"flex items-center justify-between rounded-lg border border-default px-3 py-2"},mt={class:"text-sm text-muted"},ft={class:"font-medium text-highlighted"},_t={class:"space-y-2 rounded-lg border border-default px-3 py-3"},bt={class:"text-sm font-semibold text-highlighted"},vt={key:3,class:"flex flex-wrap gap-2"},gt={class:"space-y-3"},yt=["accept"],kt={key:0,class:"mt-2 text-xs text-muted"},ht={class:"flex w-full justify-end gap-2"},D="/operations",xt=50*1024*1024,jt=be({__name:"sn-query",setup(wt){const{t,locale:L}=ve(),_=ge(),{user:B,logout:K}=ye(),{can:Y,getDeniedReason:X}=Ie(),G=Ve(),F=Re(),M=["image/jpeg","image/png","image/webp","image/heic","video/mp4","video/quicktime","video/webm"],S=y(""),U=y(!1),C=y(""),A=y(!1),u=y(null),N=y(!1),b=y(null),g=y(!1),i=Ae({open:!1,task:null,action:"start",remark:"",testPassed:!0,evidenceFile:null});function H(s){return t(`snManagement.status.${s}`)}function J(s){return{pending:"neutral",in_process:"primary",completed:"success",frozen:"warning",scrapped:"error"}[s]}function W(s){return t(`snManagement.exceptionStatus.${s}`)}function Z(s){return{none:"neutral",open:"error",rework:"warning",closed:"success"}[s]}function ee(s){if(!s)return"-";const o=new Date(s);if(Number.isNaN(o.getTime()))return s;const l=L.value==="zh-CN"?"zh-CN":"en-US";return new Intl.DateTimeFormat(l,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(o)}function $(s){_.add({title:t("permission.toast.title"),description:t(X(D,s)),icon:"i-lucide-shield-alert",color:"warning"})}function I(s){if(!s)return!1;const o=s.trim().toLowerCase();return o.includes("返修")||o.includes("rework")}function te(s){const o=I(s.stepName);return s.status==="pending"?["start","skip"]:s.status==="in_progress"?o?["complete_rework","submit_test","skip"]:["complete_assembly","submit_test","skip"]:s.status==="pending_test"||s.status==="rework"?s.status==="rework"?["complete_rework","skip"]:["submit_test","skip"]:s.status==="failed"?o?["complete_rework","skip"]:["skip"]:[]}function E(s){return t(`operations.actions.${s}`)}function oe(s){return{start:"i-lucide-play",complete_assembly:"i-lucide-wrench",complete_rework:"i-lucide-wrench",submit_test:"i-lucide-flask-conical",skip:"i-lucide-skip-forward"}[s]}function se(s){return s==="skip"?"warning":"primary"}const P=h(()=>Y(D,"operations.skip")),V=h(()=>b.value?te(b.value):[]),R=h(()=>!!i.task&&I(i.task?.stepName)),ie=h(()=>R.value&&i.action==="complete_rework"),ne=h(()=>!(R.value&&i.action==="complete_rework")),re=h(()=>[{label:t("operations.result.pass"),value:!0},{label:t("operations.result.fail"),value:!1}]),Q=h(()=>i.action==="complete_assembly"||i.action==="submit_test"),le=M.join(","),ae=async()=>{K(),await Qe("/login"),_.add({title:t("userMenu.logoutSuccessTitle"),description:t("userMenu.logoutSuccessDescription"),color:"success"})};function ce(s,o){if(o==="skip"&&!P.value){$("operations.skip");return}i.open=!0,i.task=s,i.action=o,i.remark="",i.testPassed=!0,i.evidenceFile=null}function ue(s){const o=s.target,l=o?.files?.[0]??null;if(i.evidenceFile=null,!!l){if(!M.includes(l.type)){_.add({title:t("common.error"),description:t("operations.actions.evidenceTypeInvalid"),icon:"i-lucide-circle-alert",color:"error"}),o&&(o.value="");return}if(l.size>xt){_.add({title:t("common.error"),description:t("operations.actions.evidenceSizeExceeded"),icon:"i-lucide-circle-alert",color:"error"}),o&&(o.value="");return}i.evidenceFile=l}}async function de(s){N.value=!0;try{const o=await F.getOperationTasks({sn:s});b.value=o[0]??null}catch{b.value=null}finally{N.value=!1}}async function j(s){if(!i.task)return;const o=typeof s=="string"?s:i.action;if(o==="skip"&&!P.value){$("operations.skip");return}if(!g.value){if(Q.value&&!i.evidenceFile){_.add({title:t("common.error"),description:t("operations.actions.evidenceRequired"),icon:"i-lucide-circle-alert",color:"error"});return}if(o==="skip"&&!i.remark.trim()){_.add({title:t("common.error"),description:t("operations.actions.skipReasonRequired"),icon:"i-lucide-circle-alert",color:"error"});return}g.value=!0;try{let l;if(Q.value&&i.evidenceFile){const v=await F.uploadOperationEvidence(i.evidenceFile);if(!v.success||!v.relativePath){_.add({title:t("common.error"),description:v.message||t("operations.actions.evidenceUploadFailed"),icon:"i-lucide-circle-alert",color:"error"});return}l=v.relativePath}const k={operator:B.value?.name||"未知操作员",remark:i.remark.trim()||void 0,testPassed:o==="submit_test"?i.testPassed:void 0,workstation:i.task.workstation,stepName:i.task.stepName,evidencePath:l},p=await F.runOperationAction(i.task.id,o,k);if(_.add({title:p.success?t("settings.profile.toastTitle"):t("common.error"),description:p.message,icon:p.success?"i-lucide-check":"i-lucide-circle-alert",color:p.success?"success":"error"}),p.success){i.open=!1;const v=u.value?.sn||S.value.trim().toUpperCase();v&&await q(v)}}catch{_.add({title:t("common.error"),description:t("common.requestFailed"),icon:"i-lucide-circle-alert",color:"error"})}finally{g.value=!1}}}async function q(s){const o=(s??S.value).trim().toUpperCase();if(!o){C.value=t("mobileSnQuery.validation.required"),u.value=null,b.value=null,A.value=!1;return}U.value=!0,C.value="",A.value=!0;try{const k=(await G.getSnItems({sn:o})).find(p=>p.sn.toUpperCase()===o);u.value=k??null,k?await de(k.sn):b.value=null}catch{C.value=t("common.requestFailed"),u.value=null,b.value=null}finally{U.value=!1}}return(s,o)=>{const l=Se,k=Fe,p=Ue,v=ke("UDivider"),x=Ne,O=Ee,pe=Pe,me=qe,fe=Me,_e=$e;return c(),T("main",je,[n("div",Oe,[d(pe,{class:"shadow-sm ring-1 ring-default"},{header:f(()=>[n("div",ze,[n("div",De,[n("h1",Le,r(e(t)("mobileSnQuery.title")),1),d(l,{size:"sm",color:"neutral",variant:"soft",icon:"i-lucide-log-out",label:e(t)("userMenu.logout"),onClick:ae},null,8,["label"])]),n("p",Be,r(e(t)("mobileSnQuery.description")),1)])]),default:f(()=>[n("div",Ke,[d(p,{name:"sn",label:e(t)("mobileSnQuery.form.snLabel"),required:""},{default:f(()=>[d(k,{modelValue:e(S),"onUpdate:modelValue":o[0]||(o[0]=a=>we(S)?S.value=a:null),size:"xl",class:"w-full",placeholder:e(t)("mobileSnQuery.form.snPlaceholder"),onKeydown:he(xe(q,["prevent"]),["enter"])},null,8,["modelValue","placeholder","onKeydown"])]),_:1},8,["label"]),d(l,{block:"",size:"xl",color:"primary",icon:"i-lucide-search",loading:e(U),label:e(t)("mobileSnQuery.form.submit"),onClick:o[1]||(o[1]=()=>q())},null,8,["loading","label"])]),d(v,{class:"my-5"}),n("div",Ye,[n("h2",Xe,r(e(t)("mobileSnQuery.result.title")),1),e(C)?(c(),m(x,{key:0,color:"error",variant:"soft",icon:"i-lucide-circle-alert",title:e(t)("common.error"),description:e(C)},null,8,["title","description"])):e(A)?e(A)&&!e(u)?(c(),m(x,{key:2,color:"warning",variant:"soft",icon:"i-lucide-search-x",description:e(t)("mobileSnQuery.result.emptyState")},null,8,["description"])):e(u)?(c(),T("div",Ge,[n("div",He,[n("span",Je,r(e(t)("mobileSnQuery.result.fields.sn")),1),n("span",We,r(e(u).sn),1)]),n("div",Ze,[n("span",et,r(e(t)("mobileSnQuery.result.fields.workOrderNo")),1),n("span",tt,r(e(u).workOrderNo),1)]),n("div",ot,[n("span",st,r(e(t)("mobileSnQuery.result.fields.currentStep")),1),n("span",it,r(e(u).currentStep),1)]),n("div",nt,[n("span",rt,r(e(t)("mobileSnQuery.result.fields.status")),1),d(O,{color:J(e(u).status),variant:"subtle"},{default:f(()=>[z(r(H(e(u).status)),1)]),_:1},8,["color"])]),n("div",lt,[n("span",at,r(e(t)("mobileSnQuery.result.fields.exceptionStatus")),1),d(O,{color:Z(e(u).exceptionStatus),variant:"subtle"},{default:f(()=>[z(r(W(e(u).exceptionStatus)),1)]),_:1},8,["color"])]),n("div",ct,[n("span",ut,r(e(t)("mobileSnQuery.result.fields.lastAction")),1),n("span",dt,r(e(t)(`snManagement.actions.${e(u).audit.lastAction}`)),1)]),n("div",pt,[n("span",mt,r(e(t)("mobileSnQuery.result.fields.updatedAt")),1),n("span",ft,r(ee(e(u).audit.updatedAt)),1)]),n("div",_t,[n("h3",bt,r(e(t)("mobileSnQuery.result.operationActionsTitle")),1),e(N)?(c(),m(x,{key:0,color:"neutral",variant:"soft",icon:"i-lucide-loader-circle",description:e(t)("mobileSnQuery.result.operationActionsLoading")},null,8,["description"])):e(b)?e(V).length===0?(c(),m(x,{key:2,color:"neutral",variant:"soft",icon:"i-lucide-check-circle-2",description:e(t)("mobileSnQuery.result.operationActionsEmpty")},null,8,["description"])):(c(),T("div",vt,[(c(!0),T(Ce,null,Te(e(V),a=>(c(),m(l,{key:a,icon:oe(a),color:se(a),disabled:e(g)||a==="skip"&&!e(P),loading:e(g),label:E(a),onClick:St=>ce(e(b),a)},null,8,["icon","color","disabled","loading","label","onClick"]))),128))])):(c(),m(x,{key:1,color:"neutral",variant:"soft",icon:"i-lucide-info",description:e(t)("mobileSnQuery.result.operationTaskMissing")},null,8,["description"]))])])):w("",!0):(c(),m(x,{key:1,color:"neutral",variant:"soft",icon:"i-lucide-info",description:e(t)("mobileSnQuery.result.defaultState")},null,8,["description"]))])]),_:1})]),d(_e,{open:e(i).open,"onUpdate:open":o[7]||(o[7]=a=>e(i).open=a),title:E(e(i).action)},{body:f(()=>[n("div",gt,[e(i).action==="submit_test"?(c(),m(p,{key:0,label:e(t)("operations.actions.testResult"),required:""},{default:f(()=>[d(me,{modelValue:e(i).testPassed,"onUpdate:modelValue":o[2]||(o[2]=a=>e(i).testPassed=a),items:e(re)},null,8,["modelValue","items"])]),_:1},8,["label"])):w("",!0),d(p,{label:e(t)("operations.actions.remarkLabel"),required:e(i).action==="skip"},{default:f(()=>[d(fe,{modelValue:e(i).remark,"onUpdate:modelValue":o[3]||(o[3]=a=>e(i).remark=a),rows:5,placeholder:e(t)("operations.actions.remarkPlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label","required"]),e(Q)?(c(),m(p,{key:1,label:e(t)("operations.actions.evidenceLabel"),required:""},{default:f(()=>[n("input",{accept:e(le),type:"file",class:"block w-full rounded-md border border-default bg-default px-3 py-2 text-sm text-default",onChange:ue},null,40,yt),e(i).evidenceFile?(c(),T("p",kt,r(e(t)("operations.actions.evidenceSelected"))+": "+r(e(i).evidenceFile.name),1)):w("",!0)]),_:1},8,["label"])):w("",!0)])]),footer:f(()=>[n("div",ht,[d(l,{color:"neutral",variant:"outline",label:e(t)("common.cancel"),disabled:e(g),onClick:o[4]||(o[4]=a=>e(i).open=!1)},null,8,["label","disabled"]),e(ie)?(c(),m(l,{key:0,color:"primary",variant:"soft",loading:e(g),label:e(t)("operations.actions.complete_repair"),onClick:o[5]||(o[5]=a=>j("complete_rework"))},null,8,["loading","label"])):w("",!0),e(ne)?(c(),m(l,{key:1,disabled:e(Q)&&!e(i).evidenceFile,loading:e(g),label:E(e(i).action),onClick:o[6]||(o[6]=()=>j())},null,8,["disabled","loading","label"])):w("",!0)])]),_:1},8,["open","title"])])}}});export{jt as default};