list.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363
  1. 'use strict';
  2. var app = angular.module('app', [
  3. 'angularUtils.directives.dirPagination'
  4. ]);
  5. app.controller("listCtrl", ["$scope", "$http", "$timeout", function ($scope, $http, $timeout) {
  6. var self = this;
  7. var s4 = new SM4Util();
  8. self.userId = $.cookie("GlWorkPlatform-userid");
  9. self.userName = $.cookie("GlWorkPlatform-chineseName");
  10. self.get_AccessToken = localStorage.getItem("GlWorkPlatform-AccessToken");
  11. self.get_lastReturnPageno = sp.getUrlName("lastReturnPageno");
  12. self.get_type = sp.getUrlName("type");
  13. var postCfg = {
  14. headers: {
  15. 'Content-Type': 'application/json',
  16. 'Authorization': "Bearer " + self.get_AccessToken
  17. }
  18. }
  19. self.type = self.get_type != "" ? self.get_type : "1";
  20. self.loading = false;
  21. self.noDataTip = 1;//没有数据时赋变量为0,先默认为1
  22. self.pageno = 1;
  23. self.total_count = 0;
  24. self.itemsPerPage = 10;
  25. self.pageOptions = [10, 20, 30, 40];
  26. self.Status = "";
  27. self.getData = function (pageno) {
  28. self.list = [];
  29. self.loading = false;
  30. self.pageno = pageno;
  31. $scope.__default__currentPage = self.pageno; //设置页面样式在第几页
  32. var data = {
  33. tablename: "SX_HYSGLB",
  34. pagesize: self.itemsPerPage,
  35. pageno: self.pageno,
  36. colums: "*",
  37. order: "SORTID",
  38. sqlwhere: { ZT: self.Status },
  39. sqlorwhere: "",
  40. sqlinwhere: "",
  41. sqllikewhere: ""
  42. };
  43. $http.post(apiurljs.login + "g2app/dataabase/queryDataByColWithPage", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  44. .success(function (obj) {
  45. var res = strToJson(s4.decryptData_CBC(obj.data));
  46. self.loading = false;
  47. if (res.data == null || res.data == undefined || res.data == "") {
  48. self.noDataTip = 0;
  49. } else {
  50. self.noDataTip = 1;
  51. self.list = res.data;
  52. self.total_count = res.totalCount;
  53. }
  54. })
  55. }
  56. self.load = function () {
  57. if (self.get_lastReturnPageno == undefined || self.get_lastReturnPageno == null || self.get_lastReturnPageno == "") {
  58. self.getData(self.pageno);
  59. } else {
  60. $timeout(function () {
  61. self.getData(self.get_lastReturnPageno);
  62. }, 1)
  63. }
  64. }
  65. self.wuye = false;
  66. self.getROLE = function () {
  67. var data = {
  68. userid: self.userId
  69. };
  70. $http.post(apiurljs.login + "g2work/datazu/queryDataUserAuth", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  71. .success(function (obj) {
  72. var res = strToJson(s4.decryptData_CBC(obj.data));
  73. res.data[0].auths.forEach(function (item) {
  74. if (item.ZID == "AA36" && item.AUTH == "1") {
  75. self.wuye = true;
  76. self.load()
  77. }
  78. })
  79. });
  80. }
  81. self.getROLE()
  82. self.refresh = function () {
  83. self.getData(self.pageno);
  84. }
  85. self.changeType = function (str) {
  86. if (self.type == str) {
  87. return;
  88. } else {
  89. self.type = str;
  90. self.getData(1)
  91. }
  92. }
  93. self.btnEdit = function (id) {
  94. window.location.href = "huiyi/formedit.html?id=" + id + "&lastReturnPageno=" + self.pageno;
  95. }
  96. self.btnDel = function (id) {
  97. var dialogHead = "<span class=\"sp-dialog-head\"><span class=\"sp-dialog-tip\">温馨提示</span><span class=\"sp-dialog-close sp-closeDialog\" title=\"关闭\">×</span></span>";
  98. var dialogBody = "<div class=\"sp-dialog-body\">删除后不可恢复,您确认要删除吗?</div>";
  99. var dialogFoot = "<div class=\"sp-dialog-foot\"><input id='delDataTrue' type='button' value='确 认' class='sp-dialog-btnTrue' /><input type='button' value='取 消' class='sp-dialog-btnCancle sp-closeDialog' /></div>";
  100. $('.sp-dialog').html(dialogHead + dialogBody + dialogFoot);
  101. sp.openCenter(".sp-dialog");
  102. ///取消按钮
  103. $('.sp-closeDialog').click(function (event) {
  104. sp.closeCenter(".sp-dialog");
  105. event.preventDefault();
  106. event.stopPropagation();
  107. });
  108. //post消息的id
  109. $("#delDataTrue").click(function () {
  110. var data = {
  111. tablename: "SX_HYSGLB",
  112. id: id
  113. };
  114. $http.post(apiurljs.login + "g2app/dataabase/delDataById", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  115. .success(function (obj) {
  116. var res = strToJson(s4.decryptData_CBC(obj.data));
  117. sp.dialoghide();
  118. if (res.success) {
  119. self.getData(self.pageno);
  120. } else {
  121. sp.dialog("删除失败,请联系管理员!");
  122. }
  123. });
  124. });
  125. }
  126. //生成当天起,一共7天数据
  127. self.searchDay = sp.format(sp.getLocalDate())
  128. //自动生成列数据
  129. self.getRoom = function () {
  130. self.week = []
  131. sp.getWeekNumber(new Date(self.searchDay)).dateString.split(",").forEach(function (item) {
  132. self.week.push({ date: item, time: "08:00" }, { date: item, time: "09:00" }, { date: item, time: "10:00" }, { date: item, time: "11:00" }, { date: item, time: "12:00" }, { date: item, time: "13:00" }, { date: item, time: "14:00" }, { date: item, time: "15:00" }, { date: item, time: "16:00" }, { date: item, time: "17:00" }, { date: item, time: "18:00" })
  133. })
  134. var data = {
  135. tablename: "SX_HYSGLB",
  136. colums: "*",
  137. order: "ID",
  138. sqlwhere: { ZT: "正常" },
  139. sqlorwhere: "",
  140. sqlinwhere: "",
  141. sqllikewhere: ""
  142. };
  143. $http.post(apiurljs.login + "g2app/dataabase/queryDataByCol", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  144. .success(function (obj) {
  145. var res = strToJson(s4.decryptData_CBC(obj.data));
  146. self.huiyiRoom = [];
  147. res.data.forEach(function (item) {
  148. self.huiyiRoom.push({ name: item.HYSMC, fjh: item.WZ })
  149. })
  150. self.getApplication()
  151. })
  152. }
  153. self.getRoom()
  154. //使用情况数据,status:1为已结束,2为进行中,3为已预订,4为已取消
  155. self.getApplication = function () {
  156. self.application = [];
  157. var data = {
  158. userid: self.userId,
  159. sdate: sp.dateCount(0) + " 08:00:00",
  160. edate: sp.dateCount(6) + " 23:00:00"
  161. }
  162. $http.post(apiurljs.login + "g2app/huiwu/queryDataHuiwuStatus", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  163. .success(function (obj) {
  164. var res = strToJson(s4.decryptData_CBC(obj.data));
  165. res.data.forEach(function (item) {
  166. self.application.push({
  167. id: item.ID,
  168. routeinfoid: item.ROUTEINFOID,
  169. date: sp.datefmt("M-dd", item.KSSJ).replace("-", "."),
  170. start: sp.datefmt("HH:mm", item.KSSJ),
  171. end: sp.datefmt("HH:mm", item.JSSJ),
  172. fjh: item.HYS,
  173. dpname: item.CBBM,
  174. username: item.SQR,
  175. status: item.SFSH == "已审核" ? 4 : getStatus(sp.datefmt("MM-dd HH-mm", item.KSSJ), sp.datefmt("MM-dd HH-mm", item.JSSJ)),
  176. title: item.HYMC,
  177. lxfs: item.LXFS
  178. })
  179. })
  180. self.application.forEach(function (item, index) {
  181. item.msg = item.start + "—" + item.end + " " + "<br/>" + item.dpname + " " + item.username + "<br/>" + item.lxfs;
  182. item.msg1 = item.start + "—" + item.end + " " + " " + item.dpname + " " + item.username + " " + item.lxfs;
  183. item.show = true;
  184. item.showRoom = false;
  185. item.showDate = false;
  186. item.style = {
  187. "background-color": "",
  188. "text-align": "center",
  189. "color": "white",
  190. "font-size": "14px",
  191. "font-weight": 600,
  192. "padding": "0 10px",
  193. "position": "absolute",
  194. "left": 0,
  195. "top": 0,
  196. "width": 200,
  197. "height": 0,
  198. }
  199. item.style["background-color"] = getColor(item.status);
  200. self.huiyiRoom.forEach(function (item1, index1) {
  201. if (item.fjh == item1.name) {
  202. item.style.left = index1 * 200 + 200;
  203. item.showRoom = true;
  204. }
  205. })
  206. self.week.forEach(function (item1, index1) {
  207. var n1 = 0, n2 = 0, n3 = 0, n4 = 0;
  208. if ((item.date.split(".")[0] < 10 ? "0" + item.date : item.date) == item1.date) {
  209. if (item.start.slice(0, 2) == item1.time.slice(0, 2)) {
  210. n1 = index1 * 50;
  211. n2 = 50 - item.start.slice(3) * 1 / 60 * 50;
  212. item.style.top = n1 + n2;
  213. }
  214. item.style.height = (item.end.slice(0, 2) * 1 - item.start.slice(0, 2) * 1) * 50 + (item.end.slice(3) * 1 - item.start.slice(3) * 1) / 60 * 50;
  215. item.showDate = true;
  216. }
  217. })
  218. //item.style.padding = (item.style.height - 36) / 2 + "px 0";
  219. item.show = item.showRoom == true && item.showDate == true
  220. })
  221. console.log(res.data)
  222. console.log(self.application)
  223. console.log(self.huiyiRoom)
  224. })
  225. }
  226. self.cancelHY = function (item) {
  227. var dialogHead = "<span class=\"sp-dialog-head\"><span class=\"sp-dialog-tip\">温馨提示</span><span class=\"sp-dialog-close sp-closeDialog\" title=\"关闭\">×</span></span>";
  228. var dialogBody = "<div class=\"sp-dialog-body\">您确认要取消吗?</div>";
  229. var dialogFoot = "<div class=\"sp-dialog-foot\"><input id='delDataTrue' type='button' value='确 认' class='sp-dialog-btnTrue' /><input type='button' value='取 消' class='sp-dialog-btnCancle sp-closeDialog' /></div>";
  230. $('.sp-dialog').html(dialogHead + dialogBody + dialogFoot);
  231. sp.openCenter(".sp-dialog");
  232. ///取消按钮
  233. $('.sp-closeDialog').click(function (event) {
  234. sp.closeCenter(".sp-dialog");
  235. event.preventDefault();
  236. event.stopPropagation();
  237. });
  238. //post消息的id
  239. $("#delDataTrue").click(function () {
  240. var data = {
  241. tablename: "SX_HYSQBZHWY",
  242. id: item.id,
  243. data: {
  244. KSSJ: null,
  245. JSSJ: null
  246. }
  247. }
  248. $http.post(apiurljs.login + "g2app/dataabase/upFormData", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
  249. .success(function (obj) {
  250. var res = strToJson(s4.decryptData_CBC(obj.data));
  251. if (res.success) {
  252. var data1 = {
  253. routeinfoid: item.routeinfoid,
  254. userid: self.userId
  255. }
  256. $http.post(apiurljs.login + "g2work/routeinfo/removeDraftToCacheByRouteinfoid", { data: s4.encryptData_CBC(JSON.stringify(data1)) }, postCfg)
  257. .success(function (obj1) {
  258. var res1 = strToJson(s4.decryptData_CBC(obj1.data));
  259. sp.dialoghide();
  260. if (res1.success == true) {
  261. self.getApplication()
  262. } else {
  263. sp.dialog(res1.message)
  264. }
  265. })
  266. } else {
  267. sp.dialoghide();
  268. $timeout(function () {
  269. sp.dialog(res.message);
  270. },500)
  271. }
  272. })
  273. });
  274. }
  275. //头部下滚冻结
  276. $(function () {
  277. //页面高度撑满
  278. setTimeout(function () {
  279. if ($(".ibox-content").height() < $(window).height() - 32) {
  280. $(".ibox-content").css("height", $(window).height() - 32)
  281. }
  282. }, 1)
  283. $(".huiyi-table").parent().css("max-height", $(window).height() - 130)
  284. })
  285. }])
  286. app.directive("repeatFinish", function () {
  287. return {
  288. link: function (scope) {
  289. if (scope.$last == true) {
  290. setTimeout(function () {
  291. $(".sp-table").rowspan(0)
  292. }, 10);
  293. }
  294. }
  295. };
  296. });
  297. app.filter('trustHtml', function ($sce) {
  298. return function (input) {
  299. return $sce.trustAsHtml(input.replace(/\n/g, '<br/>').replace(/\s/g, '&nbsp;'));
  300. };
  301. });
  302. function getStatus(time1,time2) {
  303. var ctime = sp.datefmt("MM-dd HH:mm", sp.getLocalDate());
  304. if (ctime <= time1) {
  305. return 3
  306. } else if (ctime >= time1 && ctime <= time2) {
  307. return 2
  308. } else if (ctime >= time2) {
  309. return 1
  310. }
  311. }
  312. function getColor(n) {
  313. var color = "";
  314. switch (n) {
  315. case 1: color = "#CCCCCC"; break;
  316. case 2: color = "#00CC66"; break;
  317. case 3: color = "#0099FF"; break;
  318. case 4: color = "#CC0000"; break;
  319. }
  320. return color;
  321. }
  322. function scrollTable() {
  323. $(".thead").scrollLeft($(".tbody").scrollLeft())
  324. }
  325. jQuery.fn.rowspan = function (colIdx) { //封装的一个JQuery小插件
  326. return this.each(function () {
  327. var that, rowspan;
  328. $('tr', this).each(function (row) {
  329. $('td:eq(' + colIdx + ')', this).filter(':visible').each(function (col) {
  330. if (that != null && $(this).html() == $(that).html()) {
  331. rowspan = $(that).attr("rowSpan");
  332. if (rowspan == undefined) {
  333. $(that).attr("rowSpan", 1);
  334. rowspan = $(that).attr("rowSpan");
  335. }
  336. rowspan = Number(rowspan) + 1;
  337. $(that).attr("rowSpan", rowspan);
  338. $(this).remove();
  339. } else {
  340. that = this;
  341. }
  342. });
  343. });
  344. });
  345. }