Files
aiot-platform-ui/apps/web-antd/dist/js/index-CICwLGeP.js
lzh 57f9112f7f
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 14s
chore: build and deploy web-antd
2026-01-26 16:11:17 +08:00

2 lines
24 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var Me=Object.defineProperty;var pe=Object.getOwnPropertySymbols;var Ve=Object.prototype.hasOwnProperty,Be=Object.prototype.propertyIsEnumerable;var ge=(I,_,m)=>_ in I?Me(I,_,{enumerable:!0,configurable:!0,writable:!0,value:m}):I[_]=m,ee=(I,_)=>{for(var m in _||(_={}))Ve.call(_,m)&&ge(I,m,_[m]);if(pe)for(var m of pe(_))Be.call(_,m)&&ge(I,m,_[m]);return I};var C=(I,_,m)=>new Promise((X,j)=>{var V=y=>{try{D(m.next(y))}catch(v){j(v)}},o=y=>{try{D(m.throw(y))}catch(v){j(v)}},D=y=>y.done?X(y.value):Promise.resolve(y.value).then(V,o);D((m=m.apply(I,_)).next())});import{ae as Ue,V as ze,S as Fe,au as O,ay as f,an as n,ca as be,aL as F,ax as te,bE as _e,ct as Ge,c0 as fe,c1 as $,bX as Ke,a9 as E,ac as Ye}from"./bootstrap-DbEPETmd.js";import{a as $e,s as ye,m as He}from"./index-Bq6Idde2.js";import"./index-2eRArW_G.js";import{S as Xe,a as je,b as We,C as Je,O as qe,c as Qe,T as Ze,P as Ce}from"./data-BtGcUCfK.js";import et from"./assign-form-Dwx8K2tU.js";import tt from"./cancel-form-CGtHX0j_.js";import st from"./upgrade-priority-form-CCLOq_so.js";import at from"./index-D4SOgWrp.js";import{a as h}from"./index-BCj1Waaa.js";import{A as ot}from"./index-D_9Ww7Gy.js";import{_ as lt}from"./page.vue_vue_type_script_setup_true_lang-CdIpwqHD.js";import{m as nt,b9 as A,aa as L,v as it,x as rt,ab as k,b2 as c,bJ as l,j as s,u as e,ac as p,ae as t,ai as d,ad as g,bp as i,aT as w,aR as x,I as M,bb as se,cT as ae}from"../jse/index-index-CpE3Y1Uf.js";import{u as dt}from"./use-tabs-Bxt2aDfA.js";import{u as oe}from"./use-modal-BrcTcT4j.js";import"./tabbar-CG6qabmE.js";import"./x-9vQodV-h.js";const ct={class:"flex items-center justify-between"},ut={class:"flex items-center gap-3"},vt={class:"flex items-center gap-2"},mt={class:"text-base font-semibold"},pt={class:"mt-1.5 flex items-center gap-4 text-sm text-gray-500"},gt={class:"flex items-center gap-1"},bt={class:"flex items-center gap-1"},_t={class:"flex items-center gap-2"},ft={class:"progress-actions"},yt={class:"progress-summary"},Ct={class:"summary-item"},It={class:"summary-item"},kt={class:"progress-steps-wrapper"},xt={class:"progress-line"},Tt={class:"progress-nodes"},Dt={class:"node-icon"},Et={class:"node-label"},ht={key:0,class:"node-time"},At={key:1,class:"node-badge"},wt={key:0,class:"cancelled-banner"},St={key:1,class:"logs-expand-section"},Rt={key:0,class:"logs-simple-list"},Nt={class:"log-simple-left"},Pt={key:0,class:"log-simple-line"},Ot={class:"log-simple-content"},Lt={class:"log-simple-header"},Mt={class:"log-simple-time"},Vt={class:"log-simple-text"},Bt={class:"flex items-center justify-between"},Ut={class:"flex items-center gap-2"},zt={class:"progress-circle-wrapper"},Ft={class:"progress-inner"},Gt={class:"work-stats-grid"},Kt={class:"stat-item"},Yt={class:"stat-icon bg-blue-50 dark:bg-blue-900/30"},$t={class:"stat-content"},Ht={class:"stat-value"},Xt={class:"stat-item"},jt={class:"stat-icon bg-green-50 dark:bg-green-900/30"},Wt={class:"stat-content"},Jt={class:"stat-value"},qt={class:"stat-item"},Qt={class:"stat-content"},Zt={class:"stat-item"},es={class:"stat-icon bg-purple-50 dark:bg-purple-900/30"},ts={class:"stat-content"},ss={class:"flex items-center gap-2"},as={class:"flex items-center gap-1"},os={class:"flex items-center gap-1"},ls={class:"flex items-center gap-1"},ns={class:"device-code"},is={class:"flex items-center gap-1"},rs={class:"flex items-center gap-2"},ds={key:0},cs={class:"assignee-info"},us={class:"assignee-detail"},vs={class:"assignee-name"},ms={class:"assignee-id"},ps={key:0,class:"badge-status-panel"},gs={class:"panel-header"},bs={class:"badge-stats"},_s={class:"badge-stat-item"},fs={class:"badge-stat-icon"},ys={class:"badge-stat-content"},Cs={class:"badge-stat-item"},Is={class:"badge-stat-icon"},ks={class:"badge-stat-content"},xs={class:"battery-bar"},Ts={class:"badge-stat-item"},Ds={class:"badge-stat-icon"},Es={class:"badge-stat-content"},hs={class:"signal-strength"},As={class:"signal-value"},ws={class:"badge-stat-item"},Ss={class:"badge-stat-icon"},Rs={class:"badge-stat-content"},Ns={class:"heartbeat-time"},Ps={key:1,class:"no-assignee"},Os={class:"no-assignee-icon"},Ls={class:"flex items-center gap-2"},Ms={class:"actions-list"},H=!0,Vs=nt({name:"CleaningWorkOrderDetail",__name:"index",setup(I){const _=Ue(),m=ze(),{closeTabByKey:X}=dt(),j=Number(_.params.id)||1,V=A(!0),o=A({}),D=A([]),y=A([]),v=A(null),W=A(),S=A(!1),G=[{key:"PENDING",title:"待分配",icon:"solar:inbox-line-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:"工单已完成"}],le={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:"设备"}},Ie={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()}},ke=[{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:"检测到保洁员到达"}],xe=[{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"}],Te={cleanerId:2001,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区洗手间"},[De,Ee]=oe({connectedComponent:et,destroyOnClose:!0}),[he,Ae]=oe({connectedComponent:st,destroyOnClose:!0}),[we,Se]=oe({connectedComponent:tt,destroyOnClose:!0});function R(r){return Ce[r]||Ce[2]}const K=L(()=>{var a;if(!((a=o.value.extInfo)!=null&&a.arrivedTime))return 0;const r=new Date(o.value.extInfo.arrivedTime).getTime();return Math.floor((Date.now()-r)/6e4)}),J=L(()=>{var r;return(r=o.value.extInfo)!=null&&r.expectedDuration?Math.min(Math.round(K.value/o.value.extInfo.expectedDuration*100),100):0}),T=L(()=>J.value>=100),Re=L(()=>o.value.status==="ARRIVED"&&v.value&&!v.value.isInArea),N=L(()=>{if(o.value.status==="CANCELLED")return-1;if(o.value.status==="PAUSED")return G.findIndex(a=>a.key==="ARRIVED");const r=G.findIndex(a=>a.key===o.value.status);return Math.max(r,0)}),ne=L(()=>[...y.value].toSorted((r,a)=>new Date(a.time).getTime()-new Date(r.time).getTime()));function ie(r){return le[r]||le.system}function Y(r){const a=Date.now(),u=new Date(r).getTime(),b=a-u;return b<6e4?"刚刚":b<36e5?`${Math.floor(b/6e4)} 分钟前`:b<864e5?`${Math.floor(b/36e5)} 小时前`:ae(r)}function re(){return C(this,null,function*(){V.value=!0;try{H&&(yield new Promise(r=>setTimeout(r,500)),o.value=ee({},Ie),yield Promise.all([Ne(),Pe()]),o.value.assigneeId&&(yield de()))}catch(r){E.error("获取工单详情失败"),ce()}finally{V.value=!1}})}function Ne(){return C(this,null,function*(){try{H&&(D.value=[...ke])}catch(r){D.value=[]}})}function Pe(){return C(this,null,function*(){try{y.value=H?[...xe]:[]}catch(r){y.value=[]}})}function de(){return C(this,null,function*(){if(o.value.assigneeId)try{v.value=H?ee({},Te):yield $e(o.value.assigneeId)}catch(r){v.value=null}})}function B(){return C(this,null,function*(){yield re()})}function ce(){return C(this,null,function*(){const r=_.fullPath;m.back(),setTimeout(()=>{X(r)},100)})}function ue(){Ee.setData({orderId:o.value.id,orderCode:o.value.orderCode}).open()}function Oe(){Ae.setData({orderId:o.value.id,orderCode:o.value.orderCode,currentPriority:o.value.priority}).open()}function q(){Se.setData({orderId:o.value.id,orderCode:o.value.orderCode,title:o.value.title}).open()}function ve(){return C(this,null,function*(){if(o.value.assigneeId)try{yield ye({cleanerId:o.value.assigneeId,type:"VOICE",content:`请注意:${o.value.title}`}),E.success("语音提醒已发送")}catch(r){E.error("发送失败")}})}function Q(){return C(this,null,function*(){if(o.value.assigneeId)try{yield ye({cleanerId:o.value.assigneeId,type:"VIBRATE"}),E.success("震动提醒已发送")}catch(r){E.error("发送失败")}})}function Le(){return C(this,null,function*(){try{yield He(o.value.id),E.success("工单已完成"),B()}catch(r){E.error("操作失败")}})}function Z(r){return r<=20?"#f5222d":r<=50?"#fa8c16":"#52c41a"}return it(()=>C(null,null,function*(){yield re(),W.value=window.setInterval(()=>{o.value.status==="ARRIVED"&&o.value.assigneeId&&de()},3e4)})),rt(()=>{W.value&&clearInterval(W.value)}),(r,a)=>(c(),k(e(lt),null,{default:l(()=>[s(e(De),{onSuccess:B}),s(e(he),{onSuccess:B}),s(e(we),{onSuccess:B}),s(e(Fe),{spinning:V.value},{default:l(()=>[s(e(O),{"body-style":{padding:"12px 20px"},class:"detail-header mb-3"},{default:l(()=>{var u,b,U,z,P,me;return[t("div",ct,[t("div",ut,[s(e(f),{size:"small",onClick:ce},{default:l(()=>[s(e(n),{icon:"ant-design:arrow-left-outlined",class:"mr-1"}),a[1]||(a[1]=d(" 返回 ",-1))]),_:1}),s(e(be),{type:"vertical",class:"h-6"}),t("div",null,[t("div",vt,[t("span",mt,i(o.value.title),1),s(e(F),{color:e(Xe)[o.value.status],class:"status-tag"},{default:l(()=>[s(e(n),{icon:e(je)[o.value.status]||"solar:circle-bold",class:"mr-1"},null,8,["icon"]),d(" "+i(e(We)[o.value.status]),1)]),_:1},8,["color"]),o.value.priority!==2?(c(),g("span",{key:0,class:x(["priority-badge inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium",{"animate-pulse":(u=R(o.value.priority))==null?void 0:u.animation}]),style:w({backgroundColor:(b=R(o.value.priority))==null?void 0:b.bgColor,color:(U=R(o.value.priority))==null?void 0:U.color})},[(z=R(o.value.priority))!=null&&z.icon?(c(),k(e(n),{key:0,icon:((P=R(o.value.priority))==null?void 0:P.icon)||""},null,8,["icon"])):p("",!0),d(" "+i((me=R(o.value.priority))==null?void 0:me.label),1)],6)):p("",!0)]),t("div",pt,[t("span",gt,[s(e(n),{icon:"solar:document-text-bold-duotone"}),d(" "+i(o.value.orderCode),1)]),t("span",bt,[s(e(n),{icon:"solar:map-point-bold-duotone"}),d(" "+i(o.value.location||"-"),1)])])])]),s(e(te),{title:"刷新数据"},{default:l(()=>[s(e(f),{size:"small",shape:"circle",onClick:B},{default:l(()=>[s(e(n),{icon:"ant-design:reload-outlined"})]),_:1})]),_:1})])]}),_:1}),s(e(O),{class:"progress-overview-card mb-3"},{title:l(()=>[t("div",_t,[s(e(n),{icon:"solar:routing-2-bold-duotone",class:"text-blue-500"}),a[2]||(a[2]=t("span",null,"工单进度",-1))])]),extra:l(()=>[t("div",ft,[t("div",yt,[t("span",Ct,[s(e(n),{icon:"solar:clock-circle-bold-duotone",class:"text-gray-400"}),d(" 创建于 "+i(Y(o.value.createTime)),1)]),s(e(be),{type:"vertical"}),t("span",It,[s(e(n),{icon:"solar:document-text-bold-duotone",class:"text-gray-400"}),d(" "+i(y.value.length)+" 条日志 ",1)])]),s(e(te),{title:S.value?"收起日志":"查看业务日志"},{default:l(()=>[s(e(f),{type:"text",size:"small",class:x(["logs-toggle-btn",{"logs-toggle-active":S.value}]),onClick:a[0]||(a[0]=u=>S.value=!S.value)},{default:l(()=>[s(e(n),{icon:"solar:notebook-bold-duotone",class:"mr-1"}),a[3]||(a[3]=t("span",null,"日志",-1)),s(e(n),{icon:S.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(()=>[t("div",kt,[t("div",xt,[t("div",{class:"progress-line-fill",style:w({width:`${Math.max(0,N.value/(G.length-1)*100)}%`})},null,4)]),t("div",Tt,[(c(),g(M,null,se(G,(u,b)=>{var U,z;return t("div",{key:u.key,class:x(["progress-node",{"node-completed":b<N.value,"node-current":b===N.value&&o.value.status!=="CANCELLED","node-pending":b>N.value,"node-cancelled":o.value.status==="CANCELLED"}])},[s(e(te),{title:u.desc},{default:l(()=>[t("div",Dt,[s(e(n),{icon:u.icon},null,8,["icon"])])]),_:2},1032,["title"]),t("div",Et,i(u.title),1),b<N.value?(c(),g("div",ht,i((U=D.value.find(P=>P.status===u.key))!=null&&U.time?Y(((z=D.value.find(P=>P.status===u.key))==null?void 0:z.time)||""):""),1)):b===N.value&&o.value.status!=="CANCELLED"?(c(),g("div",At,[...a[4]||(a[4]=[t("span",{class:"badge-dot"},null,-1),d(" 进行中 ",-1)])])):p("",!0)],2)}),64))])]),o.value.status==="CANCELLED"?(c(),g("div",wt,[s(e(n),{icon:"solar:close-circle-bold-duotone"}),a[5]||(a[5]=t("span",null,"工单已取消",-1))])):p("",!0),S.value?(c(),g("div",St,[y.value.length>0?(c(),g("div",Rt,[(c(!0),g(M,null,se(ne.value,(u,b)=>(c(),g("div",{key:u.id,class:"log-simple-item"},[t("div",Nt,[t("div",{class:"log-simple-dot",style:w({backgroundColor:ie(u.type).color})},null,4),b<ne.value.length-1?(c(),g("div",Pt)):p("",!0)]),t("div",Ot,[t("div",Lt,[t("span",{class:"log-simple-title",style:w({color:ie(u.type).color})},i(u.title),5),t("span",Mt,i(Y(u.time)),1)]),t("div",Vt,i(u.content),1)])]))),128))])):(c(),k(e(_e),{key:1,description:"暂无日志",image:e(_e).PRESENTED_IMAGE_SIMPLE,class:"logs-empty"},null,8,["image"]))])):p("",!0)]),_:1}),Re.value?(c(),k(e(Ge),{key:0,type:"warning","show-icon":"",class:"leave-warning mb-3"},{message:l(()=>[...a[6]||(a[6]=[t("span",{class:"font-medium"},"保洁员已离开作业区域",-1)])]),description:l(()=>[t("div",Bt,[a[9]||(a[9]=t("span",null,"检测到保洁员不在指定区域,请及时确认情况",-1)),s(e(at),null,{default:l(()=>[s(e(f),{size:"small",type:"primary",onClick:ve},{default:l(()=>[...a[7]||(a[7]=[d(" 语音提醒 ",-1)])]),_:1}),s(e(f),{size:"small",onClick:Q},{default:l(()=>[...a[8]||(a[8]=[d(" 震动提醒 ",-1)])]),_:1})]),_:1})])]),_:1})):p("",!0),s(e(fe),{gutter:12},{default:l(()=>[s(e($),{span:16},{default:l(()=>[o.value.extInfo&&o.value.status==="ARRIVED"?(c(),k(e(O),{key:0,class:"work-progress-card mb-3"},{title:l(()=>[t("div",Ut,[s(e(n),{icon:"solar:chart-2-bold-duotone",class:"text-blue-500"}),a[10]||(a[10]=t("span",null,"作业进度",-1))])]),default:l(()=>[s(e(fe),{gutter:16,align:"middle"},{default:l(()=>[s(e($),{span:8},{default:l(()=>[t("div",zt,[s(e(Ke),{type:"circle",percent:J.value,"stroke-color":{"0%":T.value?"#ff4d4f":"#1677ff","100%":T.value?"#ff7875":"#52c41a"},"stroke-width":6,size:100},{format:l(()=>[t("div",Ft,[t("div",{class:x(["progress-value",{"text-red-500":T.value}])},i(J.value)+"% ",3),a[11]||(a[11]=t("div",{class:"progress-label"},"完成度",-1))])]),_:1},8,["percent","stroke-color"])])]),_:1}),s(e($),{span:16},{default:l(()=>[t("div",Gt,[t("div",Kt,[t("div",Yt,[s(e(n),{icon:"solar:clipboard-list-bold-duotone",class:"text-blue-500"})]),t("div",$t,[a[12]||(a[12]=t("div",{class:"stat-label"},"作业类型",-1)),t("div",Ht,i(e(Je)[o.value.extInfo.cleaningType]||"-"),1)])]),t("div",Xt,[t("div",jt,[s(e(n),{icon:"solar:clock-circle-bold-duotone",class:"text-green-500"})]),t("div",Wt,[a[13]||(a[13]=t("div",{class:"stat-label"},"预计时长",-1)),t("div",Jt,i(o.value.extInfo.expectedDuration)+" 分钟 ",1)])]),t("div",qt,[t("div",{class:x(["stat-icon",T.value?"bg-red-50 dark:bg-red-900/30":"bg-orange-50 dark:bg-orange-900/30"])},[s(e(n),{icon:"solar:stopwatch-bold-duotone",class:x(T.value?"text-red-500":"text-orange-500")},null,8,["class"])],2),t("div",Qt,[a[15]||(a[15]=t("div",{class:"stat-label"},"已用时长",-1)),t("div",{class:x(["stat-value",{"text-red-500":T.value}])},[d(i(K.value)+" 分钟 ",1),T.value?(c(),k(e(F),{key:0,color:"error",size:"small",class:"ml-1"},{default:l(()=>[...a[14]||(a[14]=[d(" 超时 ",-1)])]),_:1})):p("",!0)],2)])]),t("div",Zt,[t("div",es,[s(e(n),{icon:"solar:hourglass-line-bold-duotone",class:"text-purple-500"})]),t("div",ts,[a[16]||(a[16]=t("div",{class:"stat-label"},"剩余时间",-1)),t("div",{class:x(["stat-value",{"text-red-500":T.value}])},i(T.value?`已超时 ${K.value-(o.value.extInfo.expectedDuration||0)} 分钟`:`${(o.value.extInfo.expectedDuration||0)-K.value} 分钟`),3)])])])]),_:1})]),_:1})]),_:1})):p("",!0),s(e(O),{class:"info-card mb-3"},{title:l(()=>[t("div",ss,[s(e(n),{icon:"solar:info-circle-bold-duotone",class:"text-blue-500"}),a[17]||(a[17]=t("span",null,"基础信息",-1))])]),default:l(()=>[s(e(h),{column:2,bordered:"",size:"small",class:"custom-descriptions"},{default:l(()=>[s(e(h).Item,{label:"工单类型"},{default:l(()=>[s(e(F),{color:e(qe)[o.value.orderType]},{default:l(()=>[s(e(n),{icon:"solar:broom-bold-duotone",class:"mr-1"}),d(" "+i(e(Qe)[o.value.orderType]),1)]),_:1},8,["color"])]),_:1}),s(e(h).Item,{label:"作业区域"},{default:l(()=>[t("span",as,[s(e(n),{icon:"solar:map-point-bold-duotone",class:"text-gray-400"}),d(" "+i(o.value.location||"-"),1)])]),_:1}),s(e(h).Item,{label:"触发来源"},{default:l(()=>[t("span",os,[s(e(n),{icon:"solar:bluetooth-wave-bold-duotone",class:"text-blue-400"}),d(" "+i(e(Ze)[o.value.triggerSource]||"-"),1)])]),_:1}),s(e(h).Item,{label:"创建时间"},{default:l(()=>[t("span",ls,[s(e(n),{icon:"solar:calendar-bold-duotone",class:"text-gray-400"}),d(" "+i(e(ae)(o.value.createTime)),1)])]),_:1}),o.value.triggerDeviceKey?(c(),k(e(h).Item,{key:0,label:"触发设备"},{default:l(()=>[t("code",ns,i(o.value.triggerDeviceKey),1)]),_:1})):p("",!0),o.value.startTime?(c(),k(e(h).Item,{key:1,label:"开始时间"},{default:l(()=>[t("span",is,[s(e(n),{icon:"solar:play-circle-bold-duotone",class:"text-green-400"}),d(" "+i(e(ae)(o.value.startTime)),1)])]),_:1})):p("",!0)]),_:1})]),_:1})]),_:1}),s(e($),{span:8},{default:l(()=>[s(e(O),{class:"assignee-card mb-3"},{title:l(()=>[t("div",rs,[s(e(n),{icon:"solar:user-bold-duotone",class:"text-blue-500"}),a[18]||(a[18]=t("span",null,"执行人",-1))])]),default:l(()=>[o.value.assigneeName?(c(),g("div",ds,[t("div",cs,[s(e(ot),{size:40,class:"assignee-avatar"},{default:l(()=>{var u;return[d(i((u=o.value.assigneeName)==null?void 0:u.charAt(0)),1)]}),_:1}),t("div",us,[t("div",vs,i(o.value.assigneeName),1),t("div",ms,"工号: "+i(o.value.assigneeId),1)]),v.value?(c(),k(e(F),{key:0,color:v.value.status==="BUSY"?"processing":"default",class:"status-badge"},{default:l(()=>[d(i(v.value.status==="BUSY"?"作业中":"空闲"),1)]),_:1},8,["color"])):p("",!0)]),v.value?(c(),g("div",ps,[t("div",gs,[s(e(n),{icon:"solar:bluetooth-wave-bold-duotone",class:"text-blue-500"}),a[19]||(a[19]=t("span",null,"工牌实时状态",-1)),a[20]||(a[20]=t("div",{class:"pulse-dot"},null,-1))]),t("div",bs,[t("div",_s,[t("div",fs,[s(e(n),{icon:"solar:map-point-wave-bold-duotone",class:x(v.value.isInArea?"text-green-500":"text-orange-500")},null,8,["class"])]),t("div",ys,[a[21]||(a[21]=t("div",{class:"badge-stat-label"},"位置状态",-1)),s(e(F),{color:v.value.isInArea?"success":"warning",size:"small"},{default:l(()=>[d(i(v.value.isInArea?"在区域内":"已离开"),1)]),_:1},8,["color"])])]),t("div",Cs,[t("div",Is,[s(e(n),{icon:"solar:battery-charge-bold-duotone",style:w({color:Z(v.value.batteryLevel)})},null,8,["style"])]),t("div",ks,[a[22]||(a[22]=t("div",{class:"badge-stat-label"},"电池电量",-1)),t("div",xs,[t("div",{class:"battery-fill",style:w({width:`${v.value.batteryLevel}%`,backgroundColor:Z(v.value.batteryLevel)})},null,4)]),t("span",{class:"battery-text",style:w({color:Z(v.value.batteryLevel)})},i(v.value.batteryLevel)+"% ",5)])]),t("div",Ts,[t("div",Ds,[s(e(n),{icon:"solar:wifi-router-bold-duotone",class:"text-blue-500"})]),t("div",Es,[a[23]||(a[23]=t("div",{class:"badge-stat-label"},"信号强度",-1)),t("div",hs,[(c(),g(M,null,se(4,u=>t("div",{key:u,class:x(["signal-bar",{active:v.value.rssi>-70+(u-1)*15}])},null,2)),64)),t("span",As,i(v.value.rssi)+" dBm ",1)])])]),t("div",ws,[t("div",Ss,[s(e(n),{icon:"solar:pulse-2-bold-duotone",class:"text-green-500"})]),t("div",Rs,[a[24]||(a[24]=t("div",{class:"badge-stat-label"},"最后心跳",-1)),t("div",Ns,i(Y(v.value.lastHeartbeatTime)),1)])])])])):p("",!0)])):(c(),g("div",Ps,[t("div",Os,[s(e(n),{icon:"solar:user-plus-bold-duotone"})]),a[26]||(a[26]=t("div",{class:"no-assignee-text"},"暂未分配执行人",-1)),s(e(f),{type:"primary",ghost:"",size:"small",onClick:ue},{default:l(()=>[s(e(n),{icon:"solar:user-plus-bold-duotone",class:"mr-1"}),a[25]||(a[25]=d(" 立即分配 ",-1))]),_:1})]))]),_:1}),s(e(O),{class:"actions-card"},{title:l(()=>[t("div",Ls,[s(e(n),{icon:"solar:settings-bold-duotone",class:"text-blue-500"}),a[27]||(a[27]=t("span",null,"快捷操作",-1))])]),default:l(()=>[t("div",Ms,[o.value.status==="PENDING"?(c(),g(M,{key:0},[s(e(f),{type:"primary",block:"",class:"action-btn",onClick:ue},{default:l(()=>[s(e(n),{icon:"solar:user-plus-bold-duotone",class:"mr-1"}),a[28]||(a[28]=d(" 分配执行人 ",-1))]),_:1}),s(e(f),{danger:"",block:"",class:"action-btn",onClick:q},{default:l(()=>[s(e(n),{icon:"solar:close-circle-bold-duotone",class:"mr-1"}),a[29]||(a[29]=d(" 取消工单 ",-1))]),_:1})],64)):p("",!0),o.value.status==="DISPATCHED"?(c(),g(M,{key:1},[s(e(f),{type:"primary",block:"",class:"action-btn",onClick:ve},{default:l(()=>[s(e(n),{icon:"solar:volume-loud-bold-duotone",class:"mr-1"}),a[30]||(a[30]=d(" 语音提醒 ",-1))]),_:1}),s(e(f),{block:"",class:"action-btn",onClick:Q},{default:l(()=>[s(e(n),{icon:"solar:smartphone-vibration-bold-duotone",class:"mr-1"}),a[31]||(a[31]=d(" 震动提醒 ",-1))]),_:1}),s(e(f),{danger:"",block:"",class:"action-btn",onClick:q},{default:l(()=>[s(e(n),{icon:"solar:close-circle-bold-duotone",class:"mr-1"}),a[32]||(a[32]=d(" 取消工单 ",-1))]),_:1})],64)):p("",!0),o.value.status==="ARRIVED"?(c(),g(M,{key:2},[s(e(f),{type:"primary",block:"",class:"action-btn action-btn-success",onClick:Le},{default:l(()=>[s(e(n),{icon:"solar:check-circle-bold-duotone",class:"mr-1"}),a[33]||(a[33]=d(" 手动完成 ",-1))]),_:1}),s(e(f),{block:"",class:"action-btn",onClick:Q},{default:l(()=>[s(e(n),{icon:"solar:smartphone-vibration-bold-duotone",class:"mr-1"}),a[34]||(a[34]=d(" 震动提醒 ",-1))]),_:1}),s(e(f),{block:"",class:"action-btn",onClick:q},{default:l(()=>[s(e(n),{icon:"solar:pause-circle-bold-duotone",class:"mr-1"}),a[35]||(a[35]=d(" 暂停工单 ",-1))]),_:1})],64)):p("",!0),o.value.priority!==0&&!["COMPLETED","CANCELLED"].includes(o.value.status)?(c(),k(e(f),{key:3,danger:"",ghost:"",block:"",class:"action-btn action-btn-upgrade",onClick:Oe},{default:l(()=>[s(e(n),{icon:"solar:bolt-bold-duotone",class:"mr-1"}),a[36]||(a[36]=d(" 升级为 P0 紧急 ",-1))]),_:1})):p("",!0)])]),_:1})]),_:1})]),_:1})]),_:1},8,["spinning"])]),_:1}))}}),aa=Ye(Vs,[["__scopeId","data-v-74741329"]]);export{aa as default};