diff --git a/database/db.js b/database/db.js index 7b7c01a..e2a6572 100644 --- a/database/db.js +++ b/database/db.js @@ -278,6 +278,34 @@ db.getTags = function(user_id) { }); }; +db.getAdvices = function(params) { + console.log('getAdvices'); + var sql = "SELECT mod(CEIL(RAND()*100), 5) as head_id, a.id, a.user_id, u.username, a.comment, a.category, DATE_FORMAT(a.created_at, '%Y-%m-%d %H:%i:%s') as created_at, a.state FROM `advices` as a LEFT OUTER JOIN users as u ON a.user_id = u.id ORDER BY a.created_at DESC LIMIT 0, 100"; + return new Promise(function(resolve, reject) { + client.query(sql, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); +}; + +db.addAdvice = function(params) { + console.log('addAdvice'); + var sql = "INSERT INTO `advices` (`user_id`, `comment`, `category`) VALUES ('"+ params.user_id +"', '"+ params.comment +"', '"+ params.category +"')"; + return new Promise(function(resolve, reject) { + client.query(sql, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result.affectedRows); + } + }); + }); +}; + db.getTagsByNames = function(user_id, tags_name) { console.log('getTagsByNames'); var sql = "SELECT * FROM `tags` WHERE `user_id` = '" + user_id + "' AND `name` in (" + tags_name.toString() + ")"; diff --git a/public/images/head0.jpg b/public/images/head0.jpg new file mode 100644 index 0000000..4c1e2b4 Binary files /dev/null and b/public/images/head0.jpg differ diff --git a/public/images/head1.jpg b/public/images/head1.jpg new file mode 100644 index 0000000..9b2adf9 Binary files /dev/null and b/public/images/head1.jpg differ diff --git a/public/images/head2.jpg b/public/images/head2.jpg new file mode 100644 index 0000000..96217de Binary files /dev/null and b/public/images/head2.jpg differ diff --git a/public/images/head3.jpg b/public/images/head3.jpg new file mode 100644 index 0000000..61955de Binary files /dev/null and b/public/images/head3.jpg differ diff --git a/public/images/head4.jpg b/public/images/head4.jpg new file mode 100644 index 0000000..375793f Binary files /dev/null and b/public/images/head4.jpg differ diff --git a/public/index.html b/public/index.html index fac6c29..294ef17 100644 --- a/public/index.html +++ b/public/index.html @@ -51,6 +51,7 @@ + diff --git a/public/scripts/app-angular.js b/public/scripts/app-angular.js index 368d09f..203c3e5 100644 --- a/public/scripts/app-angular.js +++ b/public/scripts/app-angular.js @@ -33,6 +33,7 @@ app.config(function($stateProvider, $urlRouterProvider, $httpProvider) { .state('advice', { url: '/advice', templateUrl: '/views/advice.html', + controller: 'adviceCtr' }) .state('settings', { url: '/settings', diff --git a/public/scripts/controllers/advice-controller.js b/public/scripts/controllers/advice-controller.js new file mode 100644 index 0000000..119c1a7 --- /dev/null +++ b/public/scripts/controllers/advice-controller.js @@ -0,0 +1,55 @@ +app.controller('adviceCtr', ['$scope', '$state', '$timeout', 'bookmarkService', 'pubSubService', function($scope, $state, $timeout, bookmarkService, pubSubService) { + console.log("Hello adviceCtr"); + var maxSelections = 3; + + $scope.comment = ''; + $scope.advices = []; + $scope.category = ["功能", "BUG", "其他"] + + $scope.ok = function() { + if($scope.comment == ''){ + toastr.error('留言失败内容不能为空', "错误"); + return; + } + var advice = { + category: $('.ui.dropdown.js-categorys').dropdown('get value'), + 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) => { + $scope.advices = data; + pubSubService.publish('Common.menuActive', { + login: true, + index: 2 + }); + }) + .catch((err) => console.log('getAdvices err', err)); + } + + setTimeout(function() { + $('.ui.dropdown.js-categorys').dropdown({ + onChange: function(value, text, $choice) { + } + }); + getAdvices({}); + }, 100) + +}]); diff --git a/public/scripts/controllers/menus-controller.js b/public/scripts/controllers/menus-controller.js index 5943a5d..8791165 100644 --- a/public/scripts/controllers/menus-controller.js +++ b/public/scripts/controllers/menus-controller.js @@ -19,6 +19,9 @@ app.controller('menuCtr', ['$scope', '$stateParams', '$state', 'pubSubService', }, { uiSref: 'tags', title: '书签分类' + }, { + uiSref: 'advice', + title: '留言' }, { uiSref: 'settings', title: '设置' diff --git a/public/scripts/controllers/settings-controller.js b/public/scripts/controllers/settings-controller.js index 3221315..976ae33 100644 --- a/public/scripts/controllers/settings-controller.js +++ b/public/scripts/controllers/settings-controller.js @@ -45,6 +45,6 @@ app.controller('settingsCtr', ['$scope', '$stateParams', '$filter', '$state', '$ pubSubService.publish('Common.menuActive', { login: true, - index: 2 + index: 3 }); }]); diff --git a/public/scripts/services/bookmark-service.js b/public/scripts/services/bookmark-service.js index d2b3ed6..0641efe 100644 --- a/public/scripts/services/bookmark-service.js +++ b/public/scripts/services/bookmark-service.js @@ -221,6 +221,32 @@ app.factory('bookmarkService', ['$http', '$q', function($http, $q) { }); return def.promise; }, + getAdvices: function getAdvices(params) { + var def = $q.defer(); + $http.get('/api/advices/', { + params: params + }) + .success(function(data) { + def.resolve(data); + }) + .error(function(data) { + def.reject('getAdvices error'); + }); + return def.promise; + }, + addAdvice: function(params) { + var def = $q.defer(); + $http.post('/api/addAdvice/', { + params: params + }) + .success(function(data) { + def.resolve(data); + }) + .error(function(data) { + def.reject('addAdvice error'); + }); + return def.promise; + }, }; return service; diff --git a/public/views/advice.html b/public/views/advice.html index 2453a0b..e5bb896 100644 --- a/public/views/advice.html +++ b/public/views/advice.html @@ -1 +1,45 @@ -
这是建议界面
+
最新100条留言
+