no message

This commit is contained in:
kuaifan 2021-06-19 11:18:27 +08:00
parent e5be23d992
commit e0e2318e2f
7 changed files with 57 additions and 15 deletions

View File

@ -187,8 +187,8 @@ class ProjectController extends AbstractController
}
//
if ($project->name != $name) {
$project->name = $name;
$project->addLog("修改项目名称:{$project->name} => {$name}");
$project->name = $name;
}
if ($project->desc != $desc) {
$project->desc = $desc;
@ -511,6 +511,7 @@ class ProjectController extends AbstractController
//
$list = $builder
->join('project_task_users', 'project_tasks.id', '=', 'project_task_users.task_pid')
->whereNull('project_tasks.archived_at')
->where('project_tasks.parent_id', 0)
->where('project_task_users.userid', $user->userid)
->orderByDesc('project_tasks.id')

View File

@ -356,8 +356,8 @@ class ProjectTask extends AbstractModel
} elseif (mb_strlen($data['name']) > 255) {
throw new ApiException('任务描述最多只能设置255个字');
}
$this->name = $data['name'];
$this->addLog("修改{任务}标题:{$this->name} => {$data['name']}");
$this->name = $data['name'];
}
// 负责人
if (Arr::exists($data, 'owner')) {
@ -420,8 +420,8 @@ class ProjectTask extends AbstractModel
}
// 背景色
if (Arr::exists($data, 'color') && $this->color != $data['color']) {
$this->color = $data['color'];
$this->addLog("修改任务背景色:{$this->color} => {$data['color']}");
$this->color = $data['color'];
}
// 内容
if (Arr::exists($data, 'content')) {

View File

@ -45,7 +45,7 @@
</ul>
</div>
</ScrollerY>
<div :class="['dialog-footer', msgNew > 0 && dialogMsgList.length > 0 ? 'newmsg' : '']">
<div :class="['dialog-footer', msgNew > 0 && dialogMsgList.length > 0 ? 'newmsg' : '']" @click="onActive">
<div class="dialog-newmsg" @click="goNewBottom">{{$L('' + msgNew + '条新消息')}}</div>
<DragInput
ref="input"
@ -162,6 +162,8 @@ export default {
},
});
this.autoBottom = true;
this.$store.commit("dialogMoveToTop", this.dialogId);
this.onActive();
//
this.$store.dispatch("call", {
url: 'dialog/msg/sendtext',
@ -237,6 +239,9 @@ export default {
userid: this.userId,
msg: { },
});
this.autoBottom = true;
this.$store.commit("dialogMoveToTop", this.dialogId);
this.onActive();
break;
case 'error':
@ -260,6 +265,9 @@ export default {
this.autoBottom = false;
break;
}
if (res.scale === 1) {
this.autoBottom = true;
}
},
goBottom() {
@ -282,6 +290,10 @@ export default {
this.$emit("on-blur", e)
},
onActive() {
this.$emit("on-active");
},
formatTime(date) {
let time = Math.round(new Date(date).getTime() / 1000),
string = '';

View File

@ -59,8 +59,8 @@
</div>
</div>
<div class="messenger-msg" @click="scrollIntoActive">
<DialogWrapper v-if="dialogId > 0"/>
<div class="messenger-msg">
<DialogWrapper v-if="dialogId > 0" @on-active="scrollIntoActive"/>
<div v-else class="dialog-no">
<div class="dialog-no-icon"><Icon type="ios-chatbubbles" /></div>
<div class="dialog-no-text">{{$L('选择一个会话开始聊天')}}</div>

View File

@ -885,7 +885,7 @@ export default {
// 更新缓存
state.cacheDialogMsg[dialog_id] = {
dialog: data.dialog,
data: data.data.reverse(),
data: [],
};
state.method.setStorage("cacheDialogMsg", state.cacheDialogMsg);
// 更新当前会话消息
@ -958,9 +958,10 @@ export default {
/**
* 根据消息ID 删除 替换 会话数据
* @param state
* @param commit
* @param params {id, data}
*/
dialogMsgUpdate({state}, params) {
dialogMsgUpdate({state, commit}, params) {
let {id, data} = params;
if (!id) {
return;
@ -978,6 +979,7 @@ export default {
if (index > -1) {
if (data) {
state.dialogMsgList.splice(index, 1, state.method.cloneJSON(data));
commit("dialogMsgListStorageCurrent");
// 是最后一条消息时更新会话 last_msg
if (state.dialogMsgList.length - 1 == index) {
const dialog = state.dialogList.find(({id}) => id == data.dialog_id);
@ -1116,6 +1118,7 @@ export default {
} else {
state.dialogMsgList.splice(index, 1, data);
}
commit("dialogMsgListStorageCurrent");
}
if (mode === "add2") {
return;
@ -1133,12 +1136,7 @@ export default {
// 新增未读数
if (data.userid !== state.userId) dialog.unread++;
// 移动到首位
const index = state.dialogList.findIndex(({id}) => id == dialog_id);
if (index > -1) {
const tmp = state.method.cloneJSON(state.dialogList[index]);
state.dialogList.splice(index, 1);
state.dialogList.unshift(tmp);
}
commit("dialogMoveToTop", dialog_id);
}
// 新增任务消息数量
state.projectDetail.project_column.some(({project_task}) => {

View File

@ -187,7 +187,8 @@ export default {
} else {
state.dialogMsgList.splice(index, 1, item);
}
})
});
this.commit("dialogMsgListStorageCurrent");
}
// 页数数据
state.dialogMsgCurrentPage = data.current_page;
@ -195,4 +196,31 @@ export default {
// 更新会话数据
this.dispatch("saveDialog", dialog);
},
/**
* 保存当前会话消息
* @param state
*/
dialogMsgListStorageCurrent(state) {
if (!state.method.isJson(state.cacheDialogMsg[state.dialogId])) {
return;
}
//
state.cacheDialogMsg[state.dialogId].data = state.dialogMsgList;
state.method.setStorage("cacheDialogMsg", state.cacheDialogMsg);
},
/**
* 将会话移动到首位
* @param state
* @param dialog_id
*/
dialogMoveToTop(state, dialog_id) {
const index = state.dialogList.findIndex(({id}) => id == dialog_id);
if (index > -1) {
const tmp = state.method.cloneJSON(state.dialogList[index]);
state.dialogList.splice(index, 1);
state.dialogList.unshift(tmp);
}
}
}

View File

@ -490,6 +490,9 @@
margin-left: 8px;
background-color: #ffffff;
overflow: auto;
.logs-activity {
padding: 22px 0 0 10px;
}
}
}
}