script.js 8.2 KB

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