mirror of
https://github.com/kuaifan/dootask.git
synced 2026-01-13 01:28:11 +00:00
perf: 优化删除数据
This commit is contained in:
parent
e9b07dacce
commit
ac123387fd
@ -71,6 +71,7 @@ class DialogController extends AbstractController
|
||||
->join('web_socket_dialog_users as u', 'web_socket_dialogs.id', '=', 'u.dialog_id')
|
||||
->where('u.userid', $user->userid)
|
||||
->where('web_socket_dialogs.deleted_at', '>=', Carbon::parse(Request::input('deleted_at')))
|
||||
->orderByDesc('web_socket_dialogs.deleted_at')
|
||||
->take(100)
|
||||
->pluck('id');
|
||||
}
|
||||
|
||||
@ -58,6 +58,7 @@ class ProjectController extends AbstractController
|
||||
* - yes:取列表
|
||||
* @apiParam {Object} [keys] 搜索条件
|
||||
* - keys.name: 项目名称
|
||||
* @apiParam {String} [deleted_at] 读取在这个时间之后删除的项目ID,返回数据: deleted_data
|
||||
*
|
||||
* @apiParam {Number} [page] 当前页,默认:1
|
||||
* @apiParam {Number} [pagesize] 每页显示数量,默认:50,最大:100
|
||||
@ -148,6 +149,16 @@ class ProjectController extends AbstractController
|
||||
$data['total_all'] = $data['total'];
|
||||
}
|
||||
//
|
||||
if (Request::exists('deleted_at')) {
|
||||
$data['deleted_at'] = date("Y-m-d H:i:s");
|
||||
$data['deleted_data'] = Project::authData()
|
||||
->withTrashed()
|
||||
->where('projects.deleted_at', '>=', Carbon::parse(Request::input('deleted_at')))
|
||||
->orderByDesc('projects.deleted_at')
|
||||
->take(100)
|
||||
->pluck('id');
|
||||
}
|
||||
//
|
||||
return Base::retSuccess('success', $data);
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "DooTask",
|
||||
"version": "0.22.84",
|
||||
"version": "0.22.88",
|
||||
"description": "DooTask is task management system.",
|
||||
"scripts": {
|
||||
"start": "./cmd dev",
|
||||
|
||||
2
public/js/app.js
vendored
2
public/js/app.js
vendored
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
d59578a57c98b530
|
||||
04a971f05c6c7c8b
|
||||
|
||||
25
resources/assets/js/store/actions.js
vendored
25
resources/assets/js/store/actions.js
vendored
@ -35,6 +35,8 @@ export default {
|
||||
state.dialogInputCache = await $A.IDBArray("dialogInputCache")
|
||||
state.fileLists = await $A.IDBArray("fileLists")
|
||||
state.userInfo = await $A.IDBJson("userInfo")
|
||||
state.dialogDeletedAt = await $A.IDBString("dialogDeletedAt")
|
||||
state.projectDeletedAt = await $A.IDBString("projectDeletedAt")
|
||||
|
||||
// 会员信息
|
||||
if (state.userInfo.userid) {
|
||||
@ -831,12 +833,15 @@ export default {
|
||||
reject({msg: 'Parameter error'});
|
||||
return;
|
||||
}
|
||||
let request = data || {};
|
||||
const request = $A.isJson(data) ? data : {
|
||||
deleted_at: state.projectDeletedAt || $A.formatDate("Y-m-d H:i:s", $A.Time() - 86400 * 30)
|
||||
};
|
||||
let showLoad = true;
|
||||
if (typeof request.hideLoad !== "undefined") {
|
||||
showLoad = !request.hideLoad;
|
||||
delete request.hideLoad;
|
||||
}
|
||||
//
|
||||
showLoad && state.loadProjects++;
|
||||
dispatch("call", {
|
||||
url: 'project/lists',
|
||||
@ -844,6 +849,12 @@ export default {
|
||||
}).then(({data}) => {
|
||||
state.projectTotal = data.total_all;
|
||||
dispatch("saveProject", data.data);
|
||||
//
|
||||
data.deleted_at && $A.IDBSet("projectDeletedAt", data.deleted_at).then(_ => {
|
||||
state.projectDeletedAt = data.deleted_at
|
||||
data.deleted_data.some(id => dispatch("forgetProject", id))
|
||||
});
|
||||
//
|
||||
resolve(data)
|
||||
}).catch(e => {
|
||||
console.warn(e);
|
||||
@ -2098,7 +2109,9 @@ export default {
|
||||
reject({msg: 'Parameter error'});
|
||||
return;
|
||||
}
|
||||
data = $A.isJson(data) ? data : {}
|
||||
data = $A.isJson(data) ? data : {
|
||||
deleted_at: state.dialogDeletedAt || $A.formatDate("Y-m-d H:i:s", $A.Time() - 86400 * 30)
|
||||
}
|
||||
if (data.hideLoad !== true) {
|
||||
state.loadDialogs++;
|
||||
}
|
||||
@ -2117,9 +2130,7 @@ export default {
|
||||
data.at_after = tmpList[0].last_at;
|
||||
}
|
||||
}
|
||||
if (state.dialogDeletedAt || data.at_after) {
|
||||
data.deleted_at = state.dialogDeletedAt = state.dialogDeletedAt || data.at_after
|
||||
}
|
||||
//
|
||||
dispatch("call", {
|
||||
url: 'dialog/lists',
|
||||
data,
|
||||
@ -2127,10 +2138,10 @@ export default {
|
||||
const resData = result.data;
|
||||
dispatch("saveDialog", resData.data);
|
||||
//
|
||||
if (resData.deleted_at) {
|
||||
resData.deleted_at && $A.IDBSet("dialogDeletedAt", resData.deleted_at).then(_ => {
|
||||
state.dialogDeletedAt = resData.deleted_at
|
||||
resData.deleted_data.some(id => dispatch("forgetDialog", id))
|
||||
}
|
||||
});
|
||||
//
|
||||
if (resData.next_page_url && resData.current_page < 5) {
|
||||
data.page++
|
||||
|
||||
1
resources/assets/js/store/state.js
vendored
1
resources/assets/js/store/state.js
vendored
@ -91,6 +91,7 @@ export default {
|
||||
projectId: 0,
|
||||
projectTotal: 0,
|
||||
projectLoad: 0,
|
||||
projectDeletedAt: null,
|
||||
taskId: 0,
|
||||
taskCompleteTemps: [],
|
||||
taskContents: [],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user