script.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. var getNode = function(id){
  2. return document.getElementById(id)
  3. }
  4. // 正则获取地址栏参数
  5. function getQueryString(name) {
  6. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i")
  7. var r = window.location.search.substr(1).match(reg)
  8. if (r != null) {
  9. return unescape(r[2])
  10. }
  11. return null
  12. }
  13. var yuyue = getNode("yuyue") // 预约按钮
  14. var modal = getNode("zy-h5-modal") // 预约弹框
  15. var modalZz = getNode("zy-h5-fix-z") // 弹框遮罩层
  16. var submitModal = getNode("submitModal") // 提交预约
  17. var canselModal = getNode("canselModal") // 取消预约
  18. var userPhone = getNode("userPhone") // 预约手机号
  19. var joinerNum = getNode("joinerNum") // 参与人数
  20. var storeHead = getNode("store-head") // 头部门店名称
  21. var store = getNode("store") // 门店
  22. var address = getNode("address") // 地址
  23. var tel = getNode("tel") // 电话
  24. var storeId = getQueryString('orgId') || 0 // 门店id
  25. var companyId = ''
  26. // test, 测试 local、dev:本地开发环境 pre :预发布 pro:生产
  27. if(baseType == 'test'){
  28. var reqUrl = 'http://192.168.16.100:9110/saas/clz/'
  29. }else if(baseType == 'local'){
  30. var reqUrl = 'http://192.168.16.104:9110/saas/clz/'
  31. }else if(baseType == 'dev'){
  32. var reqUrl = 'http://192.168.16.104:9110/saas/clz/'
  33. }else if(baseType == 'pre'){
  34. var reqUrl = 'http://md.test.zyucgj.com/saas/clz/'
  35. }else if(baseType == 'pro'){
  36. var reqUrl = 'http://md.chelingzhu.com/saas/clz/'
  37. }else if(baseType == 'qbx'){
  38. var reqUrl = 'https://md.qiubcar.com/saas/clz/'
  39. }
  40. // 隐藏预约弹框
  41. var closeYy = function (){
  42. userPhone.value = ''
  43. modal.style.display = 'none'
  44. modalZz.style.display = 'none'
  45. }
  46. window.onload = function(){
  47. // 适用门店
  48. $("#showStore").click(function(){
  49. var _this = this
  50. $(".mask").show()
  51. $(".store-info-list").animate({bottom:'0em'},"slow",function(){
  52. $("body").css({'height':'100%','overflow':'hidden'})
  53. $(_this).hide()
  54. })
  55. })
  56. $("#close-store,.mask").click(function(e){
  57. e.stopPropagation()
  58. $(".store-info-list").animate({bottom:'-1000em'},"slow")
  59. $("body").css({'height':'auto','overflow':'auto'})
  60. $("#showStore").show()
  61. $(".mask").hide()
  62. })
  63. // 查看地址
  64. $(".address").click(function(e){
  65. e.stopPropagation()
  66. wx.openLocation({
  67. latitude: item.lat, // 纬度,浮点数,范围为90 ~ -90
  68. longitude: item.lng, // 经度,浮点数,范围为180 ~ -180。
  69. name: item.name, // 位置名
  70. address: item.addrDetail, // 地址详情说明
  71. scale: 26, // 地图缩放级别,整形值,范围从1~28。默认为最大
  72. infoUrl: '' // 在查看位置界面底部显示的超链接,可点击跳转
  73. });
  74. })
  75. // 分享初始化
  76. setTimeout(function(){
  77. shareCls.getWxCofing(reqUrl)
  78. },500)
  79. if(staticHtmlPath){ // 发布
  80. onLoading() // 加载中
  81. checkActiveValid()
  82. }else{ // 预览
  83. getActivityData() // 获取活动信息
  84. }
  85. // 校验活动是否还在进行
  86. function checkActiveValid(){
  87. $.ajax({
  88. url: reqUrl + 'zycar-mgr/active/checkActiveValid/' + activeId,
  89. type: 'get',
  90. header: { contentType: 'application/json;charset=UTF-8' },
  91. // 设置的是请求参数
  92. data: {},
  93. dataType: 'json',
  94. success: function (res) {
  95. if(res.status == 200){
  96. if(res.data){
  97. getActivityData() // 获取活动信息
  98. }else{
  99. closeLoading() // 关闭加载状态
  100. alert('该活动已经结束!')
  101. }
  102. }
  103. }
  104. })
  105. }
  106. // 获取活动信息
  107. function getActivityData(){
  108. // 获取活动信息 (海报和门店二维码)
  109. $.ajax({
  110. url: reqUrl + 'active/findActiveAttach/' + activeId,
  111. type: 'get',
  112. header: { contentType: 'application/json;charset=UTF-8' },
  113. // 设置的是请求参数
  114. data: {},
  115. dataType: 'json',
  116. success: function (res) {
  117. if(res.status == 200){
  118. var data = res.data
  119. if(staticHtmlPath){ // 发布
  120. // var joinerNumVal = parseInt(data.initBuyNum) + parseInt(data.joinerNum)
  121. // joinerNum.innerHTML = joinerNumVal
  122. $('.zy-h5-store-info').show()
  123. }
  124. // 根据门店id处理对应页面展示
  125. if(storeId){ // 门店端发布活动会传有门店id参数
  126. // 获取门店信息
  127. $.ajax({
  128. url: reqUrl + 'cross/store/' + storeId,
  129. type: 'get',
  130. header: { contentType: 'application/json;charset=UTF-8' },
  131. // 设置的是请求参数
  132. data: {},
  133. dataType: 'json',
  134. success: function (result) {
  135. if(result.status == 200){
  136. var data = result.data
  137. storeHead.innerHTML = data.name || ''
  138. store.innerHTML = data.name || ''
  139. var addrCityName = data.addrCityName || ''
  140. var addrDistrictName = data.addrDistrictName || ''
  141. var addrDetail = data.addrDetail || ''
  142. address.innerHTML = addrCityName + addrDistrictName + addrDetail
  143. tel.innerHTML = data.managerMobile
  144. document.getElementById("tel-link").href = 'tel:' + data.managerMobile
  145. companyId = data.companyId
  146. joinerList(companyId) // 参与人列表数据
  147. }
  148. },
  149. })
  150. }else{ // 运营端发布活动无门店id参数
  151. joinerList() // 参与人列表数据
  152. }
  153. closeLoading() // 关闭加载状态
  154. }
  155. },
  156. })
  157. }
  158. // 关闭加载状态
  159. function closeLoading(){
  160. if(staticHtmlPath){ // 发布
  161. // 关闭加载状态
  162. document.getElementById('foo').style.display = 'none'
  163. modalZz.style.display = 'none'
  164. // 不是微信端打开的页面
  165. if(!browser.versions.weixin){
  166. document.querySelector('.zy-h5-bf-bar').style.display = 'none'
  167. document.querySelector('.zy-h5-fx-bar').style.display = 'none'
  168. }else{
  169. document.querySelector('.zy-h5-bf-bar').style.display = 'flex'
  170. document.querySelector('.zy-h5-fx-bar').style.display = 'block'
  171. }
  172. }
  173. }
  174. // 加载中
  175. function onLoading(){
  176. // 隐藏参与和分享按钮
  177. document.querySelector('.zy-h5-bf-bar').style.display = 'none'
  178. document.querySelector('.zy-h5-fx-bar').style.display = 'none'
  179. modalZz.style.display = 'block' // 遮罩层
  180. var opts = {
  181. lines: 9, // The number of lines to draw
  182. length: 0, // The length of each line
  183. width: 10, // The line thickness
  184. radius: 15, // The radius of the inner circle
  185. corners: 1, // Corner roundness (0..1)
  186. rotate: 0, // The rotation offset
  187. color: '#2979ff', // #rgb or #rrggbb
  188. speed: 1, // Rounds per second
  189. trail: 60, // Afterglow percentage
  190. shadow: false, // Whether to render a shadow
  191. hwaccel: false, // Whether to use hardware acceleration
  192. className: 'spinner', // The CSS class to assign to the spinner
  193. zIndex: 2e9, // The z-index (defaults to 2000000000)
  194. top: 'auto', // Top position relative to parent in px
  195. left: 'auto' // Left position relative to parent in px
  196. };
  197. var target = document.getElementById('foo');
  198. var spinner = new Spinner(opts).spin(target);
  199. }
  200. // 打开预约弹框
  201. yuyue.onclick = function(){
  202. modal.style.display = 'block'
  203. modalZz.style.display = 'block'
  204. }
  205. // 关闭预约弹框
  206. canselModal.onclick = function(){
  207. closeYy()
  208. }
  209. // 提交预约
  210. submitModal.onclick = function(){
  211. // 提交代码到后台
  212. var mobile = userPhone.value
  213. if(mobile==''){
  214. alert("请输入手机号码");
  215. return false;
  216. }
  217. if(!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(mobile))){
  218. alert("手机号码错误,请重填");
  219. return false;
  220. }
  221. var obj = JSON.stringify({
  222. "joinerMobile": mobile, // 参与手机号
  223. "activeId": activeId, // 活动id
  224. "tenantId": storeId, // 门店id
  225. "companyId": companyId // 公司id
  226. })
  227. // 立即参与
  228. $.ajax({
  229. url: reqUrl + 'active/signUp',
  230. type: 'post',
  231. contentType: 'application/json;charset=UTF-8',
  232. // 设置的是请求参数
  233. data: obj,
  234. dataType: 'json',
  235. success: function (res) {
  236. if(res.status == 200){
  237. closeYy()
  238. }
  239. alert(res.message)
  240. }
  241. })
  242. }
  243. // 门店活动统计(参与者轮播)
  244. function joinerList(companyId){
  245. var obj = JSON.stringify({
  246. activeId: activeId, // 活动id
  247. tenantId: storeId, // 门店id
  248. companyId: companyId, // 公司id
  249. status: 9 // 9是假数据的标识
  250. })
  251. // 获取门店信息
  252. $.ajax({
  253. url: reqUrl + 'cross/active/joinerByActive/1/1000',
  254. type: 'post',
  255. contentType: 'application/json;charset=UTF-8',
  256. // 设置的是请求参数
  257. data: obj,
  258. dataType: 'json',
  259. success: function (res) {
  260. if(res.status == 200){
  261. var data = res.data.list
  262. var html = `<div class="kh-list-tr kh-list-tr-head">
  263. <div class="kh-list-td">手机号</div>
  264. <div class="kh-list-td">报名状态</div>
  265. </div>`
  266. for(var i = 0; i < data.length; i++){
  267. html += `<div class="kh-list-tr">
  268. <div class="kh-list-td">${data[i].joinerMobile}</div>
  269. <div class="kh-list-td">已报名</div>
  270. </div>`
  271. }
  272. document.getElementById("kh-list").innerHTML = html
  273. joinerNum.innerHTML = data.length
  274. }
  275. },
  276. })
  277. }
  278. }