134cad71 by 张猛

会员认证

1 parent d71abcc3
...@@ -35,29 +35,29 @@ ...@@ -35,29 +35,29 @@
35 </template> 35 </template>
36 36
37 <script setup> 37 <script setup>
38 import { 38 import {
39 ref 39 ref
40 } from 'vue' 40 } from 'vue'
41 import { 41 import {
42 onLoad 42 onLoad
43 } from '@dcloudio/uni-app' 43 } from '@dcloudio/uni-app'
44 import to from 'await-to-js' 44 import to from 'await-to-js'
45 import * as api from '@/common/api.js' 45 import * as api from '@/common/api.js'
46 46
47 const orderInfo = ref({ 47 const orderInfo = ref({
48 orderId: '', 48 orderId: '',
49 tradeNo: '', 49 tradeNo: '',
50 merchantName: '中国跆拳道协会', 50 merchantName: '中国跆拳道协会',
51 price: '' 51 price: ''
52 }) 52 })
53 53
54 const goBack = () => { 54 const goBack = () => {
55 uni.reLaunch({ 55 uni.reLaunch({
56 url: '/myCenter/auth' 56 url: '/pages/index/home'
57 }) 57 })
58 } 58 }
59 59
60 onLoad(async (option) => { 60 onLoad(async (option) => {
61 // if (option.orderId) { 61 // if (option.orderId) {
62 // const [err, res] = await to(api.getOrderInfo(option.orderId)) 62 // const [err, res] = await to(api.getOrderInfo(option.orderId))
63 // if (!err && res.data) { 63 // if (!err && res.data) {
...@@ -66,12 +66,12 @@ ...@@ -66,12 +66,12 @@
66 // orderInfo.value.orderId = option.orderId 66 // orderInfo.value.orderId = option.orderId
67 // } 67 // }
68 // } 68 // }
69 }) 69 })
70 </script> 70 </script>
71 71
72 <style scoped> 72 <style scoped>
73 /* 全局容器 */ 73 /* 全局容器 */
74 .success-container { 74 .success-container {
75 display: flex; 75 display: flex;
76 flex-direction: column; 76 flex-direction: column;
77 align-items: center; 77 align-items: center;
...@@ -79,16 +79,16 @@ ...@@ -79,16 +79,16 @@
79 min-height: 100vh; 79 min-height: 100vh;
80 background-color: #f8f9fa; 80 background-color: #f8f9fa;
81 box-sizing: border-box; 81 box-sizing: border-box;
82 } 82 }
83 83
84 /* 成功图标容器 */ 84 /* 成功图标容器 */
85 .success-icon { 85 .success-icon {
86 margin-bottom: 40rpx; 86 margin-bottom: 40rpx;
87 animation: fadeIn 0.6s ease-out; 87 animation: fadeIn 0.6s ease-out;
88 } 88 }
89 89
90 /* 渐变圆形背景 */ 90 /* 渐变圆形背景 */
91 .icon-circle { 91 .icon-circle {
92 width: 180rpx; 92 width: 180rpx;
93 height: 180rpx; 93 height: 180rpx;
94 border-radius: 50%; 94 border-radius: 50%;
...@@ -100,34 +100,34 @@ ...@@ -100,34 +100,34 @@
100 box-shadow: 0 8rpx 30rpx rgba(6, 193, 174, 0.3); 100 box-shadow: 0 8rpx 30rpx rgba(6, 193, 174, 0.3);
101 /* 轻微上浮动效 */ 101 /* 轻微上浮动效 */
102 animation: scaleIn 0.8s ease-out; 102 animation: scaleIn 0.8s ease-out;
103 } 103 }
104 104
105 /* 对勾图标 */ 105 /* 对勾图标 */
106 .check-icon { 106 .check-icon {
107 font-size: 90rpx; 107 font-size: 90rpx;
108 color: #ffffff; 108 color: #ffffff;
109 font-weight: bold; 109 font-weight: bold;
110 } 110 }
111 111
112 /* 支付成功标题 */ 112 /* 支付成功标题 */
113 .success-title { 113 .success-title {
114 font-size: 48rpx; 114 font-size: 48rpx;
115 font-weight: 700; 115 font-weight: 700;
116 color: #333333; 116 color: #333333;
117 margin-bottom: 12rpx; 117 margin-bottom: 12rpx;
118 animation: slideUp 0.6s ease-out; 118 animation: slideUp 0.6s ease-out;
119 } 119 }
120 120
121 /* 副标题 */ 121 /* 副标题 */
122 .success-subtitle { 122 .success-subtitle {
123 font-size: 28rpx; 123 font-size: 28rpx;
124 color: #666666; 124 color: #666666;
125 margin-bottom: 60rpx; 125 margin-bottom: 60rpx;
126 animation: slideUp 0.8s ease-out; 126 animation: slideUp 0.8s ease-out;
127 } 127 }
128 128
129 /* 订单信息卡片 */ 129 /* 订单信息卡片 */
130 .info-card { 130 .info-card {
131 width: 100%; 131 width: 100%;
132 background: #ffffff; 132 background: #ffffff;
133 border-radius: 20rpx; 133 border-radius: 20rpx;
...@@ -135,55 +135,55 @@ ...@@ -135,55 +135,55 @@
135 box-shadow: 0 6rpx 20rpx rgba(0, 0, 0, 0.05); 135 box-shadow: 0 6rpx 20rpx rgba(0, 0, 0, 0.05);
136 margin-bottom: 80rpx; 136 margin-bottom: 80rpx;
137 animation: fadeIn 1s ease-out; 137 animation: fadeIn 1s ease-out;
138 } 138 }
139 139
140 /* 单个信息项 */ 140 /* 单个信息项 */
141 .info-item { 141 .info-item {
142 display: flex; 142 display: flex;
143 justify-content: space-between; 143 justify-content: space-between;
144 align-items: center; 144 align-items: center;
145 padding: 24rpx 0; 145 padding: 24rpx 0;
146 border-bottom: 1rpx solid #f5f5f5; 146 border-bottom: 1rpx solid #f5f5f5;
147 } 147 }
148 148
149 /* 最后一项去掉下划线 */ 149 /* 最后一项去掉下划线 */
150 .info-item:last-child { 150 .info-item:last-child {
151 border-bottom: none; 151 border-bottom: none;
152 } 152 }
153 153
154 /* 标签样式 */ 154 /* 标签样式 */
155 .label { 155 .label {
156 font-size: 32rpx; 156 font-size: 32rpx;
157 color: #666666; 157 color: #666666;
158 white-space: nowrap; 158 white-space: nowrap;
159 margin-right: 20rpx; 159 margin-right: 20rpx;
160 flex-shrink: 0; 160 flex-shrink: 0;
161 } 161 }
162 162
163 /* 值样式 */ 163 /* 值样式 */
164 .value { 164 .value {
165 font-size: 32rpx; 165 font-size: 32rpx;
166 color: #333333; 166 color: #333333;
167 text-align: right; 167 text-align: right;
168 word-break: break-all; 168 word-break: break-all;
169 word-wrap: break-word; 169 word-wrap: break-word;
170 } 170 }
171 171
172 /* 金额特殊样式 */ 172 /* 金额特殊样式 */
173 .amount { 173 .amount {
174 color: #cd1e27; 174 color: #cd1e27;
175 font-weight: 600; 175 font-weight: 600;
176 } 176 }
177 177
178 /* 确定按钮区域 */ 178 /* 确定按钮区域 */
179 .confirm-btn-area { 179 .confirm-btn-area {
180 width: 100%; 180 width: 100%;
181 padding: 0 20rpx; 181 padding: 0 20rpx;
182 box-sizing: border-box; 182 box-sizing: border-box;
183 } 183 }
184 184
185 /* 确定按钮(渐变+动效) */ 185 /* 确定按钮(渐变+动效) */
186 .confirm-btn { 186 .confirm-btn {
187 width: 100%; 187 width: 100%;
188 height: 90rpx; 188 height: 90rpx;
189 line-height: 90rpx; 189 line-height: 90rpx;
...@@ -198,20 +198,20 @@ ...@@ -198,20 +198,20 @@
198 /* 禁止默认样式 */ 198 /* 禁止默认样式 */
199 position: relative; 199 position: relative;
200 overflow: hidden; 200 overflow: hidden;
201 } 201 }
202 202
203 /* 按钮点击反馈 */ 203 /* 按钮点击反馈 */
204 .confirm-btn::after { 204 .confirm-btn::after {
205 border: none; 205 border: none;
206 } 206 }
207 207
208 .confirm-btn:active { 208 .confirm-btn:active {
209 transform: scale(0.98); 209 transform: scale(0.98);
210 box-shadow: 0 4rpx 10rpx rgba(6, 193, 174, 0.2); 210 box-shadow: 0 4rpx 10rpx rgba(6, 193, 174, 0.2);
211 } 211 }
212 212
213 /* 动画定义 */ 213 /* 动画定义 */
214 @keyframes fadeIn { 214 @keyframes fadeIn {
215 0% { 215 0% {
216 opacity: 0; 216 opacity: 0;
217 } 217 }
...@@ -219,9 +219,9 @@ ...@@ -219,9 +219,9 @@
219 100% { 219 100% {
220 opacity: 1; 220 opacity: 1;
221 } 221 }
222 } 222 }
223 223
224 @keyframes scaleIn { 224 @keyframes scaleIn {
225 0% { 225 0% {
226 transform: scale(0); 226 transform: scale(0);
227 } 227 }
...@@ -233,9 +233,9 @@ ...@@ -233,9 +233,9 @@
233 100% { 233 100% {
234 transform: scale(1); 234 transform: scale(1);
235 } 235 }
236 } 236 }
237 237
238 @keyframes slideUp { 238 @keyframes slideUp {
239 0% { 239 0% {
240 opacity: 0; 240 opacity: 0;
241 transform: translateY(30rpx); 241 transform: translateY(30rpx);
...@@ -245,5 +245,5 @@ ...@@ -245,5 +245,5 @@
245 opacity: 1; 245 opacity: 1;
246 transform: translateY(0); 246 transform: translateY(0);
247 } 247 }
248 } 248 }
249 </style> 249 </style>
......
...@@ -22,16 +22,20 @@ ...@@ -22,16 +22,20 @@
22 </view> 22 </view>
23 <view class="unit-member-box"> 23 <view class="unit-member-box">
24 <view class="unit-btn" @click="goPath('/myCenter/auth')"> 24 <view class="unit-btn" @click="goPath('/myCenter/auth')">
25 <image :src="config.loginImage_api + '/fs/static/dg/icon02@3x.png'" class="btn-icon"></image><text>基本信息</text> 25 <image :src="config.loginImage_api + '/fs/static/dg/icon02@3x.png'" class="btn-icon"></image>
26 <text>基本信息</text>
26 </view> 27 </view>
27 <view class="unit-btn" @click="goPath('/myCenter/perfect')"> 28 <view class="unit-btn" @click="goPath('/myCenter/perfect')">
28 <image :src="config.loginImage_api + '/fs/static/dg/icon03@3x.png'" class="btn-icon"></image><text>认证缴费</text> 29 <image :src="config.loginImage_api + '/fs/static/dg/icon03@3x.png'" class="btn-icon"></image>
30 <text>认证缴费</text>
29 </view> 31 </view>
30 <view class="unit-btn" @click="goPath('/myCenter/reviewList')"> 32 <view class="unit-btn" @click="goPath('/myCenter/reviewList')">
31 <image :src="config.loginImage_api + '/fs/static/dg/icon04@3x.png'" class="btn-icon"></image><text>认证详情</text> 33 <image :src="config.loginImage_api + '/fs/static/dg/icon04@3x.png'" class="btn-icon"></image>
34 <text>认证详情</text>
32 </view> 35 </view>
33 <view class="unit-btn " @click="goPath('/myCenter/examPointApplyList')"> 36 <view class="unit-btn " @click="goPath('/myCenter/examPointApplyList')">
34 <image :src="config.loginImage_api + '/fs/static/dg/icon05@3x.png'" class="btn-icon"></image><text>考点申请</text> 37 <image :src="config.loginImage_api + '/fs/static/dg/icon05@3x.png'" class="btn-icon"></image>
38 <text>考点申请</text>
35 </view> 39 </view>
36 <!-- <view class="unit-btn mt-20" @click="goPath('/myCenter/examPointApplyList')"> 40 <!-- <view class="unit-btn mt-20" @click="goPath('/myCenter/examPointApplyList')">
37 <image :src="config.loginImage_api + '/fs/static/dg/icon06@3x.png'" class="btn-icon"></image><text>考点详情</text> 41 <image :src="config.loginImage_api + '/fs/static/dg/icon06@3x.png'" class="btn-icon"></image><text>考点详情</text>
...@@ -42,38 +46,54 @@ ...@@ -42,38 +46,54 @@
42 </view> 46 </view>
43 </view> 47 </view>
44 <view class="section personal-section"> 48 <view class="section personal-section">
45 <view class="flex f-a-c"><text class="title-border"></text> 49 <view class="flex f-a-c">
46 <text class="section-title">个人会员</text></view> 50 <text class="title-border"></text>
51 <text class="section-title">个人会员</text>
52 </view>
47 <view class="personal-member-box"> 53 <view class="personal-member-box">
48 <view class="personal-btn" @click="goPath('/personalVip/addVip')"> 54 <view class="personal-btn" @click="goPath('/personalVip/addVip')">
49 <image :src="config.loginImage_api + '/fs/static/dg/home_btn01@3x.png'" class="circle-icon"></image><text>添加会员</text> 55 <image :src="config.loginImage_api + '/fs/static/dg/home_btn01@3x.png'" class="circle-icon"></image>
56 <text>添加会员</text>
50 </view> 57 </view>
51 <view class="personal-btn" @click="goPath('/personalVip/payment')"> 58 <view class="personal-btn" @click="goPath('/personalVip/payment')">
52 <image :src="config.loginImage_api + '/fs/static/dg/home_btn02@3x.png'" class="circle-icon"></image><text>会员缴费</text> 59 <image :src="config.loginImage_api + '/fs/static/dg/home_btn02@3x.png'" class="circle-icon"></image>
60 <text>会员缴费</text>
53 </view> 61 </view>
54 <view class="personal-btn" @click="goPath('/personalVip/list')"> 62 <view class="personal-btn" @click="goPath('/personalVip/list')">
55 <image :src="config.loginImage_api + '/fs/static/dg/home_btn03@3x.png'" class="circle-icon"></image><text>会员查询</text> 63 <image :src="config.loginImage_api + '/fs/static/dg/home_btn03@3x.png'" class="circle-icon"></image>
64 <text>会员查询</text>
56 </view> 65 </view>
57 <view class="personal-btn" @click="goPath('/personalVip/mobilize')"> 66 <view class="personal-btn" @click="goPath('/personalVip/mobilize')">
58 <image :src="config.loginImage_api + '/fs/static/dg/btn04@3x.png'" class="circle-icon"></image><text>会员调动</text> 67 <image :src="config.loginImage_api + '/fs/static/dg/btn04@3x.png'" class="circle-icon"></image>
68 <text>会员调动</text>
59 </view> 69 </view>
60 </view> 70 </view>
61 </view> 71 </view>
62 <view class="section level-section"> 72 <view class="section level-section">
63 <view class="flex f-a-c"><text class="title-border"></text> 73 <view class="flex f-a-c">
64 <text class="section-title">级位管理</text></view> 74 <text class="title-border"></text>
75 <text class="section-title">级位管理</text>
76 </view>
65 <view class="level-list"> 77 <view class="level-list">
66 <view class="level-item" @click="goPath('/level/apply')"> 78 <view class="level-item" @click="goPath('/level/apply')">
67 <image :src="config.loginImage_api + '/fs/static/dg/icon07@3x.png'" class="level-icon"></image><text>级位考试</text><view class="arrow"></view> 79 <image :src="config.loginImage_api + '/fs/static/dg/icon07@3x.png'" class="level-icon"></image>
80 <text>级位考试</text>
81 <view class="arrow"></view>
68 </view> 82 </view>
69 <view class="level-item" @click="goPath('/personalVip/changeLevel')"> 83 <view class="level-item" @click="goPath('/personalVip/changeLevel')">
70 <image :src="config.loginImage_api + '/fs/static/dg/icon08@3x.png'" class="level-icon"></image><text>级位变更</text><view class="arrow"></view> 84 <image :src="config.loginImage_api + '/fs/static/dg/icon08@3x.png'" class="level-icon"></image>
85 <text>级位变更</text>
86 <view class="arrow"></view>
71 </view> 87 </view>
72 <view class="level-item" @click="goPath('/pages/index/msgList')"> 88 <view class="level-item" @click="goPath('/pages/index/msgList')">
73 <image :src="config.loginImage_api + '/fs/static/dg/icon09@3x.png'" class="level-icon"></image><text>通知公告</text><view class="arrow"></view> 89 <image :src="config.loginImage_api + '/fs/static/dg/icon09@3x.png'" class="level-icon"></image>
90 <text>通知公告</text>
91 <view class="arrow"></view>
74 </view> 92 </view>
75 <view class="level-item" @click="goPath('/myCenter/order?type=2')"> 93 <view class="level-item" @click="goPath('/myCenter/order?type=2')">
76 <image :src="config.loginImage_api + '/fs/static/dg/icon10@3x.png'" class="level-icon"></image><text>我的订单</text><view class="arrow"></view> 94 <image :src="config.loginImage_api + '/fs/static/dg/icon10@3x.png'" class="level-icon"></image>
95 <text>我的订单</text>
96 <view class="arrow"></view>
77 </view> 97 </view>
78 </view> 98 </view>
79 </view> 99 </view>
...@@ -490,24 +510,27 @@ ...@@ -490,24 +510,27 @@
490 </view> 510 </view>
491 511
492 <!-- 绑定手机号弹框 --> 512 <!-- 绑定手机号弹框 -->
493 <uni-popup ref="bindingPhonePopup" type="center" :mask-click="false"> 513 <uni-popup ref="bindingPhonePopup" :mask-click="false" type="center">
494 <view class="dialog-wrapper"> 514 <view class="dialog-wrapper">
495 <view class="dialog-close" @click="closeBindingPhoneDialog"></view> 515 <view class="dialog-close" @click="closeBindingPhoneDialog"></view>
496 <view class="dialog-icon"> 516 <view class="dialog-icon">
497 <uni-icons type="phone" size="48" color="#AD181F"></uni-icons> 517 <uni-icons color="#AD181F" size="48" type="phone"></uni-icons>
498 </view> 518 </view>
499 <view class="dialog-title">绑定手机号</view> 519 <view class="dialog-title">绑定手机号</view>
500 <view class="dialog-content"> 520 <view class="dialog-content">
501 <view class="form-item"> 521 <view class="form-item">
502 <input class="form-input" v-model="bindingForm.phone" placeholder="请输入手机号" maxlength="11" type="number" /> 522 <input v-model="bindingForm.phone" class="form-input" maxlength="11" placeholder="请输入手机号"
523 type="number"/>
503 </view> 524 </view>
504 <view class="form-item captcha-row"> 525 <view class="form-item captcha-row">
505 <input class="form-input captcha-input" v-model="bindingForm.captcha" placeholder="图形验证码" maxlength="4" /> 526 <input v-model="bindingForm.captcha" class="form-input captcha-input" maxlength="4"
506 <image class="captcha-img" :src="captchaUrl" @click="refreshCaptcha" mode="aspectFit"></image> 527 placeholder="图形验证码"/>
528 <image :src="captchaUrl" class="captcha-img" mode="aspectFit" @click="refreshCaptcha"></image>
507 </view> 529 </view>
508 <view class="form-item captcha-row"> 530 <view class="form-item captcha-row">
509 <input class="form-input sms-input" v-model="bindingForm.code" placeholder="短信验证码" maxlength="6" type="number" /> 531 <input v-model="bindingForm.code" class="form-input sms-input" maxlength="6" placeholder="短信验证码"
510 <button class="sms-btn" :disabled="smsCountdown > 0" @click="sendSmsCode"> 532 type="number"/>
533 <button :disabled="smsCountdown > 0" class="sms-btn" @click="sendSmsCode">
511 {{ smsCountdown > 0 ? smsCountdown + 's' : '获取验证码' }} 534 {{ smsCountdown > 0 ? smsCountdown + 's' : '获取验证码' }}
512 </button> 535 </button>
513 </view> 536 </view>
...@@ -520,11 +543,11 @@ ...@@ -520,11 +543,11 @@
520 </uni-popup> 543 </uni-popup>
521 544
522 <!-- 申请成为考点弹框 --> 545 <!-- 申请成为考点弹框 -->
523 <uni-popup ref="examPointPopup" type="center" :mask-click="false"> 546 <uni-popup ref="examPointPopup" :mask-click="false" type="center">
524 <view class="dialog-wrapper exam-dialog"> 547 <view class="dialog-wrapper exam-dialog">
525 <view class="dialog-close" @click="closeExamPointDialog"></view> 548 <view class="dialog-close" @click="closeExamPointDialog"></view>
526 <view class="dialog-icon success-icon"> 549 <view class="dialog-icon success-icon">
527 <uni-icons type="checkmark" size="48" color="#29c490"></uni-icons> 550 <uni-icons color="#29c490" size="48" type="checkmark"></uni-icons>
528 </view> 551 </view>
529 <view class="dialog-title">申请成为考点</view> 552 <view class="dialog-title">申请成为考点</view>
530 <view class="dialog-message"> 553 <view class="dialog-message">
...@@ -547,6 +570,7 @@ ...@@ -547,6 +570,7 @@
547 import * as api from '@/common/api.js'; 570 import * as api from '@/common/api.js';
548 import * as loginServer from '@/common/login.js'; 571 import * as loginServer from '@/common/login.js';
549 import config from '@/config.js' 572 import config from '@/config.js'
573 import {getInfo} from '@/common/login'
550 import { 574 import {
551 onLoad, 575 onLoad,
552 onShow, 576 onShow,
...@@ -830,15 +854,15 @@ function sendSmsCode() { ...@@ -830,15 +854,15 @@ function sendSmsCode() {
830 const phone = bindingForm.value.phone 854 const phone = bindingForm.value.phone
831 const strTemp = /^1[2|3|4|5|6|7|8|9][0-9]{9}$/ 855 const strTemp = /^1[2|3|4|5|6|7|8|9][0-9]{9}$/
832 if (!phone) { 856 if (!phone) {
833 uni.showToast({ title: '请输入手机号', icon: 'none' }) 857 uni.showToast({title: '请输入手机号', icon: 'none'})
834 return 858 return
835 } 859 }
836 if (!strTemp.test(phone)) { 860 if (!strTemp.test(phone)) {
837 uni.showToast({ title: '请输入正确的手机号', icon: 'none' }) 861 uni.showToast({title: '请输入正确的手机号', icon: 'none'})
838 return 862 return
839 } 863 }
840 if (!bindingForm.value.captcha) { 864 if (!bindingForm.value.captcha) {
841 uni.showToast({ title: '请输入图形验证码', icon: 'none' }) 865 uni.showToast({title: '请输入图形验证码', icon: 'none'})
842 return 866 return
843 } 867 }
844 api.getSmsCode({ 868 api.getSmsCode({
...@@ -846,7 +870,7 @@ function sendSmsCode() { ...@@ -846,7 +870,7 @@ function sendSmsCode() {
846 telNo: phone, 870 telNo: phone,
847 captcha: bindingForm.value.captcha 871 captcha: bindingForm.value.captcha
848 }).then(res => { 872 }).then(res => {
849 uni.showToast({ title: '发送成功', icon: 'success' }) 873 uni.showToast({title: '发送成功', icon: 'success'})
850 smsCountdown.value = 60 874 smsCountdown.value = 60
851 smsTimer = setInterval(() => { 875 smsTimer = setInterval(() => {
852 smsCountdown.value-- 876 smsCountdown.value--
...@@ -865,25 +889,25 @@ function closeBindingPhoneDialog() { ...@@ -865,25 +889,25 @@ function closeBindingPhoneDialog() {
865 } 889 }
866 890
867 async function submitBindingPhone() { 891 async function submitBindingPhone() {
868 const { phone, captcha, code, uuid } = bindingForm.value 892 const {phone, captcha, code, uuid} = bindingForm.value
869 if (!phone) { 893 if (!phone) {
870 uni.showToast({ title: '请输入手机号', icon: 'none' }) 894 uni.showToast({title: '请输入手机号', icon: 'none'})
871 return 895 return
872 } 896 }
873 if (!captcha) { 897 if (!captcha) {
874 uni.showToast({ title: '请输入图形验证码', icon: 'none' }) 898 uni.showToast({title: '请输入图形验证码', icon: 'none'})
875 return 899 return
876 } 900 }
877 if (!code) { 901 if (!code) {
878 uni.showToast({ title: '请输入短信验证码', icon: 'none' }) 902 uni.showToast({title: '请输入短信验证码', icon: 'none'})
879 return 903 return
880 } 904 }
881 try { 905 try {
882 await api.editPhone({ phone, captcha, code, uuid }) 906 await api.editPhone({phone, captcha, code, uuid})
883 uni.showToast({ title: '修改成功', icon: 'success' }) 907 uni.showToast({title: '修改成功', icon: 'success'})
884 closeBindingPhoneDialog() 908 closeBindingPhoneDialog()
885 setTimeout(() => { 909 setTimeout(() => {
886 uni.reLaunch({ url: '/pages/index/home' }) 910 uni.reLaunch({url: '/pages/index/home'})
887 }, 1500) 911 }, 1500)
888 } catch (e) { 912 } catch (e) {
889 // 错误已由 request.js 处理 913 // 错误已由 request.js 处理
...@@ -897,11 +921,12 @@ function closeExamPointDialog() { ...@@ -897,11 +921,12 @@ function closeExamPointDialog() {
897 921
898 function goExamPointApply() { 922 function goExamPointApply() {
899 closeExamPointDialog() 923 closeExamPointDialog()
900 uni.navigateTo({ url: '/myCenter/examPointApplyList' }) 924 uni.navigateTo({url: '/myCenter/examPointApplyList'})
901 } 925 }
902 926
903 async function handleNoDisplay() { 927 async function handleNoDisplay() {
904 await api.noDisplay() 928 await api.noDisplay()
929 await getInfo()
905 closeExamPointDialog() 930 closeExamPointDialog()
906 } 931 }
907 932
...@@ -934,9 +959,11 @@ function checkDialogs() { ...@@ -934,9 +959,11 @@ function checkDialogs() {
934 :deep(.uni-section) { 959 :deep(.uni-section) {
935 background-color: transparent !important; 960 background-color: transparent !important;
936 } 961 }
937 .mt-20{ 962
963 .mt-20 {
938 margin-top: -20rpx; 964 margin-top: -20rpx;
939 } 965 }
966
940 .page { 967 .page {
941 width: 100vw; 968 width: 100vw;
942 overflow: hidden; 969 overflow: hidden;
...@@ -954,7 +981,7 @@ function checkDialogs() { ...@@ -954,7 +981,7 @@ function checkDialogs() {
954 } 981 }
955 982
956 .welcome { 983 .welcome {
957 padding: 30rpx ; 984 padding: 30rpx;
958 line-height: 48rpx; 985 line-height: 48rpx;
959 font-size: 32rpx; 986 font-size: 32rpx;
960 987
...@@ -1136,12 +1163,14 @@ function checkDialogs() { ...@@ -1136,12 +1163,14 @@ function checkDialogs() {
1136 1163
1137 1164
1138 } 1165 }
1139 .section-title { 1166
1167 .section-title {
1140 font-size: 32rpx; 1168 font-size: 32rpx;
1141 font-weight: bold; 1169 font-weight: bold;
1142 color: #fff; 1170 color: #fff;
1143 margin-bottom: 20rpx; 1171 margin-bottom: 20rpx;
1144 } 1172 }
1173
1145 .personal-section { 1174 .personal-section {
1146 .personal-member-box { 1175 .personal-member-box {
1147 display: flex; 1176 display: flex;
...@@ -1281,6 +1310,7 @@ function checkDialogs() { ...@@ -1281,6 +1310,7 @@ function checkDialogs() {
1281 border-radius: 16rpx; 1310 border-radius: 16rpx;
1282 padding: 0; 1311 padding: 0;
1283 margin: 0; 1312 margin: 0;
1313
1284 &::after { 1314 &::after {
1285 border: none; 1315 border: none;
1286 } 1316 }
...@@ -1306,6 +1336,7 @@ function checkDialogs() { ...@@ -1306,6 +1336,7 @@ function checkDialogs() {
1306 font-weight: 500; 1336 font-weight: 500;
1307 padding: 0; 1337 padding: 0;
1308 margin: 0; 1338 margin: 0;
1339
1309 &::after { 1340 &::after {
1310 border: none; 1341 border: none;
1311 } 1342 }
......
...@@ -2,17 +2,17 @@ ...@@ -2,17 +2,17 @@
2 <view class="perfect-page"> 2 <view class="perfect-page">
3 <!-- 顶部步骤条 --> 3 <!-- 顶部步骤条 -->
4 <view class="steps-bar"> 4 <view class="steps-bar">
5 <view class="step-item" :class="{ active: activeStep >= 1, current: activeStep == 1 }" @click="switchStep(1)"> 5 <view :class="{ active: activeStep >= 1, current: activeStep == 1 }" class="step-item" @click="switchStep(1)">
6 <view class="step-circle">1</view> 6 <view class="step-circle">1</view>
7 <view class="step-text">完善信息</view> 7 <view class="step-text">完善信息</view>
8 </view> 8 </view>
9 <view class="step-line" :class="{ active: activeStep >= 2 }"></view> 9 <view :class="{ active: activeStep >= 2 }" class="step-line"></view>
10 <view class="step-item" :class="{ active: activeStep >= 2, current: activeStep == 2 }" @click="switchStep(2)"> 10 <view :class="{ active: activeStep >= 2, current: activeStep == 2 }" class="step-item" @click="switchStep(2)">
11 <view class="step-circle">2</view> 11 <view class="step-circle">2</view>
12 <view class="step-text">会员认证</view> 12 <view class="step-text">会员认证</view>
13 </view> 13 </view>
14 <view class="step-line" :class="{ active: activeStep >= 3 }"></view> 14 <view :class="{ active: activeStep >= 3 }" class="step-line"></view>
15 <view class="step-item" :class="{ active: activeStep >= 3, current: activeStep == 3 }" @click="switchStep(3)"> 15 <view :class="{ active: activeStep >= 3, current: activeStep == 3 }" class="step-item" @click="switchStep(3)">
16 <view class="step-circle">3</view> 16 <view class="step-circle">3</view>
17 <view class="step-text">审核详情</view> 17 <view class="step-text">审核详情</view>
18 </view> 18 </view>
...@@ -40,10 +40,11 @@ ...@@ -40,10 +40,11 @@
40 <!-- <text class="logout-text">退出账号</text> --> 40 <!-- <text class="logout-text">退出账号</text> -->
41 </view> 41 </view>
42 <!-- 步骤1:完善信息 --> 42 <!-- 步骤1:完善信息 -->
43 <view class="wBox" v-if="activeStep == 1"> 43 <view v-if="activeStep == 1" class="wBox">
44 <uni-forms ref="baseForm" :modelValue="form" label-width="70"> 44 <uni-forms ref="baseForm" :modelValue="form" label-width="70">
45 <uni-forms-item label="单位名称" required> 45 <uni-forms-item label="单位名称" required>
46 <uni-easyinput class="input-with-border" v-model="form.baseName" :disabled="!editIng" placeholder="单位名称" /> 46 <uni-easyinput v-model="form.baseName" :disabled="!editIng" class="input-with-border"
47 placeholder="单位名称"/>
47 </uni-forms-item> 48 </uni-forms-item>
48 <uni-forms-item label="单位类型" required> 49 <uni-forms-item label="单位类型" required>
49 <view style="width: 100%;"> 50 <view style="width: 100%;">
...@@ -51,13 +52,16 @@ ...@@ -51,13 +52,16 @@
51 </view> 52 </view>
52 </uni-forms-item> 53 </uni-forms-item>
53 <uni-forms-item label="联系人" required> 54 <uni-forms-item label="联系人" required>
54 <uni-easyinput class="input-with-border" v-model="form.contact" :disabled="!editIng" placeholder="请输入联系人姓名" /> 55 <uni-easyinput v-model="form.contact" :disabled="!editIng" class="input-with-border"
56 placeholder="请输入联系人姓名"/>
55 </uni-forms-item> 57 </uni-forms-item>
56 <uni-forms-item label="联系方式" required> 58 <uni-forms-item label="联系方式" required>
57 <uni-easyinput class="input-with-border" v-model="form.phone" :disabled="!editIng" placeholder="请输入联系方式" /> 59 <uni-easyinput v-model="form.phone" :disabled="!editIng" class="input-with-border"
60 placeholder="请输入联系方式"/>
58 </uni-forms-item> 61 </uni-forms-item>
59 <uni-forms-item label="机构介绍" required> 62 <uni-forms-item label="机构介绍" required>
60 <uni-easyinput class="input-with-border" v-model="form.introduce" placeholder="请输入机构介绍" :disabled="!editIng" type='textarea' /> 63 <uni-easyinput v-model="form.introduce" :disabled="!editIng" class="input-with-border"
64 placeholder="请输入机构介绍" type='textarea'/>
61 </uni-forms-item> 65 </uni-forms-item>
62 </uni-forms> 66 </uni-forms>
63 <view class="fixedBottom"> 67 <view class="fixedBottom">
...@@ -66,7 +70,7 @@ ...@@ -66,7 +70,7 @@
66 </view> 70 </view>
67 71
68 <!-- 步骤2:会员认证 --> 72 <!-- 步骤2:会员认证 -->
69 <view class="wBox" v-if="activeStep == 2"> 73 <view v-if="activeStep == 2" class="wBox">
70 <view class="status-box"> 74 <view class="status-box">
71 <view class="status-row"> 75 <view class="status-row">
72 <text class="status-label">认证状态:</text> 76 <text class="status-label">认证状态:</text>
...@@ -87,38 +91,42 @@ ...@@ -87,38 +91,42 @@
87 <uni-forms-item label="选择所属协会" required> 91 <uni-forms-item label="选择所属协会" required>
88 <view class="picker-wrapper"> 92 <view class="picker-wrapper">
89 <uni-data-picker 93 <uni-data-picker
90 class="custom-picker"
91 :disabled="!editIng"
92 v-model="form.parentId" 94 v-model="form.parentId"
93 :localdata="assoList" 95 :disabled="!editIng"
94 :level="3" 96 :level="3"
97 :localdata="assoList"
98 class="custom-picker"
95 popup-title="请选择所属协会" 99 popup-title="请选择所属协会"
96 @change="changCase" 100 @change="changCase"
97 ></uni-data-picker> 101 ></uni-data-picker>
98 </view> 102 </view>
99 </uni-forms-item> 103 </uni-forms-item>
100 <uni-forms-item label="机构名称" required> 104 <uni-forms-item label="机构名称" required>
101 <uni-easyinput class="input-with-border" v-model="form.name" :disabled="!editIng" placeholder="请输入机构名称" /> 105 <uni-easyinput v-model="form.name" :disabled="!editIng" class="input-with-border"
106 placeholder="请输入机构名称"/>
102 </uni-forms-item> 107 </uni-forms-item>
103 <uni-forms-item label="认证地址" required> 108 <uni-forms-item label="认证地址" required>
104 <view class="picker-wrapper"> 109 <view class="picker-wrapper">
105 <uni-data-picker 110 <uni-data-picker
106 class="custom-picker"
107 v-model="coordinates1" 111 v-model="coordinates1"
108 :localdata="regionOptions" 112 :localdata="regionOptions"
113 class="custom-picker"
109 popup-title="请选择所在地区" 114 popup-title="请选择所在地区"
110 @change="changeAddress" 115 @change="changeAddress"
111 ></uni-data-picker> 116 ></uni-data-picker>
112 </view> 117 </view>
113 </uni-forms-item> 118 </uni-forms-item>
114 <uni-forms-item label="认证详细地址" required> 119 <uni-forms-item label="认证详细地址" required>
115 <uni-easyinput class="input-with-border" v-model="form.adress" :disabled="!editIng" placeholder="请输入详细地址" /> 120 <uni-easyinput v-model="form.adress" :disabled="!editIng" class="input-with-border"
121 placeholder="请输入详细地址"/>
116 </uni-forms-item> 122 </uni-forms-item>
117 <uni-forms-item label="联系人" required> 123 <uni-forms-item label="联系人" required>
118 <uni-easyinput class="input-with-border" v-model="form.siteContact" :disabled="!editIng" placeholder="请输入联系人" /> 124 <uni-easyinput v-model="form.siteContact" :disabled="!editIng" class="input-with-border"
125 placeholder="请输入联系人"/>
119 </uni-forms-item> 126 </uni-forms-item>
120 <uni-forms-item label="联系方式" required> 127 <uni-forms-item label="联系方式" required>
121 <uni-easyinput class="input-with-border" v-model="form.siteTel" :disabled="!editIng" placeholder="请输入联系方式" /> 128 <uni-easyinput v-model="form.siteTel" :disabled="!editIng" class="input-with-border"
129 placeholder="请输入联系方式"/>
122 </uni-forms-item> 130 </uni-forms-item>
123 <uni-forms-item label="营业执照" required> 131 <uni-forms-item label="营业执照" required>
124 <view class="upload-box"> 132 <view class="upload-box">
...@@ -126,16 +134,25 @@ ...@@ -126,16 +134,25 @@
126 <image :src="config.baseUrl_api + '/fs/static/yyzz@2x.png'" class="placeholder-img"/> 134 <image :src="config.baseUrl_api + '/fs/static/yyzz@2x.png'" class="placeholder-img"/>
127 </view> 135 </view>
128 <view v-else class="license-preview"> 136 <view v-else class="license-preview">
129 <image :src="getImageUrl(getBusinessLicenseUrl())" class="license-img" @click="previewImage(getImageUrl(getBusinessLicenseUrl()))"></image> 137 <image :src="getImageUrl(getBusinessLicenseUrl())" class="license-img"
130 <view class="delete-btn" v-if="editIng" @click="removeBusinessLicense">×</view> 138 @click="previewImage(getImageUrl(getBusinessLicenseUrl()))"></image>
139 <view v-if="editIng" class="delete-btn" @click="removeBusinessLicense">×</view>
131 </view> 140 </view>
132 </view> 141 </view>
133 </uni-forms-item> 142 </uni-forms-item>
134 <uni-forms-item label="营业执照名称" required> 143 <uni-forms-item label="营业执照名称" required>
135 <uni-easyinput class="input-with-border" v-model="form.companyName" :disabled="!editIng" placeholder="请输入营业执照名称" /> 144 <uni-easyinput v-model="form.companyName" :disabled="!editIng" class="input-with-border"
145 placeholder="请输入营业执照名称"/>
136 </uni-forms-item> 146 </uni-forms-item>
137 <uni-forms-item label="社会信用代码" required> 147 <uni-forms-item label="社会信用代码" required>
138 <uni-easyinput class="input-with-border" v-model="form.creditCode" :disabled="!editIng" placeholder="请输入社会信用代码" @blur="onCreditCodeBlur" /> 148 <uni-easyinput
149 v-model="form.creditCode"
150 :disabled="!editIng"
151 class="input-with-border"
152 placeholder="请输入社会信用代码"
153 @blur="onCreditCodeBlur"
154 @change="onCreditCodeBlur"
155 />
139 </uni-forms-item> 156 </uni-forms-item>
140 <uni-forms-item label="法人身份证" required> 157 <uni-forms-item label="法人身份证" required>
141 <view class="idcard-box"> 158 <view class="idcard-box">
...@@ -144,8 +161,9 @@ ...@@ -144,8 +161,9 @@
144 <image :src="config.baseUrl_api + '/fs/static/sfz_zm@2x.png'" class="placeholder-img"/> 161 <image :src="config.baseUrl_api + '/fs/static/sfz_zm@2x.png'" class="placeholder-img"/>
145 </view> 162 </view>
146 <view v-else class="idcard-preview"> 163 <view v-else class="idcard-preview">
147 <image :src="getImageUrl(form.legalIdcPhoto1)" class="idcard-img" @click="previewImage(getImageUrl(form.legalIdcPhoto1))"></image> 164 <image :src="getImageUrl(form.legalIdcPhoto1)" class="idcard-img"
148 <view class="delete-btn" v-if="editIng" @click="removeIdCardFront">×</view> 165 @click="previewImage(getImageUrl(form.legalIdcPhoto1))"></image>
166 <view v-if="editIng" class="delete-btn" @click="removeIdCardFront">×</view>
149 </view> 167 </view>
150 </view> 168 </view>
151 </view> 169 </view>
...@@ -155,17 +173,20 @@ ...@@ -155,17 +173,20 @@
155 <image :src="config.baseUrl_api + '/fs/static/sfz_fm@2x.png'" class="placeholder-img"/> 173 <image :src="config.baseUrl_api + '/fs/static/sfz_fm@2x.png'" class="placeholder-img"/>
156 </view> 174 </view>
157 <view v-else class="idcard-preview"> 175 <view v-else class="idcard-preview">
158 <image :src="getImageUrl(form.legalIdcPhoto2)" class="idcard-img" @click="previewImage(getImageUrl(form.legalIdcPhoto2))"></image> 176 <image :src="getImageUrl(form.legalIdcPhoto2)" class="idcard-img"
159 <view class="delete-btn" v-if="editIng" @click="removeIdCardBack">×</view> 177 @click="previewImage(getImageUrl(form.legalIdcPhoto2))"></image>
178 <view v-if="editIng" class="delete-btn" @click="removeIdCardBack">×</view>
160 </view> 179 </view>
161 </view> 180 </view>
162 </view> 181 </view>
163 </uni-forms-item> 182 </uni-forms-item>
164 <uni-forms-item label="法人姓名" required> 183 <uni-forms-item label="法人姓名" required>
165 <uni-easyinput class="input-with-border" v-model="form.legal" :disabled="!editIng" placeholder="请输入法人姓名" /> 184 <uni-easyinput v-model="form.legal" :disabled="!editIng" class="input-with-border"
185 placeholder="请输入法人姓名"/>
166 </uni-forms-item> 186 </uni-forms-item>
167 <uni-forms-item label="法人证件号" required> 187 <uni-forms-item label="法人证件号" required>
168 <uni-easyinput class="input-with-border" v-model="form.legalIdcCode" :disabled="!editIng" placeholder="请输入法人证件号" /> 188 <uni-easyinput v-model="form.legalIdcCode" :disabled="!editIng" class="input-with-border"
189 placeholder="请输入法人证件号"/>
169 </uni-forms-item> 190 </uni-forms-item>
170 <uni-forms-item label="上传机构照片" required> 191 <uni-forms-item label="上传机构照片" required>
171 <view class="pictures-box"> 192 <view class="pictures-box">
...@@ -173,8 +194,9 @@ ...@@ -173,8 +194,9 @@
173 <image :src="config.baseUrl_api + '/fs/static/jgzp@2x.png'" class="placeholder-img"/> 194 <image :src="config.baseUrl_api + '/fs/static/jgzp@2x.png'" class="placeholder-img"/>
174 </view> 195 </view>
175 <view v-else class="pictures-preview"> 196 <view v-else class="pictures-preview">
176 <image :src="getImageUrl(form.pictures.split(',')[0])" class="picture-img" @click="previewImage(form.pictures.split(',').map(url => getImageUrl(url)))"></image> 197 <image :src="getImageUrl(form.pictures.split(',')[0])" class="picture-img"
177 <view class="delete-btn" v-if="editIng" @click="removePictures">×</view> 198 @click="previewImage(form.pictures.split(',').map(url => getImageUrl(url)))"></image>
199 <view v-if="editIng" class="delete-btn" @click="removePictures">×</view>
178 </view> 200 </view>
179 </view> 201 </view>
180 </uni-forms-item> 202 </uni-forms-item>
...@@ -182,7 +204,7 @@ ...@@ -182,7 +204,7 @@
182 <view class="notice-box"> 204 <view class="notice-box">
183 <checkbox-group @change="onNoticeChange"> 205 <checkbox-group @change="onNoticeChange">
184 <label class="notice-label"> 206 <label class="notice-label">
185 <checkbox :checked="form.notice" value="1" color="#e64329" /> 207 <checkbox :checked="form.notice" color="#e64329" value="1"/>
186 <text class="notice-text">我已阅读并同意</text> 208 <text class="notice-text">我已阅读并同意</text>
187 <text class="notice-link" @click.stop="showNotice(1)">《注册须知》</text> 209 <text class="notice-link" @click.stop="showNotice(1)">《注册须知》</text>
188 <text class="notice-link" @click.stop="showNotice(2)">《入会须知》</text> 210 <text class="notice-link" @click.stop="showNotice(2)">《入会须知》</text>
...@@ -195,12 +217,12 @@ ...@@ -195,12 +217,12 @@
195 217
196 <view class="fixedBottom"> 218 <view class="fixedBottom">
197 <button class="btn-gray" @click="activeStep = 1">上一步</button> 219 <button class="btn-gray" @click="activeStep = 1">上一步</button>
198 <button class="btn-red" :disabled="btn" @click="submitStep2()">下一步</button> 220 <button :disabled="btn" class="btn-red" @click="submitStep2()">下一步</button>
199 </view> 221 </view>
200 </view> 222 </view>
201 223
202 <!-- 步骤3:审核详情(只展示,无提交按钮) --> 224 <!-- 步骤3:审核详情(只展示,无提交按钮) -->
203 <view class="wBox" v-if="activeStep == 3"> 225 <view v-if="activeStep == 3" class="wBox">
204 <view class="audit-detail"> 226 <view class="audit-detail">
205 <view class="audit-title">审核详情</view> 227 <view class="audit-title">审核详情</view>
206 <view v-if="auditLoading" class="loading-box"> 228 <view v-if="auditLoading" class="loading-box">
...@@ -209,14 +231,16 @@ ...@@ -209,14 +231,16 @@
209 <view v-else-if="auditList.length === 0" class="empty-box"> 231 <view v-else-if="auditList.length === 0" class="empty-box">
210 <text>暂无审核记录</text> 232 <text>暂无审核记录</text>
211 </view> 233 </view>
212 <view class="audit-list" v-else> 234 <view v-else class="audit-list">
213 <view class="audit-item" v-for="(item, index) in auditList" :key="index"> 235 <view v-for="(item, index) in auditList" :key="index" class="audit-item">
214 <view class="audit-item-header"> 236 <view class="audit-item-header">
215 <text class="audit-dept">{{ item.auditDeptName || '待审核' }}</text> 237 <text class="audit-dept">{{ item.auditDeptName || '待审核' }}</text>
216 <text class="audit-status" :class="getAuditStatusClass(item.auditResult)">{{ getAuditStatusText(item.auditResult) }}</text> 238 <text :class="getAuditStatusClass(item.auditResult)" class="audit-status">
239 {{ getAuditStatusText(item.auditResult) }}
240 </text>
217 </view> 241 </view>
218 <view class="audit-item-body"> 242 <view class="audit-item-body">
219 <view class="audit-row" > 243 <view class="audit-row">
220 <text class="audit-label">审核日期:</text> 244 <text class="audit-label">审核日期:</text>
221 <text class="audit-value">{{ formatDate(item.auditTime) }}</text> 245 <text class="audit-value">{{ formatDate(item.auditTime) }}</text>
222 </view> 246 </view>
...@@ -239,40 +263,40 @@ ...@@ -239,40 +263,40 @@
239 <!-- 自定义弹框 --> 263 <!-- 自定义弹框 -->
240 <custom-modal 264 <custom-modal
241 ref="customModalRef" 265 ref="customModalRef"
242 :title="modalConfig.title" 266 :cancelText="modalConfig.cancelText"
267 :confirmText="modalConfig.confirmText"
243 :content="modalConfig.content" 268 :content="modalConfig.content"
244 :isHtml="modalConfig.isHtml" 269 :isHtml="modalConfig.isHtml"
245 :showCancel="modalConfig.showCancel" 270 :showCancel="modalConfig.showCancel"
246 :showConfirm="modalConfig.showConfirm" 271 :showConfirm="modalConfig.showConfirm"
247 :cancelText="modalConfig.cancelText" 272 :title="modalConfig.title"
248 :confirmText="modalConfig.confirmText"
249 @confirm="onModalConfirm"
250 @cancel="onModalCancel" 273 @cancel="onModalCancel"
274 @confirm="onModalConfirm"
251 ></custom-modal> 275 ></custom-modal>
252 </template> 276 </template>
253 277
254 <script setup> 278 <script setup>
255 import { 279 import {
256 ref, 280 ref,
257 reactive, 281 reactive,
258 computed, 282 computed,
259 watch 283 watch
260 } from 'vue'; 284 } from 'vue';
261 import * as api from '@/common/api.js'; 285 import * as api from '@/common/api.js';
262 import { 286 import {
263 onLoad, 287 onLoad,
264 onShow 288 onShow
265 } from '@dcloudio/uni-app'; 289 } from '@dcloudio/uni-app';
266 import config from '@/config.js' 290 import config from '@/config.js'
267 import customModal from '@/components/custom-modal.vue' 291 import customModal from '@/components/custom-modal.vue'
268 // import uniDataSelect from '@/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue' 292 // import uniDataSelect from '@/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue'
269 const app = getApp(); 293 const app = getApp();
270 294
271 // 自定义弹框 ref 295 // 自定义弹框 ref
272 const customModalRef = ref(null) 296 const customModalRef = ref(null)
273 297
274 // 弹框配置 298 // 弹框配置
275 const modalConfig = ref({ 299 const modalConfig = ref({
276 title: '', 300 title: '',
277 content: '', 301 content: '',
278 isHtml: false, 302 isHtml: false,
...@@ -280,24 +304,24 @@ ...@@ -280,24 +304,24 @@
280 showConfirm: true, 304 showConfirm: true,
281 cancelText: '取消', 305 cancelText: '取消',
282 confirmText: '确定' 306 confirmText: '确定'
283 }) 307 })
284 308
285 // 弹框确认回调 309 // 弹框确认回调
286 function onModalConfirm() { 310 function onModalConfirm() {
287 if (modalConfig.value.onConfirm) { 311 if (modalConfig.value.onConfirm) {
288 modalConfig.value.onConfirm() 312 modalConfig.value.onConfirm()
289 } 313 }
290 } 314 }
291 315
292 // 弹框取消回调 316 // 弹框取消回调
293 function onModalCancel() { 317 function onModalCancel() {
294 if (modalConfig.value.onCancel) { 318 if (modalConfig.value.onCancel) {
295 modalConfig.value.onCancel() 319 modalConfig.value.onCancel()
296 } 320 }
297 } 321 }
298 322
299 // 显示自定义弹框方法 323 // 显示自定义弹框方法
300 function showModal(options) { 324 function showModal(options) {
301 modalConfig.value = { 325 modalConfig.value = {
302 title: options.title || '', 326 title: options.title || '',
303 content: options.content || '', 327 content: options.content || '',
...@@ -310,107 +334,112 @@ ...@@ -310,107 +334,112 @@
310 onCancel: options.onCancel 334 onCancel: options.onCancel
311 } 335 }
312 customModalRef.value?.open() 336 customModalRef.value?.open()
313 } 337 }
314 338
315 const form = ref({ 339 const form = ref({
316 type: '1', 340 type: '1',
317 notice: false 341 notice: false
318 }); 342 });
319 343
320 // 类型列表 344 // 类型列表
321 const typeList = ref([{ 345 const typeList = ref([{
322 value: '1', 346 value: '1',
323 text: '企业' 347 text: '企业'
324 }, { 348 }, {
325 value: '2', 349 value: '2',
326 text: '国家组织' 350 text: '国家组织'
327 }, { 351 }, {
328 value: '3', 352 value: '3',
329 text: '社会组织' 353 text: '社会组织'
330 }, { 354 }, {
331 value: '4', 355 value: '4',
332 text: '其他' 356 text: '其他'
333 }]) 357 }])
334 358
335 // 类型索引 359 // 类型索引
336 const typeIndex = computed(() => { 360 const typeIndex = computed(() => {
337 return typeList.value.findIndex(item => String(item.value) === String(form.value.type)) 361 return typeList.value.findIndex(item => String(item.value) === String(form.value.type))
338 }) 362 })
339 363
340 // 类型选择 364 // 类型选择
341 function typeChange(e) { 365 function typeChange(e) {
342 const index = e.detail.value 366 const index = e.detail.value
343 form.value.type = typeList.value[index].value 367 form.value.type = typeList.value[index].value
344 } 368 }
345 369
346 // 地址选项 370 // 地址选项
347 const options = ref([]) 371 const options = ref([])
348 const regionOptions = ref([]) 372 const regionOptions = ref([])
349 373
350 // 协会树 374 // 协会树
351 const assoList = ref([]) 375 const assoList = ref([])
352 const assoFullName = ref('') // 协会完整路径名称 376 const assoFullName = ref('') // 协会完整路径名称
353 377
354 // 步骤相关 378 // 步骤相关
355 const activeStep = ref(1) 379 const activeStep = ref(1)
356 const list1 = ref([{ 380 const list1 = ref([{
357 title: '完善信息' 381 title: '完善信息'
358 }, { 382 }, {
359 title: '会员认证' 383 title: '会员认证'
360 }]) 384 }])
361 const creditCode = ref('') 385 const creditCode = ref('')
362 // 编辑状态 386 // 编辑状态
363 const editIng = ref(true); 387 const editIng = ref(true);
364 388
365 // 认证状态 389 // 认证状态
366 const authenticationStatus = ref() 390 const authenticationStatus = ref()
367 const result = ref(false) 391 const result = ref(false)
368 392
369 // 地址级联 393 // 地址级联
370 const coordinates1 = ref([]) 394 const coordinates1 = ref([])
371 395
372 // 按钮状态 396 // 按钮状态
373 const btn = ref(false) 397 const btn = ref(false)
374 398
375 // 费用相关 399 // 费用相关
376 const memberFee = ref('') 400 const memberFee = ref('')
377 const preferentialPolicy = ref(false) 401 const preferentialPolicy = ref(false)
378 const preferentialData = ref({}) 402 const preferentialData = ref({})
379 403
380 // 考点审核状态 404 // 考点审核状态
381 const auditStatus = ref('0') 405 const auditStatus = ref('0')
382 406
383 // 审核详情 407 // 审核详情
384 const auditList = ref([]) 408 const auditList = ref([])
385 const auditLoading = ref(false) 409 const auditLoading = ref(false)
386 410
387 // 社会信用代码校验状态(true=校验通过,false=校验失败/已存在) 411 // 社会信用代码校验状态(true=校验通过,false=校验失败/已存在)
388 const creditCodeValid = ref(true) 412 const creditCodeValid = ref(true)
389 413
390 // 须知勾选 414 // 须知勾选
391 function onNoticeChange(e) { 415 function onNoticeChange(e) {
392 const values = e.detail.value 416 const values = e.detail.value
393 form.value.notice = values.includes('1') 417 form.value.notice = values.includes('1')
394 } 418 }
395 419
396 // 社会信用代码失焦校验 420 // 社会信用代码失焦校验
397 function onCreditCodeBlur() { 421 function onCreditCodeBlur() {
422 return new Promise((resolve, reject) => {
398 const creditCode = form.value.creditCode 423 const creditCode = form.value.creditCode
399 if (!creditCode) return 424 if (!creditCode) return
400 api.creditCodeExist(creditCode).then(res => { 425 api.creditCodeExist(creditCode).then(res => {
401 if (res.data) { 426 if (res.data) {
402 creditCodeValid.value = false 427 creditCodeValid.value = false
403 uni.showToast({ title: '社会信用代码已存在,请联系中跆协修改', icon: 'none', duration: 3000 }) 428 uni.showToast({title: '社会信用代码已存在,请联系中跆协修改', icon: 'none', duration: 3000})
429 return reject()
404 } else { 430 } else {
405 creditCodeValid.value = true 431 creditCodeValid.value = true
432 return resolve()
406 } 433 }
407 }).catch(() => { 434 }).catch(() => {
408 creditCodeValid.value = true 435 creditCodeValid.value = true
436 return reject()
409 }) 437 })
410 } 438 })
439 }
411 440
412 // 查看须知 - 跳转到须知页面 441 // 查看须知 - 跳转到须知页面
413 function showNotice(type) { 442 function showNotice(type) {
414 const pageMap = { 443 const pageMap = {
415 1: '/pages/index/notice-registration', 444 1: '/pages/index/notice-registration',
416 2: '/pages/index/notice-membership', 445 2: '/pages/index/notice-membership',
...@@ -418,12 +447,12 @@ ...@@ -418,12 +447,12 @@
418 } 447 }
419 const url = pageMap[type] 448 const url = pageMap[type]
420 if (url) { 449 if (url) {
421 uni.navigateTo({ url }) 450 uni.navigateTo({url})
422 }
423 } 451 }
452 }
424 453
425 // 切换步骤(参考PC端handelActive逻辑) 454 // 切换步骤(参考PC端handelActive逻辑)
426 function switchStep(step) { 455 function switchStep(step) {
427 // 如果没有认证状态,不允许切换 456 // 如果没有认证状态,不允许切换
428 if (!authenticationStatus.value) return 457 if (!authenticationStatus.value) return
429 // 根据认证状态判断可以切换到哪些步骤 458 // 根据认证状态判断可以切换到哪些步骤
...@@ -438,10 +467,10 @@ ...@@ -438,10 +467,10 @@
438 activeStep.value = step 467 activeStep.value = step
439 } 468 }
440 } 469 }
441 } 470 }
442 471
443 // 获取审核详情 472 // 获取审核详情
444 function getMyCertStageFN() { 473 function getMyCertStageFN() {
445 auditLoading.value = true 474 auditLoading.value = true
446 api.getMyRecent().then(res => { 475 api.getMyRecent().then(res => {
447 auditLoading.value = false 476 auditLoading.value = false
...@@ -458,44 +487,44 @@ ...@@ -458,44 +487,44 @@
458 auditLoading.value = false 487 auditLoading.value = false
459 auditList.value = [] 488 auditList.value = []
460 }) 489 })
461 } 490 }
462 491
463 // 审核状态文字 492 // 审核状态文字
464 function getAuditStatusText(status) { 493 function getAuditStatusText(status) {
465 const map = { 494 const map = {
466 0: '待审核', 495 0: '待审核',
467 1: '审核通过', 496 1: '审核通过',
468 2: '审核拒绝' 497 2: '审核拒绝'
469 } 498 }
470 return map[status] || '待审核' 499 return map[status] || '待审核'
471 } 500 }
472 501
473 // 审核状态样式 502 // 审核状态样式
474 function getAuditStatusClass(status) { 503 function getAuditStatusClass(status) {
475 if (status == 1) return 'status-pass' 504 if (status == 1) return 'status-pass'
476 if (status == 2) return 'status-reject' 505 if (status == 2) return 'status-reject'
477 return 'status-pending' 506 return 'status-pending'
478 } 507 }
479 508
480 // 日期格式化 509 // 日期格式化
481 function formatDate(time) { 510 function formatDate(time) {
482 if (!time) return '' 511 if (!time) return ''
483 const date = new Date(time) 512 const date = new Date(time)
484 const year = date.getFullYear() 513 const year = date.getFullYear()
485 const month = String(date.getMonth() + 1).padStart(2, '0') 514 const month = String(date.getMonth() + 1).padStart(2, '0')
486 const day = String(date.getDate()).padStart(2, '0') 515 const day = String(date.getDate()).padStart(2, '0')
487 return `${year}-${month}-${day}` 516 return `${year}-${month}-${day}`
488 } 517 }
489 518
490 // 图片URL处理:如果不是http开头,拼接baseUrl_api 519 // 图片URL处理:如果不是http开头,拼接baseUrl_api
491 function getImageUrl(url) { 520 function getImageUrl(url) {
492 if (!url) return '' 521 if (!url) return ''
493 if (url.indexOf('http') === 0) return url 522 if (url.indexOf('http') === 0) return url
494 return config.baseUrl_api + url 523 return config.baseUrl_api + url
495 } 524 }
496 525
497 // 解析营业执照URL 526 // 解析营业执照URL
498 function getBusinessLicenseUrl() { 527 function getBusinessLicenseUrl() {
499 if (!form.value.businessLicense) return '' 528 if (!form.value.businessLicense) return ''
500 try { 529 try {
501 const arr = JSON.parse(form.value.businessLicense) 530 const arr = JSON.parse(form.value.businessLicense)
...@@ -507,9 +536,9 @@ ...@@ -507,9 +536,9 @@
507 return form.value.businessLicense 536 return form.value.businessLicense
508 } 537 }
509 return '' 538 return ''
510 } 539 }
511 540
512 onLoad(option => { 541 onLoad(option => {
513 getTree() 542 getTree()
514 if (app.globalData.isLogin) { 543 if (app.globalData.isLogin) {
515 init() 544 init()
...@@ -522,9 +551,9 @@ ...@@ -522,9 +551,9 @@
522 if (activeStep.value === 3) { 551 if (activeStep.value === 3) {
523 getMyCertStageFN() 552 getMyCertStageFN()
524 } 553 }
525 }); 554 });
526 555
527 function init() { 556 function init() {
528 getDetail() 557 getDetail()
529 getRegionsList() 558 getRegionsList()
530 559
...@@ -532,15 +561,16 @@ ...@@ -532,15 +561,16 @@
532 canUseDiscountApi() 561 canUseDiscountApi()
533 getZtxDiscountPolicyApi() 562 getZtxDiscountPolicyApi()
534 getMyStatusAPI() 563 getMyStatusAPI()
535 } 564 }
536 565
537 // 获取详情 566 // 获取详情
538 function getDetail() { 567 function getDetail() {
539 api.getMyOwnMemberInfo().then(res => { 568 api.getMyOwnMemberInfo().then(res => {
540 // if (res.data.memberInfo) { 569 // if (res.data.memberInfo) {
541 // Object.assign(form.value, res.data.memberInfo) 570 // Object.assign(form.value, res.data.memberInfo)
542 // } 571 // }
543 form.value = { ...res.data.dept, ...res.data.memberInfo } 572 form.value = {...res.data.dept, ...res.data.memberInfo}
573 form.value.deptType = res.data.memberInfo.deptType || res.data.dept.deptType
544 if (form.value.type) { 574 if (form.value.type) {
545 form.value.type = String(form.value.type) 575 form.value.type = String(form.value.type)
546 } 576 }
...@@ -575,13 +605,13 @@ ...@@ -575,13 +605,13 @@
575 // 尝试从协会树中查找完整路径 605 // 尝试从协会树中查找完整路径
576 const result = findAssoNodeWithPath(assoList.value, form.value.parentId, []) 606 const result = findAssoNodeWithPath(assoList.value, form.value.parentId, [])
577 if (result) { 607 if (result) {
578 assoFullName.value = getAssoFullName(result.path.map(id => ({ value: id }))) 608 assoFullName.value = getAssoFullName(result.path.map(id => ({value: id})))
579 } else { 609 } else {
580 // 如果树还没加载完,延迟设置 610 // 如果树还没加载完,延迟设置
581 setTimeout(() => { 611 setTimeout(() => {
582 const res = findAssoNodeWithPath(assoList.value, form.value.parentId, []) 612 const res = findAssoNodeWithPath(assoList.value, form.value.parentId, [])
583 if (res) { 613 if (res) {
584 assoFullName.value = getAssoFullName(res.path.map(id => ({ value: id }))) 614 assoFullName.value = getAssoFullName(res.path.map(id => ({value: id})))
585 } 615 }
586 }, 500) 616 }, 500)
587 } 617 }
...@@ -600,7 +630,8 @@ ...@@ -600,7 +630,8 @@
600 const license = JSON.parse(form.value.businessLicense) 630 const license = JSON.parse(form.value.businessLicense)
601 form.value.businessLicense = license.url || license 631 form.value.businessLicense = license.url || license
602 form.value.businessLicenseName = license.name 632 form.value.businessLicenseName = license.name
603 } catch (e) {} 633 } catch (e) {
634 }
604 } 635 }
605 636
606 // 设置认证状态对应的按钮状态 637 // 设置认证状态对应的按钮状态
...@@ -627,10 +658,10 @@ ...@@ -627,10 +658,10 @@
627 // adress.value = form.value.adress 658 // adress.value = form.value.adress
628 form.value.name = form.value.baseName 659 form.value.name = form.value.baseName
629 }) 660 })
630 } 661 }
631 662
632 // 格式化地区树(修复:对齐PC端接口返回的id/name结构) 663 // 格式化地区树(修复:对齐PC端接口返回的id/name结构)
633 function formatRegionTree(node) { 664 function formatRegionTree(node) {
634 const result = { 665 const result = {
635 value: node.id, 666 value: node.id,
636 text: node.name 667 text: node.name
...@@ -639,20 +670,20 @@ ...@@ -639,20 +670,20 @@
639 result.children = node.children.map(child => formatRegionTree(child)) 670 result.children = node.children.map(child => formatRegionTree(child))
640 } 671 }
641 return result 672 return result
642 } 673 }
643 674
644 // 获取地区列表 675 // 获取地区列表
645 function getRegionsList() { 676 function getRegionsList() {
646 api.regionsList().then(res => { 677 api.regionsList().then(res => {
647 options.value = res.data 678 options.value = res.data
648 // 转换为级联选择器格式 679 // 转换为级联选择器格式
649 regionOptions.value = res.data 680 regionOptions.value = res.data
650 // map(item => formatRegionTree(item)) 681 // map(item => formatRegionTree(item))
651 }); 682 });
652 } 683 }
653 684
654 // 获取协会树 685 // 获取协会树
655 function getTree() { 686 function getTree() {
656 console.log('获取协会树') 687 console.log('获取协会树')
657 api.certifiedDeptTreeRegister({ 688 api.certifiedDeptTreeRegister({
658 selfDeptId: -1, // 修复:传数字类型,避免后端类型转换错误 689 selfDeptId: -1, // 修复:传数字类型,避免后端类型转换错误
...@@ -668,10 +699,10 @@ ...@@ -668,10 +699,10 @@
668 }, 100) 699 }, 100)
669 } 700 }
670 }) 701 })
671 } 702 }
672 703
673 // 格式化协会树 704 // 格式化协会树
674 function formatTree(node) { 705 function formatTree(node) {
675 const result = { 706 const result = {
676 value: node.id, 707 value: node.id,
677 text: node.label || node.text 708 text: node.label || node.text
...@@ -680,10 +711,10 @@ ...@@ -680,10 +711,10 @@
680 result.children = node.children.map(child => formatTree(child)) 711 result.children = node.children.map(child => formatTree(child))
681 } 712 }
682 return result 713 return result
683 } 714 }
684 715
685 // 恢复协会完整路径名称 716 // 恢复协会完整路径名称
686 function restoreAssoFullName() { 717 function restoreAssoFullName() {
687 if (!form.value.parentId || !assoList.value || assoList.value.length === 0) { 718 if (!form.value.parentId || !assoList.value || assoList.value.length === 0) {
688 return 719 return
689 } 720 }
...@@ -691,16 +722,16 @@ ...@@ -691,16 +722,16 @@
691 const result = findAssoNodeWithPath(assoList.value, form.value.parentId, []) 722 const result = findAssoNodeWithPath(assoList.value, form.value.parentId, [])
692 if (result) { 723 if (result) {
693 // 使用路径数组重建完整名称 724 // 使用路径数组重建完整名称
694 assoFullName.value = getAssoFullName(result.path.map(id => ({ value: id }))) 725 assoFullName.value = getAssoFullName(result.path.map(id => ({value: id})))
695 }
696 } 726 }
727 }
697 728
698 // 查找协会节点及其父路径 729 // 查找协会节点及其父路径
699 function findAssoNodeWithPath(list, targetId, currentPath) { 730 function findAssoNodeWithPath(list, targetId, currentPath) {
700 for (const item of list) { 731 for (const item of list) {
701 const newPath = [...currentPath, item.value] 732 const newPath = [...currentPath, item.value]
702 if (item.value === targetId) { 733 if (item.value === targetId) {
703 return { node: item, path: newPath } 734 return {node: item, path: newPath}
704 } 735 }
705 if (item.children && item.children.length > 0) { 736 if (item.children && item.children.length > 0) {
706 const found = findAssoNodeWithPath(item.children, targetId, newPath) 737 const found = findAssoNodeWithPath(item.children, targetId, newPath)
...@@ -708,10 +739,10 @@ ...@@ -708,10 +739,10 @@
708 } 739 }
709 } 740 }
710 return null 741 return null
711 } 742 }
712 743
713 // 协会选择(修复:100%对齐PC端el-cascader emitPath: false逻辑,只取最后一级ID) 744 // 协会选择(修复:100%对齐PC端el-cascader emitPath: false逻辑,只取最后一级ID)
714 function changCase(e) { 745 function changCase(e) {
715 const valueArr = e.detail?.value || e; 746 const valueArr = e.detail?.value || e;
716 // 取最后一级的value(纯ID) 747 // 取最后一级的value(纯ID)
717 const lastNode = valueArr[valueArr.length - 1]; 748 const lastNode = valueArr[valueArr.length - 1];
...@@ -719,11 +750,11 @@ ...@@ -719,11 +750,11 @@
719 console.log('最终提交的parentId:', form.value.parentId); 750 console.log('最终提交的parentId:', form.value.parentId);
720 assoFullName.value = getAssoFullName(valueArr) 751 assoFullName.value = getAssoFullName(valueArr)
721 console.log('协会完整路径:', assoFullName.value); 752 console.log('协会完整路径:', assoFullName.value);
722 } 753 }
723 754
724 // 地址选择(核心修复:从对象中提取纯value,对齐PC端格式) 755 // 地址选择(核心修复:从对象中提取纯value,对齐PC端格式)
725 // 地址选择(还原成你之前能用的版本:纯ID数组赋值) 756 // 地址选择(还原成你之前能用的版本:纯ID数组赋值)
726 function changeAddress(e) { 757 function changeAddress(e) {
727 const selectedValue = e.detail?.value ?? e; 758 const selectedValue = e.detail?.value ?? e;
728 console.log("选择的地址:", selectedValue); 759 console.log("选择的地址:", selectedValue);
729 760
...@@ -736,31 +767,31 @@ ...@@ -736,31 +767,31 @@
736 coordinates1.value = selectedValue; 767 coordinates1.value = selectedValue;
737 768
738 console.log('最终地址ID:', form.value.provinceId, form.value.cityId, form.value.regionId); 769 console.log('最终地址ID:', form.value.provinceId, form.value.cityId, form.value.regionId);
739 } 770 }
740 771
741 // 获取会员认证费用 772 // 获取会员认证费用
742 function getMyMemberCertUnitFeeApi() { 773 function getMyMemberCertUnitFeeApi() {
743 api.getMyMemberCertUnitFee().then(res => { 774 api.getMyMemberCertUnitFee().then(res => {
744 memberFee.value = res.data 775 memberFee.value = res.data
745 }) 776 })
746 } 777 }
747 778
748 // 检查是否可用优惠政策 779 // 检查是否可用优惠政策
749 function canUseDiscountApi() { 780 function canUseDiscountApi() {
750 api.canUseDiscount().then(res => { 781 api.canUseDiscount().then(res => {
751 preferentialPolicy.value = res.data 782 preferentialPolicy.value = res.data
752 }) 783 })
753 } 784 }
754 785
755 // 获取优惠政策详情 786 // 获取优惠政策详情
756 function getZtxDiscountPolicyApi() { 787 function getZtxDiscountPolicyApi() {
757 api.getZtxDiscountPolicy().then(res => { 788 api.getZtxDiscountPolicy().then(res => {
758 preferentialData.value = res.data 789 preferentialData.value = res.data
759 }) 790 })
760 } 791 }
761 792
762 // 获取考点申请状态 793 // 获取考点申请状态
763 function getMyStatusAPI() { 794 function getMyStatusAPI() {
764 api.getMyStatus().then(res => { 795 api.getMyStatus().then(res => {
765 if (res.data && res.data.auditStatus) { 796 if (res.data && res.data.auditStatus) {
766 auditStatus.value = res.data.auditStatus 797 auditStatus.value = res.data.auditStatus
...@@ -768,29 +799,29 @@ ...@@ -768,29 +799,29 @@
768 auditStatus.value = '0' 799 auditStatus.value = '0'
769 } 800 }
770 }) 801 })
771 } 802 }
772 803
773 // 步骤1提交 804 // 步骤1提交
774 function submitStep1() { 805 function submitStep1() {
775 // 验证必填项 806 // 验证必填项
776 if (!form.value.baseName) { 807 if (!form.value.baseName) {
777 uni.showToast({ title: '请填写单位名称', duration: 2000, icon: 'none' }) 808 uni.showToast({title: '请填写单位名称', duration: 2000, icon: 'none'})
778 return 809 return
779 } 810 }
780 if (!form.value.type) { 811 if (!form.value.type) {
781 uni.showToast({ title: '请选择单位类型', duration: 2000, icon: 'none' }) 812 uni.showToast({title: '请选择单位类型', duration: 2000, icon: 'none'})
782 return 813 return
783 } 814 }
784 if (!form.value.contact) { 815 if (!form.value.contact) {
785 uni.showToast({ title: '请填写联系人', duration: 2000, icon: 'none' }) 816 uni.showToast({title: '请填写联系人', duration: 2000, icon: 'none'})
786 return 817 return
787 } 818 }
788 if (!form.value.phone) { 819 if (!form.value.phone) {
789 uni.showToast({ title: '请填写联系电话', duration: 2000, icon: 'none' }) 820 uni.showToast({title: '请填写联系电话', duration: 2000, icon: 'none'})
790 return 821 return
791 } 822 }
792 if (!form.value.introduce) { 823 if (!form.value.introduce) {
793 uni.showToast({ title: '请填写机构介绍', duration: 2000, icon: 'none' }) 824 uni.showToast({title: '请填写机构介绍', duration: 2000, icon: 'none'})
794 return 825 return
795 } 826 }
796 827
...@@ -799,94 +830,94 @@ ...@@ -799,94 +830,94 @@
799 if (res.data.token) { 830 if (res.data.token) {
800 uni.setStorageSync('token', 'Bearer ' + res.data.token) 831 uni.setStorageSync('token', 'Bearer ' + res.data.token)
801 } 832 }
802 uni.showToast({ title: '操作成功', duration: 1500, icon: 'success' }) 833 uni.showToast({title: '操作成功', duration: 1500, icon: 'success'})
803 setTimeout(() => { 834 setTimeout(() => {
804 activeStep.value = 2 835 activeStep.value = 2
805 getDetail() 836 getDetail()
806 }, 1500) 837 }, 1500)
807 } else { 838 } else {
808 uni.showToast({ title: res.msg || '操作失败', duration: 2000, icon: 'none' }) 839 uni.showToast({title: res.msg || '操作失败', duration: 2000, icon: 'none'})
809 } 840 }
810 }) 841 })
811 } 842 }
812 843
813 // 步骤2提交 844 // 步骤2提交
814 function submitStep2() { 845 async function submitStep2() {
815 // 验证必填项 846 // 验证必填项
816 if (!form.value.parentId || form.value.parentId == 0 || form.value.parentId == -1) { 847 if (!form.value.parentId || form.value.parentId == 0 || form.value.parentId == -1) {
817 uni.showToast({ title: '请选择所属协会', duration: 2000, icon: 'none' }) 848 uni.showToast({title: '请选择所属协会', duration: 2000, icon: 'none'})
818 return 849 return
819 } 850 }
820 if (!form.value.name) { 851 if (!form.value.name) {
821 uni.showToast({ title: '请输入机构名称', duration: 2000, icon: 'none' }) 852 uni.showToast({title: '请输入机构名称', duration: 2000, icon: 'none'})
822 return 853 return
823 } 854 }
824 if (coordinates1.value.length === 0) { 855 if (coordinates1.value.length === 0) {
825 uni.showToast({ title: '请选择认证地址', duration: 2000, icon: 'none' }) 856 uni.showToast({title: '请选择认证地址', duration: 2000, icon: 'none'})
826 return 857 return
827 } 858 }
828 if (!form.value.adress) { 859 if (!form.value.adress) {
829 uni.showToast({ title: '请输入认证详细地址', duration: 2000, icon: 'none' }) 860 uni.showToast({title: '请输入认证详细地址', duration: 2000, icon: 'none'})
830 return 861 return
831 } 862 }
832 if (!form.value.siteContact) { 863 if (!form.value.siteContact) {
833 uni.showToast({ title: '请输入联系人', duration: 2000, icon: 'none' }) 864 uni.showToast({title: '请输入联系人', duration: 2000, icon: 'none'})
834 return 865 return
835 } 866 }
836 if (!form.value.siteTel) { 867 if (!form.value.siteTel) {
837 uni.showToast({ title: '请输入联系方式', duration: 2000, icon: 'none' }) 868 uni.showToast({title: '请输入联系方式', duration: 2000, icon: 'none'})
838 return 869 return
839 } 870 }
840 if (!form.value.businessLicense) { 871 if (!form.value.businessLicense) {
841 uni.showToast({ title: '请上传营业执照', duration: 2000, icon: 'none' }) 872 uni.showToast({title: '请上传营业执照', duration: 2000, icon: 'none'})
842 return 873 return
843 } 874 }
844 if (!form.value.companyName) { 875 if (!form.value.companyName) {
845 uni.showToast({ title: '请输入营业执照名称', duration: 2000, icon: 'none' }) 876 uni.showToast({title: '请输入营业执照名称', duration: 2000, icon: 'none'})
846 return 877 return
847 } 878 }
848 if (!form.value.creditCode) { 879 if (!form.value.creditCode) {
849 uni.showToast({ title: '请输入社会信用代码', duration: 2000, icon: 'none' }) 880 uni.showToast({title: '请输入社会信用代码', duration: 2000, icon: 'none'})
850 return 881 return
851 } 882 }
852 if (!creditCodeValid.value) { 883 if (!creditCodeValid.value) {
853 uni.showToast({ title: '社会信用代码已存在,请联系中跆协修改', icon: 'none', duration: 3000 }) 884 uni.showToast({title: '社会信用代码已存在,请联系中跆协修改', icon: 'none', duration: 3000})
854 return 885 return
855 } 886 }
856 if (!form.value.legalIdcPhoto1 || !form.value.legalIdcPhoto2) { 887 if (!form.value.legalIdcPhoto1 || !form.value.legalIdcPhoto2) {
857 uni.showToast({ title: '请上传身份证正反面', duration: 2000, icon: 'none' }) 888 uni.showToast({title: '请上传身份证正反面', duration: 2000, icon: 'none'})
858 return 889 return
859 } 890 }
860 if (!form.value.legal) { 891 if (!form.value.legal) {
861 uni.showToast({ title: '请输入法人姓名', duration: 2000, icon: 'none' }) 892 uni.showToast({title: '请输入法人姓名', duration: 2000, icon: 'none'})
862 return 893 return
863 } 894 }
864 if (!form.value.legalIdcCode) { 895 if (!form.value.legalIdcCode) {
865 uni.showToast({ title: '请输入法人证件号', duration: 2000, icon: 'none' }) 896 uni.showToast({title: '请输入法人证件号', duration: 2000, icon: 'none'})
866 return 897 return
867 } 898 }
868 if (!form.value.pictures) { 899 if (!form.value.pictures) {
869 uni.showToast({ title: '请上传机构照片', duration: 2000, icon: 'none' }) 900 uni.showToast({title: '请上传机构照片', duration: 2000, icon: 'none'})
870 return 901 return
871 } 902 }
872 if (!form.value.notice) { 903 if (!form.value.notice) {
873 uni.showToast({ title: '请阅读并同意注册须知、入会须知、免责声明', duration: 2000, icon: 'none' }) 904 uni.showToast({title: '请阅读并同意注册须知、入会须知、免责声明', duration: 2000, icon: 'none'})
874 return 905 return
875 } 906 }
876 907
877 // 验证营业执照和法人信息 908 await onCreditCodeBlur()
878 uni.showLoading({ title: '验证中...' }) 909 uni.showLoading({title: '验证中...'})
879 api.checkBusinessLicense({ 910 await api.checkBusinessLicense({
880 creditCode: form.value.creditCode, 911 creditCode: form.value.creditCode,
881 companyName: form.value.companyName, 912 companyName: form.value.companyName,
882 legalIdcCode: form.value.legalIdcCode, 913 legalIdcCode: form.value.legalIdcCode,
883 legal: form.value.legal 914 legal: form.value.legal
884 }).then(checkRes => { 915 }).then(checkRes => {
885 uni.hideLoading() 916 uni.hideLoading()
886 if (checkRes.code !== 200) { 917 if (checkRes.code != 200 || !checkRes.data.passFlag) {
887 showModal({ 918 showModal({
888 title: '系统提示', 919 title: '系统提示',
889 content: checkRes.msg || '企业信息异常请检查相关资料信息,确认无误后再次提交!', 920 content: '企业信息异常请检查相关资料信息,确认无误后再次提交!',
890 cancelText: '返回修改', 921 cancelText: '返回修改',
891 confirmText: '确认无误', 922 confirmText: '确认无误',
892 onConfirm: () => submitCertification() 923 onConfirm: () => submitCertification()
...@@ -905,24 +936,25 @@ ...@@ -905,24 +936,25 @@
905 onConfirm: () => submitCertification() 936 onConfirm: () => submitCertification()
906 }) 937 })
907 }) 938 })
908 }
909 939
910 // 提交认证信息(100%对齐PC端入参格式) 940 }
911 function submitCertification() { 941
942 // 提交认证信息(100%对齐PC端入参格式)
943 function submitCertification() {
912 let params = { 944 let params = {
913 parentId: form.value.parentId, 945 parentId: form.value.parentId,
914 creditCode: form.value.creditCode, 946 creditCode: form.value.creditCode,
915 legal: form.value.legal, 947 legal: form.value.legal,
916 businessLicense: form.value.businessLicense, 948 businessLicense: JSON.stringify(form.value.businessLicense),
917 pictures: form.value.pictures, 949 pictures: form.value.pictures,
918 memId: form.value.memId, 950 memId: form.value.memId,
919 id: form.value.deptId, 951 id: form.value.deptId,
920 name: form.value.name, 952 name: form.value.name,
921 regionId: form.value.regionId?.value, 953 regionId: form.value.regionId,
922 cityId: form.value.cityId.value.toString(), 954 cityId: form.value.cityId,
923 provinceId: form.value.provinceId.value.toString(), 955 provinceId: form.value.provinceId,
924 adress: form.value.adress, 956 adress: form.value.adress,
925 deptType: app.globalData.deptType, 957 deptType: form.value.deptType,
926 legalIdcPhoto: [form.value.legalIdcPhoto1, form.value.legalIdcPhoto2].join(','), 958 legalIdcPhoto: [form.value.legalIdcPhoto1, form.value.legalIdcPhoto2].join(','),
927 applyPoints: '0', 959 applyPoints: '0',
928 siteContact: form.value.siteContact, 960 siteContact: form.value.siteContact,
...@@ -930,39 +962,39 @@ ...@@ -930,39 +962,39 @@
930 companyName: form.value.companyName, 962 companyName: form.value.companyName,
931 legalIdcCode: form.value.legalIdcCode 963 legalIdcCode: form.value.legalIdcCode
932 } 964 }
933 console.log(666,params) 965 console.log(666, params)
934 // return 966 // return
935 uni.showLoading({ title: '提交中...' }) 967 uni.showLoading({title: '提交中...'})
936 api.editMyMemberCertifiedInfo(params).then(res => { 968 api.editMyMemberCertifiedInfo(params).then(res => {
937 uni.hideLoading() 969 uni.hideLoading()
938 if (res.code === 200) { 970 if (res.code === 200) {
939 uni.showToast({ title: '提交成功', duration: 1500, icon: 'success' }) 971 uni.showToast({title: '提交成功', duration: 1500, icon: 'success'})
940 // 跳转缴费页面 972 // 跳转缴费页面
941 setTimeout(() => { 973 setTimeout(() => {
942 const assoName = assoFullName.value 974 const assoName = assoFullName.value
943 console.log(888,assoName) 975 console.log(888, assoName)
944 // 跳转到缴费页面 976 // 跳转到缴费页面
945 uni.navigateTo({ 977 uni.navigateTo({
946 url: `/myCenter/goPay?payName=${encodeURIComponent(form.value.name || '')}&assoName=${encodeURIComponent(assoName)}` 978 url: `/myCenter/goPay?payName=${encodeURIComponent(form.value.name || '')}&assoName=${encodeURIComponent(assoName)}`
947 }) 979 })
948 }, 1500) 980 }, 1500)
949 } else { 981 } else {
950 uni.showToast({ title: res.msg || '提交失败', duration: 2000, icon: 'none' }) 982 uni.showToast({title: res.msg || '提交失败', duration: 2000, icon: 'none'})
951 } 983 }
952 }).catch(() => { 984 }).catch(() => {
953 uni.hideLoading() 985 uni.hideLoading()
954 }) 986 })
955 } 987 }
956 988
957 // 营业执照上传 989 // 营业执照上传
958 function onBusinessLicenseSelect() { 990 function onBusinessLicenseSelect() {
959 uni.chooseImage({ 991 uni.chooseImage({
960 count: 1, 992 count: 1,
961 sizeType: ['compressed'], 993 sizeType: ['compressed'],
962 sourceType: ['album', 'camera'], 994 sourceType: ['album', 'camera'],
963 success: (res) => { 995 success: (res) => {
964 if (res.tempFilePaths && res.tempFilePaths.length > 0) { 996 if (res.tempFilePaths && res.tempFilePaths.length > 0) {
965 uni.showLoading({ title: '上传中...' }) 997 uni.showLoading({title: '上传中...'})
966 // 先上传文件 998 // 先上传文件
967 api.uploadFile(res).then(uploadRes => { 999 api.uploadFile(res).then(uploadRes => {
968 if (uploadRes.code !== 200) { 1000 if (uploadRes.code !== 200) {
...@@ -978,9 +1010,9 @@ ...@@ -978,9 +1010,9 @@
978 'Authorization': uni.getStorageSync('token') 1010 'Authorization': uni.getStorageSync('token')
979 } 1011 }
980 }).then(ocrRes => { 1012 }).then(ocrRes => {
981 return { url, ocrRes } 1013 return {url, ocrRes}
982 }) 1014 })
983 }).then(({ url, ocrRes }) => { 1015 }).then(({url, ocrRes}) => {
984 uni.hideLoading() 1016 uni.hideLoading()
985 const data = JSON.parse(ocrRes.data) 1017 const data = JSON.parse(ocrRes.data)
986 let name = '营业执照' 1018 let name = '营业执照'
...@@ -996,37 +1028,37 @@ ...@@ -996,37 +1028,37 @@
996 }]) 1028 }])
997 }).catch(() => { 1029 }).catch(() => {
998 uni.hideLoading() 1030 uni.hideLoading()
999 uni.showToast({ title: '上传失败', icon: 'none' }) 1031 uni.showToast({title: '上传失败', icon: 'none'})
1000 }) 1032 })
1001 } 1033 }
1002 } 1034 }
1003 }) 1035 })
1004 } 1036 }
1005 1037
1006 function removeBusinessLicense() { 1038 function removeBusinessLicense() {
1007 form.value.businessLicense = '' 1039 form.value.businessLicense = ''
1008 form.value.businessLicenseName = '' 1040 form.value.businessLicenseName = ''
1009 } 1041 }
1010 1042
1011 // 删除身份证正面 1043 // 删除身份证正面
1012 function removeIdCardFront() { 1044 function removeIdCardFront() {
1013 form.value.legalIdcPhoto1 = '' 1045 form.value.legalIdcPhoto1 = ''
1014 } 1046 }
1015 1047
1016 // 删除身份证反面 1048 // 删除身份证反面
1017 function removeIdCardBack() { 1049 function removeIdCardBack() {
1018 form.value.legalIdcPhoto2 = '' 1050 form.value.legalIdcPhoto2 = ''
1019 } 1051 }
1020 1052
1021 // 身份证上传 1053 // 身份证上传
1022 function onIdCardFrontSelect() { 1054 function onIdCardFrontSelect() {
1023 uni.chooseImage({ 1055 uni.chooseImage({
1024 count: 1, 1056 count: 1,
1025 sizeType: ['compressed'], 1057 sizeType: ['compressed'],
1026 sourceType: ['album', 'camera'], 1058 sourceType: ['album', 'camera'],
1027 success: (res) => { 1059 success: (res) => {
1028 if (res.tempFilePaths && res.tempFilePaths.length > 0) { 1060 if (res.tempFilePaths && res.tempFilePaths.length > 0) {
1029 uni.showLoading({ title: '上传中...' }) 1061 uni.showLoading({title: '上传中...'})
1030 api.uploadImg(res).then(data => { 1062 api.uploadImg(res).then(data => {
1031 if (data.code === 200) { 1063 if (data.code === 200) {
1032 form.value.legalIdcPhoto1 = data.msg 1064 form.value.legalIdcPhoto1 = data.msg
...@@ -1034,14 +1066,14 @@ ...@@ -1034,14 +1066,14 @@
1034 uni.hideLoading() 1066 uni.hideLoading()
1035 }).catch(() => { 1067 }).catch(() => {
1036 uni.hideLoading() 1068 uni.hideLoading()
1037 uni.showToast({ title: '上传失败', icon: 'none' }) 1069 uni.showToast({title: '上传失败', icon: 'none'})
1038 }) 1070 })
1039 } 1071 }
1040 } 1072 }
1041 }) 1073 })
1042 } 1074 }
1043 1075
1044 function onIdCardBackSelect() { 1076 function onIdCardBackSelect() {
1045 uni.chooseImage({ 1077 uni.chooseImage({
1046 count: 1, 1078 count: 1,
1047 sizeType: ['compressed'], 1079 sizeType: ['compressed'],
...@@ -1049,7 +1081,7 @@ ...@@ -1049,7 +1081,7 @@
1049 success: (res) => { 1081 success: (res) => {
1050 if (res.tempFilePaths && res.tempFilePaths.length > 0) { 1082 if (res.tempFilePaths && res.tempFilePaths.length > 0) {
1051 const tempPath = res.tempFilePaths[0] 1083 const tempPath = res.tempFilePaths[0]
1052 uni.showLoading({ title: '上传中...' }) 1084 uni.showLoading({title: '上传中...'})
1053 api.uploadImg(res).then(data => { 1085 api.uploadImg(res).then(data => {
1054 if (data.code === 200) { 1086 if (data.code === 200) {
1055 form.value.legalIdcPhoto2 = data.msg 1087 form.value.legalIdcPhoto2 = data.msg
...@@ -1059,15 +1091,15 @@ ...@@ -1059,15 +1091,15 @@
1059 uni.hideLoading() 1091 uni.hideLoading()
1060 }).catch(() => { 1092 }).catch(() => {
1061 uni.hideLoading() 1093 uni.hideLoading()
1062 uni.showToast({ title: '上传失败', icon: 'none' }) 1094 uni.showToast({title: '上传失败', icon: 'none'})
1063 }) 1095 })
1064 } 1096 }
1065 } 1097 }
1066 }) 1098 })
1067 } 1099 }
1068 1100
1069 // 提取身份证信息 1101 // 提取身份证信息
1070 function extractIdCardInfo(tempPath) { 1102 function extractIdCardInfo(tempPath) {
1071 if (tempPath) { 1103 if (tempPath) {
1072 uni.uploadFile({ 1104 uni.uploadFile({
1073 url: config.baseUrl_api + '/person/info/getPersonInfoFromCert/0', 1105 url: config.baseUrl_api + '/person/info/getPersonInfoFromCert/0',
...@@ -1085,20 +1117,20 @@ ...@@ -1085,20 +1117,20 @@
1085 } 1117 }
1086 }) 1118 })
1087 } 1119 }
1088 } 1120 }
1089 1121
1090 // 机构照片上传 1122 // 机构照片上传
1091 function onPicturesSelect() { 1123 function onPicturesSelect() {
1092 uni.chooseImage({ 1124 uni.chooseImage({
1093 count: 3, 1125 count: 3,
1094 sizeType: ['compressed'], 1126 sizeType: ['compressed'],
1095 sourceType: ['album', 'camera'], 1127 sourceType: ['album', 'camera'],
1096 success: (res) => { 1128 success: (res) => {
1097 if (res.tempFilePaths && res.tempFilePaths.length > 0) { 1129 if (res.tempFilePaths && res.tempFilePaths.length > 0) {
1098 uni.showLoading({ title: '上传中...' }) 1130 uni.showLoading({title: '上传中...'})
1099 // 循环上传多张图片 1131 // 循环上传多张图片
1100 const promises = res.tempFilePaths.map(path => { 1132 const promises = res.tempFilePaths.map(path => {
1101 return api.uploadImg({ tempFilePaths: [path] }) 1133 return api.uploadImg({tempFilePaths: [path]})
1102 }) 1134 })
1103 Promise.all(promises).then(results => { 1135 Promise.all(promises).then(results => {
1104 uni.hideLoading() 1136 uni.hideLoading()
...@@ -1106,15 +1138,15 @@ ...@@ -1106,15 +1138,15 @@
1106 form.value.pictures = urls.join(',') 1138 form.value.pictures = urls.join(',')
1107 }).catch(() => { 1139 }).catch(() => {
1108 uni.hideLoading() 1140 uni.hideLoading()
1109 uni.showToast({ title: '上传失败', icon: 'none' }) 1141 uni.showToast({title: '上传失败', icon: 'none'})
1110 }) 1142 })
1111 } 1143 }
1112 } 1144 }
1113 }) 1145 })
1114 } 1146 }
1115 1147
1116 // 预览图片 1148 // 预览图片
1117 function previewImage(url) { 1149 function previewImage(url) {
1118 if (Array.isArray(url)) { 1150 if (Array.isArray(url)) {
1119 uni.previewImage({ 1151 uni.previewImage({
1120 urls: url 1152 urls: url
...@@ -1124,15 +1156,15 @@ ...@@ -1124,15 +1156,15 @@
1124 urls: [url] 1156 urls: [url]
1125 }) 1157 })
1126 } 1158 }
1127 } 1159 }
1128 1160
1129 // 删除机构照片 1161 // 删除机构照片
1130 function removePictures() { 1162 function removePictures() {
1131 form.value.pictures = '' 1163 form.value.pictures = ''
1132 } 1164 }
1133 1165
1134 // 去缴费 - 参考PC payTheFees逻辑,先校验基础信息 1166 // 去缴费 - 参考PC payTheFees逻辑,先校验基础信息
1135 function goPay() { 1167 function goPay() {
1136 // 检查基础信息是否完善 1168 // 检查基础信息是否完善
1137 if (!form.value.siteContact) { 1169 if (!form.value.siteContact) {
1138 uni.showToast({ 1170 uni.showToast({
...@@ -1147,13 +1179,14 @@ ...@@ -1147,13 +1179,14 @@
1147 uni.navigateTo({ 1179 uni.navigateTo({
1148 url: `/myCenter/goPay?payName=${encodeURIComponent(form.value.name || '')}&assoName=${encodeURIComponent(assoName)}` 1180 url: `/myCenter/goPay?payName=${encodeURIComponent(form.value.name || '')}&assoName=${encodeURIComponent(assoName)}`
1149 }) 1181 })
1150 } 1182 }
1151 1183
1152 // 根据协会ID获取协会名称(只获取最后一级) 1184 // 根据协会ID获取协会名称(只获取最后一级)
1153 function getAssoName(parentId) { 1185 function getAssoName(parentId) {
1154 if (!parentId || !assoList.value || assoList.value.length === 0) { 1186 if (!parentId || !assoList.value || assoList.value.length === 0) {
1155 return '' 1187 return ''
1156 } 1188 }
1189
1157 // 递归查找协会名称 1190 // 递归查找协会名称
1158 function findInTree(list) { 1191 function findInTree(list) {
1159 for (const item of list) { 1192 for (const item of list) {
...@@ -1167,11 +1200,12 @@ ...@@ -1167,11 +1200,12 @@
1167 } 1200 }
1168 return null 1201 return null
1169 } 1202 }
1203
1170 return findInTree(assoList.value) || '' 1204 return findInTree(assoList.value) || ''
1171 } 1205 }
1172 1206
1173 // 根据选择的值数组获取完整的协会路径名称 1207 // 根据选择的值数组获取完整的协会路径名称
1174 function getAssoFullName(valueArr) { 1208 function getAssoFullName(valueArr) {
1175 if (!valueArr || valueArr.length === 0 || !assoList.value || assoList.value.length === 0) { 1209 if (!valueArr || valueArr.length === 0 || !assoList.value || assoList.value.length === 0) {
1176 return '' 1210 return ''
1177 } 1211 }
...@@ -1190,22 +1224,22 @@ ...@@ -1190,22 +1224,22 @@
1190 } 1224 }
1191 } 1225 }
1192 return pathNames.join('/') 1226 return pathNames.join('/')
1193 } 1227 }
1194 1228
1195 // 去认证 - 提交认证信息 1229 // 去认证 - 提交认证信息
1196 function doCertification() { 1230 function doCertification() {
1197 submitStep2() 1231 submitStep2()
1198 } 1232 }
1199 1233
1200 // 审核详情 - 跳转到审核详情页面 1234 // 审核详情 - 跳转到审核详情页面
1201 function goAuditDetail() { 1235 function goAuditDetail() {
1202 uni.navigateTo({ 1236 uni.navigateTo({
1203 url: '/myCenter/certAuditDetail' 1237 url: '/myCenter/certAuditDetail'
1204 }) 1238 })
1205 } 1239 }
1206 1240
1207 // 退出登录 1241 // 退出登录
1208 function handleLogout() { 1242 function handleLogout() {
1209 uni.showModal({ 1243 uni.showModal({
1210 title: '提示', 1244 title: '提示',
1211 content: '确定要退出当前账号吗?', 1245 content: '确定要退出当前账号吗?',
...@@ -1220,15 +1254,15 @@ ...@@ -1220,15 +1254,15 @@
1220 } 1254 }
1221 } 1255 }
1222 }); 1256 });
1223 } 1257 }
1224 1258
1225 // 监听步骤变化,加载审核详情 1259 // 监听步骤变化,加载审核详情
1226 watch(activeStep, (newVal) => { 1260 watch(activeStep, (newVal) => {
1227 console.log('activeStep changed:', newVal) 1261 console.log('activeStep changed:', newVal)
1228 if (newVal === 3) { 1262 if (newVal === 3) {
1229 getMyCertStageFN() 1263 getMyCertStageFN()
1230 } 1264 }
1231 }) 1265 })
1232 </script> 1266 </script>
1233 1267
1234 <style lang="scss" scoped> 1268 <style lang="scss" scoped>
...@@ -1410,15 +1444,15 @@ ...@@ -1410,15 +1444,15 @@
1410 } 1444 }
1411 } 1445 }
1412 1446
1413 .logout-icon { 1447 .logout-icon {
1414 font-size: 28rpx; 1448 font-size: 28rpx;
1415 color: #e64329; 1449 color: #e64329;
1416 } 1450 }
1417 1451
1418 .logout-text { 1452 .logout-text {
1419 font-size: 24rpx; 1453 font-size: 24rpx;
1420 color: #e64329; 1454 color: #e64329;
1421 } 1455 }
1422 1456
1423 1457
1424 .status-box { 1458 .status-box {
...@@ -1773,6 +1807,7 @@ ...@@ -1773,6 +1807,7 @@
1773 display: block; 1807 display: block;
1774 // overflow: hidden; 1808 // overflow: hidden;
1775 } 1809 }
1810
1776 :deep(.uni-data-picker .selected-area) { 1811 :deep(.uni-data-picker .selected-area) {
1777 width: 100%; 1812 width: 100%;
1778 padding: 0 20rpx; 1813 padding: 0 20rpx;
...@@ -1781,6 +1816,7 @@ ...@@ -1781,6 +1816,7 @@
1781 justify-content: flex-start; 1816 justify-content: flex-start;
1782 align-items: center; 1817 align-items: center;
1783 } 1818 }
1819
1784 :deep(.uni-data-picker .selected-text) { 1820 :deep(.uni-data-picker .selected-text) {
1785 font-size: 28rpx; 1821 font-size: 28rpx;
1786 color: #333; 1822 color: #333;
...@@ -1791,6 +1827,7 @@ ...@@ -1791,6 +1827,7 @@
1791 max-width: 100%; 1827 max-width: 100%;
1792 flex: 1; 1828 flex: 1;
1793 } 1829 }
1830
1794 :deep(.uni-data-picker .uni-data-picker__input) { 1831 :deep(.uni-data-picker .uni-data-picker__input) {
1795 text-align: left !important; 1832 text-align: left !important;
1796 white-space: nowrap; 1833 white-space: nowrap;
...@@ -1798,15 +1835,18 @@ ...@@ -1798,15 +1835,18 @@
1798 text-overflow: ellipsis; 1835 text-overflow: ellipsis;
1799 width: 100%; 1836 width: 100%;
1800 } 1837 }
1838
1801 :deep(.selected-list) { 1839 :deep(.selected-list) {
1802 justify-content: start; 1840 justify-content: start;
1803 overflow: hidden; 1841 overflow: hidden;
1804 max-width: 100%; 1842 max-width: 100%;
1805 } 1843 }
1844
1806 :deep(.selected-item) { 1845 :deep(.selected-item) {
1807 max-width: 200rpx; 1846 max-width: 200rpx;
1808 overflow: hidden; 1847 overflow: hidden;
1809 } 1848 }
1849
1810 :deep(.uni-data-picker__view) { 1850 :deep(.uni-data-picker__view) {
1811 overflow: hidden; 1851 overflow: hidden;
1812 text-overflow: ellipsis; 1852 text-overflow: ellipsis;
...@@ -1824,15 +1864,16 @@ ...@@ -1824,15 +1864,16 @@
1824 font-size: 32rpx !important; 1864 font-size: 32rpx !important;
1825 padding: 24rpx 30rpx !important; 1865 padding: 24rpx 30rpx !important;
1826 } 1866 }
1867
1827 :deep(.item-text) { 1868 :deep(.item-text) {
1828 font-size: 32rpx !important; 1869 font-size: 32rpx !important;
1829 } 1870 }
1871
1830 :deep(.selected-item-text) { 1872 :deep(.selected-item-text) {
1831 font-size: 32rpx !important; 1873 font-size: 32rpx !important;
1832 } 1874 }
1833 1875
1834 1876
1835
1836 /* 修复选择器容器宽度问题 */ 1877 /* 修复选择器容器宽度问题 */
1837 .picker-wrapper { 1878 .picker-wrapper {
1838 width: 100%; 1879 width: 100%;
...@@ -1962,7 +2003,8 @@ ...@@ -1962,7 +2003,8 @@
1962 text-align: right; 2003 text-align: right;
1963 font-size: 28rpx; 2004 font-size: 28rpx;
1964 } 2005 }
1965 radio-group label, checkbox-group label{ 2006
1966 padding-right:0rpx; 2007 radio-group label, checkbox-group label {
2008 padding-right: 0rpx;
1967 } 2009 }
1968 </style> 2010 </style>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!