1 line
11 KiB
JavaScript
Vendored

"use strict";(self.webpackChunkDooTask=self.webpackChunkDooTask||[]).push([[412],{2412:(t,e,a)=>{a.r(e),a.d(e,{default:()=>l});var s=a(20629),i=a(61761);function o(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,s)}return a}function n(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?o(Object(a),!0).forEach((function(e){r(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}const c={components:{ScrollerY:a(85166).Z,DialogWrapper:i.Z},data:function(){return{tabActive:"dialog",dialogType:[{type:"",name:"全部"},{type:"project",name:"项目"},{type:"task",name:"任务"},{type:"user",name:"个人"}],dialogActive:"",dialogKey:"",dialogId:0,contactsKey:"",contactsLoad:0,contactsList:[],contactsData:null,contactsCurrentPage:1,contactsHasMorePages:!1,topOperateStyles:{},topOperateVisible:!1,topOperateItem:{}}},activated:function(){this.openDialogStorage()},computed:n(n({},(0,s.rn)(["userId","cacheDialogs","dialogOpenId"])),{},{dialogList:function(){var t=this,e=this.dialogActive,a=this.dialogKey;return""==e&&""==a?this.cacheDialogs.filter((function(e){return t.filterDialog(e)})).sort((function(t,e){return t.top_at||e.top_at?$A.Date(e.top_at)-$A.Date(t.top_at):$A.Date(e.last_at)-$A.Date(t.last_at)})):this.cacheDialogs.filter((function(s){if(!t.filterDialog(s))return!1;if(e)switch(e){case"project":case"task":if(s.group_type!=e)return!1;break;case"user":if("user"!=s.type)return!1;break;default:return!1}if(a){var i=$A.strExists(s.name,a),o=s.last_msg&&"text"===s.last_msg.type&&$A.strExists(s.last_msg.msg.text,a);if(!i&&!o)return!1}return!0})).sort((function(t,e){return t.top_at||e.top_at?$A.Date(e.top_at)-$A.Date(t.top_at):$A.Date(e.last_at)-$A.Date(t.last_at)}))},msgUnread:function(){return function(t){var e=0;return this.cacheDialogs.some((function(a){if(a.unread)switch(t){case"project":case"task":t==a.group_type&&(e+=a.unread);break;case"user":t==a.type&&(e+=a.unread);break;default:e+=a.unread}})),e}}}),watch:{tabActive:function(t){t&&null===this.contactsData&&this.getContactsList(1)},dialogId:function(t){$A.setStorage("messenger::dialogId",t),this.$store.state.dialogOpenId=t},dialogOpenId:function(t){t>0&&(this.dialogId=t)},contactsKey:function(t){var e=this;setTimeout((function(){e.contactsKey==t&&(e.contactsData=null,e.getContactsList(1))}),600)}},methods:{listScroll:function(t){if("up"===t.directionreal)t.scrollE<10&&"contacts"===this.tabActive&&0==this.contactsLoad&&this.contactsHasMorePages&&this.getContactsList(this.contactsCurrentPage+1);this.topOperateVisible=!1},onActive:function(t){if(this.dialogActive==t){var e=this.dialogList.find((function(t){return t.unread>0}));if(e)try{this.$refs["dialog_".concat(e.id)][0].scrollIntoView()}catch(t){scrollIntoView(this.$refs["dialog_".concat(e.id)][0],{behavior:"instant",inline:"end"})}}this.dialogActive=t},closeDialog:function(){this.dialogId=0},openDialog:function(t,e){this.dialogId=t.id,this.scrollIntoActive(e)},openDialogStorage:function(){var t=this;if(this.dialogId=$A.getStorageInt("messenger::dialogId"),this.dialogId>0){var e=this.cacheDialogs.find((function(e){return e.id===t.dialogId}));e&&this.openDialog(e,!1)}},openContacts:function(t){var e=this;this.tabActive="dialog",this.$store.dispatch("openDialogUserid",t.userid).then((function(){e.scrollIntoActive()}))},filterDialog:function(t){if(t.unread>0||t.id==this.dialogId||t.top_at)return!0;if(void 0===t.name)return!1;if(!t.last_at)return!1;if("group"==t.type&&["project","task"].includes(t.group_type)&&$A.isJson(t.group_info)){if("task"==t.group_type&&t.group_info.complete_at)if(432e3+Math.max($A.Date(t.last_at,!0),$A.Date(t.group_info.complete_at,!0))<$A.Time())return!1;if(t.group_info.deleted_at)if(172800+Math.max($A.Date(t.last_at,!0),$A.Date(t.group_info.deleted_at,!0))<$A.Time())return!1;if(t.group_info.archived_at)if(259200+Math.max($A.Date(t.last_at,!0),$A.Date(t.group_info.archived_at,!0))<$A.Time())return!1}return!0},getContactsList:function(t){var e=this;null===this.contactsData&&(this.contactsData={}),this.contactsLoad++,this.$store.dispatch("call",{url:"users/search",data:{keys:{key:this.contactsKey},sorts:{az:"asc"},page:t,pagesize:50}}).then((function(t){var a=t.data;e.contactsLoad--,a.data.some((function(t){if(t.userid===e.userId)return!1;var a=t.az?t.az.toUpperCase():"#";void 0===e.contactsData[a]&&(e.contactsData[a]=[]);var s=e.contactsData[a].findIndex((function(e){return e.userid===t.userid}));s>-1?e.contactsData[a].splice(s,1,t):(e.contactsData[a].push(t),e.contactsList.push(t))})),e.contactsCurrentPage=a.current_page,e.contactsHasMorePages=a.current_page<a.last_page})).catch((function(){e.contactsLoad--,e.contactsHasMorePages=!1}))},formatLastMsg:function(t){if($A.isJson(t))switch(t.type){case"text":return t.msg.text;case"file":return"img"==t.msg.type?"["+this.$L("图片")+"]":"["+this.$L("文件")+"] "+t.msg.name;default:return"["+this.$L("未知的消息")+"]"}return""},lastMsgReadDone:function(t){if($A.isJson(t)){var e=t.userid,a=t.percentage;if(e===this.userId)return 100===a?"md-done-all":"md-checkmark"}return null},scrollIntoActive:function(t){var e=this;this.$nextTick((function(){if(e.$refs.list){var a=e.$refs.list.querySelector(".active");if(a)scrollIntoView(a,{behavior:!0===t?"smooth":"instant",scrollMode:"if-needed"});else e.cacheDialogs.find((function(t){return t.id==e.dialogId}))&&e.dialogActive&&(e.dialogActive="",e.$nextTick((function(){var a=e.$refs.list.querySelector(".active");a&&scrollIntoView(a,{behavior:!0===t?"smooth":"instant",scrollMode:"if-needed"})})))}}))},handleRightClick:function(t,e){var a=this;this.handleClickTopOperateOutside(),this.topOperateItem=$A.isJson(e)?e:{},this.$nextTick((function(){var e=a.$refs.dialogWrapper.getBoundingClientRect();a.topOperateStyles={left:"".concat(t.clientX-e.left,"px"),top:"".concat(t.clientY-e.top+100-a.$refs.list.scrollInfo().scrollY,"px")},a.topOperateVisible=!0}))},handleClickTopOperateOutside:function(){this.topOperateVisible=!1},handleTopClick:function(){var t=this;this.$store.dispatch("call",{url:"dialog/top",data:{dialog_id:this.topOperateItem.id}}).then((function(){t.$store.dispatch("getDialogs"),t.$Modal.remove()})).catch((function(e){var a=e.msg;$A.modalError(a,301),t.$Modal.remove()}))}}};const l=(0,a(51900).Z)(c,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"page-messenger"},[a("PageTitle",{attrs:{title:t.$L("消息")}}),t._v(" "),a("div",{staticClass:"messenger-wrapper"},[a("div",{staticClass:"messenger-select",class:{"show768-menu":0==t.dialogId}},[a("div",{staticClass:"messenger-search"},[a("div",{staticClass:"search-wrapper"},["dialog"===t.tabActive?a("Input",{attrs:{prefix:"ios-search",placeholder:t.$L("搜索..."),clearable:""},model:{value:t.dialogKey,callback:function(e){t.dialogKey=e},expression:"dialogKey"}}):a("Input",{attrs:{prefix:"ios-search",placeholder:t.$L("搜索..."),clearable:""},model:{value:t.contactsKey,callback:function(e){t.contactsKey=e},expression:"contactsKey"}})],1)]),t._v(" "),"dialog"===t.tabActive?a("div",{staticClass:"messenger-nav"},t._l(t.dialogType,(function(e,s){return a("p",{key:s,class:{active:t.dialogActive==e.type},on:{click:function(a){return t.onActive(e.type)}}},[a("Badge",{staticClass:"nav-num",attrs:{count:t.msgUnread(e.type)}}),t._v("\n "+t._s(t.$L(e.name))+"\n ")],1)})),0):t._e(),t._v(" "),a("ScrollerY",{ref:"list",staticClass:"messenger-list overlay-y",attrs:{static:""},on:{"on-scroll":t.listScroll}},["dialog"===t.tabActive?a("ul",{ref:"dialogWrapper",staticClass:"dialog"},t._l(t.dialogList,(function(e,s){return a("li",{key:s,ref:"dialog_"+e.id,refInFor:!0,class:{top:e.top_at,active:e.id==t.dialogId,operate:e.id==t.topOperateItem.id&&t.topOperateVisible},on:{click:function(a){return t.openDialog(e,!0)},contextmenu:function(a){return a.preventDefault(),a.stopPropagation(),t.handleRightClick(a,e)}}},["group"==e.type?["project"==e.group_type?a("i",{staticClass:"taskfont icon-avatar project"},[t._v("")]):"task"==e.group_type?a("i",{staticClass:"taskfont icon-avatar task",class:{completed:t.$A.dialogCompleted(e)}},[t._v("")]):a("Icon",{staticClass:"icon-avatar",attrs:{type:"ios-people"}})]:e.dialog_user?a("div",{staticClass:"user-avatar"},[a("UserAvatar",{attrs:{userid:e.dialog_user.userid,size:42}})],1):a("Icon",{staticClass:"icon-avatar",attrs:{type:"md-person"}}),t._v(" "),a("div",{staticClass:"dialog-box"},[a("div",{staticClass:"dialog-title"},[t._l(t.$A.dialogTags(e),(function(e){return"success"!=e.color?[a("Tag",{attrs:{color:e.color,fade:!1}},[t._v(t._s(t.$L(e.text)))])]:t._e()})),t._v(" "),a("span",[t._v(t._s(e.name))]),t._v(" "),"user"==e.type&&t.lastMsgReadDone(e.last_msg)?a("Icon",{attrs:{type:t.lastMsgReadDone(e.last_msg)}}):t._e(),t._v(" "),e.last_at?a("em",[t._v(t._s(t.$A.formatTime(e.last_at)))]):t._e()],2),t._v(" "),a("div",{staticClass:"dialog-text no-dark-mode"},[t._v(t._s(t.formatLastMsg(e.last_msg)))])]),t._v(" "),a("Badge",{staticClass:"dialog-num",attrs:{count:e.unread}})],2)})),0):a("ul",{staticClass:"contacts"},[t._l(t.contactsData,(function(e,s){return a("li",[a("div",{staticClass:"label"},[t._v(t._s(s))]),t._v(" "),a("ul",t._l(e,(function(e,s){return a("li",{key:s,on:{click:function(a){return t.openContacts(e)}}},[a("div",{staticClass:"avatar"},[a("UserAvatar",{attrs:{userid:e.userid,size:30}})],1),t._v(" "),a("div",{staticClass:"nickname"},[t._v(t._s(e.nickname))])])})),0)])})),t._v(" "),t.contactsLoad>0?a("li",{staticClass:"loading"},[a("Loading")],1):t.contactsHasMorePages?t._e():a("li",{staticClass:"loaded"},[t._v(t._s(t.$L("共"+t.contactsList.length+"位联系人")))])],2),t._v(" "),a("div",{staticClass:"top-operate",style:t.topOperateStyles},[a("Dropdown",{attrs:{trigger:"custom",visible:t.topOperateVisible,"transfer-class-name":"page-file-dropdown-menu",transfer:""},on:{"on-clickoutside":t.handleClickTopOperateOutside}},[a("DropdownMenu",{attrs:{slot:"list"},slot:"list"},[a("DropdownItem",{nativeOn:{click:function(e){return t.handleTopClick.apply(null,arguments)}}},[t._v("\n "+t._s(t.$L(t.topOperateItem.top_at?"取消置顶":"置顶该聊天"))+"\n ")])],1)],1)],1)]),t._v(" "),a("div",{staticClass:"messenger-menu"},[a("Icon",{class:{active:"dialog"===t.tabActive},attrs:{type:"ios-chatbubbles"},on:{click:function(e){t.tabActive="dialog"}}}),t._v(" "),a("Icon",{class:{active:"contacts"===t.tabActive},attrs:{type:"md-person"},on:{click:function(e){t.tabActive="contacts"}}})],1)],1),t._v(" "),a("div",{staticClass:"messenger-msg"},[a("div",{staticClass:"msg-dialog-bg"},[a("div",{staticClass:"msg-dialog-bg-icon"},[a("Icon",{attrs:{type:"ios-chatbubbles"}})],1),t._v(" "),a("div",{staticClass:"msg-dialog-bg-text"},[t._v(t._s(t.$L("选择一个会话开始聊天")))])]),t._v(" "),t.dialogId>0?a("DialogWrapper",{attrs:{dialogId:t.dialogId},on:{"on-active":t.scrollIntoActive}},[a("div",{staticClass:"dialog-back",attrs:{slot:"inputBefore"},on:{click:t.closeDialog},slot:"inputBefore"},[a("Icon",{attrs:{type:"md-arrow-back"}})],1)]):t._e()],1)])],1)}),[],!1,null,null,null).exports}}]);