uniapp,h5

pages-tabbar-tabbar-4-tabbar-4.C1-4cVkT.js 8.6KB

12
  1. import{n as t,B as a,c as e,C as s,o as i,d as l,w as r,e as n,x as c,f as o,F as u,D as h,y as d,A as f,j as m,t as p,g,E as _,i as b,k as v,l as y,G as k,s as C,r as T,b as x,v as I}from"./index-CyEi9qWZ.js";import{_ as L}from"./uni-search-bar.h3kPee74.js";import{r as S}from"./uni-app.es.Cbyfkuy6.js";import{Y as w}from"./uni-cloud.es.B4rBlwmw.js";import{_ as R}from"./_plugin-vue_export-helper.BCo6x5W8.js";import{_ as F}from"./uni-list.B-iOxwun.js";import"./uni-icons.DLqzPOHi.js";const U=R({name:"UniListChat",emits:["click"],props:{title:{type:String,default:""},note:{type:String,default:""},clickable:{type:Boolean,default:!1},link:{type:[Boolean,String],default:!1},to:{type:String,default:""},badgeText:{type:[String,Number],default:""},badgePositon:{type:String,default:"right"},time:{type:String,default:""},avatarCircle:{type:Boolean,default:!1},avatar:{type:String,default:""},avatarList:{type:Array,default:()=>[]}},computed:{isDraft(){return"[uni-im-draft]"==this.note.slice(0,14)},isSingle(){if("dot"===this.badgeText)return"uni-badge--dot";return this.badgeText.toString().length>1?"uni-badge--complex":"uni-badge--single"},computedAvatar(){return this.avatarList.length>4?(this.imageWidth=13.95,"avatarItem--3"):this.avatarList.length>1?(this.imageWidth=21.15,"avatarItem--2"):(this.imageWidth=45,"avatarItem--1")}},watch:{avatar:{handler(t){"cloud://"==t.substr(0,8)?w.getTempFileURL({fileList:[t]}).then((t=>{let a=t.fileList||t.result.fileList;this.avatarUrl=a[0].tempFileURL})):this.avatarUrl=t},immediate:!0}},data:()=>({isFirstChild:!1,border:!0,imageWidth:50,avatarUrl:""}),mounted(){this.list=this.getForm(),this.list&&(this.list.firstChildAppend||(this.list.firstChildAppend=!0,this.isFirstChild=!0),this.border=this.list.border)},methods:{getForm(t="uniList"){let a=this.$parent,e=a.$options.name;for(;e!==t;){if(a=a.$parent,!a)return!1;e=a.$options.name}return a},onClick(){""===this.to?(this.clickable||this.link)&&this.$emit("click",{data:{}}):this.openPage()},openPage(){-1!==["navigateTo","redirectTo","reLaunch","switchTab"].indexOf(this.link)?this.pageApi(this.link):this.pageApi("navigateTo")},pageApi(i){let l={url:this.to,success:t=>{this.$emit("click",{data:t})},fail:t=>{this.$emit("click",{data:t})}};switch(i){case"navigateTo":default:t(l);break;case"redirectTo":s(l);break;case"reLaunch":e(l);break;case"switchTab":a(l)}}}},[["render",function(t,a,e,s,k,C){const T=b,x=v,I=y;return i(),l(T,{"hover-class":e.clickable||e.link?"uni-list-chat--hover":"",class:"uni-list-chat",onClick:_(C.onClick,["stop"])},{default:r((()=>[n(T,{class:c({"uni-list--border":k.border,"uni-list-chat--first":k.isFirstChild})},null,8,["class"]),n(T,{class:"uni-list-chat__container"},{default:r((()=>[n(T,{class:"uni-list-chat__header-warp"},{default:r((()=>[e.avatarCircle||0===e.avatarList.length?(i(),l(T,{key:0,class:c(["uni-list-chat__header",{"header--circle":e.avatarCircle}])},{default:r((()=>[n(x,{class:c(["uni-list-chat__header-image",{"header--circle":e.avatarCircle}]),src:k.avatarUrl,mode:"aspectFill"},null,8,["class","src"])])),_:1},8,["class"])):(i(),l(T,{key:1,class:"uni-list-chat__header"},{default:r((()=>[(i(!0),o(u,null,h(e.avatarList,((t,a)=>(i(),l(T,{key:a,class:c(["uni-list-chat__header-box",C.computedAvatar]),style:d({width:k.imageWidth+"px",height:k.imageWidth+"px"})},{default:r((()=>[n(x,{class:"uni-list-chat__header-image",style:d({width:k.imageWidth+"px",height:k.imageWidth+"px"}),src:t.url,mode:"aspectFill"},null,8,["style","src"])])),_:2},1032,["class","style"])))),128))])),_:1}))])),_:1}),n(T,{class:"slot-header"},{default:r((()=>[f(t.$slots,"header",{},void 0,!0)])),_:3}),e.badgeText&&"left"===e.badgePositon?(i(),l(T,{key:0,class:c(["uni-list-chat__badge uni-list-chat__badge-pos",[C.isSingle]])},{default:r((()=>[n(I,{class:"uni-list-chat__badge-text"},{default:r((()=>[m(p("dot"===e.badgeText?"":e.badgeText),1)])),_:1})])),_:1},8,["class"])):g("",!0),n(T,{class:"uni-list-chat__content"},{default:r((()=>[n(T,{class:"uni-list-chat__content-main"},{default:r((()=>[n(I,{class:"uni-list-chat__content-title uni-ellipsis"},{default:r((()=>[m(p(e.title),1)])),_:1}),n(T,{style:{"flex-direction":"row"}},{default:r((()=>[C.isDraft?(i(),l(I,{key:0,class:"draft"},{default:r((()=>[m("[草稿]")])),_:1})):g("",!0),n(I,{class:"uni-list-chat__content-note uni-ellipsis"},{default:r((()=>[m(p(C.isDraft?e.note.slice(14):e.note),1)])),_:1})])),_:1})])),_:1}),n(T,{class:"uni-list-chat__content-extra"},{default:r((()=>[f(t.$slots,"default",{},(()=>[n(I,{class:"uni-list-chat__content-extra-text"},{default:r((()=>[m(p(e.time),1)])),_:1}),e.badgeText&&"right"===e.badgePositon?(i(),l(T,{key:0,class:c(["uni-list-chat__badge",[C.isSingle,"right"===e.badgePositon?"uni-list-chat--right":""]])},{default:r((()=>[n(I,{class:"uni-list-chat__badge-text"},{default:r((()=>[m(p("dot"===e.badgeText?"":e.badgeText),1)])),_:1})])),_:1},8,["class"])):g("",!0)]),!0)])),_:3})])),_:3})])),_:3})])),_:3},8,["hover-class","onClick"])}],["__scopeId","data-v-60695c2c"]]);const V=R({data:()=>({chatItems:[],user:{avatar:"",email:"",username:"",bio:"",userId:""},searchValue:"",debounceTimer:null,searchResults:[]}),onLoad(){let t=k("userInfo");t&&(this.user={...t})},onShow:async function(){this.searchValue="";try{await this.fetchMsgList()}catch(t){console.error("Failed to load msg list:",t)}},methods:{async search(t){this.searchResults=await this.fetchSearchResults(this.searchValue)},focus(t){C({title:"focus事件,输出值为:"+t.value,icon:"none"})},async onInput(t){this.searchValue=t.value,this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout((async()=>{this.searchValue?this.searchResults=await this.fetchSearchResults(this.searchValue):this.searchResults=[]}),200)},async fetchSearchResults(t){const a=(await T({url:`https://afanai.top:8089/v1/user/search?query=${encodeURIComponent(t)}`,method:"GET",header:{}})).data;return"string"==typeof a&&(a=JSON.parse(a)),Array.isArray(a.queryRes)?a.queryRes:[]},clear(t){C({title:"clear事件,清除值为:"+t.value,icon:"none"})},blur(t){C({title:"blur事件,输入值为:"+t.value,icon:"none"})},goToChat(a){if("000"!=a&&this.appendChatUser(a),x("chaterId",a),"000"==a)x("chaterName","所有人聊天");else{let t=!1;for(var e of this.chatItems)if(a==e.id){x("chaterName",e.name),t=!0;break}t||x("chaterName",this.searchResults[0].username)}t({url:"./chat"})},goToChats(){},async fetchMsgList(){const t=await T({url:"https://afanai.top:8089/v1/chatMsg/get/chatItems/"+this.user.userId,method:"GET"});if(404!=t.statusCode)for(var a of(this.chatItems=[],t.data)){const t={id:a.userId,name:a.username,avatarList:a.avatar,note:a.lastMsgContent,time:a.time,unreadCount:a.unreadCount};this.chatItems.push(t)}else console.log("response.data is 404")},async appendChatUser(t){const a={id:t,userId:this.user.userId};await T({url:"https://afanai.top:8089/v1/chatMsg/appendChatUser",method:"POST",data:a,header:{"content-type":"application/json"}})}}},[["render",function(t,a,e,s,c,d){const f=S(I("uni-search-bar"),L),_=y,k=v,C=b,T=S(I("uni-list-chat"),U),x=S(I("uni-list"),F);return i(),l(C,{class:"container"},{default:r((()=>[n(C,{class:"search-container"},{default:r((()=>[n(f,{class:"uni-mt-10",radius:"5",placeholder:"输入用户名搜索用户",clearButton:"auto",cancelButton:"none",onConfirm:d.search,focus:!0,modelValue:c.searchValue,"onUpdate:modelValue":a[0]||(a[0]=t=>c.searchValue=t),onBlur:d.blur,onFocus:d.focus,onInput:d.onInput,onClear:d.clear},null,8,["onConfirm","modelValue","onBlur","onFocus","onInput","onClear"]),c.searchValue?(i(),l(C,{key:0,class:"search-result"},{default:r((()=>[n(_,{class:"result-title"},{default:r((()=>[m("搜索结果")])),_:1}),(i(!0),o(u,null,h(c.searchResults,((t,a)=>(i(),l(C,{class:"result-item",key:a,onClick:a=>d.goToChat(t.userId)},{default:r((()=>[n(k,{class:"avatar",src:t.avatar_url},null,8,["src"]),n(C,{class:"text-container"},{default:r((()=>[n(_,{class:"username"},{default:r((()=>[m(p(t.username),1)])),_:2},1024),n(_,{class:"bio"},{default:r((()=>[m(p(t.bio),1)])),_:2},1024)])),_:2},1024)])),_:2},1032,["onClick"])))),128))])),_:1})):g("",!0)])),_:1}),n(x,null,{default:r((()=>[n(x,{border:!0},{default:r((()=>[n(T,{title:"所有人聊天",avatar:"https://afanai.top:8088/imgs/default_avatar_all.png",note:"您有一条新消息...",time:"2020-02-02 20:20","badge-text":"1",clickable:!0,onClick:a[1]||(a[1]=t=>d.goToChat("000"))}),(i(!0),o(u,null,h(c.chatItems,((t,a)=>(i(),l(T,{key:a,title:t.name,avatar:t.avatarList,note:t.note,time:t.time,"badge-text":t.unreadCount,clickable:!0,onClick:a=>d.goToChat(t.id)},null,8,["title","avatar","note","time","badge-text","onClick"])))),128))])),_:1})])),_:1})])),_:1})}],["__scopeId","data-v-a7293b5e"]]);export{V as default};