4b268e3f by 华明祺

登录

1 parent 9e55c13c
1 <script> 1 <script>
2 import { 2 import {
3 h5Login 3 getInfo
4 } from '@/common/login.js'; 4 } from '@/common/login.js';
5 import * as api from '@/common/api.js'; 5 import * as api from '@/common/api.js';
6 import config from '@/config.js'; 6 import config from '@/config.js';
...@@ -13,16 +13,14 @@ export default { ...@@ -13,16 +13,14 @@ export default {
13 firstload = true 13 firstload = true
14 14
15 this.globalData.baseUrl_api = config.baseUrl_api; 15 this.globalData.baseUrl_api = config.baseUrl_api;
16
17
18 let userName = uni.getStorageSync('userName')
19 if (userName) {
20 this.globalData.isLogin = true;
21 } else {
22 this.globalData.isLogin = false;
23 16
24 } 17 let userName = uni.getStorageSync('userName')
25 18 if (userName) {
19 this.globalData.isLogin = true;
20 getInfo()
21 } else {
22 this.globalData.isLogin = false;
23 }
26 }, 24 },
27 onShow: function() { 25 onShow: function() {
28 console.log('App Show'); 26 console.log('App Show');
......
1 import request from './request' 1 import request from './request'
2 import config from '@/config.js' 2 import config from '@/config.js'
3 import aes from '@/common/aes.js' 3 import aes from '@/common/aes.js'
4
4 function pcLogin(data) { 5 function pcLogin(data) {
5 return request({ 6 return request({
6 // url: '/login', 7 // url: '/login',
7 url: `${config.baseUrl_api}/loginZtx`, 8 url: `${config.baseUrl_api}/loginZtx`,
8 method: 'post', 9 method: 'post',
9 headers: { 10 headers: {
10 isToken: false 11 isToken: false
11 }, 12 },
12 params: data 13 params: data
13 }).then((res) => { 14 }).then((res) => {
14 uni.setStorageSync('token', 'Bearer ' + res.data.token) 15 uni.setStorageSync('token', 'Bearer ' + res.data.token)
15 }) 16 })
16 .then(getInfo) 17 .then(getInfo)
18 }
19
20 function bindIdcCode(idcCode) {
21 return request({
22 url: `${config.baseUrl_api}/bind?idcCode=${idcCode}`,
23 method: 'post'
24 })
17 } 25 }
18 26
19 function h5Login(userName) { 27 function h5Login(userName) {
...@@ -36,6 +44,7 @@ function h5LoginAuto() { ...@@ -36,6 +44,7 @@ function h5LoginAuto() {
36 uni.redirectTo({ 44 uni.redirectTo({
37 url: '/pages/index/login' 45 url: '/pages/index/login'
38 }) 46 })
47 return Promise.reject()
39 } 48 }
40 } 49 }
41 50
...@@ -71,7 +80,7 @@ function loginByPhone(phonenumber, code) { ...@@ -71,7 +80,7 @@ function loginByPhone(phonenumber, code) {
71 code 80 code
72 } 81 }
73 return request({ 82 return request({
74 url: '/userLoginByPhone', 83 url: `${config.baseUrl_api}/userLoginByPhoneForPc`,
75 method: 'post', 84 method: 'post',
76 params: data 85 params: data
77 }).then((res) => { 86 }).then((res) => {
...@@ -82,15 +91,13 @@ function loginByPhone(phonenumber, code) { ...@@ -82,15 +91,13 @@ function loginByPhone(phonenumber, code) {
82 // 获取用户详细信息 91 // 获取用户详细信息
83 function getInfo() { 92 function getInfo() {
84 return request({ 93 return request({
85 url: `${config.baseUrl_api}/getInfo`, 94 url: `${config.baseUrl_api}/getInfoForPc`,
86 method: 'get' 95 method: 'get'
87 }).then(res => { 96 }).then(res => {
88 const app = getApp() 97 const app = getApp()
89 const user = res.data.user 98 const user = res.data.user
90 const personInfo = res.data.personInfo 99 uni.setStorageSync('userName', user.userName)
91 uni.setStorageSync('userName', user.userName) 100 uni.setStorageSync('perId', aes.encrypt(user.userId))
92 uni.setStorageSync('perId', aes.encrypt(personInfo.perId))
93 app.globalData.deptType = user.dept.deptType
94 app.globalData.userInfo = user 101 app.globalData.userInfo = user
95 }) 102 })
96 } 103 }
...@@ -114,54 +121,65 @@ function getMyOwnMemberInfo() { ...@@ -114,54 +121,65 @@ function getMyOwnMemberInfo() {
114 app.globalData.memberInfo = res.data.memberInfo 121 app.globalData.memberInfo = res.data.memberInfo
115 app.globalData.isExam = res.data?.dept?.isExam 122 app.globalData.isExam = res.data?.dept?.isExam
116 }) 123 })
117 } 124 }
118 125
119 //for match 126 // for match
120 function getWxUserPhone(phoneRes) { 127 function getWxUserPhone(phoneRes) {
121 const currUser = uni.getStorageSync('currUser'); 128 const currUser = uni.getStorageSync('currUser')
122 // getNowOpenId() 129 // getNowOpenId()
123 const nowOpenId = uni.getStorageSync('nowOpenId'); 130 const nowOpenId = uni.getStorageSync('nowOpenId')
124 return request({ 131 return request({
125 url: `/system/wx/updateMobile?openId=${nowOpenId}`, 132 url: `/system/wx/updateMobile?openId=${nowOpenId}`,
126 method: "POST", 133 method: 'POST',
127 params: { 134 params: {
128 appId: appId, 135 appId: appId,
129 userId: currUser.id, 136 userId: currUser.id,
130 encryptedData: phoneRes.encryptedData, 137 encryptedData: phoneRes.encryptedData,
131 errMsg: phoneRes.errMsg, 138 errMsg: phoneRes.errMsg,
132 iv: phoneRes.iv, 139 iv: phoneRes.iv,
133 rawData: phoneRes.rawData, 140 rawData: phoneRes.rawData,
134 signature: phoneRes.signature 141 signature: phoneRes.signature
135 } 142 }
136 }).then((res) => { 143 }).then((res) => {
137 let user = res.data; 144 const user = res.data
138 // uni.setStorageSync('token', 'Bearer '+ user.token); 145 // uni.setStorageSync('token', 'Bearer '+ user.token);
139 uni.setStorageSync('token', user.token); 146 uni.setStorageSync('token', user.token)
140 uni.setStorageSync('currUser', user); 147 uni.setStorageSync('currUser', user)
141 return user 148 return user
142 }) 149 })
143 } 150 }
151
144 function checkUserAuth(path) { 152 function checkUserAuth(path) {
145 const app = getApp() 153 const app = getApp()
146 if (app.globalData.isLogin) { 154 if (app.globalData.isLogin) {
147 return true 155 if (app.globalData.userInfo.perId) {
148 } else { 156 return true
149 uni.navigateTo({ 157 } else {
150 url: '/pages/index/binding?path=' + encodeURIComponent(path) 158 uni.navigateTo({
151 }) 159 url: '/myCenter/personInfo/index?path=' + encodeURIComponent(path)
152 return false; 160 })
153 } 161 return false
154 } 162 }
163 } else {
164 uni.navigateTo({
165 url: '/pages/index/login?path=' + encodeURIComponent(path)
166 })
167 return false
168 }
169 }
155 170
156 export { 171 export {
157 pcLogin,getInfo, 172 pcLogin,
173 getInfo,
158 getCodeImg, 174 getCodeImg,
159 getSmsCode, 175 getSmsCode,
160 h5Login, 176 h5Login,
161 h5LoginAuto, 177 h5LoginAuto,
162 loginByPhone, 178 loginByPhone,
163 groupMemberRegister, 179 groupMemberRegister,
164 getMyOwnMemberInfo, 180 getMyOwnMemberInfo,
165 logout, 181 logout,
166 getWxUserPhone,checkUserAuth 182 getWxUserPhone,
183 checkUserAuth,
184 bindIdcCode
167 } 185 }
......
...@@ -8,9 +8,9 @@ ...@@ -8,9 +8,9 @@
8 // const baseUrl_api = 'https://newsystem.taekwondo.org.cn/stage-api/' 8 // const baseUrl_api = 'https://newsystem.taekwondo.org.cn/stage-api/'
9 9
10 // train 10 // train
11 const baseUrl_api = 'http://192.168.1.11:8787' 11 const baseUrl_api = 'http://192.168.1.98:8787'
12 const trainUrl_api = 'http://192.168.1.25:8686' 12 const trainUrl_api = 'http://192.168.1.98:8686'
13 //match 13 // match
14 // const baseUrl_api = 'http://192.168.1.132:8081' 14 // const baseUrl_api = 'http://192.168.1.132:8081'
15 export default { 15 export default {
16 baseUrl_api, 16 baseUrl_api,
......
1 <template> 1 <template>
2 <view class="box"> 2 <view class="box">
3 <view class="topBg"> 3 <view class="topBg">
4 <view class="userInfoBox"> 4 <view class="userInfoBox">
5 <view class="headImg"> 5 <view class="headImg">
6 <image mode="aspectFill" :src="avatarUrl"></image> 6 <image mode="aspectFill" :src="avatarUrl"></image>
7 </view> 7 </view>
8 <view class="nameBox"> 8 <view class="nameBox">
9 {{ user.nickName }} 9 {{ user.nickName }}
10 <view>{{ user.phonenumber }}</view> 10 <view>{{ user.phonenumber }}</view>
11 </view> 11 </view>
12 </view> 12 </view>
13 </view> 13 </view>
14 <view class="rMainBox"> 14 <view class="rMainBox">
15 <uni-list :border="false" class="myList"> 15 <uni-list :border="false" class="myList">
16 <!-- <uni-list-item :border="false" title="个人信息" showArrow :to="`./myInfo`"> 16 <!-- <uni-list-item :border="false" title="个人信息" showArrow :to="`./myInfo`">
17 <template v-slot:header> 17 <template v-slot:header>
18 <view class="slot-box"> 18 <view class="slot-box">
19 <image class="slot-image" src="/static/user_icon03.png" mode="widthFix"></image> 19 <image class="slot-image" src="/static/user_icon03.png" mode="widthFix"></image>
...@@ -43,25 +43,25 @@ ...@@ -43,25 +43,25 @@
43 </template> 43 </template>
44 </uni-list-item> --> 44 </uni-list-item> -->
45 45
46 <uni-list-item :border="false" title="我的培训" showArrow clickable @click="goPath('/myCenter/mytrain/mytrain')"> 46 <uni-list-item :border="false" title="我的培训" showArrow clickable @click="goPath('/myCenter/mytrain/mytrain')">
47 <template v-slot:header> 47 <template v-slot:header>
48 <view class="slot-box"> 48 <view class="slot-box">
49 <image class="slot-image" mode="widthFix"></image> 49 <image class="slot-image" mode="widthFix"></image>
50 </view> 50 </view>
51 </template> 51 </template>
52 </uni-list-item> 52 </uni-list-item>
53 53
54 <!-- <uni-list-item :border="false" title="我的赛事" showArrow :to="`./match`"> 54 <!-- <uni-list-item :border="false" title="我的赛事" showArrow :to="`./match`">
55 <template v-slot:header> 55 <template v-slot:header>
56 <view class="slot-box"> 56 <view class="slot-box">
57 <image class="slot-image" src="/static/user_icon04.png" mode="widthFix"></image> 57 <image class="slot-image" src="/static/user_icon04.png" mode="widthFix"></image>
58 </view> 58 </view>
59 </template> 59 </template>
60 </uni-list-item> --> 60 </uni-list-item> -->
61 </uni-list> 61 </uni-list>
62 </view> 62 </view>
63 63
64 </view> 64 </view>
65 </template> 65 </template>
66 66
67 <script setup> 67 <script setup>
...@@ -74,29 +74,29 @@ const user = ref({}); ...@@ -74,29 +74,29 @@ const user = ref({});
74 const app = getApp(); 74 const app = getApp();
75 75
76 onShow(() => { 76 onShow(() => {
77 if (app.globalData.isLogin) { 77 if (app.globalData.isLogin) {
78 init(); 78 init();
79 } else { 79 } else {
80 app.firstLoadCallback = () => { 80 app.firstLoadCallback = () => {
81 init(); 81 init();
82 }; 82 };
83 } 83 }
84 }); 84 });
85 function init() { 85 function init() {
86 console.log(app.globalData.isLogin) 86 console.log(app.globalData.isLogin)
87 if(app.globalData.userInfo){ 87 if(app.globalData.userInfo){
88 const currUser = app.globalData.userInfo 88 const currUser = app.globalData.userInfo
89 user.value = currUser; 89 user.value = currUser;
90 } else { 90 } else {
91 loginServer.getInfo().then(res=>{ 91 loginServer.getInfo().then(res=>{
92 const currUser = app.globalData.userInfo 92 const currUser = app.globalData.userInfo
93 user.value = currUser 93 user.value = currUser
94 }) 94 })
95 } 95 }
96 } 96 }
97 97
98 function goBack() { 98 function goBack() {
99 uni.navigateBack({}); 99 uni.navigateBack({});
100 } 100 }
101 // function goQcode() { 101 // function goQcode() {
102 // uni.scanCode({ 102 // uni.scanCode({
...@@ -121,18 +121,18 @@ function goBack() { ...@@ -121,18 +121,18 @@ function goBack() {
121 // }); 121 // });
122 // } 122 // }
123 function building() { 123 function building() {
124 uni.showToast({ 124 uni.showToast({
125 title: '暂未开放,敬请期待。', 125 title: '暂未开放,敬请期待。',
126 icon: 'none', 126 icon: 'none',
127 duration: 2000 127 duration: 2000
128 }); 128 });
129 }
130 function goPath(path) {
131 if(path)
132 uni.navigateTo({
133 url: path
134 });
129 } 135 }
130 function goPath(path) {
131 if(path)
132 uni.navigateTo({
133 url: path
134 });
135 }
136 </script> 136 </script>
137 137
138 <style scoped lang="scss"> 138 <style scoped lang="scss">
......
1 <template>
2 <view class="bg">
3 <view class="formbox" v-if="form.perId">
4 身份证号:{{form.idcCode}}
5 </view>
6 <view class="formbox" v-else>
7 <view>
8 <view class="round-input-item">
9 <uni-easyinput :styles="inputstyle" placeholder="身份证" v-model="form.idcCode" />
10 </view>
11 </view>
12 <view class="flex-item">
13 </view>
14 <view class="center-item">
15 <button @click="handleBind" class="btn-red">绑定个人会员</button>
16 </view>
17 </view>
18 </view>
19 </template>
20
21 <script setup>
22 import {
23 ref
24 } from 'vue'
25
26 import {
27 onLoad
28 } from '@dcloudio/uni-app'
29 import config from '@/config.js'
30 import {
31 bindIdcCode
32 } from '@/common/login.js'
33
34
35 const app=getApp()
36 const form = ref({})
37
38 let path = '/pages/myCenter/index';
39 onLoad((option) => {
40 if (option.path) {
41 path = decodeURIComponent(option.path)
42 }
43
44 form.value=app.globalData.userInfo
45 })
46
47 function handleBind() {
48 if (!form.value.idcCode) {
49 uni.showToast({
50 title: '身份证号不能为空',
51 icon: 'none'
52 })
53 return
54 }
55
56 bindIdcCode(form.value.idcCode)
57 .then((res) => {
58 uni.redirectTo({
59 url: path
60 })
61 })
62 }
63 </script>
64
65 <style scoped lang="scss">
66 .bg{background: linear-gradient(60deg,#ad1820 50%,#044a9f 50%);padding: 1px;height: 100vh;overflow: hidden;}
67 .formbox {
68 background: #fff;
69 width: 700rpx;
70 padding: 50rpx;box-sizing: border-box;
71 margin: auto;
72 border-radius: 20rpx;
73 }
74 .logoView {
75 /* margin: 20vh 0; */
76 }
77
78 .logo {
79 width: 420rpx;
80 height: 179rpx;
81 margin: 60rpx auto 60rpx;
82 display: block;
83 }
84
85 .h1 {
86 font-size: 36rpx;
87 color: #000000;
88 text-align: center;
89 }
90
91 .start {
92 margin: 0 auto 80rpx;
93 font-size: 30rpx;
94 color: #fff;
95 height: 80rpx;
96 width: 480rpx;
97 border-radius: 40rpx;
98 background: #44A92F;
99 }
100
101 .agreeArea {
102 text-align: center;
103 }
104
105 .agreeArea label {
106 font-size: 26rpx;
107 }
108
109 .agreeArea label text {
110 color: #00C176;
111 }
112
113 .tip {
114 margin: 30rpx 0 0;
115 font-size: 20rpx;
116 color: #181818;
117 }
118
119 .h3 {}
120 .round-input-item {
121 overflow: hidden;
122 background: RGBA(247, 247, 248, 1);
123 border-radius: 40rpx;
124 padding: 0 0 0 30rpx;
125 height: 80rpx;
126 margin-bottom: 30rpx;
127 display: flex;
128 align-items: center;
129
130 image {
131 width: 180rpx;
132 height: 80rpx;
133
134 &.icon {
135 width: 30rpx;
136 height: 30rpx;
137 margin-right: 16rpx;
138 }
139 }
140
141 input {
142 border-left: 1rpx solid RGBA(214, 216, 219, 1);
143 padding: 0 0 0 20rpx;
144 font-size: 30rpx;
145 }
146
147 input::-webkit-input-placeholder {
148 color: RGBA(158, 166, 174, 1);
149 font-size: 30rpx;
150 }
151
152 input::placeholder {
153 color: RGBA(158, 166, 174, 1);
154 font-size: 30rpx;
155 }
156
157 input::-moz-placeholder {
158 color: RGBA(158, 166, 174, 1);
159 font-size: 30rpx;
160 }
161
162 text {
163 font-size: 28rpx;
164 color: #014A9F; padding: 0 20rpx;
165 }
166
167 }
168
169 </style>
...\ No newline at end of file ...\ No newline at end of file
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
33 } 33 }
34 }, 34 },
35 { 35 {
36 "path": "pages/myCenter/myCenter", 36 "path": "pages/myCenter/index",
37 "style": { 37 "style": {
38 "navigationBarTitleText": "我的", 38 "navigationBarTitleText": "我的",
39 "enablePullDownRefresh": false 39 "enablePullDownRefresh": false
...@@ -209,6 +209,13 @@ ...@@ -209,6 +209,13 @@
209 "navigationBarTitleText": "个人中心", 209 "navigationBarTitleText": "个人中心",
210 "enablePullDownRefresh": false 210 "enablePullDownRefresh": false
211 } 211 }
212 },
213 {
214 "path": "personInfo/index",
215 "style": {
216 "navigationBarTitleText": "个人会员信息",
217 "enablePullDownRefresh": false
218 }
212 }, 219 },
213 { 220 {
214 "path": "mytrain/mytrain", 221 "path": "mytrain/mytrain",
...@@ -263,7 +270,7 @@ ...@@ -263,7 +270,7 @@
263 "pagePath": "pages/webView/auth", 270 "pagePath": "pages/webView/auth",
264 "text": "认证查询" 271 "text": "认证查询"
265 }, { 272 }, {
266 "pagePath": "pages/myCenter/myCenter", 273 "pagePath": "pages/myCenter/index",
267 "text": "我的" 274 "text": "我的"
268 }] 275 }]
269 } 276 }
......
1 <template> 1 <template>
2 <view class="bg"> 2 <view class="bg">
3 <view class="logoView"> 3 <view class="logoView">
4 <image class="logo" :src="config.baseUrl_api+'/fs/static/login/logo@2x.png'"></image> 4 <image class="logo" :src="config.baseUrl_api+'/fs/static/login/logo@2x.png'"></image>
5 </view> 5 </view>
6 6
7 <!-- 获取手机号 --> 7 <!-- 获取手机号 -->
8 <!-- <button class="start" type="default" :disabled="!agree" open-type="getPhoneNumber" @getphonenumber="decryptPhoneNumber">微信账号快捷登录</button> --> 8 <!-- <button class="start" type="default" :disabled="!agree" open-type="getPhoneNumber" @getphonenumber="decryptPhoneNumber">微信账号快捷登录</button> -->
9 <view> 9 <view>
10 <!-- 密码登录 --> 10 <!-- 密码登录 -->
11 <view class="formbox"> 11 <view class="formbox">
12 12 <view>
13 <view> 13 <view class="round-input-item">
14 <view class="round-input-item"> 14 <image class="icon" :src="config.baseUrl_api+'/fs/static/login/tag01@2x.png'"></image>
15 <image class="icon" :src="config.baseUrl_api+'/fs/static/login/tag01@2x.png'"></image> 15 <uni-easyinput :styles="inputstyle" placeholder="会员号" v-model="form.username" />
16 <uni-easyinput :styles="inputstyle" placeholder="会员号" v-model="form.username" /> 16 </view>
17 </view> 17 <view class="round-input-item">
18 <view class="round-input-item"> 18 <image class="icon" :src="config.baseUrl_api+'/fs/static/login/tag02@2x.png'"></image>
19 <image class="icon" :src="config.baseUrl_api+'/fs/static/login/tag02@2x.png'"></image> 19 <uni-easyinput :styles="inputstyle" placeholder="密码" v-model="form.password" type="password" />
20 <uni-easyinput :styles="inputstyle" placeholder="密码" v-model="form.password" type="password" /> 20 </view>
21 </view> 21 <view class="round-input-item">
22 <view class="round-input-item"> 22 <image class="icon" :src="config.baseUrl_api+'/fs/static/login/tag03@2x.png'"></image>
23 <image class="icon" :src="config.baseUrl_api+'/fs/static/login/tag03@2x.png'"></image> 23 <uni-easyinput :styles="inputstyle" placeholder="图形验证码" v-model="form.code" />
24 <uni-easyinput :styles="inputstyle" placeholder="图形验证码" v-model="form.code" /> 24 <image :src="codeUrl" @click="getCode" />
25 <image :src="codeUrl" @click="getCode" /> 25 </view>
26 </view> 26
27 27 </view>
28 </view> 28 <view class="flex-item">
29 <view class="flex-item"> 29 </view>
30 </view> 30 <view class="center-item">
31 <view class="center-item"> 31 <button @click="handleLogin" class="btn-red">绑定账号</button>
32 <button @click="handleLogin" class="btn-red">绑定账号</button> 32 </view>
33 </view>
34 33
35 <view class="tip">*会员号+证件号后四位+ )*%</view> 34 <view class="tip">*会员号+证件号后四位+ )*%</view>
36 </view> 35 </view>
37 36
38 37
39 </view> 38 </view>
40 39
41 <view class="agreeArea"> 40 <view class="agreeArea">
42 <!-- <checkbox-group @change='radioChange'> 41 <!-- <checkbox-group @change='radioChange'>
43 <label> 42 <label>
44 <checkbox value="r1" :checked="agree" />请您确认同意<text @click="showAgreement">《隐私保护声明》</text> 43 <checkbox value="r1" :checked="agree" />请您确认同意<text @click="showAgreement">《隐私保护声明》</text>
45 </label> 44 </label>
46 </checkbox-group> --> 45 </checkbox-group> -->
47 </view> 46 </view>
48 <!-- 隐私保护声明 --> 47 <!-- 隐私保护声明 -->
49 <uni-popup ref="popup" v-if="showAgree" background-color="#fff"> 48 <uni-popup ref="popup" v-if="showAgree" background-color="#fff">
50 <view class="popup-content"> 49 <view class="popup-content">
51 本应用严格遵守法律法规,为用户提供安全、可靠的服务。若您对于我们感兴趣,希望咨询、预约、申请使用我们的服务,我们需要收集、使用您的个人信息以便为您安排专人提供服务。本公司非常重视用户(以下或简称“您”)的隐私和个人信息安全,希望您仔细阅读《隐私保护声明》(以下简称“本声明”),详细了解我们对信息的收集、使用方式,以便您更好地了解我们的服务并做出适当的选择。 50 本应用严格遵守法律法规,为用户提供安全、可靠的服务。若您对于我们感兴趣,希望咨询、预约、申请使用我们的服务,我们需要收集、使用您的个人信息以便为您安排专人提供服务。本公司非常重视用户(以下或简称“您”)的隐私和个人信息安全,希望您仔细阅读《隐私保护声明》(以下简称“本声明”),详细了解我们对信息的收集、使用方式,以便您更好地了解我们的服务并做出适当的选择。
52 51
53 一、您提供的个人信息 52 一、您提供的个人信息
54 1、在注册帐户时填写或上传的信息 53 1、在注册帐户时填写或上传的信息
55 54
56 例如,您在参与问卷时所填写的姓名、所在地、行业、手机号码等。 55 例如,您在参与问卷时所填写的姓名、所在地、行业、手机号码等。
57 56
58 2、在奖励兑换时填写或上传的信息 57 2、在奖励兑换时填写或上传的信息
59 58
60 例如,您在奖励兑换时所填写的姓名、所在地、手机号码等。 59 例如,您在奖励兑换时所填写的姓名、所在地、手机号码等。
61 60
62 我们为您的信息提供相应的安全保障,以防止信息的丢失、不当使用、未经授权访问或披露。 61 我们为您的信息提供相应的安全保障,以防止信息的丢失、不当使用、未经授权访问或披露。
63 62
64 二、我们如何使用您的个人信息 63 二、我们如何使用您的个人信息
65 根据您留下的信息,我们后续会自行或委托合作方与您取得联系,向您介绍我们的服务。 64 根据您留下的信息,我们后续会自行或委托合作方与您取得联系,向您介绍我们的服务。
66 65
67 我们可能会向您发送推广信息,如您不希望继续接收推广可选择退订。 66 我们可能会向您发送推广信息,如您不希望继续接收推广可选择退订。
68 67
69 三、您享有的权利 68 三、您享有的权利
70 1、我们保障您撤回个人信息使用的同意的权利; 69 1、我们保障您撤回个人信息使用的同意的权利;
71 70
72 2、我们保障您复制、查阅本人个人信息的权利。 71 2、我们保障您复制、查阅本人个人信息的权利。
73 72
74 若您需要行使上述权利,您可通过本声明列明的联系方式与我们联系,在您请求撤回同意或者复制、查阅本人个人信息时,我们可能会要求您进行身份验证,以保障信息安全。 73 若您需要行使上述权利,您可通过本声明列明的联系方式与我们联系,在您请求撤回同意或者复制、查阅本人个人信息时,我们可能会要求您进行身份验证,以保障信息安全。
75 74
76 请您理解,由于技术所限或法律监管要求,我们可能无法完全满足您的要求。我们将尽快处理所涉问题,并在通过验证您的用户身份后的十五天内予以回复。 75 请您理解,由于技术所限或法律监管要求,我们可能无法完全满足您的要求。我们将尽快处理所涉问题,并在通过验证您的用户身份后的十五天内予以回复。
77 76
78 四、变更 77 四、变更
79 我们可能适时修订本声明内容。 78 我们可能适时修订本声明内容。
80 79
81 我们将在内容更新时,通过在页面显著位置提示、公告或直接与您联系等方式通知您,如果您继续使用本服务,即视为您已接受修改后的相关内容;如果您不接受修改后的相关内容,您可以联系我们或者通过信息退订等方式选择停止使用服务。 80 我们将在内容更新时,通过在页面显著位置提示、公告或直接与您联系等方式通知您,如果您继续使用本服务,即视为您已接受修改后的相关内容;如果您不接受修改后的相关内容,您可以联系我们或者通过信息退订等方式选择停止使用服务。
82 81
83 五、联系我们 82 五、联系我们
84 如您对本声明或个人信息相关事宜有疑问,可以通过公众号与我们取得联系。 83 如您对本声明或个人信息相关事宜有疑问,可以通过公众号与我们取得联系。
85 </view> 84 </view>
86 </uni-popup> 85 </uni-popup>
87 </view> 86 </view>
88 </template> 87 </template>
89 88
90 <script setup> 89 <script setup>
91 import { 90 import {
92 ref 91 ref
93 } from 'vue' 92 } from 'vue'
94 93
95 import { 94 import {
96 onLoad 95 onLoad
97 } from '@dcloudio/uni-app' 96 } from '@dcloudio/uni-app'
98 import config from '@/config.js' 97 import config from '@/config.js'
99 import { 98 import {
100 pcLogin, 99 pcLogin,
101 getWxUserPhone, 100 getWxUserPhone,
102 getCodeImg, 101 getCodeImg,
103 getSmsCode, 102 getSmsCode,
104 loginByPhone 103 loginByPhone
105 } from '@/common/login.js' 104 } from '@/common/login.js'
106 105
107 106
108 const popup = ref(null) 107 const popup = ref(null)
109 const agree = ref(true) 108 const agree = ref(true)
110 const loading = ref(false) 109 const loading = ref(false)
111 const showAgree = ref(false) 110 const showAgree = ref(false)
112 const form = ref({}) 111 const form = ref({})
113 const codeUrl = ref('') 112 const codeUrl = ref('')
114 const inputstyle = ref({ 113 const inputstyle = ref({
115 borderColor: 'transparent', 114 borderColor: 'transparent',
116 fontSize: '30rpx' 115 fontSize: '30rpx'
117 }) 116 })
118 const app = getApp() 117 const app = getApp()
119 118
120 let path = '/pages/index/index'; 119 let path = '/pages/index/index';
121 onLoad((option) => { 120 onLoad((option) => {
122 if (option.path) { 121 if (option.path) {
123 path = decodeURIComponent(option.path) 122 path = decodeURIComponent(option.path)
124 } 123 }
125 getCode() 124 getCode()
126 }) 125 })
127 126
128 function radioChange() { 127 function radioChange() {
129 popup.value.open() 128 popup.value.open()
130 agree.value = true 129 agree.value = true
131 } 130 }
132 function decryptPhoneNumber(res) { 131 function decryptPhoneNumber(res) {
133 // console.log(res) 132 // console.log(res)
134 133
135 loading.value = true 134 loading.value = true
136 if (res.detail.errMsg.indexOf('ok') > -1) { 135 if (res.detail.errMsg.indexOf('ok') > -1) {
137 getWxUserPhone(res.detail).then((data) => { 136 getWxUserPhone(res.detail).then((data) => {
138 // console.log(data) 137 // console.log(data)
139 138
140 uni.redirectTo({ 139 uni.redirectTo({
141 url: path 140 url: path
142 }) 141 })
143 }).finally(() => { 142 }).finally(() => {
144 loading.value = false 143 loading.value = false
145 }); 144 });
146 } else { 145 } else {
147 loading.value = false 146 loading.value = false
148 } 147 }
149 } 148 }
150 149
151 function subscribe() { 150 function subscribe() {
152 uni.requestSubscribeMessage({ 151 uni.requestSubscribeMessage({
153 tmplIds: ['pvrlpWl1MDJfOghILwUsQtfcg96LWdstVOFLrDxGcdM'], 152 tmplIds: ['pvrlpWl1MDJfOghILwUsQtfcg96LWdstVOFLrDxGcdM'],
154 success: (res) => { 153 success: (res) => {
155 console.log('success:', res) 154 console.log('success:', res)
156 } 155 }
157 }) 156 })
158 } 157 }
159 158
160 function showAgreement() { 159 function showAgreement() {
161 popup.value.open() 160 popup.value.open()
162 } 161 }
163 162
164 function getCode() { 163 function getCode() {
165 getCodeImg().then((res) => { 164 getCodeImg().then((res) => {
166 codeUrl.value = 'data:image/gif;base64,' + res.data.img 165 codeUrl.value = 'data:image/gif;base64,' + res.data.img
167 form.value.uuid = res.data.uuid 166 form.value.uuid = res.data.uuid
168 }) 167 })
169 } 168 }
170 169
171 function handleLogin() { 170 function handleLogin() {
172 if (!form.value.username) { 171 if (!form.value.username) {
173 uni.showToast({ 172 uni.showToast({
174 title: '账号不能为空', 173 title: '账号不能为空',
175 icon: 'none' 174 icon: 'none'
176 }) 175 })
177 return 176 return
178 } 177 }
179 if (!form.value.password) { 178 if (!form.value.password) {
180 uni.showToast({ 179 uni.showToast({
181 title: '密码不能为空', 180 title: '密码不能为空',
182 icon: 'none' 181 icon: 'none'
183 }) 182 })
184 return 183 return
185 } 184 }
186 if (!form.value.code) { 185 if (!form.value.code) {
187 uni.showToast({ 186 uni.showToast({
188 title: '验证码不能为空', 187 title: '验证码不能为空',
189 icon: 'none' 188 icon: 'none'
190 }) 189 })
191 return 190 return
192 } 191 }
193 pcLogin(form.value) 192 pcLogin(form.value)
194 .then((res) => { 193 .then((res) => {
195 app.globalData.isLogin = true 194 app.globalData.isLogin = true
196 uni.redirectTo({ 195 uni.redirectTo({
197 url: path 196 url: path
198 }) 197 })
199 }) 198 })
200 } 199 }
201 </script> 200 </script>
202 201
203 <style scoped lang="scss"> 202 <style scoped lang="scss">
......
1 <template> 1 <template>
2 <view class="page"> 2 <view class="page">
3 <swiper> 3 <swiper>
4 <swiper-item>1</swiper-item> 4 <swiper-item>1</swiper-item>
5 <swiper-item>2</swiper-item> 5 <swiper-item>2</swiper-item>
6 <swiper-item>3</swiper-item> 6 <swiper-item>3</swiper-item>
7 </swiper> 7 </swiper>
8 <view class="girdBox"> 8 <view class="girdBox">
9 <view @click="goPath('/training/trainList')"> 9 <view @click="goPath('/training/trainList')">
10 <image />新闻资讯 10 <image />新闻资讯
11 </view> 11 </view>
12 <view @click="goPath('/match/index')"> 12 <view @click="goPath('/match/index')">
13 <image />赛事报名 13 <image />赛事报名
14 </view> 14 </view>
15 15
16 <view @click="goPath('/training/trainList')"> 16 <view @click="goPath('/training/trainList')">
17 <image />培训报名 17 <image />培训报名
18 </view> 18 </view>
19 <view @click="goPath()"> 19 <view @click="goPath()">
20 <image />团体会员 20 <image />团体会员
21 </view> 21 </view>
22 <view @click="goPath()"> 22 <view @click="goPath()">
23 <image />地方协会 23 <image />地方协会
24 </view> 24 </view>
25 <view @click="goPath()"> 25 <view @click="goPath()">
26 <image />考点查询 26 <image />考点查询
27 </view> 27 </view>
28 <view @click="goPath('/webView/vipSystem')"> 28 <view @click="goPath('/webView/vipSystem')">
29 <image />会员系统 29 <image />会员系统
30 </view> 30 </view>
31 <view @click="goPath('/myCenter/index')"> 31 <view @click="goTab('/pages/myCenter/index')">
32 <image />我的 32 <image />我的
33 </view> 33 </view>
34 34
35 </view> 35 </view>
36 </view> 36 </view>
37 </template> 37 </template>
38 38
39 <script setup> 39 <script setup>
40 import * as api from '@/common/api.js'; 40 import * as api from '@/common/api.js';
41 import * as loginServer from '@/common/login.js'; 41 import * as loginServer from '@/common/login.js';
42 import config from '@/config.js' 42 import config from '@/config.js'
43 import { 43 import {
44 onLoad, 44 onLoad,
45 onShow, 45 onShow,
46 onReady, 46 onReady,
47 onPullDownRefresh 47 onPullDownRefresh
48 } from '@dcloudio/uni-app'; 48 } from '@dcloudio/uni-app';
49 import { 49 import {
50 ref, 50 ref,
51 getCurrentInstance 51 getCurrentInstance
52 } from 'vue'; 52 } from 'vue';
53 53
54 54
55 const { 55 const {
56 proxy 56 proxy
57 } = getCurrentInstance() 57 } = getCurrentInstance()
58 const app = getApp(); 58 const app = getApp();
59 const svId = ref(null); 59 const svId = ref(null);
60 60
61 const messageList = ref([]) 61 const messageList = ref([])
62 onShow(() => { 62 onShow(() => {
63 if (app.globalData.isLogin) { 63 if (app.globalData.isLogin) {
64 init() 64 init()
65 } else { 65 } else {
66 app.firstLoadCallback = () => { 66 app.firstLoadCallback = () => {
67 init() 67 init()
68 }; 68 };
69 } 69 }
70 }) 70 })
71 onLoad(option => { 71 onLoad(option => {
72 72
73 }); 73 });
74 74
75 75
76 function goPath(path) { 76 function goPath(path) {
77 if(path) 77 if(path)
78 uni.navigateTo({ 78 uni.navigateTo({
79 url: path 79 url: path
80 }); 80 });
81 } 81 }
82 82
83 function goTab(path){
84 uni.switchTab({
85 url: path
86 })
87 }
83 88
84 89
85 function init() { 90 function init() {
86 uni.showLoading({ 91 uni.showLoading({
87 title: '加载中' 92 title: '加载中'
88 }); 93 });
89 uni.hideLoading(); 94 uni.hideLoading();
90 95
91 } 96 }
92 97
93 98
94 99
95 function goItem(item) { 100 function goItem(item) {
96 if (item.path) { 101 if (item.path) {
97 let path = item.path 102 let path = item.path
98 uni.navigateTo({ 103 uni.navigateTo({
99 url: item.path 104 url: item.path
100 }); 105 });
101 106
102 } else { 107 } else {
103 uni.showToast({ 108 uni.showToast({
104 title: `暂未开放`, 109 title: `暂未开放`,
105 icon: 'none' 110 icon: 'none'
106 }); 111 });
107 } 112 }
108 } 113 }
109 </script> 114 </script>
110 <style scope lang="scss"> 115 <style scope lang="scss">
111 .page{width: 100vw;overflow: hidden;} 116 .page{width: 100vw;overflow: hidden;}
......
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
5 <view class="retop"> 5 <view class="retop">
6 <image class="logotop" :src="config.baseUrl_api+'/fs/static/login/logo@2x.png'"></image> 6 <image class="logotop" :src="config.baseUrl_api+'/fs/static/login/logo@2x.png'"></image>
7 <view class="loginbox"> 7 <view class="loginbox">
8 <view class="loginNav"> 8 <!-- <view class="loginNav">
9 <view class="n1" :class="isActive==0?'active':''" @click="changeActive(0)">密码登录</view> 9 <view class="n1" :class="isActive==0?'active':''" @click="changeActive(0)">密码登录</view>
10 <view class="n2" :class="isActive==1?'active':''" @click="changeActive(1)">短信登录</view> 10 <view class="n2" :class="isActive==1?'active':''" @click="changeActive(1)">短信登录</view>
11 </view> 11 </view> -->
12 <!-- 密码登录 --> 12 <!-- 密码登录 -->
13 <view class="formbox"> 13 <view class="formbox">
14 <form v-if="isActive==0"> 14 <form v-if="isActive==0">
...@@ -55,9 +55,9 @@ ...@@ -55,9 +55,9 @@
55 <view class="center-item"> 55 <view class="center-item">
56 <button @click="login" class="btn-red">登录</button> 56 <button @click="login" class="btn-red">登录</button>
57 </view> 57 </view>
58 <view class="center-item"> 58 <!--<view class="center-item">
59 <text class="text-red" @click="goRegister">没有账号,去注册</text> 59 <text class="text-red" @click="goRegister">没有账号,去注册</text>
60 </view> 60 </view> -->
61 61
62 </view> 62 </view>
63 63
...@@ -84,16 +84,19 @@ import { ...@@ -84,16 +84,19 @@ import {
84 getSmsCode, 84 getSmsCode,
85 pcLogin, 85 pcLogin,
86 loginByPhone 86 loginByPhone
87 } from '@/common/login.js' 87 } from '@/common/login.js'
88 import {
89 onLoad
90 } from '@dcloudio/uni-app'
88 91
89 const isActive = ref(0) 92 const isActive = ref(1)
90 const agree = ref(false) 93 const agree = ref(false)
91 const isRember = ref(true) 94 const isRember = ref(true)
92 const codeUrl = ref(null) 95 const codeUrl = ref(null)
93 const inputstyle = ref({ 96 const inputstyle = ref({
94 borderColor: 'transparent', 97 borderColor: 'transparent',
95 fontSize: '30rpx' 98 fontSize: '30rpx'
96 }) 99 })
97 const form = ref({ 100 const form = ref({
98 username: null, 101 username: null,
99 password: null, 102 password: null,
...@@ -109,11 +112,15 @@ const form2 = ref({ ...@@ -109,11 +112,15 @@ const form2 = ref({
109 const countDown = ref({ 112 const countDown = ref({
110 start: false, 113 start: false,
111 second: 60 114 second: 60
112 }) 115 })
113 116
114 const app = getApp() 117 const app = getApp()
115 118 const switchTab=['/pages/index/index','/pages/webView/auth','/pages/myCenter/index']
116 onMounted(() => { 119 let path = '/pages/index/index';
120 onLoad((option) => {
121 if (option.path) {
122 path = decodeURIComponent(option.path)
123 }
117 getCode() 124 getCode()
118 }) 125 })
119 126
...@@ -151,8 +158,7 @@ function login() { ...@@ -151,8 +158,7 @@ function login() {
151 } 158 }
152 159
153 pcLogin(form.value) 160 pcLogin(form.value)
154 .then((res) => { 161 .then((res) => {
155
156 app.globalData.isLogin = true 162 app.globalData.isLogin = true
157 uni.redirectTo({ 163 uni.redirectTo({
158 url: '/pages/index/index' 164 url: '/pages/index/index'
...@@ -177,10 +183,22 @@ function login() { ...@@ -177,10 +183,22 @@ function login() {
177 183
178 loginByPhone(form2.value.telNo,form2.value.code) 184 loginByPhone(form2.value.telNo,form2.value.code)
179 .then(() => { 185 .then(() => {
180 app.globalData.isLogin = true 186 app.globalData.isLogin = true
181 uni.redirectTo({ 187 if(!app.globalData.userInfo.perId){
182 url: '/pages/index/index' 188 uni.redirectTo({
183 }) 189 url: '/myCenter/personInfo/index?path=' + encodeURIComponent(path)
190 })
191 }else{
192 if(switchTab.indexOf(path)>-1){
193 uni.switchTab({
194 url: path
195 })
196 }else{
197 uni.redirectTo({
198 url: path
199 })
200 }
201 }
184 }) 202 })
185 } 203 }
186 } 204 }
......
1 <template> 1 <template>
2 <view class="box"> 2 <view class="box" v-if='isShow'>
3 <view class="topBg"> 3 <view class="topBg">
4 <view class="userInfoBox"> 4 <view class="userInfoBox">
5 <view class="headImg"> 5 <view class="headImg">
6 <image mode="aspectFill" :src="avatarUrl"></image> 6 <image mode="aspectFill" :src="avatarUrl"></image>
7 </view> 7 </view>
8 <view class="nameBox"> 8 <view class="nameBox">
9 {{ user.nickName }} 9 {{ user.nickName }}
10 <view>{{ user.phonenumber }}</view> 10 <view>{{ user.phonenumber }}</view>
11 </view> 11 </view>
12 </view> 12 </view>
13 </view> 13 </view>
14 <view class="rMainBox"> 14 <view class="rMainBox">
15 <uni-list :border="false" class="myList"> 15 <uni-list :border="false" class="myList">
16 <!-- <uni-list-item :border="false" title="个人信息" showArrow :to="`./myInfo`"> 16 <!-- <uni-list-item :border="false" title="个人信息" showArrow :to="`./myInfo`">
17 <template v-slot:header> 17 <template v-slot:header>
18 <view class="slot-box"> 18 <view class="slot-box">
19 <image class="slot-image" src="/static/user_icon03.png" mode="widthFix"></image> 19 <image class="slot-image" src="/static/user_icon03.png" mode="widthFix"></image>
20 </view> 20 </view>
21 </template> 21 </template>
22 </uni-list-item> 22 </uni-list-item>
23 <uni-list-item :border="false" title="参赛队信息" showArrow :to="`./teamList`"> 23 <uni-list-item :border="false" title="参赛队信息" showArrow :to="`./teamList`">
24 <template v-slot:header> 24 <template v-slot:header>
25 <view class="slot-box"> 25 <view class="slot-box">
26 <image class="slot-image" src="/static/user_icon06.png" mode="widthFix"></image> 26 <image class="slot-image" src="/static/user_icon06.png" mode="widthFix"></image>
27 </view> 27 </view>
28 </template> 28 </template>
29 </uni-list-item> 29 </uni-list-item>
30 <uni-list-item :border="false" title="会员充值" showArrow :to="`./mycard/renew`"> 30 <uni-list-item :border="false" title="会员充值" showArrow :to="`./mycard/renew`">
31 <template v-slot:header> 31 <template v-slot:header>
32 <view class="slot-box"> 32 <view class="slot-box">
33 <image class="slot-image" src="/static/user_icon01.png" mode="widthFix"></image> 33 <image class="slot-image" src="/static/user_icon01.png" mode="widthFix"></image>
34 </view> 34 </view>
35 </template> 35 </template>
36 </uni-list-item> 36 </uni-list-item>
37 37
38 <uni-list-item :border="false" title="场地订单" showArrow :to="`./bills`"> 38 <uni-list-item :border="false" title="场地订单" showArrow :to="`./bills`">
39 <template v-slot:header> 39 <template v-slot:header>
40 <view class="slot-box"> 40 <view class="slot-box">
41 <image class="slot-image" src="/static/user_icon02.png" mode="widthFix"></image> 41 <image class="slot-image" src="/static/user_icon02.png" mode="widthFix"></image>
42 </view> 42 </view>
43 </template> 43 </template>
44 </uni-list-item> --> 44 </uni-list-item> -->
45 45 <uni-list-item :border="false" title="个人会员" showArrow clickable
46 <uni-list-item :border="false" title="我的培训" showArrow clickable @click="goPath('/myCenter/mytrain/mytrain')"> 46 @click="goPath('/myCenter/personInfo/index')">
47 <template v-slot:header> 47 <template v-slot:header>
48 <view class="slot-box"> 48 <view class="slot-box">
49 <image class="slot-image" mode="widthFix"></image> 49 <image class="slot-image" mode="widthFix"></image>
50 </view> 50 </view>
51 </template> 51 </template>
52 </uni-list-item> 52 </uni-list-item>
53 53 <uni-list-item :border="false" title="我的培训" showArrow clickable
54 <!-- <uni-list-item :border="false" title="我的赛事" showArrow :to="`./match`"> 54 @click="goPath('/myCenter/mytrain/mytrain')">
55 <template v-slot:header> 55 <template v-slot:header>
56 <view class="slot-box"> 56 <view class="slot-box">
57 <image class="slot-image" src="/static/user_icon04.png" mode="widthFix"></image> 57 <image class="slot-image" mode="widthFix"></image>
58 </view> 58 </view>
59 </template> 59 </template>
60 </uni-list-item> --> 60 </uni-list-item>
61 </uni-list> 61
62 </view> 62 <!-- <uni-list-item :border="false" title="我的赛事" showArrow :to="`./match`">
63 63 <template v-slot:header>
64 </view> 64 <view class="slot-box">
65 </template> 65 <image class="slot-image" src="/static/user_icon04.png" mode="widthFix"></image>
66 66 </view>
67 <script setup> 67 </template>
68 import * as my from '@/myCenter/center_api.js'; 68 </uni-list-item> -->
69 import * as loginServer from '@/common/login.js'; 69 </uni-list>
70 import { ref } from 'vue'; 70 </view>
71 import { onLoad, onShow } from '@dcloudio/uni-app'; 71
72 72 </view>
73 const user = ref({}); 73 </template>
74 const app = getApp(); 74
75 75 <script setup>
76 onShow(() => { 76 import * as my from '@/myCenter/center_api.js';
77 if (app.globalData.isLogin) { 77 import * as loginServer from '@/common/login.js';
78 init(); 78 import {
79 } else { 79 onMounted,
80 app.firstLoadCallback = () => { 80 ref
81 init(); 81 } from 'vue';
82 }; 82 import {
83 } 83 onLoad,
84 }); 84 onShow
85 function init() { 85 } from '@dcloudio/uni-app';
86 console.log(app.globalData.isLogin) 86
87 if(app.globalData.userInfo){ 87 const user = ref({});
88 const currUser = app.globalData.userInfo 88 const app = getApp();
89 user.value = currUser; 89 const isShow = ref(false)
90 } else { 90
91 loginServer.getInfo().then(res=>{ 91 onMounted(() => {
92 const currUser = app.globalData.userInfo 92 init()
93 user.value = currUser 93 })
94 }) 94
95 } 95 function init() {
96 } 96 if (app.globalData.isLogin) {
97 97 isShow.value = true
98 function goBack() { 98 if (app.globalData.userInfo) {
99 uni.navigateBack({}); 99 const currUser = app.globalData.userInfo
100 } 100 user.value = currUser;
101 // function goQcode() { 101 } else {
102 // uni.scanCode({ 102 loginServer.getInfo().then(res => {
103 // onlyFromCamera: true, 103 const currUser = app.globalData.userInfo
104 // success: function(res) { 104 user.value = currUser
105 // console.log('条码类型:' + res.scanType); 105 })
106 // console.log('条码内容:' + res.result); 106 }
107 // api.scanQrCode(res.result).then(res => { 107 } else {
108 // uni.showModal({ 108 uni.redirectTo({
109 // title: '提示', 109 url: '/pages/index/login?path=' + encodeURIComponent(getCurrentPages()[0].$page.fullPath)
110 // content: res.msg, 110 })
111 // success: function(res) { 111 }
112 // if (res.confirm) { 112 }
113 // console.log('确定'); 113
114 // } else if (res.cancel) { 114 function goBack() {
115 // console.log('取消'); 115 uni.navigateBack({});
116 // } 116 }
117 // } 117 // function goQcode() {
118 // }); 118 // uni.scanCode({
119 // }); 119 // onlyFromCamera: true,
120 // } 120 // success: function(res) {
121 // }); 121 // console.log('条码类型:' + res.scanType);
122 // } 122 // console.log('条码内容:' + res.result);
123 function building() { 123 // api.scanQrCode(res.result).then(res => {
124 uni.showToast({ 124 // uni.showModal({
125 title: '暂未开放,敬请期待。', 125 // title: '提示',
126 icon: 'none', 126 // content: res.msg,
127 duration: 2000 127 // success: function(res) {
128 }); 128 // if (res.confirm) {
129 } 129 // console.log('确定');
130 function goPath(path) { 130 // } else if (res.cancel) {
131 if(path) 131 // console.log('取消');
132 uni.navigateTo({ 132 // }
133 url: path 133 // }
134 }); 134 // });
135 } 135 // });
136 </script> 136 // }
137 137 // });
138 <style scoped lang="scss"> 138 // }
139 .box { 139 function building() {
140 width: 100vw; 140 uni.showToast({
141 overflow: hidden; 141 title: '暂未开放,敬请期待。',
142 } 142 icon: 'none',
143 .rMainBox { 143 duration: 2000
144 box-sizing: border-box; 144 });
145 padding: 20rpx 25rpx 0; 145 }
146 margin: 25rpx; 146
147 } 147 function goPath(path) {
148 .userInfoBox { 148 if (path)
149 height: 200rpx; 149 uni.navigateTo({
150 } 150 url: path
151 .nameBox { 151 });
152 position: absolute; 152 }
153 left: 180rpx; 153 </script>
154 top: 70rpx; 154
155 font-size: 30rpx; 155 <style scoped lang="scss">
156 } 156 .box {
157 .nameBox view { 157 width: 100vw;
158 color: #7b7f83; 158 overflow: hidden;
159 font-size: 26rpx; 159 }
160 margin-top: 10rpx; 160
161 } 161 .rMainBox {
162 .goback { 162 box-sizing: border-box;
163 position: absolute; 163 padding: 20rpx 25rpx 0;
164 color: #fff; 164 margin: 25rpx;
165 top: 100rpx; 165 }
166 left: 35rpx; 166
167 } 167 .userInfoBox {
168 .forAdmin { 168 height: 200rpx;
169 padding: 25rpx; 169 }
170 box-sizing: border-box; 170
171 } 171 .nameBox {
172 .topBg { 172 position: absolute;
173 } 173 left: 180rpx;
174 .onlyCardBottom { 174 top: 70rpx;
175 position: relative; 175 font-size: 30rpx;
176 width: 660rpx; 176 }
177 margin: auto; 177
178 height: 90rpx; 178 .nameBox view {
179 .bbg { 179 color: #7b7f83;
180 height: 90rpx; 180 font-size: 26rpx;
181 width: 660rpx; 181 margin-top: 10rpx;
182 } 182 }
183 .cardBottom { 183
184 width: 660rpx; 184 .goback {
185 background: transparent; 185 position: absolute;
186 height: 90rpx; 186 color: #fff;
187 text { 187 top: 100rpx;
188 font-size: 28rpx; 188 left: 35rpx;
189 color: #925921; 189 }
190 } 190
191 .renewBtn { 191 .forAdmin {
192 background: #874f02; 192 padding: 25rpx;
193 color: #fff; 193 box-sizing: border-box;
194 } 194 }
195 } 195
196 } 196 .topBg {}
197 .headImg { 197
198 border-radius: 50%; 198 .onlyCardBottom {
199 position: relative; 199 position: relative;
200 top: 50rpx; 200 width: 660rpx;
201 overflow: hidden; 201 margin: auto;
202 width: 100rpx; 202 height: 90rpx;
203 height: 100rpx; 203
204 border: 4px solid #ffffff; 204 .bbg {
205 background: #c4f9cb; 205 height: 90rpx;
206 left: 40rpx; 206 width: 660rpx;
207 button { 207 }
208 display: block; 208
209 padding: 0; 209 .cardBottom {
210 } 210 width: 660rpx;
211 image { 211 background: transparent;
212 width: 100rpx; 212 height: 90rpx;
213 height: 100rpx; 213
214 display: block; 214 text {
215 } 215 font-size: 28rpx;
216 } 216 color: #925921;
217 217 }
218 .slot-image { 218
219 width: 50rpx; 219 .renewBtn {
220 position: relative; 220 background: #874f02;
221 top: -8rpx; 221 color: #fff;
222 height: 50rpx; 222 }
223 margin-right: 30rpx; 223 }
224 } 224 }
225 225
226 .myList { 226 .headImg {
227 } 227 border-radius: 50%;
228 .funcBar { 228 position: relative;
229 display: flex; 229 top: 50rpx;
230 background: #fff; 230 overflow: hidden;
231 width: 700rpx; 231 width: 100rpx;
232 height: 140rpx; 232 height: 100rpx;
233 justify-content: space-around; 233 border: 4px solid #ffffff;
234 } 234 background: #c4f9cb;
235 .funcBar view { 235 left: 40rpx;
236 display: flex; 236
237 align-items: center; 237 button {
238 font-size: 36rpx; 238 display: block;
239 } 239 padding: 0;
240 .funcBar image { 240 }
241 width: 80rpx; 241
242 height: 80rpx; 242 image {
243 } 243 width: 100rpx;
244 .topbgimg { 244 height: 100rpx;
245 width: 100vw; 245 display: block;
246 position: absolute; 246 }
247 z-index: -1; 247 }
248 } 248
249 .reportItembox { 249 .slot-image {
250 overflow: hidden; 250 width: 50rpx;
251 display: flex; 251 position: relative;
252 flex-wrap: wrap; 252 top: -8rpx;
253 justify-content: space-between; 253 height: 50rpx;
254 } 254 margin-right: 30rpx;
255 .reportItem { 255 }
256 background: #fff; 256
257 border-radius: 15rpx; 257 .myList {}
258 width: 340rpx; 258
259 margin-top: 25rpx; 259 .funcBar {
260 .t { 260 display: flex;
261 border-bottom: 1px solid #e5e5e5; 261 background: #fff;
262 height: 70rpx; 262 width: 700rpx;
263 line-height: 70rpx; 263 height: 140rpx;
264 color: #2b3133; 264 justify-content: space-around;
265 font-size: 30rpx; 265 }
266 padding-left: 36rpx; 266
267 } 267 .funcBar view {
268 .rbody { 268 display: flex;
269 display: flex; 269 align-items: center;
270 padding: 36rpx; 270 font-size: 36rpx;
271 box-sizing: border-box; 271 }
272 view { 272
273 font-size: 26rpx; 273 .funcBar image {
274 color: #888; 274 width: 80rpx;
275 width: 40%; 275 height: 80rpx;
276 } 276 }
277 text { 277
278 color: #00c176; 278 .topbgimg {
279 font-weight: bold; 279 width: 100vw;
280 font-size: 36rpx; 280 position: absolute;
281 display: block; 281 z-index: -1;
282 margin-bottom: 20rpx; 282 }
283 } 283
284 } 284 .reportItembox {
285 } 285 overflow: hidden;
286 .changephonepop { 286 display: flex;
287 width: 100%; 287 flex-wrap: wrap;
288 } 288 justify-content: space-between;
289 .changephonepop view { 289 }
290 width: 100%; 290
291 margin: 0 0 30rpx; 291 .reportItem {
292 } 292 background: #fff;
293 .changephonepop view input { 293 border-radius: 15rpx;
294 width: 100%; 294 width: 340rpx;
295 background: #f4f4f4; 295 margin-top: 25rpx;
296 font-size: 30rpx; 296
297 height: 80rpx; 297 .t {
298 padding: 0 15rpx; 298 border-bottom: 1px solid #e5e5e5;
299 box-sizing: border-box; 299 height: 70rpx;
300 line-height: 80rpx; 300 line-height: 70rpx;
301 } 301 color: #2b3133;
302 .changephonepop view.ffff { 302 font-size: 30rpx;
303 display: flex; 303 padding-left: 36rpx;
304 } 304 }
305 .changephonepop view button { 305
306 font-size: 24rpx; 306 .rbody {
307 margin-left: 10rpx; 307 display: flex;
308 white-space: nowrap; 308 padding: 36rpx;
309 width: 260rpx; 309 box-sizing: border-box;
310 line-height: 80rpx; 310
311 background: linear-gradient(90deg, #00c176, #3ed89b); 311 view {
312 color: #fff; 312 font-size: 26rpx;
313 padding: 0; 313 color: #888;
314 border: none; 314 width: 40%;
315 } 315 }
316 </style> 316
317 text {
318 color: #00c176;
319 font-weight: bold;
320 font-size: 36rpx;
321 display: block;
322 margin-bottom: 20rpx;
323 }
324 }
325 }
326
327 .changephonepop {
328 width: 100%;
329 }
330
331 .changephonepop view {
332 width: 100%;
333 margin: 0 0 30rpx;
334 }
335
336 .changephonepop view input {
337 width: 100%;
338 background: #f4f4f4;
339 font-size: 30rpx;
340 height: 80rpx;
341 padding: 0 15rpx;
342 box-sizing: border-box;
343 line-height: 80rpx;
344 }
345
346 .changephonepop view.ffff {
347 display: flex;
348 }
349
350 .changephonepop view button {
351 font-size: 24rpx;
352 margin-left: 10rpx;
353 white-space: nowrap;
354 width: 260rpx;
355 line-height: 80rpx;
356 background: linear-gradient(90deg, #00c176, #3ed89b);
357 color: #fff;
358 padding: 0;
359 border: none;
360 }
361 </style>
...\ No newline at end of file ...\ No newline at end of file
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!