修复表格显示不正常的问题

This commit is contained in:
luchenqun 2017-03-20 12:45:46 +08:00
parent cbcc4f7e23
commit 727b246ba8
3 changed files with 108 additions and 118 deletions

View File

@ -52,15 +52,15 @@ Date.prototype.format = function(fmt) { //author: meizz
// update delete 返回影响的行数
var db = {
}
// var sql = "SELECT * FROM `users` WHERE `username` = 'luchenqun1'";
// client.query(sql, (err, result) => {
// if (err) {
// console.log(err);
// } else {
// console.log(result);
// }
// });
}
// var sql = "SELECT * FROM `users` WHERE `username` = 'luchenqun1'";
// client.query(sql, (err, result) => {
// if (err) {
// console.log(err);
// } else {
// console.log(result);
// }
// });
db.addBookmark = function(user_id, bookmark) {
var insertSql = "INSERT INTO `bookmarks` (`user_id`, `title`, `description`, `url`, `public`, `click_count`) VALUES ('" + user_id + "', '" + bookmark.title + "', " + client.escape(bookmark.description) + ", '" + bookmark.url + "', '" + bookmark.public + "', '1')";
@ -513,13 +513,13 @@ db.getBookmarksNavigate = function(tags) {
// var sql = "SELECT t.id as tag_id, t.name as tag_name, b.* FROM `tags` as t LEFT OUTER JOIN tags_bookmarks as tb ON t.id = tb.tag_id LEFT OUTER JOIN bookmarks as b ON tb.bookmark_id = b.id WHERE t.user_id='" + user_id + "' ORDER BY t.id ASC, b.click_count DESC";
var sql = "";
tags.forEach((tag, index) => {
var t = 't' + tag.id;
if (index >= 1) {
sql += " UNION "
}
sql += "(SELECT * FROM ((SELECT t.id AS tag_id, t.`name` as tag_name, t.sort, b.* FROM `tags` as t, `bookmarks`as b, `tags_bookmarks` as tb WHERE t.id = tb.tag_id AND b.id = tb.bookmark_id AND t.id = " + tag.id + " ORDER BY b.click_count DESC LIMIT 0, 16) UNION (SELECT t.id AS tag_id, t.`name` as tag_name, t.sort, b.* FROM `tags` as t, `bookmarks`as b, `tags_bookmarks` as tb WHERE t.id = tb.tag_id AND b.id = tb.bookmark_id AND t.id = " + tag.id + " ORDER BY b.created_at DESC LIMIT 0, 16)) as " + t + " ORDER BY " + t + ".click_count DESC, " + t + ".created_at DESC)";
})
// console.log('getBookmarksNavigate ', sql);
var t = 't' + tag.id;
if (index >= 1) {
sql += " UNION "
}
sql += "(SELECT * FROM ((SELECT t.id AS tag_id, t.`name` as tag_name, t.sort, b.* FROM `tags` as t, `bookmarks`as b, `tags_bookmarks` as tb WHERE t.id = tb.tag_id AND b.id = tb.bookmark_id AND t.id = " + tag.id + " ORDER BY b.click_count DESC LIMIT 0, 16) UNION (SELECT t.id AS tag_id, t.`name` as tag_name, t.sort, b.* FROM `tags` as t, `bookmarks`as b, `tags_bookmarks` as tb WHERE t.id = tb.tag_id AND b.id = tb.bookmark_id AND t.id = " + tag.id + " ORDER BY b.created_at DESC LIMIT 0, 16)) as " + t + " ORDER BY " + t + ".click_count DESC, " + t + ".created_at DESC)";
})
// console.log('getBookmarksNavigate ', sql);
return new Promise(function(resolve, reject) {
client.query(sql, (err, result) => {
@ -564,67 +564,49 @@ db.getBookmarksTable = function(params) {
if (err) {
reject(err);
} else {
var temp = [];
var bookmarks = [];
var begin = (params.currentPage - 1) * params.perPageItems;
var end = params.currentPage * params.perPageItems;
result.sort((a, b) => {
var click1 = parseInt(a.click_count);
var click2 = parseInt(b.click_count);
if (click1 > click2) {
return -1;
} else if (click1 == click2) {
return a.created_at >= b.created_at ? -1 : 1;
} else {
return 1;
}
})
temp = result.slice(begin, end);
temp.forEach((b1) => {
var find = false;
bookmarks.forEach((b2) => {
if (b1.id == b2.id) {
find = true;
var click1 = parseInt(a.click_count);
var click2 = parseInt(b.click_count);
if (click1 > click2) {
return -1;
} else if (click1 == click2) {
return a.created_at >= b.created_at ? -1 : 1;
} else {
return 1;
}
})
if (!find) {
bookmarks.push(b1);
}
})
.slice(begin, end)
.forEach((b) => {
var bookmark = JSON.parse(JSON.stringify(b));// 执行深度复制
bookmark.type = 1;
bookmarks.push(bookmark);
})
result.sort((a, b) => a.created_at >= b.created_at ? -1 : 1);
temp = result.slice(begin, end);
temp.forEach((b1) => {
var find = false;
bookmarks.forEach((b2) => {
if (b1.id == b2.id) {
find = true;
}
result.sort((a, b) => a.created_at >= b.created_at ? -1 : 1)
.slice(begin, end)
.forEach((b) => {
var bookmark = JSON.parse(JSON.stringify(b));// 执行深度复制
bookmark.type = 2;
bookmarks.push(bookmark);
})
if (!find) {
bookmarks.push(b1);
}
})
result.sort((a, b) => a.last_click >= b.last_click ? -1 : 1);
temp = result.slice(begin, end);
temp.forEach((b1) => {
var find = false;
bookmarks.forEach((b2) => {
if (b1.id == b2.id) {
find = true;
}
result.sort((a, b) => a.last_click >= b.last_click ? -1 : 1)
.slice(begin, end)
.forEach((b) => {
var bookmark = JSON.parse(JSON.stringify(b));// 执行深度复制
bookmark.type = 3;
bookmarks.push(bookmark);
})
if (!find) {
bookmarks.push(b1);
}
})
var bookmarksData = {
totalItems: result.length,
bookmarks: bookmarks,
}
resolve(bookmarksData);
}
});
@ -643,67 +625,49 @@ db.getBookmarksByTag = function(params) {
if (err) {
reject(err);
} else {
var temp = [];
var bookmarks = [];
var begin = (params.currentPage - 1) * params.perPageItems;
var end = params.currentPage * params.perPageItems;
result.sort((a, b) => {
var click1 = parseInt(a.click_count);
var click2 = parseInt(b.click_count);
if (click1 > click2) {
return -1;
} else if (click1 == click2) {
return a.created_at >= b.created_at ? -1 : 1;
} else {
return 1;
}
})
temp = result.slice(begin, end);
temp.forEach((b1) => {
var find = false;
bookmarks.forEach((b2) => {
if (b1.id == b2.id) {
find = true;
var click1 = parseInt(a.click_count);
var click2 = parseInt(b.click_count);
if (click1 > click2) {
return -1;
} else if (click1 == click2) {
return a.created_at >= b.created_at ? -1 : 1;
} else {
return 1;
}
})
if (!find) {
bookmarks.push(b1);
}
})
.slice(begin, end)
.forEach((b) => {
var bookmark = JSON.parse(JSON.stringify(b));// 执行深度复制
bookmark.type = 1;
bookmarks.push(bookmark);
})
result.sort((a, b) => a.created_at >= b.created_at ? -1 : 1);
temp = result.slice(begin, end);
temp.forEach((b1) => {
var find = false;
bookmarks.forEach((b2) => {
if (b1.id == b2.id) {
find = true;
}
result.sort((a, b) => a.created_at >= b.created_at ? -1 : 1)
.slice(begin, end)
.forEach((b) => {
var bookmark = JSON.parse(JSON.stringify(b));// 执行深度复制
bookmark.type = 2;
bookmarks.push(bookmark);
})
if (!find) {
bookmarks.push(b1);
}
})
result.sort((a, b) => a.last_click >= b.last_click ? -1 : 1);
temp = result.slice(begin, end);
temp.forEach((b1) => {
var find = false;
bookmarks.forEach((b2) => {
if (b1.id == b2.id) {
find = true;
}
result.sort((a, b) => a.last_click >= b.last_click ? -1 : 1)
.slice(begin, end)
.forEach((b) => {
var bookmark = JSON.parse(JSON.stringify(b));// 执行深度复制
bookmark.type = 3;
bookmarks.push(bookmark);
})
if (!find) {
bookmarks.push(b1);
}
})
var bookmarksData = {
totalItems: result.length,
bookmarks: bookmarks,
}
resolve(bookmarksData);
}
});

View File

@ -181,17 +181,28 @@ app.controller('bookmarksCtr', ['$scope', '$state', '$stateParams', '$filter', '
}
$scope.order = $scope.order.map(() => false);
$scope.order[index] = true;
var begin = ($scope.currentPage - 1) * perPageItems;
var end = $scope.currentPage * perPageItems;
$scope.bookmarks = [];
if ($scope.order[0]) {
$scope.bookmarkData.bookmarks.sort(clickCmp)
$scope.bookmarks = $scope.bookmarkData.bookmarks.slice(begin, end);
$scope.bookmarkData.bookmarks.forEach((bookmark) => {
if (bookmark.type == 1) {
$scope.bookmarks.push(bookmark);
}
})
} else if ($scope.order[1]) {
$scope.bookmarkData.bookmarks.sort((a, b) => a.created_at >= b.created_at ? -1 : 1);
$scope.bookmarks = $scope.bookmarkData.bookmarks.slice(begin, end);
$scope.bookmarkData.bookmarks.forEach((bookmark) => {
if (bookmark.type == 2) {
$scope.bookmarks.push(bookmark);
}
})
} else {
$scope.bookmarkData.bookmarks.sort((a, b) => a.last_click >= b.last_click ? -1 : 1);
$scope.bookmarks = $scope.bookmarkData.bookmarks.slice(begin, end);
$scope.bookmarkData.bookmarks.forEach((bookmark) => {
if (bookmark.type == 3) {
$scope.bookmarks.push(bookmark);
}
})
}
$timeout(function() {
@ -258,7 +269,11 @@ app.controller('bookmarksCtr', ['$scope', '$state', '$stateParams', '$filter', '
toastr.info('您还没有书签,请点击菜单栏的添加按钮进行添加', "提示");
}
if (params.showStyle == 'card') {
data.bookmarksCreatedAt.forEach(bookmark => {
$scope.bookmarkData.bookmarks.sort((a, b) => a.created_at >= b.created_at ? -1 : 1);
var begin = ($scope.currentPage - 1) * perPageItems;
var end = $scope.currentPage * perPageItems;
var bookmarks = $scope.bookmarkData.bookmarks.slice(begin, end);
bookmarks.forEach(bookmark => {
bookmark.edit = false;
$scope.bookmarks.push(bookmark);
})

View File

@ -35,18 +35,29 @@ app.controller('tagsCtr', ['$scope', '$filter', '$window', '$stateParams', '$tim
}
$scope.order = $scope.order.map(() => false);
$scope.order[index] = true;
var begin = ($scope.currentPage - 1) * perPageItems;
var end = $scope.currentPage * perPageItems;
$scope.bookmarks = [];
if ($scope.order[0]) {
$scope.bookmarkData.bookmarks.sort(clickCmp)
$scope.bookmarks = $scope.bookmarkData.bookmarks.slice(begin, end);;
$scope.bookmarkData.bookmarks.sort(clickCmp);
$scope.bookmarkData.bookmarks.forEach((bookmark) => {
if (bookmark.type == 1) {
$scope.bookmarks.push(bookmark);
}
})
} else if ($scope.order[1]) {
$scope.bookmarkData.bookmarks.sort((a, b) => a.created_at >= b.created_at ? -1 : 1);
$scope.bookmarks = $scope.bookmarkData.bookmarks.slice(begin, end);;
$scope.bookmarkData.bookmarks.forEach((bookmark) => {
if (bookmark.type == 2) {
$scope.bookmarks.push(bookmark);
}
})
} else {
$scope.bookmarkData.bookmarks.sort((a, b) => a.last_click >= b.last_click ? -1 : 1);
$scope.bookmarks = $scope.bookmarkData.bookmarks.slice(begin, end);;
$scope.bookmarkData.bookmarks.forEach((bookmark) => {
if (bookmark.type == 3) {
$scope.bookmarks.push(bookmark);
}
})
}
$timeout(function() {
timeagoInstance.cancel();