knowledgeCtrl.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769
  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. engineer: 1,
  272. }
  273. }).then(function (res) {
  274. $scope.createUserData = res.list
  275. })
  276. }
  277. $scope.getCreateUser()
  278. //导入
  279. $scope.importopen = function () { //导入触发事件
  280. var modalInstance = $modal.open({
  281. templateUrl: 'assets/views/import.html',
  282. controller: function ($scope, $modalInstance, FileUploader) {
  283. var importUploader = $scope.importUploader = new FileUploader({
  284. url: api_user_data.importData1('solution').getRequestedUrl(),
  285. });
  286. importUploader.onWhenAddingFileFailed = function (item /*{File|FileLikeObject}*/ , filter, options) {
  287. console.info('onWhenAddingFileFailed', item, filter, options);
  288. };
  289. importUploader.onAfterAddingFile = function (fileItem) {
  290. console.info('onAfterAddingFile', fileItem);
  291. };
  292. importUploader.onAfterAddingAll = function (addedFileItems) {
  293. console.info('onAfterAddingAll', addedFileItems);
  294. };
  295. importUploader.onProgressItem = function (fileItem, progress) {
  296. console.info('onProgressItem', fileItem, progress);
  297. };
  298. importUploader.onProgressAll = function (progress) {
  299. console.info('onProgressAll', progress);
  300. };
  301. importUploader.onSuccessItem = function (fileItem, response, status, headers) {
  302. if (response.status == 200) {
  303. SweetAlert.swal({
  304. title: "导入成功!",
  305. confirmButtonColor: "#007AFF",
  306. type: "success"
  307. }, function () {
  308. $rootScope.isMask = false;
  309. $scope.refreshListData('expand-right', $scope.jry_todata);
  310. });
  311. } else {
  312. $rootScope.isMask = false;
  313. SweetAlert.swal({
  314. title: "导入失败!",
  315. text: response.error,
  316. type: "error"
  317. })
  318. }
  319. console.info('onSuccessItem', fileItem, response, status, headers);
  320. };
  321. importUploader.onErrorItem = function (fileItem, response, status, headers) {
  322. console.info('onErrorItem', fileItem, response, status, headers);
  323. SweetAlert.swal({
  324. title: "系统错误!",
  325. text: "系统错误,请稍候重试!",
  326. type: "error"
  327. });
  328. };
  329. importUploader.onCancelItem = function (fileItem, response, status, headers) {
  330. console.info('onCancelItem', fileItem, response, status, headers);
  331. };
  332. importUploader.onCompleteItem = function (fileItem, response, status, headers) {
  333. console.info('onCompleteItem', fileItem, response, status, headers);
  334. };
  335. importUploader.onCompleteAll = function () {
  336. console.info('onCompleteAll');
  337. };
  338. $scope.ldloading = {};
  339. $rootScope.isMask = false;
  340. $scope.import = function (style) {
  341. $modalInstance.dismiss('cancel');
  342. $rootScope.isMask = true;
  343. importUploader.onBeforeUploadItem = function (item) {
  344. angular.extend(item.headers, $rootScope.getSession());
  345. item.formData.push({
  346. 'filename': item.file.name
  347. });
  348. item.formData.push({
  349. 'type': "dataImport"
  350. });
  351. console.info('onBeforeUploadItem', item);
  352. };
  353. importUploader.uploadAll();
  354. }
  355. $scope.cancel = function () {
  356. $modalInstance.dismiss('cancel');
  357. };
  358. },
  359. size: 'sm',
  360. resolve: {
  361. importUploader: function () {
  362. return $scope.importUploader;
  363. }
  364. }
  365. });
  366. modalInstance.result.then(function (selectedItem) {
  367. if (selectedItem) {}
  368. })
  369. }
  370. //知识库下载
  371. $scope.export = function () {
  372. var modalInstance = $modal.open({
  373. templateUrl: 'assets/views/system/tpl/getdown.html',
  374. controller: function ($scope, $modalInstance) {
  375. $scope.key = {};
  376. $scope.title = '知识库下载';
  377. $scope.lable = '下载类型';
  378. $scope.onChange = function (key) {
  379. $scope.key = key;
  380. }
  381. $scope.downmodel = [{
  382. id: 1,
  383. name: "模版下载"
  384. }
  385. ,{
  386. id: 2,
  387. name: "数据导出"
  388. }
  389. ]
  390. $scope.ok = function () {
  391. $modalInstance.close($scope.key);
  392. };
  393. $scope.cancel = function () {
  394. $modalInstance.dismiss('cancel');
  395. };
  396. },
  397. size: 'sm',
  398. });
  399. modalInstance.result.then(function (selectedItem) {
  400. if (selectedItem) {
  401. var selectedItemId = "知识库模版";
  402. if (selectedItem.id == 2) {
  403. selectedItemId = "知识库数据";
  404. }
  405. if(selectedItem.id == 1){
  406. var filadata = {
  407. 'model': selectedItem.id
  408. };
  409. var fUrl = api_user_data.downDataModel('solution',1).getRequestedUrl();
  410. var fMethod = 'GET';
  411. var suffix = '.xlsx';
  412. }else if(selectedItem.id == 2){
  413. var postData = angular.copy($scope.jry_todata.solution);
  414. if($scope.searchstate == 1){
  415. postData.createUser = $rootScope.user;
  416. }
  417. var filadata = {
  418. 'solution': postData
  419. };
  420. var fUrl = api_bpm.downDataModel('solution',1).getRequestedUrl();
  421. var fMethod = 'POST';
  422. var suffix = '.xls';
  423. }
  424. $http({
  425. url: fUrl,
  426. method: fMethod,
  427. data: JSON.stringify(filadata),
  428. headers: {
  429. 'Accept': '*/*'
  430. },
  431. responseType: 'arraybuffer'
  432. }).success(function (data, status, headers, config) {
  433. var file = new Blob([data], {
  434. type: 'application/vnd.ms-excel'
  435. });
  436. //trick to download store a file having its URL
  437. var fileURL = URL.createObjectURL(file);
  438. var a = document.createElement('a');
  439. a.href = fileURL;
  440. a.target = '_blank';
  441. a.download = selectedItemId + suffix;
  442. document.body.appendChild(a);
  443. a.click();
  444. }).error(function (data, status, headers, config) {
  445. console.log(data);
  446. });
  447. }
  448. });
  449. }
  450. // 新增
  451. $scope.createKnowledge = function () {
  452. var data = {
  453. model: {
  454. knowledge: {
  455. createUserId: loginUser.id,
  456. status: 1
  457. }
  458. }
  459. };
  460. $state.go('app.knowledge.create', {
  461. formKey: 'knowledge_create',
  462. service: 'api_solution',
  463. 'model': JSON.stringify(data)
  464. })
  465. }
  466. $scope.seeSolution = function (row) {
  467. api_solution.jry_getHistory({
  468. "idx": 0,
  469. "sum": 999,
  470. "solution": {
  471. "solutionnumber": row.solutionnumber
  472. }
  473. }).then(function (res1) {
  474. $state.go('app.knowledge.detail', {
  475. formKey: 'knowledge_detail',
  476. service: 'api_solution',
  477. 'model': JSON.stringify({
  478. "model": {
  479. "knowledge": row
  480. }
  481. }),
  482. 'history': JSON.stringify(res1.list)
  483. })
  484. })
  485. }
  486. // 编辑
  487. $scope.editSolution = function (item) {
  488. api_solution.jry_getHistory({
  489. "idx": 0,
  490. "sum": 999,
  491. "solution": {
  492. "solutionnumber": item.solutionnumber
  493. }
  494. }).then(function (res1) {
  495. $state.go('app.knowledge.editor', {
  496. formKey: 'knowledge_editor',
  497. service: 'api_solution',
  498. 'model': JSON.stringify({
  499. "model": {
  500. "knowledge": item
  501. }
  502. }),
  503. 'history': JSON.stringify(res1.list)
  504. })
  505. })
  506. console.log(item);
  507. }
  508. //升级
  509. $scope.leve = function (item) {
  510. api_solution.jry_getHistory({
  511. "idx": 0,
  512. "sum": 999,
  513. "solution": {
  514. "solutionnumber": item.solutionnumber
  515. }
  516. }).then(function (res1) {
  517. api_solution.jry_leveVision(item.id).then(function (res) {
  518. console.log(res);
  519. item.visionNumber = res.data;
  520. console.log(item);
  521. $state.go('app.knowledge.leve', {
  522. formKey: 'knowledge_leve',
  523. service: 'api_solution',
  524. 'model': JSON.stringify({
  525. "model": {
  526. "knowledge": item
  527. }
  528. }),
  529. 'history': JSON.stringify(res1.list)
  530. })
  531. })
  532. })
  533. }
  534. //停用
  535. $scope.jry_close = function (item) {
  536. SweetAlert.swal({
  537. title: "",
  538. text: "是否确认将编号【" + item.solutionnumber + "】停用?停用后此知识不会公布在外!",
  539. type: "warning",
  540. showCancelButton: true,
  541. confirmButtonColor: "#DD6B55",
  542. confirmButtonText: "确认停用",
  543. cancelButtonText: "取消操作",
  544. closeOnConfirm: false,
  545. closeOnCancel: false
  546. }, function (isConfirm) {
  547. if (isConfirm) {
  548. item.status.id = 74;
  549. item["recalluser"] = {
  550. id: loginUser.id
  551. };
  552. item["recalltime"] = moment(new Date()).format('YYYY-MM-DD HH:mm:ss');
  553. delete(item["item"]);
  554. item.renewtime = moment(item.renewtime).format('YYYY-MM-DD HH:mm:ss');
  555. $scope.jry_tingyong = {
  556. "solution": item
  557. };
  558. api_solution.jry_updateSolution($scope.jry_tingyong).then(function () {
  559. SweetAlert.swal("操作成功!", "该知识已停用", "success");
  560. $scope.myData = [];
  561. $scope.refreshListData('expand-right', $scope.jry_todata);
  562. })
  563. } else {
  564. SweetAlert.swal("操作取消", "该知识安全", "error");
  565. }
  566. });
  567. }
  568. //审核
  569. $scope.jry_shenhe = function (item) {
  570. api_solution.jry_getHistory({
  571. "idx": 0,
  572. "sum": 999,
  573. "solution": {
  574. "solutionnumber": item.solutionnumber
  575. }
  576. }).then(function (res1) {
  577. $state.go('app.knowledge.jry_shenhe', {
  578. formKey: 'knowledge_shenhe',
  579. service: 'api_solution',
  580. 'model': JSON.stringify({
  581. "model": {
  582. "knowledge": item
  583. }
  584. }),
  585. 'history': JSON.stringify(res1.list)
  586. })
  587. })
  588. }
  589. // 历史记录
  590. $scope.jry_lishi = function (item) {
  591. $state.go('app.knowledge.jry_lishi', {
  592. formKey: 'knowledge_lishi',
  593. service: 'api_solution',
  594. 'model': JSON.stringify({
  595. "model": {
  596. "knowledge": item
  597. }
  598. })
  599. })
  600. }
  601. $scope.uploader = new FileUploader({
  602. url: api_solution.upload().getRequestedUrl(),
  603. alias: "file",
  604. removeAfterUpload: true,
  605. queueLimit: 10
  606. });
  607. $scope.allfilterData = {
  608. key: 'null',
  609. status: 0,
  610. pageIndex: 0,
  611. pageSum: mun,
  612. userId: loginUser.id
  613. }
  614. // 切换tab
  615. $scope.filterSolutionStatus = function (filterStatus) {
  616. $scope.searchstate = filterStatus;
  617. $scope.refreshListData('expand-right', $scope.jry_todata);
  618. }
  619. // 搜索
  620. $scope.searchSolution = function () {
  621. $scope.jry_todata.solution.solutionType = {
  622. "id": ''
  623. };
  624. $scope.refreshListData('expand-right', $scope.jry_todata);
  625. }
  626. $scope.reload = function () {
  627. if (sessionStorage['searchKnowledge']) {
  628. $scope.allfilterData = JSON.parse(sessionStorage.getItem("searchKnowledge"));
  629. if (JSON.parse(sessionStorage.getItem("searchKnowledge")).key) {
  630. $scope.knowledge = angular.extend($scope.knowledge, {
  631. 'searchSolutionInput': JSON.parse(sessionStorage.getItem("searchKnowledge")).key
  632. });
  633. }
  634. }
  635. $scope.refreshListData('expand-right', $scope.jry_todata);
  636. }
  637. $scope.reload()
  638. }]);
  639. app.filter('index', function () {
  640. return function (array) {
  641. return (array || []).map(function (item, index) {
  642. item.order = index + 1;
  643. return item;
  644. });
  645. };
  646. });
  647. app.controller('GridOperatorCtrl', ["$rootScope", '$http', '$scope', function ($rootScope, $http, $scope, $event) {
  648. var loginUser = $rootScope.user;
  649. $scope.bianji = false;
  650. $scope.shenhe = false;
  651. $scope.shengji = false;
  652. $scope.tingyong = false;
  653. for (var i = 0; i < loginUser.menu.length; i++) {
  654. if (loginUser.menu[i].link == "zhishiku_bianji") {
  655. $scope.bianji = true
  656. }
  657. if (loginUser.menu[i].link == "zhishiku_shenhe") {
  658. $scope.shenhe = true
  659. }
  660. if (loginUser.menu[i].link == "zhishiku_shengji") {
  661. $scope.shengji = true
  662. }
  663. if (loginUser.menu[i].link == "zhishiku_tingyong") {
  664. $scope.tingyong = true
  665. }
  666. }
  667. $scope.see = function () {
  668. $scope.colobject.grid.appScope.seeSolution($scope.item);
  669. }
  670. $scope.edit = function () {
  671. console.log($scope.item)
  672. $scope.colobject.grid.appScope.editSolution($scope.item);
  673. }
  674. $scope.leve = function () {
  675. $scope.colobject.grid.appScope.leve($scope.item);
  676. }
  677. $scope.approval = function () {
  678. console.log($scope.item)
  679. $scope.colobject.grid.appScope.jry_shenhe($scope.item);
  680. }
  681. $scope.publish = function () {
  682. $scope.colobject.grid.appScope.jry_lishi($scope.item);
  683. }
  684. $scope.publishnot = function () {
  685. $scope.colobject.grid.appScope.jry_close($scope.item);
  686. }
  687. var jry_loginUser = $rootScope.user;
  688. $scope.ZZKGLY = false;
  689. for (var i = 0; i < jry_loginUser.role.length; i++) {
  690. if (jry_loginUser.role[i].role == "知识库管理员" && jry_loginUser.role[i].rolecode == "solution") {
  691. $scope.ZZKGLY = true;
  692. }
  693. }
  694. //编辑权限判断
  695. $scope.jry_bj = function () {
  696. if ($scope.item.status.name == "待审核" && $scope.item.createUser.id == jry_loginUser.id) {
  697. return true
  698. } else if ($scope.item.status.name == "已驳回" && $scope.item.createUser.id == jry_loginUser.id) {
  699. return true
  700. } else if ($scope.item.status.name == "已驳回" && $scope.ZZKGLY) {
  701. return true
  702. } else {
  703. return false
  704. }
  705. }
  706. // 升级权限判断
  707. $scope.jry_sj = function () {
  708. if ($scope.item.status.name == "已发布" && $scope.item.createUser.id == jry_loginUser.id) {
  709. return true
  710. } else {
  711. return false
  712. }
  713. }
  714. // 审核权限判断
  715. $scope.jry_sh = function () {
  716. if ($scope.item.status.name == "待审核" && $scope.ZZKGLY) {
  717. return true
  718. } else {
  719. return false
  720. }
  721. }
  722. // 历史记录权限判断
  723. $scope.jry_lsjl = function () {
  724. return true
  725. }
  726. // 停用权限判断
  727. $scope.jry_ty = function () {
  728. if ($scope.item.status.name == "已发布" && $scope.ZZKGLY) {
  729. return true
  730. } else {
  731. return false
  732. }
  733. }
  734. }]);
  735. app.directive('gridoperator', function () {
  736. return {
  737. restrict: 'E',
  738. scope: {
  739. item: '=',
  740. colobject: '='
  741. },
  742. controller: 'GridOperatorCtrl',
  743. template: '<div class="links cl-effect-1 ui-grid-cell-contents pull-left">' +
  744. '<a ng-click="edit()" class="bianjifont" ng-show="jry_bj()&&bianji">编辑</a>' +
  745. '<a ng-click="see()" class="bianjifont">查看</a>' +
  746. '<a ng-click="leve()" class="bianjifont" ng-show="jry_sj()&&shengji">升级</a>' +
  747. '<a ng-click="approval()" class="bianjifont" ng-show="jry_sh()&&shenhe">审核</a>' +
  748. '<a ng-click="publish()" class="bianjifont" ng-show="jry_lsjl()">历史记录</a>' +
  749. '<a ng-click="publishnot()" class="bianjifont" ng-show="jry_ty()&&tingyong">停用</a>' +
  750. '</div>'
  751. };
  752. });