Files
machartaa_admin_dist/dist/assets/index-047fb2a5.js
T
2026-08-18 16:19:11 +03:30

2 lines
14 KiB
JavaScript

import{_ as be}from"./BasicMainCard-0ad7dc72.js";import{_ as ke}from"./BasicModal.vue_vue_type_style_index_0_lang-4b1d1ef5.js";import{_ as xe,u as we}from"./useBaseTable-f8894810.js";import{_ as Ce}from"./button.vue_vue_type_style_index_0_lang-bc3a48f6.js";import{I as M}from"./Icon-767d2866.js";import{t as Te}from"./useDataTime-4be5c5cf.js";import{g as Q}from"./convert-2ad76038.js";import{t as Ie}from"./textUtils-c37780ad.js";import{j as G,k as Se,l as Re,n as $e,o as Ae,p as Ue,q as qe}from"./support-2cf64a0b.js";import{_ as Be,T as je}from"./index-bcc6b780.js";import{a as H,A as W}from"./index-909488b9.js";import{I as Pe}from"./index-942dc2ed.js";import{d as De,g as y,r as X,h as V,E as Ee,v as Ne,l as Fe,o,c,b as d,w as u,a as t,e as I,F as q,n as j,j as p,i as k,H as Le,k as S,t as h,D as g,O as Ke,P as Me,p as Y}from"./index-24cdd011.js";import{T as O}from"./isSymbol-e7ce9b5a.js";import{U as Qe}from"./index-5477dee9.js";import{_ as Ve}from"./_plugin-vue_export-helper-06d65383.js";import"./Grid-ce03674d.js";import"./index-ef7f0d13.js";import"./Col-8ec8a751.js";import"./styleChecker-aeb3f501.js";import"./isPlainObject-25081d35.js";import"./vnode-562ae89f.js";import"./index-d68d1b34.js";import"./index-5eb1b262.js";import"./DialogWrap-4e2453b1.js";import"./shallowequal-59945f6f.js";import"./omit-08db5ef5.js";import"./pickAttrs-64381c06.js";import"./index-cbf3fafb.js";import"./FormItemContext-a07e1be1.js";import"./updateLocale-58c30845.js";import"./index-bc659f42.js";import"./useState-bb6abd58.js";import"./useMemo-5fb6706d.js";import"./lodash-3126ec34.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-5acaa0f7.js";import"./index-3078e65c.js";import"./Badge-aa4916ac.js";import"./isNumeric-3f69e2aa.js";import"./index-38d9344c.js";import"./index-fec9c5bc.js";import"./index-39621559.js";import"./index-093e137a.js";import"./index-4057f476.js";import"./css-aae66f86.js";import"./index-0ceac0d6.js";import"./toArray-e3c28da8.js";import"./SearchOutlined-3570b8ac.js";import"./isMobile-e2e89480.js";import"./index-559e3814.js";import"./useRefs-2bd76cbf.js";import"./_flatRest-28f96ed6.js";import"./index-3867b2dc.js";import"./index-9df579ce.js";function Oe(s){const f=s==null?void 0:s.users;return f?f.name||[f.first_name,f.last_name].filter(Boolean).join(" ")||f.phone||(s==null?void 0:s.account_name)||"—":(s==null?void 0:s.account_name)||"—"}function Je(s){var f;return((f=s==null?void 0:s.users)==null?void 0:f.phone)||(s==null?void 0:s.account_phone)||"—"}const ze=[{title:"ردیف",dataIndex:"id",key:"row_index",filterable:!1,width:70,align:"center",customRender:s=>s.record.index+1},{title:"شماره تیکت",dataIndex:"id",key:"id",type:"Number",width:110,align:"center",customRender:s=>`#${s.record.id}`},{title:"نام کاربر",dataIndex:"account_name",key:"account_name",type:"Text",width:160,customRender:s=>Oe(s.record)},{title:"شماره موبایل",dataIndex:"account_phone",key:"account_phone",type:"Text",width:130,customRender:s=>Je(s.record)},{title:"متن تیکت",dataIndex:"problem",key:"problem",type:"Text",width:280,customRender:s=>{const{truncated:f}=Ie(s.record.problem||"",70);return f}},{title:"عملیات",dataIndex:"action",key:"action",width:120,align:"center",slot:"action",filterable:!1}],Z=[{value:"codoblo",label:"اشتراک کدوبلو"},{value:"shop",label:"بخش فروشگاه"},{value:"other",label:"بخش‌های دیگر اپلیکیشن"},{value:"feedback",label:"انتقاد و پیشنهاد"}],Ge=[{value:"new",label:"درخواست‌های جدید"},{value:"answered",label:"پاسخ داده‌شده"},{value:"follow_up",label:"ادامه گفتگو"},{value:"closed",label:"بسته‌شده"},{value:"spam",label:"اسپم"}],_=s=>(Ke("data-v-0983b996"),s=s(),Me(),s),He={class:"tickets-page"},We={class:"tickets-page__inner"},Xe={class:"tickets-page__header flex justify-between items-center gap-3 flex-wrap"},Ye=_(()=>t("div",null,[t("h2",{class:"text-lg font-bold m-0"},"تیکت‌های پشتیبانی"),t("p",{class:"text-sm text-gray-500 mt-1 mb-0"},"مدیریت درخواست‌های پشتیبانی کاربران")],-1)),Ze={class:"tickets-layout"},et={class:"tickets-queues"},tt=_(()=>t("div",{class:"tickets-queues__title"},"وضعیت درخواست‌ها",-1)),at=["onClick"],st={class:"tickets-queues__item-label"},nt={class:"tickets-queues__item-count"},lt={class:"tickets-main"},ot={class:"tickets-table-wrap"},it={class:"gap-2 flex justify-center items-center"},ut=_(()=>t("span",null,"مشاهده",-1)),rt=_(()=>t("span",null,"اسپم",-1)),ct=_(()=>t("span",null,"بازگردانی از اسپم",-1)),dt={key:0,class:"py-8 text-center text-gray-500"},pt={key:1,class:"space-y-4"},mt={class:"grid grid-cols-1 md:grid-cols-2 gap-3 text-sm"},_t=_(()=>t("div",{class:"text-gray-500 mb-1"},"شماره تیکت",-1)),vt={class:"font-600 dir-ltr text-right"},ft=_(()=>t("div",{class:"text-gray-500 mb-1"},"موضوع",-1)),yt={class:"font-600"},ht=_(()=>t("div",{class:"text-gray-500 mb-1"},"نام و نام خانوادگی",-1)),gt={class:"font-600"},bt=_(()=>t("div",{class:"text-gray-500 mb-1"},"شماره همراه",-1)),kt={class:"font-600 dir-ltr text-right"},xt=_(()=>t("div",{class:"text-gray-500 mb-1 text-sm"},"متن پیام کاربر",-1)),wt={class:"rounded-xl border border-gray-200 bg-gray-50 p-3 text-sm leading-7 whitespace-pre-wrap"},Ct={key:0,class:"flex flex-wrap gap-2 mt-2"},Tt={key:0,class:"space-y-2"},It=_(()=>t("div",{class:"text-gray-500 text-sm"},"تاریخچه گفتگو",-1)),St={class:"text-xs text-gray-500 mb-1"},Rt={class:"leading-7 whitespace-pre-wrap"},$t={key:0,class:"flex flex-wrap gap-2 mt-2"},At=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"متن پاسخ کارشناس",-1)),Ut=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"تصاویر مربوطه برای کاربر",-1)),qt={key:0},Bt=_(()=>t("div",{class:"text-xs"},"آپلود تصویر",-1)),jt=[Bt],Pt={key:2,class:"rounded-xl bg-gray-100 p-3 text-center text-sm text-gray-600"},Dt={key:3,class:"rounded-xl bg-orange-50 border border-orange-200 p-3 text-center text-sm text-orange-700"},Et={key:0,class:"flex justify-end gap-2 flex-wrap"},Nt={key:1,class:"flex justify-end gap-2 flex-wrap"},Ft=De({__name:"index",setup(s){const{TextArea:f}=Pe,ee=y(),B=y(!1),E=y(!1),n=y(null),N=y(!1),w=y(!1),R=y("new"),$=y("all"),A=X({new:0,answered:0,follow_up:0,closed:0,spam:0}),U=X({content:""}),C=y([]),x=y([]),te=Ge,ae=V(()=>`${R.value}:${$.value}`),[se,F]=we(),L=y({columns:ze,api:G(R.value,$.value),defaultPageLimit:20}),ne=V(()=>{var a,l,r;const e=(a=n.value)==null?void 0:a.users;return e?e.name||[e.first_name,e.last_name].filter(Boolean).join(" ")||((l=n.value)==null?void 0:l.account_name)||"—":((r=n.value)==null?void 0:r.account_name)||"—"}),le=V(()=>{var e,a,l;return((a=(e=n.value)==null?void 0:e.users)==null?void 0:a.phone)||((l=n.value)==null?void 0:l.account_phone)||"—"});function oe(e){var a;return((a=Z.find(l=>l.value===e))==null?void 0:a.label)||e||"—"}function ie(){L.value={...L.value,api:G(R.value,$.value)}}async function P(){try{const e=await Se();A.new=e.new,A.answered=e.answered,A.follow_up=e.follow_up,A.closed=e.closed,A.spam=e.spam}catch{}}function ue(e){R.value=e}Ee([R,$],()=>{ie()});async function re(e){B.value=!0,E.value=!0,n.value=null,U.content="",C.value=[],x.value=[];try{n.value=await Re(e.id)}catch{g.error("خطا در دریافت جزئیات تیکت"),B.value=!1}finally{E.value=!1}}function T(){B.value=!1,n.value=null,U.content="",C.value=[],x.value=[]}function ce(e){return e.type.startsWith("image/")?!0:(g.error("فقط تصویر مجاز است"),!1)}async function de(e){const{file:a,onSuccess:l,onError:r}=e;try{const v=await $e(a);C.value.push({url:v,name:a.name}),x.value=[...x.value,{uid:`${Date.now()}`,name:a.name,status:"done",url:Q(v),response:{path:v}}],l==null||l({path:v})}catch(v){r==null||r(v),g.error("خطا در آپلود تصویر")}}function pe(e){var l;const a=((l=e==null?void 0:e.response)==null?void 0:l.path)||me(e==null?void 0:e.url);C.value=C.value.filter(r=>r.url!==a),x.value=x.value.filter(r=>r.uid!==e.uid)}function me(e){return e?e.replace(/^https?:\/\/[^/]+/,""):""}async function J(e){var l,r;const a=(e==null?void 0:e.id)||((l=n.value)==null?void 0:l.id);if(a)try{w.value=!0,await Ae(a),g.success("تیکت به اسپم منتقل شد"),((r=n.value)==null?void 0:r.id)===a&&T(),await P(),await F()}catch(v){g.error((v==null?void 0:v.message)||"خطا در انتقال به اسپم")}finally{w.value=!1}}async function K(e){var l;const a=e!=null&&e.id?e:n.value;if(a!=null&&a.id)try{w.value=!0,await Ue({id:a.id,status:a.status||"pending"}),g.success("تیکت از اسپم بازگردانده شد"),((l=n.value)==null?void 0:l.id)===a.id&&T(),await P(),await F()}catch(r){g.error((r==null?void 0:r.message)||"خطا در بازگردانی تیکت")}finally{w.value=!1}}async function _e(){if(n.value){if(!U.content.trim()&&!C.value.length){g.warning("متن پاسخ یا تصویر را وارد کنید");return}try{N.value=!0,await qe({ticketId:n.value.id,content:U.content,attachments:C.value}),g.success("پاسخ ارسال شد"),T(),await P(),await F()}catch(e){g.error((e==null?void 0:e.message)||"خطا در ارسال پاسخ")}finally{N.value=!1}}}return Ne(P),(e,a)=>{const l=Ce,r=Fe("RouterLink"),v=Be,ve=je,fe=xe,ye=ke,he=be;return o(),c("div",He,[d(he,null,{default:u(()=>[t("div",We,[t("div",Xe,[Ye,d(r,{to:{name:"supportMain"}},{default:u(()=>[d(l,null,{default:u(()=>[I("بازگشت به چت")]),_:1})]),_:1})]),t("div",Ze,[t("aside",et,[tt,(o(!0),c(q,null,j(p(te),i=>(o(),c("button",{key:i.value,type:"button",class:Y(["tickets-queues__item",{"tickets-queues__item--active":R.value===i.value,"tickets-queues__item--spam":i.value==="spam"}]),onClick:b=>ue(i.value)},[t("span",st,h(i.label),1),t("span",nt,h(A[i.value]||0),1)],10,at))),128))]),t("section",lt,[d(ve,{activeKey:$.value,"onUpdate:activeKey":a[0]||(a[0]=i=>$.value=i),class:"tickets-tabs"},{default:u(()=>[d(v,{key:"all",tab:"همه موضوعات"}),(o(!0),c(q,null,j(p(Z),i=>(o(),k(v,{key:i.value,tab:i.label},null,8,["tab"]))),128))]),_:1},8,["activeKey"]),t("div",ot,[(o(),k(fe,Le({key:ae.value},L.value,{ref_key:"table",ref:ee,onRegister:p(se)}),{action:u(({record:i})=>[t("div",it,[d(p(O),{class:"cursor-pointer"},{title:u(()=>[ut]),default:u(()=>[d(M,{icon:"vuesax-linear:eye",color:"#1D4ED8",onClick:b=>re(i)},null,8,["onClick"])]),_:2},1024),i.admin_queue!=="spam"?(o(),k(p(O),{key:0,class:"cursor-pointer"},{title:u(()=>[rt]),default:u(()=>[d(M,{icon:"vuesax-linear:danger",color:"#EA580C",onClick:b=>J(i)},null,8,["onClick"])]),_:2},1024)):(o(),k(p(O),{key:1,class:"cursor-pointer"},{title:u(()=>[ct]),default:u(()=>[d(M,{icon:"vuesax-linear:refresh-circle",color:"#16A34A",onClick:b=>K(i)},null,8,["onClick"])]),_:2},1024))])]),_:1},16,["onRegister"]))])])])]),d(ye,{visible:B.value,"onUpdate:visible":a[5]||(a[5]=i=>B.value=i),title:"جزئیات تیکت پشتیبانی","custom-footer":!0,width:"720px",onCancel:T,onClose:T},{footer:u(()=>{var i;return[n.value&&n.value.status!=="closed"?(o(),c("div",Et,[d(l,{onClick:T},{default:u(()=>[I("انصراف")]),_:1}),n.value.admin_queue!=="spam"?(o(),k(l,{key:0,loading:w.value,onClick:a[2]||(a[2]=b=>J())},{default:u(()=>[I(" انتقال به اسپم ")]),_:1},8,["loading"])):(o(),k(l,{key:1,loading:w.value,onClick:a[3]||(a[3]=b=>K())},{default:u(()=>[I(" بازگردانی از اسپم ")]),_:1},8,["loading"])),d(l,{type:"primary",loading:N.value,onClick:_e},{default:u(()=>[I(" ارسال پاسخ ")]),_:1},8,["loading"])])):(o(),c("div",Nt,[((i=n.value)==null?void 0:i.admin_queue)==="spam"?(o(),k(l,{key:0,loading:w.value,onClick:a[4]||(a[4]=b=>K())},{default:u(()=>[I(" بازگردانی از اسپم ")]),_:1},8,["loading"])):S("",!0),d(l,{onClick:T},{default:u(()=>[I("بستن")]),_:1})]))]}),default:u(()=>{var i,b;return[E.value?(o(),c("div",dt,"در حال بارگذاری...")):n.value?(o(),c("div",pt,[t("div",mt,[t("div",null,[_t,t("div",vt,"#"+h(n.value.id),1)]),t("div",null,[ft,t("div",yt,h(oe(n.value.subject)),1)]),t("div",null,[ht,t("div",gt,h(ne.value),1)]),t("div",null,[bt,t("div",kt,h(le.value),1)])]),t("div",null,[xt,t("div",wt,h(n.value.problem),1),(i=n.value.attachments)!=null&&i.length?(o(),c("div",Ct,[d(p(H),null,{default:u(()=>[(o(!0),c(q,null,j(n.value.attachments,(m,D)=>(o(),k(p(W),{key:`att-${D}`,src:p(Q)(m.url),alt:m.name||"تصویر",width:80,height:80,preview:{mask:"پیش‌نمایش"},style:{"object-fit":"cover","border-radius":"8px",overflow:"hidden",border:"1px solid #e5e7eb"}},null,8,["src","alt"]))),128))]),_:1})])):S("",!0)]),(b=n.value.messages)!=null&&b.length?(o(),c("div",Tt,[It,(o(!0),c(q,null,j(n.value.messages,m=>{var D;return o(),c("div",{key:m.id,class:Y(["rounded-xl border border-gray-200 p-3 text-sm",m.sender_type==="admin"?"bg-amber-50":"bg-white"])},[t("div",St,h(m.sender_type==="admin"?"کارشناس":"کاربر")+" · "+h(m.created_at?p(Te)(m.created_at):""),1),t("div",Rt,h(m.content),1),(D=m.attachments)!=null&&D.length?(o(),c("div",$t,[d(p(H),null,{default:u(()=>[(o(!0),c(q,null,j(m.attachments,(z,ge)=>(o(),k(p(W),{key:`msg-att-${m.id}-${ge}`,src:p(Q)(z.url),alt:z.name||"تصویر",width:64,height:64,preview:{mask:"پیش‌نمایش"},style:{"object-fit":"cover","border-radius":"8px",overflow:"hidden",border:"1px solid #e5e7eb"}},null,8,["src","alt"]))),128))]),_:2},1024)])):S("",!0)],2)}),128))])):S("",!0),n.value.status!=="closed"?(o(),c(q,{key:1},[t("div",null,[At,d(p(f),{value:U.content,"onUpdate:value":a[1]||(a[1]=m=>U.content=m),rows:4,placeholder:"پاسخ خود را بنویسید..."},null,8,["value"])]),t("div",null,[Ut,d(p(Qe),{"list-type":"picture-card","file-list":x.value,"custom-request":de,"before-upload":ce,onRemove:pe},{default:u(()=>[x.value.length<6?(o(),c("div",qt,jt)):S("",!0)]),_:1},8,["file-list"])])],64)):(o(),c("div",Pt," این تیکت بسته‌شده است. ")),n.value.admin_queue==="spam"?(o(),c("div",Dt," این تیکت در وضعیت اسپم است و برای کاربر تغییری نمایش داده نمی‌شود. ")):S("",!0)])):S("",!0)]}),_:1},8,["visible"])]),_:1})])}}});const La=Ve(Ft,[["__scopeId","data-v-0983b996"]]);export{La as default};