businessCtrl.js 66 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583
  1. 'use strict';
  2. app.controller('businessListCtrl', ["$scope", "$http", "i18nService", "$rootScope", "$state", "$timeout", "moment", "$interval", "$modal", "$stateParams", "SweetAlert", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_bpm_domain", "api_text", "api_bpm_data", "api_user_data", "api_cmdb", "api_cmdb2", "FileUploader", "api_solution", "api_cmdb3", function ($scope, $http, i18nService, $rootScope, $state, $timeout, moment, $interval, $modal, $stateParams, SweetAlert, uiGridConstants, uiGridGroupingConstants, Restangular, api_bpm_domain, api_text, api_bpm_data, api_user_data, api_cmdb, api_cmdb2, FileUploader, api_solution, api_cmdb3) {
  3. $scope.add_mask = false;//蒙版
  4. $scope.add_Popup = false;//弹出框
  5. $rootScope.ywxt_edit_mask = false;
  6. $rootScope.ywxt_edit_Popup = false;
  7. $scope.lb_select_val = {};//列表下拉选择框
  8. $scope.add_managementUnit = {};//单位名称下拉框
  9. $scope.add_deploymentArea = {};//部署区域下拉框
  10. $scope.add_influence_data = {};//紧急度
  11. $scope.ywxt_edit_influence = {};//编辑紧急度
  12. $scope.ywxt_edit_managementUnit = {};//编辑单位名称下拉框
  13. $scope.ywxt_edit_deploymentArea = {};//编辑管理区域下拉框
  14. // 关闭编辑
  15. $scope.edit_close = function () {
  16. $(".form").scrollTop(0);
  17. $rootScope.ywxt_edit_mask = false;
  18. $rootScope.toedit = "new_top";
  19. $scope.edit_QY = "";
  20. // $rootScope.ywxt_edit_Popup = false;
  21. $scope.ywxt_edit_influence = {};
  22. $scope.ywxt_edit_managementUnit = {};
  23. $scope.ywxt_edit_deploymentArea = {};
  24. };
  25. // 监听新增虚拟机数量
  26. $scope.$watch('add_virtualMachinesNum', function (val, oldval) {
  27. var zhengze = /^\w{0,4}$/;
  28. if (!zhengze.exec(val)) {
  29. $scope.add_virtualMachinesNum = oldval;
  30. }
  31. });
  32. // 监听编辑虚拟机数量
  33. $scope.$watch('ywxt_edit_virtualMachinesNum', function (val, oldval) {
  34. var zhengze = /^\w{0,4}$/;
  35. if (!zhengze.exec(val)) {
  36. $scope.ywxt_edit_virtualMachinesNum = oldval;
  37. }
  38. });
  39. // 监听新增总CPU核数(核)
  40. $scope.$watch('add_cpusum', function (val, oldval) {
  41. var zhengze = /^\w{0,4}$/;
  42. if (!zhengze.exec(val)) {
  43. $scope.add_cpusum = oldval;
  44. }
  45. });
  46. // 监听编辑总CPU核数(核)
  47. $scope.$watch('ywxt_edit_cpusum', function (val, oldval) {
  48. var zhengze = /^\w{0,4}$/;
  49. if (!zhengze.exec(val)) {
  50. $scope.ywxt_edit_cpusum = oldval;
  51. }
  52. });
  53. // 监听新增总内存大小(GB)
  54. $scope.$watch('add_memorysize', function (val, oldval) {
  55. var zhengze = /^\w{0,4}$/;
  56. if (!zhengze.exec(val)) {
  57. $scope.add_memorysize = oldval;
  58. }
  59. });
  60. // 监听编辑总内存大小(GB)
  61. $scope.$watch('ywxt_edit_memorysize', function (val, oldval) {
  62. var zhengze = /^\w{0,4}$/;
  63. if (!zhengze.exec(val)) {
  64. $scope.ywxt_edit_memorysize = oldval;
  65. }
  66. });
  67. // 监听新增磁盘总大小(GB)
  68. $scope.$watch('add_disksize', function (val, oldval) {
  69. var zhengze = /^\w{0,4}$/;
  70. if (!zhengze.exec(val)) {
  71. $scope.add_disksize = oldval;
  72. }
  73. });
  74. // 监听编辑磁盘总大小(GB)
  75. $scope.$watch('ywxt_edit_disksize', function (val, oldval) {
  76. var zhengze = /^\w{0,4}$/;
  77. if (!zhengze.exec(val)) {
  78. $scope.ywxt_edit_disksize = oldval;
  79. }
  80. });
  81. // 验证新增开发手机号码
  82. $scope.new_kaifa = function () {
  83. var zhengze = /^[1][3,4,5,7,8][0-9]{9}$/;
  84. if (!zhengze.exec($scope.add_softwareLinkmanPhone)) {
  85. SweetAlert.swal({
  86. title: "电话格式错误",
  87. text: "请输出有效手机号码!",
  88. type: "error"
  89. });
  90. $scope.add_softwareLinkmanPhone = ''
  91. }
  92. }
  93. // 验证新增运维手机号码
  94. $scope.new_yunwei = function () {
  95. var zhengze = /^[1][3,4,5,7,8][0-9]{9}$/;
  96. if (!zhengze.exec($scope.add_operationsManagerPhone)) {
  97. SweetAlert.swal({
  98. title: "电话格式错误",
  99. text: "请输出有效手机号码!",
  100. type: "error"
  101. });
  102. $scope.add_operationsManagerPhone = ''
  103. }
  104. }
  105. // 验证编辑开发手机号码
  106. $scope.edit_kaifa = function () {
  107. var zhengze = /^[1][3,4,5,7,8][0-9]{9}$/;
  108. if (!zhengze.exec($scope.ywxt_edit_softwareLinkmanPhone)) {
  109. SweetAlert.swal({
  110. title: "电话格式错误",
  111. text: "请输出有效手机号码!",
  112. type: "error"
  113. });
  114. $scope.ywxt_edit_softwareLinkmanPhone = ''
  115. }
  116. }
  117. // 验证编辑运维手机号码
  118. $scope.edit_yunwei = function () {
  119. var zhengze = /^[1][3,4,5,7,8][0-9]{9}$/;
  120. if (!zhengze.exec($scope.ywxt_edit_operationsManagerPhone)) {
  121. SweetAlert.swal({
  122. title: "电话格式错误",
  123. text: "请输出有效手机号码!",
  124. type: "error"
  125. });
  126. $scope.ywxt_edit_operationsManagerPhone = ''
  127. }
  128. }
  129. // 编辑
  130. // 监听编辑下拉框单位名称数据
  131. $scope.$watch('ywxt_edit_managementUnit.management_data', function (val) {
  132. $scope.ywxt_edit_managementUnit_id = val;
  133. });
  134. // 监听编辑单位名称
  135. $scope.$watch('ywxt_edit_managementUnit_caozuo', function (val) {
  136. // console.log(val);
  137. $scope.ywxt_edit_managementUnit_id = val;
  138. });
  139. // 监听编辑部门名称
  140. $scope.$watch('ywxt_edit_depName_caozuo', function (val) {
  141. $scope.ywxt_edit_depName = val;
  142. });
  143. // 监听编辑业务系统名称
  144. $scope.$watch('ywxt_edit_serviceName_caozuo', function (val) {
  145. $scope.ywxt_edit_serviceName = val;
  146. });
  147. // 监听编辑业务系统简称
  148. // $scope.$watch('ywxt_edit_shortName_caozuo', function (val) {
  149. // $scope.ywxt_edit_shortName = val;
  150. // });
  151. // 监听编辑虚拟机数量
  152. $scope.$watch('ywxt_edit_virtualMachinesNum_caozuo', function (val) {
  153. $scope.ywxt_edit_virtualMachinesNum = val;
  154. });
  155. // 监听编辑总CPU核数(核)
  156. $scope.$watch('ywxt_edit_cpusum_caozuo', function (val) {
  157. $scope.ywxt_edit_cpusum = val;
  158. });
  159. // 监听编辑总内存大小(GB)
  160. $scope.$watch('ywxt_edit_memorysize_caozuo', function (val) {
  161. $scope.ywxt_edit_memorysize = val;
  162. });
  163. // 监听编辑磁盘总大小(GB)
  164. $scope.$watch('ywxt_edit_disksize_caozuo', function (val) {
  165. $scope.ywxt_edit_disksize = val;
  166. });
  167. // 监听编辑部署区域
  168. $scope.$watch('ywxt_edit_deploymentArea_caozuo', function (val) {
  169. $scope.ywxt_edit_deploymentArea_name = val;
  170. });
  171. // 监听编辑下拉框部署区域
  172. $scope.$watch('ywxt_edit_deploymentArea.area_data', function (val) {
  173. if (val) {
  174. $scope.ywxt_edit_deploymentArea_name = val.area;
  175. }
  176. });
  177. // 监听编辑IP地址段
  178. $scope.$watch('ywxt_edit_ipAddress_caozuo', function (val) {
  179. $scope.ywxt_edit_ipAddress = val;
  180. });
  181. // 监听编辑软件开发单位
  182. $scope.$watch('ywxt_edit_softwareDeveloper_caozuo', function (val) {
  183. $scope.ywxt_edit_softwareDeveloper = val;
  184. });
  185. // 监听编辑软件开发联系人
  186. $scope.$watch('ywxt_edit_softwareLinkman_caozuo', function (val) {
  187. $scope.ywxt_edit_softwareLinkman = val;
  188. });
  189. // 监听编辑软件开发联系人电话
  190. $scope.$watch('ywxt_edit_softwareLinkmanPhone_caozuo', function (val) {
  191. $scope.ywxt_edit_softwareLinkmanPhone = val;
  192. });
  193. // 监听编辑运维管理员
  194. $scope.$watch('ywxt_edit_operationsManager_caozuo', function (val) {
  195. $scope.ywxt_edit_operationsManager = val;
  196. });
  197. // 监听编辑运维管理员联系电话
  198. $scope.$watch('ywxt_edit_operationsManagerPhone_caozuo', function (val) {
  199. $scope.ywxt_edit_operationsManagerPhone = val;
  200. });
  201. // 监听业务测试地址
  202. $scope.$watch('ywxt_edit_serviceTestingAddress_caozuo', function (val) {
  203. $scope.ywxt_edit_serviceTestingAddress = val;
  204. });
  205. // 监听影响度
  206. $scope.$watch('ywxt_edit_influence_caozuo', function (val) {
  207. $scope.ywxt_edit_influence_id = val;
  208. });
  209. // 监听影响度下拉数据
  210. $scope.$watch('ywxt_edit_influence.flu_data', function (val) {
  211. $scope.ywxt_edit_influence_id = val;
  212. });
  213. // 监听编辑备注
  214. $scope.$watch('ywxt_edit_remark_caozuo', function (val) {
  215. $scope.ywxt_edit_remark = val;
  216. });
  217. // 保存编辑
  218. $scope.edit_preservation = function () {
  219. if ($scope.ywxt_edit_serviceName == undefined || $scope.ywxt_edit_serviceName == '') {
  220. SweetAlert.swal({
  221. title: "修改失败",
  222. text: "必填信息请填写完整!",
  223. type: "error"
  224. });
  225. } else {
  226. console.log($scope.ywxt_edit_deploymentArea_name)
  227. var edit_data = {
  228. "managementUnitId": $scope.ywxt_edit_managementUnit_id.id,
  229. "serviceName": $scope.ywxt_edit_serviceName,
  230. // "shortName": $scope.ywxt_edit_shortName,
  231. "depName": $scope.ywxt_edit_depName,
  232. "cpusum": $scope.ywxt_edit_cpusum,
  233. "memorysize": $scope.ywxt_edit_memorysize,
  234. "disksize": $scope.ywxt_edit_disksize,
  235. "virtualMachinesNum": $scope.ywxt_edit_virtualMachinesNum,
  236. "deploymentArea": $scope.ywxt_edit_deploymentArea_name,
  237. // "deploymentArea": $scope.ywxt_edit_deploymentArea.area_data?$scope.ywxt_edit_deploymentArea.area_data.area:"",
  238. // "deploymentAreaId": $scope.ywxt_edit_deploymentArea.area_data?$scope.ywxt_edit_deploymentArea.area_data.id:"",
  239. "ipAddress": $scope.ywxt_edit_ipAddress,
  240. "softwareDeveloper": $scope.ywxt_edit_softwareDeveloper,
  241. "softwareLinkman": $scope.ywxt_edit_softwareLinkman,
  242. "softwareLinkmanPhone": $scope.ywxt_edit_softwareLinkmanPhone,
  243. "operationsManager": $scope.ywxt_edit_operationsManager,
  244. "operationsManagerPhone": $scope.ywxt_edit_operationsManagerPhone,
  245. "serviceTestingAddress": $scope.ywxt_edit_serviceTestingAddress,
  246. // "influence":{id:$scope.ywxt_edit_influence_id.id},
  247. "influence": { id: 1 },
  248. "remark": $scope.ywxt_edit_remark,
  249. "id": $rootScope.ywxt_edit_id,
  250. "deleteFlag": 0
  251. }
  252. api_cmdb2.edit_preservation1("operationSystem", edit_data).then(function (data) {
  253. $(".form").scrollTop(0);
  254. $rootScope.ywxt_edit_mask = false;
  255. $rootScope.ywxt_edit_Popup = false;
  256. $rootScope.toedit = "new_top";
  257. var pdKey = "operationSystem";
  258. if ($scope.fenye == undefined) {
  259. $scope.fenye = 0
  260. };
  261. $scope.refreshData = function (style, filterData) {
  262. $scope.myData = [];
  263. $scope.gridOptions['sum'] = filterData.sum;
  264. api_cmdb2.fetchDataList1(pdKey, filterData).then(function (data) {
  265. if (data.data) {
  266. var myData = Restangular.stripRestangular(data);
  267. var list = [];
  268. $scope.gridOptions['totalItems'] = myData.resultCount;
  269. $scope.myData = myData.data;
  270. for (var i = 0; i < $scope.myData.length; i++) {
  271. $scope.myData[i]['item'] = i + 1 + filterData.idx * filterData.sum
  272. }
  273. } else {
  274. SweetAlert.swal({
  275. title: "系统错误",
  276. text: "请稍后再试!",
  277. type: "error"
  278. });
  279. }
  280. $scope.ldloading[style.replace('-', '_')] = false;
  281. }, function () {
  282. $scope.ldloading[style.replace('-', '_')] = false;
  283. });
  284. };
  285. $scope.ywxt_edit_managementUnit = {};
  286. $scope.ywxt_edit_deploymentArea = {};
  287. $scope.edit_QY = "";
  288. SweetAlert.swal({
  289. title: "修改成功",
  290. confirmButtonColor: "#007AFF",
  291. type: "success"
  292. });
  293. $scope.refreshData("zoom-in", { "idx": $scope.fenye, "sum": mun });
  294. })
  295. }
  296. }
  297. //弹框下滑
  298. $rootScope.toedit = "new_top";
  299. // 新增单位名称
  300. $scope.new_management_tankuang_bg = false;
  301. $scope.new_management_tankuang = "new_management_tankuang_before";
  302. // 新增单位名称按钮
  303. $scope.add_management = function () {
  304. $scope.new_management_tankuang_bg = true;
  305. $scope.new_management_tankuang = "new_management_tankuang_after";
  306. $scope.new_management_name = ""
  307. }
  308. // 关闭新增单位名称
  309. $scope.new_management_clo = function () {
  310. $scope.new_management_tankuang_bg = false;
  311. $scope.new_management_tankuang = "new_management_tankuang_before";
  312. }
  313. // 确定单位名称
  314. $scope.new_management_mit = function () {
  315. console.log($scope.new_management_tankuang_data);
  316. if ($scope.new_management_name == '' || $scope.new_management_name == undefined) {
  317. SweetAlert.swal({
  318. title: "新增错误",
  319. text: "新增单位名称不能为空!",
  320. type: "error"
  321. });
  322. } else {
  323. var new_management_tankuang_data = {
  324. name: $scope.new_management_name
  325. }
  326. api_cmdb2.add_preservation1("managementUnit", new_management_tankuang_data).then(function (data) {
  327. })
  328. $scope.new_management_tankuang_bg = false;
  329. $scope.new_management_tankuang = "new_management_tankuang_before";
  330. $scope.refreshDat();
  331. SweetAlert.swal({
  332. title: "新增单位名称成功",
  333. confirmButtonColor: "#007AFF",
  334. type: "success"
  335. });
  336. }
  337. }
  338. $scope.get_managementUnit = function () {
  339. $scope.refreshDat();
  340. }
  341. //新增
  342. $scope.newly = function () {
  343. $scope.add_managementUnit = {};//单位名称下拉框
  344. $scope.add_deploymentArea = {};//部署区域下拉框
  345. // $scope.add_Popup = true;
  346. $scope.add_mask = true;
  347. $rootScope.toedit = "new_after";
  348. $(".form").scrollTop(0)
  349. };
  350. //关闭新增
  351. $scope.close = function () {
  352. $scope.add_mask = false;//蒙版
  353. $rootScope.toedit = "new_top";
  354. $scope.more_XR = "";
  355. // $scope.add_Popup = false;//弹出框
  356. $scope.add_managementUnit = {};//新增单位名称
  357. $scope.add_depName = "";//新增部门名称
  358. $scope.add_serviceName = "";//新增业务系统名称
  359. // $scope.add_shortName = "";//新增业务系统简称
  360. $scope.add_virtualMachinesNum = "";//新增虚拟机数量
  361. $scope.add_cpusum = "";//新增总CPU核数(核)
  362. $scope.add_memorysize = "";//新增总内存大小(GB)
  363. $scope.add_disksize = "";//新增磁盘总大小(GB)
  364. $scope.add_deploymentArea = {};//新增部署区域
  365. $scope.add_ipAddress = "";//新增IP地址段
  366. $scope.add_softwareDeveloper = "";//新增软件开发单位
  367. $scope.add_softwareLinkman = "";//新增软件开发联系人
  368. $scope.add_softwareLinkmanPhone = "";//新增软件开发联系人电话
  369. $scope.add_operationsManager = "";//新增运维管理员
  370. $scope.add_operationsManagerPhone = "";//新增运维管理员联系电话
  371. $scope.add_serviceTestingAddress = "";//新增业务测试地址
  372. $scope.add_influence_data = {};//紧急度
  373. $scope.add_remark = "";//新增备注
  374. // $scope.add_influence="";//新增影响度
  375. $scope.file_name_see = "请上传附件";
  376. $(".form").scrollTop(0)
  377. };
  378. $scope.more_XR = "";
  379. $scope.jry_moreCeshi = function () {
  380. // console.log($scope.add_deploymentArea);
  381. // $scope.more_XR.push($scope.add_deploymentArea.area_data.area);
  382. // $scope.more_XR=$scope.more_XR+","+$scope.add_deploymentArea.area_data.area;
  383. $scope.more_XR == "" ? $scope.more_XR = $scope.more_XR + $scope.add_deploymentArea.area_data.area : $scope.more_XR = $scope.more_XR + "," + $scope.add_deploymentArea.area_data.area;
  384. // console.log($scope.more_XR);
  385. }
  386. $scope.edit_QY = "";
  387. $scope.edit_areaMore = function () {
  388. console.log($scope.ywxt_edit_deploymentArea);
  389. $scope.edit_QY = $scope.ywxt_edit_deploymentArea.area_data.area;
  390. // $scope.edit_QY == "" ? $scope.edit_QY = $scope.edit_QY + $scope.ywxt_edit_deploymentArea.area_data.area : $scope.edit_QY = $scope.edit_QY + "," + $scope.ywxt_edit_deploymentArea.area_data.area;
  391. console.log($scope.edit_QY)
  392. }
  393. // 新增保存按钮
  394. $scope.preservation = function () {
  395. console.log($scope.add_deploymentArea.area_data == undefined);
  396. if ($scope.add_managementUnit.management_data == undefined || $scope.add_serviceName == undefined || $scope.add_managementUnit.management_data == '' || $scope.add_serviceName == '') {
  397. // alert("请输入或选择必填信息");
  398. SweetAlert.swal({
  399. title: "新增失败",
  400. text: "必填信息请填写完整!",
  401. type: "error"
  402. });
  403. } else {
  404. var add_data = {
  405. "managementUnitId": $scope.add_managementUnit.management_data.id,
  406. "serviceName": $scope.add_serviceName,
  407. // "shortName": $scope.add_shortName,
  408. "depName": $scope.add_depName,
  409. "cpusum": $scope.add_cpusum,
  410. "memorysize": $scope.add_memorysize,
  411. "disksize": $scope.add_disksize,
  412. "virtualMachinesNum": $scope.add_virtualMachinesNum,
  413. // "deploymentArea": $scope.add_deploymentArea.area_data.area,
  414. // "deploymentArea": $scope.add_deploymentArea.area_data==undefined?"":$scope.add_deploymentArea.area_data.area,
  415. "deploymentArea": $scope.more_XR,
  416. "ipAddress": $scope.add_ipAddress,
  417. "softwareDeveloper": $scope.add_softwareDeveloper,
  418. "softwareLinkman": $scope.add_softwareLinkman,
  419. "softwareLinkmanPhone": $scope.add_softwareLinkmanPhone,
  420. "operationsManager": $scope.add_operationsManager,
  421. "operationsManagerPhone": $scope.add_operationsManagerPhone,
  422. "serviceTestingAddress": $scope.add_serviceTestingAddress,
  423. "influence": { id: 1 },
  424. "remark": $scope.add_remark,
  425. "deleteFlag": 1
  426. }
  427. api_cmdb2.add_preservation1("operationSystem", add_data).then(function (res) {
  428. var adid = res.id;
  429. if ($scope.fileItem != undefined) {
  430. $scope.fileItem.url = $scope.fileItem.url + adid;
  431. }
  432. if (res.status == "200") {
  433. // $rootScope.ywxt_edit_managementUnit.management_data.name = "请选择单位名称";//新增单位名称
  434. $scope.add_serviceName = "";//新增业务系统
  435. $scope.add_depName = "";//新增部门名称
  436. $scope.more_XR = "";
  437. // $scope.add_shortName = "";//新增业务系统简称
  438. $scope.add_virtualMachinesNum = '';//新增虚拟机数量
  439. $scope.add_cpusum = '';//新增总CPU核数(核)
  440. $scope.add_memorysize = '';//新增总内存大小(GB)
  441. $scope.add_disksize = '';//新增磁盘总大小(GB)
  442. $scope.add_managementUnit = {};//单位名称下拉框
  443. $scope.add_deploymentArea = {};//新增部署区域
  444. $scope.add_ipAddress = "";//新增IP地址段
  445. $scope.add_softwareDeveloper = "";//新增软件开发单位
  446. $scope.add_softwareLinkman = "";//新增软件开发联系人
  447. $scope.add_softwareLinkmanPhone = "";//新增软件开发联系人电话
  448. $scope.add_operationsManager = "";//新增运维管理员
  449. $scope.add_operationsManagerPhone = "";//新增运维管理员联系电话
  450. $scope.add_serviceTestingAddress = "";//新增业务测试地址
  451. $scope.add_influence_data = {};//新增影响度
  452. $scope.add_remark = "";//新增备注
  453. $(".form").scrollTop(0);
  454. $scope.add_mask = false;//蒙版
  455. $scope.add_Popup = false;//弹出框
  456. $scope.refreshDat();
  457. $rootScope.toedit = "new_top";
  458. var pdKey = "operationSystem";
  459. if ($scope.fenye == undefined) {
  460. $scope.fenye = 0
  461. };
  462. $scope.refreshData = function (style, filterData) {
  463. $scope.myData = [];
  464. $scope.gridOptions['sum'] = filterData.sum;
  465. api_cmdb2.fetchDataList1(pdKey, filterData).then(function (data) {
  466. if (data.data) {
  467. var myData = Restangular.stripRestangular(data);
  468. var list = [];
  469. $scope.gridOptions['totalItems'] = myData.resultCount;
  470. $scope.myData = myData.data;
  471. for (var i = 0; i < $scope.myData.length; i++) {
  472. $scope.myData[i]['item'] = i + 1 + filterData.idx * filterData.sum
  473. }
  474. } else {
  475. SweetAlert.swal({
  476. title: "系统错误",
  477. text: "请稍后再试!",
  478. type: "error"
  479. });
  480. }
  481. $scope.ldloading[style.replace('-', '_')] = false;
  482. }, function () {
  483. $scope.ldloading[style.replace('-', '_')] = false;
  484. });
  485. };
  486. if ($scope.file_name_see != "请上传附件" && $scope.file_name_see != "") {
  487. $scope.import();
  488. }
  489. $scope.file_name_see = "请上传附件";
  490. $scope.refreshData("expand-right", { "idx": $scope.fenye, "sum": mun });
  491. SweetAlert.swal({
  492. title: "新增成功",
  493. confirmButtonColor: "#007AFF",
  494. type: "success"
  495. });
  496. } else {
  497. SweetAlert.swal({
  498. title: "新增失败",
  499. text: "请刷新后再试!",
  500. type: "error"
  501. });
  502. }
  503. })
  504. }
  505. };
  506. $scope.items_display = [];
  507. //删除
  508. $scope.remove = function () {
  509. if ($scope.items_display.length == 0) {
  510. SweetAlert.swal({
  511. title: "删除失败",
  512. text: "请勾选最少一条数据!",
  513. type: "error"
  514. });
  515. } else {
  516. SweetAlert.swal({
  517. title: "确认删除?",
  518. text: "删除的数据不可恢复,请确认继续操作!",
  519. type: "warning",
  520. showCancelButton: true,
  521. confirmButtonColor: "#DD6B55",
  522. confirmButtonText: "继续删除",
  523. cancelButtonText: "取消操作",
  524. closeOnConfirm: false,
  525. closeOnCancel: false
  526. }, function (isConfirm) {
  527. if (isConfirm) {
  528. api_cmdb2.remov1("operationSystem", $scope.items_display).then(function (data) {
  529. var pdKey = "operationSystem";
  530. if ($scope.fenye == undefined) {
  531. $scope.fenye = 0
  532. };
  533. $scope.refreshData = function (style, filterData) {
  534. $scope.myData = [];
  535. $scope.gridOptions['sum'] = filterData.sum;
  536. api_cmdb2.fetchDataList1(pdKey, filterData).then(function (data) {
  537. if (data.data) {
  538. var myData = Restangular.stripRestangular(data);
  539. var list = [];
  540. $scope.gridOptions['totalItems'] = myData.resultCount;
  541. $scope.myData = myData.data;
  542. for (var i = 0; i < $scope.myData.length; i++) {
  543. $scope.myData[i]['item'] = i + 1 + filterData.idx * filterData.sum
  544. }
  545. } else {
  546. SweetAlert.swal({
  547. title: "系统错误",
  548. text: "请稍后再试!",
  549. type: "error"
  550. });
  551. }
  552. $scope.ldloading[style.replace('-', '_')] = false;
  553. }, function () {
  554. $scope.ldloading[style.replace('-', '_')] = false;
  555. });
  556. };
  557. $scope.refreshData("expand-right", { "idx": $scope.fenye, "sum": mun });
  558. })
  559. $scope.items_display = [];
  560. SweetAlert.swal("操作成功!", "数据已经被删除.", "success");
  561. } else {
  562. SweetAlert.swal("操作取消", "数据安全", "error");
  563. }
  564. });
  565. }
  566. };
  567. $scope.liucheng_id = "";
  568. var importUploader = $scope.importUploader = new FileUploader({
  569. url: api_bpm_domain.upload("uploadAttachment/operationSystem/", '').getRequestedUrl()
  570. });
  571. $scope.file_name_see = "请上传附件";
  572. // 附件上传
  573. importUploader.onWhenAddingFileFailed = function (item /*{File|FileLikeObject}*/, filter, options) {
  574. console.info('onWhenAddingFileFailed', item, filter, options);
  575. };
  576. importUploader.onAfterAddingFile = function (fileItem) {
  577. console.info('onAfterAddingFile', fileItem);
  578. $scope.fileItem = fileItem;
  579. $scope.file_name_see = fileItem._file.name;
  580. var name_arr = fileItem._file.name.split(".");
  581. if (fileItem._file.size > 1000000) {
  582. SweetAlert.swal({
  583. title: "添加附件失败",
  584. text: "大小不能超过1M!",
  585. type: "error"
  586. });
  587. // $scope.fileItem="";
  588. $scope.file_name_see = "";
  589. // $scope.addedFileItems=""
  590. } else if (name_arr[name_arr.length - 1] == 'exe') {
  591. SweetAlert.swal({
  592. title: "添加附件失败",
  593. text: "不能上传exe附件!",
  594. type: "error"
  595. });
  596. // $scope.fileItem="";
  597. $scope.file_name_see = "";
  598. // $scope.addedFileItems=""
  599. }
  600. // console.log($scope.fileItem.url)
  601. };
  602. importUploader.onAfterAddingAll = function (addedFileItems) {
  603. console.info('onAfterAddingAll', addedFileItems);
  604. // $scope.addedFileItems=addedFileItems;
  605. // console.log($scope.addedFileItems[0].url)
  606. };
  607. importUploader.onProgressItem = function (fileItem, progress) {
  608. console.info('onProgressItem', fileItem, progress);
  609. };
  610. importUploader.onProgressAll = function (progress) {
  611. console.info('onProgressAll', progress);
  612. };
  613. importUploader.onSuccessItem = function (fileItem, response, status, headers) {
  614. if (response.status == 200) {
  615. // SweetAlert.swal({
  616. // title: "文件上传成功!",
  617. // confirmButtonColor: "#007AFF",
  618. // type: "success"
  619. // }, function() {
  620. // // $scope.ldloading.contract_overlay = false;
  621. // // $rootScope.isMask = false;
  622. // // $scope.refreshListData('expand-right', defaultFilterData);
  623. // });
  624. } else {
  625. // $scope.ldloading.contract_overlay = false;
  626. // $rootScope.isMask = false;
  627. // SweetAlert.swal({
  628. // title: "文件上传失败!",
  629. // text: response.error,
  630. // type: "error"
  631. // })
  632. }
  633. console.info('onSuccessItem', fileItem, response, status, headers);
  634. };
  635. importUploader.onErrorItem = function (fileItem, response, status, headers) {
  636. console.info('onErrorItem', fileItem, response, status, headers);
  637. SweetAlert.swal({
  638. title: "系统错误!",
  639. text: "系统错误,请稍候重试!",
  640. type: "error"
  641. });
  642. };
  643. importUploader.onCancelItem = function (fileItem, response, status, headers) {
  644. console.info('onCancelItem', fileItem, response, status, headers);
  645. };
  646. importUploader.onCompleteItem = function (fileItem, response, status, headers) {
  647. console.info('onCompleteItem', fileItem, response, status, headers);
  648. };
  649. importUploader.onCompleteAll = function () {
  650. console.info('onCompleteAll');
  651. };
  652. $scope.ldloading = {};
  653. $rootScope.isMask = false;
  654. $scope.import = function (style) {
  655. importUploader.onBeforeUploadItem = function (item) {
  656. angular.extend(item.headers, $rootScope.getSession());
  657. item.formData.push({ 'filename': item.file.name });
  658. item.formData.push({ 'type': "dataImport" });
  659. console.info('onBeforeUploadItem', item);
  660. };
  661. importUploader.uploadAll();
  662. }
  663. $scope.cancel = function () {
  664. $modalInstance.dismiss('cancel');
  665. };
  666. var select_data = "";
  667. var search = "";
  668. // 列表下拉框数据
  669. $scope.lb_select_data = [
  670. { "name": "单位名称" },
  671. { "name": "部门名称" },
  672. { "name": "业务系统名称" },
  673. // { "name": "业务系统简称" },
  674. { "name": "虚拟机数量" },
  675. { "name": "总CPU核数(核)" },
  676. { "name": "总内存大小(GB)" },
  677. { "name": "磁盘总大小(GB)" },
  678. { "name": "IP地址段" },
  679. { "name": "部署区域" },
  680. { "name": "软件开发单位" },
  681. { "name": "软件开发联系人" },
  682. { "name": "软件开发联系人电话" },
  683. { "name": "运维管理员" },
  684. { "name": "运维管理员联系电话" },
  685. { "name": "业务测试地址" },
  686. { "name": "备注" },
  687. ];
  688. $scope.$watch('search', function (val) {
  689. $scope.search = val;
  690. search = $scope.search;
  691. });
  692. $scope.select_data = ""
  693. // 列表下拉框数据获取
  694. $scope.$watch('lb_select_val.lb_select_data', function (val) {
  695. // console.log(val);
  696. if (val == undefined) {
  697. $scope.select_data = ""
  698. } else {
  699. if (val.name == "单位名称") {
  700. $scope.select_data = "managementUnit.name"
  701. } else if (val.name == "部门名称") {
  702. $scope.select_data = "depName"
  703. } else if (val.name == "业务系统名称") {
  704. $scope.select_data = "serviceName"
  705. }
  706. // else if (val.name == "业务系统简称") {
  707. // $scope.select_data = "shortName"
  708. // }
  709. else if (val.name == "虚拟机数量") {
  710. $scope.select_data = "virtualMachinesNum"
  711. } else if (val.name == "总CPU核数(核)") {
  712. $scope.select_data = "cpusum"
  713. } else if (val.name == "总内存大小(GB)") {
  714. $scope.select_data = "memorysize"
  715. } else if (val.name == "磁盘总大小(GB)") {
  716. $scope.select_data = "disksize"
  717. } else if (val.name == "IP地址段") {
  718. $scope.select_data = "ipAddress"
  719. } else if (val.name == "部署区域") {
  720. $scope.select_data = "deploymentArea"
  721. } else if (val.name == "软件开发单位") {
  722. $scope.select_data = "softwareDeveloper"
  723. } else if (val.name == "软件开发联系人") {
  724. $scope.select_data = "softwareLinkman"
  725. } else if (val.name == "软件开发联系人电话") {
  726. $scope.select_data = "softwareLinkmanPhone"
  727. } else if (val.name == "运维管理员") {
  728. $scope.select_data = "operationsManager"
  729. } else if (val.name == "运维管理员联系电话") {
  730. $scope.select_data = "operationsManagerPhone"
  731. } else if (val.name == "业务测试地址") {
  732. $scope.select_data = "serviceTestingAddress"
  733. } else if (val.name == "备注") {
  734. $scope.select_data = "remark"
  735. }
  736. // select_data = $scope.select_data;
  737. }
  738. // console.log(select_data)
  739. });
  740. var search = $scope.search;
  741. // 点击搜索
  742. $scope.sear = function () {
  743. var select_data = $scope.select_data;
  744. //获取列表数据
  745. var pdKey = "operationSystem";
  746. if ($scope.fenye == undefined) {
  747. $scope.fenye = 0
  748. };
  749. $scope.refreshData = function (style, filterData) {
  750. $scope.myData = [];
  751. $scope.gridOptions['sum'] = filterData.sum;
  752. var aaaa = '{"' + select_data + '"' + ":" + '"' + search + '"}';
  753. var data2 = JSON.parse(aaaa);
  754. var idxx = "idx";
  755. var summ = "sum";
  756. data2[idxx] = 0;
  757. data2[summ] = 10;
  758. api_cmdb2.fetchDataList1(pdKey, data2).then(function (data) {
  759. if (data.data) {
  760. var myData = Restangular.stripRestangular(data);
  761. var list = [];
  762. $scope.gridOptions['totalItems'] = myData.resultCount;
  763. $scope.myData = myData.data;
  764. for (var i = 0; i < $scope.myData.length; i++) {
  765. $scope.myData[i]['item'] = i + 1 + filterData.idx * filterData.sum
  766. }
  767. } else {
  768. SweetAlert.swal({
  769. title: "系统错误",
  770. text: "请稍后再试!",
  771. type: "error"
  772. });
  773. }
  774. $scope.ldloading[style.replace('-', '_')] = false;
  775. }, function () {
  776. $scope.ldloading[style.replace('-', '_')] = false;
  777. });
  778. };
  779. $scope.refreshData("expand-right", { "idx": $scope.fenye, "sum": mun });
  780. }
  781. // 重置按钮
  782. $scope.reset = function () {
  783. // $scope.items_display=[];
  784. $scope.search = "";//搜索字段
  785. $scope.lb_select_val = {};
  786. if ($scope.fenye == undefined) {
  787. $scope.fenye = 0
  788. };
  789. var pdKey = "operationSystem";
  790. $scope.refreshData = function (style, filterData) {
  791. $scope.myData = [];
  792. $scope.gridOptions['sum'] = filterData.sum;
  793. api_cmdb2.fetchDataList1(pdKey, filterData).then(function (data) {
  794. if (data.data) {
  795. var myData = Restangular.stripRestangular(data);
  796. var list = [];
  797. $scope.gridOptions['totalItems'] = myData.resultCount;
  798. $scope.myData = myData.data;
  799. for (var i = 0; i < $scope.myData.length; i++) {
  800. $scope.myData[i]['item'] = i + 1 + filterData.idx * filterData.sum
  801. }
  802. } else {
  803. SweetAlert.swal({
  804. title: "系统错误",
  805. text: "请稍后再试!",
  806. type: "error"
  807. });
  808. }
  809. $scope.ldloading[style.replace('-', '_')] = false;
  810. }, function () {
  811. $scope.ldloading[style.replace('-', '_')] = false;
  812. });
  813. };
  814. $scope.refreshData("expand-right", { "idx": $scope.fenye, "sum": mun });
  815. // $scope.refreshData("expand-right", { "idx": 0, "sum": mun });
  816. }
  817. $scope.langs = i18nService.getAllLangs();
  818. $scope.lang = 'zh-cn';
  819. i18nService.setCurrentLang($scope.lang);
  820. $scope.myData = [];
  821. var loginUser = $rootScope.user;
  822. //全部事件权限
  823. $scope.allright = false;
  824. $scope.allrightnot = true;
  825. for (var obj in $rootScope.user.role) {
  826. if ($rootScope.user.role[obj].rolecode == 'incident manager' || $rootScope.user.role[obj].rolecode == 'call center') {
  827. $scope.allright = true;
  828. $scope.allrightnot = false;
  829. }
  830. }
  831. var pdKey = $state.current.pdKey;
  832. $scope.gridOptions = {};
  833. $scope.gridOptions.data = 'myData';
  834. $scope.gridOptions.enableColumnResizing = true;
  835. $scope.gridOptions.enableFiltering = false;
  836. $scope.gridOptions.enableGridMenu = false;
  837. $scope.gridOptions.enableSelectAll = true;
  838. $scope.gridOptions.enableRowSelection = true;
  839. $scope.gridOptions.showGridFooter = true;
  840. $scope.gridOptions.showColumnFooter = false;
  841. $scope.gridOptions.fastWatch = true;
  842. $scope.gridOptions.enableSorting = true;
  843. $scope.gridOptions.useExternalSorting = true;
  844. $scope.gridOptions.useExternalFiltering = false;
  845. $scope.gridOptions.useExternalPagination = true;
  846. $scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
  847. $scope.gridOptions.paginationPageSize = 10;
  848. $scope.gridOptions.multiSelect = true;
  849. var mun = $scope.gridOptions.paginationPageSize;
  850. $scope.gridOptions.rowTemplate = "<div ng-click=\"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>";
  851. $scope.gridOptions.rowIdentity = function (row) {
  852. return row.id;
  853. };
  854. $scope.gridOptions.getRowIdentity = function (row) {
  855. return row.id;
  856. };
  857. $scope.transferColor = function (item) {
  858. var color = "icon iconfont icon-zhengchang greenfont";
  859. if (item.colourInfo) {
  860. if (item.colourInfo.id == 1) {
  861. color = "icon iconfont icon-yiyuqi redfont";
  862. } else if (item.colourInfo.id == 2) {
  863. color = "iconfont icon-yuqixinxiu yellofont";
  864. }
  865. } else {
  866. // color = "white";
  867. }
  868. return color;
  869. }
  870. $scope.transfertip = function (item) {
  871. var tip = "正常";
  872. if (item.colourInfo) {
  873. if (item.colourInfo.id == 1) {
  874. tip = "逾期";
  875. } else if (item.colourInfo.id == 2) {
  876. tip = "即将逾期";
  877. }
  878. } else {
  879. // color = "white";
  880. }
  881. return tip;
  882. }
  883. $scope.transferstatus = function (item) {
  884. var statecolor = "#fc4c58";
  885. if (item.id == 2) { //待处理
  886. statecolor = "#fc4c58";
  887. } else if (item.id == 7) { //待审核
  888. statecolor = "#fcb44c";
  889. } else if (item.id == 3) { //请求重新指派
  890. statecolor = "#ebf902";
  891. } else if (item.id == 4) { //处理中
  892. statecolor = "#0aa5f5";
  893. } else if (item.id == 5) { //已解决
  894. statecolor = "#2edbb8";
  895. } else if (item.id == 6) { //已关闭
  896. statecolor = "#bbbbbb";
  897. }
  898. return statecolor;
  899. }
  900. $scope.gridOptions.columnDefs = [
  901. {
  902. name: 'item',
  903. displayName: '序号',
  904. width: 50,
  905. cellTemplate: '<div>' +
  906. '<div class="ui-grid-cell-contents">{{row.entity.item}}</div>' +
  907. '</div>'
  908. },
  909. {
  910. name: 'managementUnit',
  911. displayName: '单位名称',
  912. width: 100,
  913. cellTemplate: '<div>' +
  914. '<div class="ui-grid-cell-contents">{{row.entity.managementUnit.name}}</div>' +
  915. '</div>'
  916. },
  917. {
  918. name: 'depName',
  919. displayName: '部门名称',
  920. width: 100,
  921. cellTemplate: '<div>' +
  922. '<div class="ui-grid-cell-contents">{{row.entity.depName}}</div>' +
  923. '</div>'
  924. },
  925. {
  926. name: 'serviceName',
  927. displayName: '业务系统名称',
  928. width: 100,
  929. cellTemplate: '<div>' +
  930. '<div class="ui-grid-cell-contents">{{row.entity.serviceName}}</div>' +
  931. '</div>'
  932. },
  933. // {
  934. // name: 'shortName',
  935. // displayName: '业务系统简称',
  936. // width: 100,
  937. // cellTemplate: '<div>' +
  938. // '<div class="ui-grid-cell-contents">{{row.entity.shortName}}</div>' +
  939. // '</div>'
  940. // },
  941. {
  942. name: 'virtualMachinesNum',
  943. displayName: '虚拟机数量',
  944. width: 100,
  945. cellTemplate: '<div>' +
  946. '<div class="ui-grid-cell-contents">{{row.entity.virtualMachinesNum}}</div>' +
  947. '</div>'
  948. },
  949. {
  950. name: 'cpusum',
  951. displayName: '总CPU核数(核)',
  952. width: 100,
  953. cellTemplate: '<div>' +
  954. '<div class="ui-grid-cell-contents">{{row.entity.cpusum}}</div>' +
  955. '</div>'
  956. },
  957. {
  958. name: 'memorysize',
  959. displayName: '总内存大小(GB)',
  960. width: 100,
  961. cellTemplate: '<div>' +
  962. '<div class="ui-grid-cell-contents">{{row.entity.memorysize}}</div>' +
  963. '</div>'
  964. },
  965. {
  966. name: 'disksize',
  967. displayName: '磁盘总大小(GB)',
  968. width: 100,
  969. cellTemplate: '<div>' +
  970. '<div class="ui-grid-cell-contents">{{row.entity.disksize}}</div>' +
  971. '</div>'
  972. },
  973. {
  974. name: 'ipAddress',
  975. displayName: 'IP地址段',
  976. width: 100,
  977. cellTemplate: '<div>' +
  978. '<div class="ui-grid-cell-contents">{{row.entity.ipAddress}}</div>' +
  979. '</div>'
  980. },
  981. {
  982. name: 'deploymentArea',
  983. displayName: '部署区域',
  984. width: 100,
  985. cellTemplate: '<div>' +
  986. '<div class="ui-grid-cell-contents">{{row.entity.deploymentArea}}</div>' +
  987. '</div>'
  988. },
  989. {
  990. name: 'softwareDeveloper',
  991. displayName: '软件开发单位',
  992. width: 100,
  993. cellTemplate: '<div>' +
  994. '<div class="ui-grid-cell-contents">{{row.entity.softwareDeveloper}}</div>' +
  995. '</div>'
  996. },
  997. {
  998. name: 'softwareLinkman',
  999. displayName: '软件开发联系人',
  1000. width: 100,
  1001. cellTemplate: '<div>' +
  1002. '<div class="ui-grid-cell-contents">{{row.entity.softwareLinkman}}</div>' +
  1003. '</div>'
  1004. },
  1005. {
  1006. name: 'softwareLinkmanPhone',
  1007. displayName: '软件开发联系人电话',
  1008. width: 100,
  1009. cellTemplate: '<div>' +
  1010. '<div class="ui-grid-cell-contents">{{row.entity.softwareLinkmanPhone}}</div>' +
  1011. '</div>'
  1012. },
  1013. {
  1014. name: 'operationsManager',
  1015. displayName: '运维管理员',
  1016. width: 100,
  1017. cellTemplate: '<div>' +
  1018. '<div class="ui-grid-cell-contents">{{row.entity.operationsManager}}</div>' +
  1019. '</div>'
  1020. },
  1021. {
  1022. name: 'operationsManagerPhone',
  1023. displayName: '运维管理员联系电话',
  1024. width: 100,
  1025. cellTemplate: '<div>' +
  1026. '<div class="ui-grid-cell-contents">{{row.entity.operationsManagerPhone}}</div>' +
  1027. '</div>'
  1028. },
  1029. {
  1030. name: 'serviceTestingAddress',
  1031. displayName: '业务测试地址',
  1032. width: 100,
  1033. cellTemplate: '<div>' +
  1034. '<div class="ui-grid-cell-contents">{{row.entity.serviceTestingAddress}}</div>' +
  1035. '</div>'
  1036. },
  1037. {
  1038. name: 'remark',
  1039. displayName: '备注',
  1040. width: 100,
  1041. cellTemplate: '<div>' +
  1042. '<div class="ui-grid-cell-contents">{{row.entity.remark}}</div>' +
  1043. '</div>'
  1044. },
  1045. // {
  1046. // name: 'influence',
  1047. // displayName: '影响度',
  1048. // width: 61,
  1049. // cellTemplate: '<div>' +
  1050. // '<div class="ui-grid-cell-contents">{{row.entity.influence.name}}</div>' +
  1051. // '</div>'
  1052. // },
  1053. // {
  1054. // name: 'enclosure',
  1055. // displayName: '附件',
  1056. // width: 93,
  1057. // cellTemplate: '<div>' +
  1058. // '<div class="ui-grid-cell-contents">{{row.entity.item}}</div>' +
  1059. // '</div>'
  1060. // },
  1061. // {
  1062. // name: '附件预览',
  1063. // enableSorting: false,
  1064. // width: 73,
  1065. // cellTemplate: '<yl style="background-color:{{row.entity.colourInfo.rgb}}" item="row.entity" colobject="col">',
  1066. // enableFiltering: false
  1067. // },
  1068. {
  1069. name: '附件下载',
  1070. enableSorting: false,
  1071. width: 100,
  1072. cellTemplate: '<jrydw style="background-color:{{row.entity.colourInfo.rgb}}" item="row.entity" colobject="col">',
  1073. enableFiltering: false
  1074. },
  1075. {
  1076. name: '操作',
  1077. enableSorting: false,
  1078. width: 100,
  1079. cellTemplate: '<jrywt style="background-color:{{row.entity.colourInfo.rgb}}" item="row.entity" colobject="col">',
  1080. enableFiltering: false
  1081. },
  1082. ];
  1083. $scope.value = 10;
  1084. $scope.decrement = function () {
  1085. $scope.value = $scope.value - 1;
  1086. };
  1087. $scope.record = function () {
  1088. api_text.record($rootScope.takes).then(function (data) {
  1089. if (data.errno == 0) {
  1090. $scope.busy = false;
  1091. }
  1092. })
  1093. };
  1094. $scope.parameters = null;
  1095. $scope.open = function ($event) {
  1096. $event.preventDefault();
  1097. $event.stopPropagation();
  1098. $scope.opened = !$scope.opened;
  1099. };
  1100. $scope.endOpen = function ($event) {
  1101. $event.preventDefault();
  1102. $event.stopPropagation();
  1103. $scope.startOpened = false;
  1104. $scope.endOpened = !$scope.endOpened;
  1105. };
  1106. $scope.startOpen = function ($event) {
  1107. $event.preventDefault();
  1108. $event.stopPropagation();
  1109. $scope.endOpened = false;
  1110. $scope.startOpened = !$scope.startOpened;
  1111. };
  1112. $scope.othcode = {};
  1113. // $scope.items_display=[];
  1114. //列表排序
  1115. $scope.gridOptions.onRegisterApi = function (gridApi) {
  1116. $scope.gridApi = gridApi;
  1117. var index = 0;
  1118. var oldheader = {};
  1119. // 复选框单选
  1120. gridApi.selection.on.rowSelectionChanged($scope, function (data) {
  1121. if (data.isSelected) {
  1122. data.grid.appScope.selected.items.push(data.entity)
  1123. } else {
  1124. for (var i = 0; i <= data.grid.appScope.selected.items.length; i++) {
  1125. if (data.grid.appScope.selected.items[i].id == data.entity.id) {
  1126. data.grid.appScope.selected.items.splice(i, 1);
  1127. break;
  1128. }
  1129. }
  1130. };
  1131. // console.log(data);
  1132. if (data.isSelected) {
  1133. // alert('ok');
  1134. $scope.items_display.push(data.entity.id);
  1135. } else {
  1136. var indes = $scope.items_display.indexOf(data.entity.id);
  1137. if (indes > -1) {
  1138. $scope.items_display.splice(indes, 1);
  1139. }
  1140. }
  1141. // console.log($scope.items_display)
  1142. });
  1143. // 复选框全选
  1144. gridApi.selection.on.rowSelectionChangedBatch($scope, function (rows) {
  1145. // console.log(rows);
  1146. if (rows[0].isSelected == true) {
  1147. $scope.items_display = [];
  1148. for (var i = 0; i < rows.length; i++) {
  1149. $scope.items_display.push(rows[i].entity.id)
  1150. }
  1151. } else {
  1152. $scope.items_display = [];
  1153. }
  1154. // console.log($scope.items_display)
  1155. var selectitem = [];
  1156. selectitem = angular.copy($scope.selected.items);
  1157. for (var j = 0; j < rows.length; j++) {
  1158. if (rows[j].isSelected == true) {
  1159. selectitem.push(rows[j].entity);
  1160. } else {
  1161. delete selectitem[j];
  1162. // rows.splice(j, 1);
  1163. }
  1164. }
  1165. $scope.selected.items = [];
  1166. for (var i = 0; i < selectitem.length; i++) {
  1167. if (selectitem[i]) {
  1168. $scope.selected.items.push(selectitem[i]);
  1169. }
  1170. }
  1171. });
  1172. gridApi.grid.sortColumn = function (gridApi) {
  1173. if (oldheader.field != gridApi.field) {
  1174. index = 0;
  1175. }
  1176. index++;
  1177. oldheader = gridApi;
  1178. var fildata = $scope.memoryfilterData;
  1179. delete $scope.memoryfilterData.incident;
  1180. fildata.order = gridApi.field == 'item' ? 'id' : gridApi.field;
  1181. if (index % 2 == 0) {
  1182. fildata.orderType = 'desc';
  1183. } else if (index % 2 == 1) {
  1184. fildata.orderType = 'asc';
  1185. }
  1186. $scope.refreshData('expand-right', fildata);
  1187. }
  1188. gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) {
  1189. var filtersData = $scope.memoryfilterData;
  1190. $scope.fenye = newPage - 1;
  1191. filtersData.idx = newPage - 1;
  1192. filtersData.sum = pageSize;
  1193. $scope.refreshData('expand-right', filtersData);
  1194. });
  1195. gridApi.core.on.filterChanged($scope, function () {
  1196. var grid = this.grid;
  1197. if ($rootScope.user.group) {
  1198. var filtersData = {
  1199. idx: 0,
  1200. sum: mun
  1201. };
  1202. } else {
  1203. var filtersData = {
  1204. idx: 0,
  1205. sum: mun
  1206. };
  1207. }
  1208. angular.forEach(grid.columns, function (item) {
  1209. if (item.enableFiltering) {
  1210. if (angular.isDefined(item.filters[0].term) && item.filters[0].term != '') {
  1211. filtersData = $scope.memoryfilterData
  1212. if (angular.isUndefined(filtersData['incident'])) {
  1213. filtersData['incident'] = {};
  1214. }
  1215. if (item.field == 'requester.name') {
  1216. filtersData['incident']['requester'] = {};
  1217. filtersData.incident.requester['accountName'] = item.filters[0].term;
  1218. } else if (item.field == 'handlingPersonnelUser.name') {
  1219. filtersData['incident']['handlingPersonnelUser'] = {};
  1220. filtersData.incident.handlingPersonnelUser['name'] = item.filters[0].term;
  1221. } else if (item.field == 'requester.account') {
  1222. filtersData['incident']['requester'] = {};
  1223. filtersData.incident.requester['account'] = item.filters[0].term;
  1224. } else if (item.field == 'acceptUser.name') {
  1225. filtersData['incident']['acceptUser'] = {};
  1226. filtersData.incident.acceptUser['name'] = item.filters[0].term;
  1227. } else {
  1228. filtersData['incident'][item.field] = item.filters[0].term;
  1229. }
  1230. }
  1231. }
  1232. });
  1233. filtersData.idx = 0;
  1234. $scope.memoryfilterData = filtersData;
  1235. $scope.refreshData('expand-right', filtersData);
  1236. });
  1237. };
  1238. //当前人是否分组
  1239. // if ($rootScope.user.group) {
  1240. // if ($rootScope.user.group.length == 0) {
  1241. // SweetAlert.swal("访问失败!", "当前登录人未分配工作组,无权限访问,请添加工作组后重试。", "error");
  1242. // } else {
  1243. // $scope.memoryfilterData = defaultFilterData = {
  1244. // "idx": 0,
  1245. // "sum": mun
  1246. // };
  1247. // }
  1248. // } else {
  1249. // $scope.memoryfilterData = defaultFilterData = {
  1250. // "idx": 0,
  1251. // "sum": mun
  1252. // };
  1253. // }
  1254. //导入模板baba
  1255. $scope.importDataTpl = function () {
  1256. var wt_url = api_cmdb2.importDataTpl("impFileData/operationSystem", {}).getRequestedUrl();
  1257. var form = new FormData();
  1258. var file = document.getElementById("importTplIpt").files[0];
  1259. form.append('filename', file.name)
  1260. form.append('file', file);
  1261. console.log(document.getElementById("importTplIpt").files)
  1262. $http({
  1263. method: 'POST',
  1264. url: wt_url,
  1265. data: form,
  1266. headers: { 'Content-Type': undefined },
  1267. transformRequest: angular.identity
  1268. }).success(function (data) {
  1269. document.getElementById("importTplIpt").outerHTML = document.getElementById("importTplIpt").outerHTML;
  1270. if (data.status == 200) {
  1271. SweetAlert.swal({
  1272. title: "导入成功",
  1273. confirmButtonColor: "#007AFF",
  1274. type: "success"
  1275. }, function (flag) {
  1276. $scope.reset();
  1277. });
  1278. } else {
  1279. SweetAlert.swal({
  1280. title: "导入失败",
  1281. text: data.error,
  1282. type: "error"
  1283. });
  1284. }
  1285. }).error(function (data) {
  1286. document.getElementById("importTplIpt").outerHTML = document.getElementById("importTplIpt").outerHTML;
  1287. SweetAlert.swal({
  1288. title: "导入失败",
  1289. text: data.error,
  1290. type: "error"
  1291. });
  1292. })
  1293. };
  1294. //导出模板
  1295. $scope.exportDataTpl = function () {
  1296. var wt_url = api_cmdb2.exportData1("downDataModels/operationSystem", {}).getRequestedUrl()
  1297. $http({
  1298. url: wt_url,
  1299. method: 'POST',
  1300. headers: {
  1301. 'Accept': '*/*'
  1302. },
  1303. responseType: 'arraybuffer'
  1304. }).success(function (data, status, headers, config) {
  1305. var fileName = headers("Content-Disposition").split(";")[1].split("filename=")[1];
  1306. var file = new Blob([data], {
  1307. type: 'application/vnd.ms-excel'
  1308. });
  1309. var fileURL = URL.createObjectURL(file);
  1310. var a = document.createElement('a');
  1311. a.href = fileURL;
  1312. a.target = '_blank';
  1313. a.download = decodeURIComponent(fileName);
  1314. document.body.appendChild(a);
  1315. a.click();
  1316. }).error(function (data, status, headers, config) { });
  1317. };
  1318. //导出
  1319. $scope.export = function () {
  1320. if ($scope.items_display.length == 0) {
  1321. SweetAlert.swal({
  1322. title: "导出失败",
  1323. text: "请勾选最少一条数据!",
  1324. type: "error"
  1325. });
  1326. } else {
  1327. var filadata = angular.copy($scope.memoryfilterData);
  1328. filadata.sum = 10000;
  1329. var wt_data = {
  1330. ids: $scope.items_display
  1331. };
  1332. var wt_url = api_cmdb2.exportData1("downDataModel/operationSystem", wt_data).getRequestedUrl()
  1333. // console.log(wt_url)
  1334. $http({
  1335. url: wt_url,
  1336. method: 'POST',
  1337. data: JSON.stringify(wt_data),
  1338. headers: {
  1339. 'Accept': '*/*'
  1340. },
  1341. responseType: 'arraybuffer'
  1342. }).success(function (data, status, headers, config) {
  1343. var fileName = headers("Content-Disposition").split(";")[1].split("filename=")[1];
  1344. // $scope.ldloading.zoom_in = false;
  1345. var file = new Blob([data], {
  1346. type: 'application/vnd.ms-excel'
  1347. });
  1348. var fileURL = URL.createObjectURL(file);
  1349. var a = document.createElement('a');
  1350. a.href = fileURL;
  1351. a.target = '_blank';
  1352. a.download = decodeURIComponent(fileName);
  1353. document.body.appendChild(a);
  1354. a.click();
  1355. }).error(function (data, status, headers, config) {
  1356. // $scope.ldloading.zoom_in = false;
  1357. // console.log(data);
  1358. });
  1359. }
  1360. };
  1361. // 复选框
  1362. if ($stateParams.model) {
  1363. if (JSON.parse($stateParams.model).searchType && JSON.parse($stateParams.model).searchType != null) {
  1364. $scope.searchTypes = JSON.parse($stateParams.model).searchType;
  1365. } else {
  1366. $scope.searchTypes = "todo";
  1367. }
  1368. } else {
  1369. $scope.searchTypes = "todo";
  1370. }
  1371. if ($rootScope.user.group) {
  1372. var defaultFilterData = {
  1373. "idx": 0,
  1374. "sum": mun
  1375. };
  1376. } else {
  1377. var defaultFilterData = {
  1378. "idx": 0,
  1379. "sum": mun
  1380. };
  1381. }
  1382. if (angular.isDefined($rootScope.search) && angular.isDefined($rootScope.search.incident)) {
  1383. defaultFilterData['searchType'] = $rootScope.search.incident;
  1384. $scope.searchTypes = $rootScope.search.incident;
  1385. }
  1386. if ($rootScope['cmdbs'] != 'incident') { $rootScope.idx = 1 }
  1387. if (angular.isDefined($rootScope.idx) && $rootScope.cmdbs != "false") {
  1388. $rootScope['cmdbs'] = 'incident';
  1389. defaultFilterData.idx = $rootScope.idx - 1;
  1390. } else { $rootScope.cmdbs = ""; }
  1391. $scope.ldloading = {};
  1392. //获取列表数据
  1393. var pdKey = "operationSystem";
  1394. $scope.refreshData = function (style, filterData) {
  1395. filterData.order = filterData.order || 'id';
  1396. filterData.orderType = filterData.orderType || 'desc';
  1397. $scope.myData = [];
  1398. $scope.gridOptions['sum'] = filterData.sum;
  1399. api_cmdb2.fetchDataList1(pdKey, filterData).then(function (data) {
  1400. if (data.data) {
  1401. var myData = Restangular.stripRestangular(data);
  1402. var list = [];
  1403. $scope.gridOptions['totalItems'] = myData.resultCount;
  1404. $scope.myData = myData.data;
  1405. for (var i = 0; i < $scope.myData.length; i++) {
  1406. $scope.myData[i]['item'] = i + 1 + filterData.idx * filterData.sum
  1407. }
  1408. } else {
  1409. SweetAlert.swal({
  1410. title: "系统错误",
  1411. text: "请稍后再试!",
  1412. type: "error"
  1413. });
  1414. }
  1415. $scope.ldloading[style.replace('-', '_')] = false;
  1416. }, function () {
  1417. $scope.ldloading[style.replace('-', '_')] = false;
  1418. });
  1419. };
  1420. //单位名称
  1421. $scope.refreshDat = function () {
  1422. api_cmdb2.management_unit().then(function (data) {
  1423. $scope.management_data = data.managementUnit;
  1424. });
  1425. };
  1426. $scope.selected = {
  1427. items: []
  1428. }
  1429. // 部署区域
  1430. $scope.refreshDa = function () {
  1431. var are = "area";
  1432. var dat = {
  1433. "sum": 1000,
  1434. "idx": 0
  1435. }
  1436. api_user_data.fetchDataList(are, dat).then(function (data) {
  1437. $scope.area_data = data.list;
  1438. })
  1439. }
  1440. // 紧急度
  1441. $scope.refreshD = function () {
  1442. var flu = "influence";
  1443. var dat = {
  1444. "sum": 1000,
  1445. "idx": 0
  1446. }
  1447. api_cmdb3.fetchDataList(flu, dat).then(function (data) {
  1448. $scope.flu_data = data.list;
  1449. })
  1450. }
  1451. $scope.refreshD();
  1452. $scope.refreshDat();
  1453. $scope.refreshDa();
  1454. $scope.refreshData('expand-right', { "idx": 0, "sum": 10 });
  1455. }]);
  1456. //操作按钮权限控制
  1457. app.controller('ywxt_caozuoCtrl', ['$rootScope', '$http', '$scope', '$modal', 'api_cmdb2', 'api_bpm_domain', 'up_down_file', 'SweetAlert', function ($rootScope, $http, $scope, $modal, api_cmdb2, api_bpm_domain, up_down_file, SweetAlert) {
  1458. // 点击编辑按钮
  1459. $scope.edit = function () {
  1460. $rootScope.toedit = "new_after";
  1461. console.log($scope.item);
  1462. // $scope.ywxt_edit_deploymentArea = { area_data: { area: $scope.item.deploymentArea, id: $scope.item.deploymentAreaId } };
  1463. // debugger;
  1464. $rootScope.ywxt_edit_managementUnit_caozuo = $scope.item.managementUnit;//编辑单位名称
  1465. $rootScope.ywxt_edit_depName_caozuo = $scope.item.depName;//编辑部门名称
  1466. $rootScope.ywxt_edit_serviceName_caozuo = $scope.item.serviceName;//编辑业务系统名称
  1467. // $rootScope.ywxt_edit_shortName_caozuo = $scope.item.shortName;//编辑业务系统简称
  1468. $rootScope.ywxt_edit_virtualMachinesNum_caozuo = $scope.item.virtualMachinesNum;//编辑虚拟机数量
  1469. $rootScope.ywxt_edit_cpusum_caozuo = $scope.item.cpusum;//编辑总CPU核数(核)
  1470. $rootScope.ywxt_edit_memorysize_caozuo = $scope.item.memorysize;//编辑总内存大小(GB)
  1471. $rootScope.ywxt_edit_disksize_caozuo = $scope.item.disksize;//编辑磁盘总大小(GB)
  1472. $rootScope.ywxt_edit_deploymentArea_caozuo = $scope.item.deploymentArea;//编辑部署区域
  1473. // $scope.ywxt_edit_deploymentArea.area_data = {area:$scope.item.deploymentArea};//编辑部署区域
  1474. // $rootScope.ywxt_edit_deploymentAreaId_caozuo = $scope.item.deploymentAreaId;//编辑部署区域id
  1475. $rootScope.ywxt_edit_ipAddress_caozuo = $scope.item.ipAddress;//编辑IP地址段
  1476. $rootScope.ywxt_edit_softwareDeveloper_caozuo = $scope.item.softwareDeveloper;//编辑软件开发单位
  1477. $rootScope.ywxt_edit_softwareLinkman_caozuo = $scope.item.softwareLinkman;//编辑软件开发联系人
  1478. $rootScope.ywxt_edit_softwareLinkmanPhone_caozuo = $scope.item.softwareLinkmanPhone;//编辑软件开发联系人电话
  1479. $rootScope.ywxt_edit_operationsManager_caozuo = $scope.item.operationsManager;//编辑运维管理员
  1480. $rootScope.ywxt_edit_operationsManagerPhone_caozuo = $scope.item.operationsManagerPhone;//编辑运维管理员联系电话
  1481. $rootScope.ywxt_edit_serviceTestingAddress_caozuo = $scope.item.serviceTestingAddress;//编辑业务测试地址
  1482. $rootScope.ywxt_edit_influence_caozuo = $scope.item.influence;//编辑影响度
  1483. $rootScope.ywxt_edit_remark_caozuo = $scope.item.remark;//编辑备注
  1484. $rootScope.ywxt_edit_id = $scope.item.id;//id
  1485. $rootScope.ywxt_edit_mask = true;
  1486. // $rootScope.ywxt_edit_Popup = true;
  1487. }
  1488. // 附件下载
  1489. $scope.ywxt_down = function () {
  1490. var wt_url_down = api_bpm_domain.upload("listAttachment/operationSystem/", $scope.item.id).getRequestedUrl()
  1491. $http({
  1492. url: wt_url_down,
  1493. method: 'GET',
  1494. }).success(function (res) {
  1495. // console.log(res);
  1496. if (res.data == [] || res.data == undefined || res.data == "") {
  1497. SweetAlert.swal({
  1498. title: "下载失败",
  1499. text: "此列数据暂无上传附件!",
  1500. type: "error"
  1501. });
  1502. return false
  1503. } else {
  1504. var token = res.data[0].token;
  1505. var filename = res.data[0].name;
  1506. $scope.download = function (token, filename) {
  1507. var downUrl = up_down_file.downloadAttachment("common/common/downloadAttachment", token).getRequestedUrl();
  1508. // window.open(downUrl);
  1509. var a = document.createElement('a');
  1510. a.href = downUrl;
  1511. a.target = '_blank';
  1512. a.download = filename;
  1513. document.body.appendChild(a);
  1514. a.click();
  1515. };
  1516. $scope.download(token, filename);
  1517. }
  1518. }
  1519. ).error(function (data, status, headers, config) {
  1520. });
  1521. }
  1522. }]);
  1523. //操作
  1524. app.directive('jrywt', function () {
  1525. return {
  1526. restrict: 'E',
  1527. scope: {
  1528. item: '=',
  1529. colobject: '='
  1530. },
  1531. controller: 'ywxt_caozuoCtrl',
  1532. template: '<div><div class="cl-effect-1 ui-grid-cell-contents pull-left" >' +
  1533. '<a ng-click="edit()" class="handlefont" >编辑</a>' +
  1534. '</div></div>'
  1535. };
  1536. });
  1537. // 附件下载
  1538. app.directive('jrydw', function () {
  1539. return {
  1540. restrict: 'E',
  1541. scope: {
  1542. item: '=',
  1543. colobject: '='
  1544. },
  1545. controller: 'ywxt_caozuoCtrl',
  1546. template: '<div><div class="cl-effect-1 ui-grid-cell-contents pull-left" >' +
  1547. '<div ng-click="ywxt_down()" class="fujian_down">' +
  1548. '<img src="assets/images/jiang/down.png">' +
  1549. '</div>' +
  1550. '</div></div>'
  1551. };
  1552. });
  1553. // 附件预览
  1554. app.directive('yl', function () {
  1555. return {
  1556. restrict: 'E',
  1557. scope: {
  1558. item: '=',
  1559. colobject: '='
  1560. },
  1561. controller: 'ywxt_caozuoCtrl',
  1562. template: '<div><div class="cl-effect-1 ui-grid-cell-contents pull-left" >' +
  1563. '<img src="assets/images/jiang/yl.png">' +
  1564. '</div></div>'
  1565. };
  1566. });