作者 乔蒙蒙

对接接口

@@ -103,6 +103,7 @@ App({ @@ -103,6 +103,7 @@ App({
103 return dateObj; 103 return dateObj;
104 }, 104 },
105 globalData: { 105 globalData: {
106 - userInfo: null 106 + userInfo: null,
  107 + imgUrl: 'http://qiniu.conyou-zj.com/'
107 } 108 }
108 }) 109 })
1 //index.js 1 //index.js
  2 +const app = getApp();
2 Page({ 3 Page({
3 4
4 /** 5 /**
5 * 页面的初始数据 6 * 页面的初始数据
6 */ 7 */
7 data: { 8 data: {
8 - rankstate:0//0综合,1距离,2销量,3筛选 9 + imgUrl: app.globalData.imgUrl,
  10 + rankstate: 0, //0综合,1距离,2销量,3筛选
9 }, 11 },
10 - setrankstate(e){ 12 + setrankstate(e) {
11 13
12 this.setData({ 14 this.setData({
13 rankstate: e.currentTarget.dataset.rankstate 15 rankstate: e.currentTarget.dataset.rankstate
@@ -17,56 +19,56 @@ Page({ @@ -17,56 +19,56 @@ Page({
17 /** 19 /**
18 * 生命周期函数--监听页面加载 20 * 生命周期函数--监听页面加载
19 */ 21 */
20 - onLoad: function (options) { 22 + onLoad: function(options) {
21 23
22 }, 24 },
23 25
24 /** 26 /**
25 * 生命周期函数--监听页面初次渲染完成 27 * 生命周期函数--监听页面初次渲染完成
26 */ 28 */
27 - onReady: function () { 29 + onReady: function() {
28 30
29 }, 31 },
30 32
31 /** 33 /**
32 * 生命周期函数--监听页面显示 34 * 生命周期函数--监听页面显示
33 */ 35 */
34 - onShow: function () { 36 + onShow: function() {
35 37
36 }, 38 },
37 39
38 /** 40 /**
39 * 生命周期函数--监听页面隐藏 41 * 生命周期函数--监听页面隐藏
40 */ 42 */
41 - onHide: function () { 43 + onHide: function() {
42 44
43 }, 45 },
44 46
45 /** 47 /**
46 * 生命周期函数--监听页面卸载 48 * 生命周期函数--监听页面卸载
47 */ 49 */
48 - onUnload: function () { 50 + onUnload: function() {
49 51
50 }, 52 },
51 53
52 /** 54 /**
53 * 页面相关事件处理函数--监听用户下拉动作 55 * 页面相关事件处理函数--监听用户下拉动作
54 */ 56 */
55 - onPullDownRefresh: function () { 57 + onPullDownRefresh: function() {
56 58
57 }, 59 },
58 60
59 /** 61 /**
60 * 页面上拉触底事件的处理函数 62 * 页面上拉触底事件的处理函数
61 */ 63 */
62 - onReachBottom: function () { 64 + onReachBottom: function() {
63 65
64 }, 66 },
65 67
66 /** 68 /**
67 * 用户点击右上角分享 69 * 用户点击右上角分享
68 */ 70 */
69 - onShareAppMessage: function () { 71 + onShareAppMessage: function() {
70 72
71 } 73 }
72 }) 74 })
1 <!--index.wxml--> 1 <!--index.wxml-->
2 <navigator class='index_img' hover-class='navigator_hover' url='/pages/tuangou/tuanguo'> 2 <navigator class='index_img' hover-class='navigator_hover' url='/pages/tuangou/tuanguo'>
3 - <image src='../../../imgs/dianoufengmian@3x.png'></image>  
4 -</navigator > 3 + <image src='{{imgUrl}}dianoufengmian@3x.png'></image>
  4 +</navigator>
5 <view class='index_class'> 5 <view class='index_class'>
6 <navigator class='index_classcell' hover-class='navigator_hover' url='/pages/tuangou/tuanguo'> 6 <navigator class='index_classcell' hover-class='navigator_hover' url='/pages/tuangou/tuanguo'>
7 <view>品质团购</view> 7 <view>品质团购</view>
@@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
18 </view> 18 </view>
19 <view class='index_title'>热门酒吧</view> 19 <view class='index_title'>热门酒吧</view>
20 <view class='plaza_nav'> 20 <view class='plaza_nav'>
21 - <view class="plaza_navitem {{rankstate==0?'navitem_active':''}}" data-rankstate='0' bindtap='setrankstate' > 21 + <view class="plaza_navitem {{rankstate==0?'navitem_active':''}}" data-rankstate='0' bindtap='setrankstate'>
22 <view class=' plaza_navitemimg iconfont icon-fenlei-'></view> 22 <view class=' plaza_navitemimg iconfont icon-fenlei-'></view>
23 <view>综合排序</view> 23 <view>综合排序</view>
24 </view> 24 </view>
@@ -42,11 +42,12 @@ @@ -42,11 +42,12 @@
42 <view class='order_imgtxtsubtitle'>[主题酒吧]</view> 42 <view class='order_imgtxtsubtitle'>[主题酒吧]</view>
43 </view> 43 </view>
44 <view class='order_imgtime'>月售120单</view> 44 <view class='order_imgtime'>月售120单</view>
45 - <image src='../../../imgs/dianoufengmian@3x.png'></image> 45 + <image src='{{imgUrl}}dianoufengmian@3x.png'></image>
46 </navigator> 46 </navigator>
47 <view class='formitem'> 47 <view class='formitem'>
48 <view class='formitem_rigth form_nimi'> 48 <view class='formitem_rigth form_nimi'>
49 - <view class='formitem_rigth_jian'> <text class='jian_txt'> 减</text> 49 + <view class='formitem_rigth_jian'>
  50 + <text class='jian_txt'> 减</text>
50 </view> 51 </view>
51 满1000减300 满1500减500 满2000减800 52 满1000减300 满1500减500 满2000减800
52 </view> 53 </view>
@@ -7,9 +7,9 @@ Page({ @@ -7,9 +7,9 @@ Page({
7 */ 7 */
8 data: { 8 data: {
9 imgUrls: [ 9 imgUrls: [
10 - '../../imgs/lunbo1@3x.png',  
11 - '../../imgs/lunbo2@3x.png',  
12 - '../../imgs/lunbo3@3x.png' 10 + app.globalData.imgUrl + 'lunbo1@3x.png',
  11 + app.globalData.imgUrl + 'lunbo2@3x.png',
  12 + app.globalData.imgUrl + 'lunbo3@3x.png'
13 ], 13 ],
14 indexs: 0, 14 indexs: 0,
15 color: '#cccccc', 15 color: '#cccccc',
@@ -17,7 +17,8 @@ Page({ @@ -17,7 +17,8 @@ Page({
17 autoplay: true, 17 autoplay: true,
18 activecolor: '#ffffff', 18 activecolor: '#ffffff',
19 interval: 5000, 19 interval: 5000,
20 - duration: 1000 20 + duration: 1000,
  21 + imgUrl: app.globalData.imgUrl
21 }, 22 },
22 23
23 start(e) { 24 start(e) {
@@ -32,9 +33,9 @@ Page({ @@ -32,9 +33,9 @@ Page({
32 code: s.code 33 code: s.code
33 } 34 }
34 app.post(url, param).then((res) => { 35 app.post(url, param).then((res) => {
35 - console.log(res);  
36 - console.log(e);  
37 - that.login(res.data.openid, res.data.session_key, e.detail.encryptedData, e.detail.iv, e.detail.rawData, e.detail.signature); 36 + // console.log(res);
  37 + // console.log(e);
  38 + that.login(res.data.openid, res.data.session_key, e.detail.encryptedData, e.detail.iv);
38 }).catch((errMsg) => { 39 }).catch((errMsg) => {
39 console.log(errMsg); 40 console.log(errMsg);
40 }) 41 })
@@ -42,25 +43,22 @@ Page({ @@ -42,25 +43,22 @@ Page({
42 } 43 }
43 }); 44 });
44 }, 45 },
45 - login(openid, session_key, encrypted_data, iv,r,s) { 46 + login(openid, session_key, encrypted_data, iv) {
46 let that = this; 47 let that = this;
  48 + wx.checkSession({
  49 + success: function () {
  50 + console.log('未过期');
  51 + //session_key 未过期,并且在本生命周期一直有效
47 let param = { 52 let param = {
48 openid: openid, 53 openid: openid,
49 session_key: session_key, 54 session_key: session_key,
50 encrypted_data: encrypted_data, 55 encrypted_data: encrypted_data,
51 iv: iv, 56 iv: iv,
52 - rawData: r,  
53 - signature: s  
54 } 57 }
55 let url = 'wxapp/public/login'; 58 let url = 'wxapp/public/login';
56 - // wx.navigateTo({  
57 - // url: '/pages/login/login',  
58 - // success: function (res) { },  
59 - // fail: function (res) { },  
60 - // complete: function (res) { },  
61 - // }) 59 +
62 app.post(url, param).then((res) => { 60 app.post(url, param).then((res) => {
63 - console.log(res) 61 + // console.log(res)
64 wx.setStorageSync('token', res.data.token); 62 wx.setStorageSync('token', res.data.token);
65 let u = "wxapp/public/isMobile"; 63 let u = "wxapp/public/isMobile";
66 let header = { 64 let header = {
@@ -70,7 +68,22 @@ Page({ @@ -70,7 +68,22 @@ Page({
70 type: 1 68 type: 1
71 } 69 }
72 app.post(u, data, header).then((r) => { 70 app.post(u, data, header).then((r) => {
73 - console.log(r) 71 + console.log(r);
  72 + if (r.data.is_mobile == 2) {
  73 + wx.redirectTo({
  74 + url: '/pages/login/login',
  75 + success: function (res) { },
  76 + fail: function (res) { },
  77 + complete: function (res) { },
  78 + })
  79 + } else if (r.data.is_mobile == 1) {
  80 + wx.redirectTo({
  81 + url: '/pages/index/index',
  82 + success: function (res) { },
  83 + fail: function (res) { },
  84 + complete: function (res) { },
  85 + })
  86 + }
74 }).catch((err) => { 87 }).catch((err) => {
75 88
76 }) 89 })
@@ -84,6 +97,14 @@ Page({ @@ -84,6 +97,14 @@ Page({
84 console.log(errMsg); 97 console.log(errMsg);
85 }) 98 })
86 }, 99 },
  100 + fail: function () {
  101 + console.log('session_key 已经失效');
  102 + // session_key 已经失效,需要重新执行登录流程
  103 + that.start() //重新登录
  104 + }
  105 + })
  106 +
  107 + },
87 changeindexs(e) { 108 changeindexs(e) {
88 this.setData({ 109 this.setData({
89 indexs: e.detail.current 110 indexs: e.detail.current
@@ -8,14 +8,14 @@ @@ -8,14 +8,14 @@
8 </block> 8 </block>
9 <swiper-item> 9 <swiper-item>
10 <view class='start_main'> 10 <view class='start_main'>
11 - <image src='../../imgs/yonghushouyedenglubiejing@3x.png'></image> 11 + <image src='{{imgUrl}}yonghushouyedenglubiejing@3x.png'></image>
12 <view class='head_txt'> 12 <view class='head_txt'>
13 <view class='head_title'>从友</view> 13 <view class='head_title'>从友</view>
14 <view>From·Friends</view> 14 <view>From·Friends</view>
15 <view class='head_subtitle'>让娱乐更简单</view> 15 <view class='head_subtitle'>让娱乐更简单</view>
16 </view> 16 </view>
17 <view class='logo'> 17 <view class='logo'>
18 - <image src='../../imgs/qdongtupian@3x.png'></image> 18 + <image src='{{imgUrl}}qdongtupian@3x.png'></image>
19 </view> 19 </view>
20 </view> 20 </view>
21 <view class='start_btnbox'> 21 <view class='start_btnbox'>
1 // pages/login/login.js 1 // pages/login/login.js
  2 +const app = getApp();
2 Page({ 3 Page({
3 4
4 /** 5 /**
@@ -6,14 +7,50 @@ Page({ @@ -6,14 +7,50 @@ Page({
6 */ 7 */
7 data: { 8 data: {
8 timer: '', //定时器名字 9 timer: '', //定时器名字
9 - codetxt:'输入验证码',  
10 - downsec: '60', //倒计时初始值 10 + codetxt: '获取验证码',
  11 + downsec: 60, //倒计时初始值
  12 + mobile: "",
  13 + code: "",
  14 + imgUrl: app.globalData.imgUrl
11 }, 15 },
  16 +
12 //倒计时 17 //倒计时
13 downsec() { 18 downsec() {
14 - let that=this; 19 + let that = this;
15 let downsec = that.data.downsec; 20 let downsec = that.data.downsec;
16 - if (downsec == '60') 21 + if(that.data.mobile == "") {
  22 + wx.showToast({
  23 + title: '请输入手机号!',
  24 + icon: 'none',
  25 + duration: 1300
  26 + })
  27 + return false;
  28 + }
  29 + if(that.data.mobile.length != 11) {
  30 + wx.showToast({
  31 + title: '手机号长度有误!',
  32 + icon: 'none',
  33 + duration: 1300
  34 + })
  35 + return false;
  36 + }
  37 + var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/;
  38 + if (!myreg.test(that.data.mobile)) {
  39 + wx.showToast({
  40 + title: '请输入正确的手机号!',
  41 + icon: 'none',
  42 + duration: 1300
  43 + })
  44 + return false;
  45 + }
  46 + let u = "wxapp/public/getCode";
  47 + let data = {
  48 + mobile: that.data.mobile
  49 + }
  50 + app.post(u,data).then((r) => {
  51 + console.log(r);
  52 + if (r.code == 20000) {
  53 + if (downsec == 60)
17 that.setData({ 54 that.setData({
18 timer: setInterval(function () { //这里把setInterval赋值给变量名为timer的变量 55 timer: setInterval(function () { //这里把setInterval赋值给变量名为timer的变量
19 //每隔一秒countDownNum就减一,实现同步 56 //每隔一秒countDownNum就减一,实现同步
@@ -36,64 +73,103 @@ Page({ @@ -36,64 +73,103 @@ Page({
36 } 73 }
37 }, 1000) 74 }, 1000)
38 }) 75 })
  76 + }
  77 + }).catch((err) => {
  78 +
  79 + })
  80 +
  81 + },
  82 +
  83 + // 手机号同步到data
  84 + bindMobile(e) {
  85 + this.setData({
  86 + mobile: e.detail.value.replace(/\s+/g, '')
  87 + })
  88 + },
  89 +
  90 + // 验证码同步到data
  91 + codeFun(e) {
  92 + this.setData({
  93 + code: e.detail.value.replace(/\s+/g, '')
  94 + })
39 }, 95 },
40 - goindex(){  
41 - wx.switchTab({url: '/pages/index/index',}) 96 +
  97 + // 进入首页
  98 + goindex() {
  99 + let t = this;
  100 + let data = {
  101 + mobile: t.data.mobile,
  102 + code: t.data.code,
  103 + type: 1
  104 + }
  105 + let u = "wxapp/public/lineMobile";
  106 + let header = {
  107 + "XX-Token": wx.getStorageSync("token")
  108 + }
  109 + app.post(u, data,header).then((r) => {
  110 + console.log(r);
  111 + // wx.switchTab({
  112 + // url: '/pages/index/index',
  113 + // })
  114 + }).catch((err) => {
  115 +
  116 + })
  117 +
42 118
43 }, 119 },
44 /** 120 /**
45 * 生命周期函数--监听页面加载 121 * 生命周期函数--监听页面加载
46 */ 122 */
47 - onLoad: function (options) { 123 + onLoad: function(options) {
48 124
49 }, 125 },
50 126
51 /** 127 /**
52 * 生命周期函数--监听页面初次渲染完成 128 * 生命周期函数--监听页面初次渲染完成
53 */ 129 */
54 - onReady: function () { 130 + onReady: function() {
55 131
56 }, 132 },
57 133
58 /** 134 /**
59 * 生命周期函数--监听页面显示 135 * 生命周期函数--监听页面显示
60 */ 136 */
61 - onShow: function () { 137 + onShow: function() {
62 138
63 }, 139 },
64 140
65 /** 141 /**
66 * 生命周期函数--监听页面隐藏 142 * 生命周期函数--监听页面隐藏
67 */ 143 */
68 - onHide: function () { 144 + onHide: function() {
69 145
70 }, 146 },
71 147
72 /** 148 /**
73 * 生命周期函数--监听页面卸载 149 * 生命周期函数--监听页面卸载
74 */ 150 */
75 - onUnload: function () { 151 + onUnload: function() {
76 152
77 }, 153 },
78 154
79 /** 155 /**
80 * 页面相关事件处理函数--监听用户下拉动作 156 * 页面相关事件处理函数--监听用户下拉动作
81 */ 157 */
82 - onPullDownRefresh: function () { 158 + onPullDownRefresh: function() {
83 159
84 }, 160 },
85 161
86 /** 162 /**
87 * 页面上拉触底事件的处理函数 163 * 页面上拉触底事件的处理函数
88 */ 164 */
89 - onReachBottom: function () { 165 + onReachBottom: function() {
90 166
91 }, 167 },
92 168
93 /** 169 /**
94 * 用户点击右上角分享 170 * 用户点击右上角分享
95 */ 171 */
96 - onShareAppMessage: function () { 172 + onShareAppMessage: function() {
97 173
98 } 174 }
99 }) 175 })
1 <!--pages/login/login.wxml--> 1 <!--pages/login/login.wxml-->
2 <view class='my_content'> 2 <view class='my_content'>
3 - <image src='../../../imgs/denglubviejing@3x.png'></image> 3 + <image src='{{imgUrl}}denglubviejing@3x.png'></image>
4 <view class='login_box'> 4 <view class='login_box'>
5 <view class='input_item'> 5 <view class='input_item'>
6 - <input placeholder='绑定手机' placeholder-class='input_place'></input> 6 + 绑定手机
  7 + <!-- <input placeholder='绑定手机' placeholder-class='input_place'></input> -->
7 </view> 8 </view>
8 <view class='input_item'> 9 <view class='input_item'>
9 - <input placeholder='输入手机号' placeholder-class='input_place'></input> 10 + <input placeholder='输入手机号' type='number' maxlength='11' bindinput='bindMobile' placeholder-class='input_place'></input>
10 </view> 11 </view>
11 <view class='input_item code'> 12 <view class='input_item code'>
12 - <input placeholder='绑定手机' placeholder-class='input_place'></input> 13 + <input placeholder='输入验证码' type='number' bindinput='codeFun' placeholder-class='input_place'></input>
13 <view class='code_txt' bindtap='downsec'>{{codetxt}}</view> 14 <view class='code_txt' bindtap='downsec'>{{codetxt}}</view>
14 </view> 15 </view>
15 <view class='agree'> 16 <view class='agree'>
16 <text class='iconfont icon-duigou'></text> 已阅读 17 <text class='iconfont icon-duigou'></text> 已阅读
17 - <navigator class='agree_txt'url='/pages/img_txt/img_txt' hover-class="none">《用户注册协议》</navigator> 18 + <navigator class='agree_txt' url='/pages/img_txt/img_txt' hover-class="none">《用户注册协议》</navigator>
18 </view> 19 </view>
19 <view class='goindex' bindtap='goindex'> 20 <view class='goindex' bindtap='goindex'>
20 - <view class='goindex_txt' >进入首页</view> 21 + <view class='goindex_txt'>进入首页</view>
21 </view> 22 </view>
22 </view> 23 </view>
23 24
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 <image src='../../../imgs/shenaghudenglubeijing@3x.png'></image> 3 <image src='../../../imgs/shenaghudenglubeijing@3x.png'></image>
4 <view class='login_box'> 4 <view class='login_box'>
5 <view class='input_item'> 5 <view class='input_item'>
6 - <input placeholder='绑定手机' placeholder-class='input_place'></input> 6 + <input placeholder='绑定手机' readonly="readonly" placeholder-class='input_place'></input>
7 </view> 7 </view>
8 <view class='input_item'> 8 <view class='input_item'>
9 <input placeholder='输入手机号' placeholder-class='input_place'></input> 9 <input placeholder='输入手机号' placeholder-class='input_place'></input>
1 /* pages/login/login.wxss */ 1 /* pages/login/login.wxss */
2 -page{ 2 +
  3 +page {
3 background: #010938; 4 background: #010938;
4 } 5 }
5 -.login_box{ 6 +
  7 +.login_box {
6 position: absolute; 8 position: absolute;
7 - top:0;  
8 - left:50%; 9 + top: 0;
  10 + left: 50%;
9 transform: translateX(-50%); 11 transform: translateX(-50%);
10 - overflow-y: scroll; 12 + /* overflow-y: scroll; */
11 height: 100%; 13 height: 100%;
12 -width:530rpx;  
13 -margin: 170rpx auto 0 auto;  
14 -color:#fff;  
15 -font-size:28rpx; 14 + width: 530rpx;
  15 + margin: 170rpx auto 0 auto;
  16 + color: #fff;
  17 + font-size: 28rpx;
16 } 18 }
17 -.input_item{  
18 - padding:16rpx 0;  
19 - border-bottom:1rpx solid #fff; 19 +
  20 +.input_item {
  21 + padding: 16rpx 0;
  22 + border-bottom: 1rpx solid #fff;
20 margin: 0 0 26rpx 0; 23 margin: 0 0 26rpx 0;
21 } 24 }
22 -.input_place{  
23 - color:#fff; 25 +
  26 +.input_place {
  27 + color: #fff;
24 font-size: 28rpx; 28 font-size: 28rpx;
25 } 29 }
26 -.code{ 30 +
  31 +.code {
27 display: flex; 32 display: flex;
28 justify-content: space-between; 33 justify-content: space-between;
29 align-items: center; 34 align-items: center;
30 } 35 }
31 36
32 -.code input{  
33 - width:60%; 37 +.code input {
  38 + width: 60%;
34 } 39 }
35 -.code_txt{ 40 +
  41 +.code_txt {
36 display: flex; 42 display: flex;
37 align-items: center; 43 align-items: center;
38 justify-content: center; 44 justify-content: center;
39 - padding:2rpx 10rpx; 45 + padding: 5rpx 10rpx 7rpx;
40 box-sizing: border-box; 46 box-sizing: border-box;
41 - width:178rpx; 47 + width: 178rpx;
42 height: 44rpx; 48 height: 44rpx;
43 - border:1rpx solid #fff; 49 + border: 1rpx solid #fff;
44 border-radius: 10rpx; 50 border-radius: 10rpx;
45 } 51 }
46 -.agree{ 52 +
  53 +.agree {
47 display: flex; 54 display: flex;
48 justify-content: center; 55 justify-content: center;
49 align-items: center; 56 align-items: center;
50 } 57 }
51 -.agree_txt{  
52 - color:#009FE8; 58 +
  59 +.agree_txt {
  60 + color: #009fe8;
53 } 61 }
54 -.agree .iconfont{ 62 +
  63 +.agree .iconfont {
55 display: inline-block; 64 display: inline-block;
56 - border:1rpx solid rgba(255,255,255,0.7);  
57 - color:rgba(255,255,255,0.7); 65 + border: 1rpx solid rgba(255, 255, 255, 0.7);
  66 + color: rgba(255, 255, 255, 0.7);
58 margin: 0 13rpx 0 0; 67 margin: 0 13rpx 0 0;
59 - font-size:20rpx; 68 + font-size: 20rpx;
60 border-radius: 33%; 69 border-radius: 33%;
61 } 70 }
62 -.goindex{ 71 +
  72 +.goindex {
63 position: fixed; 73 position: fixed;
64 - padding:27rpx 0;  
65 - bottom:300rpx;  
66 - left:50%; 74 + padding: 27rpx 0;
  75 + bottom: 300rpx;
  76 + left: 50%;
67 transform: translateX(-50%); 77 transform: translateX(-50%);
68 width: 530rpx; 78 width: 530rpx;
69 -  
70 display: flex; 79 display: flex;
71 justify-items: center; 80 justify-items: center;
72 justify-content: center; 81 justify-content: center;
73 - border-top:1rpx solid #fff;  
74 - border-bottom:1rpx solid #fff; 82 + border-top: 1rpx solid #fff;
  83 + border-bottom: 1rpx solid #fff;
75 } 84 }
76 85
77 -.goindex_txt{  
78 -padding:4rpx 20rpx;  
79 -background: rgba(255,255,255,0.7);  
80 -border-radius: 10rpx;  
81 -color:rgba(255,255,255,0.7); 86 +.goindex_txt {
  87 + padding: 4rpx 20rpx;
  88 + background: rgba(255, 255, 255, 0.7);
  89 + border-radius: 10rpx;
  90 + color: rgba(255, 255, 255, 0.7);
82 } 91 }
83 -.goindex_txt::active{  
84 -opacity: 0.7; 92 +
  93 +.goindex_txt::active {
  94 + opacity: 0.7;
85 } 95 }