index.js 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  1. import * as WxJsApi from '@/utils/wxJsApi.js'
  2. import * as API from '@/apis/index.js'
  3. export default {
  4. data() {
  5. return {
  6. isReady:false,
  7. rbool:false,
  8. wxinit:false,
  9. index:0,
  10. btn:{
  11. color: '#1677FF'
  12. },
  13. remindBl:false,
  14. remindInfo:null,
  15. isLoading:false,
  16. getPointBl:false,//是否定位完成
  17. longitude: '',
  18. latitude: '',
  19. optionsName:'荆州',
  20. options1:[
  21. ],
  22. list: [ ],
  23. siteList:[
  24. ],
  25. radiolist: [
  26. {
  27. name: '不提醒',
  28. isRemind: "0",
  29. },
  30. {
  31. name: '提前1站',
  32. isRemind: "1",
  33. },
  34. {
  35. name: '提前2站',
  36. isRemind: "2",
  37. }
  38. ],
  39. // u-radio-group的v-model绑定的值如果设置为某个radio的name,就会被默认选中
  40. value: 'orange',
  41. }
  42. },
  43. onLoad(){
  44. },
  45. methods: {
  46. // 选中某个单选框时,由radio时触发
  47. radioChange(e) {
  48. // console.log(e);
  49. },
  50. // 选中任一radio时,由radio-group触发
  51. remindHD(){
  52. var item= this.remindInfo
  53. if(item.isRemind==0){
  54. if(this.remindInfo.remindId){
  55. this.del(item.remindId,item.isRemind!=0)
  56. }
  57. return
  58. }
  59. if(item.remindId){
  60. this.del(item.remindId,item.isRemind!=0)
  61. }else{
  62. this.add()
  63. }
  64. },
  65. del(id,bl){
  66. API.cancelRemind(id).then((res) => {
  67. this.remindInfo.remindId=""
  68. if(bl){
  69. this.add()
  70. }else{
  71. this.$refs.common.alert( "设置成功");
  72. }
  73. }).catch(error => {
  74. this.$refs.common.alert( error);
  75. })
  76. },
  77. add(){
  78. var item= this.remindInfo
  79. var obj={
  80. startStationId:item.startStationId,
  81. remindStationId :item.ticketDownStationId,
  82. stopInAdvance:item.isRemind,
  83. remindType:"2",
  84. vehicleShiftId:item.vehicleShiftId,
  85. openId:this.carhelp.getOpenId()
  86. }
  87. API.saveRemind(obj).then((res) => {
  88. item.remindId=res.data.id
  89. this.$refs.common.alert( "设置成功");
  90. }).catch(error => {
  91. this.$refs.common.alert( error);
  92. })
  93. },
  94. radioGroupChange(item) {
  95. this.remindHD();
  96. },
  97. getRemindInfo(){
  98. API.queryRemind(this.carhelp.getOpenId()).then((res) => {
  99. if(res.data.length){
  100. this.remindInfo=res.data[0]
  101. var obj=this.remindInfo
  102. if(obj.remindId){
  103. this.rbool=true;
  104. obj.isRemind=obj.stopInAdvance;
  105. }else{
  106. obj.isRemind="0";
  107. }
  108. }
  109. }).catch(error => {
  110. this.$refs.common.alert( error);
  111. })
  112. },
  113. getNewNum(){
  114. var pages = getCurrentPages();
  115. var page = (pages[pages.length - 1]).route;
  116. if(page=="pages/index/index"||
  117. page=="pages/my/index"||
  118. page=="pages/news/index"){
  119. setTimeout(this.getNewNum,10000)
  120. }else{
  121. setTimeout(this.getNewNum,1000)
  122. return;
  123. }
  124. var data={
  125. openId:this.carhelp.getOpenId()
  126. };
  127. if(!this.carhelp.getOpenId()){
  128. return
  129. }
  130. API.passengerMessageNoReadNum(data).then((res) => {
  131. var num=res.data.num;
  132. if(num){
  133. uni.setTabBarBadge({
  134. index: 2,
  135. text: num+''
  136. })
  137. }else{
  138. uni.removeTabBarBadge({
  139. index:2
  140. })
  141. }
  142. }).catch(error => {
  143. })
  144. } ,
  145. getBanner() {
  146. API.getBannerInfo("1").then((res) => {
  147. this.list=res.data;
  148. for(var i in this.list){
  149. var obj=this.list[i]
  150. obj.url=obj.linkUrl
  151. obj.image=obj.picUrl
  152. obj.title=obj.name
  153. }
  154. this.carhelp.set("bannerList",this.list);
  155. }).catch(error => {
  156. this.$refs.common.alert( error);
  157. })
  158. },
  159. getOwnerRegion(){
  160. var obj={
  161. longitude:this.longitude,
  162. latitude:this.latitude
  163. }
  164. API.getOwnerRegion(obj).then((res) => {
  165. //this.options1=res.data;
  166. }).catch(error => {
  167. this.$refs.common.alert( error);
  168. })
  169. },
  170. setRegion(){
  171. var obj={
  172. longitude:this.longitude,
  173. latitude:this.latitude
  174. }
  175. API.getOwnerRegion(obj).then((res) => {
  176. var index=0;
  177. var regionN = this.carhelp.get("car_region");
  178. var region=res.data.id;
  179. var obj1={};
  180. var obj2={};
  181. for(var i in this.options1 ){
  182. if(this.options1[i].id==region){
  183. index=i;
  184. obj1=this.options1[i]
  185. }
  186. if(this.options1[i].id==regionN){
  187. this.index=i;
  188. obj2=this.options1[i]
  189. }
  190. }
  191. if(regionN&&regionN!=region){
  192. var nowDate =new Date();
  193. var curDay=nowDate.getFullYear()*10000+(nowDate.getMonth()+1)*10000+nowDate.getDate()*10000+nowDate.getHours()*100+nowDate.getMinutes();
  194. var temp = this.carhelp.get("car_region_cur");
  195. var i=30;
  196. if(process.car.NODE_ENV!="prod"){
  197. i=3
  198. }
  199. if(temp&&temp+i>curDay){
  200. return
  201. }
  202. this.carhelp.set("car_region_cur",curDay);
  203. //是否切换
  204. this.$refs.common.setFnc(()=>{
  205. this.index=index;
  206. this.carhelp.set("car_region",region);
  207. })
  208. this.$refs.common.confirm('定位显示您在“'+obj1.name+'”,是否切换','切换')
  209. }else{
  210. this.index=index;
  211. this.carhelp.set("car_region",region);
  212. }
  213. }).catch(error => {
  214. this.$refs.common.alert( error);
  215. })
  216. },
  217. getRegion(bl) {
  218. API.getRegionList().then((res) => {
  219. this.options1=res.data;
  220. if(this.options1.length){
  221. this.carhelp.set("car_region_temp", this.options1[0].id);
  222. }
  223. var region= this.carhelp.get("car_region");
  224. if(region){
  225. for(var i in this.options1 ){
  226. if(this.options1[i].id==region){
  227. this.index=i;
  228. break;
  229. }
  230. }
  231. }
  232. if(bl){
  233. this.setRegion();
  234. }
  235. }).catch(error => {
  236. this.$refs.common.alert( error);
  237. })
  238. },
  239. bindPickerChange: function(e) {
  240. this.index = e.target.value
  241. var obj=this.options1[ this.index];
  242. var nowDate=new Date();
  243. var curDay=nowDate.getFullYear()*10000+(nowDate.getMonth()+1)*10000+nowDate.getDate()*10000+nowDate.getHours()*100+nowDate.getMinutes();
  244. this.carhelp.set("car_region_cur",curDay);
  245. this.carhelp.set("car_region",obj.id);
  246. },
  247. gotoQuery(){
  248. uni.navigateTo({
  249. url:'/pages/query/index?back=true'
  250. })
  251. },
  252. gotoLine(item,downid){
  253. uni.navigateTo({
  254. url:'/pages/route/index?id='+item.routeId+"&upid="+item.startStationId+"&downid="+downid
  255. })
  256. },
  257. gotoLineList(downid){
  258. uni.navigateTo({
  259. url:"/pages/index/sitePage?id="+downid+"&longitude="+this.longitude+"&latitude="+this.latitude
  260. })
  261. },
  262. getPoint() {
  263. this.$refs.common.alert("正在获取定位信息,为您查找附近的站点...");
  264. WxJsApi.getLocation().then((res) => {
  265. var latitude = parseFloat(res.latitude);
  266. var longitude = parseFloat(res.longitude);
  267. this.latitude = latitude;
  268. this.longitude = longitude;
  269. this.getRegion(true);
  270. //this.$refs.common.alert("定位中...",);
  271. this.passengerNearbyStation()
  272. this.getPointBl=true
  273. this.$refs.common.showLoading(false);
  274. }).catch(error => {
  275. this.$refs.common.alert( error);
  276. })
  277. },
  278. passengerNearbyStation(){
  279. if(process.car.SIMPLE_RUN){
  280. this.latitude = '30.306452';
  281. this.longitude = '112.27642';
  282. }
  283. var form={
  284. longitude:this.longitude,
  285. latitude:this.latitude,
  286. pageIndex:1,
  287. pageSize:5
  288. }
  289. this.$refs.common.showLoading();
  290. API.passengerNearbyStation(form).then((res) => {
  291. this.siteList=res.data;
  292. this.isLoading=true;
  293. //this.$refs.common.showLoading(fa);
  294. if(this.siteList.length){
  295. this.$refs.common.alert( "已为您查询出附近的站点");
  296. }else{
  297. this.$refs.common.alert( "查询成功,附近暂无站点信息!");
  298. }
  299. }).catch(error => {
  300. this.$refs.common.alert( error);
  301. })
  302. },
  303. getScan(){
  304. this.$refs.common.showLoading()
  305. WxJsApi.scanQRCode(0,this.$refs.common).then(function(url){
  306. console.log(url)
  307. window.location.href=url;
  308. }).catch(error => {
  309. this.$refs.common.showLoading(false,error)
  310. });
  311. },
  312. clickSwiper(index){
  313. var url=this.list[index].url;
  314. if(url){
  315. if(url.indexOf("http")==0){
  316. window.location.href=url;
  317. }else if(url.indexOf("/pages/")==0){
  318. uni.navigateTo({
  319. url:this.list[index].url
  320. })
  321. }
  322. }
  323. },
  324. closeDropdown() {
  325. this.$refs.uDropdown.close();
  326. }
  327. },onReady(){
  328. WxJsApi.getWxConfig(['getLocation','addEventListener']).then(()=>{
  329. this.wxinit=true;
  330. var _this=this;
  331. })
  332. //WxJsApi.requestSubscribeMessage(['Ilxy2TX264A3RHqRyDZqL_xUDxi9OuBNeJoDOBfMRHg'])
  333. var list=this.carhelp.get("bannerList");
  334. if(list){
  335. this.list=list;
  336. }
  337. //this.remindHD()
  338. this.getPoint();
  339. this.getBanner();
  340. this.getNewNum();
  341. this.getRemindInfo();
  342. this.getRegion();
  343. //清空缓存
  344. this.carhelp.set("form",{});
  345. this.isReady=true;
  346. },onShow(){
  347. if(this.isReady){
  348. this.getPoint();
  349. this.getRemindInfo();
  350. }
  351. },
  352. }