app.controller('knowledgeManagerCtrl', ["$rootScope", "$scope", "$http", "i18nService", "$state", "$timeout", "$interval", "SweetAlert", "$window", "$modal", "FileUploader", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_user_data", "api_solution", "api_bpm_domain", "$stateParams","api_zsk","api_configure_data", function($rootScope, $scope, $http, i18nService, $state, $timeout, $interval, SweetAlert, $window, $modal, FileUploader, uiGridConstants, uiGridGroupingConstants, Restangular, api_user_data, api_solution, api_bpm_domain, $stateParams,api_zsk,api_configure_data) { $scope.langs = i18nService.getAllLangs(); $scope.lang = 'zh-cn'; i18nService.setCurrentLang($scope.lang); var loginUser = $rootScope.user; $scope.gridOptions = {}; $scope.gridOptions.data = 'myData'; $scope.gridOptions.enableColumnResizing = true; $scope.gridOptions.enableFiltering = false; $scope.gridOptions.enableGridMenu = false; $scope.gridOptions.enableRowSelection = true; $scope.gridOptions.showGridFooter = true; $scope.gridOptions.showColumnFooter = true; $scope.gridOptions.fastWatch = true; $scope.gridOptions.useExternalPagination = true; // $scope.gridOptions.paginationPageSizes = [10, 20, 50, 100]; $scope.gridOptions.paginationPageSizes = [10]; $scope.gridOptions.paginationPageSize = 10; $scope.gridOptions.multiSelect = false; $scope.gridOptions.rowIdentity = function(row) { return row.id; }; $scope.gridOptions.getRowIdentity = function(row) { return row.id; }; var mun = $scope.gridOptions.paginationPageSize; $scope.transferTime = function(time) { return moment(time).format('YYYY-MM-DD '); } //jry数据传递 $scope.jry_knowipt=""; if($scope.fenye==undefined){ $scope.fenye=0; } // console.log($scope.jry_knowipt); $scope.jry_todata={ "idx":$scope.fenye, "sum":10, "solution":{ "keywords":"", "solutionType":{"id":''}, "status":{"id":""} } } // $scope.$watch("jry_knowipt",function(val){ // // console.log(val) // $scope.jry_todata={ // "idx":$scope.fenye, // "sum":10, // "solution":{ // "keywords":val // } // } // }) $scope.transferStatus = function(status) { var statusLabel = "不合法的状态"; if (status.value == 1) { statusLabel = "待审核"; } else if (status.value == 2) { statusLabel = "已发布"; } else if (status.value == 3) { statusLabel = "已驳回"; } else if (status.value == 4) { statusLabel = "已停用"; } else if (status.value == 5) { statusLabel = "已驳回"; } else if (status.value == 6) { statusLabel = "已拒绝"; } return statusLabel; } $scope.gridOptions.rowTemplate = "
"; $scope.gridOptions.columnDefs = [{ name: 'item', displayName: '序号', width: 50 }, { name: 'solutionnumber', displayName: '编号', width: '10%' }, { name: 'solutionType.typeName', displayName: '类别', width: '8%' }, { name: 'title', displayName: '标题', width: '10%' }, { name: 'visionNumber', displayName: '版本号', width: '10%' }, { name: 'keywords', displayName: '关键字', width: '10%' }, { name: 'status', displayName: '状态', cellTemplate: '
{{grid.appScope.transferStatus(row.entity.status)}}
', width: '8%' }, { name: 'createUser.name', displayName: '创建人', width: '8%' }, { name: 'createtime', cellTemplate: '
{{grid.appScope.transferTime(row.entity.createtime)}}
', displayName: '创建日期', width: '12%' }, { name: '操作', width: 345, cellTemplate: '' }, ]; $scope.gridOptions.onRegisterApi = function(gridApi) { $scope.gridApi = gridApi; gridApi.pagination.on.paginationChanged($scope, function(newPage, pageSize) { var filtersData = $scope.allfilterData; // console.log(filtersData); console.log(newPage); $scope.fenye=newPage-1; $scope.jry_todata.idx=newPage-1; // $scope.jry_todata={ // "idx":$scope.fenye, // "sum":10 // } console.log($scope.fenye); filtersData.pageIndex = newPage - 1; var data = { pageIndex: newPage - 1 }; var dataFilter = angular.extend(data, filtersData); dataFilter.status = filtersData.status; // $scope.refreshListData('expand-right', dataFilter); // if (JSON.parse(sessionStorage.getItem("searchKnowledge")).pageIndex != dataFilter.pageIndex) { // $scope.refreshListData('expand-right', dataFilter); // } // $scope.refreshListData('expand-right', $scope.jry_todata); api_zsk.jry_get_list($scope.jry_todata,"solution").then(function(data) { var myData = Restangular.stripRestangular(data); // console.log("myData="+JSON.stringify(myData)); $scope.gridOptions.totalItems = myData.totalNum; if (myData.error && myData.status == 200) { $scope.myData = []; } else { if (angular.isArray(myData.list)) { $scope.myData = myData.list; for (var i = 0; i < $scope.myData.length; i++) { $scope.myData[i]['item'] = i + 1 + $scope.jry_todata.idx * $scope.jry_todata.sum } } else { SweetAlert.swal({ title: "数据为空", text: myData.list, type: "warning" }); } } // $scope.ldloading[style.replace('-', '_')] = false; } // , function() { // $scope.ldloading[style.replace('-', '_')] = false; // } ); }); }; var fildate = { key: 'null', status: 0, pageIndex: 0, pageSum: mun, //treeIds:'[]', userId: loginUser.id } $scope.knowledge = {}; $scope.inspecttype = {}; $scope.my_datalist = {}; $scope.searchstate = 0; $scope.selectedItems = []; // $scope.knowledge.type = { id: 1, label: "应用系统" } $scope.my_data = []; this.selectRowFunction = function(data) {}; $scope.my_tree = tree = {}; $scope.try_async_load = function() { $scope.my_data = []; $scope.doing_async = true; // api_user_data.fetchDataList('group', { "idx": 0, "sum": 1000 }).then(function(response) { // var myData = Restangular.stripRestangular(response); // var list = myData.list; // var objects = []; // for (var i = 0; i < list.length; i++) { // var object = {}; // object.id = list[i].id; // if (list[i].parent == 0) { // object.parent = "#"; // } else { // object.parent = list[i].parent; // } // object.text = list[i].groupName; // object.typeName = "group"; // object.state = { // "opened": true // }; // objects.push(object); // } // $scope.groups = objects; // }); // api_solution.findSolutionTypeActions(loginUser.id).then(function(response) { //JRY api_zsk.jry_get_list({"idx":0,"sum":1000},"solutionType").then(function(response) { if (response.status == 200) { var data = response.list; // console.log('data='+JSON.stringify(data)); var objects = []; for (var i = 0; i < data.length; i++) { var object = {}; object.id = data[i].id; if (data[i].pid != 0) { object.parent = data[i].pid; } // if (object.parent == 0) { // object.parent = "#"; // } object.label = data[i].typeName; object.actions = data[i].actions; //权限部分 object.group = "1"; object.user = "2"; object.state = { "opened": true }; object.typeName = "type"; // if() // if (object.actions.indexOf("2") >= 0) { //知识库类型 具有增加权限--系统管理员 // $scope.showAddSolutionType = true; // } // if (object.actions.indexOf("5") >= 0) { //知识库类型 具有授权权限--系统管理员 // $scope.showReviewKnowledgeType = true; // } objects.push(object); } $scope.my_data = convertParentToChildList(objects); if (JSON.parse(sessionStorage.getItem("searchKnowledge")) && JSON.parse(sessionStorage.getItem("searchKnowledge")).treeIds) { angular.forEach($scope.my_data, function(item) { if (item.id == JSON.parse(sessionStorage.getItem("searchKnowledge")).treeIds) { $scope.knowledge.type = item } }) } // if (JSON.parse(sessionStorage.getItem("searchKnowledgetype")) && JSON.parse(sessionStorage.getItem("searchKnowledgetype")).type) { // angular.forEach($scope.my_data, function(item, index) { // if (JSON.parse(sessionStorage.getItem("searchKnowledgetype")).type.id == item.id) { // $scope.my_data[index].selected = true; // } // }) // } $scope.my_datalist = angular.copy($scope.my_data); $scope.tree_data = angular.copy($scope.my_data); if ($scope.my_data.length > 0) { $scope.doing_async = false; } } else { SweetAlert.swal({ title: "系统错误!", text: "请刷新重试!", type: "error" }); } }); $scope.showAddSolutionType = false; //添加知识类型 按钮 $scope.showReviewKnowledgeType = false; //审核知识类型 按钮 }; $scope.try_async_load(); $scope.ldloading = {}; // console.log($scope.fenye); $scope.refreshListData = function(style, filterData) { $scope.ldloading[style.replace('-', '_')] = true; api_zsk.jry_get_list(filterData,"solution").then(function(data) { var myData = Restangular.stripRestangular(data); // console.log("myData="+JSON.stringify(myData)); $scope.gridOptions.totalItems = myData.totalNum; if (myData.error && myData.status == 200) { $scope.myData = []; } else { if (angular.isArray(myData.list)) { $scope.myData = myData.list; for (var i = 0; i < $scope.myData.length; i++) { $scope.myData[i]['item'] = i + 1 + $scope.jry_todata.idx * $scope.jry_todata.sum } } else { // SweetAlert.swal({ // title: "数据为空", // text: myData.list, // type: "warning" // }); } } $scope.ldloading[style.replace('-', '_')] = false; }, function() { $scope.ldloading[style.replace('-', '_')] = false; }); } //导入 $scope.importopen = function() { //导入触发事件 var modalInstance = $modal.open({ templateUrl: 'assets/views/import.html', controller: function($scope, $modalInstance, FileUploader) { var importUploader = $scope.importUploader = new FileUploader({ url: api_solution.upload().getRequestedUrl(), }); importUploader.onWhenAddingFileFailed = function(item /*{File|FileLikeObject}*/ , filter, options) { console.info('onWhenAddingFileFailed', item, filter, options); }; importUploader.onAfterAddingFile = function(fileItem) { console.info('onAfterAddingFile', fileItem); }; importUploader.onAfterAddingAll = function(addedFileItems) { console.info('onAfterAddingAll', addedFileItems); }; importUploader.onProgressItem = function(fileItem, progress) { console.info('onProgressItem', fileItem, progress); }; importUploader.onProgressAll = function(progress) { console.info('onProgressAll', progress); }; importUploader.onSuccessItem = function(fileItem, response, status, headers) { if (response.status == 200) { SweetAlert.swal({ title: "导入成功!", confirmButtonColor: "#007AFF", type: "success" }, function() { // $scope.ldloading.contract_overlay = false; $rootScope.isMask = false; $scope.refreshListData('expand-right', $scope.jry_todata); }); } else { // $scope.ldloading.contract_overlay = false; $rootScope.isMask = false; SweetAlert.swal({ title: "导入失败!", text: response.error, type: "error" }) } console.info('onSuccessItem', fileItem, response, status, headers); }; importUploader.onErrorItem = function(fileItem, response, status, headers) { console.info('onErrorItem', fileItem, response, status, headers); SweetAlert.swal({ title: "系统错误!", text: "系统错误,请稍候重试!", type: "error" }); }; importUploader.onCancelItem = function(fileItem, response, status, headers) { console.info('onCancelItem', fileItem, response, status, headers); }; importUploader.onCompleteItem = function(fileItem, response, status, headers) { console.info('onCompleteItem', fileItem, response, status, headers); }; importUploader.onCompleteAll = function() { console.info('onCompleteAll'); }; $scope.ldloading = {}; $rootScope.isMask = false; $scope.import = function(style) { // $scope.ldloading[style.replace('-', '_')] = true; $modalInstance.dismiss('cancel'); $rootScope.isMask = true; importUploader.onBeforeUploadItem = function(item) { angular.extend(item.headers, $rootScope.getSession()); item.formData.push({ 'fileName': item.file.name }); item.formData.push({ 'type': "dataImport" }); console.info('onBeforeUploadItem', item); }; importUploader.uploadAll(); } $scope.cancel = function() { $modalInstance.dismiss('cancel'); }; }, size: 'sm', resolve: { importUploader: function() { return $scope.importUploader; } } }); modalInstance.result.then(function(selectedItem) { if (selectedItem) {} }) } //知识库下载 $scope.export = function() { var modalInstance = $modal.open({ // templateUrl: 'assets/views/knowledge/tpl/knowledgegetdown.html', templateUrl: 'assets/views/system/tpl/getdown.html', controller: function($scope, $modalInstance) { $scope.key = {}; $scope.title = '知识库下载'; $scope.lable = '下载类型'; $scope.onChange = function(key) { $scope.key = key; } $scope.downmodel = [{ id: 1, name: "模版下载" }, { id: 2, name: "数据导出" }] $scope.ok = function() { $modalInstance.close($scope.key); }; $scope.cancel = function() { $modalInstance.dismiss('cancel'); }; }, size: 'sm', }); modalInstance.result.then(function(selectedItem) { if (selectedItem) { var selectedItemId = "知识库模版"; if (selectedItem.id == 2) { selectedItemId = "知识库数据"; } var filadata = { 'model': selectedItem.id }; $http({ url: api_solution.export({ 'model': 1 }).getRequestedUrl(), method: 'POST', data: JSON.stringify(filadata), headers: { // 'Content-type': 'application/xls', 'Accept': '*/*' }, responseType: 'arraybuffer' }).success(function(data, status, headers, config) { // $scope.ldloading.zoom_in = false; var file = new Blob([data], { type: 'application/vnd.ms-excel' }); //trick to download store a file having its URL var fileURL = URL.createObjectURL(file); var a = document.createElement('a'); a.href = fileURL; a.target = '_blank'; a.download = selectedItemId + '.xlsx'; document.body.appendChild(a); a.click(); }).error(function(data, status, headers, config) { // $scope.ldloading.zoom_in = false; console.log(data); }); } }); } $scope.createKnowledge = function() { var data = { model: { knowledge: { createUserId: loginUser.id, status: 1 } } }; // var data = { model: { knowledge: { createUser: {id:loginUser.id}, status: 1 } } }; $state.go('app.knowledge.create', { formKey: 'knowledge_create', service: 'api_solution', 'model': JSON.stringify(data) }) } $scope.onDblClick = function(row) { // api_solution.findSolutionById(row.entity.id).then(function(response) { // var data = { model: { knowledge: response.data } }; // if (!isNaN(data.model.knowledge.vision)) { // data.model.knowledge.vision = 'V' + String(data.model.knowledge.vision); // } console.log(row) api_solution.jry_getHistory({"idx":0,"sum":999,"solution":{"solutionnumber":row.entity.solutionnumber}}).then(function(res1){ $state.go('app.knowledge.detail', { formKey: 'knowledge_detail', service: 'api_solution', 'model': JSON.stringify({"model":{"knowledge":row.entity}}),'history': JSON.stringify(res1.list)}) }) } // 编辑 $scope.editSolution = function(item) { // api_solution.findSolutionById(id).then(function(response) { // var data = { model: { knowledge: response.data } }; // if (!isNaN(data.model.knowledge.vision)) { // data.model.knowledge.vision = 'V' + String(data.model.knowledge.vision); // } api_solution.jry_getHistory({"idx":0,"sum":999,"solution":{"solutionnumber":item.solutionnumber}}).then(function(res1){ $state.go('app.knowledge.editor', { formKey: 'knowledge_editor', service: 'api_solution', 'model': JSON.stringify({"model":{"knowledge":item}}),'history': JSON.stringify(res1.list)}) }) console.log(item); } //升级 $scope.leve = function(item) { // api_solution.findSolutionById(id).then(function(response) { // var data = { model: { knowledge: response.data } }; // if (!isNaN(data.model.knowledge.vision)) { // data.model.knowledge.vision = 'V' + String(data.model.knowledge.vision); // } // console.log(item); api_solution.jry_getHistory({"idx":0,"sum":999,"solution":{"solutionnumber":item.solutionnumber}}).then(function(res1){ // console.log(res1) api_solution.jry_leveVision(item.id).then(function(res){ console.log(res); item.visionNumber=res.data; console.log(item); $state.go('app.knowledge.leve', { formKey: 'knowledge_leve', service: 'api_solution', 'model': JSON.stringify({"model":{"knowledge":item}}),'history': JSON.stringify(res1.list)}) }) }) } $scope.commentSolution = function(id) { var modalInstance = $modal.open({ templateUrl: 'assets/views/knowledge/tpl/commentknowledge.html', controller: function($scope, $http, $modalInstance, APIService, uploader, currentUser, Alert, MomentFormat, loginUser) { $scope.isManage = false; angular.forEach(loginUser.role, function(item) { if (item.rolecode == "solution") { $scope.isManage = true; } }) $scope.examineKnowledge = function(item) { APIService.updModel("solutionReview", { "solutionReview": { "status": 2, "id": item.id } }).then(function(response) { if (response && response.status == "200") { SweetAlert.swal({ title: "审核通过!", text: "知识库评论审核成功!", type: "success" }, function() { loadData(); }); } else { SweetAlert.swal({ title: "审核失败", text: "知识库评论审核失败!", type: "error" }); } }) } $scope.reviewKnowledge = function(item) { APIService.updModel("updSolutionReviewByIds", { "type": 2, "status": 2, "ids": id }).then(function(response) { if (response && response.status == "200") { SweetAlert.swal({ title: "审核通过!", text: "知识库评论审核成功!", type: "success" }, function() { loadData(); }); } else { SweetAlert.swal({ title: "审核失败", text: "知识库评论审核失败!", type: "error" }); } }) } $scope.removeKnowledge = function(item) { APIService.updModel("solutionReview", { "solutionReview": { "status": 3, "id": item.id } }).then(function(response) { if (response && response.status == "200") { SweetAlert.swal({ title: "删除成功!", text: "知识库评论删除成功!", type: "success" }, function() { loadData(); }); } else { SweetAlert.swal({ title: "删除失败", text: "知识库评论删除失败!", type: "error" }); } }) } var loadData = function() { $scope.visions = []; $scope.entity = {}; $scope.showCommentScore = true; $scope.comments = []; // APIService.findSolutionReviewById(loginUser.id, solution.id, 0, 1000).then(function(response) { APIService.fetchDataList('solutionReview', { 'idx': 0, 'sum': 1000, 'solutionReview': { 'solutionId': id, 'userId': loginUser.id } }).then(function(response) { if (response.status != "500") { var data = response.list; if (angular.isDefined(response.result)) { $scope.showCommentScore = false; } for (var i = 0; i < data.length; i++) { var object = {}; object.id = data[i].id; object.name = data[i].userName; object.status = data[i].status; if (data[i].reviewScore > 0) { object.score = data[i].reviewScore; } // object.content=data[i].review; var ss = data[i].review; var s1 = ""; if (ss != null) { var index = ss.indexOf("

"); var indexs = ss.indexOf("

"); s1 = ss.substring(index + 3, indexs); } object.content = s1; // object.score=data[i].reviewScore; object.time = moment(data[i].reviewTime).format('YYYY-MM-DD HH:mm:ss'); // console.log('object.time='+JSON.stringify(object)); $scope.comments.push(object); } } }); APIService.findSolutionById(id).then(function(response) { var datas = response.data; $scope.entity = { "id": datas.id, "title": datas.title, "keys": datas.keywords, "type": datas.typeId, "range": datas.solutionRange, "number": datas.solutionNumber, "content": datas.content, "createrUserId": datas.createUserId, "createTime": datas.createtime, "status": datas.status, "hits": datas.hits, "relateId": datas.relateId, "vision": datas.vision, "vision2": "V" + datas.vision, // "fileContent":datas.fileContent, "replies": datas.replies, "scores": datas.scores, "hits": datas.hits, "fileName": datas.fileName, "typeName": datas.typeDTO.typeName }; console.log(datas) console.log($scope.entity); }); } loadData(); $scope.options = { language: 'zh-cn', allowedContent: true, entities: false }; $scope.uploader = uploader; $scope.getdown = function(filename) { $http({ url: APIService.getSolutionDowpath(id).getRequestedUrl(), method: 'GET', headers: { //'Content-type' : 'application/xls', 'Accept': '*/*' }, responseType: 'arraybuffer' }).success(function(data, status, headers, config) { var file = new Blob([data], { type: 'application/octet-stream' }); //trick to download store a file having its URL var fileURL = URL.createObjectURL(file); var a = document.createElement('a'); a.href = fileURL; a.target = '_blank'; a.download = filename; document.body.appendChild(a); a.click(); }).error(function(data, status, headers, config) { console.log(data); }); } $scope.ranges = [{ "id": 1, "name": "全局" }, { "id": 3, "name": "组" }]; // $scope.ok = function() { // $modalInstance.close($scope.entity); // }; $scope.cancel = function() { // api_solution.findSolutions($scope.entity.id).then(function(response){ // var data6=response.data[0]; // for(var j=0;j<=$scope.solutionBBS.length;j++){ // if($scope.solutionBBS.length>0&&$scope.solutionBBS[j].id==$scope.entity.id){ // $scope.solutionBBS[j].replies=data6.replies; // $scope.solutionBBS[j].hits=data6.hits; // $scope.solutionBBS[j].scores=data6.scores; // break; // } // } // }); $modalInstance.close($scope.entity.id); }; $scope.saveComment = function(reviewcontent, score) { $scope.entity['reviewcontent'] = reviewcontent; $scope.entity['score'] = score; $modalInstance.close($scope.entity); } }, size: 'lg', resolve: { APIService: function() { return api_solution; }, uploader: function() { return $scope.uploader; }, currentUser: function() { return loginUser.id; }, Alert: function() { return SweetAlert; }, MomentFormat: function() { return moment; }, loginUser: function() { return loginUser; } } }); modalInstance.result.then(function(selectedItem) { if (selectedItem.title) { var solutionId = selectedItem.id; var reviewContent = selectedItem.reviewcontent; // if(solutionId==null){ var reviewScore; if (selectedItem.score) { reviewScore = selectedItem.score.toFixed(1) } var data = { id: null, solutionId: solutionId, userId: loginUser.id, review: reviewContent, reviewScore: reviewScore, reviewTime: new Date() }; api_solution.addSolutionReview(data).then(function(response) { var status = response.status; console.log(response) console.log('$scope.apClient=' + JSON.stringify(status)); if (status == "200") { SweetAlert.swal({ title: "评论知识库!", text: "评论知识库成功!", type: "success" }, function() { api_solution.findSolutions(selectedItem.id).then(function(response) { var data6 = response.data[0]; for (var j = 0; j <= $scope.solutionBBS.length; j++) { if ($scope.solutionBBS.length > 0 && $scope.solutionBBS[j].id == selectedItem.id) { $scope.solutionBBS[j].replies = data6.replies; $scope.solutionBBS[j].hits = data6.hits; $scope.solutionBBS[j].scores = data6.scores; break; } } }); }); } else { SweetAlert.swal({ title: "评论知识库!", text: "评论知识库失败!", type: "error" }); } }); } }); } //停用 $scope.jry_close=function(item){ // console.log(item); // item.status.id=74; // item["recalluser"]={id:loginUser.id}; // item["recalltime"]=moment(new Date()).format('YYYY-MM-DD HH:mm:ss'); // delete(item["item"]); // item.renewtime=moment(item.renewtime).format('YYYY-MM-DD HH:mm:ss'); // $scope.jry_tingyong={"solution":item}; SweetAlert.swal({ title: "", text: "是否确认将编号【"+item.solutionnumber+"】停用?停用后此知识不会公布在外!", type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: "确认停用", cancelButtonText: "取消操作", closeOnConfirm: false, closeOnCancel: false }, function (isConfirm) { if (isConfirm) { item.status.id=74; item["recalluser"]={id:loginUser.id}; item["recalltime"]=moment(new Date()).format('YYYY-MM-DD HH:mm:ss'); delete(item["item"]); item.renewtime=moment(item.renewtime).format('YYYY-MM-DD HH:mm:ss'); $scope.jry_tingyong={"solution":item}; api_solution.jry_updateSolution($scope.jry_tingyong).then(function(){ SweetAlert.swal("操作成功!", "该知识已停用", "success"); $scope.myData=[]; $scope.refreshListData('expand-right',$scope.jry_todata); }) } else { SweetAlert.swal("操作取消", "该知识安全", "error"); } }); } //审核 $scope.jry_shenhe=function(item){ api_solution.jry_getHistory({"idx":0,"sum":999,"solution":{"solutionnumber":item.solutionnumber}}).then(function(res1){ $state.go('app.knowledge.jry_shenhe', { formKey: 'knowledge_shenhe', service: 'api_solution', 'model': JSON.stringify({"model":{"knowledge":item}}),'history': JSON.stringify(res1.list)}) }) } // 历史记录 $scope.jry_lishi=function(item){ $state.go('app.knowledge.jry_lishi', { formKey: 'knowledge_lishi', service: 'api_solution', 'model': JSON.stringify({"model":{"knowledge":item}})}) } $scope.approvalSolution = function(data,id, outTimePower) { var modalInstance = $modal.open({ templateUrl: 'assets/views/knowledge/tpl/approvalknowledge.html', controller: function($scope, $modalInstance, APIService, Alert, workGroups, uploader, tree_data, outTimePower) { $scope.wgroups = workGroups; $scope.type_handler = function(branch) { $scope.typeIds = branch.id; // console.log(branch); }; $scope.type_data = tree_data; $scope.uploader = uploader; var loadData = function() { $scope.visions = []; // APIService.findSolutionById(id).then(function(response) { // var data = response.data; $scope.visions = data; //console.log(datas); // var data={}; // for(var i=0;i= 1) { // //not valid // } else { // var tempclassify = item.prefix.toLowerCase() + item.sign; // $scope.gridApi.grid.options.paginationCurrentPage = 1; // $scope.cifilter_classic = tempclassify; // var memoryfilterData = { // "sign": tempclassify, // "idx": 0, // "sum": $scope.gridOptions.paginationPageSize // } // angular.extend($scope.memoryfilterData, memoryfilterData) // // $scope.memoryfilterData=memoryfilterData; // $scope.refreshData('expand-right', $scope.memoryfilterData); // // 专有属性 // api_configure_form.renderTabForm(tempclassify).then(function(data){ // var myData = Restangular.stripRestangular(data); // $scope.propTypeOptions = myData[2].form.fields; // // console.log($scope.propTypeOptions) // }); // } } }]); app.controller('knowledgeForumCtrl', ["$rootScope", "$scope", "$filter", "ngTableParams", "$state", "$timeout", "$interval", "$modal", "SweetAlert", "moment", "Restangular", "api_solution", function($rootScope, $scope, $filter, ngTableParams, $state, $timeout, $interval, $modal, SweetAlert, moment, Restangular, api_solution) { var loginUser = $rootScope.user; $scope.clses = [{ id: 6, cls: 'danger' }, { id: 2, cls: 'warning' }, { id: 3, cls: 'success' }, { id: 4, cls: 'primary' }, { id: 5, cls: 'info' }, { id: 1, cls: 'danger' } ]; $scope.showlist = true; $scope.myKeyup = function(e, searchInput) { var keyCode = window.event ? e.keyCode : e.which; if (keyCode == 13) { $scope.searchSolution(searchInput); } }; $scope.searchSolution = function(searchKey, page) { console.log(page) if (searchKey == "") { if (angular.isDefined(page)) { if (page == 0) { page = 1; } else if (page == $scope.pages + 1) { page = $scope.pages; } } else { tempPage = page = 0; $scope.solutionBBS = []; } // api_solution.queryBBSSolutions(tempPage, 7, 'createtime', loginUser.id, searchKey).then(function(response) { api_solution.fetchDataList("solution", { 'idx': 0, 'sum': 7, 'solution': { 'searchType': 2, 'keywords': searchKey, createUserId: loginUser.id } }).then(function(response) { // api_solution.fetchDataList("solution", { 'idx': 0, 'sum': 7, 'solution': { 'searchType': 2, 'keywords': searchKey, createUser: {id:loginUser.id} } }).then(function(response) { var myData = Restangular.stripRestangular(response); var status = myData.status; if (status == "500") { $scope.solutionBBS = []; } else if (status == "200" && myData.list) { sereshdata(response, searchKey); } }); } else if (searchKey != "" && searchKey.length > 1) { // if (angular.isDefined(page)) { // if (page == 0) { // page = 1; // } else if (page == $scope.pages + 1) { // page = $scope.pages; // } // tempPage = page - 1; // } else { // tempPage = page = 0; // $scope.solutionBBS = []; // } // if(page==0){ // page=1; // }else if(page==$scope.pages+1){ // page=$scope.pages; // } api_solution.fetchDataList("solution", { 'idx': 0, 'sum': 7, 'solution': { 'searchType': 2, 'keywords': searchKey, createUserId: loginUser.id } }).then(function(response) { // api_solution.fetchDataList("solution", { 'idx': 0, 'sum': 7, 'solution': { 'searchType': 2, 'keywords': searchKey, createUser: {id:loginUser.id} } }).then(function(response) { var myData = Restangular.stripRestangular(response); $scope.solutionBBS = []; $scope.currentPage = 1; $scope.pages = 0; $scope.num = response.totalNum; sereshdata(response, searchKey); // var status = myData.status; // if (status == "500") { // $scope.solutionBBS = []; // } else if (status == "200" && myData.list) { // var data = myData.list; // var count = myData.totalNum; // $scope.pages = parseInt(count / 7) + 1; // if (page == 0) { // $scope.currentPage = page + 1; // } else { // $scope.currentPage = page; // } // if (data.length > 0) { // $scope.solutionBBS = []; // for (var i = 0; i < data.length; i++) { // data[i].creationTime = getLocalTime(data[i].createtime); // data[i].releasetime = getLocalTime(data[i].releasetime); // if (data[i].solutionReviewDTO.reviewTime == null) { // data[i].solutionReviewDTO.reviewTime = "暂无回复"; // } else { // data[i].solutionReviewDTO.reviewTime = getLocalTime(data[i].solutionReviewDTO.reviewTime); // } // if (data[i].solutionReviewDTO.userName == null) { // data[i].solutionReviewDTO.userName = "暂无回复人"; // } // // if (i == 0) { // // data[i].index = 1; // // } else if (i == 1) { // // data[i].index = 2; // // } else if (i == 2) { // // data[i].index = 3; // // } else { // // data[i].index = 4; // // } // $scope.solutionBBS.push(data[i]); // // reshdata($scope.solutionBBS); // } // } // } }); } } // $scope.$watch('searchInput',function(newvalue, oldvalue){ // if(newvalue == oldvalue) return; // $scope.searchSolution(newvalue); // }); //BBS列表切换 $scope.changeShowList = function(val) { $scope.showlist = !$scope.showlist; } $scope.solutionBBS = []; $scope.hotRankings = []; $scope.scoreRankings = []; $scope.solutionScores = []; $scope.currentPage = 1; $scope.pages = 0; $scope.num = 0; function sereshdata(item, key) { $scope.tableParams = new ngTableParams({ page: 1, // show first page count: 7, // count per page data: item.list }, { total: item.totalNum, // length of data getData: function($defer, params) { api_solution.fetchDataList("solution", { 'idx': params.page() - 1, 'sum': 7, 'solution': { 'searchType': 2, 'keywords': key, createUserId: loginUser.id } }).then(function(response) { // api_solution.fetchDataList("solution", { 'idx': params.page() - 1, 'sum': 7, 'solution': { 'searchType': 2, 'keywords': key, createUser: {id:loginUser.id} } }).then(function(response) { var data = response.list; for (var i = 0; i < data.length; i++) { data[i].creationTime = getLocalTime(data[i].createtime); data[i].releasetime = getLocalTime(data[i].releasetime); if (data[i].solutionReviewDTO.reviewTime == null) { data[i].solutionReviewDTO.reviewTime = "暂无回复"; } else { data[i].solutionReviewDTO.reviewTime = getLocalTime(data[i].solutionReviewDTO.reviewTime); } if (data[i].solutionReviewDTO.userName == null) { data[i].solutionReviewDTO.userName = "暂无回复人"; } $scope.solutionBBS.push(data[i]); } $defer.resolve(data.slice((0) * params.count(), params.page() * params.count())); }) } }); } // function reshdata(item, key) { // $scope.tableParams = new ngTableParams({ // page: 1, // show first page // count: 3 // count per page // }, { // total: item.totalNum, // length of data // getData: function($defer, params) { // // api_solution.fetchBBSSolutions(params.page() - 1, 7, "createtime", loginUser.id).then(function(response) { // var orderedData = params.sorting() ? $filter('orderBy')(item.list, params.orderBy()) : item.list; // $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count())); // } // }); // } // api_solution.fetchBBSSolutions(0, 7, "createtime", loginUser.id).then(function(response) { api_solution.fetchDataList("solution", { 'idx': 0, 'sum': 7, 'solution': { 'searchType': 2, createUserId: loginUser.id } }).then(function(response) { // api_solution.fetchDataList("solution", { 'idx': 0, 'sum': 7, 'solution': { 'searchType': 2, createUser: {id:loginUser.id} } }).then(function(response) { if (response.status == 200) { $scope.solutionBBS = []; var data = response.list; $scope.num = response.totalNum; // for (var i = 0; i < data.length; i++) { // data[i].creationTime = getLocalTime(data[i].createtime); // data[i].releasetime = getLocalTime(data[i].releasetime); // if (data[i].solutionReviewDTO.reviewTime == null) { // data[i].solutionReviewDTO.reviewTime = "暂无回复"; // } else { // data[i].solutionReviewDTO.reviewTime = getLocalTime(data[i].solutionReviewDTO.reviewTime); // } // if (data[i].solutionReviewDTO.userName == null) { // data[i].solutionReviewDTO.userName = "暂无回复人"; // } // $scope.solutionBBS.push(data[i]); // } sereshdata(response); // $scope.tableParams = new ngTableParams({ // page: 1, // show first page // count: 7 // count per page // }, { // total: response.totalNum, // length of data // getData: function($defer, params) { // api_solution.fetchBBSSolutions(params.page() - 1, 7, "createtime", loginUser.id).then(function(data) { // var myData = data.list; // $defer.resolve(myData.slice((0) * params.count(), params.page() * params.count())); // }) // } // }); } }) api_solution.fetchBBSSolutions(0, 5, "scores", loginUser.id).then(function(response) { $scope.solutionBBS1 = []; var myData = Restangular.stripRestangular(response); var data = myData.list; for (var i = 0; i < data.length; i++) { data[i].creationTime = getLocalTime(data[i].creationTime); data[i].lastReplyTime = getLocalTime(data[i].lastReplyTime); if (i == 0) { data[i].index = 1; } else if (i == 1) { data[i].index = 2; } else if (i == 2) { data[i].index = 3; } else { data[i].index = 4; } $scope.solutionScores.push(data[i]); } }); $scope.todayHits = 0; $scope.lastHits = 0; api_solution.fetchDataList('solutionDayBrowser', { 'idx': 0, 'sum': 10 }).then(function(response) { if (response.status == 200 && response.list) { if (response.list[0].todayBrowser) { $scope.todayHits = response.list[0].todayBrowser; } if (response.list[0].beforeDayBrowser) { $scope.lastHits = response.list[0].beforeDayBrowser; } } }) api_solution.hotRanking(1).then(function(response) { var myData = Restangular.stripRestangular(response); var data = myData.list; console.log(data); $scope.hotRankings = []; $scope.hotArray = []; for (var i = 0; i < data.length; i++) { data[i].approvetime = getLocalTime(data[i].solutionDTO.approvetime); if (i == 0) { data[i].index = 1; } else if (i == 1) { data[i].index = 2; } else if (i == 2) { data[i].index = 3; } else { data[i].index = 4; } $scope.hotRankings.push(data[i]); $scope.hotArray.push(data[i].totalBrowse); } if ($scope.hotArray.length > 0) { $scope.tophot = $scope.hotArray.join(','); } //$scope //$scope.hotArray=[275,490,397,487,339,403,402,312,300,294,411,367,319,416,355,416,371,479,279,361,312,269,402,327,474,422,375,283,384,372]; //热点排行榜 // $("#stats-sparklines-2").pixelSparkline($scope.hotArray, { // type: 'bar', // height: '36px', // width: '100%', // barSpacing: 2, // zeroAxis: false, // barColor: '#ffffff' // }); }); api_solution.hotRanking(2).then(function(response) { var myData = Restangular.stripRestangular(response); var data = myData.list; $scope.scoreRankings = []; $scope.scoreArray = []; for (var i = 0; i < data.length; i++) { data[i].approvetime = getLocalTime(data[i].solutionDTO.approvetime); if (i == 0) { data[i].index = 1; } else if (i == 1) { data[i].index = 2; } else if (i == 2) { data[i].index = 3; } else { data[i].index = 4; } $scope.scoreRankings.push(data[i]); $scope.scoreArray.push(data[i].totalScore); } if ($scope.scoreArray.length > 0) { $scope.topscore = $scope.scoreArray.join(','); } //$scope.scoreArray=[275,490,397,487,339,403,402,312,300]; //评分排行榜 // $("#stats-sparklines-3").pixelSparkline($scope.scoreArray, { // type: 'line', // width: '100%', // height: '45px', // fillColor: '', // lineColor: '#fff', // lineWidth: 2, // spotColor: '#ffffff', // minSpotColor: '#ffffff', // maxSpotColor: '#ffffff', // highlightSpotColor: '#ffffff', // highlightLineColor: '#ffffff', // spotRadius: 4, // highlightLineColor: '#ffffff' // }); }); var getLocalTime = function(time) { return moment(time).format('YYYY-MM-DD HH:mm:ss'); // console("time="+time) } $scope.commentshowSolution = function(solution) { var modalInstance = $modal.open({ templateUrl: 'assets/views/knowledge/tpl/commentknowledge.html', controller: function($scope, $http, $modalInstance, APIService, uploader, currentUser, Alert, MomentFormat, loginUser) { $scope.isManage = false; angular.forEach(loginUser.role, function(item) { if (item.rolecode == "solution") { $scope.isManage = true; } }) $scope.examineKnowledge = function(item) { APIService.updModel("solutionReview", { "solutionReview": { "status": 2, "id": item.id } }).then(function(response) { if (response && response.status == "200") { SweetAlert.swal({ title: "审核通过!", text: "知识库评论审核成功!", type: "success" }, function() { loadData(); }); } else { SweetAlert.swal({ title: "审核失败", text: "知识库评论审核失败!", type: "error" }); } }) } $scope.reviewKnowledge = function(item) { APIService.updModel("updSolutionReviewByIds", { "type": 2, "status": 2, "ids": solution.id }).then(function(response) { if (response && response.status == "200") { SweetAlert.swal({ title: "审核通过!", text: "知识库评论审核成功!", type: "success" }, function() { loadData(); }); } else { SweetAlert.swal({ title: "审核失败", text: "知识库评论审核失败!", type: "error" }); } }) } $scope.removeKnowledge = function(item) { APIService.updModel("solutionReview", { "solutionReview": { "status": 3, "id": item.id } }).then(function(response) { if (response && response.status == "200") { SweetAlert.swal({ title: "删除成功!", text: "知识库评论删除成功!", type: "success" }, function() { loadData(); }); } else { SweetAlert.swal({ title: "删除失败", text: "知识库评论删除失败!", type: "error" }); } }) } var loadData = function() { $scope.visions = []; $scope.entity = {}; $scope.showCommentScore = true; $scope.comments = []; // APIService.findSolutionReviewById(loginUser.id, solution.id, 0, 1000).then(function(response) { APIService.fetchDataList('solutionReview', { 'idx': 0, 'sum': 1000, 'solutionReview': { 'solutionId': solution.id, 'userId': loginUser.id } }).then(function(response) { if (response.status != "500") { var data = response.list; if (angular.isDefined(response.result)) { $scope.showCommentScore = false; } for (var i = 0; i < data.length; i++) { var object = {}; object.id = data[i].id; object.name = data[i].userName; object.status = data[i].status; if (data[i].reviewScore > 0) { object.score = data[i].reviewScore; } // object.content=data[i].review; var ss = data[i].review; var s1 = ""; if (ss != null) { var index = ss.indexOf("

"); var indexs = ss.indexOf("

"); s1 = ss.substring(index + 3, indexs); } object.content = s1; // object.score=data[i].reviewScore; object.time = moment(data[i].reviewTime).format('YYYY-MM-DD HH:mm:ss'); // console.log('object.time='+JSON.stringify(object)); $scope.comments.push(object); } } }); APIService.findSolutionById(solution.id).then(function(response) { var datas = response.data; $scope.entity = { "id": datas.id, "title": datas.title, "keys": datas.keywords, "type": datas.typeId, "range": datas.solutionRange, "number": datas.solutionNumber, "content": datas.content, "createrUserId": datas.createUserId, "createTime": datas.createtime, "status": datas.status, "hits": datas.hits, "relateId": datas.relateId, "vision": datas.vision, "vision2": "V" + datas.vision, // "fileContent":datas.fileContent, "replies": datas.replies, "scores": datas.scores, "hits": datas.hits, "fileName": datas.fileName, "typeName": datas.typeDTO.typeName }; console.log(datas) console.log($scope.entity); }); } loadData(); $scope.options = { language: 'zh-cn', allowedContent: true, entities: false }; $scope.uploader = uploader; $scope.getdown = function(filename) { $http({ url: APIService.getSolutionDowpath(solution.id).getRequestedUrl(), method: 'GET', headers: { //'Content-type' : 'application/xls', 'Accept': '*/*' }, responseType: 'arraybuffer' }).success(function(data, status, headers, config) { var file = new Blob([data], { type: 'application/octet-stream' }); //trick to download store a file having its URL var fileURL = URL.createObjectURL(file); var a = document.createElement('a'); a.href = fileURL; a.target = '_blank'; a.download = filename; document.body.appendChild(a); a.click(); }).error(function(data, status, headers, config) { console.log(data); }); } $scope.ranges = [{ "id": 1, "name": "全局" }, { "id": 3, "name": "组" }]; // $scope.ok = function() { // $modalInstance.close($scope.entity); // }; $scope.cancel = function() { // api_solution.findSolutions($scope.entity.id).then(function(response){ // var data6=response.data[0]; // for(var j=0;j<=$scope.solutionBBS.length;j++){ // if($scope.solutionBBS.length>0&&$scope.solutionBBS[j].id==$scope.entity.id){ // $scope.solutionBBS[j].replies=data6.replies; // $scope.solutionBBS[j].hits=data6.hits; // $scope.solutionBBS[j].scores=data6.scores; // break; // } // } // }); $modalInstance.close($scope.entity.id); }; $scope.saveComment = function(reviewcontent, score) { $scope.entity['reviewcontent'] = reviewcontent; $scope.entity['score'] = score; $modalInstance.close($scope.entity); } }, size: 'lg', resolve: { APIService: function() { return api_solution; }, uploader: function() { return $scope.uploader; }, currentUser: function() { return loginUser.id; }, Alert: function() { return SweetAlert; }, MomentFormat: function() { return moment; }, loginUser: function() { return loginUser; } } }); modalInstance.result.then(function(selectedItem) { if (selectedItem.title) { var solutionId = selectedItem.id; var reviewContent = selectedItem.reviewcontent; // if(solutionId==null){ var reviewScore; if (selectedItem.score) { reviewScore = selectedItem.score.toFixed(1) } var data = { id: null, solutionId: solutionId, userId: loginUser.id, review: reviewContent, reviewScore: reviewScore, reviewTime: new Date() }; api_solution.addSolutionReview(data).then(function(response) { var status = response.status; console.log(response) console.log('$scope.apClient=' + JSON.stringify(status)); if (status == "200") { SweetAlert.swal({ title: "评论知识库!", text: "评论知识库成功!", type: "success" }, function() { api_solution.findSolutions(selectedItem.id).then(function(response) { var data6 = response.data[0]; for (var j = 0; j <= $scope.solutionBBS.length; j++) { if ($scope.solutionBBS.length > 0 && $scope.solutionBBS[j].id == selectedItem.id) { $scope.solutionBBS[j].replies = data6.replies; $scope.solutionBBS[j].hits = data6.hits; $scope.solutionBBS[j].scores = data6.scores; break; } } }); }); } else { SweetAlert.swal({ title: "评论知识库!", text: "评论知识库失败!", type: "error" }); } }); } }); } //TODO $('#attach-check').on('change', function() { $('#attach').toggleClass('hidden'); }); $('#attachcheck1').on('change', function() { $('#attachdiv1').toggleClass('hidden'); }); $('#attachcheck2').on('change', function() { $('#attachdiv2').toggleClass('hidden'); }); }]); app.filter('index', function() { return function(array) { return (array || []).map(function(item, index) { item.order = index + 1; return item; }); }; }); app.controller('GridOperatorCtrl', ["$rootScope",'$http', '$scope', function($rootScope,$http, $scope, $event) { // if ($scope.item.actions != "" && $scope.item.actions != null) { //1:查看,2:操作(改);3:审核;4.过期;发布更新 // if ($scope.item.actions.indexOf("1") >= 0) { //查看权限 // $scope.item.detailPower = true; // } else { // $scope.item.detailPower = false; // } // if ($scope.item.status == 4) { // $scope.item.commentPower = true; // } else { // $scope.item.commentPower = false; // } // if ($scope.item.actions.indexOf("2") >= 0) { //操作(改) // if ($scope.item.status == 1 || $scope.item.status == 5 || $scope.item.status == 3 || $scope.item.status == 4) { // $scope.item.updatePower = true; // } // } else { // $scope.item.updatePower = false; // } // if ($scope.item.actions.indexOf("3") >= 0) { //审核 // if ($scope.item.status == 1) { // $scope.item.reviewPower = true; // } // } else { // $scope.item.reviewPower = false; // } // if ($scope.item.actions.indexOf("4") >= 0) { //过期与发布 // if ($scope.item.status == 2) { // $scope.item.updatePower = true; // $scope.item.outTimePower = true; // } // if ($scope.item.status == 3) { //已发布的才能评论 // $scope.item.publishnotPower = true; // } else { // $scope.item.publishnotPower = false; // } // } else { // $scope.item.outTimePower = false; // } // } // if ($scope.item.status == 3) { //已发布的才能评论 // // $scope.item.publishnotPower = true; // $scope.item.commontPower = true; // } else { // $scope.item.commontPower = false; // // $scope.item.publishnotPower = false; // } // // console.log($scope.item.status + " " + $scope.item.commontPower); $scope.edit = function() { $scope.colobject.grid.appScope.editSolution($scope.item); // console.log($scope.colobject); //$scope.doEdit($scope.item.id); } $scope.leve=function(){ $scope.colobject.grid.appScope.leve($scope.item); } // $scope.comment = function() { // $scope.colobject.grid.appScope.commentSolution($scope.item.id); // //$scope.doComment($scope.item.id); // } $scope.approval = function() { $scope.colobject.grid.appScope.jry_shenhe($scope.item); //$scope.doApproval($scope.item.id,$scope.item.outTimePower); } $scope.publish = function() { $scope.colobject.grid.appScope.jry_lishi($scope.item); //$scope.doApproval($scope.item.id,$scope.item.outTimePower); } $scope.publishnot = function() { $scope.colobject.grid.appScope.jry_close($scope.item); //$scope.doApproval($scope.item.id,$scope.item.outTimePower); } // $scope.detail = function() { // $scope.colobject.grid.appScope.detailSolution($scope.item.id); // // console.log($scope.colobject); // } var jry_loginUser=$rootScope.user; $scope.ZZKGLY=false; for(var i=0;i' + // // '' + // '编辑' + // // '' + // '评论' + // // '' + // '审核' + // // '' + // '发布' + // // '' + // '撤销' + // '' + // '编辑' + // // '' + // '评论' + // // '' + // '审核' + // // '' + // '发布' + // // '' + // '撤销' + '编辑' + // '' + // '评论' + '升级' + // '' + '审核' + // '' + // '发布' + '历史记录' + // '' + '停用' + '' }; });