2 lines
14 KiB
JavaScript
2 lines
14 KiB
JavaScript
import{r as _,c as P,s as E,o as W,i as k,w as d,v as O,g as a,b as t,a as i,j as m,d as u,t as o,e as r,F as S,k as x,af as Z,aR as U}from"./index-QAlcqU00.js";import{u as q}from"./customers-Gpmak2fJ.js";import{F as G,a as J}from"./FPPageHeader-CFIwZZgQ.js";import{F as c}from"./FPCard-AB6NRXg5.js";import{F as h}from"./FPCheckbox-DcRYwN3n.js";import{F as C}from"./FPBadge-DvOitM1C.js";import{F as K}from"./FPTabs-qq-Tmb7J.js";const Q={class:"px-6 py-8"},X={key:0,class:"flex items-center justify-center py-12"},Y={key:1,class:"text-center py-12"},tt={class:"text-gray-600 mb-4"},et={key:2,class:"space-y-8"},st={class:"grid grid-cols-1 md:grid-cols-4 gap-6"},ot={class:"p-6"},lt={class:"flex items-center"},at={class:"flex-shrink-0"},it={class:"ml-4"},rt={class:"text-lg font-semibold text-gray-900"},nt={class:"p-6"},dt={class:"flex items-center"},ut={class:"flex-shrink-0"},mt={class:"ml-4"},ct={class:"text-lg font-semibold text-gray-900"},vt={class:"p-6"},xt={class:"flex items-center"},yt={class:"ml-4"},pt={class:"text-lg font-semibold text-gray-900"},ft={class:"p-6"},gt={class:"flex items-center"},bt={class:"ml-4"},_t={class:"text-lg font-semibold text-gray-900"},kt={class:"p-6"},ht={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},Ct={class:"text-sm text-gray-900"},wt={class:"text-sm text-gray-900 font-mono"},Nt=["href"],St=["href"],At={class:"text-sm text-gray-900"},Ft={key:0,class:"mt-6"},Pt={class:"text-sm text-gray-900"},Tt={class:"p-6"},Vt={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},Bt={class:"text-sm text-gray-900"},Lt={class:"text-sm text-gray-900"},zt={class:"text-sm text-gray-900"},jt={key:0,class:"mt-6"},Dt={class:"grid grid-cols-2 md:grid-cols-4 gap-3"},Mt={class:"flex items-center"},Rt={class:"flex items-center"},$t={class:"flex items-center"},It={class:"flex items-center"},Ht={key:1,class:"mt-6"},Et={class:"text-sm text-gray-900"},Wt={class:"p-6"},Ot={class:"space-y-6"},Zt={key:0},Ut={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},qt={class:"text-sm text-gray-900"},Gt={class:"text-sm text-gray-900"},Jt=["href"],Kt={key:1,class:"text-sm text-gray-900"},Qt=["href"],Xt={key:1,class:"text-sm text-gray-900"},Yt={key:1},te={class:"text-sm text-gray-900"},ee={key:0},se={key:0},oe={key:1},le={key:2},ae={key:2},ie={class:"text-sm text-gray-900"},re={class:"p-6"},ne={class:"space-y-4"},de={class:"flex-1"},ue={class:"text-sm text-gray-900"},me={class:"text-xs text-gray-500"},ce={key:0,class:"text-center py-8 text-gray-500"},ke={__name:"CustomerDetailView",setup(ve){const T=E(),A=O(),V=q(),y=_(!1),p=_(null),s=_(null),v=_("basic"),w=_([]),N=P(()=>parseInt(T.params.id)),B=[{key:"basic",label:"Basic Information",icon:"info"},{key:"service",label:"SLA & Service",icon:"clock"},{key:"contact",label:"Contact & Location",icon:"map"},{key:"activity",label:"Recent Activity",icon:"activity"}],L=P(()=>{var e;if(!((e=s.value)!=null&&e.address))return!1;const l=s.value.address;return l.street||l.city||l.state||l.zipCode}),z=async()=>{y.value=!0,p.value=null;try{const l=await V.getCustomer(N.value);l?s.value=l:p.value="Customer not found"}catch(l){console.error("Failed to load customer:",l),p.value="Failed to load customer details"}finally{y.value=!1}},j=async()=>{try{w.value=[{id:1,description:"Work order WO-2024-001 completed",createdAt:"2024-01-15T10:30:00Z"},{id:2,description:"Customer information updated",createdAt:"2024-01-14T15:45:00Z"},{id:3,description:"New service request submitted",createdAt:"2024-01-12T09:15:00Z"}]}catch(l){console.error("Failed to load activity:",l)}},D=()=>{A.push(`/customers?edit=${N.value}`)},M=()=>{A.push(`/work-orders?create=true&customerId=${N.value}`)},R=l=>({active:"green",inactive:"gray",suspended:"red"})[l]||"gray",F=l=>({high:"red",medium:"yellow",low:"green"})[l]||"gray",$=l=>({internal:"blue",external:"green",partner:"purple",government:"gray"})[l]||"gray",I=l=>l?new Date(l).toLocaleDateString():"Never",H=l=>l?new Date(l).toLocaleString():"Unknown";return W(async()=>{await z(),v.value==="activity"&&await j()}),(l,e)=>(a(),k(G,null,{header:d(()=>{var n,f,g;return[u(J,{title:((n=s.value)==null?void 0:n.name)||"Customer Details",description:((f=s.value)==null?void 0:f.description)||"Customer information and service details",breadcrumbs:[{text:"Customers",to:"/customers"},{text:((g=s.value)==null?void 0:g.name)||"Loading...",to:null}]},{actions:d(()=>{var b;return[u(r(S),{variant:"outline",size:"sm",onClick:D,disabled:y.value},{default:d(()=>e[2]||(e[2]=[t("svg",{class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})],-1),x(" Edit Customer ",-1)])),_:1,__:[2]},8,["disabled"]),u(r(S),{variant:"primary",size:"sm",onClick:M,disabled:y.value||((b=s.value)==null?void 0:b.status)!=="active"},{default:d(()=>e[3]||(e[3]=[t("svg",{class:"w-4 h-4 mr-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),x(" Create Work Order ",-1)])),_:1,__:[3]},8,["disabled"])]}),_:1},8,["title","description","breadcrumbs"])]}),default:d(()=>[t("div",Q,[y.value?(a(),i("div",X,e[4]||(e[4]=[t("svg",{class:"animate-spin -ml-1 mr-3 h-8 w-8 text-blue-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[t("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),t("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})],-1),t("span",{class:"text-gray-600"},"Loading customer details...",-1)]))):p.value?(a(),i("div",Y,[e[6]||(e[6]=t("div",{class:"text-red-500 mb-4"},[t("svg",{class:"w-12 h-12 mx-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})])],-1)),e[7]||(e[7]=t("h3",{class:"text-lg font-medium text-gray-900 mb-2"},"Customer Not Found",-1)),t("p",tt,o(p.value),1),u(r(S),{onClick:e[0]||(e[0]=n=>l.$router.push("/customers"))},{default:d(()=>e[5]||(e[5]=[x(" Back to Customers ",-1)])),_:1,__:[5]})])):s.value?(a(),i("div",et,[t("div",st,[u(r(c),null,{default:d(()=>[t("div",ot,[t("div",lt,[t("div",at,[u(r(C),{variant:R(s.value.status),size:"lg"},{default:d(()=>[x(o(s.value.status),1)]),_:1},8,["variant"])]),t("div",it,[e[8]||(e[8]=t("p",{class:"text-sm font-medium text-gray-500"},"Status",-1)),t("p",rt,o(s.value.status==="active"?"Active":"Inactive"),1)])])])]),_:1}),u(r(c),null,{default:d(()=>[t("div",nt,[t("div",dt,[t("div",ut,[u(r(C),{variant:F(s.value.priority),size:"lg"},{default:d(()=>[x(o(s.value.priority),1)]),_:1},8,["variant"])]),t("div",mt,[e[9]||(e[9]=t("p",{class:"text-sm font-medium text-gray-500"},"Priority",-1)),t("p",ct,o(s.value.priority||"Not Set"),1)])])])]),_:1}),u(r(c),null,{default:d(()=>{var n;return[t("div",vt,[t("div",xt,[e[11]||(e[11]=t("div",{class:"flex-shrink-0"},[t("div",{class:"w-10 h-10 bg-blue-100 rounded-lg flex items-center justify-center"},[t("svg",{class:"w-6 h-6 text-blue-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})])])],-1)),t("div",yt,[e[10]||(e[10]=t("p",{class:"text-sm font-medium text-gray-500"},"Response SLA",-1)),t("p",pt,o(((n=s.value.sla)==null?void 0:n.responseTime)||"Not Set"),1)])])])]}),_:1}),u(r(c),null,{default:d(()=>[t("div",ft,[t("div",gt,[e[13]||(e[13]=t("div",{class:"flex-shrink-0"},[t("div",{class:"w-10 h-10 bg-green-100 rounded-lg flex items-center justify-center"},[t("svg",{class:"w-6 h-6 text-green-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})])])],-1)),t("div",bt,[e[12]||(e[12]=t("p",{class:"text-sm font-medium text-gray-500"},"Last Contact",-1)),t("p",_t,o(I(s.value.lastContactDate)),1)])])])]),_:1})]),u(r(K),{modelValue:v.value,"onUpdate:modelValue":e[1]||(e[1]=n=>v.value=n),tabs:B,class:"mb-6"},null,8,["modelValue"]),v.value==="basic"?(a(),k(r(c),{key:0},{default:d(()=>[t("div",kt,[e[21]||(e[21]=t("h3",{class:"text-lg font-medium text-gray-900 mb-6"},"Basic Information",-1)),t("div",ht,[t("div",null,[e[14]||(e[14]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Customer Name",-1)),t("p",Ct,o(s.value.name),1)]),t("div",null,[e[15]||(e[15]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Customer Code",-1)),t("p",wt,o(s.value.customerCode),1)]),t("div",null,[e[16]||(e[16]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Email Address",-1)),t("a",{href:`mailto:${s.value.email}`,class:"text-sm text-blue-600 hover:text-blue-800"},o(s.value.email),9,Nt)]),t("div",null,[e[17]||(e[17]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Phone Number",-1)),t("a",{href:`tel:${s.value.phone}`,class:"text-sm text-blue-600 hover:text-blue-800"},o(s.value.phone||"Not provided"),9,St)]),t("div",null,[e[18]||(e[18]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Customer Type",-1)),u(r(C),{variant:$(s.value.type)},{default:d(()=>[x(o(s.value.type),1)]),_:1},8,["variant"])]),t("div",null,[e[19]||(e[19]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Service Hours",-1)),t("p",At,o(s.value.serviceHours||"24x7"),1)])]),s.value.description?(a(),i("div",Ft,[e[20]||(e[20]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Description",-1)),t("p",Pt,o(s.value.description),1)])):m("",!0)])]),_:1})):m("",!0),v.value==="service"?(a(),k(r(c),{key:1},{default:d(()=>{var n,f,g,b;return[t("div",Tt,[e[28]||(e[28]=t("h3",{class:"text-lg font-medium text-gray-900 mb-6"},"SLA & Service Information",-1)),t("div",Vt,[t("div",null,[e[22]||(e[22]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Response Time SLA",-1)),t("p",Bt,o(((n=s.value.sla)==null?void 0:n.responseTime)||"Not defined"),1)]),t("div",null,[e[23]||(e[23]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Resolution Time SLA",-1)),t("p",Lt,o(((f=s.value.sla)==null?void 0:f.resolutionTime)||"Not defined"),1)]),t("div",null,[e[24]||(e[24]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Availability Target",-1)),t("p",zt,o((g=s.value.sla)!=null&&g.availability?`${s.value.sla.availability}%`:"Not defined"),1)]),t("div",null,[e[25]||(e[25]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Service Priority",-1)),u(r(C),{variant:F(s.value.priority)},{default:d(()=>[x(o(s.value.priority||"Standard"),1)]),_:1},8,["variant"])])]),s.value.notifications?(a(),i("div",jt,[e[26]||(e[26]=t("label",{class:"block text-sm font-medium text-gray-700 mb-3"},"Notification Preferences",-1)),t("div",Dt,[t("div",Mt,[u(r(h),{modelValue:s.value.notifications.email,disabled:"",label:"Email"},null,8,["modelValue"])]),t("div",Rt,[u(r(h),{modelValue:s.value.notifications.sms,disabled:"",label:"SMS"},null,8,["modelValue"])]),t("div",$t,[u(r(h),{modelValue:s.value.notifications.phone,disabled:"",label:"Phone"},null,8,["modelValue"])]),t("div",It,[u(r(h),{modelValue:s.value.notifications.portal,disabled:"",label:"Portal"},null,8,["modelValue"])])])])):m("",!0),(b=s.value.sla)!=null&&b.notes?(a(),i("div",Ht,[e[27]||(e[27]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"SLA Notes",-1)),t("p",Et,o(s.value.sla.notes),1)])):m("",!0)])]}),_:1})):m("",!0),v.value==="contact"?(a(),k(r(c),{key:2},{default:d(()=>{var n;return[t("div",Wt,[e[36]||(e[36]=t("h3",{class:"text-lg font-medium text-gray-900 mb-6"},"Contact & Location Information",-1)),t("div",Ot,[(n=s.value.primaryContact)!=null&&n.name?(a(),i("div",Zt,[e[33]||(e[33]=t("h4",{class:"text-base font-medium text-gray-900 mb-4"},"Primary Contact",-1)),t("div",Ut,[t("div",null,[e[29]||(e[29]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Name",-1)),t("p",qt,o(s.value.primaryContact.name),1)]),t("div",null,[e[30]||(e[30]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Title",-1)),t("p",Gt,o(s.value.primaryContact.title||"Not provided"),1)]),t("div",null,[e[31]||(e[31]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Email",-1)),s.value.primaryContact.email?(a(),i("a",{key:0,href:`mailto:${s.value.primaryContact.email}`,class:"text-sm text-blue-600 hover:text-blue-800"},o(s.value.primaryContact.email),9,Jt)):(a(),i("p",Kt,"Not provided"))]),t("div",null,[e[32]||(e[32]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Phone",-1)),s.value.primaryContact.phone?(a(),i("a",{key:0,href:`tel:${s.value.primaryContact.phone}`,class:"text-sm text-blue-600 hover:text-blue-800"},o(s.value.primaryContact.phone),9,Qt)):(a(),i("p",Xt,"Not provided"))])])])):m("",!0),L.value?(a(),i("div",Yt,[e[34]||(e[34]=t("h4",{class:"text-base font-medium text-gray-900 mb-4"},"Address",-1)),t("div",te,[s.value.address.street?(a(),i("p",ee,o(s.value.address.street),1)):m("",!0),t("p",null,[s.value.address.city?(a(),i("span",se,o(s.value.address.city),1)):m("",!0),s.value.address.state?(a(),i("span",oe,", "+o(s.value.address.state),1)):m("",!0),s.value.address.zipCode?(a(),i("span",le,o(s.value.address.zipCode),1)):m("",!0)])])])):m("",!0),s.value.notes?(a(),i("div",ae,[e[35]||(e[35]=t("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Notes",-1)),t("p",ie,o(s.value.notes),1)])):m("",!0)])])]}),_:1})):m("",!0),v.value==="activity"?(a(),k(r(c),{key:3},{default:d(()=>[t("div",re,[e[38]||(e[38]=t("h3",{class:"text-lg font-medium text-gray-900 mb-6"},"Recent Activity",-1)),t("div",ne,[(a(!0),i(Z,null,U(w.value,n=>(a(),i("div",{key:n.id,class:"flex space-x-3"},[e[37]||(e[37]=t("div",{class:"flex-shrink-0"},[t("div",{class:"w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center"},[t("svg",{class:"w-4 h-4 text-gray-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})])])],-1)),t("div",de,[t("p",ue,o(n.description),1),t("p",me,o(H(n.createdAt)),1)])]))),128)),w.value.length?m("",!0):(a(),i("div",ce," No recent activity found for this customer. "))])])]),_:1})):m("",!0)])):m("",!0)])]),_:1}))}};export{ke as default};
|