2 lines
21 KiB
JavaScript
2 lines
21 KiB
JavaScript
var Pe=Object.defineProperty;var ve=Object.getOwnPropertySymbols;var Le=Object.prototype.hasOwnProperty,Re=Object.prototype.propertyIsEnumerable;var me=(E,_,y)=>_ in E?Pe(E,_,{enumerable:!0,configurable:!0,writable:!0,value:y}):E[_]=y,pe=(E,_)=>{for(var y in _||(_={}))Le.call(_,y)&&me(E,y,_[y]);if(ve)for(var y of ve(_))Re.call(_,y)&&me(E,y,_[y]);return E};var h=(E,_,y)=>new Promise((W,I)=>{var R=b=>{try{T(y.next(b))}catch(v){I(v)}},t=b=>{try{T(y.throw(b))}catch(v){I(v)}},T=b=>b.done?W(b.value):Promise.resolve(b.value).then(R,t);T((y=y.apply(E,_)).next())});import{ae as Me,V as Ue,a9 as ge,S as Be,au as K,ay as x,an as d,ca as Z,aL as $,ax as ee,bE as fe,c0 as ye,c1 as H,aA as _e,ac as Fe}from"./bootstrap-DwKkJn_4.js";import{g as Ve,a as ze,b as Ge}from"./index-CPqRci5d.js";import{c as Ke}from"./index-BrRbTT6j.js";import{_ as $e}from"./cleaning-actions.vue_vue_type_script_setup_true_lang-LjzVfsHp.js";import He from"./cleaning-detail-ext-CPJUrwAS.js";import Ye from"./cleaning-work-progress-C2WXXY38.js";import We from"./security-detail-ext-R4ba-Awh.js";import{u as Xe,O as je,a as Qe,S as Je,b as qe,c as Ze,T as et}from"./data-B-fIuUjr.js";import tt from"./assign-form-XJa3F69d.js";import st from"./cancel-form-Cu_1fVe2.js";import at from"./upgrade-priority-form-BHzSRBiJ.js";import{a as C}from"./index-DTvDsZcL.js";import{A as ot}from"./index-RYIkrVil.js";import{_ as lt}from"./page.vue_vue_type_script_setup_true_lang-C4Eq3m-T.js";import{m as rt,b9 as w,aa as S,v as nt,aU as it,aX as ut,x as dt,ab as f,b2 as n,bJ as l,j as a,u as e,ac as m,ae as s,ai as g,ad as p,bp as c,aT as A,aR as N,I as B,bb as Y,cT as F}from"../jse/index-index-BpFlhWxK.js";import{u as ct}from"./use-tabs-C35-CkmR.js";import{u as te}from"./use-modal-D3K6QxxX.js";import"./index-BUc9-GdY.js";import"./dict-enum-CaHgMaDZ.js";import"./tabbar-BPuPEDuO.js";import"./x-BBEQBGJU.js";const vt={class:"flex items-center justify-between"},mt={class:"flex items-center gap-3"},pt={class:"flex items-center gap-2"},gt={class:"text-base font-semibold"},ft={class:"mt-1.5 flex items-center gap-4 text-sm text-gray-500"},yt={class:"flex items-center gap-1"},_t={class:"flex items-center gap-1"},bt={class:"header-actions"},Et={class:"flex items-center gap-2"},Ct={class:"progress-actions"},Tt={class:"progress-summary"},ht={class:"summary-item"},Dt={class:"summary-item"},It={class:"progress-steps-wrapper"},kt={class:"progress-nodes"},xt={class:"progress-line"},wt={class:"node-icon"},St={class:"node-label"},At={key:0,class:"node-time"},Nt={key:1,class:"node-badge"},Ot={key:0,class:"cancelled-banner"},Pt={key:1,class:"logs-expand-section"},Lt={key:0,class:"logs-simple-list"},Rt={class:"log-simple-left"},Mt={key:0,class:"log-simple-line"},Ut={class:"log-simple-content"},Bt={class:"log-simple-header"},Ft={class:"log-simple-title-line"},Vt={key:0,class:"log-simple-msg"},zt={class:"log-simple-time"},Gt={class:"flex items-center gap-2"},Kt={class:"flex items-center gap-1"},$t={class:"device-code"},Ht={key:0,class:"flex items-center gap-2"},Yt={key:1,class:"flex items-center gap-2"},Wt={class:"flex items-center gap-1"},Xt={class:"flex items-center gap-1"},jt={class:"flex items-center gap-1"},Qt={class:"flex items-center gap-1"},Jt={class:"desc-text"},qt={class:"order-images"},Zt={class:"flex items-center gap-2"},es={class:"badge-stats-compact"},ts={class:"badge-row"},ss={key:0,class:"badge-row-value"},as={class:"battery-bar-sm"},os={key:1,class:"text-xs text-gray-400"},ls={class:"badge-row"},rs={class:"badge-row-value"},ns={key:0,class:"text-xs text-gray-500"},is={class:"badge-row"},us={key:0,class:"badge-row-value signal-strength"},ds={class:"signal-value"},cs={key:1,class:"text-xs text-gray-400"},vs={class:"badge-row"},ms={class:"badge-row-value text-sm"},V=!1,ps=rt({name:"WorkOrderDetail",__name:"index",setup(E){const _=Me(),y=Ue(),{closeTabByKey:W}=ct(),I=_.params.id,R=w(!0),t=w({}),T=w([]),b=w([]),v=w(null),M=w(),O=w(!1),be=[{key:"PENDING",title:"待分配",icon:"solar:inbox-line-bold-duotone",desc:"工单已创建,等待分配"},{key:"QUEUED",title:"排队中",icon:"solar:clock-circle-bold-duotone",desc:"执行人忙碌,任务排队"},{key:"DISPATCHED",title:"已推送",icon:"solar:transfer-horizontal-bold-duotone",desc:"已推送至执行人"},{key:"CONFIRMED",title:"已确认",icon:"solar:check-circle-bold-duotone",desc:"执行人已确认接单"},{key:"ARRIVED",title:"作业中",icon:"solar:play-circle-bold-duotone",desc:"正在执行作业"},{key:"COMPLETED",title:"已完成",icon:"solar:check-read-bold-duotone",desc:"工单已完成"}],se={system:{color:"#1677ff",bgColor:"#e6f4ff",icon:"solar:server-bold-duotone",label:"系统"},operation:{color:"#52c41a",bgColor:"#f6ffed",icon:"solar:user-check-bold-duotone",label:"操作"},alert:{color:"#fa8c16",bgColor:"#fff7e6",icon:"solar:bell-bold-duotone",label:"告警"},device:{color:"#722ed1",bgColor:"#f9f0ff",icon:"solar:bluetooth-wave-bold-duotone",label:"设备"}},gs={id:10001,orderCode:"WO20260123143025001",title:"A区洗手间紧急保洁",orderType:"CLEAN",status:"ARRIVED",priority:0,areaId:101,location:"A区 / 1楼洗手间",assigneeId:2001,assigneeName:"张三",createTime:"2026-01-23 14:30:25",triggerSource:"IOT_BEACON",triggerDeviceKey:"beacon_a1_toilet_001",startTime:"2026-01-23 14:45:00",extInfo:{cleaningType:"ROUTINE",expectedDuration:30,arrivedTime:new Date(Date.now()-15*60*1e3).toISOString()}},fs=[{status:"PENDING",statusName:"工单创建",time:"2026-01-23 14:30:25",operator:"系统",description:"蓝牙信标触发自动创建"},{status:"DISPATCHED",statusName:"已推送",time:"2026-01-23 14:31:02",operator:"系统",description:"推送至保洁员张三"},{status:"CONFIRMED",statusName:"已确认",time:"2026-01-23 14:32:15",operator:"张三",description:"保洁员确认接单"},{status:"ARRIVED",statusName:"已到岗",time:"2026-01-23 14:45:00",operator:"系统",description:"检测到保洁员到达"}],ys=[{id:1,type:"system",title:"工单自动创建",content:"蓝牙信标 beacon_a1_toilet_001 触发,系统自动创建保洁工单",operator:"系统",time:"2026-01-23 14:30:25",status:"PENDING"},{id:2,type:"system",title:"智能派单",content:"根据距离优先算法,自动分配给保洁员张三",operator:"系统",time:"2026-01-23 14:31:00",status:"DISPATCHED"},{id:3,type:"device",title:"工牌推送",content:"已向工牌设备 badge_zhangsan_001 发送震动提醒",operator:"系统",time:"2026-01-23 14:31:02",status:"DISPATCHED"},{id:4,type:"operation",title:"接单确认",content:"保洁员通过工牌按钮确认接受工单",operator:"张三",time:"2026-01-23 14:32:15",status:"CONFIRMED"},{id:5,type:"device",title:"位置检测",content:"工牌进入作业区域 A区洗手间,信号强度 -42dBm",operator:"系统",time:"2026-01-23 14:45:00",status:"ARRIVED"},{id:6,type:"alert",title:"电量预警",content:"工牌电量 72%,建议及时充电",operator:"系统",time:"2026-01-23 14:50:00",status:"ARRIVED",extra:{level:"warning"}},{id:7,type:"device",title:"心跳上报",content:"工牌状态正常,持续在区域内作业",operator:"系统",time:"2026-01-23 15:00:30",status:"ARRIVED"}],Ee={deviceId:3001,deviceKey:"badge_zhangsan_001",status:"BUSY",batteryLevel:72,lastHeartbeatTime:new Date(Date.now()-30*1e3).toISOString(),rssi:-42,isInArea:!0,areaId:101,areaName:"A区洗手间"},[Ce,Te]=te({connectedComponent:tt,destroyOnClose:!0}),[he,De]=te({connectedComponent:at,destroyOnClose:!0}),[Ie,ke]=te({connectedComponent:st,destroyOnClose:!0}),{getPriorityInfo:z}=Xe(),k=S(()=>t.value.orderType==="CLEAN"),U=S(()=>t.value.orderType==="SECURITY"),ae=S(()=>k.value&&t.value.extInfo&&["ARRIVED","COMPLETED"].includes(t.value.status)),oe=S(()=>{const r=t.value.extInfo;if(!r)return[];const o=[];!U.value&&r.imageUrl&&o.push(r.imageUrl);const i=r.images;if(i)try{const u=typeof i=="string"?JSON.parse(i):i;Array.isArray(u)&&o.push(...u)}catch(u){}return o}),G=S(()=>{const r=new Set(["ARRIVED","COMPLETED","CONFIRMED","DISPATCHED","PENDING"]),o=new Set(T.value.map(u=>u.status)),i=t.value.status;return be.filter(u=>r.has(u.key)?!0:u.key==="QUEUED"?o.has("QUEUED"):o.has(u.key)||i===u.key)}),D=S(()=>{if(t.value.status==="CANCELLED")return-1;if(t.value.status==="PAUSED")return G.value.findIndex(o=>o.key==="ARRIVED");const r=G.value.findIndex(o=>o.key===t.value.status);return Math.max(r,0)}),le=S(()=>[...b.value].toSorted((r,o)=>new Date(o.time).getTime()-new Date(r.time).getTime()));function re(r){return se[r]||se.system}function P(r){const o=Date.now(),i=new Date(r).getTime(),u=o-i;return u<6e4?"刚刚":u<36e5?`${Math.floor(u/6e4)} 分钟前`:u<864e5?`${Math.floor(u/36e5)} 小时前`:F(r)}function X(){return h(this,null,function*(){R.value=!0;try{V||(t.value=yield Ke(I),yield Promise.all([xe(),we()]),k.value&&t.value.assigneeId&&(yield ne()))}catch(r){console.error("❌ 工单详情加载失败:",r),ge.error("获取工单详情失败"),j()}finally{R.value=!1}})}function xe(){return h(this,null,function*(){try{if(!V){const r=yield Ve(I);T.value=r.timeline||[]}}catch(r){T.value=[]}})}function we(){return h(this,null,function*(){try{if(!V){const r=yield ze(I);b.value=r.logs||[]}}catch(r){b.value=[]}})}function ne(){return h(this,null,function*(){if(t.value.assigneeId)try{v.value=V?pe({},Ee):yield Ge(t.value.assigneeId)}catch(r){console.error("❌ 工牌状态加载失败:",r),v.value=null}})}function L(){return h(this,null,function*(){yield X()})}function j(){return h(this,null,function*(){const r=_.fullPath;y.back(),setTimeout(()=>{W(r)},100)})}function ie(){Te.setData({orderId:t.value.id,orderCode:t.value.orderCode}).open()}function Se(){De.setData({orderId:t.value.id,orderCode:t.value.orderCode,currentPriority:t.value.priority}).open()}function Ae(){ke.setData({orderId:t.value.id,orderCode:t.value.orderCode,title:t.value.title}).open()}function Q(r){return r===null?"#d9d9d9":r<=20?"#f5222d":r<=50?"#fa8c16":"#52c41a"}function Ne(r){switch(r==null?void 0:r.toUpperCase()){case"BUSY":return"作业中";case"IDLE":return"空闲";case"OFFLINE":return"离线";case"PAUSED":return"暂停";default:return r||"未知"}}function Oe(r){return(r==null?void 0:r.toUpperCase())==="BUSY"}function ue(){J(),M.value=window.setInterval(()=>{k.value&&t.value.status==="ARRIVED"&&t.value.assigneeId&&ne()},3e4)}function J(){M.value&&(clearInterval(M.value),M.value=null)}return nt(()=>h(null,null,function*(){if(!I&&!V){ge.warning("参数错误"),j();return}yield X(),ue()})),it(()=>h(null,null,function*(){M.value||(yield X(),ue())})),ut(J),dt(J),(r,o)=>(n(),f(e(lt),null,{default:l(()=>[a(e(Ce),{onSuccess:L}),a(e(he),{onSuccess:L}),a(e(Ie),{onSuccess:L}),a(e(Be),{spinning:R.value},{default:l(()=>[a(e(K),{"body-style":{padding:"12px 20px"},class:"detail-header mb-3"},{default:l(()=>[s("div",vt,[s("div",mt,[a(e(x),{size:"small",onClick:j},{default:l(()=>[a(e(d),{icon:"ant-design:arrow-left-outlined",class:"mr-1"}),o[1]||(o[1]=g(" 返回 ",-1))]),_:1}),a(e(Z),{type:"vertical",class:"h-6"}),s("div",null,[s("div",pt,[s("span",gt,c(t.value.title),1),t.value.orderType?(n(),f(e($),{key:0,color:e(je)[t.value.orderType],class:"status-tag"},{default:l(()=>[a(e(d),{icon:U.value?"solar:shield-warning-bold-duotone":k.value?"solar:broom-bold-duotone":"solar:wrench-bold-duotone",class:"mr-1"},null,8,["icon"]),g(" "+c(e(Qe)[t.value.orderType]),1)]),_:1},8,["color"])):m("",!0),a(e($),{color:e(Je)[t.value.status],class:"status-tag"},{default:l(()=>[a(e(d),{icon:e(qe)[t.value.status]||"solar:circle-bold",class:"mr-1"},null,8,["icon"]),g(" "+c(e(Ze)[t.value.status]),1)]),_:1},8,["color"]),t.value.priority!=null?(n(),p("span",{key:1,class:N(["priority-badge inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium",{"animate-pulse":Number(t.value.priority)===0}]),style:A(e(z)(t.value.priority).style)},[e(z)(t.value.priority).icon?(n(),f(e(d),{key:0,icon:e(z)(t.value.priority).icon},null,8,["icon"])):m("",!0),g(" "+c(e(z)(t.value.priority).label),1)],6)):m("",!0)]),s("div",ft,[s("span",yt,[a(e(d),{icon:"solar:document-text-bold-duotone"}),g(" "+c(t.value.orderCode),1)]),s("span",_t,[a(e(d),{icon:"solar:map-point-bold-duotone"}),g(" "+c(t.value.location||"-"),1)])])])]),s("div",bt,[t.value.status!=="COMPLETED"&&t.value.status!=="CANCELLED"?(n(),p(B,{key:0},[t.value.status==="PENDING"?(n(),f(e(x),{key:0,type:"primary",size:"small",onClick:ie},{default:l(()=>[a(e(d),{icon:"solar:user-plus-bold-duotone",class:"mr-1"}),o[2]||(o[2]=g(" 分配执行人 ",-1))]),_:1})):m("",!0),k.value?(n(),f($e,{key:1,order:t.value,onRefresh:L},null,8,["order"])):m("",!0),Number(t.value.priority)!==0?(n(),f(e(x),{key:2,size:"small",danger:"",ghost:"",onClick:Se},{default:l(()=>[a(e(d),{icon:"solar:bolt-bold-duotone",class:"mr-1"}),o[3]||(o[3]=g(" 升级P0 ",-1))]),_:1})):m("",!0),a(e(x),{size:"small",danger:"",ghost:"",onClick:Ae},{default:l(()=>[a(e(d),{icon:"solar:close-circle-bold-duotone",class:"mr-1"}),o[4]||(o[4]=g(" 取消 ",-1))]),_:1}),a(e(Z),{type:"vertical",class:"header-divider"})],64)):m("",!0),a(e(ee),{title:"刷新数据"},{default:l(()=>[a(e(x),{size:"small",shape:"circle",onClick:L},{default:l(()=>[a(e(d),{icon:"ant-design:reload-outlined"})]),_:1})]),_:1})])])]),_:1}),a(e(K),{class:"progress-overview-card mb-3"},{title:l(()=>[s("div",Et,[a(e(d),{icon:"solar:routing-2-bold-duotone",class:"text-blue-500"}),o[5]||(o[5]=s("span",null,"工单进度",-1))])]),extra:l(()=>[s("div",Ct,[s("div",Tt,[s("span",ht,[a(e(d),{icon:"solar:clock-circle-bold-duotone",class:"text-gray-400"}),g(" 创建于 "+c(P(t.value.createTime)),1)]),a(e(Z),{type:"vertical"}),s("span",Dt,[a(e(d),{icon:"solar:document-text-bold-duotone",class:"text-gray-400"}),g(" "+c(b.value.length)+" 条日志 ",1)])]),a(e(ee),{title:O.value?"收起日志":"查看业务日志"},{default:l(()=>[a(e(x),{type:"text",size:"small",class:N(["logs-toggle-btn",{"logs-toggle-active":O.value}]),onClick:o[0]||(o[0]=i=>O.value=!O.value)},{default:l(()=>[a(e(d),{icon:"solar:notebook-bold-duotone",class:"mr-1"}),o[6]||(o[6]=s("span",null,"日志",-1)),a(e(d),{icon:O.value?"solar:alt-arrow-up-linear":"solar:alt-arrow-down-linear",class:"ml-1 transition-transform"},null,8,["icon"])]),_:1},8,["class"])]),_:1},8,["title"])])]),default:l(()=>[s("div",It,[s("div",kt,[s("div",xt,[s("div",{class:N(["progress-line-fill",{"line-all-completed":t.value.status==="COMPLETED"}]),style:A({width:`${Math.max(0,D.value/(G.value.length-1)*100)}%`})},null,6)]),(n(!0),p(B,null,Y(G.value,(i,u)=>{var de,ce;return n(),p("div",{key:i.key,class:N(["progress-node",{"node-completed":u<D.value,"node-current":u===D.value&&!["CANCELLED","COMPLETED"].includes(t.value.status),"node-completed-current":u===D.value&&t.value.status==="COMPLETED","node-pending":u>D.value,"node-cancelled":t.value.status==="CANCELLED"}])},[a(e(ee),{title:i.desc},{default:l(()=>[s("div",wt,[a(e(d),{icon:i.icon},null,8,["icon"])])]),_:2},1032,["title"]),s("div",St,c(i.title),1),u<D.value||u===D.value&&t.value.status==="COMPLETED"?(n(),p("div",At,c((de=T.value.find(q=>q.status===i.key))!=null&&de.time?P(((ce=T.value.find(q=>q.status===i.key))==null?void 0:ce.time)||""):i.key==="PENDING"?P(t.value.createTime):i.key==="COMPLETED"&&t.value.endTime?P(t.value.endTime):""),1)):u===D.value&&t.value.status!=="CANCELLED"&&t.value.status!=="COMPLETED"?(n(),p("div",Nt,[...o[7]||(o[7]=[s("span",{class:"badge-dot"},null,-1),g(" 进行中 ",-1)])])):m("",!0)],2)}),128))])]),t.value.status==="CANCELLED"?(n(),p("div",Ot,[a(e(d),{icon:"solar:close-circle-bold-duotone"}),o[8]||(o[8]=s("span",null,"工单已取消",-1))])):m("",!0),O.value?(n(),p("div",Pt,[b.value.length>0?(n(),p("div",Lt,[(n(!0),p(B,null,Y(le.value,(i,u)=>(n(),p("div",{key:i.id,class:"log-simple-item"},[s("div",Rt,[s("div",{class:"log-simple-dot",style:A({backgroundColor:re(i.type).color})},null,4),u<le.value.length-1?(n(),p("div",Mt)):m("",!0)]),s("div",Ut,[s("div",Bt,[s("span",Ft,[s("span",{class:"log-simple-title",style:A({color:re(i.type).color})},c(i.title),5),i.content?(n(),p("span",Vt,c(i.content),1)):m("",!0)]),s("span",zt,c(P(i.time)),1)])])]))),128))])):(n(),f(e(fe),{key:1,description:"暂无日志",image:e(fe).PRESENTED_IMAGE_SIMPLE,class:"logs-empty"},null,8,["image"]))])):m("",!0)]),_:1}),U.value?(n(),f(We,{key:0,order:t.value},null,8,["order"])):m("",!0),a(e(ye),{gutter:12,class:"info-row"},{default:l(()=>[a(e(H),{span:ae.value?17:24},{default:l(()=>[a(e(K),{class:"info-card mb-3"},{title:l(()=>[s("div",Gt,[a(e(d),{icon:"solar:info-circle-bold-duotone",class:"text-blue-500"}),o[9]||(o[9]=s("span",null,"基础信息",-1))])]),default:l(()=>[a(e(C),{column:3,bordered:"",size:"small",class:"custom-descriptions"},{default:l(()=>[a(e(C).Item,{label:"触发来源"},{default:l(()=>[s("span",Kt,[a(e(d),{icon:U.value?"solar:shield-warning-bold-duotone":"solar:bluetooth-wave-bold-duotone",class:N(U.value?"text-red-400":"text-blue-400")},null,8,["icon","class"]),g(" "+c(e(et)[t.value.triggerSource||t.value.sourceType||""]||"-"),1)])]),_:1}),t.value.triggerDeviceKey?(n(),f(e(C).Item,{key:0,label:"触发设备"},{default:l(()=>[s("code",$t,c(t.value.triggerDeviceKey),1)]),_:1})):m("",!0),a(e(C).Item,{label:"执行人"},{default:l(()=>[t.value.assigneeId?(n(),p("div",Ht,[a(e(ot),{size:24,class:"assignee-avatar"},{default:l(()=>{var i;return[g(c(((i=t.value.assigneeName)==null?void 0:i.charAt(0))||"?"),1)]}),_:1}),s("span",null,c(t.value.assigneeName||"未知"),1),k.value&&v.value?(n(),f(e($),{key:0,color:Oe(v.value.status)?"processing":"default",size:"small"},{default:l(()=>[g(c(Ne(v.value.status)),1)]),_:1},8,["color"])):m("",!0)])):(n(),p("div",Yt,[o[11]||(o[11]=s("span",{class:"text-gray-400"},"暂未分配",-1)),a(e(x),{type:"link",size:"small",class:"p-0",onClick:ie},{default:l(()=>[...o[10]||(o[10]=[g(" 立即分配 ",-1)])]),_:1})]))]),_:1}),a(e(C).Item,{label:"创建时间"},{default:l(()=>[s("span",Wt,[a(e(d),{icon:"solar:calendar-bold-duotone",class:"text-gray-400"}),g(" "+c(e(F)(t.value.createTime)),1)])]),_:1}),t.value.startTime?(n(),f(e(C).Item,{key:1,label:"开始时间"},{default:l(()=>[s("span",Xt,[a(e(d),{icon:"solar:play-circle-bold-duotone",class:"text-green-400"}),g(" "+c(e(F)(t.value.startTime)),1)])]),_:1})):m("",!0),t.value.endTime?(n(),f(e(C).Item,{key:2,label:"完成时间"},{default:l(()=>[s("span",jt,[a(e(d),{icon:"solar:check-read-bold-duotone",class:"text-blue-400"}),g(" "+c(e(F)(t.value.endTime)),1)])]),_:1})):m("",!0),t.value.updateTime&&t.value.endTime!==t.value.updateTime?(n(),f(e(C).Item,{key:3,label:"更新时间"},{default:l(()=>[s("span",Qt,[a(e(d),{icon:"solar:refresh-circle-bold-duotone",class:"text-gray-400"}),g(" "+c(e(F)(t.value.updateTime)),1)])]),_:1})):m("",!0),t.value.description?(n(),f(e(C).Item,{key:4,label:"工单描述",span:3},{default:l(()=>[s("div",Jt,c(t.value.description),1)]),_:1})):m("",!0),oe.value.length>0?(n(),f(e(C).Item,{key:5,label:"相关图片",span:3},{default:l(()=>[s("div",qt,[a(e(_e).PreviewGroup,null,{default:l(()=>[(n(!0),p(B,null,Y(oe.value,(i,u)=>(n(),f(e(_e),{key:u,src:i,alt:`工单图片 ${u+1}`,class:"order-image-thumb",width:120,height:90,style:{objectFit:"cover"}},null,8,["src","alt"]))),128))]),_:1})])]),_:1})):m("",!0)]),_:1})]),_:1})]),_:1},8,["span"]),ae.value?(n(),f(e(H),{key:0,span:7},{default:l(()=>[a(Ye,{order:t.value,class:"work-progress-card"},null,8,["order"])]),_:1})):m("",!0)]),_:1}),k.value?(n(),f(e(ye),{key:1,gutter:12},{default:l(()=>[a(e(H),{span:v.value?17:24},{default:l(()=>[a(He,{order:t.value,"badge-status":v.value,onVoiceNotify:L},null,8,["order","badge-status"])]),_:1},8,["span"]),v.value?(n(),f(e(H),{key:0,span:7},{default:l(()=>[a(e(K),{"body-style":{padding:"12px"},class:"badge-card mb-3"},{title:l(()=>[s("div",Zt,[a(e(d),{icon:"solar:bluetooth-wave-bold-duotone",class:"text-blue-500"}),o[12]||(o[12]=s("span",null,"工牌信息",-1)),o[13]||(o[13]=s("div",{class:"pulse-dot"},null,-1))])]),default:l(()=>[s("div",es,[s("div",ts,[a(e(d),{icon:"solar:battery-charge-bold-duotone",style:A({color:Q(v.value.batteryLevel)})},null,8,["style"]),o[14]||(o[14]=s("span",{class:"badge-row-label"},"电量",-1)),v.value.batteryLevel!=null?(n(),p("div",ss,[s("div",as,[s("div",{class:"battery-fill",style:A({width:`${v.value.batteryLevel}%`,backgroundColor:Q(v.value.batteryLevel)})},null,4)]),s("span",{class:"text-xs font-medium",style:A({color:Q(v.value.batteryLevel)})},c(v.value.batteryLevel)+"% ",5)])):(n(),p("span",os,"未知"))]),s("div",ls,[a(e(d),{icon:"solar:map-point-wave-bold-duotone",class:N(v.value.isInArea?"text-green-500":"text-orange-500")},null,8,["class"]),o[15]||(o[15]=s("span",{class:"badge-row-label"},"位置",-1)),s("div",rs,[a(e($),{color:v.value.isInArea?"success":"warning",size:"small"},{default:l(()=>[g(c(v.value.isInArea?"在区域内":"已离开"),1)]),_:1},8,["color"]),v.value.areaName?(n(),p("span",ns,c(v.value.areaName),1)):m("",!0)])]),s("div",is,[a(e(d),{icon:"solar:wifi-router-bold-duotone",class:"text-blue-500"}),o[16]||(o[16]=s("span",{class:"badge-row-label"},"信号",-1)),v.value.rssi!=null?(n(),p("div",us,[(n(),p(B,null,Y(4,i=>s("div",{key:i,class:N(["signal-bar",{active:v.value.rssi>-70+(i-1)*15}])},null,2)),64)),s("span",ds,c(v.value.rssi)+" dBm ",1)])):(n(),p("span",cs,"未知"))]),s("div",vs,[a(e(d),{icon:"solar:pulse-2-bold-duotone",class:"text-green-500"}),o[17]||(o[17]=s("span",{class:"badge-row-label"},"心跳",-1)),s("span",ms,c(P(v.value.lastHeartbeatTime)),1)])])]),_:1})]),_:1})):m("",!0)]),_:1})):m("",!0)]),_:1},8,["spinning"])]),_:1}))}}),Vs=Fe(ps,[["__scopeId","data-v-fd9b6b27"]]);export{Vs as default};
|