knowledgeCtrl.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768
  1. 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", "api_wechatfile","api_bpm", 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, api_wechatfile,api_bpm) {
  2. $scope.langs = i18nService.getAllLangs();
  3. $scope.lang = 'zh-cn';
  4. i18nService.setCurrentLang($scope.lang);
  5. var loginUser = $rootScope.user;
  6. $scope.look = false;
  7. $scope.xinzeng = false;
  8. $scope.bianji = false;
  9. $scope.shenhe = false;
  10. $scope.shengji = false;
  11. $scope.tingyong = false;
  12. for (var i = 0; i < loginUser.menu.length; i++) {
  13. if (loginUser.menu[i].link == "app.knowledge.manager") {
  14. $scope.look = true
  15. }
  16. if (loginUser.menu[i].link == "zhishiku_bianji") {
  17. $scope.xinzeng = true
  18. }
  19. if (loginUser.menu[i].link == "zhishiku_bianji") {
  20. $scope.bianji = true
  21. }
  22. if (loginUser.menu[i].link == "zhishiku_shenhe") {
  23. $scope.shenhe = true
  24. }
  25. if (loginUser.menu[i].link == "zhishiku_shengji") {
  26. $scope.shengji = true
  27. }
  28. if (loginUser.menu[i].link == "zhishiku_tingyong") {
  29. $scope.tingyong = true
  30. }
  31. }
  32. $scope.gridOptions = {};
  33. $scope.gridOptions.data = 'myData';
  34. $scope.gridOptions.enableColumnResizing = true;
  35. $scope.gridOptions.enableFiltering = false;
  36. $scope.gridOptions.enableGridMenu = true;
  37. $scope.gridOptions.enableRowSelection = true;
  38. $scope.gridOptions.showGridFooter = true;
  39. $scope.gridOptions.showColumnFooter = true;
  40. $scope.gridOptions.fastWatch = true;
  41. $scope.gridOptions.useExternalPagination = true;
  42. $scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
  43. $scope.gridOptions.paginationPageSize = 10;
  44. $scope.gridOptions.multiSelect = false;
  45. $scope.gridOptions.rowIdentity = function (row) {
  46. return row.id;
  47. };
  48. $scope.gridOptions.getRowIdentity = function (row) {
  49. return row.id;
  50. };
  51. var mun = $scope.gridOptions.paginationPageSize;
  52. $scope.transferTime = function (time) {
  53. return moment(time).format('YYYY-MM-DD ');
  54. }
  55. //jry数据传递
  56. if ($scope.fenye == undefined) {
  57. $scope.fenye = 0;
  58. }
  59. $scope.jry_todata = {
  60. "idx": $scope.fenye,
  61. "sum": 10,
  62. "solution": {
  63. selectType:'keySearch',
  64. "keywords": "",
  65. "solutionType": {
  66. "id": ''
  67. },
  68. "status": {
  69. "id": ""
  70. },
  71. "createUser": {
  72. "name": ""
  73. }
  74. }
  75. }
  76. // 清空
  77. $scope.clean = function () {
  78. delete $scope.jry_todata.solution.title;
  79. delete $scope.jry_todata.solution.solutionType;
  80. delete $scope.jry_todata.solution.createUser;
  81. delete $scope.jry_todata.solution.threeSearch;
  82. $scope.refreshListData('expand-right', $scope.jry_todata);
  83. }
  84. $scope.transferStatus = function (status) {
  85. var statusLabel = "不合法的状态";
  86. if (status.value == 1) {
  87. statusLabel = "待审核";
  88. } else if (status.value == 2) {
  89. statusLabel = "已发布";
  90. } else if (status.value == 3) {
  91. statusLabel = "已驳回";
  92. } else if (status.value == 4) {
  93. statusLabel = "已停用";
  94. } else if (status.value == 5) {
  95. statusLabel = "已驳回";
  96. } else if (status.value == 6) {
  97. statusLabel = "已拒绝";
  98. }
  99. return statusLabel;
  100. }
  101. $scope.gridOptions.rowTemplate = "<div ng-dblclick=\"grid.appScope.pdList.onDblClick(row)\" ng-repeat=\"(colRenderIndex, col) in colContainer.renderedColumns track by col.uid\" ui-grid-one-bind-id-grid=\"rowRenderIndex + '-' + col.uid + '-cell'\" class=\"ui-grid-cell\" ng-class=\"{ 'ui-grid-row-header-cell': col.isRowHeader }\" role=\"{{col.isRowHeader ? 'rowheader' : 'gridcell'}}\" ui-grid-cell></div>";
  102. $scope.gridOptions.columnDefs = [{
  103. name: 'item',
  104. displayName: '序号',
  105. width: 50
  106. },
  107. {
  108. name: 'solutionnumber',
  109. displayName: '知识库编号',
  110. width: '13%',
  111. minWidth: '130'
  112. },
  113. {
  114. name: 'title',
  115. displayName: '故障描述',
  116. width: '13%'
  117. },
  118. {
  119. name: 'visionNumber',
  120. displayName: '版本号',
  121. width: '80'
  122. },
  123. {
  124. name: 'status',
  125. displayName: '状态',
  126. cellTemplate: '<div class="ui-grid-cell-contents">{{grid.appScope.transferStatus(row.entity.status)}}</div>',
  127. width: '8%'
  128. },
  129. {
  130. name: 'createUser.name',
  131. displayName: '创建人',
  132. width: '8%'
  133. },
  134. {
  135. name: 'createtime',
  136. cellTemplate: '<div class="ui-grid-cell-contents">{{grid.appScope.transferTime(row.entity.createtime)}}</div>',
  137. displayName: '创建日期',
  138. width: '12%'
  139. },
  140. {
  141. name: '操作',
  142. minWidth: '300',
  143. cellTemplate: '<gridoperator item="row.entity" colobject="col">'
  144. },
  145. ];
  146. $scope.gridOptions.onRegisterApi = function (gridApi) {
  147. $scope.gridApi = gridApi;
  148. gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) {
  149. var filtersData = $scope.allfilterData;
  150. $scope.fenye = newPage - 1;
  151. $scope.jry_todata.idx = newPage - 1;
  152. $scope.jry_todata.sum = pageSize;
  153. filtersData.pageIndex = newPage - 1;
  154. var data = {
  155. pageIndex: newPage - 1
  156. };
  157. var dataFilter = angular.extend(data, filtersData);
  158. dataFilter.status = filtersData.status;
  159. $scope.myData = [];
  160. // new
  161. if($scope.searchstate == 1){
  162. $scope.jry_todata.solution.tabType = 'own';
  163. } else if($scope.searchstate == 2){
  164. $scope.jry_todata.solution.tabType = 'publish';
  165. } else if($scope.searchstate == 3){
  166. $scope.jry_todata.solution.tabType = 'manage';
  167. }
  168. api_zsk.jry_get_list($scope.jry_todata, "solution").then(function (data) {
  169. $scope.myData = [];
  170. var myData = Restangular.stripRestangular(data);
  171. $scope.gridOptions.totalItems = myData.totalNum;
  172. if (myData.error && myData.status == 200) {
  173. $scope.myData = [];
  174. } else {
  175. if (angular.isArray(myData.list)) {
  176. $scope.myData = myData.list;
  177. for (var i = 0; i < $scope.myData.length; i++) {
  178. delete $scope.myData[i]['item']
  179. $scope.myData[i]['item'] = i + 1 + $scope.jry_todata.idx * $scope.jry_todata.sum
  180. }
  181. } else {
  182. SweetAlert.swal({
  183. title: "数据为空",
  184. text: myData.list,
  185. type: "warning"
  186. });
  187. }
  188. }
  189. }
  190. );
  191. });
  192. };
  193. $scope.knowledge = {};
  194. $scope.inspecttype = {};
  195. $scope.searchstate = 1;
  196. if($scope.xinzeng && $scope.bianji && $scope.shengji){
  197. $scope.searchstate = 1;
  198. }else if($scope.look && !$scope.xinzeng && !$scope.bianji && !$scope.shenhe && !$scope.shengji && !$scope.tingyong){
  199. $scope.searchstate = 2;
  200. }else if($scope.shenhe && $scope.tingyong){
  201. $scope.searchstate = 3;
  202. }
  203. $scope.ldloading = {};
  204. $scope.refreshListData = function (style, filterData) {
  205. $scope.myData=[]
  206. $scope.ldloading[style.replace('-', '_')] = true;
  207. if($scope.searchstate == 2 || $scope.searchstate == 3){
  208. if($rootScope.user.duty){
  209. // 当前的所属责任科室
  210. filterData.solution.dutyId = $rootScope.user.duty.id;
  211. }else if($rootScope.user.branch){
  212. // 当前的所属院区
  213. filterData.solution.branch = $rootScope.user.branch.id;
  214. }
  215. }else{
  216. filterData.solution.dutyId = undefined;
  217. filterData.solution.branch = undefined;
  218. }
  219. if($scope.searchstate == 2){
  220. filterData.solution.status.id = 72;
  221. }else{
  222. filterData.solution.status.id = '';
  223. }
  224. var postData = angular.copy(filterData);
  225. if($scope.searchstate == 1){
  226. postData.solution.createUser = $rootScope.user;
  227. }
  228. // new
  229. if($scope.searchstate == 1){
  230. postData.solution.tabType = 'own';
  231. } else if($scope.searchstate == 2){
  232. postData.solution.tabType = 'publish';
  233. } else if($scope.searchstate == 3){
  234. postData.solution.tabType = 'manage';
  235. }
  236. api_zsk.jry_get_list(postData, "solution").then(function (data) {
  237. $scope.myData=[]
  238. if (data.list) {
  239. var myData = Restangular.stripRestangular(data);
  240. $scope.gridOptions['totalItems'] = myData.totalNum;
  241. $scope.myData = myData.list;
  242. for (var i = 0; i < $scope.myData.length; i++) {
  243. delete $scope.myData[i]['item']
  244. $scope.myData[i]['item'] = i + 1 + filterData.idx * filterData.sum+''
  245. }
  246. } else {
  247. SweetAlert.swal({
  248. title: "系统错误",
  249. text: "请稍后再试!",
  250. type: "error"
  251. });
  252. }
  253. $scope.ldloading[style.replace('-', '_')] = false;
  254. }, function () {
  255. $scope.ldloading[style.replace('-', '_')] = false;
  256. });
  257. }
  258. $scope.timer = $interval(function () {
  259. $scope.refreshListData('expand-right', $scope.jry_todata);
  260. }, $rootScope.refreshTime);
  261. $scope.$on('$destroy', function () {
  262. $interval.cancel($scope.timer)
  263. });
  264. // 获取创建人
  265. $scope.getCreateUser = function () {
  266. api_configure_data.fetchDataList("user", {
  267. "idx": 0,
  268. "sum": 1000,
  269. "user":{
  270. "simple": true
  271. }
  272. }).then(function (res) {
  273. $scope.createUserData = res.list
  274. })
  275. }
  276. $scope.getCreateUser()
  277. //导入
  278. $scope.importopen = function () { //导入触发事件
  279. var modalInstance = $modal.open({
  280. templateUrl: 'assets/views/import.html',
  281. controller: function ($scope, $modalInstance, FileUploader) {
  282. var importUploader = $scope.importUploader = new FileUploader({
  283. url: api_user_data.importData1('solution').getRequestedUrl(),
  284. });
  285. importUploader.onWhenAddingFileFailed = function (item /*{File|FileLikeObject}*/ , filter, options) {
  286. console.info('onWhenAddingFileFailed', item, filter, options);
  287. };
  288. importUploader.onAfterAddingFile = function (fileItem) {
  289. console.info('onAfterAddingFile', fileItem);
  290. };
  291. importUploader.onAfterAddingAll = function (addedFileItems) {
  292. console.info('onAfterAddingAll', addedFileItems);
  293. };
  294. importUploader.onProgressItem = function (fileItem, progress) {
  295. console.info('onProgressItem', fileItem, progress);
  296. };
  297. importUploader.onProgressAll = function (progress) {
  298. console.info('onProgressAll', progress);
  299. };
  300. importUploader.onSuccessItem = function (fileItem, response, status, headers) {
  301. if (response.status == 200) {
  302. SweetAlert.swal({
  303. title: "导入成功!",
  304. confirmButtonColor: "#007AFF",
  305. type: "success"
  306. }, function () {
  307. $rootScope.isMask = false;
  308. $scope.refreshListData('expand-right', $scope.jry_todata);
  309. });
  310. } else {
  311. $rootScope.isMask = false;
  312. SweetAlert.swal({
  313. title: "导入失败!",
  314. text: response.error,
  315. type: "error"
  316. })
  317. }
  318. console.info('onSuccessItem', fileItem, response, status, headers);
  319. };
  320. importUploader.onErrorItem = function (fileItem, response, status, headers) {
  321. console.info('onErrorItem', fileItem, response, status, headers);
  322. SweetAlert.swal({
  323. title: "系统错误!",
  324. text: "系统错误,请稍候重试!",
  325. type: "error"
  326. });
  327. };
  328. importUploader.onCancelItem = function (fileItem, response, status, headers) {
  329. console.info('onCancelItem', fileItem, response, status, headers);
  330. };
  331. importUploader.onCompleteItem = function (fileItem, response, status, headers) {
  332. console.info('onCompleteItem', fileItem, response, status, headers);
  333. };
  334. importUploader.onCompleteAll = function () {
  335. console.info('onCompleteAll');
  336. };
  337. $scope.ldloading = {};
  338. $rootScope.isMask = false;
  339. $scope.import = function (style) {
  340. $modalInstance.dismiss('cancel');
  341. $rootScope.isMask = true;
  342. importUploader.onBeforeUploadItem = function (item) {
  343. angular.extend(item.headers, $rootScope.getSession());
  344. item.formData.push({
  345. 'filename': item.file.name
  346. });
  347. item.formData.push({
  348. 'type': "dataImport"
  349. });
  350. console.info('onBeforeUploadItem', item);
  351. };
  352. importUploader.uploadAll();
  353. }
  354. $scope.cancel = function () {
  355. $modalInstance.dismiss('cancel');
  356. };
  357. },
  358. size: 'sm',
  359. resolve: {
  360. importUploader: function () {
  361. return $scope.importUploader;
  362. }
  363. }
  364. });
  365. modalInstance.result.then(function (selectedItem) {
  366. if (selectedItem) {}
  367. })
  368. }
  369. //知识库下载
  370. $scope.export = function () {
  371. var modalInstance = $modal.open({
  372. templateUrl: 'assets/views/system/tpl/getdown.html',
  373. controller: function ($scope, $modalInstance) {
  374. $scope.key = {};
  375. $scope.title = '知识库下载';
  376. $scope.lable = '下载类型';
  377. $scope.onChange = function (key) {
  378. $scope.key = key;
  379. }
  380. $scope.downmodel = [{
  381. id: 1,
  382. name: "模版下载"
  383. }
  384. ,{
  385. id: 2,
  386. name: "数据导出"
  387. }
  388. ]
  389. $scope.ok = function () {
  390. $modalInstance.close($scope.key);
  391. };
  392. $scope.cancel = function () {
  393. $modalInstance.dismiss('cancel');
  394. };
  395. },
  396. size: 'sm',
  397. });
  398. modalInstance.result.then(function (selectedItem) {
  399. if (selectedItem) {
  400. var selectedItemId = "知识库模版";
  401. if (selectedItem.id == 2) {
  402. selectedItemId = "知识库数据";
  403. }
  404. if(selectedItem.id == 1){
  405. var filadata = {
  406. 'model': selectedItem.id
  407. };
  408. var fUrl = api_user_data.downDataModel('solution',1).getRequestedUrl();
  409. var fMethod = 'GET';
  410. var suffix = '.xlsx';
  411. }else if(selectedItem.id == 2){
  412. var postData = angular.copy($scope.jry_todata.solution);
  413. if($scope.searchstate == 1){
  414. postData.createUser = $rootScope.user;
  415. }
  416. var filadata = {
  417. 'solution': postData
  418. };
  419. var fUrl = api_bpm.downDataModel('solution',1).getRequestedUrl();
  420. var fMethod = 'POST';
  421. var suffix = '.xls';
  422. }
  423. $http({
  424. url: fUrl,
  425. method: fMethod,
  426. data: JSON.stringify(filadata),
  427. headers: {
  428. 'Accept': '*/*'
  429. },
  430. responseType: 'arraybuffer'
  431. }).success(function (data, status, headers, config) {
  432. var file = new Blob([data], {
  433. type: 'application/vnd.ms-excel'
  434. });
  435. //trick to download store a file having its URL
  436. var fileURL = URL.createObjectURL(file);
  437. var a = document.createElement('a');
  438. a.href = fileURL;
  439. a.target = '_blank';
  440. a.download = selectedItemId + suffix;
  441. document.body.appendChild(a);
  442. a.click();
  443. }).error(function (data, status, headers, config) {
  444. console.log(data);
  445. });
  446. }
  447. });
  448. }
  449. // 新增
  450. $scope.createKnowledge = function () {
  451. var data = {
  452. model: {
  453. knowledge: {
  454. createUserId: loginUser.id,
  455. status: 1
  456. }
  457. }
  458. };
  459. $state.go('app.knowledge.create', {
  460. formKey: 'knowledge_create',
  461. service: 'api_solution',
  462. 'model': JSON.stringify(data)
  463. })
  464. }
  465. $scope.seeSolution = function (row) {
  466. api_solution.jry_getHistory({
  467. "idx": 0,
  468. "sum": 999,
  469. "solution": {
  470. "solutionnumber": row.solutionnumber
  471. }
  472. }).then(function (res1) {
  473. $state.go('app.knowledge.detail', {
  474. formKey: 'knowledge_detail',
  475. service: 'api_solution',
  476. 'model': JSON.stringify({
  477. "model": {
  478. "knowledge": row
  479. }
  480. }),
  481. 'history': JSON.stringify(res1.list)
  482. })
  483. })
  484. }
  485. // 编辑
  486. $scope.editSolution = function (item) {
  487. api_solution.jry_getHistory({
  488. "idx": 0,
  489. "sum": 999,
  490. "solution": {
  491. "solutionnumber": item.solutionnumber
  492. }
  493. }).then(function (res1) {
  494. $state.go('app.knowledge.editor', {
  495. formKey: 'knowledge_editor',
  496. service: 'api_solution',
  497. 'model': JSON.stringify({
  498. "model": {
  499. "knowledge": item
  500. }
  501. }),
  502. 'history': JSON.stringify(res1.list)
  503. })
  504. })
  505. console.log(item);
  506. }
  507. //升级
  508. $scope.leve = function (item) {
  509. api_solution.jry_getHistory({
  510. "idx": 0,
  511. "sum": 999,
  512. "solution": {
  513. "solutionnumber": item.solutionnumber
  514. }
  515. }).then(function (res1) {
  516. api_solution.jry_leveVision(item.id).then(function (res) {
  517. console.log(res);
  518. item.visionNumber = res.data;
  519. console.log(item);
  520. $state.go('app.knowledge.leve', {
  521. formKey: 'knowledge_leve',
  522. service: 'api_solution',
  523. 'model': JSON.stringify({
  524. "model": {
  525. "knowledge": item
  526. }
  527. }),
  528. 'history': JSON.stringify(res1.list)
  529. })
  530. })
  531. })
  532. }
  533. //停用
  534. $scope.jry_close = function (item) {
  535. SweetAlert.swal({
  536. title: "",
  537. text: "是否确认将编号【" + item.solutionnumber + "】停用?停用后此知识不会公布在外!",
  538. type: "warning",
  539. showCancelButton: true,
  540. confirmButtonColor: "#DD6B55",
  541. confirmButtonText: "确认停用",
  542. cancelButtonText: "取消操作",
  543. closeOnConfirm: false,
  544. closeOnCancel: false
  545. }, function (isConfirm) {
  546. if (isConfirm) {
  547. item.status.id = 74;
  548. item["recalluser"] = {
  549. id: loginUser.id
  550. };
  551. item["recalltime"] = moment(new Date()).format('YYYY-MM-DD HH:mm:ss');
  552. delete(item["item"]);
  553. item.renewtime = moment(item.renewtime).format('YYYY-MM-DD HH:mm:ss');
  554. $scope.jry_tingyong = {
  555. "solution": item
  556. };
  557. api_solution.jry_updateSolution($scope.jry_tingyong).then(function () {
  558. SweetAlert.swal("操作成功!", "该知识已停用", "success");
  559. $scope.myData = [];
  560. $scope.refreshListData('expand-right', $scope.jry_todata);
  561. })
  562. } else {
  563. SweetAlert.swal("操作取消", "该知识安全", "error");
  564. }
  565. });
  566. }
  567. //审核
  568. $scope.jry_shenhe = function (item) {
  569. api_solution.jry_getHistory({
  570. "idx": 0,
  571. "sum": 999,
  572. "solution": {
  573. "solutionnumber": item.solutionnumber
  574. }
  575. }).then(function (res1) {
  576. $state.go('app.knowledge.jry_shenhe', {
  577. formKey: 'knowledge_shenhe',
  578. service: 'api_solution',
  579. 'model': JSON.stringify({
  580. "model": {
  581. "knowledge": item
  582. }
  583. }),
  584. 'history': JSON.stringify(res1.list)
  585. })
  586. })
  587. }
  588. // 历史记录
  589. $scope.jry_lishi = function (item) {
  590. $state.go('app.knowledge.jry_lishi', {
  591. formKey: 'knowledge_lishi',
  592. service: 'api_solution',
  593. 'model': JSON.stringify({
  594. "model": {
  595. "knowledge": item
  596. }
  597. })
  598. })
  599. }
  600. $scope.uploader = new FileUploader({
  601. url: api_solution.upload().getRequestedUrl(),
  602. alias: "file",
  603. removeAfterUpload: true,
  604. queueLimit: 10
  605. });
  606. $scope.allfilterData = {
  607. key: 'null',
  608. status: 0,
  609. pageIndex: 0,
  610. pageSum: mun,
  611. userId: loginUser.id
  612. }
  613. // 切换tab
  614. $scope.filterSolutionStatus = function (filterStatus) {
  615. $scope.searchstate = filterStatus;
  616. $scope.refreshListData('expand-right', $scope.jry_todata);
  617. }
  618. // 搜索
  619. $scope.searchSolution = function () {
  620. $scope.jry_todata.solution.solutionType = {
  621. "id": ''
  622. };
  623. $scope.refreshListData('expand-right', $scope.jry_todata);
  624. }
  625. $scope.reload = function () {
  626. if (sessionStorage['searchKnowledge']) {
  627. $scope.allfilterData = JSON.parse(sessionStorage.getItem("searchKnowledge"));
  628. if (JSON.parse(sessionStorage.getItem("searchKnowledge")).key) {
  629. $scope.knowledge = angular.extend($scope.knowledge, {
  630. 'searchSolutionInput': JSON.parse(sessionStorage.getItem("searchKnowledge")).key
  631. });
  632. }
  633. }
  634. $scope.refreshListData('expand-right', $scope.jry_todata);
  635. }
  636. $scope.reload()
  637. }]);
  638. app.filter('index', function () {
  639. return function (array) {
  640. return (array || []).map(function (item, index) {
  641. item.order = index + 1;
  642. return item;
  643. });
  644. };
  645. });
  646. app.controller('GridOperatorCtrl', ["$rootScope", '$http', '$scope', function ($rootScope, $http, $scope, $event) {
  647. var loginUser = $rootScope.user;
  648. $scope.bianji = false;
  649. $scope.shenhe = false;
  650. $scope.shengji = false;
  651. $scope.tingyong = false;
  652. for (var i = 0; i < loginUser.menu.length; i++) {
  653. if (loginUser.menu[i].link == "zhishiku_bianji") {
  654. $scope.bianji = true
  655. }
  656. if (loginUser.menu[i].link == "zhishiku_shenhe") {
  657. $scope.shenhe = true
  658. }
  659. if (loginUser.menu[i].link == "zhishiku_shengji") {
  660. $scope.shengji = true
  661. }
  662. if (loginUser.menu[i].link == "zhishiku_tingyong") {
  663. $scope.tingyong = true
  664. }
  665. }
  666. $scope.see = function () {
  667. $scope.colobject.grid.appScope.seeSolution($scope.item);
  668. }
  669. $scope.edit = function () {
  670. console.log($scope.item)
  671. $scope.colobject.grid.appScope.editSolution($scope.item);
  672. }
  673. $scope.leve = function () {
  674. $scope.colobject.grid.appScope.leve($scope.item);
  675. }
  676. $scope.approval = function () {
  677. console.log($scope.item)
  678. $scope.colobject.grid.appScope.jry_shenhe($scope.item);
  679. }
  680. $scope.publish = function () {
  681. $scope.colobject.grid.appScope.jry_lishi($scope.item);
  682. }
  683. $scope.publishnot = function () {
  684. $scope.colobject.grid.appScope.jry_close($scope.item);
  685. }
  686. var jry_loginUser = $rootScope.user;
  687. $scope.ZZKGLY = false;
  688. for (var i = 0; i < jry_loginUser.role.length; i++) {
  689. if (jry_loginUser.role[i].role == "知识库管理员" && jry_loginUser.role[i].rolecode == "solution") {
  690. $scope.ZZKGLY = true;
  691. }
  692. }
  693. //编辑权限判断
  694. $scope.jry_bj = function () {
  695. if ($scope.item.status.name == "待审核" && $scope.item.createUser.id == jry_loginUser.id) {
  696. return true
  697. } else if ($scope.item.status.name == "已驳回" && $scope.item.createUser.id == jry_loginUser.id) {
  698. return true
  699. } else if ($scope.item.status.name == "已驳回" && $scope.ZZKGLY) {
  700. return true
  701. } else {
  702. return false
  703. }
  704. }
  705. // 升级权限判断
  706. $scope.jry_sj = function () {
  707. if ($scope.item.status.name == "已发布" && $scope.item.createUser.id == jry_loginUser.id) {
  708. return true
  709. } else {
  710. return false
  711. }
  712. }
  713. // 审核权限判断
  714. $scope.jry_sh = function () {
  715. if ($scope.item.status.name == "待审核" && $scope.ZZKGLY) {
  716. return true
  717. } else {
  718. return false
  719. }
  720. }
  721. // 历史记录权限判断
  722. $scope.jry_lsjl = function () {
  723. return true
  724. }
  725. // 停用权限判断
  726. $scope.jry_ty = function () {
  727. if ($scope.item.status.name == "已发布" && $scope.ZZKGLY) {
  728. return true
  729. } else {
  730. return false
  731. }
  732. }
  733. }]);
  734. app.directive('gridoperator', function () {
  735. return {
  736. restrict: 'E',
  737. scope: {
  738. item: '=',
  739. colobject: '='
  740. },
  741. controller: 'GridOperatorCtrl',
  742. template: '<div class="links cl-effect-1 ui-grid-cell-contents pull-left">' +
  743. '<a ng-click="edit()" class="bianjifont" ng-show="jry_bj()&&bianji">编辑</a>' +
  744. '<a ng-click="see()" class="bianjifont">查看</a>' +
  745. '<a ng-click="leve()" class="bianjifont" ng-show="jry_sj()&&shengji">升级</a>' +
  746. '<a ng-click="approval()" class="bianjifont" ng-show="jry_sh()&&shenhe">审核</a>' +
  747. '<a ng-click="publish()" class="bianjifont" ng-show="jry_lsjl()">历史记录</a>' +
  748. '<a ng-click="publishnot()" class="bianjifont" ng-show="jry_ty()&&tingyong">停用</a>' +
  749. '</div>'
  750. };
  751. });