Index.js 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. var Frm;
  2. var F_CONTRGRPNO = "";
  3. var F_NOS = "";
  4. var leftorright = 0;
  5. var bootstrap = function ($, learun) {
  6. Frm = learun;
  7. function httpHeaders() {
  8. var headers = {
  9. token: top.$.lcoreUser.token
  10. }
  11. return headers;
  12. }
  13. var page = {
  14. init: function () {
  15. page.bind();
  16. //page.getChartData();
  17. },
  18. bind: function () {
  19. //// 仓库与区域多选
  20. //$('#locWareHouse').lrselect({
  21. // url: top.$.rootUrl + '/BaseManager/BaseWarehouse/GetCheckWWTreeByLocation',
  22. // maxHeight: 180,
  23. // allowSearch: true
  24. //});
  25. //$('#locWareHouse').lrselectSet("WTP");
  26. ////仓库选择事件,改变行数据(最大值和最小值)
  27. //$("#locWareHouse").change(function () {
  28. // var houseCode = $(this).lrselectGet();
  29. // page.getLine(houseCode);
  30. //});
  31. // 加载
  32. $('#SRMName').lrselect({
  33. url: top.$.rootUrl + '/FJManager/QueryCell/GetSelectSRMNameList',
  34. maxHeight: 180,
  35. allowSearch: false
  36. });
  37. $("#SRMName").change(function () {
  38. var srmname = $(this).lrselectGet();
  39. page.getChartData(srmname);
  40. });
  41. $('#lr_refresh').on('click', function () {
  42. var srmname = $("#SRMName").lrselectGet();
  43. page.getChartData(srmname);
  44. });
  45. $('#lr_left').on('click', function () {
  46. leftorright = 0;
  47. $(this).addClass('active');
  48. $('#lr_right').removeClass('active');
  49. var srmname = $("#SRMName").lrselectGet();
  50. page.getChartData(srmname);
  51. });
  52. $('#lr_right').on('click', function () {
  53. leftorright = 1;
  54. $(this).addClass('active');
  55. $('#lr_left').removeClass('active');
  56. var srmname = $("#SRMName").lrselectGet();
  57. page.getChartData(srmname);
  58. });
  59. //弹框关闭事件
  60. $("#closeModal").click(function () {
  61. for (let i = 2; i < 4; i++) {
  62. $("#loc" + i).css("display", "none");
  63. }
  64. // 关闭时将选中的托盘号清空
  65. F_CONTRGRPNO = "";
  66. F_NOS = "";
  67. $("#myModal").hide();
  68. });
  69. },
  70. getChartData: function (srmname) {
  71. if (!srmname || srmname == '') {
  72. learun.alert.error('请选择堆垛机!');
  73. return false;
  74. }
  75. $.ajax({
  76. type: 'post',
  77. headers: httpHeaders(),
  78. data: { query: JSON.stringify({ SCRel: srmname }) },
  79. dataType: 'json',
  80. url: top.$.rootUrl + '/FJManager/QueryCell/GetLocViewList',
  81. //url: top.$.rootUrl + '/FJManager/QueryCell/GetLocList?houserNo=' + houseNo + "&line=" + line,
  82. success: function (response) {
  83. var res = response;
  84. //page.showChart(eval(res.data.json), res.data.y + 1, res.data.x + 1); //加载储位展示图(坐标加1,显示需要)
  85. if (leftorright == 0) {
  86. page.showChart(res.data.LeftJson, res.data.Y + 1, res.data.X + 1); //加载储位展示图(坐标加1,显示需要)
  87. }
  88. else {
  89. page.showChart(res.data.RightJson, res.data.Y + 1, res.data.X + 1); //加载储位展示图(坐标加1,显示需要)
  90. }
  91. }
  92. });
  93. //$.post("GetLocList", { houserNo: houseNo, line: line }, function (response) {
  94. // var res = eval("(" + response + ")");
  95. // showChart(eval("(" + res.data.json + ")"), res.data.y + 1, res.data.x + 1); //加载储位展示图(坐标加1,显示需要)
  96. //})
  97. },
  98. showChart: function (data, layerList, slotCnt) {
  99. var chart = echarts.init(document.getElementById("echart"));
  100. if (layerList > 1 && slotCnt > 1) {
  101. page.setChart(data, layerList, slotCnt);//Echart所需要的设置
  102. chart.setOption(option);//Echart所需要的设置
  103. chart.off('click');//点击事件之前,要释放之前的点击事件
  104. chart.on('click', function (params) {//点击事件
  105. if (params.data.LocationStateName == "有货") {
  106. Frm.layerForm({
  107. id: 'form',
  108. title: '货位明细',
  109. url: top.$.rootUrl + '/FJManager/QueryCell/Form?keyValue=' + params.data.ContGrpId,
  110. width: 1100,
  111. height: 500,
  112. btn: ['关闭'],
  113. //callBack: function (id) {
  114. // return top[id].acceptClick(refreshGirdData);
  115. //}
  116. });
  117. }
  118. });
  119. }
  120. else {
  121. //没有图标数据的时候,默认展示一个空的表格
  122. var dataHide = [
  123. {
  124. name: "b1",
  125. id: 31,
  126. hashMode: "设备",
  127. value: [0, 0, 0, 0],
  128. itemStyle: { normal: { color: "#715881" } }
  129. }];
  130. page.setChart(dataHide, 0, 0);
  131. chart.setOption(option);
  132. }
  133. },
  134. setChart: function (data, layerList, slotCnt) {
  135. function renderItem(params, api) {
  136. var start = api.coord([api.value(2), api.value(1)]);
  137. if (params.dataIndex != 0 && data[params.dataIndex].Depth == 2)
  138. {
  139. start[1] = start[1] + 20;
  140. }
  141. //if (params.dataIndex != 0 && data[params.dataIndex].Depth == 3)
  142. //{
  143. // start[1] = start[1]- 120;
  144. //}
  145. //if (params.dataIndex!=0 && params.dataIndex % 2 == 0) {
  146. // start[1] = api.coord([api.value(1), api.value(1)]) ;
  147. //}
  148. //if (params.dataIndex != 0 && params.dataIndex % 3 == 0) {
  149. // start[1] = api.coord([api.value(2), api.value(2)]);
  150. //}
  151. var rectShape = echarts.graphic.clipRectByRect({
  152. x: start[0],
  153. y: start[1],
  154. width: api.size([100, 1])[0] * ((api.value(3) - api.value(2)) / 100),
  155. height: api.size([100, 1])[1] * ((api.value(1) - api.value(0))/2 )
  156. } , {
  157. x: params.coordSys.x,
  158. y: params.coordSys.y,
  159. width: params.coordSys.width,
  160. height: params.coordSys.height
  161. });
  162. return (
  163. rectShape && {
  164. type: "rect",
  165. //transition: ['shape'],
  166. shape: rectShape,
  167. style: api.style({
  168. //text: `${data[params.dataIndex].name}`
  169. })
  170. }
  171. );
  172. }
  173. option = {
  174. tooltip: {
  175. formatter: function (params) {
  176. return (
  177. //params.marker +
  178. // params.name +
  179. // ": " +
  180. // params.value[2] +
  181. // "~" +
  182. // params.value[3] + '<br/>' + params.marker + `hashMode:${params.data.hashMode}`
  183. // params.marker + params.data.STATE + "<br/>"
  184. // + params.marker + params.data.LocationStateName + "<br/>"
  185. // + params.marker + params.data.F_COL + "行" + params.data.F_LAYER + "列" + params.data.F_DEPTH + "层" //光标悬浮显示内容
  186. params.marker + params.data.LocationStateName + '<br/>' + params.marker + params.data.Name
  187. );
  188. }
  189. },
  190. title: {
  191. // text: "Profile",
  192. left: "center"
  193. },
  194. grid: {
  195. y:20,
  196. height: 600
  197. },
  198. xAxis: {
  199. min: 0,
  200. splitNumber: slotCnt,
  201. max: slotCnt
  202. },
  203. yAxis: [{
  204. position: "left",
  205. max: layerList,
  206. min: 0,
  207. splitNumber: layerList
  208. }
  209. //,
  210. //{
  211. // position: "left",
  212. // data: layerList
  213. //}
  214. ],
  215. series: [{
  216. type: "custom",
  217. itemStyle: {
  218. //normal: {
  219. // opacity: 1
  220. //},
  221. //borderColor: 'red',
  222. //borderWidth: 3
  223. },
  224. renderItem: renderItem,
  225. //encode: {
  226. // x: [1, 2],
  227. // y: 0
  228. //},
  229. data: data,
  230. }
  231. ]
  232. };
  233. }
  234. };
  235. page.init();
  236. };