Commit 6ea1f7ef11237ca43bbe32af3a92f7bf5476d5b0
1 parent
5e52ed7c
个人中心
Showing
5 changed files
with
218 additions
and
91 deletions
src/api/getUserIfo.js
| ... | ... | @@ -26,4 +26,30 @@ export function getFeedbackType(params) { // 获取建议反馈类型 |
| 26 | 26 | }) |
| 27 | 27 | } |
| 28 | 28 | |
| 29 | +export function sendverificode(params) { // 获取手机验证码 | |
| 30 | + return request({ | |
| 31 | + url: 'user/sendverificode', | |
| 32 | + method: 'post', | |
| 33 | + data: params | |
| 34 | + }) | |
| 35 | +} | |
| 36 | + | |
| 37 | + | |
| 38 | +export function bindCustByOpenId(params) { // 绑定手机号获取 | |
| 39 | + return request({ | |
| 40 | + url: 'wxPublicUser/bindCustByOpenId', | |
| 41 | + method: 'post', | |
| 42 | + data: params | |
| 43 | + }) | |
| 44 | +} | |
| 45 | + | |
| 46 | +export function getOpenIdByCode(params) { // 绑定openId | |
| 47 | + return request({ | |
| 48 | + url: 'weixinPublicPay/getOpenIdByCode', | |
| 49 | + method: 'post', | |
| 50 | + data: params | |
| 51 | + }) | |
| 52 | +} | |
| 53 | + | |
| 54 | + | |
| 29 | 55 | ... | ... |
src/utils/utils.js
| ... | ... | @@ -74,22 +74,7 @@ export default { |
| 74 | 74 | } |
| 75 | 75 | return time; |
| 76 | 76 | }, |
| 77 | - // myVxAppId: 'wx1489e48e6a547023', | |
| 78 | - signObject: function(jsonObj) { //签名字段 | |
| 79 | - jsonObj.sign_type = "md5"; | |
| 80 | - jsonObj.app_id = "ud8yq5tv0inxupc05xfeau39jywlqoj2"; | |
| 81 | - jsonObj.deviceInfo = "BC0703A4-AFB0-4B51-9089-9B7487C0CC6E"; | |
| 82 | - jsonObj.salt = myCommonSalt(32); | |
| 83 | - jsonObj.token = "99ecd32eed1b4ebea71bc73b0aabbb99"; | |
| 84 | - let sort = []; | |
| 85 | - for (let k in jsonObj) { | |
| 86 | - sort.push({ | |
| 87 | - keyname: k, | |
| 88 | - value: jsonObj[k] | |
| 89 | - }); | |
| 90 | - } | |
| 91 | - return this.myGetSign(sort); | |
| 92 | - }, | |
| 77 | + | |
| 93 | 78 | clientBrowser: function() { // 判断客户端 |
| 94 | 79 | if (/MicroMessenger/.test(window.navigator.userAgent)) { |
| 95 | 80 | console.log("微信客户端"); |
| ... | ... | @@ -130,8 +115,27 @@ export default { |
| 130 | 115 | myVarAppid: "ud8yq5tv0inxupc05xfeau39jywlqoj2",// 公共请求Appid |
| 131 | 116 | myDeviceInfo: "BC0703A4-AFB0-4B51-9089-9B7487C0CC6E", // 公共请求设备信息 |
| 132 | 117 | myVxAppId: "wx1489e48e6a547023", |
| 133 | - openId: "oWw3o5rY_bFsiT_nFd2CEQWGZfhs", | |
| 118 | + userToken:localStorage.getItem('userToken'), | |
| 119 | + userPhoneNum:localStorage.getItem('userPhoneNum'), | |
| 120 | + openId: "", | |
| 134 | 121 | myOrgId: "10120", // 归属地 赤峰id 10003 黄石 10079 |
| 122 | + | |
| 123 | + // myVxAppId: 'wx1489e48e6a547023', | |
| 124 | + signObject: function(jsonObj) { //签名字段 | |
| 125 | + jsonObj.sign_type = "md5"; | |
| 126 | + jsonObj.app_id = "ud8yq5tv0inxupc05xfeau39jywlqoj2"; | |
| 127 | + jsonObj.deviceInfo = "BC0703A4-AFB0-4B51-9089-9B7487C0CC6E"; | |
| 128 | + jsonObj.salt = myCommonSalt(32); | |
| 129 | + jsonObj.token = localStorage.getItem('userToken'); | |
| 130 | + let sort = []; | |
| 131 | + for (let k in jsonObj) { | |
| 132 | + sort.push({ | |
| 133 | + keyname: k, | |
| 134 | + value: jsonObj[k] | |
| 135 | + }); | |
| 136 | + } | |
| 137 | + return this.myGetSign(sort); | |
| 138 | + }, | |
| 135 | 139 | myGetSign: function(objb) { // 获取签名 |
| 136 | 140 | var compare = function(obj1, obj2) { |
| 137 | 141 | var val1 = obj1.keyname; | ... | ... |
src/views/binding/binDing.vue
| ... | ... | @@ -8,40 +8,145 @@ |
| 8 | 8 | </mt-field> |
| 9 | 9 | |
| 10 | 10 | <div style="margin-top: 34px" class="leftRightPadding"> |
| 11 | - <van-button type="info" block>绑定</van-button> | |
| 11 | + <van-button type="info" block @click="bindPhoneHandle">绑定</van-button> | |
| 12 | 12 | </div> |
| 13 | 13 | </div> |
| 14 | 14 | </template> |
| 15 | 15 | |
| 16 | 16 | <script> |
| 17 | + | |
| 18 | +import { sendverificode, bindCustByOpenId, getOpenIdByCode, getTokenByOpenId } from "@/api/getUserIfo"; | |
| 17 | 19 | export default { |
| 18 | - name: 'binDing', | |
| 20 | + name: "binDing", | |
| 19 | 21 | data() { |
| 20 | 22 | return { |
| 21 | - codeText: '', | |
| 22 | - phone: '', | |
| 23 | - timeText: '获取验证码', | |
| 23 | + codeText: "", | |
| 24 | + phone: "", | |
| 25 | + timeText: "获取验证码", | |
| 24 | 26 | timeNum: 60, |
| 25 | - } | |
| 27 | + webAppCode: "" | |
| 28 | + }; | |
| 26 | 29 | }, |
| 27 | - created(){ | |
| 28 | - this.timeNum = this.timeText | |
| 30 | + created() { | |
| 31 | + this.timeNum = this.timeText; | |
| 32 | + // this.webAppCode = this.getWxCode(); // 正式打开注释 | |
| 29 | 33 | }, |
| 30 | 34 | methods: { |
| 31 | - getCode: function () { | |
| 32 | - var _this = this | |
| 35 | + getWxCode() { | |
| 36 | + var appID = this.$utils.myVxAppId; | |
| 37 | + var code = this.getUrlParam("code"); | |
| 38 | + var local = window.location.href; | |
| 39 | + if (code == null || code === "") { | |
| 40 | + window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appID + "&redirect_uri=" + encodeURIComponent(local) + "&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect"; | |
| 41 | + } else { | |
| 42 | + return code; | |
| 43 | + } | |
| 44 | + }, | |
| 45 | + getUrlParam(name) { // 获取url里面的参数 | |
| 46 | + var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'); | |
| 47 | + var r = window.location.search.substr(1).match(reg) | |
| 48 | + if (r != null) return unescape(r[2]) | |
| 49 | + return null | |
| 50 | + }, | |
| 51 | + getCode: function() { | |
| 52 | + var _this = this; | |
| 33 | 53 | // this.timeText = this.timeNum+'S' |
| 34 | - let Num = 5 | |
| 35 | - var timer = setInterval(function () { | |
| 36 | - _this.timeNum = Num-- +'s' | |
| 37 | - if(Num== -1){ | |
| 38 | - _this.timeNum = '获取验证码' | |
| 39 | - clearInterval(timer) | |
| 54 | + const reg = /^1[3-9]\d{9}$/; | |
| 55 | + if (reg.test(this.phone)) { | |
| 56 | + _this.sendverificode(); | |
| 57 | + let Num = 60; | |
| 58 | + var timer = setInterval(function() { | |
| 59 | + _this.timeNum = Num-- + "s"; | |
| 60 | + if (Num == -1) { | |
| 61 | + _this.timeNum = "获取验证码"; | |
| 62 | + clearInterval(timer); | |
| 63 | + } | |
| 64 | + }, 1000); | |
| 65 | + } else { | |
| 66 | + this.$toast("请输入正确手机号"); | |
| 67 | + } | |
| 68 | + }, | |
| 69 | + sendverificode() { | |
| 70 | + let jsondata = { | |
| 71 | + phone: this.phone | |
| 72 | + }; | |
| 73 | + jsondata.sign = this.$utils.signObject(jsondata); | |
| 74 | + console.log("停车记录传参 " + JSON.stringify(jsondata)); | |
| 75 | + sendverificode(jsondata).then(response => { | |
| 76 | + console.log(response); | |
| 77 | + this.$toast("获取验证码成功"); | |
| 78 | + }); | |
| 79 | + }, | |
| 80 | + bindPhoneHandle() { | |
| 81 | + const reg = /^1[3-9]\d{9}$/; | |
| 82 | + if (reg.test(this.phone)) { | |
| 83 | + this.getOpenIdByCode(); // 获取openid | |
| 84 | + | |
| 85 | + } else { | |
| 86 | + this.$toast("请输入正确手机号"); | |
| 87 | + } | |
| 88 | + }, | |
| 89 | + getOpenIdByCode() { // 获取openid | |
| 90 | + | |
| 91 | + this.bindCustByOpenId() // 正式注释 | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + // 正式打开注释 | |
| 96 | + | |
| 97 | + // let jsondata = { | |
| 98 | + // appId: this.$utils.myVxAppId, | |
| 99 | + // code: this.webAppCode | |
| 100 | + // }; | |
| 101 | + // jsondata.sign = this.$utils.signObject(jsondata); | |
| 102 | + // console.log("停车记录传参 " + JSON.stringify(jsondata)); | |
| 103 | + // getOpenIdByCode(jsondata).then(response => { | |
| 104 | + // if(response.code=='0'){ | |
| 105 | + // this.bindCustByOpenId() // 获取token和用户手机号 | |
| 106 | + // } | |
| 107 | + // }); | |
| 108 | + }, | |
| 109 | + bindCustByOpenId(){ // | |
| 110 | + let jsondata = { | |
| 111 | + phoneNum: this.phone, | |
| 112 | + verifyCode: this.codeText, | |
| 113 | + // openid: this.$utils.openId // 正式打开注释 | |
| 114 | + openid:'oWw3o5rY_bFsiT_nFd2CEQWGZfhs' // 正式注释 | |
| 115 | + }; | |
| 116 | + jsondata.sign = this.$utils.signObject(jsondata); | |
| 117 | + console.log("停车记录传参 " + JSON.stringify(jsondata)); | |
| 118 | + bindCustByOpenId(jsondata).then(response => { | |
| 119 | + if(response.code=='0'){ | |
| 120 | + this.getTokenByOpenId() // 获取token和用户手机号 | |
| 121 | + | |
| 122 | + }else if(response.code=='1017'||response.code==1017){ | |
| 123 | + this.$toast("已经绑定过"); | |
| 124 | + }else{ | |
| 125 | + this.$toast("绑定失败"); | |
| 126 | + } | |
| 127 | + }); | |
| 128 | + }, | |
| 129 | + getTokenByOpenId(){ // 获取token和用户手机号 | |
| 130 | + let jsondata = { | |
| 131 | + // openid: this.$utils.openId // 正式打开注释 | |
| 132 | + openid:'oWw3o5rY_bFsiT_nFd2CEQWGZfhs' // 正式注释 | |
| 133 | + }; | |
| 134 | + jsondata.sign = this.$utils.signObject(jsondata); | |
| 135 | + console.log("停车记录传参 " + JSON.stringify(jsondata)); | |
| 136 | + getTokenByOpenId(jsondata).then(response => { | |
| 137 | + if(response.code=='0'){ | |
| 138 | + this.$toast("亲,您已绑定成功!"); | |
| 139 | + localStorage.setItem('userToken',response.data.token) | |
| 140 | + localStorage.setItem('userPhoneNum',response.data.phoneNum) | |
| 141 | + this.$router.push({ | |
| 142 | + name: "selfNav" | |
| 143 | + } | |
| 144 | + ); | |
| 40 | 145 | } |
| 41 | - }, 1000) | |
| 146 | + }); | |
| 42 | 147 | } |
| 43 | 148 | } |
| 44 | -} | |
| 149 | +}; | |
| 45 | 150 | </script> |
| 46 | 151 | |
| 47 | 152 | <style scoped lang="scss"> | ... | ... |
src/views/mySelf/feedback/suggestionBack.vue
| ... | ... | @@ -12,10 +12,6 @@ |
| 12 | 12 | </li> |
| 13 | 13 | </ul> |
| 14 | 14 | |
| 15 | - | |
| 16 | - | |
| 17 | - <!--<mt-field label="" placeholder="请详细描述反馈问题,或提出改进建议。(300字以内)" type="textarea" rows="4" v-model="introduction" ></mt-field>--> | |
| 18 | - | |
| 19 | 15 | <van-field |
| 20 | 16 | v-model="introduction" |
| 21 | 17 | rows="2" |
| ... | ... | @@ -26,7 +22,7 @@ |
| 26 | 22 | show-word-limit |
| 27 | 23 | /> |
| 28 | 24 | |
| 29 | - <div style="margin-top: 34px"> | |
| 25 | + <div style="margin-top: 34px"> | |
| 30 | 26 | <van-button type="info" block @click="submitCon">提交</van-button> |
| 31 | 27 | </div> |
| 32 | 28 | </div> |
| ... | ... | @@ -34,54 +30,53 @@ |
| 34 | 30 | |
| 35 | 31 | <script> |
| 36 | 32 | |
| 37 | -import { saveFeedbackAndSuggest, getFeedbackType } from '@/api/getUserIfo' | |
| 33 | +import { saveFeedbackAndSuggest, getFeedbackType } from "@/api/getUserIfo"; | |
| 38 | 34 | export default { |
| 39 | - name: 'suggestionBack', | |
| 35 | + name: "suggestionBack", | |
| 40 | 36 | data() { |
| 41 | 37 | return { |
| 42 | 38 | suggestionList: [], |
| 43 | 39 | currentIndex: 0, |
| 44 | - introduction: '', | |
| 45 | - } | |
| 40 | + introduction: "" | |
| 41 | + }; | |
| 46 | 42 | }, |
| 47 | - created(){ | |
| 48 | - this.getFeedbackType() | |
| 43 | + created() { | |
| 44 | + this.getFeedbackType(); | |
| 49 | 45 | }, |
| 50 | 46 | methods: { |
| 51 | - getFeedbackType(){ | |
| 52 | - let jsondata = {} | |
| 53 | - jsondata.sign = this.$utils.signObject(jsondata) | |
| 47 | + getFeedbackType() { | |
| 48 | + let jsondata = {}; | |
| 49 | + jsondata.sign = this.$utils.signObject(jsondata); | |
| 54 | 50 | getFeedbackType(jsondata).then(response => { |
| 55 | - console.log(response) | |
| 56 | - this.suggestionList = response.data | |
| 57 | - }) | |
| 51 | + console.log(response); | |
| 52 | + this.suggestionList = response.data; | |
| 53 | + }); | |
| 58 | 54 | }, |
| 59 | - chooseHandle: function (i) { | |
| 60 | - console.log(i) | |
| 61 | - this.currentIndex = i | |
| 55 | + chooseHandle: function(i) { | |
| 56 | + console.log(i); | |
| 57 | + this.currentIndex = i; | |
| 62 | 58 | }, |
| 63 | - submitCon(){ | |
| 64 | - if(this.introduction){ | |
| 59 | + submitCon() { | |
| 60 | + if (this.introduction) { | |
| 65 | 61 | let jsondata = { |
| 66 | - feedbackCode:this.suggestionList[this.currentIndex].code, | |
| 67 | - suggestDesc:this.introduction, | |
| 62 | + feedbackCode: this.suggestionList[this.currentIndex].code, | |
| 63 | + suggestDesc: this.introduction | |
| 68 | 64 | // token:'99ecd32eed1b4ebea71bc73b0aabbb99' |
| 69 | - } | |
| 70 | - jsondata.sign = this.$utils.signObject(jsondata) | |
| 65 | + }; | |
| 66 | + jsondata.sign = this.$utils.signObject(jsondata); | |
| 71 | 67 | saveFeedbackAndSuggest(jsondata).then(response => { |
| 72 | - console.log(response) | |
| 73 | - if(response.code==0){ | |
| 68 | + console.log(response); | |
| 69 | + if (response.code == 0) { | |
| 74 | 70 | this.$toast("提交成功"); |
| 75 | 71 | } |
| 76 | 72 | // this.phoneNum = response.data.phoneNum |
| 77 | - }) | |
| 78 | - | |
| 79 | - }else{ | |
| 73 | + }); | |
| 74 | + } else { | |
| 80 | 75 | this.$toast("请填写建议反馈内容"); |
| 81 | 76 | } |
| 82 | 77 | } |
| 83 | 78 | } |
| 84 | -} | |
| 79 | +}; | |
| 85 | 80 | </script> |
| 86 | 81 | |
| 87 | 82 | <style scoped lang="scss"> | ... | ... |
src/views/mySelf/selfNav.vue
| ... | ... | @@ -25,9 +25,9 @@ |
| 25 | 25 | </van-cell-group> |
| 26 | 26 | |
| 27 | 27 | |
| 28 | - <div class="leftRightPadding" style="margin-top: 34px" v-if="openId"> | |
| 28 | + <div class="leftRightPadding" style="margin-top: 34px" v-if="phoneNum"> | |
| 29 | 29 | <!--<mt-button type="danger" size="large"></mt-button>--> |
| 30 | - <van-button type="info" block>退出账户</van-button> | |
| 30 | + <!--<van-button type="info" block>退出账户</van-button>--> | |
| 31 | 31 | </div> |
| 32 | 32 | <div class="leftRightPadding" style="margin-top: 34px" v-else> |
| 33 | 33 | <van-button type="info" block @click="toBindingPage">登录绑定</van-button> |
| ... | ... | @@ -38,7 +38,7 @@ |
| 38 | 38 | |
| 39 | 39 | <script> |
| 40 | 40 | |
| 41 | -import { getTokenByOpenId } from '@/api/getUserIfo' | |
| 41 | +import { getTokenByOpenId } from "@/api/getUserIfo"; | |
| 42 | 42 | export default { |
| 43 | 43 | name: "selfNav", |
| 44 | 44 | data() { |
| ... | ... | @@ -58,26 +58,23 @@ export default { |
| 58 | 58 | } |
| 59 | 59 | ], |
| 60 | 60 | openId: "", |
| 61 | - phoneNum:'',//手机号 | |
| 61 | + phoneNum: ""//手机号 | |
| 62 | 62 | }; |
| 63 | 63 | }, |
| 64 | 64 | mounted() { |
| 65 | - this.openId = this.$utils.openId; | |
| 66 | - if(this.openId){ | |
| 67 | - this.getTokenAndphoneNum() | |
| 68 | - } | |
| 69 | - console.log(this.openId); | |
| 65 | + // this.openId = this.$utils.openId; | |
| 66 | + // if (this.openId) { | |
| 67 | + // this.getTokenAndphoneNum(); | |
| 68 | + // } | |
| 69 | + // console.log(this.openId); | |
| 70 | 70 | }, |
| 71 | 71 | created() { |
| 72 | - // this.carNumber = this.$route.query.carNumber // 获取车牌号 | |
| 73 | - // this.carColor = this.$route.query.carNumberColor // 获取颜色 0:蓝牌;1:黄牌;2:白牌;3:黑牌;4:绿色 | |
| 74 | - // this.currentTabActive = this.$route.query.parkFlag ? this.$route.query.parkFlag : 0 // 0在停 1历史 | |
| 75 | - // console.log(this.carNumber) | |
| 76 | - // this.parkRecordList(this.carNumber) | |
| 72 | + this.phoneNum = this.$utils.userPhoneNum | |
| 73 | + console.log(this.$utils.userPhoneNum) | |
| 77 | 74 | }, |
| 78 | 75 | methods: { |
| 79 | 76 | toNextPage(path) { |
| 80 | - if (this.openId) { | |
| 77 | + if (this.phoneNum) { | |
| 81 | 78 | this.$router.push({ |
| 82 | 79 | name: path |
| 83 | 80 | } |
| ... | ... | @@ -96,17 +93,17 @@ export default { |
| 96 | 93 | } |
| 97 | 94 | ); |
| 98 | 95 | }, |
| 99 | - getTokenAndphoneNum(){ | |
| 96 | + getTokenAndphoneNum() { | |
| 100 | 97 | let jsondata = { |
| 101 | - openid: this.$utils.openId, | |
| 102 | - } | |
| 103 | - jsondata.sign = this.$utils.signObject(jsondata) | |
| 104 | - console.log('停车记录传参 ' + JSON.stringify(jsondata)); | |
| 98 | + openid: this.$utils.openId | |
| 99 | + }; | |
| 100 | + jsondata.sign = this.$utils.signObject(jsondata); | |
| 101 | + console.log("停车记录传参 " + JSON.stringify(jsondata)); | |
| 105 | 102 | getTokenByOpenId(jsondata).then(response => { |
| 106 | - console.log(response) | |
| 107 | - this.phoneNum = response.data.phoneNum | |
| 108 | - console.log(response.data.token) | |
| 109 | - }) | |
| 103 | + console.log(response); | |
| 104 | + this.phoneNum = response.data.phoneNum; | |
| 105 | + console.log(response.data.token); | |
| 106 | + }); | |
| 110 | 107 | } |
| 111 | 108 | } |
| 112 | 109 | }; | ... | ... |