quick-admin-vue3-core
Version:
以快(计算机执行效率、开发效率)为核心的后台管理系统开发模板
2 lines (1 loc) • 10.5 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),v=require("./index-BC11nvhb.cjs"),Q=require("./index-D8siRAAk.cjs"),X=require("./_config-K63Ley5U.cjs"),P=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),A=require("./UserItem-Ar1yG3re.cjs"),Z=require("./Index-Dy8iSvre.cjs"),w=require("./index-DRE1IXEf.cjs"),C=require("./platform-Dl0zaSyI.cjs"),ee=require("./SearchMsg-BL7vF1Am.cjs"),te={key:1,class:"list-box f-1"},oe=e.defineComponent({__name:"Index",props:{summaryList:{type:[Boolean,Function]},handleAuth:{}},emits:["update:modelValue","extraBtns",X.operateBtnsEmitName,"selectionChange"],setup(j,{expose:V,emit:D}){const B=e.ref(null);function u(a){a.page=a.page+1,B.value.getList(a)}return V({}),(a,i)=>{const s=e.resolveComponent("BaseScroll"),x=e.resolveComponent("BaseCrud"),M=e.resolveDirective("loading");return e.openBlock(),e.createBlock(x,{class:"custom-crud",summaryList:a.summaryList,pagination:!a.summaryList,ref_key:"crudRef",ref:B},{content:e.withCtx(({loading:k,params:b,rows:_,total:h,hasMore:y})=>[a.summaryList?(e.openBlock(),e.createBlock(s,{key:0,class:"f-1",onReachBottom:E=>u(b),paddingBottom:y?0:250,loading:k},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"list",{list:_,total:h,hasMore:y},void 0,!0)]),_:2},1032,["onReachBottom","paddingBottom","loading"])):e.withDirectives((e.openBlock(),e.createElementBlock("div",te,[e.renderSlot(a.$slots,"list",{list:_,total:h,hasMore:y},void 0,!0)])),[[M,k]])]),_:3},8,["summaryList","pagination"])}}}),ae=P._export_sfc(oe,[["__scopeId","data-v-482df0c7"]]),se={class:"f-sb-s f-1",style:{height:"100%"}},ne={class:"section f-1 f-fs-s-c"},re={class:"header f-c-c f-0"},ie={class:"section f-1 f-fs-s-c"},le={class:"header f-c-c f-0"},ce={class:"section f-2 f-fs-s-c"},de={class:"header f-sb-fe f-0"},pe={class:"f-fs-c"},me={class:"f-fs-c"},fe={class:"nickname q-line-1"},ue={class:"f-fs-c"},ge={class:"nickname q-line-1"},he={class:"first-time q-line-1"},ve={key:0,class:"tips time"},T=250,_e=e.defineComponent({name:"DemoCenterCrudChatCrud",__name:"index",setup(j){const{openPopup:V}=v.usePopup(),{getSearchOpts:D}=w.useSelectOpts(),B=[8001,8003,8004,8005,8006];let u=e.reactive({});const a=e.reactive({loading:!1,activeId:"",list:[],hasMore:!0,total:0,params:{page:1,pageSize:10}}),i=e.reactive({loading:!1,activeId:"",list:[],hasMore:!0,total:0,params:{page:1,pageSize:10}}),s=e.reactive({loading:!1,list:[],prevHasMore:!0,nextHasMore:!1,total:0,params:{pageSize:20,prevCreatedAt:0},headInfo:{fromUser:{},toUser:{},firstDate:""}}),x=[{prop:"fromUserId",label:"用户ID"},{prop:"fromUserCode",label:"号码牌"},{prop:"fromUserNickname",label:"昵称"},{prop:"toUserId",label:"好友ID"},{prop:"msgWord",label:"关键词"},{prop:"friendNumScope",label:"好友数量",type:"BaseNumberRange"},D("school",{prop:"fromUserSchoolId",label:"学校"}),D("company",{prop:"fromUserCompanyId",label:"公司"}),{prop:"fromUserRegisterTimeScope",label:"注册时间",type:"date-picker"},{prop:"chatTimeScope",label:"会话时间",type:"date-picker"}];e.watch(()=>a.activeId,o=>{i.params.page=1,i.activeId="",i.list=[],s.list=[],_(o)},{immediate:!0}),e.watch(()=>i.activeId,async o=>{if(o){const t=u.msgWord,n=a.activeId,l=await y(n,o,t);if(l){const{fromUser:p,toUser:c}=l;R(p,c,t)}else s.params.prevCreatedAt=0,h(a.activeId,o)}else s.list=[]},{immediate:!1});function M(o,t,n=3*60*1e3){return t===0||s.list[t-1].create_time<o.create_time-n}function k(o){const t=C.dayjs().diff(C.dayjs(o),"hours"),n=C.dayjs().diff(C.dayjs(o),"minutes");return t>1?C.dayjs(o).format("YYYY-MM-DD HH:mm:ss"):n>1?`${n}分钟前`:"刚刚"}async function b(o){var p,c;const{hasMore:t,list:n}=a,{page:l}=a.params;if(!(!t&&l!==1)){a.loading=!0;try{const m=await v.GetImSearchFromUserList(o),{list:g,total:r,hasMore:d,currentPage:f}=m;f===1&&(a.params.page=1),Object.assign(a,{list:f===1?g:n.concat(g),total:r,hasMore:d},f===1?{activeId:((c=(p=g==null?void 0:g[0])==null?void 0:p.fromUserData)==null?void 0:c.id)??""}:void 0)}catch(m){console.error(m)}finally{a.loading=!1}}}function _(o){if(!o)return;const{hasMore:t,list:n,params:l}=i,{page:p}=l;!t&&p!==1||(i.loading=!0,v.GetImSearchFriendList({fromUserId:o,msgWord:u.msgWord,chatTimeScope:u.chatTimeScope,...l}).then(c=>{const{list:m,total:g,hasMore:r,currentPage:d}=c;d===1&&(i.params.page=1),Object.assign(i,{list:d===1?m:n.concat(m),total:g,hasMore:r})}).finally(()=>{i.loading=!1}))}function h(o,t,n="prev"){if(!o||!t)return;const{prevHasMore:l,nextHasMore:p,list:c,params:m}=s,{page:g,prevCreatedAt:r}=m,d=r===0;if(!d){if(n==="next"&&!p)return;if(n==="prev"&&!l)return}s.loading=!0,v.GetImSearchP2pChatList({fromUserId:o,toUserId:t,queryDirection:n,...m}).then(f=>{const{list:I,total:F,hasMore:z,firstDate:W,fromUser:S,toUser:U}=f,L=I.map(N=>{const{msgContent:$={},...Y}=N,{Data:J,Ext:K}=N.msgContent;return $.Data=JSON.parse(J||"{}"),$.Ext=JSON.parse(K||"{}"),{fromUser:S.id===N.fromUserId?S:U,toUser:U.id===N.toUserId?U:S,msgContent:$,...Y}}),G=d?L:n==="next"?[...c,...L]:[...L,...c];Object.assign(s,{list:G,total:F,[`${n}HasMore`]:z,headInfo:{firstDate:W,fromUser:S,toUser:U}})}).finally(()=>{s.loading=!1})}async function y(o,t,n){if(n)return await v.GetImSearchP2pChatList({fromUserId:o,toUserId:t,msgWord:n}).then(l=>{var p;if(((p=l==null?void 0:l.list)==null?void 0:p.length)>=2){const{fromUser:c,toUser:m}=l;return{fromUser:c,toUser:m}}else return null}).catch(()=>null)}function E(o,t){var n;o==="from"?(a.activeId=(n=t==null?void 0:t.fromUserData)==null?void 0:n.id,i.params.page=1):o==="to"&&(i.activeId=t.toUserData.id,Object.assign(s,{nextHasMore:!0,prevHasMore:!0,prevCreatedAt:0}))}function q(o){o==="from"?(a.params.page++,b({...u,...a.params})):o==="to"&&(i.params.page++,_(a.activeId))}function H(o){const t=o==="prev"?s.list[0]:s.list.slice(-1)[0];t&&(s.params.prevCreatedAt=t.create_time+(o==="prev"?-1:1),h(a.activeId,i.activeId,o))}function R(o,t,n){V(`【${o.nickname||"-"}】与【${t.nickname||"-"}】的聊天记录搜索`,[ee.default,{fromUser:o,toUser:t,keyWord:n,onSelect:O}])}function O(o,t,n){s.list=[],s.prevHasMore=!0,s.nextHasMore=!0,s.params.prevCreatedAt=o.create_time+1,h(a.activeId,i.activeId),n()}return(o,t)=>{const n=e.resolveComponent("BaseScroll"),l=e.resolveComponent("el-tooltip"),p=e.resolveComponent("el-button");return e.openBlock(),e.createBlock(ae,{modelValue:e.unref(u),"onUpdate:modelValue":t[5]||(t[5]=c=>e.isRef(u)?u.value=c:u=c),fields:x,fetch:e.unref(v.GetMockUser),pageAttrs:{pageSizes:[5,10,15,20,25]},pagination:{currPage:1,pageSize:10},showPagination:!1},{list:e.withCtx(({list:c,total:m,hasMore:g})=>[e.createElementVNode("div",se,[e.createElementVNode("section",ne,[e.createElementVNode("header",re,[e.createElementVNode("b",null,"搜索结果 ("+e.toDisplayString(a.list.length)+"/"+e.toDisplayString(a.total)+")",1)]),e.createVNode(n,{class:"f-1",onReachBottom:t[0]||(t[0]=r=>q("from")),paddingBottom:a.hasMore?0:T,loading:a.loading,emptyTips:"换个姿势搜搜看~"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.list,(r,d)=>{var f;return e.openBlock(),e.createBlock(A.default,{userDataKey:"fromUserData",onClick:I=>E("from",r),data:r,active:a.activeId===((f=r==null?void 0:r.fromUserData)==null?void 0:f.id),isSearchResult:"",key:d},null,8,["onClick","data","active"])}),128))]),_:2},1032,["paddingBottom","loading"])]),e.createElementVNode("section",ie,[e.createElementVNode("header",le,[e.createElementVNode("b",null,"TA的好友 ("+e.toDisplayString(i.list.length)+"/"+e.toDisplayString(i.total)+")",1)]),e.createVNode(n,{class:"f-1",onReachBottom:t[1]||(t[1]=r=>q("to")),paddingBottom:i.hasMore?0:T,loading:i.loading,emptyTips:a.activeId?"暂无好友哦~":"请在左侧选择用户"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.list,(r,d)=>(e.openBlock(),e.createBlock(A.default,{userDataKey:"toUserData",onClick:f=>E("to",r),data:r,active:i.activeId===r.toUserData.id,key:d},null,8,["onClick","data","active"]))),128))]),_:2},1032,["paddingBottom","loading","emptyTips"])]),e.createElementVNode("section",ce,[e.createElementVNode("header",de,[e.createElementVNode("div",pe,[e.createElementVNode("div",me,[t[6]||(t[6]=e.createTextVNode(" 【 ")),e.createVNode(l,{content:s.headInfo.fromUser.nickname},{default:e.withCtx(()=>[e.createElementVNode("span",fe,e.toDisplayString(s.headInfo.fromUser.nickname||"-"),1)]),_:1},8,["content"]),t[7]||(t[7]=e.createTextVNode("】 "))]),t[10]||(t[10]=e.createElementVNode("div",null,"与",-1)),e.createElementVNode("div",ue,[t[8]||(t[8]=e.createTextVNode(" 【 ")),e.createVNode(l,{content:s.headInfo.toUser.nickname},{default:e.withCtx(()=>[e.createElementVNode("span",ge,e.toDisplayString(s.headInfo.toUser.nickname||"-"),1)]),_:1},8,["content"]),t[9]||(t[9]=e.createTextVNode(" 】 "))]),t[11]||(t[11]=e.createElementVNode("div",{class:"q-line-1"},"的聊天记录",-1))]),e.createVNode(l,{content:"首次建立会话时间:"+s.headInfo.firstDate},{default:e.withCtx(()=>[e.createElementVNode("span",he,e.toDisplayString(s.headInfo.firstDate),1)]),_:1},8,["content"]),e.createVNode(p,{onClick:t[2]||(t[2]=r=>R(s.headInfo.fromUser,s.headInfo.toUser,e.unref(u).msgWord)),icon:e.unref(Q.search_default),size:"small",disabled:!i.activeId,type:"primary",class:"ml-o",plain:"",round:""},{default:e.withCtx(()=>t[12]||(t[12]=[e.createTextVNode("搜索")])),_:1},8,["icon","disabled"])]),e.createVNode(n,{class:"f-1","padding-top":"16",paddingBottom:s.hasMore?16:T,loading:s.loading,topHasMore:s.prevHasMore,onReachTop:t[3]||(t[3]=r=>H("prev")),onReachBottom:t[4]||(t[4]=r=>H("next")),emptyTips:i.activeId?"暂无聊天记录哦~":"请在左侧选择TA的好友"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.list,(r,d)=>{var f,I;return e.openBlock(),e.createElementBlock(e.Fragment,{key:d},[M(r,d)?(e.openBlock(),e.createElementBlock("div",ve,e.toDisplayString(k(r.create_time)),1)):e.createCommentVNode("",!0),e.createVNode(Z.default,{data:r,userInfo:s.headInfo[`${i.activeId===r.fromUser.id?"to":"from"}User`],position:r.msgType==="TIMCustomElem"&&!B.includes((I=(f=r.msgContent)==null?void 0:f.Data)==null?void 0:I.type)?"center":i.activeId===r.fromUser.id?"left":"right"},null,8,["data","userInfo","position"])],64)}),128))]),_:2},1032,["paddingBottom","loading","topHasMore","emptyTips"])])])]),_:1},8,["modelValue","fetch"])}}}),ye=P._export_sfc(_e,[["__scopeId","data-v-75b008c5"]]);exports.default=ye;