CXAJ3nxo.js
2.78 KB
import{a9 as m,aa as A}from"./BtEn9SvP.js";const l=["pending","in_process","completed","frozen","scrapped"],g=["none","open","rework","closed"];function i(t){return typeof t=="object"&&t!==null}function c(t){return typeof t=="string"&&l.includes(t)}function p(t){return typeof t=="string"&&g.includes(t)}function n(t,e=""){return typeof t=="string"?t:e}function a(t,e=0){const r=Number(t);return Number.isFinite(r)?r:e}function C(t){return Array.isArray(t)?t.filter(i).map(e=>{const r=i(e.audit)?e.audit:{},u=Array.isArray(e.events)?e.events:[];return{id:a(e.id),sn:n(e.sn),workOrderNo:n(e.workOrderNo),status:c(e.status)?e.status:"pending",currentStep:n(e.currentStep),exceptionStatus:p(e.exceptionStatus)?e.exceptionStatus:"none",freezeReason:n(e.freezeReason,void 0),scrapReason:n(e.scrapReason,void 0),audit:{createdBy:n(r.createdBy),createdAt:n(r.createdAt),updatedBy:n(r.updatedBy),updatedAt:n(r.updatedAt),lastAction:n(r.lastAction),lastActionAt:n(r.lastActionAt),lastActionBy:n(r.lastActionBy)},events:u.filter(i).map(s=>({id:n(s.id),action:n(s.action),fromStatus:c(s.fromStatus)?s.fromStatus:null,toStatus:c(s.toStatus)?s.toStatus:"pending",operator:n(s.operator),at:n(s.at),reason:n(s.reason,void 0),evidencePath:n(s.evidencePath,void 0),currentStep:n(s.currentStep),exceptionStatus:p(s.exceptionStatus)?s.exceptionStatus:"none"}))}}).filter(e=>e.id>0&&e.sn.length>0):[]}function S(t,e){return i(t)?{success:!!t.success,errorCode:typeof t.errorCode=="string"?t.errorCode:null,message:typeof t.message=="string"&&t.message.length>0?t.message:e}:{success:!1,errorCode:"REQUEST_FAILED",message:e}}function E(t){const e=S(t,"SN 导入失败。");if(!i(t))return{...e,importedCount:0,skippedCount:0,duplicateSnList:[]};const r=Array.isArray(t.duplicateSnList)?t.duplicateSnList.filter(u=>typeof u=="string"):[];return{...e,importedCount:a(t.importedCount),skippedCount:a(t.skippedCount),duplicateSnList:r}}function N(t){const e=new URLSearchParams;t.sn&&e.set("sn",t.sn),t.workOrderNo&&e.set("workOrderNo",t.workOrderNo),t.status&&e.set("status",t.status),t.currentStep&&e.set("currentStep",t.currentStep),t.exceptionStatus&&e.set("exceptionStatus",t.exceptionStatus);const r=e.toString();return r.length>0?`?${r}`:""}const h=()=>{const t=A();return{getSnItems:async s=>{const o=await t.request(`/api/sn${N(s)}`,{method:"GET"});return C(o)},importSnItems:async s=>{try{const o=await t.request("/api/sn/import",{method:"POST",body:s});return E(o)}catch{return{success:!1,errorCode:"REQUEST_FAILED",message:"SN 导入失败。",importedCount:0,skippedCount:0,duplicateSnList:[]}}},runSnAction:async(s,o,d)=>{try{const f=await t.request(`/api/sn/${s}/actions/${o}`,{method:"POST",body:d});return S(f,"SN 状态更新失败。")}catch{return{success:!1,errorCode:"REQUEST_FAILED",message:"SN 状态更新失败。"}}}}},w=m(h);export{w as u};