no message
This commit is contained in:
parent
e5be23d992
commit
e0e2318e2f
@ -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')
|
||||
|
@ -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')) {
|
||||
|
@ -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 = '';
|
||||
|
@ -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>
|
||||
|
14
resources/assets/js/store/actions.js
vendored
14
resources/assets/js/store/actions.js
vendored
@ -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}) => {
|
||||
|
30
resources/assets/js/store/mutations.js
vendored
30
resources/assets/js/store/mutations.js
vendored
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -490,6 +490,9 @@
|
||||
margin-left: 8px;
|
||||
background-color: #ffffff;
|
||||
overflow: auto;
|
||||
.logs-activity {
|
||||
padding: 22px 0 0 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user