diff --git a/src/controller/api.js b/src/controller/api.js index a4b004b..3edf042 100644 --- a/src/controller/api.js +++ b/src/controller/api.js @@ -140,4 +140,25 @@ module.exports = class extends Base { } } + // 新增留言 + async addAdviceAction() { + let advice = this.post(); + advice.userId = this.ctx.state.user.id; + try { + let res = await this.model("advices").add(advice); + this.json({ code: 0, data: res, msg: `留言 添加成功` }); + } catch (error) { + this.json({ code: 1, data: '', msg: error.toString() }); + } + } + + // 获取所有留言 + async getAdvicesAction() { + try { + let data = await this.model("advices").order("createdAt DESC").select(); + this.json({ code: 0, data }); + } catch (error) { + this.json({ code: 1, data: '', msg: error.toString() }); + } + } }; diff --git a/www/scripts/app-angular.js b/www/scripts/app-angular.js index 7652cad..ecb8b52 100644 --- a/www/scripts/app-angular.js +++ b/www/scripts/app-angular.js @@ -17,7 +17,7 @@ function get(url, params) { function post(url, params) { return new Promise((resolve, reject) => { - axios.post(url, params) + axios.post(url, params || {}) .then(res => { resolve(res); }) diff --git a/www/scripts/controllers/advice-controller.js b/www/scripts/controllers/advice-controller.js index 72d5b9c..e7335c0 100644 --- a/www/scripts/controllers/advice-controller.js +++ b/www/scripts/controllers/advice-controller.js @@ -4,16 +4,21 @@ app.controller('adviceCtr', ['$scope', '$state', '$timeout', 'bookmarkService', $window.location = "http://m.mybookmark.cn/#/tags"; return; } - var maxSelections = 3; $scope.comment = ''; $scope.advices = []; - $scope.category = ["功能", "BUG", "其他"]; $scope.user = {}; - get('own').then(user => $scope.user = user); + get('own').then(user => { + $scope.user = user; + pubSubService.publish('Common.menuActive', { + login: true, + index: dataService.LoginIndexAdvice + }); + }); + getAdvices(); - $scope.ok = function () { + $scope.ok = async function () { if ($scope.comment == '') { toastr.error('留言失败内容不能为空', "错误"); return; @@ -22,61 +27,21 @@ app.controller('adviceCtr', ['$scope', '$state', '$timeout', 'bookmarkService', toastr.error('test用户不允许留言!', "错误"); return; } - var advice = { - category: $('.ui.dropdown.js-categorys').dropdown('get value'), + + await post('addAdvice', { comment: $scope.comment, - }; - console.log(advice); - - bookmarkService.addAdvice(advice) - .then((data) => { - if (data.retCode == 0) { - toastr.success('留言成功', "提示"); - $scope.comment = ""; - getAdvices({}); - } else { - toastr.error('留言失败。错误信息:' + data.msg, "错误"); - } - }) - .catch((err) => { - toastr.error('留言失败:' + JSON.stringify(err), "错误"); - }); - } - - function getAdvices(params) { - bookmarkService.getAdvices(params) - .then((data) => { - if ($scope.advices.length == 0) { - transition(); - } - data.forEach(element => { - element.imgData = new Identicon(md5(element.username)).toString(); - }); - $scope.advices = data; - pubSubService.publish('Common.menuActive', { - login: true, - index: dataService.LoginIndexAdvice - }); - }) - .catch((err) => dataService.netErrorHandle(err, $state)); - } - - setTimeout(function () { - $('.ui.dropdown.js-categorys').dropdown({ - onChange: function (value, text, $choice) { } }); - getAdvices({}); - }, 100) + await getAdvices(); + } - $('.js-segment-advice').transition('hide'); - - function transition() { - var className = 'js-segment-advice'; - $('.' + className).transition('hide'); - $('.' + className).transition({ - animation: dataService.animation(), - duration: 500, + async function getAdvices() { + let data = await post("getAdvices"); + data.forEach(element => { + element.imgData = new Identicon(md5(element.username)).toString(); + }); + $scope.comment = ""; + $timeout(function () { + $scope.advices = data; }); } - }]); diff --git a/www/scripts/controllers/tags-controller.js b/www/scripts/controllers/tags-controller.js index 4a58add..8850f4f 100644 --- a/www/scripts/controllers/tags-controller.js +++ b/www/scripts/controllers/tags-controller.js @@ -9,20 +9,15 @@ app.controller('tagsCtr', ['$scope', '$filter', '$state', '$window', '$statePara await getTags(); })() - // getTags({}); var dialog = null; - var forbidTransition = false; var addBookmarkId = -1; $scope.hoverBookmark = null; $scope.showType = "createdAt"; - $scope.loadBookmarks = false; + $scope.loading = false; $scope.loadTags = false; $scope.tags = []; // 书签数据 $scope.tagsIndex = []; // 书签索引 - $scope.bookmarkClicked = false; - $scope.bookmarksByTag = []; $scope.bookmarks = []; - $scope.bookmarkCount = 0; $scope.totalPages = 0; $scope.currentPage = 1; $scope.inputPage = ''; @@ -32,21 +27,7 @@ app.controller('tagsCtr', ['$scope', '$filter', '$state', '$window', '$statePara $scope.newTag = ''; $scope.waitDelTag = {}; $scope.waitDelBookmark = {}; - $scope.bookmarkData = {}; $scope.bookmarkNormalHover = false; - $scope.costomTag = { - id: -1, - bookmarkCount: 50, - bookmarkClicked: false, - name: '个人定制', - } - $scope.costomAllUsersTag = { - id: -1, - bookmarkCount: 50, - bookmarkClicked: false, - name: '全站定制', - } - var timeagoInstance = timeago(); pubSubService.subscribe('MenuCtr.tags', $scope, function (event, data) { @@ -57,27 +38,17 @@ app.controller('tagsCtr', ['$scope', '$filter', '$state', '$window', '$statePara $scope.getBookmarks = async function (tagId, page, showType) { console.log(tagId, page, showType); - $scope.bookmarkClicked = true; - + $scope.bookmarks = []; tagId && ($scope.currentTagId = tagId); page && ($scope.currentPage = page); showType && ($scope.showType = showType); - - if (!forbidTransition) { - $scope.loadBookmarks = true; - } - - $scope.costomTag.bookmarkClicked = false; - $scope.costomAllUsersTag.bookmarkClicked = false; + $scope.loading = true; let pageSize = ($scope.showMode == 'item') ? 50 : 20; - $scope.tags.forEach(function (tag) { - tag.bookmarkClicked = false; - if (tag.id == $scope.currentTagId) { - tag.bookmarkClicked = true; - } - }); + for (let tag of $scope.tags) { + tag.bookmarkClicked = (tag.id == $scope.currentTagId); + } var params = { tagId: $scope.currentTagId, @@ -85,24 +56,23 @@ app.controller('tagsCtr', ['$scope', '$filter', '$state', '$window', '$statePara pageSize, showType: $scope.showType }; - if (!forbidTransition) { - $($scope.showMode == 'item' ? '.js-tag-costomTag' : '.js-tags-table').transition('hide'); - } let reply = await get('getBookmarksByTag', params); $scope.bookmarks = reply.data; $scope.totalPages = reply.totalPages; $scope.inputPage = ''; - $scope.loadBookmarks = false; - $scope.bookmarkCount = reply.count; + $scope.loading = false; + + for (let tag of $scope.tags) { + if (tag.id == $scope.currentTagId) { + tag.bookmarkCount = reply.count; + } + } pubSubService.publish('Common.menuActive', { login: true, index: dataService.LoginIndexTags }); - if (!forbidTransition) { - dataService.transition($scope.showMode == 'item' ? '.js-tag-costomTag' : '.js-tags-table'); - } $timeout(function () { dataService.transition('#' + addBookmarkId, { @@ -110,7 +80,6 @@ app.controller('tagsCtr', ['$scope', '$filter', '$state', '$window', '$statePara }); addBookmarkId = -1; }, 1000); - forbidTransition = false; }; $scope.changeCurrentPage = function (currentPage) { @@ -128,7 +97,7 @@ app.controller('tagsCtr', ['$scope', '$filter', '$state', '$window', '$statePara bookmarkService.clickBookmark({ id: id }); - $scope.bookmarkData.bookmarks.forEach(function (bookmark, index) { + $scope.bookmarks.forEach(function (bookmark, index) { if (bookmark.id == id) { bookmark.click_count += 1; bookmark.last_click = $filter("date")(new Date(), "yyyy-MM-dd HH:mm:ss"); @@ -485,7 +454,7 @@ app.controller('tagsCtr', ['$scope', '$filter', '$state', '$window', '$statePara var menusScope = $('div[ng-controller="menuCtr"]').scope(); if (menusScope.login && menusScope.selectLoginIndex == 1) { var find = false; - $scope.bookmarkData.bookmarks.forEach((bookmark) => { + $scope.bookmarks.forEach((bookmark) => { if (bookmark.id == data.id) { bookmark.title = data.title; bookmark.url = data.url; @@ -502,7 +471,6 @@ app.controller('tagsCtr', ['$scope', '$filter', '$state', '$window', '$statePara if (!find) { if (data.tags.map((tag) => tag.id).indexOf($scope.currentTagId) >= 0) { if (!$scope.editMode) { - forbidTransition = true; $scope.getBookmarks(null, null, null); } addBookmarkId = data.id; diff --git a/www/views/advice.html b/www/views/advice.html index 39ac000..d3a0ef6 100644 --- a/www/views/advice.html +++ b/www/views/advice.html @@ -1,46 +1,30 @@ -
+ | 标题 | @@ -103,7 +103,7 @@
|---|
最新100条留言
-