blob: ebd1fe76d557681244448a8fb9526003d0849c11 [file] [log] [blame]
guangchao.xu070005a2020-12-07 09:56:40 +08001<template>
2 <view class="wrap">
3 <!-- 头部导航 -->
4 <u-sticky h5-nav-height="0">
5 <!-- #ifndef MP-WEIXIN -->
6 <view class="status_bar"></view>
7 <!-- #endif -->
8 <view class="wrap-header">
9 <view class="img-box" @click="scan">
10 <u-image src="/static/images/index/scan.png" width="40rpx" height="40rpx" mode="aspectFit"></u-image>
11 </view>
12 <u-search placeholder="暂无服务可查询" v-model="searchVal" :show-action="false" bg-color="#F7F7F7" margin="0 15rpx"
13 @search="search"></u-search>
guangchao.xu6cdd45e2021-04-16 17:44:30 +080014 <view class="img-box" @click="toPath('/pages/sub_index/qrcode')">
guangchao.xu070005a2020-12-07 09:56:40 +080015 <u-image src="/static/images/index/money.png" width="40rpx" height="40rpx" mode="aspectFit"></u-image>
16 </view>
guangchao.xu6cdd45e2021-04-16 17:44:30 +080017 <view class="img-box" @click="toPath('/pages/sub_medical/appointment')">
guangchao.xu070005a2020-12-07 09:56:40 +080018 <u-image src="/static/images/index/square.png" width="40rpx" height="40rpx" mode="aspectFit"></u-image>
19 </view>
20 </view>
21 </u-sticky>
22 <!-- bannar内容 -->
23 <view class="wrap-bannar">
24 <view class="wrap-bannar-title">
25 <text>城市服务</text>
26 <text>一键速享</text>
27 </view>
28 <view class="wrap-bannar-box">
29 <image src="/static/images/index/bannar.png" mode="widthFix"></image>
30 <view class="wrap-bannar-box-overtitle">
31 <text>出行缴费</text>
32 <text>自在随心</text>
33 </view>
34 </view>
35 </view>
36 <!-- 功能列表 -->
37 <view class="wrap-func">
38 <u-image src="/static/images/index/bannar1.png" width="100%" mode="widthFix" border-radius="10"></u-image>
39 <!-- <view class="wrap-func-item" v-for="(v,i) in funcList" :key="i" @click="toPath()">
40 <u-image :src="v.src" width="70rpx" height="70rpx" mode="aspectFit"></u-image>
41 <text>{{v.title}}</text>
42 </view> -->
43 </view>
44 <!--热门活动 -->
45 <view class="wrap-active">
46 <text class="wrap-active-title">热门活动</text>
47 <view class="wrap-active-bannar">
48 <!-- <u-image src="/static/images/index/bannar01.png" width="100%" mode="widthFix"></u-image> -->
49 <u-swiper :list="activeImgList" name="picid" img-mode="scaleToFill" height="170" interval="5000" duration="1500"
50 @click="activeImg"></u-swiper>
51 </view>
52 <view class="wrap-active-con">
53 <view class="wrap-active-con-item" @click="signin">
54 <u-image src="/static/images/index/mrqd.png" width="70rpx" height="70rpx"></u-image>
55 <view class="wrap-active-con-item-desc">
56 <text class="wrap-active-con-item-desc-title">每日签到</text>
57 <text class="wrap-active-con-item-desc-desc">签到即可领积分</text>
58 </view>
59 </view>
guangchao.xu6cdd45e2021-04-16 17:44:30 +080060 <view class="wrap-active-con-item" @click="activity.length == 0?'':toUrl('/pages/sub_index/activeDetails?id='+ activity.articleno + '&type=' + activity.code)">
guangchao.xu070005a2020-12-07 09:56:40 +080061 <u-image src="/static/images/index/smkhd.png" width="70rpx" height="70rpx"></u-image>
62 <view class="wrap-active-con-item-desc">
guangchao.xu6cdd45e2021-04-16 17:44:30 +080063 <text class="wrap-active-con-item-desc-title">{{activity.title?activity.title:'暂无'}}</text>
64 <text class="wrap-active-con-item-desc-desc">{{activity.subtitle?activity.subtitle:'热门活动'}}</text>
guangchao.xu070005a2020-12-07 09:56:40 +080065 </view>
66 </view>
67 <view class="wrap-active-con-item" @click="toPath('/pages/sub_tabbar/active')">
68 <u-image src="/static/images/index/more.png" width="70rpx" height="70rpx"></u-image>
69 <view class="wrap-active-con-item-desc">
70 <text class="wrap-active-con-item-desc-title">更多活动</text>
71 </view>
72 </view>
73 </view>
74 </view>
75 <!-- 市民卡业务 -->
76 <view class="wrap-service">
77 <text class="wrap-service-title">市民卡业务</text>
78 <view class="wrap-service-con">
guangchao.xu6cdd45e2021-04-16 17:44:30 +080079 <view class="wrap-service-con-exp" @click="toUrl('/pages/sub_index/introduce')">
guangchao.xu070005a2020-12-07 09:56:40 +080080 <u-image src="/static/images/index/smkjj.png" width="100%" mode="widthFix"></u-image>
81 <text class="wrap-service-con-exp-desc">市民卡简介</text>
82 </view>
83 <view class="wrap-service-con-box">
84 <view class="wrap-service-con-box-bl">
85 <u-image src="/static/images/index/bl.png" width="100%" mode="widthFix"></u-image>
guangchao.xu6cdd45e2021-04-16 17:44:30 +080086 <view class="wrap-service-con-box-bl-over" @click="toPath('/pages/sub_index/getCityCard')">
guangchao.xu070005a2020-12-07 09:56:40 +080087 <text class="wrap-service-con-box-bl-over-up">办理</text>
88 <text class="wrap-service-con-box-bl-over-dowm">网络快速办理</text>
89 </view>
90 </view>
91 <view class="wrap-service-con-box-bl">
92 <u-image src="/static/images/index/zx.png" width="100%" mode="widthFix"></u-image>
guangchao.xu6cdd45e2021-04-16 17:44:30 +080093 <view class="wrap-service-con-box-bl-over" @click="toPath('/pages/sub_index/chat')">
guangchao.xu070005a2020-12-07 09:56:40 +080094 <text class="wrap-service-con-box-bl-over-up">咨询</text>
95 <text class="wrap-service-con-box-bl-over-dowm">24小时在线咨询</text>
96 </view>
97 </view>
98 </view>
99 </view>
100 </view>
101 <!-- 底部tabbar -->
102 <!-- <u-gap height="70"></u-gap> -->
103 <u-tabbar :list="vuex_tabbar" :mid-button="true" active-color="#2FA8E1" inactive-color="#999999" @change="changeTabbar"></u-tabbar>
104 </view>
105</template>
106
107<script>
guangchao.xuc43cf972021-01-18 13:37:55 +0800108 const app = getApp()
guangchao.xu070005a2020-12-07 09:56:40 +0800109 export default {
110 data() {
111 return {
112 searchVal: "",
113 funcList: [{
114 title: "物业缴费",
115 src: "/static/images/index/wyjf.png"
116 }, {
117 title: "电费",
118 src: "/static/images/index/df.png"
119 }, {
120 title: "加油卡充值",
121 src: "/static/images/index/jykcz.png"
122 }, {
123 title: "宽带费",
124 src: "/static/images/index/kdf.png"
125 }, {
126 title: "手机缴费",
127 src: "/static/images/index/sjjf.png"
128 }, {
129 title: "固话充值",
130 src: "/static/images/index/ghcz.png"
131 }, {
132 title: "违章查询",
133 src: "/static/images/index/wzcx.png"
134 }, {
135 title: "全部",
136 src: "/static/images/index/all.png"
137 }],
138 activity: [],
139 activeImgList: [{
140 picid: "/static/images/index/bannar01.png",
141 articleno: '00000003'
142 }, ]
143 }
144 },
guangchao.xu070005a2020-12-07 09:56:40 +0800145 methods: {
guangchao.xuc43cf972021-01-18 13:37:55 +0800146 get_prompt() {
guangchao.xu6cdd45e2021-04-16 17:44:30 +0800147 let is_notice = uni.getStorageSync('is_notice')
148 if (!is_notice && is_notice != '') return false
guangchao.xuc43cf972021-01-18 13:37:55 +0800149 //提示更新或通告
150 let vername = app.globalData.vername
151 let verno = app.globalData.verno
152 let params = {
153 vername,
154 verno
155 }
156 this.$u.get('/i/app/prompt', params).then(res => {
157 let is_have_content = res.prompt
158 if (!!is_have_content) {
159 uni.showModal({
160 title: '提示',
guangchao.xu6cdd45e2021-04-16 17:44:30 +0800161 content: is_have_content,
162 cancelText: '不再提醒',
163 confirmText: '我知道了',
164 success(res) {
165 if (res.cancel) {
166 uni.setStorageSync('is_notice', false)
167 uni.showModal({
168 title:"提示",
169 content:'您可以通过"我的->我的设置->通知功能"重新开启通知提示',
170 showCancel:false
171 })
172 }
173 }
guangchao.xuc43cf972021-01-18 13:37:55 +0800174 })
175 }
176
177 })
178 },
guangchao.xu070005a2020-12-07 09:56:40 +0800179 search(e) {
180 uni.showToast({
181 icon: "none",
182 title: "搜索服务功能暂未开通",
183 duration: 1500
184 })
guangchao.xu6cdd45e2021-04-16 17:44:30 +0800185 this.searchVal =''
guangchao.xu070005a2020-12-07 09:56:40 +0800186 },
187
188 scan() {
guangchao.xu6cdd45e2021-04-16 17:44:30 +0800189 // #ifdef MP-WEIXIN
190 uni.scanCode({
191 success(res) {
192 let url = res.result
193 uni.showToast({
194 title: "扫描成功",
195 icon: "none",
196 duration: 800,
197 complete() {
198 let param = {
199 url: url
200 }
201 //console.log(param.url)
202 that.$u.get('/v1/qrcode/auth', param).then(ret => {
203 // console.log(ret.data)
204 if (ret.data.permit) {
205 if (ret.data.action == 'water') {
206 setTimeout(() => {
207 uni.navigateTo({
208 url: "/pages/sub_index/scanView?url=" + ret.data.url
209 })
210 }, 1500)
211 // } else if (ret.data.action == 'dlsmkh5') {
212 // let token = uni.getStorageSync('token')
213 // let wv = plus.webview.create(ret.data.url, 'webview_pay', {
214 // backButtonAutoControl: 'close',
215 // additionalHttpHeaders: {
216 // Authorization: 'Bearer ' + token
217 // }
218 // })
219 // setTimeout(() => {
220 // wv.show()
221 // }, 1500)
222 // }
223 } else {
224 uni.showToast({
225 icon: "none",
226 title: "暂不支持此二维码",
227 duration: 1500
228 })
229 }
230 }
231 })
232 }
233 })
234 }
235 })
236 // #endif
237
guangchao.xu50e42382021-01-04 17:53:47 +0800238 // #ifdef APP-PLUS
guangchao.xu070005a2020-12-07 09:56:40 +0800239 let that = this
guangchao.xu50e42382021-01-04 17:53:47 +0800240 var ali = uni.requireNativePlugin("Mpaas-Scan-Module")
241 ali.mpaasScan({
242 // 扫码 UI 风格,参数可为 qr、bar,默认为 qr
243 'type': 'qr',
244 // 扫码识别类型,参数可多选,qrCode、barCode,不设置,默认识别所有
245 'scanType': ['qrCode'],
246 // 是否隐藏相册,默认false不隐藏
247 'hideAlbum': false
248 },
249 (ret) => {
250 let url = ret.resp_result
guangchao.xu070005a2020-12-07 09:56:40 +0800251 uni.showToast({
252 title: "扫描成功",
253 icon: "none",
254 duration: 800,
255 complete() {
guangchao.xu070005a2020-12-07 09:56:40 +0800256 let param = {
257 url: url
258 }
guangchao.xu50e42382021-01-04 17:53:47 +0800259 //console.log(param.url)
guangchao.xu070005a2020-12-07 09:56:40 +0800260 that.$u.get('/v1/qrcode/auth', param).then(ret => {
guangchao.xuc43cf972021-01-18 13:37:55 +0800261 // console.log(ret.data)
guangchao.xu070005a2020-12-07 09:56:40 +0800262 if (ret.data.permit) {
263 if (ret.data.action == 'water') {
guangchao.xu50e42382021-01-04 17:53:47 +0800264 setTimeout(() => {
guangchao.xuc43cf972021-01-18 13:37:55 +0800265 uni.navigateTo({
guangchao.xu6cdd45e2021-04-16 17:44:30 +0800266 url: "/pages/sub_index/scanView?url=" + ret.data.url
guangchao.xuc43cf972021-01-18 13:37:55 +0800267 })
guangchao.xu50e42382021-01-04 17:53:47 +0800268 }, 1500)
guangchao.xu50e42382021-01-04 17:53:47 +0800269 } else if (ret.data.action == 'dlsmkh5') {
270 let token = uni.getStorageSync('token')
271 let wv = plus.webview.create(ret.data.url, 'webview_pay', {
272 backButtonAutoControl: 'close',
273 additionalHttpHeaders: {
274 Authorization: 'Bearer ' + token
275 }
276 })
277 setTimeout(() => {
278 wv.show()
279 }, 1500)
guangchao.xu070005a2020-12-07 09:56:40 +0800280 }
281 } else {
282 uni.showToast({
283 icon: "none",
284 title: "暂不支持此二维码",
285 duration: 1500
286 })
287 }
288 })
289 }
290 })
guangchao.xu50e42382021-01-04 17:53:47 +0800291 })
guangchao.xu070005a2020-12-07 09:56:40 +0800292 // #endif
guangchao.xu50e42382021-01-04 17:53:47 +0800293
guangchao.xu070005a2020-12-07 09:56:40 +0800294 },
295 getActivityList() {
296 let that = this
297 let param = [{
298 code: "PopularActivities", //OnlineActivities、OfflineActivities、PopularActivities
299 pagesize: 1,
300 pageno: 1
301 }]
302 that.$u.post("/i/activity", param).then(res => {
303 if (res.data[0].articles.list.length > 0) {
304 let list = res.data[0].articles.list[0]
305 list.code = 'PopularActivities'
306 that.activity = list
307 }
308 })
309 },
310 activeImg(index) {
311 let that = this
312 let obj = that.activeImgList[index]
313 uni.navigateTo({
guangchao.xu6cdd45e2021-04-16 17:44:30 +0800314 url: '/pages/sub_index/activeDetails?id=' + obj.articleno
guangchao.xu070005a2020-12-07 09:56:40 +0800315 })
316 },
317 getBannarList() {
318 let that = this
319 that.$u.get('i/column/banner', {}).then(res => {
320 if (res.data.length > 0) {
321 that.activeImgList = res.data
322 //console.log(that.activeImgList)
323 }
324 }).catch(res => {
325 //console.log(1)
326 })
327 },
328 signin() {
329 let that = this
330 that.$u.post('v1/point/task/signin', {}).then(res => {
331 uni.showToast({
332 icon: "none",
333 title: "签到成功",
334 duration: 1500
335 })
336 })
337 }
338 },
339 onLoad() {
340 this.getBannarList()
guangchao.xu6cdd45e2021-04-16 17:44:30 +0800341 this.getActivityList()
342 // #ifdef APP-PLUS
guangchao.xuc43cf972021-01-18 13:37:55 +0800343 setTimeout(() => {
344 this.get_prompt()
345 }, 5 * 1000)
guangchao.xu070005a2020-12-07 09:56:40 +0800346 //引入插件
347 const KJJPush = uni.requireNativePlugin('KJ-JPush');
348 let uid = uni.getStorageSync("uid")
349 //设置Alias
350 KJJPush.setAlias(uid ? uid : 'tourist', 1, result => {
351 //console.log("setAlias:" + JSON.stringify(result));
352 });
353
354 // #endif
355
guangchao.xu96b39792020-12-15 16:46:12 +0800356 },
guangchao.xu50e42382021-01-04 17:53:47 +0800357 async onPullDownRefresh() {
guangchao.xu96b39792020-12-15 16:46:12 +0800358 await this.getActivityList()
359 uni.stopPullDownRefresh()
guangchao.xu070005a2020-12-07 09:56:40 +0800360 }
361 }
362</script>
363
364<style lang="scss" scoped>
365 /* #ifdef MP-WEIXIN */
366 .wrap-func {
367 /deep/image {
368 display: block;
369 }
370 }
371
372 /* #endif */
373
374 .status_bar {
375 background-color: #FFFFFF;
376 }
377
378 .wrap {
379 background-color: #FFFFFF;
380
381 &-header {
382 display: flex;
383 flex-direction: row;
384 align-items: center;
385 justify-content: space-between;
386 padding: 10rpx 15rpx;
387 background-color: #FFFFFF;
388
389 image {
390 width: 50rpx;
391 height: 50rpx;
392 }
393
394 .img-box {
395 display: flex;
396 justify-content: center;
397 align-items: center;
398 padding: 0 15rpx;
399 }
400 }
401
402 &-bannar {
403 width: 100vw;
404 margin-top: 10rpx;
405
406 &-title {
407 width: 300rpx;
408 margin: auto;
409 display: flex;
410 justify-content: space-between;
411 font-size: 35rpx;
412 font-weight: bold;
413 font-style: oblique;
414 font-family: "PingFang-SC-Bold";
415 }
416
417 image {
418 width: 100%;
419 }
420
421 &-box {
422 position: relative;
423
424 &-overtitle {
425 position: absolute;
426 width: 250rpx;
427 background-color: #ECECEC;
428 padding: 10rpx 20rpx;
429 border-radius: 50rpx;
430 top: 20rpx;
431 left: 50%;
432 transform: translate(-50%, 0);
433 display: flex;
434 font-size: 24rpx;
435 justify-content: space-between;
436 color: #808080;
437 letter-spacing: 2rpx;
438 font-family: "PingFang-SC-Medium";
439 }
440 }
441 }
442
443 &-func {
444 width: 95vw;
445 background-color: #FFFFFF;
446 margin: -180rpx auto 0;
447 // display: flex;
448 // flex-wrap: wrap;
449 // justify-content: space-between;
450 // padding: 30rpx 0;
451 border-radius: 10rpx;
452 box-shadow: 0 0rpx 6rpx #808080;
453 position: relative;
454
455 /deep/uni-image {
456 display: block;
457 }
458
459 &-item {
460 width: 25%;
461 display: flex;
462 flex-direction: column;
463 align-items: center;
464 margin-bottom: 30rpx;
465
466 text {
467 margin-top: 10rpx;
468 color: #333333;
469 font-family: "PingFang-SC-Medium";
470 font-size: 24rpx;
471 }
472 }
473 }
474
475 &-active {
476 margin-top: 30rpx;
477 padding: 0 2.5vw;
478
479 &-title {
480 font-family: "PingFang-SC-Medium";
481 font-size: 30rpx;
482 color: #333333;
483 }
484
485 &-bannar {
486 margin-top: 20rpx;
487 }
488
489 &-con {
490 display: flex;
491 justify-content: space-between;
492 margin-top: 20rpx;
493
494 // align-items: center;
495 &-item {
496 width: 32%;
497 display: flex;
498 flex-direction: column;
499 align-items: center;
500 background-color: #F7F7F7;
501 padding: 50rpx 20rpx 30rpx;
502 border-radius: 10rpx;
503
504 &-desc {
505 display: flex;
506 flex-direction: column;
507 align-items: center;
508 margin-top: 50rpx;
509 width: 100%;
510 text-align: center;
511
512 &-desc {
513 width: 100%;
514 color: #666666;
515 font-size: 20rpx;
516 margin-top: 10rpx;
517 overflow: hidden;
518 text-overflow: ellipsis;
519 white-space: nowrap;
520 }
521
522 &-title {
523 width: 100%;
524 font-family: "PingFang-SC-Medium";
525 font-size: 26rpx;
526 color: #333333;
527 overflow: hidden;
528 text-overflow: ellipsis;
529 white-space: nowrap;
530 }
531 }
532 }
533 }
534 }
535
536 &-service {
537 margin-top: 30rpx;
538 padding: 0 2.5vw;
539
540 &-title {
541 font-family: "PingFang-SC-Medium";
542 font-size: 30rpx;
543 color: #333333;
544 }
545
546 &-con {
547 display: flex;
548 flex-direction: row;
549 justify-content: space-between;
550 margin-top: 20rpx;
551
552 &-exp {
553 position: relative;
554 width: 50%;
555
556 &-desc {
557 position: absolute;
558 top: 30rpx;
559 left: 30rpx;
560 font-family: "PingFang-SC-Medium";
561 color: #FFFFFF;
562 font-size: 36rpx;
563 }
564 }
565
566 &-box {
567 width: 49%;
568 display: flex;
569 flex-direction: column;
570
571 &-bl {
572 position: relative;
573 margin-top: -10rpx;
574
575 &-over {
576 display: flex;
577 flex-direction: column;
578 position: absolute;
579 top: 50%;
580 left: 15%;
581 transform: translateY(-50%);
582
583 &-up {
584 font-family: "PingFang-SC-Medium";
585 font-size: 30rpx;
586 }
587
588 &-dowm {
589 font-family: "PingFang-SC-Medium";
590 font-size: 24rpx;
591 color: #999999;
592 }
593 }
594 }
595 }
596 }
597
598 }
599 }
600</style>