no message

This commit is contained in:
kuaifan 2021-06-10 22:08:50 +08:00
parent 01fd0907e9
commit 13ecc6b3f3
5 changed files with 57 additions and 44 deletions

View File

@ -70,19 +70,13 @@ class ProjectController extends AbstractController
// //
$project_id = intval(Request::input('project_id')); $project_id = intval(Request::input('project_id'));
// //
$project = Project::with(['projectColumn' => function($query) { $project = Project::select($this->projectSelect)
$query->with(['projectTask' => function($taskQuery) {
$taskQuery->with(['taskUser', 'taskTag'])->where('parent_id', 0);
}]);
}, 'projectUser'])
->select($this->projectSelect)
->join('project_users', 'projects.id', '=', 'project_users.project_id') ->join('project_users', 'projects.id', '=', 'project_users.project_id')
->where('projects.id', $project_id) ->where('projects.id', $project_id)
->where('project_users.userid', $user->userid) ->where('project_users.userid', $user->userid)
->first(); ->first();
if ($project) { if (empty($project)) {
$owner_user = $project->projectUser->where('owner', 1)->first(); return Base::retError('项目不存在或不在成员列表内');
$project->owner_userid = $owner_user ? $owner_user->userid : 0;
} }
// //
return Base::retSuccess('success', $project); return Base::retSuccess('success', $project);
@ -114,10 +108,11 @@ class ProjectController extends AbstractController
->where('projects.id', $project_id) ->where('projects.id', $project_id)
->where('project_users.userid', $user->userid) ->where('project_users.userid', $user->userid)
->first(); ->first();
if ($project) { if (empty($project)) {
$owner_user = $project->projectUser->where('owner', 1)->first(); return Base::retError('项目不存在或不在成员列表内');
$project->owner_userid = $owner_user ? $owner_user->userid : 0;
} }
$owner_user = $project->projectUser->where('owner', 1)->first();
$project->owner_userid = $owner_user ? $owner_user->userid : 0;
// //
return Base::retSuccess('success', $project); return Base::retSuccess('success', $project);
} }

View File

@ -89,6 +89,9 @@ export default {
typeof afterCallback === "function" && afterCallback(); typeof afterCallback === "function" && afterCallback();
return; return;
} }
if (state.method.isArray(state.cacheProjectList)) {
state.projectList = state.cacheProjectList;
}
$A.apiAjax({ $A.apiAjax({
url: 'project/lists', url: 'project/lists',
after: () => { after: () => {
@ -97,6 +100,7 @@ export default {
success: ({ret, data, msg}) => { success: ({ret, data, msg}) => {
if (ret === 1) { if (ret === 1) {
state.projectList = data.data; state.projectList = data.data;
state.method.setStorage("cacheProjectList", state.projectList);
} else { } else {
$A.modalError(msg); $A.modalError(msg);
} }
@ -120,15 +124,29 @@ export default {
}, },
success: ({ret, data, msg}) => { success: ({ret, data, msg}) => {
if (ret === 1) { if (ret === 1) {
let index = state.projectList.findIndex(({id}) => id === data.id); this.commit('storageProjectOne', data);
if (index > -1) {
state.projectList.splice(index, 1, data);
}
} }
} }
}); });
}, },
/**
* 保存项目信息
* @param state
* @param project
*/
storageProjectOne(state, project) {
if (typeof project.project_column !== "undefined") delete project.project_column;
if (typeof project.project_user !== "undefined") delete project.project_user;
let index = state.projectList.findIndex(({id}) => id === project.id);
if (index > -1) {
state.projectList.splice(index, 1, project);
state.method.setStorage("cacheProjectList", state.projectList);
} else {
state.projectList.push(project);
}
},
/** /**
* 获取项目详情 * 获取项目详情
* @param state * @param state
@ -138,15 +156,15 @@ export default {
if (state.method.runNum(project_id) === 0) { if (state.method.runNum(project_id) === 0) {
return; return;
} }
if (state.method.isJson(state.cacheProject[project_id])) { if (state.method.isJson(state.cacheProjectDetail[project_id])) {
state.projectDetail = state.cacheProject[project_id]; state.projectDetail = state.cacheProjectDetail[project_id];
} }
state.projectDetail.id = project_id; state.projectDetail.id = project_id;
// //
if (state.cacheProject[project_id + "::load"]) { if (state.cacheProjectDetail[project_id + "::load"]) {
return; return;
} }
state.cacheProject[project_id + "::load"] = true; state.cacheProjectDetail[project_id + "::load"] = true;
// //
state.projectLoad++; state.projectLoad++;
$A.apiAjax({ $A.apiAjax({
@ -156,23 +174,16 @@ export default {
}, },
complete: () => { complete: () => {
state.projectLoad--; state.projectLoad--;
state.cacheProject[project_id + "::load"] = false; state.cacheProjectDetail[project_id + "::load"] = false;
}, },
success: ({ret, data, msg}) => { success: ({ret, data, msg}) => {
if (ret === 1) { if (ret === 1) {
state.cacheProject[data.id] = data; state.cacheProjectDetail[data.id] = data;
if (state.projectDetail.id === data.id) { if (state.projectDetail.id === data.id) {
state.projectDetail = data; state.projectDetail = data;
} }
state.method.setStorage("cacheProject", state.cacheProject); state.method.setStorage("cacheProjectDetail", state.cacheProjectDetail);
// this.commit('storageProjectOne', $A.cloneJSON(data));
let index = state.projectList.findIndex(({id}) => id === data.id);
if (index > -1) {
const project = $A.cloneJSON(data);
delete project.project_column;
delete project.project_user;
state.projectList.splice(index, 1, project);
}
} else { } else {
$A.modalError(msg); $A.modalError(msg);
} }

View File

@ -148,7 +148,7 @@ const method = {
// 方法类 // 方法类
const state = { method }; const state = { method };
// Boolean变量 // 变量缓存
[ [
'projectChatShow', // 项目聊天显示 'projectChatShow', // 项目聊天显示
'projectListPanel', // 项目面板显示类型 'projectListPanel', // 项目面板显示类型
@ -159,6 +159,12 @@ const state = { method };
state[key] = state.method.getStorageBoolean('boolean:' + key, true) state[key] = state.method.getStorageBoolean('boolean:' + key, true)
}) })
// 数据缓存
state.cacheUserBasic = state.method.getStorageJson("cacheUserBasic");
state.cacheDialogMsg = state.method.getStorageJson("cacheDialogMsg");
state.cacheProjectList = state.method.getStorageArray("cacheProjectList");
state.cacheProjectDetail = state.method.getStorageJson("cacheProjectDetail");
// 会员信息 // 会员信息
state.userInfo = state.method.getStorageJson('userInfo'); state.userInfo = state.method.getStorageJson('userInfo');
state.userId = state.userInfo.userid = state.method.runNum(state.userInfo.userid); state.userId = state.userInfo.userid = state.method.runNum(state.userInfo.userid);
@ -177,13 +183,8 @@ state.wsReadWaitList = [];
// 项目信息 // 项目信息
state.projectLoad = 0; state.projectLoad = 0;
state.projectList = []; state.projectList = state.cacheProjectList;
state.projectDetail = { state.projectDetail = {id: 0, dialog_id: 0, project_column: [], project_user: []};
id: 0,
dialog_id: 0,
project_column: [],
project_user: []
};
// 会话消息 // 会话消息
state.dialogId = 0; state.dialogId = 0;
@ -196,9 +197,4 @@ state.dialogMsgUnread = 0;
// 任务优先级 // 任务优先级
state.taskPriority = []; state.taskPriority = [];
// 其他
state.cacheProject = state.method.getStorageJson("cacheProject");
state.cacheUserBasic = state.method.getStorageJson("cacheUserBasic");
state.cacheDialogMsg = state.method.getStorageJson("cacheDialogMsg");
export default state export default state

View File

@ -226,6 +226,16 @@ body {
} }
} }
} }
.ivu-progress {
display: flex;
align-items: center;
&.ivu-progress-show-info {
.ivu-progress-outer {
margin: 0;
padding: 0;
}
}
}
} }
.modal-info-show { .modal-info-show {

View File

@ -158,6 +158,7 @@
display: none; display: none;
margin: 16px 4px; margin: 16px 4px;
padding: 0 8px 0 26px; padding: 0 8px 0 26px;
cursor: default;
> p { > p {
display: flex; display: flex;
align-items: center; align-items: center;