郑州第一人民医院UI

GoodsList.js 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  1. var goodsList = helper.request.queryString("goods");
  2. var id = helper.request.queryString("id");
  3. //var token = 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3ByaW1hcnlzaWQiOiI1YWFhNWE1NWI5YzE4OTNjYjAxNWRmMjciLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL2dyb3Vwc2lkIjoiMSIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL3NpZCI6IjgwMDAiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoi5YaF5rWL6LSm5oi3IiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiNWFhYTVhNTRiOWMxODkzY2IwMTVkZjI2IiwiUm9sZUNvZGUiOiJYVFdIIiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvZGVueW9ubHlzaWQiOiIiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL2V4cGlyYXRpb24iOiI1LzE0LzE5IDM6MDY6NTEgUE0iLCJuYmYiOjE1NTcyMTI4MTEsImV4cCI6MTU1NzgxNzYxMSwiaXNzIjoiSHlTaWduVG9rZW4iLCJhdWQiOiJIeUNhbGxDZW50ZXJBcGkifQ.TVrHhgGlCIW4jFP2JHcfPdMkB5Xmu0ulKtC7uUf6BFU'
  4. //localStorage.setItem("token", token);
  5. mui.init();
  6. //初始化单页view
  7. var viewApi = mui('#app').view({
  8. defaultPage: '#goodsList'
  9. });
  10. //初始化单页的区域滚动
  11. mui('.mui-scroll-wrapper').scroll();
  12. var view = viewApi.view;
  13. (function($) {
  14. //处理view的后退与webview后退
  15. var oldBack = $.back;
  16. $.back = function() {
  17. if(viewApi.canBack()) { //如果view可以后退,则执行view的后退
  18. viewApi.back();
  19. } else { //执行webview后退
  20. oldBack();
  21. }
  22. };
  23. //监听页面切换事件方案1,通过view元素监听所有页面切换事件,目前提供pageBeforeShow|pageShow|pageBeforeBack|pageBack四种事件(before事件为动画开始前触发)
  24. //第一个参数为事件名称,第二个参数为事件回调,其中e.detail.page为当前页面的html对象
  25. view.addEventListener('pageBeforeShow', function(e) {
  26. // console.log(e.detail.page.id + ' beforeShow');
  27. });
  28. //手动添加页面滑块
  29. mui('.mui-input-row .mui-switch').each(function() { //循环所有toggle
  30. //toggle.classList.contains('mui-active') 可识别该toggle的开关状态
  31. // this.parentNode.querySelector('span').innerText = '状态:' + (this.classList.contains('mui-active') ? 'true' : 'false');
  32. /**
  33. * toggle 事件监听
  34. */
  35. this.addEventListener('toggle', function(event) {
  36. //event.detail.isActive 可直接获取当前状态
  37. this.parentNode.querySelector('input').value = (event.detail.isActive ? 2 : 1);
  38. var emergencyid = (event.detail.isActive ? 2 : 1);
  39. console.log(this.parentNode.querySelector('input').value)
  40. });
  41. });
  42. })(mui);
  43. window.onload = function() {
  44. isHaveNoEvaluat(); //判断是否有未评价工单
  45. getFirstDrop(); //获取一级二级tab分类
  46. //去配送物品
  47. $(".goDelivery").on('tap', function() {
  48. if($('.shopCar .shopCarNums').length < 1) {
  49. mui.alert('请添加物品!');
  50. return
  51. }
  52. var countsArray = [];
  53. $('.shopCar .shopCarNums').each(function() {
  54. if($(this).val() > 0) {
  55. var objs = {};
  56. objs.goodsname = $(this).parent().prev('label').text();
  57. objs.goodsid = $(this).parent().prev('label').attr('index-id');
  58. objs.num = $(this).val();
  59. objs.typeid = $(this).attr('index-typeid');
  60. objs.remark = $(this).parent().parent().siblings('.tips').text();
  61. objs.buildingName = $(this).parent().parent().next('.adressText').children(".buildingName").text(); //楼名称
  62. objs.buildingid = $(this).parent().parent().next('.adressText').children(".buildingName").attr("attr"); //楼名称
  63. objs.floorName = $(this).parent().parent().next('.adressText').children(".floorName").text(); //楼层
  64. objs.floorid = $(this).parent().parent().next('.adressText').children(".floorName").attr("attr"); //楼名称
  65. objs.departmentName = $(this).parent().parent().next('.adressText').children(".departmentName").text(); //部门
  66. countsArray.push(objs);
  67. }
  68. })
  69. window.location.href = './GoodsDelivery.html?goods=' + JSON.stringify(countsArray)
  70. })
  71. // 单页面事件===================================
  72. //手动添加物品
  73. $('#headAddgoods').on('tap', function(e) {
  74. var indexs = $('.addBox .goodsCard').length;
  75. $('<div class="mui-input-group mui-card goodsCard new_goodsCard">' +
  76. '<div class="mui-input-row">' +
  77. ' <label>物品名称 </label>' +
  78. ' <input type="text" class="mui-input-clear hand_goodname" placeholder="请输入物品名称">' +
  79. '</div>' +
  80. '<div class="mui-input-row">' +
  81. ' <label>注意事项</label>' +
  82. ' <input type="text" class="mui-input-clear hand_care" placeholder="请输入注意事项">' +
  83. '</div>' +
  84. '<div class="mui-input-row">' +
  85. ' <label>发货数量</label>' +
  86. ' <div class="mui-numbox" data-numbox-min="0">' +
  87. ' <button class="mui-btn mui-btn-numbox-minus" type="button">-</button>' +
  88. ' <input class="mui-input-numbox headNums" id="numbox' + indexs + 'h" index-id="' + indexs + 'h" type="number" onchange="HeadChangEvent()" />' +
  89. ' <button class="mui-btn mui-btn-numbox-plus" type="button">+</button>' +
  90. ' </div>' +
  91. '</div>' +
  92. '<div class="mui-input-row">' +
  93. '<label>是否紧急</label>' +
  94. '<input type="hidden" class="typeid" />' +
  95. '<div class="mui-switch mui-switch-red">' +
  96. '<div class="mui-switch-handle"></div>' +
  97. '</div>' +
  98. '</div>' +
  99. '</div>').appendTo('.addBox');
  100. mui('.mui-numbox').numbox(); //初始化数字增减
  101. mui('.mui-input-row .mui-switch')['switch'](); //初始化开关按钮
  102. var goodCont = $('.goodsCard').length;
  103. $('.HeadClassCounts').text(goodCont);
  104. })
  105. //物品选择完成
  106. $('.editDone').on('tap', function() {
  107. editDone();
  108. });
  109. //点击请求下一页
  110. $('.itemGroup').on('tap', '.goNextPage', function() {
  111. var kindid = $(this).attr('index-id');
  112. var pages = parseInt($(this).attr('index-page')) + parseInt(1);
  113. getGoodsList(kindid, pages, 10, kindid)
  114. })
  115. }
  116. //判断是否有未评价工单
  117. function isHaveNoEvaluat() {
  118. console.log($)
  119. $.ajax({
  120. type: "post",
  121. url: huayi.config.callcenter_url + "distributionapi/api/DistriWorkOrder/isevaluation",
  122. async: true,
  123. dataType: 'json',
  124. success: function(result) {
  125. if(result.state.toLowerCase() == 'error') {
  126. // if(result.state.toLowerCase() == 'success') {
  127. mui.alert('您有未评价的工单,去评价吧!', function() {
  128. window.location.href = '../html/WorkSeach.html?pj=1&r=' + Math.random();
  129. })
  130. }
  131. }
  132. });
  133. }
  134. //物品列表页数量input 改变事件
  135. function changEvent(ele) {
  136. // var val = 0,
  137. var count = 0,
  138. countsArray = [];
  139. $('.goodsListNums').each(function() {
  140. // val += +$(this).val();
  141. if($(this).val() > 0) {
  142. var objs = {};
  143. count++
  144. objs.goodsname = $(this).parent().prev('label').text();
  145. objs.goodsid = $(this).parent().prev('label').attr('index-id');
  146. objs.num = $(this).val();
  147. objs.typeid = $(this).attr('index-typeid');
  148. objs.remark = $(this).parent().parent().siblings('.tips').text();
  149. objs.buildingName = $(this).parent().parent().next('.adressText').children(".buildingName").text(); //楼名称
  150. objs.buildingid = $(this).parent().parent().next('.adressText').children(".buildingName").attr("attr"); //楼名称
  151. objs.floorName = $(this).parent().parent().next('.adressText').children(".floorName").text(); //楼层
  152. objs.floorid = $(this).parent().parent().next('.adressText').children(".floorName").attr("attr"); //楼名称
  153. objs.departmentName = $(this).parent().parent().next('.adressText').children(".departmentName").text(); //部门
  154. countsArray.push(objs);
  155. }
  156. })
  157. addShopCar(countsArray); //添加购物车
  158. //左侧tabItem 角标数量
  159. var index_id = $(ele).attr('parent-id');
  160. var badgeCount = 0;
  161. $('#content' + index_id).find('.goodsListNums').each(function() {
  162. if($(this).val() > 0) {
  163. badgeCount++
  164. if(badgeCount > 0) {
  165. $('#badge' + index_id).css('display', 'inline-block')
  166. } else {
  167. $('#badge' + index_id).css('display', 'none')
  168. }
  169. }
  170. })
  171. $('#badge' + index_id).text(badgeCount)
  172. }
  173. //加购物车事件
  174. function addShopCar(arr) {
  175. $('.shopCar .selfChoose').remove();
  176. $('.shopCar .empty').hide();
  177. var cts = 0;
  178. console.log(arr);
  179. $.each(arr, function(k, v) {
  180. var carStr = '<li class="mui-table-view-cell selfChoose">' +
  181. '<div class="mui-input-row">' +
  182. '<label index-id="' + v.goodsid + '">' + v.goodsname
  183. if(v.typeid == 2) {
  184. carStr += '<i class="urgent"></i>'
  185. }
  186. carStr += '</label>' +
  187. '<div class="mui-numbox mui-shaopCar" data-numbox-min="0">' +
  188. '<button class="mui-btn mui-btn-numbox-minus" type="button">-</button>' +
  189. '<input class="mui-input-numbox nums shopCarNums" type="number" index-typeid="' + v.typeid + '" index-id="' + v.goodsid + '" value="' + v.num + '" onchange="changeShopCarInput(this)" />' +
  190. '<button class="mui-btn mui-btn-numbox-plus" type="button">+</button>' +
  191. '</div>' +
  192. '</div>' +
  193. '<p class="adressText"><span class="buildingName" attr="'+v.buildingid+'">'+v.buildingName+
  194. '</span><span class="floorName" attr="'+v.floorid+'">'+v.floorName+
  195. '</span><span class="departmentName">'+v.departmentName+
  196. '</span></p>' +
  197. '<p class="tips"><i class="tipsIcon"></i>' + v.remark + '</p>' +
  198. '</li>'
  199. $('.shopCar').append(carStr);
  200. mui('.mui-numbox.mui-shaopCar').numbox()
  201. // cts += +v.nums
  202. })
  203. $('.shopCar .shopCarNums').each(function() {
  204. cts += +$(this).val();
  205. })
  206. $('.numCounts').text(cts); //物品数量
  207. $('.classCounts').text($('.shopCar .shopCarNums').length); //物品种类数量
  208. }
  209. //购物车内数量变化事件
  210. function changeShopCarInput(ele) {
  211. var index_id = $(ele).attr('index-id');
  212. var values = $(ele).val();
  213. $('#numbox' + index_id).val(values)
  214. var counts = 0;
  215. $('.shopCar .shopCarNums').each(function() {
  216. counts += +$(this).val();
  217. })
  218. $('.numCounts').text(counts);
  219. }
  220. //物品一级分类 and 左侧二级分类
  221. function getFirstDrop() {
  222. $.ajax({
  223. type: "get",
  224. url: huayi.config.callcenter_url + "distributionapi/api/DistriGoodsType/getlistdrop",
  225. async: true,
  226. dataType: 'json',
  227. data: {},
  228. success: function(result) {
  229. $('.tabBar-control-item').empty();
  230. $('.itemGroup').empty();
  231. $(result.data).each(function(k, v) {
  232. var strs = "";
  233. if(k < 1) {
  234. $('.tabBar-control-item').append('<a class="mui-control-item mui-active" href="#item' + k + 'mobile" index-id="' + v.id + '">' + v.kindname + '<span class="mui-badge mui-badge-hotred" id="badge' + v.id + '">3</span></a>');
  235. strs = '<div id="item' + k + 'mobile" class=" mui-slider-item mui-control-content mui-active">'
  236. } else {
  237. $('.tabBar-control-item').append('<a class="mui-control-item" href="#item' + k + 'mobile" index-id="' + v.id + '">' + v.kindname + '<span class="mui-badge mui-badge-hotred" id="badge' + v.id + '">3</span></a>');
  238. strs = '<div id="item' + k + 'mobile" class=" mui-slider-item mui-control-content">'
  239. }
  240. strs += '<div id="scroll' + k + '" class="mui-scroll-wrapper">' +
  241. '<div class="mui-scroll" id="content' + v.id + '">' +
  242. '<ul class="mui-table-view contentList" index-id="' + v.id + '" index-page="1">'
  243. getGoodsList(v.id, 1, 10, v.id);
  244. strs += '</ul>' +
  245. '</div>' +
  246. '</div>' +
  247. '</div>'
  248. $('.itemGroup').append(strs);
  249. })
  250. }
  251. });
  252. }
  253. // 物品列表
  254. function getGoodsList(kindid, pageindex, pagesize, eleIds) {
  255. $.ajax({
  256. type: "get",
  257. url: huayi.config.callcenter_url + "distributionapi/api/DistriGoods/getlistbypage",
  258. async: true,
  259. dataType: 'json',
  260. data: {
  261. kindid: kindid,
  262. pageindex: pageindex,
  263. pagesize: pagesize,
  264. },
  265. success: function(result) {
  266. if(result.state == 'success') {
  267. $('#content' + eleIds).find('.goNextPage').remove();
  268. $('#content' + eleIds).find('.msgMore').remove();
  269. if(result.data.rows.length <= 0) {
  270. $('#content' + eleIds).append('<div class="mui-pull-bottom-tips msgMore"><div class="mui-pull-bottom-wrapper"><span class=".mui-pull-loading">没有更多数据了</span></div></div>')
  271. } else {
  272. $.each(result.data.rows, function(k, l) {
  273. var buildingnameT,floornameT,departmentnameT
  274. var strs = '<li class="mui-table-view-cell">' +
  275. '<div class="mui-input-row">' +
  276. '<label index-id="' + l.id + '">' + l.goodsname
  277. if(l.typeid == 2) {
  278. strs += '<i class="urgent"></i>'
  279. }
  280. if (l.buildingname!=null) {
  281. $(".adressText").show();
  282. buildingnameT=l.buildingname;
  283. floornameT=l.floorname;
  284. departmentnameT=l.departmentname;
  285. }else{
  286. buildingnameT="";
  287. floornameT="";
  288. departmentnameT="";
  289. }
  290. strs += '</label>' +
  291. '<div class="mui-numbox mui-goods-numbox" data-numbox-min="0">' +
  292. '<button class="mui-btn mui-btn-numbox-minus" type="button">-</button>' +
  293. '<input class="mui-input-numbox nums goodsListNums" id="numbox' + l.id + '" type="number" index-typeid="' + l.typeid + '" index-id="' + l.goodsid + '" parent-id="' + eleIds + '" onchange="changEvent(this)" />' +
  294. '<button class="mui-btn mui-btn-numbox-plus" type="button">+</button>' +
  295. '</div>' +
  296. '</div>' +
  297. '<p class="adressText"><span class="buildingName" attr="'+l.buildingid+'">'+buildingnameT+
  298. '</span><span class="floorName" attr="'+l.floorid+'">'+floornameT+
  299. '</span><span class="departmentName">'+departmentnameT+
  300. '</span></p>' +
  301. '<p class="tips"><i class="tipsIcon"></i>' + ISNull(l.remark) + '</p>' +
  302. '</li>'
  303. //$('#content' + eleIds).find('ul').append()
  304. $('#content' + eleIds).find('ul').append(strs)
  305. mui('.mui-numbox.mui-goods-numbox').numbox()
  306. });
  307. if(goodsList) {
  308. addShopCar(JSON.parse(goodsList));
  309. $(JSON.parse(goodsList)).each(function(i, w) {
  310. $('#numbox' + w.goodsid).val(w.num)
  311. })
  312. }
  313. if(result.data.rows.length >= 10) {
  314. $('#content' + eleIds).append('<div class="mui-pull-bottom-tips goNextPage" index-page="' + pageindex + '" index-id="' + eleIds + '"><div class="mui-pull-bottom-wrapper"><span class="mui-pull-loading">查看更多...</span></div></div>')
  315. } else {
  316. $('#content' + eleIds).append('<div class="mui-pull-bottom-tips msgMore"><div class="mui-pull-bottom-wrapper"><span class="mui-pull-loading">没有更多数据了...</span></div></div>')
  317. }
  318. }
  319. mui.init();
  320. mui('.mui-scroll-wrapper').scroll();
  321. }
  322. },
  323. error: function(textStatus) {
  324. mui.toast('网络繁忙,物品获取失败...');
  325. },
  326. complete: function(XMLHttpRequest, textStatus) {
  327. if(textStatus == 'timeout') {
  328. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  329. xmlhttp.abort();
  330. mui.toast('网络超时,请稍后刷新再试...');
  331. }
  332. },
  333. });
  334. }
  335. //手动添加物品 页面-- 数量变化事件
  336. function HeadChangEvent() {
  337. var val = 0;
  338. $('.headNums').each(function() {
  339. val += +$(this).val();
  340. })
  341. $('.HeadNumCounts').text(val);
  342. }
  343. function ISNull(val){
  344. if(val==null || val==undefined ||!val){
  345. return ""
  346. }else{
  347. return val
  348. }
  349. }
  350. //手动添加物品 页面-- 编辑成功加入购物车
  351. function editDone() {
  352. $('.addBox .goodsCard').each(function() {
  353. var typeid = 1;
  354. if($(this).find('.hand_goodname').val() && $(this).find('.headNums').val() > 0) {
  355. if($(this).find('.mui-switch').hasClass("mui-active")) {
  356. typeid = 2;
  357. }
  358. var handStrs = '<li class="mui-table-view-cell">' +
  359. '<div class="mui-input-row">' +
  360. '<label index-id="">' + $(this).find('.hand_goodname').val()
  361. if(typeid == 2) {
  362. handStrs += '<i class="urgent"></i>'
  363. }
  364. handStrs += '</label>' +
  365. '<div class="mui-numbox mui-shaopCar" data-numbox-min="0">' +
  366. '<button class="mui-btn mui-btn-numbox-minus" type="button">-</button>' +
  367. '<input class="mui-input-numbox nums shopCarNums" type="number" index-id="" index-typeid="' + typeid + '" value="' + $(this).find('.headNums').val() + '" onchange="changeShopCarInput(this)" />' +
  368. '<button class="mui-btn mui-btn-numbox-plus" type="button">+</button>' +
  369. '</div>' +
  370. '</div>' +
  371. '<p class="adressText"><span class="buildingName" attr="'+l.buildingid+'">'+l.buildingname+
  372. '<p class="tips"><i class="tipsIcon"></i>' + $(this).find('.hand_care').val() + '</p>' +
  373. '</li>'
  374. $('.shopCar').append(handStrs);
  375. }
  376. mui('.mui-numbox.mui-shaopCar').numbox()
  377. })
  378. $('.shopCar .empty').hide();
  379. var cts = 0;
  380. $('.shopCar .shopCarNums').each(function() {
  381. cts += +$(this).val();
  382. })
  383. $('.numCounts').text(cts); //物品数量
  384. $('.classCounts').text($('.shopCar .shopCarNums').length); //物品种类数量
  385. //重置 手动添加物品页面信息
  386. $('.addBox .new_goodsCard').remove();
  387. $('.hand_goodname').val('');
  388. $('.hand_care').val('');
  389. $('.headNums').val(0);
  390. $('.HeadClassCounts').text('1');
  391. $('.HeadNumCounts').text('0');
  392. }