mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-12 19:35:50 +00:00
perf: 聊天文件发送进度
This commit is contained in:
parent
01bda83fcd
commit
dc3e5f0a59
@ -140,8 +140,8 @@ export default {
|
|||||||
file.msg = this.fileMsgCaches[msgName]
|
file.msg = this.fileMsgCaches[msgName]
|
||||||
delete this.fileMsgCaches[msgName]
|
delete this.fileMsgCaches[msgName]
|
||||||
}
|
}
|
||||||
this.$emit('on-progress', file)
|
|
||||||
}
|
}
|
||||||
|
this.$emit('on-progress', file)
|
||||||
},
|
},
|
||||||
|
|
||||||
handleSuccess(res, file) {
|
handleSuccess(res, file) {
|
||||||
|
|||||||
@ -40,6 +40,9 @@
|
|||||||
<div class="file-size">{{$A.bytesToSize(msgData.msg.size)}}</div>
|
<div class="file-size">{{$A.bytesToSize(msgData.msg.size)}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-if="msgData.msg.percentage" class="file-percentage">
|
||||||
|
<span :style="fileStyle(msgData.msg.percentage)"></span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--录音-->
|
<!--录音-->
|
||||||
@ -508,6 +511,15 @@ export default {
|
|||||||
return `${Math.max(1, seconds)}″`
|
return `${Math.max(1, seconds)}″`
|
||||||
},
|
},
|
||||||
|
|
||||||
|
fileStyle(percentage) {
|
||||||
|
if (percentage) {
|
||||||
|
return {
|
||||||
|
width: (100 - percentage) + '%'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
|
||||||
imageStyle(info) {
|
imageStyle(info) {
|
||||||
const {width, height} = info;
|
const {width, height} = info;
|
||||||
if (width && height) {
|
if (width && height) {
|
||||||
|
|||||||
@ -1983,13 +1983,19 @@ export default {
|
|||||||
chatFile(type, file) {
|
chatFile(type, file) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'progress':
|
case 'progress':
|
||||||
|
const percentage = file.showProgress ? Math.max(file.percentage, 0.01) : false
|
||||||
|
const temp = this.tempMsgs.find(({id}) => id == file.tempId);
|
||||||
|
if (temp) {
|
||||||
|
temp.msg.percentage = percentage
|
||||||
|
return;
|
||||||
|
}
|
||||||
const tempMsg = {
|
const tempMsg = {
|
||||||
id: file.tempId,
|
id: file.tempId,
|
||||||
dialog_id: this.dialogData.id,
|
dialog_id: this.dialogData.id,
|
||||||
reply_id: this.quoteId,
|
reply_id: this.quoteId,
|
||||||
type: 'file',
|
type: 'file',
|
||||||
userid: this.userId,
|
userid: this.userId,
|
||||||
msg: file.msg || {},
|
msg: Object.assign(file.msg || {}, {percentage}),
|
||||||
}
|
}
|
||||||
this.tempMsgs.push(tempMsg)
|
this.tempMsgs.push(tempMsg)
|
||||||
this.msgType = ''
|
this.msgType = ''
|
||||||
|
|||||||
@ -937,6 +937,26 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.content-file {
|
.content-file {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.file-percentage {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
border-radius: 3px;
|
||||||
|
overflow: hidden;
|
||||||
|
> span {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 0;
|
||||||
|
background-color: rgba(170, 170, 170, 0.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
&.file {
|
&.file {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user