Files
machartaa_admin_dist/dist/assets/index-a86159a8.js
T
2026-08-18 15:43:27 +03:30

2 lines
13 KiB
JavaScript

import{_ as ye}from"./BasicMainCard-8da61c91.js";import{_ as be}from"./BasicModal.vue_vue_type_style_index_0_lang-dce46cd2.js";import{_ as ge,u as xe}from"./useBaseTable-a305524f.js";import{_ as ke}from"./button.vue_vue_type_style_index_0_lang-ae7cb173.js";import{I as we}from"./Icon-2a751d73.js";import{t as Te}from"./useDataTime-0e280561.js";import{g as K}from"./convert-2ad76038.js";import{t as Ce}from"./textUtils-c37780ad.js";import{j as O,k as Ie,l as Se,n as Re,o as Ue,p as qe,q as Be}from"./support-383496cc.js";import{_ as Ae,T as Pe}from"./index-fe1cc383.js";import{a as J,A as z}from"./index-bd5d0709.js";import{I as $e}from"./index-6f7ee4ee.js";import{d as je,g as f,r as G,h as M,E as De,v as Ne,l as Ee,o,c as r,b as c,w as u,a as t,e as T,F as B,n as P,j as p,i as C,H as Fe,k as I,t as h,D as y,O as Le,P as Ke,p as H}from"./index-64bb19a3.js";import{T as Me}from"./isSymbol-77db9868.js";import{U as Qe}from"./index-96a522ed.js";import{_ as Ve}from"./_plugin-vue_export-helper-47756888.js";import"./Grid-d205a4b4.js";import"./index-53278d29.js";import"./Col-4cc66d2b.js";import"./styleChecker-44a60ba7.js";import"./isPlainObject-908a4d4b.js";import"./vnode-a1a3bc0f.js";import"./index-d19de556.js";import"./index-557a2985.js";import"./DialogWrap-c12b3672.js";import"./shallowequal-a3fa20ee.js";import"./omit-41b1cee4.js";import"./pickAttrs-ff8c51c6.js";import"./index-7a73a23b.js";import"./FormItemContext-78515ae9.js";import"./updateLocale-34973999.js";import"./index-bc659f42.js";import"./useState-45a66864.js";import"./useMemo-fddb4a7a.js";import"./lodash-17ce3880.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-6148f843.js";import"./index-304c1b28.js";import"./Badge-6baddd17.js";import"./isNumeric-3f69e2aa.js";import"./index-2a5be533.js";import"./index-b5f90115.js";import"./index-a5e6bc16.js";import"./index-4ee722bc.js";import"./index-95a0af99.js";import"./css-aae66f86.js";import"./index-ff7b0bbe.js";import"./toArray-156bc105.js";import"./SearchOutlined-5a638563.js";import"./isMobile-e2e89480.js";import"./index-d5b53aee.js";import"./useRefs-10844536.js";import"./_flatRest-6bd9fe69.js";import"./index-43d38a3b.js";import"./index-6fd9e35d.js";function Oe(a){const m=a==null?void 0:a.users;return m?m.name||[m.first_name,m.last_name].filter(Boolean).join(" ")||m.phone||(a==null?void 0:a.account_name)||"—":(a==null?void 0:a.account_name)||"—"}function Je(a){var m;return((m=a==null?void 0:a.users)==null?void 0:m.phone)||(a==null?void 0:a.account_phone)||"—"}const ze=[{title:"ردیف",dataIndex:"id",key:"row_index",filterable:!1,width:70,align:"center",customRender:a=>a.record.index+1},{title:"شماره تیکت",dataIndex:"id",key:"id",type:"Number",width:110,align:"center",customRender:a=>`#${a.record.id}`},{title:"نام کاربر",dataIndex:"account_name",key:"account_name",type:"Text",width:160,customRender:a=>Oe(a.record)},{title:"شماره موبایل",dataIndex:"account_phone",key:"account_phone",type:"Text",width:130,customRender:a=>Je(a.record)},{title:"متن تیکت",dataIndex:"problem",key:"problem",type:"Text",width:280,customRender:a=>{const{truncated:m}=Ce(a.record.problem||"",70);return m}},{title:"عملیات",dataIndex:"action",key:"action",width:90,align:"center",slot:"action",filterable:!1}],W=[{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:"اسپم"}],v=a=>(Le("data-v-1602b54a"),a=a(),Ke(),a),He={class:"tickets-page"},We={class:"tickets-page__inner"},Xe={class:"tickets-page__header flex justify-between items-center gap-3 flex-wrap"},Ye=v(()=>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=v(()=>t("div",{class:"tickets-queues__title"},"وضعیت درخواست‌ها",-1)),at=["onClick"],st={class:"tickets-queues__item-label"},ot={class:"tickets-queues__item-count"},lt={class:"tickets-main"},nt={class:"tickets-table-wrap"},it=v(()=>t("span",null,"عملیات",-1)),rt={key:0,class:"py-8 text-center text-gray-500"},ut={key:1,class:"space-y-4"},ct={class:"grid grid-cols-1 md:grid-cols-2 gap-3 text-sm"},dt=v(()=>t("div",{class:"text-gray-500 mb-1"},"شماره تیکت",-1)),pt={class:"font-600 dir-ltr text-right"},mt=v(()=>t("div",{class:"text-gray-500 mb-1"},"موضوع",-1)),_t={class:"font-600"},vt=v(()=>t("div",{class:"text-gray-500 mb-1"},"نام و نام خانوادگی",-1)),ft={class:"font-600"},ht=v(()=>t("div",{class:"text-gray-500 mb-1"},"شماره همراه",-1)),yt={class:"font-600 dir-ltr text-right"},bt=v(()=>t("div",{class:"text-gray-500 mb-1 text-sm"},"متن پیام کاربر",-1)),gt={class:"rounded-xl border border-gray-200 bg-gray-50 p-3 text-sm leading-7 whitespace-pre-wrap"},xt={key:0,class:"flex flex-wrap gap-2 mt-2"},kt={key:0,class:"space-y-2"},wt=v(()=>t("div",{class:"text-gray-500 text-sm"},"تاریخچه گفتگو",-1)),Tt={class:"text-xs text-gray-500 mb-1"},Ct={class:"leading-7 whitespace-pre-wrap"},It={key:0,class:"flex flex-wrap gap-2 mt-2"},St=v(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"متن پاسخ کارشناس",-1)),Rt=v(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"تصاویر مربوطه برای کاربر",-1)),Ut={key:0},qt=v(()=>t("div",{class:"text-xs"},"آپلود تصویر",-1)),Bt=[qt],At={key:2,class:"rounded-xl bg-gray-100 p-3 text-center text-sm text-gray-600"},Pt={key:3,class:"rounded-xl bg-orange-50 border border-orange-200 p-3 text-center text-sm text-orange-700"},$t={key:0,class:"flex justify-end gap-2 flex-wrap"},jt={key:1,class:"flex justify-end gap-2 flex-wrap"},Dt=je({__name:"index",setup(a){const{TextArea:m}=$e,X=f(),A=f(!1),N=f(!1),s=f(null),E=f(!1),x=f(!1),S=f("new"),R=f("all"),U=G({new:0,answered:0,follow_up:0,closed:0,spam:0}),q=G({content:""}),k=f([]),g=f([]),Y=Ge,Z=M(()=>`${S.value}:${R.value}`),[ee,F]=xe(),L=f({columns:ze,api:O(S.value,R.value),defaultPageLimit:20}),te=M(()=>{var n,l,_;const e=(n=s.value)==null?void 0:n.users;return e?e.name||[e.first_name,e.last_name].filter(Boolean).join(" ")||((l=s.value)==null?void 0:l.account_name)||"—":((_=s.value)==null?void 0:_.account_name)||"—"}),ae=M(()=>{var e,n,l;return((n=(e=s.value)==null?void 0:e.users)==null?void 0:n.phone)||((l=s.value)==null?void 0:l.account_phone)||"—"});function se(e){var n;return((n=W.find(l=>l.value===e))==null?void 0:n.label)||e||"—"}function oe(){L.value={...L.value,api:O(S.value,R.value)}}async function $(){try{const e=await Ie();U.new=e.new,U.answered=e.answered,U.follow_up=e.follow_up,U.closed=e.closed,U.spam=e.spam}catch{}}function le(e){S.value=e}De([S,R],()=>{oe()});async function ne(e){A.value=!0,N.value=!0,s.value=null,q.content="",k.value=[],g.value=[];try{s.value=await Se(e.id)}catch{y.error("خطا در دریافت جزئیات تیکت"),A.value=!1}finally{N.value=!1}}function w(){A.value=!1,s.value=null,q.content="",k.value=[],g.value=[]}function ie(e){return e.type.startsWith("image/")?!0:(y.error("فقط تصویر مجاز است"),!1)}async function re(e){const{file:n,onSuccess:l,onError:_}=e;try{const b=await Re(n);k.value.push({url:b,name:n.name}),g.value=[...g.value,{uid:`${Date.now()}`,name:n.name,status:"done",url:K(b),response:{path:b}}],l==null||l({path:b})}catch(b){_==null||_(b),y.error("خطا در آپلود تصویر")}}function ue(e){var l;const n=((l=e==null?void 0:e.response)==null?void 0:l.path)||ce(e==null?void 0:e.url);k.value=k.value.filter(_=>_.url!==n),g.value=g.value.filter(_=>_.uid!==e.uid)}function ce(e){return e?e.replace(/^https?:\/\/[^/]+/,""):""}async function de(){if(s.value)try{x.value=!0,await Ue(s.value.id),y.success("تیکت به اسپم منتقل شد"),w(),await $(),await F()}catch(e){y.error((e==null?void 0:e.message)||"خطا در انتقال به اسپم")}finally{x.value=!1}}async function Q(){if(s.value)try{x.value=!0,await qe(s.value),y.success("تیکت از اسپم بازگردانده شد"),w(),await $(),await F()}catch(e){y.error((e==null?void 0:e.message)||"خطا در بازگردانی تیکت")}finally{x.value=!1}}async function pe(){if(s.value){if(!q.content.trim()&&!k.value.length){y.warning("متن پاسخ یا تصویر را وارد کنید");return}try{E.value=!0,await Be({ticketId:s.value.id,content:q.content,attachments:k.value}),y.success("پاسخ ارسال شد"),w(),await $(),await F()}catch(e){y.error((e==null?void 0:e.message)||"خطا در ارسال پاسخ")}finally{E.value=!1}}}return Ne($),(e,n)=>{const l=ke,_=Ee("RouterLink"),b=Ae,me=Pe,_e=ge,ve=be,fe=ye;return o(),r("div",He,[c(fe,null,{default:u(()=>[t("div",We,[t("div",Xe,[Ye,c(_,{to:{name:"supportMain"}},{default:u(()=>[c(l,null,{default:u(()=>[T("بازگشت به چت")]),_:1})]),_:1})]),t("div",Ze,[t("aside",et,[tt,(o(!0),r(B,null,P(p(Y),i=>(o(),r("button",{key:i.value,type:"button",class:H(["tickets-queues__item",{"tickets-queues__item--active":S.value===i.value,"tickets-queues__item--spam":i.value==="spam"}]),onClick:j=>le(i.value)},[t("span",st,h(i.label),1),t("span",ot,h(U[i.value]||0),1)],10,at))),128))]),t("section",lt,[c(me,{activeKey:R.value,"onUpdate:activeKey":n[0]||(n[0]=i=>R.value=i),class:"tickets-tabs"},{default:u(()=>[c(b,{key:"all",tab:"همه موضوعات"}),(o(!0),r(B,null,P(p(W),i=>(o(),C(b,{key:i.value,tab:i.label},null,8,["tab"]))),128))]),_:1},8,["activeKey"]),t("div",nt,[(o(),C(_e,Fe({key:Z.value},L.value,{ref_key:"table",ref:X,onRegister:p(ee)}),{action:u(({record:i})=>[c(p(Me),{class:"cursor-pointer"},{title:u(()=>[it]),default:u(()=>[c(we,{icon:"vuesax-linear:eye",color:"#1D4ED8",onClick:j=>ne(i)},null,8,["onClick"])]),_:2},1024)]),_:1},16,["onRegister"]))])])])]),c(ve,{visible:A.value,"onUpdate:visible":n[2]||(n[2]=i=>A.value=i),title:"جزئیات تیکت پشتیبانی","custom-footer":!0,width:"720px",onCancel:w,onClose:w},{footer:u(()=>{var i;return[s.value&&s.value.status!=="closed"?(o(),r("div",$t,[c(l,{onClick:w},{default:u(()=>[T("انصراف")]),_:1}),s.value.admin_queue!=="spam"?(o(),C(l,{key:0,loading:x.value,onClick:de},{default:u(()=>[T(" انتقال به اسپم ")]),_:1},8,["loading"])):(o(),C(l,{key:1,loading:x.value,onClick:Q},{default:u(()=>[T(" بازگردانی از اسپم ")]),_:1},8,["loading"])),c(l,{type:"primary",loading:E.value,onClick:pe},{default:u(()=>[T(" ارسال پاسخ ")]),_:1},8,["loading"])])):(o(),r("div",jt,[((i=s.value)==null?void 0:i.admin_queue)==="spam"?(o(),C(l,{key:0,loading:x.value,onClick:Q},{default:u(()=>[T(" بازگردانی از اسپم ")]),_:1},8,["loading"])):I("",!0),c(l,{onClick:w},{default:u(()=>[T("بستن")]),_:1})]))]}),default:u(()=>{var i,j;return[N.value?(o(),r("div",rt,"در حال بارگذاری...")):s.value?(o(),r("div",ut,[t("div",ct,[t("div",null,[dt,t("div",pt,"#"+h(s.value.id),1)]),t("div",null,[mt,t("div",_t,h(se(s.value.subject)),1)]),t("div",null,[vt,t("div",ft,h(te.value),1)]),t("div",null,[ht,t("div",yt,h(ae.value),1)])]),t("div",null,[bt,t("div",gt,h(s.value.problem),1),(i=s.value.attachments)!=null&&i.length?(o(),r("div",xt,[c(p(J),null,{default:u(()=>[(o(!0),r(B,null,P(s.value.attachments,(d,D)=>(o(),C(p(z),{key:`att-${D}`,src:p(K)(d.url),alt:d.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})])):I("",!0)]),(j=s.value.messages)!=null&&j.length?(o(),r("div",kt,[wt,(o(!0),r(B,null,P(s.value.messages,d=>{var D;return o(),r("div",{key:d.id,class:H(["rounded-xl border border-gray-200 p-3 text-sm",d.sender_type==="admin"?"bg-amber-50":"bg-white"])},[t("div",Tt,h(d.sender_type==="admin"?"کارشناس":"کاربر")+" · "+h(d.created_at?p(Te)(d.created_at):""),1),t("div",Ct,h(d.content),1),(D=d.attachments)!=null&&D.length?(o(),r("div",It,[c(p(J),null,{default:u(()=>[(o(!0),r(B,null,P(d.attachments,(V,he)=>(o(),C(p(z),{key:`msg-att-${d.id}-${he}`,src:p(K)(V.url),alt:V.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)])):I("",!0)],2)}),128))])):I("",!0),s.value.status!=="closed"?(o(),r(B,{key:1},[t("div",null,[St,c(p(m),{value:q.content,"onUpdate:value":n[1]||(n[1]=d=>q.content=d),rows:4,placeholder:"پاسخ خود را بنویسید..."},null,8,["value"])]),t("div",null,[Rt,c(p(Qe),{"list-type":"picture-card","file-list":g.value,"custom-request":re,"before-upload":ie,onRemove:ue},{default:u(()=>[g.value.length<6?(o(),r("div",Ut,Bt)):I("",!0)]),_:1},8,["file-list"])])],64)):(o(),r("div",At," این تیکت بسته‌شده است. ")),s.value.admin_queue==="spam"?(o(),r("div",Pt," این تیکت در وضعیت اسپم است و برای کاربر تغییری نمایش داده نمی‌شود. ")):I("",!0)])):I("",!0)]}),_:1},8,["visible"])]),_:1})])}}});const Na=Ve(Dt,[["__scopeId","data-v-1602b54a"]]);export{Na as default};