perf: 优化项目页面聊天窗口

This commit is contained in:
kuaifan 2022-03-31 19:10:03 +08:00
parent e327311477
commit a6534518f8
4 changed files with 32 additions and 12 deletions

View File

@ -4,8 +4,10 @@
<div slot="head"> <div slot="head">
<div class="dialog-user"> <div class="dialog-user">
<div class="member-head"> <div class="member-head">
<div class="member-title">{{$L('项目成员')}}<span>({{projectData.project_user.length}})</span></div> <div class="member-title">{{$L('项目成员')}}<span @click="memberShowAll=!memberShowAll">({{projectData.project_user.length}})</span></div>
<div class="member-view-all" @click="memberShowAll=!memberShowAll">{{$L('查看所有')}}</div> <div class="member-close" @click="onClose">
<Icon type="ios-close"/>
</div>
</div> </div>
<ul :class="['member-list', memberShowAll ? 'member-all' : '']"> <ul :class="['member-list', memberShowAll ? 'member-all' : '']">
<li v-for="item in projectData.project_user"> <li v-for="item in projectData.project_user">
@ -45,6 +47,9 @@ export default {
methods: { methods: {
onInputBack() { onInputBack() {
Store.set('onProjectDialogBack', null); Store.set('onProjectDialogBack', null);
},
onClose() {
this.$store.dispatch('toggleProjectParameter', 'chat');
} }
} }
} }

View File

@ -2027,6 +2027,9 @@ export default {
* @param dialog_id * @param dialog_id
*/ */
getDialogMsgs({state, dispatch}, dialog_id) { getDialogMsgs({state, dispatch}, dialog_id) {
if (!dialog_id) {
return;
}
let dialog = state.cacheDialogs.find(({id}) => id == dialog_id); let dialog = state.cacheDialogs.find(({id}) => id == dialog_id);
if (!dialog) { if (!dialog) {
dialog = { dialog = {

View File

@ -7,8 +7,8 @@
position: relative; position: relative;
.project-dialog-wrapper { .project-dialog-wrapper {
.dialog-user { .dialog-user {
margin-top: 36px; margin-top: 26px;
padding: 0 32px; padding: 0 22px;
.member-head { .member-head {
display: flex; display: flex;
align-items: center; align-items: center;
@ -21,12 +21,20 @@
color: $primary-color; color: $primary-color;
} }
} }
.member-view-all { .member-close {
color: #999;
font-size: 13px;
cursor: pointer; cursor: pointer;
.ivu-icon-ios-close {
font-size: 38px;
top: 3px;
right: 2px;
transition: all 0.2s;
}
&:hover { &:hover {
color: #777; .ivu-icon-ios-close {
transform: rotate(-90deg);
}
} }
} }
} }
@ -55,6 +63,9 @@
} }
} }
} }
.dialog-title {
padding: 0 20px;
}
.dialog-footer { .dialog-footer {
.dialog-back { .dialog-back {
display: none; display: none;
@ -67,11 +78,12 @@
.project-dialog { .project-dialog {
.project-dialog-wrapper { .project-dialog-wrapper {
.dialog-user { .dialog-user {
margin-top: 24px; margin-top: 16px;
padding: 0 20px; padding: 0 12px;
} }
.dialog-title { .dialog-title {
padding: 0 20px; padding: 0 12px;
height: 58px;
} }
.dialog-scroller { .dialog-scroller {
padding: 0 20px; padding: 0 20px;

View File

@ -27,7 +27,7 @@
} }
} }
.project-dialog { .project-dialog {
position: absolute; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
height: 100%; height: 100%;