diff --git a/resources/assets/js/components/UserAvatar.vue b/resources/assets/js/components/UserAvatar.vue index 306a832a7..79601f105 100755 --- a/resources/assets/js/components/UserAvatar.vue +++ b/resources/assets/js/components/UserAvatar.vue @@ -10,6 +10,7 @@

{{$L('昵称')}}: {{user.nickname}}

{{$L('职位/职称')}}: {{user.profession || '-'}}

{{$L('离职时间')}}: {{user.disable_at}}

+
diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue index f09c7d861..ce8ae98bf 100644 --- a/resources/assets/js/pages/manage/components/DialogWrapper.vue +++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue @@ -25,7 +25,11 @@
- + +

+ {{$L(dialogData.online_state)}} +

+
@@ -37,17 +41,24 @@

{{dialogData.name}}

({{peopleNum}}) - -
- {{$L(dialogData.online_state === true ? '在线' : dialogData.online_state)}} -
+
    +
  • + {{$L(dialogData.online_state === true ? '在线' : dialogData.online_state)}} +
  • +
+
    +
  • + + {{$L(item.label)}} +
  • +
@@ -64,23 +75,6 @@ - - -
@@ -489,19 +483,25 @@ export default { msgTags() { const array = [ - {icon: '', type: '', label: '消息'}, + {type: '', label: '消息'}, ]; if (this.dialogData.has_tag) { - array.push({icon: '', type: 'tag', label: '标注'}) + array.push({type: 'tag', label: '标注'}) } if (this.dialogData.has_image) { - array.push({icon: '', type: 'image', label: '图片'}) + array.push({type: 'image', label: '图片'}) } if (this.dialogData.has_file) { - array.push({icon: '', type: 'file', label: '文件'}) + array.push({type: 'file', label: '文件'}) } if (this.dialogData.has_link) { - array.push({icon: '', type: 'link', label: '链接'}) + array.push({type: 'link', label: '链接'}) + } + if (this.dialogData.group_type === 'project') { + array.push({type: 'project', label: '打开项目'}) + } + if (this.dialogData.group_type === 'task') { + array.push({type: 'task', label: '打开任务'}) } return array }, @@ -513,12 +513,8 @@ export default { return null }, - navTagShow() { - return this.dialogMsgList.length > 10 && this.msgTags.length > 1 && this.windowScrollY === 0 - }, - scrollerClass() { - return !this.$slots.head && this.navTagShow ? 'default-header' : null + return !this.$slots.head && this.msgTags.length > 1 ? 'default-header' : null }, pasteWrapperClass() { @@ -742,10 +738,6 @@ export default { }); } else { // 发送 - this.msgType = ''; - this.onActive(); - this.onToBottom(); - // const tempId = $A.randNum(1000000000, 9999999999); const tempMsg = { id: tempId, @@ -762,7 +754,10 @@ export default { tempMsg.type = 'loading'; tempMsg.msg = { }; } - this.tempMsgs.push(tempMsg); + this.tempMsgs.push(tempMsg) + this.msgType = '' + this.onActive(); + this.$nextTick(this.onToBottom) // this.$store.dispatch("call", { url: 'dialog/msg/sendtext', @@ -786,10 +781,6 @@ export default { * @param msg {base64, duration} */ sendRecord(msg) { - this.msgType = ''; - this.onActive(); - this.onToBottom(); - // const tempId = $A.randNum(1000000000, 9999999999); const tempMsg = { id: tempId, @@ -800,7 +791,10 @@ export default { userid: this.userId, msg, } - this.tempMsgs.push(tempMsg); + this.tempMsgs.push(tempMsg) + this.msgType = '' + this.onActive() + this.$nextTick(this.onToBottom) // this.$store.dispatch("call", { url: 'dialog/msg/sendrecord', @@ -990,9 +984,6 @@ export default { chatFile(type, file) { switch (type) { case 'progress': - this.onActive(); - this.onToBottom(); - // this.tempMsgs.push({ id: file.tempId, dialog_id: this.dialogData.id, @@ -1000,7 +991,9 @@ export default { type: 'loading', userid: this.userId, msg: { }, - }); + }) + this.onActive() + this.$nextTick(this.onToBottom) break; case 'error': @@ -1269,6 +1262,22 @@ export default { } }, + onMsgType(type) { + switch (type) { + case 'project': + this.openProject() + break; + + case 'task': + this.openTask() + break; + + default: + this.msgType = type + break; + } + }, + onLongpress({event, el, msgData}) { this.operateVisible = this.operateItem.id === msgData.id; this.operateItem = $A.isJson(msgData) ? msgData : {}; diff --git a/resources/assets/sass/pages/components/dialog-wrapper.scss b/resources/assets/sass/pages/components/dialog-wrapper.scss index aee624f2b..3eaf9a28c 100644 --- a/resources/assets/sass/pages/components/dialog-wrapper.scss +++ b/resources/assets/sass/pages/components/dialog-wrapper.scss @@ -94,9 +94,9 @@ .user-avatar, .icon-avatar { - width: 42px; - height: 42px; - margin: 2px; + width: 44px; + height: 44px; + margin-right: 2px; flex-grow: 0; flex-shrink: 0; } @@ -170,26 +170,98 @@ } } - .sub-title { - flex-shrink: 0; - font-size: 12px; - line-height: 20px; - padding-top: 2px; - color: #aaaaaa; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; + .title-desc { + display: none; + align-items: center; - &.pointer { - cursor: pointer; + > li { + font-size: 12px; + list-style: none; + line-height: 16px; + padding-top: 2px; + color: #aaaaaa; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + text-align: center; + transform: scale(0.9); - &:hover { - color: #888888; + &.online { + color: $primary-color; } } + } - &.online { - color: $primary-color; + .title-tags { + display: flex; + align-items: center; + + > li { + font-size: 12px; + list-style: none; + line-height: 22px; + margin-top: 5px; + margin-right: 5px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + cursor: pointer; + display: flex; + align-items: center; + padding: 0 5px; + color: $primary-title-color; + border-radius: 5px; + + > i { + flex-shrink: 0; + width: 14px; + height: 14px; + line-height: 14px; + font-size: 14px; + margin-right: 3px; + background-repeat: no-repeat; + background-size: contain; + background-position: center center; + } + + > span { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + &.file i { + background-image: url("../images/dialog/file.svg"); + } + + &.image i { + background-image: url("../images/dialog/image.svg"); + } + + &.link i { + background-image: url("../images/dialog/link.svg"); + } + + &.msg i { + background-image: url("../images/dialog/msg.svg"); + } + + &.tag i { + background-image: url("../images/dialog/tag.svg"); + } + + &.project i { + background-image: url("../images/dialog/project.svg"); + } + + &.task i { + background-image: url("../images/dialog/task.svg"); + } + + &.active { + color: $primary-color; + background-color: rgba($primary-color, 0.18); + } } } } @@ -207,111 +279,6 @@ display: none; } } - - .nav-tags { - position: absolute; - top: 68px; - left: 12px; - right: 12px; - z-index: 2; - height: 56px; - display: flex; - align-items: center; - justify-content: flex-start; - overflow-x: auto; - background-color: #ffffff; - - > ul { - margin: 0 auto; - display: flex; - align-items: center; - justify-content: center; - - > li { - list-style: none; - display: flex; - align-items: center; - margin: 0 8px; - padding: 4px 8px; - color: $primary-title-color; - background-color: #F2F2F2; - border: 1px solid #F2F2F2; - border-radius: 6px; - font-size: 12px; - cursor: pointer; - box-shadow: 0 1px 6px rgba(255, 255, 255, 0.2); - - @media (max-width: 640px) { - margin: 0 6px; - } - - @media (max-width: 375px) { - margin: 0 4px; - } - - > i { - width: 14px; - height: 14px; - margin-right: 4px; - background-repeat: no-repeat; - background-size: contain; - background-position: center center; - } - - > span { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - &.tag-file i { - background-image: url("../images/dialog/file.svg"); - } - - &.tag-image i { - background-image: url("../images/dialog/image.svg"); - } - - &.tag-link i { - background-image: url("../images/dialog/link.svg"); - } - - &.tag-msg i { - background-image: url("../images/dialog/msg.svg"); - } - - &.tag-tag i { - background-image: url("../images/dialog/tag.svg"); - } - - &.active { - color: #ffffff; - background-color: $primary-color; - border-color: $primary-color; - - &.tag-file i { - background-image: url("../images/dialog/file-white.svg"); - } - - &.tag-image i { - background-image: url("../images/dialog/image-white.svg"); - } - - &.tag-link i { - background-image: url("../images/dialog/link-white.svg"); - } - - &.tag-msg i { - background-image: url("../images/dialog/msg-white.svg"); - } - - &.tag-tag i { - background-image: url("../images/dialog/tag-white.svg"); - } - } - } - } - } } .dialog-scroller { @@ -319,10 +286,6 @@ position: relative; padding: 16px 32px 0; - &.default-header { - padding-top: 56px; - } - .dialog-shake { animation: ani-dialog-shake 600ms ease-in-out; animation-delay: 200ms; @@ -850,7 +813,6 @@ height: 20px; box-sizing: content-box; justify-content: center; - padding-top: 16px; .common-loading { margin: 0; @@ -1338,17 +1300,30 @@ .main-title { justify-content: center; } - .sub-title { - line-height: 18px; + .title-desc { + display: flex; + justify-content: center; + } + .title-tags { + position: absolute; + left: 0; + right: 0; + top: 48px; + z-index: 1; + padding: 0 8px; + background-color: #f8f8f8; + height: 32px; + align-items: flex-start; + overflow-x: auto; + + > li { + flex-shrink: 0; + line-height: 24px; + } } } } } - - .nav-tags { - top: 52px; - height: 46px; - } } .dialog-scroller { padding-right: 14px; @@ -1358,7 +1333,7 @@ background-color: #ffffff; &.default-header { - padding-top: 46px; + margin-top: 30px; } .dialog-item { diff --git a/resources/assets/statics/public/css/fonts/taskfont.ttf b/resources/assets/statics/public/css/fonts/taskfont.ttf index 274a1c882..38bf61155 100644 Binary files a/resources/assets/statics/public/css/fonts/taskfont.ttf and b/resources/assets/statics/public/css/fonts/taskfont.ttf differ diff --git a/resources/assets/statics/public/css/fonts/taskfont.woff b/resources/assets/statics/public/css/fonts/taskfont.woff index 235ae5b8a..82b03c915 100644 Binary files a/resources/assets/statics/public/css/fonts/taskfont.woff and b/resources/assets/statics/public/css/fonts/taskfont.woff differ diff --git a/resources/assets/statics/public/css/fonts/taskfont.woff2 b/resources/assets/statics/public/css/fonts/taskfont.woff2 index 90a0ab03e..ce06963f2 100644 Binary files a/resources/assets/statics/public/css/fonts/taskfont.woff2 and b/resources/assets/statics/public/css/fonts/taskfont.woff2 differ diff --git a/resources/assets/statics/public/images/dialog/file-white.svg b/resources/assets/statics/public/images/dialog/file-white.svg deleted file mode 100644 index c0b6c8ed3..000000000 --- a/resources/assets/statics/public/images/dialog/file-white.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - diff --git a/resources/assets/statics/public/images/dialog/image-white.svg b/resources/assets/statics/public/images/dialog/image-white.svg deleted file mode 100644 index 56578ded1..000000000 --- a/resources/assets/statics/public/images/dialog/image-white.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/resources/assets/statics/public/images/dialog/link-white.svg b/resources/assets/statics/public/images/dialog/link-white.svg deleted file mode 100644 index 477feef1f..000000000 --- a/resources/assets/statics/public/images/dialog/link-white.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - diff --git a/resources/assets/statics/public/images/dialog/msg-white.svg b/resources/assets/statics/public/images/dialog/msg-white.svg deleted file mode 100644 index 57bd172e0..000000000 --- a/resources/assets/statics/public/images/dialog/msg-white.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - diff --git a/resources/assets/statics/public/images/dialog/project.svg b/resources/assets/statics/public/images/dialog/project.svg new file mode 100644 index 000000000..e2b8f1715 --- /dev/null +++ b/resources/assets/statics/public/images/dialog/project.svg @@ -0,0 +1,2 @@ + diff --git a/resources/assets/statics/public/images/dialog/tag-white.svg b/resources/assets/statics/public/images/dialog/tag-white.svg deleted file mode 100644 index 611826f5d..000000000 --- a/resources/assets/statics/public/images/dialog/tag-white.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/resources/assets/statics/public/images/dialog/task.svg b/resources/assets/statics/public/images/dialog/task.svg new file mode 100644 index 000000000..01b55e20b --- /dev/null +++ b/resources/assets/statics/public/images/dialog/task.svg @@ -0,0 +1,2 @@ +