作者 王军

连点

@@ -29,13 +29,22 @@ Page({ @@ -29,13 +29,22 @@ Page({
29 // 预约 29 // 预约
30 yuyuecancel: false, 30 yuyuecancel: false,
31 yuyuesuccess: false, 31 yuyuesuccess: false,
  32 + // 防连点
  33 + isClick:false,
  34 + token:"",
32 }, 35 },
33 36
34 /** 37 /**
35 * 生命周期函数--监听页面加载 38 * 生命周期函数--监听页面加载
36 */ 39 */
37 onLoad: function (options) { 40 onLoad: function (options) {
38 - this.getPersonMsg(); 41 + this.setData({
  42 + token:wx.getStorageSync("token")
  43 + })
  44 + if(this.data.token){
  45 + this.getPersonMsg();
  46 + }
  47 +
39 // 获取首页信息 48 // 获取首页信息
40 this.getIndexMsg(); 49 this.getIndexMsg();
41 }, 50 },
@@ -60,14 +69,26 @@ Page({ @@ -60,14 +69,26 @@ Page({
60 }, 69 },
61 // 确定预约 70 // 确定预约
62 confirmAppoint(){ 71 confirmAppoint(){
63 - let url = "/api/user/book";  
64 - app.post(url,"","post")  
65 - .then(res=>{ 72 + if(!this.data.isClick){
66 this.setData({ 73 this.setData({
67 - yuyuecancel: false,  
68 - yuyuesuccess:true 74 + isClick:true
69 }) 75 })
70 - }) 76 + let url = "/api/user/book";
  77 + app.post(url, "", "post")
  78 + .then(res => {
  79 + this.setData({
  80 + yuyuecancel: false,
  81 + yuyuesuccess: true,
  82 + isClick:false
  83 + })
  84 + })
  85 + .catch(err=>{
  86 + this.setData({
  87 + isClick: false
  88 + })
  89 + })
  90 + }
  91 +
71 }, 92 },
72 cancelyuyue() { 93 cancelyuyue() {
73 this.setData({ 94 this.setData({
@@ -76,6 +76,11 @@ Page({ @@ -76,6 +76,11 @@ Page({
76 seconds: time 76 seconds: time
77 }) 77 })
78 if (time <= 0) { 78 if (time <= 0) {
  79 + t.setData({
  80 + isCode: true,
  81 + isClick: false,
  82 + seconds:60
  83 + })
79 clearInterval(timeAuther) 84 clearInterval(timeAuther)
80 } 85 }
81 }, 1000) 86 }, 1000)
@@ -87,10 +92,13 @@ Page({ @@ -87,10 +92,13 @@ Page({
87 .then(res => { 92 .then(res => {
88 t.setData({ 93 t.setData({
89 isClick: false, 94 isClick: false,
90 -  
91 }) 95 })
92 }) 96 })
93 - 97 + .catch(err=>{
  98 + t.setData({
  99 + isClick: false,
  100 + })
  101 + })
94 } 102 }
95 } else { 103 } else {
96 wx.showToast({ 104 wx.showToast({
@@ -50,7 +50,7 @@ @@ -50,7 +50,7 @@
50 </view> 50 </view>
51 <view> 51 <view>
52 <view wx:if="{{isCode}}" class="get_code" bindtap='getCode'>获取验证码</view> 52 <view wx:if="{{isCode}}" class="get_code" bindtap='getCode'>获取验证码</view>
53 - <view wx:else class="send_code">{{seconds}}秒后发送</view> 53 + <view wx:else class="send_code">{{seconds}}秒后重新发送</view>
54 </view> 54 </view>
55 </view> 55 </view>
56 56
@@ -108,7 +108,7 @@ image { @@ -108,7 +108,7 @@ image {
108 } 108 }
109 /* 获取验证码 */ 109 /* 获取验证码 */
110 .code_input{ 110 .code_input{
111 - width: 200rpx; 111 + width: 160rpx;
112 margin-right: 48rpx 112 margin-right: 48rpx
113 } 113 }
114 .get_code{ 114 .get_code{
@@ -7,6 +7,8 @@ Page({ @@ -7,6 +7,8 @@ Page({
7 */ 7 */
8 data: { 8 data: {
9 content:"", 9 content:"",
  10 + // 防连点
  11 + isClick:false
10 }, 12 },
11 13
12 /** 14 /**
@@ -22,23 +24,43 @@ Page({ @@ -22,23 +24,43 @@ Page({
22 }, 24 },
23 // 意见反馈 25 // 意见反馈
24 submitSuggest(){ 26 submitSuggest(){
25 - let url = "/api/user/feedBack";  
26 - let params = {  
27 - content:this.data.content  
28 - };  
29 - app.post(url,params,"post")  
30 - .then(res=>{ 27 + if (this.data.content){
  28 + if(!this.data.isClick){
  29 + let t = this;
  30 + t.setData({
  31 + isClick:true
  32 + })
  33 + let url = "/api/user/feedBack";
  34 + let params = {
  35 + content: t.data.content
  36 + };
  37 + app.post(url, params, "post")
  38 + .then(res => {
  39 + wx.showToast({
  40 + title: '反馈成功',
  41 + icon: 'success',
  42 + duration: 1500
  43 + })
  44 + setTimeout(function () {
  45 + wx.navigateBack({
  46 + delta: 1
  47 + })
  48 + }, 1500)
  49 + })
  50 + .catch(err=>{
  51 + t.setData({
  52 + isClick:false
  53 + })
  54 + })
  55 + }
  56 +
  57 + }else{
31 wx.showToast({ 58 wx.showToast({
32 - title: '反馈成功',  
33 - icon:'success',  
34 - duration:1500 59 + title: '请输入反馈建议',
  60 + icon:'none'
35 }) 61 })
36 - setTimeout(function(){  
37 - wx.navigateBack({  
38 - delta:1  
39 - })  
40 - },1500)  
41 - }) 62 + }
  63 +
42 }, 64 },
43 /** 65 /**
44 * 生命周期函数--监听页面初次渲染完成 66 * 生命周期函数--监听页面初次渲染完成
@@ -15,6 +15,10 @@ Page({ @@ -15,6 +15,10 @@ Page({
15 token: "", 15 token: "",
16 // 分享人的ID 16 // 分享人的ID
17 shareId:"", 17 shareId:"",
  18 + // 防连点
  19 + isClick:false,
  20 + // 是否已预约
  21 + isConfirm:true
18 }, 22 },
19 23
20 /** 24 /**
@@ -23,7 +27,7 @@ Page({ @@ -23,7 +27,7 @@ Page({
23 onLoad: function(options) { 27 onLoad: function(options) {
24 this.setData({ 28 this.setData({
25 token: wx.getStorageSync("token"), 29 token: wx.getStorageSync("token"),
26 - shareId:options.id 30 + shareId:options.id
27 }) 31 })
28 // 获取服务介绍详情 32 // 获取服务介绍详情
29 this.getServeiceDetail(); 33 this.getServeiceDetail();
@@ -61,41 +65,70 @@ Page({ @@ -61,41 +65,70 @@ Page({
61 submit() { 65 submit() {
62 // 判断是否登录 66 // 判断是否登录
63 let t = this; 67 let t = this;
64 - if (t.data.token) {  
65 - if (t.data.region.length > 0 && t.data.name && t.data.phone && t.data.address) {  
66 - let url = "/api/user/freeBook";  
67 - let params = {  
68 - user_name: t.data.name,  
69 - mobile: t.data.phone,  
70 - address: t.data.address,  
71 - province: t.data.region[0],  
72 - city: t.data.region[1],  
73 - district: t.data.region[2]  
74 - };  
75 - app.post(url, params,"post")  
76 - .then(res => {  
77 - wx.showToast({  
78 - title: '预约成功',  
79 - icon:"success",  
80 - duration:1500, 68 + if(!t.data.isClick){
  69 + t.setData({
  70 + isClick:true
  71 + })
  72 + if (t.data.token) {
  73 + if (t.data.region.length > 0 && t.data.name && t.data.phone && t.data.address) {
  74 + setTimeout(function(){
  75 + t.setData({
  76 + isClick:false
  77 + })
  78 + },1500)
  79 + let url = "/api/user/freeBook";
  80 + let params = {
  81 + user_name: t.data.name,
  82 + mobile: t.data.phone,
  83 + address: t.data.address,
  84 + province: t.data.region[0],
  85 + city: t.data.region[1],
  86 + district: t.data.region[2]
  87 + };
  88 + app.post(url, params, "post")
  89 + .then(res => {
  90 + console.log(res)
  91 + wx.showToast({
  92 + title: '预约成功',
  93 + icon: "success",
  94 + duration: 1500,
  95 + })
  96 + t.setData({
  97 + isClick: false,
  98 + isConfirm:false
  99 + })
  100 + // 分享
  101 + setTimeout(function () {
  102 + if(t.data.shareId){
  103 + t.showShare()
  104 + }else{
  105 + wx.navigateBack({
  106 + delta:1
  107 + })
  108 + }
  109 +
  110 + }, 1500)
81 }) 111 })
82 - // 分享  
83 - setTimeout(function(){  
84 - this.showShare()  
85 - },1500) 112 + } else {
  113 + wx.showToast({
  114 + title: '请输入完整信息',
  115 + icon: "none"
  116 + })
  117 + t.setData({
  118 + isClick:false
86 }) 119 })
  120 + }
87 } else { 121 } else {
88 - wx.showToast({  
89 - title: '请输入完整信息',  
90 - icon: "none" 122 + t.setData({
  123 + isClick: false
  124 + })
  125 + // 未登录
  126 + wx.redirectTo({
  127 + url: '/pages/star/star',
91 }) 128 })
92 } 129 }
93 - }else{  
94 - // 未登录  
95 - wx.navigateTo({  
96 - url: '/pages/star/star',  
97 - })  
98 } 130 }
  131 +
99 132
100 133
101 }, 134 },
@@ -107,8 +140,8 @@ Page({ @@ -107,8 +140,8 @@ Page({
107 }; 140 };
108 app.post(url,params,"post") 141 app.post(url,params,"post")
109 .then(res=>{ 142 .then(res=>{
110 - wx.redirectTo({  
111 - url: '/pages/homeindex/homeindex', 143 + wx.navigateBack({
  144 + delta: 1
112 }) 145 })
113 }) 146 })
114 }, 147 },
@@ -56,7 +56,8 @@ @@ -56,7 +56,8 @@
56 </view> 56 </view>
57 </view> 57 </view>
58 58
59 - <view class="queren" bindtap='submit'>确认</view> 59 + <view class="queren" bindtap='submit' wx:if="{{isConfirm}}">确认</view>
  60 + <view class="queren" wx:else>已预约</view>
60 </view> 61 </view>
61 </view> 62 </view>
62 </view> 63 </view>
@@ -12,6 +12,12 @@ Page({ @@ -12,6 +12,12 @@ Page({
12 nickName:"", 12 nickName:"",
13 avatar:"", 13 avatar:"",
14 }, 14 },
  15 + // 暂不登录
  16 + noLogin(){
  17 + wx.navigateBack({
  18 + delta:1
  19 + })
  20 + },
15 // 获取用户信息(授权) 21 // 获取用户信息(授权)
16 star(e) { 22 star(e) {
17 // console.log(e); // 此处会返回换取token必须的'encryptedData'和'iv'两个参数, 23 // console.log(e); // 此处会返回换取token必须的'encryptedData'和'iv'两个参数,
@@ -51,8 +57,8 @@ Page({ @@ -51,8 +57,8 @@ Page({
51 wx.setStorageSync("is_vip", res.is_vip) //是否为vip 57 wx.setStorageSync("is_vip", res.is_vip) //是否为vip
52 wx.setStorageSync("userId",res.id) 58 wx.setStorageSync("userId",res.id)
53 // 之后跳转页面/执行方法 59 // 之后跳转页面/执行方法
54 - wx.navigateBack({  
55 - delta:1 60 + wx.redirectTo({
  61 + url: '/pages/homeindex/homeindex',
56 }) 62 })
57 }) 63 })
58 64
@@ -69,22 +75,6 @@ Page({ @@ -69,22 +75,6 @@ Page({
69 this.setData({ 75 this.setData({
70 code:res.code 76 code:res.code
71 }) 77 })
72 - console.log(res, "此处会返回一个code");  
73 - // var url = "用code换取'session_key'和'openid'的接口";  
74 - // let url = "api/user/getSessionKey";  
75 - // var params = {  
76 - // code: res.code //这是wx.login的方法返回的code  
77 - // };  
78 - // app.post(url, params).then(r => {  
79 - // console.log(r) //此处会返回用code换取的'session_key'和'openid'  
80 - // // 之后将他们赋值到data中,方便调用  
81 - // this.setData({  
82 - // session_key: r.session_key,  
83 - // openid: r.openid  
84 - // })  
85 - // }).catch(err => {  
86 - // console.log(err)  
87 - // })  
88 } 78 }
89 }) 79 })
90 }, 80 },
@@ -39,7 +39,7 @@ @@ -39,7 +39,7 @@
39 "list": [] 39 "list": []
40 }, 40 },
41 "miniprogram": { 41 "miniprogram": {
42 - "current": 10, 42 + "current": 11,
43 "list": [ 43 "list": [
44 { 44 {
45 "id": -1, 45 "id": -1,
@@ -115,6 +115,13 @@ @@ -115,6 +115,13 @@
115 "id": -1, 115 "id": -1,
116 "name": "会员注册", 116 "name": "会员注册",
117 "pathName": "pages/register/register", 117 "pathName": "pages/register/register",
  118 + "query": "",
  119 + "scene": null
  120 + },
  121 + {
  122 + "id": -1,
  123 + "name": "授权",
  124 + "pathName": "pages/star/star",
118 "scene": null 125 "scene": null
119 } 126 }
120 ] 127 ]