2 lines
7.4 KiB
JavaScript
2 lines
7.4 KiB
JavaScript
var S=(k,D,T)=>new Promise((O,u)=>{var b=c=>{try{_(T.next(c))}catch(l){u(l)}},m=c=>{try{_(T.throw(c))}catch(l){u(l)}},_=c=>c.done?O(c.value):Promise.resolve(c.value).then(b,m);_((T=T.apply(k,D)).next())});import{c1 as W,an as d,ax as P,aL as F,ak as Y,ay as h,bI as q,d as I,aO as G,c0 as H,bE as j,bV as K,ac as Q}from"./bootstrap-CjlLFctT.js";import"./index-6P_OLtCG.js";import{S as X,a as J,b as Z,O as ee,c as te,P as L}from"./data-RXRjcS88.js";import{A as ae}from"./index-EsemDJmm.js";import{m as se,b9 as A,v as oe,be as ie,ad as C,b2 as r,bL as re,ac as v,ab as g,bJ as s,I as z,bb as ne,u as t,ae as i,aR as M,aT as le,j as a,bp as p,ai as E}from"../jse/index-index-muiiV4cL.js";const ce={class:"work-order-card-view"},de={class:"card-grid"},ue=["onClick"],pe={class:"card-header"},_e={class:"status-text"},fe={class:"card-body"},ge={class:"card-title"},ye={class:"info-rows"},Ce={class:"info-row"},ve={class:"info-text"},Te={class:"info-row"},me={class:"info-text"},Ee={key:1,class:"info-text info-text--muted"},be={class:"card-footer"},Ne={class:"card-meta"},he={class:"order-code"},Ae={class:"create-time"},ke={key:0,class:"pagination-wrapper"},De=!0,Pe=se({name:"WorkOrderCardView",__name:"card-view",props:{searchParams:{}},emits:["assign","cancel","detail","notify","upgrade"],setup(k,{expose:D,emit:T}){const O=k,u=T,b=[{id:10001,orderCode:"WO20260123143025001",title:"A区洗手间紧急保洁",orderType:"CLEAN",status:"ARRIVED",priority:0,location:"A区 / 1楼洗手间",assigneeId:2001,assigneeName:"张三",createTime:"2026-01-23 14:30:25"},{id:10002,orderCode:"WO20260123150012002",title:"B区大厅日常保洁",orderType:"CLEAN",status:"DISPATCHED",priority:1,location:"B区 / 大厅",assigneeId:2002,assigneeName:"李四",createTime:"2026-01-23 15:00:12"},{id:10003,orderCode:"WO20260123151530003",title:"C区会议室深度保洁",orderType:"CLEAN",status:"PENDING",priority:2,location:"C区 / 3楼会议室",createTime:"2026-01-23 15:15:30"},{id:10004,orderCode:"WO20260123091045004",title:"D区电梯厅保洁",orderType:"CLEAN",status:"COMPLETED",priority:2,location:"D区 / 电梯厅",assigneeId:2003,assigneeName:"王五",createTime:"2026-01-23 09:10:45"},{id:10005,orderCode:"WO20260123160000005",title:"E区停车场应急清洁",orderType:"CLEAN",status:"QUEUED",priority:0,location:"E区 / 地下停车场",assigneeId:2001,assigneeName:"张三",createTime:"2026-01-23 16:00:00"},{id:10006,orderCode:"WO20260123102030006",title:"A区休息区保洁",orderType:"CLEAN",status:"CONFIRMED",priority:1,location:"A区 / 2楼休息区",assigneeId:2004,assigneeName:"赵六",createTime:"2026-01-23 10:20:30"},{id:10007,orderCode:"WO20260123110500007",title:"F区门厅玻璃清洁",orderType:"CLEAN",status:"PAUSED",priority:2,location:"F区 / 门厅",assigneeId:2005,assigneeName:"钱七",createTime:"2026-01-23 11:05:00"},{id:10008,orderCode:"WO20260123140000008",title:"B区卫生间设备维修",orderType:"REPAIR",status:"PENDING",priority:1,location:"B区 / 2楼卫生间",createTime:"2026-01-23 14:00:00"}],m=A(!1),_=A([]),c=A(0),l=A({pageNo:1,pageSize:12});function N(){return S(this,null,function*(){m.value=!0;try{De&&(yield new Promise(o=>setTimeout(o,400)),_.value=[...b],c.value=b.length)}finally{m.value=!1}})}function x(o,n){l.value.pageNo=o,l.value.pageSize=n,N()}function U(o){return L[o]||L[2]}function $(o){return o===0}function w(o){return["CANCELLED","COMPLETED"].includes(o)}function B(o){return["ARRIVED","CONFIRMED","DISPATCHED","QUEUED"].includes(o)}function V(o){if(!o)return"-";const n=new Date(o),e=new Date().getTime()-n.getTime(),y=Math.floor(e/6e4),f=Math.floor(y/60);return y<1?"刚刚":y<60?`${y}分钟前`:f<24?`${f}小时前`:o.slice(5,16)}return D({reload:N,query:()=>{l.value.pageNo=1,N()}}),oe(()=>{N()}),(o,n)=>{const R=ie("loading");return r(),C("div",ce,[re((r(),C("div",de,[_.value.length>0?(r(),g(t(H),{key:0,gutter:[12,12]},{default:s(()=>[(r(!0),C(z,null,ne(_.value,e=>(r(),g(t(W),{key:e.id,xs:24,sm:12,md:8,lg:6,xl:6},{default:s(()=>{var y;return[i("div",{class:M(["order-card",{"order-card--urgent":$(e.priority),"order-card--terminal":w(e.status)}]),onClick:f=>u("detail",e.id)},[i("div",pe,[i("div",{class:"status-info",style:le({"--status-color":t(X)[e.status]})},[a(t(d),{icon:t(J)[e.status]||"solar:circle-bold",class:"status-icon"},null,8,["icon"]),i("span",_e,p(t(Z)[e.status]),1)],4),e.priority!==2?(r(),C("div",{key:0,class:M(["priority-tag",`priority-${e.priority}`])},[e.priority===0?(r(),g(t(d),{key:0,icon:"solar:bolt-bold"})):v("",!0),E(" "+p((y=U(e.priority))==null?void 0:y.label),1)],2)):v("",!0)]),i("div",fe,[a(t(P),{title:e.title,placement:"topLeft"},{default:s(()=>[i("h4",ge,p(e.title),1)]),_:2},1032,["title"]),i("div",ye,[i("div",Ce,[a(t(d),{icon:"solar:map-point-bold-duotone",class:"info-icon"}),i("span",ve,p(e.location||"未指定位置"),1)]),i("div",Te,[a(t(d),{icon:"solar:user-bold-duotone",class:"info-icon"}),e.assigneeName?(r(),C(z,{key:0},[a(t(ae),{size:16,class:"assignee-avatar"},{default:s(()=>[E(p(e.assigneeName.charAt(0)),1)]),_:2},1024),i("span",me,p(e.assigneeName),1)],64)):(r(),C("span",Ee,"待分配"))])])]),i("div",be,[i("div",Ne,[a(t(F),{color:t(ee)[e.orderType],class:"type-tag"},{default:s(()=>[E(p(t(te)[e.orderType]),1)]),_:2},1032,["color"]),i("span",he,"#"+p(e.orderCode.slice(-6)),1),i("span",Ae,p(V(e.createTime)),1)]),i("div",{class:"card-actions",onClick:n[0]||(n[0]=Y(()=>{},["stop"]))},[e.status==="PENDING"?(r(),g(t(P),{key:0,title:"分配执行人"},{default:s(()=>[a(t(h),{type:"primary",size:"small",class:"action-btn",onClick:f=>u("assign",e)},{default:s(()=>[a(t(d),{icon:"solar:user-plus-bold"})]),_:1},8,["onClick"])]),_:2},1024)):v("",!0),e.status==="DISPATCHED"?(r(),g(t(q),{key:1,placement:"topRight"},{overlay:s(()=>[a(t(I),null,{default:s(()=>[a(t(I).Item,{key:"voice",onClick:f=>u("notify",e,"voice")},{default:s(()=>[a(t(d),{icon:"solar:volume-loud-bold",class:"mr-2"}),n[3]||(n[3]=E(" 语音提醒 ",-1))]),_:1},8,["onClick"]),a(t(I).Item,{key:"vibrate",onClick:f=>u("notify",e,"vibrate")},{default:s(()=>[a(t(d),{icon:"solar:smartphone-vibration-bold",class:"mr-2"}),n[4]||(n[4]=E(" 震动提醒 ",-1))]),_:1},8,["onClick"])]),_:2},1024)]),default:s(()=>[a(t(h),{size:"small",class:"action-btn action-btn--notify"},{default:s(()=>[a(t(d),{icon:"solar:bell-bold"})]),_:1})]),_:2},1024)):v("",!0),e.priority!==0&&B(e.status)?(r(),g(t(P),{key:2,title:"升级为紧急"},{default:s(()=>[a(t(h),{size:"small",class:"action-btn action-btn--upgrade",onClick:f=>u("upgrade",e)},{default:s(()=>[a(t(d),{icon:"solar:bolt-bold"})]),_:1},8,["onClick"])]),_:2},1024)):v("",!0),w(e.status)?v("",!0):(r(),g(t(G),{key:3,title:"确定取消此工单?",placement:"topRight",onConfirm:f=>u("cancel",e)},{default:s(()=>[a(t(h),{size:"small",class:"action-btn action-btn--danger"},{default:s(()=>[a(t(d),{icon:"solar:close-circle-bold"})]),_:1})]),_:1},8,["onConfirm"]))])])],10,ue)]}),_:2},1024))),128))]),_:1})):(r(),g(t(j),{key:1,description:"暂无工单数据",class:"my-16"}))])),[[R,m.value]]),_.value.length>0?(r(),C("div",ke,[a(t(K),{current:l.value.pageNo,"onUpdate:current":n[1]||(n[1]=e=>l.value.pageNo=e),"page-size":l.value.pageSize,"onUpdate:pageSize":n[2]||(n[2]=e=>l.value.pageSize=e),total:c.value,"show-total":e=>`共 ${e} 条`,size:"small","show-quick-jumper":"","show-size-changer":"","page-size-options":["12","24","36","48"],onChange:x},null,8,["current","page-size","total","show-total"])])):v("",!0)])}}}),Me=Q(Pe,[["__scopeId","data-v-305aed97"]]);export{Me as default};
|