Forráskód Böngészése

支付充值功能

qzy 4 hónapja
szülő
commit
3594bea761

+ 1 - 1
manifest.json

@@ -3,7 +3,7 @@
     "appid" : "__UNI__4E5B775",
     "description" : "",
     "versionName" : "1.1.3",
-    "versionCode" : "100",
+    "versionCode" : 113,
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {

+ 6 - 4
pages/face/faceRegister.nvue

@@ -20,13 +20,15 @@
 		},
 		onLoad(options) {
 			this.type = options.type || 1;
-			this.userId = uni.getStorageSync('info').id;
 			this.height = uni.getSystemInfoSync().screenHeight + 'px';
 			this.$nextTick(() => {
 				//这里可以做打开摄像头等功能
 				this.openCamera(1)
 			})
 		},
+		onShow() {
+			this.userId = uni.getStorageSync('info').id;
+		},
 		beforeDestroy() {
 			this.release();
 		},
@@ -58,16 +60,16 @@
 				};
 				let header = {
 					satoken: uni.getStorageSync('token'),
-					'Content-Type':'application/x-www-form-urlencoded'
+					'Content-Type': 'application/x-www-form-urlencoded'
 				};
 				uni.request({
 					url: http.ip + '/sp-admin/app/AppUser/faceImg',
 					data: data,
 					method: 'POST',
 					header: header,
-					dataType:'json',
+					dataType: 'json',
 					success(resp) {
-						let res =resp.data;
+						let res = resp.data;
 						if (res.code == 200) {
 							that.release();
 							uni.showToast({

+ 10 - 0
pages/index/index.vue

@@ -230,6 +230,16 @@
 							}
 						}
 					})
+					this.http.request({
+						url: '/level-one-server/app/TbPeople/getById',
+						data: {
+							id: this.user.fkId
+						},
+						success: res => {
+							this.user.wallet = res.data.data.wallet;
+							uni.setStorageSync('info', this.user);
+						}
+					});
 					return;
 				} else if (user.userType == 3) {
 					this.getTbPurchaserAuth()

+ 0 - 17
pages/market/one/leader/handle.vue

@@ -293,23 +293,6 @@
 				});
 			},
 			ok() {
-				let user = this.getUser();
-				if (user.wallet <= 0) {
-					uni.showModal({
-						title: '提示',
-						content: '剩余服务点数不足,请先充值!',
-						success: function(res) {
-							if (res.confirm) {
-								uni.navigateTo({
-									url:'/pages/wallet/wallet'
-								})
-							} else if (res.cancel) {
-								console.log('用户点击取消');
-							}
-						}
-					})
-					return;
-				}
 				//根据不同的步骤提交不同的url或者状态参数
 				if (this.current == 0) {
 					uni.showModal({

+ 0 - 17
pages/market/one/leader/handleThree.vue

@@ -359,23 +359,6 @@ export default {
 			});
 		},
 		ok() {
-			let user = this.getUser();
-			if (user.wallet <= 0) {
-				uni.showModal({
-					title: '提示',
-					content: '剩余可用点数不足,请先充值!',
-					success: function(res) {
-						if (res.confirm) {
-							uni.navigateTo({
-								url:'/pages/wallet/wallet'
-							})
-						} else if (res.cancel) {
-							console.log('用户点击取消');
-						}
-					}
-				})
-				return;
-			}
 			//根据不同的步骤提交不同的url或者状态参数
 			if (this.current == 0) {
 				uni.showModal({

+ 18 - 15
pages/market/two/leader/resale.vue

@@ -35,9 +35,10 @@
 					<text class="desc">¥ {{ item.totalPrice }}</text>
 				</view>
 
-				<view style="font-size: 16px;padding: 5px;height: 80px;line-height: 30px;">注:本次上架需扣除服务1点数,
-					<view>剩余服务点数:<text style="font-weight: bold;">{{user.wallet}}</text><text
-							style="margin-left: 10px;color: blue" @click="toCharge">前往充值</text></view>
+				<view style="font-size: 16px;padding: 5px;height: 100px;line-height: 30px;">*注:
+					<view>本次上架需扣除服务1点数,</view>
+					<view>重复上架只收取一次。剩余服务点数:<text style="font-weight: bold;color: blue;">{{user.wallet}}</text>
+					</view>
 				</view>
 			</view>
 
@@ -45,8 +46,8 @@
 		<view class="mfooter" v-if="item.upStatus != 2">
 			<view class="flex">
 				<view class="f">
-					<button class="btn" @click="ok()" v-if="user.wallet>0">确定上架</button>
-					<button class="btn" style="color: firebrick;" @click="toCharge" v-else>前往充值</button>
+					<button class="btn" v-if="user.wallet>0" @click="ok()">确定上架</button>
+					<button class="btn" v-else @click="toCharge()" style="background-color: chocolate;">前往充值</button>
 				</view>
 			</view>
 		</view>
@@ -78,6 +79,18 @@
 				//this.countPrice();
 			}
 		},
+		onShow() {
+			this.http.request({
+				url: '/level-one-server/app/TbPeople/getById',
+				data: {
+					id: this.user.fkId
+				},
+				success: res => {
+					this.user.wallet = res.data.data.wallet;
+					uni.setStorageSync('info', this.user);
+				}
+			});
+		},
 		methods: {
 			toCharge() {
 				uni.navigateTo({
@@ -104,8 +117,6 @@
 						id: this.item.id
 					},
 					success: res => {
-						// this.resalePrice = (res.data.data.sumPrice + 50).toFixed(2)
-						// this.newRuleList = res.data.data.newRuleList
 						this.fee = res.data.data;
 						this.resalePrice = (this.fee.totalFee + this.item.totalPrice).toFixed(2);
 					}
@@ -113,14 +124,6 @@
 			},
 			ok() {
 				let resalePrice = this.resalePrice;
-				/* if(!resalePrice){
-						uni.showToast({title: '请填写上架金额',icon:'error'});
-					return;
-				}
-				if(resalePrice<this.item.totalPrice){
-					uni.showToast({title: '上架金额不能小于订单金额',icon:'error'});
-					return;
-				} */
 				uni.showModal({
 					title: '提示',
 					content: '确定上架?',

+ 38 - 21
pages/personal/personal.vue

@@ -25,12 +25,14 @@
 				<text>你还未人脸认证,请先人脸认证</text>
 				<text class="icon" style="float: right">&#xe8f2;</text>
 			</view>
-			<view class="message _info" v-if="(user.userType == 1 || user.userType == 2) && user.face == 1">
+			<view class="message _info" style="padding: 10px;"
+				v-if="(user.userType == 1 || user.userType == 2) && user.face == 1">
 				<text class="icon">&#xe643;</text>
-				<text>人脸已认证<text style="color: blue;margin-left: 5px;"></text><text style="color: blue;" @click="authAgain">重新认证</text></text>
+				<text>人脸已认证<text style="color: blue;margin-left: 5px;"></text><text style="color: blue;"
+						@click="authAgain">重新认证</text></text>
 			</view>
 			<!--用户信息-->
-			<view class="user" style="display: flex;">
+			<view class="user" style="display: flex;position: relative;">
 				<image src="../../static/icon/user.png" mode="widthFix" class="head"></image>
 				<view class="con">
 					<view class="nickName omit">{{user.name}}({{ user.phone }})</view>
@@ -40,9 +42,14 @@
 					<view class="tag" v-if="user.userType == 4">司机</view>
 					<view class="tag" v-if="user.userType == 5">商户</view>
 					<view class="tag" v-if="user.userType == 6">合作社</view>
-					<view class="tag" style="margin-left: 0.5rem;" v-if="user.userType == 1||user.userType == 2"
-						@click="go('/pages/wallet/wallet')">服务点数: {{ user.wallet }}</view>
+					<view class="tag" style="margin-left: 0.5rem;background: #ef9010;"
+						v-if="user.userType == 1||user.userType == 2" @click="go('/pages/wallet/wallet')">服务点:<text
+							style="margin-left: 5px;">{{user.wallet}}</text></view>
+					<view @click="go('/pages/wallet/wallet')" class="tag" style="background: 08a2f1;margin-left: 5px;"
+						v-if="user.userType == 1||user.userType == 2">充值</view>
+					<view class="del-account" @click="cancelAccount">注销</view>
 				</view>
+
 				<view class="clear"></view>
 			</view>
 			<view class="cmd">
@@ -66,11 +73,6 @@
 					<text class="title">隐私协议</text>
 					<text class="icon arrow">&#xe8f2;</text>
 				</view>
-				<!-- <view class="s_item" @click="go('/pages/personal/setting')">
-					<text class="icon ic">&#xe817;</text>
-					<text class="title">设置</text>
-					<text class="icon arrow">&#xe8f2;</text>
-				</view> -->
 				<view class="s_item" @click="go('/pages/personal/editPassword')">
 					<text class="icon ic">&#xe817;</text>
 					<text class="title">修改密码</text>
@@ -86,11 +88,11 @@
 			<!-- <button class="btn exit" @click="cancelAccount()">注销账号</button> -->
 		</view>
 		<view class="version">
-		<view style="line-height: 30px;">
-			<view>Copyright@2024-2030</view>
-			<view>天保国际物流投资有限公司版权所有</view>
-			<view>APP版本 {{version}}</view>
-		</view>
+			<view style="line-height: 30px;">
+				<view>Copyright@2024-2030</view>
+				<view>天保国际物流投资有限公司版权所有</view>
+				<view>APP版本 {{version}}</view>
+			</view>
 		</view>
 	</view>
 </template>
@@ -99,7 +101,9 @@
 	export default {
 		data() {
 			return {
-				user: {},
+				user: {
+					wallet: 0
+				},
 				version: uni.getAppBaseInfo().appVersion
 			};
 		},
@@ -135,7 +139,7 @@
 					uni.setStorageSync('info', this.user);
 				}
 			});
-			if (this.user.userType === 1) {
+			if (this.user.userType === 1 || this.user.userType == 2) {
 				this.http.request({
 					url: '/level-one-server/app/TbPeople/getById',
 					data: {
@@ -149,7 +153,7 @@
 			}
 		},
 		methods: {
-			authAgain(){
+			authAgain() {
 				uni.navigateTo({
 					url: '/pages/face/faceRegister?type=1'
 				});
@@ -243,7 +247,7 @@
 				};
 				uni.showModal({
 					title: '提示',
-					content: '确定注销账号?注销后不能登录APP',
+					content: '注销后账号将无法使用!',
 					success: res => {
 						if (res.confirm) {
 							uni.removeStorageSync('token');
@@ -261,7 +265,7 @@
 					}
 				});
 			}
-	},
+		},
 	};
 </script>
 
@@ -325,6 +329,19 @@
 		}
 	}
 
+	.del-account {
+		width: 35px;
+		position: absolute;
+		right: 10px;
+		top: 10px;
+		background: #f54242;
+		color: white;
+		padding: 2px 3px;
+		border-radius: 5px;
+		line-height: 20px;
+		height: 20px;
+	}
+
 	.exit {
 		margin-top: 20px;
 		background-color: white;
@@ -336,4 +353,4 @@
 		color: #888484;
 		text-align: center;
 	}
-</style>
+</style>

+ 171 - 55
pages/wallet/topdown/detail.vue

@@ -1,65 +1,181 @@
 <template>
-	<view>
-		<view class="cmain">
-			<view class="box order_detail" style="margin-top: 0px">
-				<u-divider text="服务点提现信息"></u-divider>
-				<view class="item" style="padding-top: 0px">
-					<text class="label">提现方式</text>
-					<text class="desc">电子银联</text>
-				</view>
-				<view class="item">
-					<text class="label">商户号</text>
-					<text class="desc omit">{{ item.mchid }}</text>
-				</view>
-				<view class="item">
-					<text class="label">商户系统内部订单号</text>
-					<text class="desc omit">{{ item.outTradeNo }}</text>
-				</view>
-				<view class="item">
-					<text class="label">平台系统生成的订单号</text>
-					<text class="desc omit">{{ item.transactionId }}</text>
-				</view>
-				<view class="item">
-					<text class="label">服务点数量(金额)</text>
-					<text class="desc">-{{ item.amount }}</text>
-				</view>
-				<view class="item">
-					<text class="label">提现时间</text>
-					<text class="desc">{{ item.topdownTime }}</text>
-				</view>	
+ <view class="recharge-details">
+ 	<u-divider text="服务点充值信息"></u-divider>
+ 	<view class="content">
+ 		<view class="card">
+			<view class="card-item highlight">
+				<text class="label">提现点数</text>
+				<text class="value">{{ detail.amount }}</text>
 			</view>
-		</view>
-	</view>
+ 			<view class="card-item">
+ 				<text class="label">提现时间</text>
+ 				<text class="value">{{ detail.topdownTime }}</text>
+ 			</view>
+ 		</view>
+ 		<view class="card">
+ 			<view class="card-item">
+ 				<text class="label">微信订单号</text>
+ 				<text class="value">{{ detail.transactionId }}</text>
+ 			</view>
+ 			<view class="card-item">
+ 				<text class="label">系统订单号</text>
+ 				<text class="value">{{ detail.refundOutTradeNo }}</text>
+ 			</view>
+ 		</view>
+ 	</view>
+ 	<view class="footer">
+ 		<button class="return-button" @tap="goBack">返回</button>
+ 	</view>
+ </view>
 </template>
 
 <script>
 export default {
-	data() {
-		return {
-			item: {},
-			param: {},
-		};
-	},
-	onLoad(e) {
-		if (e.id) {
-			this.param.id = e.id
-			this.http.request({
-				url: '/level-one-server/app/WalletManage/getTopDownById',
-				data: this.param,
-				success: res => {
-					this.item = res.data.data;
-				}
-			});
-		}
-	},
-	methods: {
-		
-	}
+  data() {
+    return {
+      detail: {},
+      param: {},
+    };
+  },
+  onLoad(e) {
+    if (e.id) {
+      this.param.id = e.id;
+      this.fetchTopDownData();
+    }
+  },
+  methods: {
+    fetchTopDownData() {
+      this.http.request({
+        url: '/level-one-server/app/WalletManage/getTopDownById',
+        data: this.param,
+        success: res => {
+          this.detail = res.data.data;
+        }
+      });
+    },
+    goBack() {
+      uni.navigateBack({
+        delta: 1
+      });
+    }
+  }
 };
 </script>
 
 <style lang="scss">
-page {
-	background-color: $pg;
-}
-</style>
+	.recharge-details {
+		min-height: 80vh;
+		background-color: #f5f7fa;
+		display: flex;
+		flex-direction: column;
+	}
+
+	.header {
+		background-color: #007AFF;
+		padding: 40rpx 30rpx;
+		display: flex;
+		align-items: center;
+		position: relative;
+
+		.back-button {
+			position: absolute;
+			left: 30rpx;
+
+			.icon-back {
+				font-size: 40rpx;
+				color: #ffffff;
+			}
+		}
+
+		.title {
+			flex: 1;
+			text-align: center;
+			color: #ffffff;
+			font-size: 36rpx;
+			font-weight: bold;
+		}
+	}
+
+	.content {
+		flex: 1;
+		padding: 30rpx;
+	}
+
+	.card {
+		background-color: #ffffff;
+		border-radius: 20rpx;
+		padding: 30rpx;
+		margin-bottom: 30rpx;
+		box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05);
+	}
+
+	.card-item {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		padding: 20rpx 0;
+		border-bottom: 1rpx solid #f0f0f0;
+
+		&:last-child {
+			border-bottom: none;
+		}
+
+		.label {
+			color: #666666;
+			font-size: 28rpx;
+		}
+
+		.value {
+			color: #333333;
+			font-size: 28rpx;
+			font-weight: 500;
+		}
+
+		&.highlight {
+
+			.label,
+			.value {
+				color: #007AFF;
+				font-weight: bold;
+			}
+		}
+	}
+
+	.footer {
+		padding: 30rpx;
+	}
+
+	.return-button {
+		background-color: #007AFF;
+		color: #ffffff;
+		border: none;
+		border-radius: 50rpx;
+		padding: 20rpx 0;
+		font-size: 32rpx;
+		font-weight: bold;
+		box-shadow: 0 4rpx 12rpx rgba(0, 123, 255, 0.3);
+		transition: all 0.3s ease;
+
+		&:active {
+			transform: translateY(2rpx);
+			box-shadow: 0 2rpx 6rpx rgba(0, 123, 255, 0.3);
+		}
+	}
+
+	// 添加一个简单的图标字体,用于返回按钮
+	@font-face {
+		font-family: 'iconfont';
+		src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAKcAAsAAAAABlAAAAJPAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCCcApsgQ0BNgIkAwgLBgAEIAWEbQc2G7oFyK4wbuGJaCVsrXwzCN5Xzef9nLtvzMwHRJIoiAlKQqKQIlGah3TvpF7pzvL/udLXgDhQy0QkqtWuZ87sJvSGnCqkQh6Q0/+cXm0CDnx+oEvNg9oATlsDjLMosgIpIG8Yu8AlPCbQaVYjcVhZ3wIlhTEvEE8MoYBSllQpDW1DvWJjEW9Aazo9Th+BN//9+JeKUkmaMvPi/nHFBco/a3+Wg/9BdAQIEEFwvY2MNSARJ5WZQ1IwLqmTn2WwBdVq8bP2/ycysFXkv7wiyGrIbmAKs+RnrRQEP2vVIPEOXTqx3wTEY7A3cDgFx0vS1d0GlBSIyG5/3Nvde7h69Xrn6Qvd9auDZyuHV3fXL1+ygbZuHT6+Vgm7eAFOx84eX3/Rde7MwZHo9trZ3UtHR3fvHt1dO9c9gu7t3e2jI+jcNbJ/dHvvLrq1tn9y7eDZ9aNn+4/uQNf2T+/t3L3qcPzm9E3H/wdxWPy0z7z9fKs5bK+8mQ+TJfCt/OnGX+Vgp+Dj/0j4N1/8Gx/yEXxrBqXzrWGAn7WfYMFEo2HLlKYGOxSC3KBTJxCtxlHSbgp9Gu3zO3XqhEqLSiVkncYwGbWGRpc1qNVpC52u2F3dZUQpRjpYMQ+h3wVJr0/I+n1hMuoTGqO+odYfJnS6j5hL7LIaZuVYDFGhGPsPnYeKJOlGzTvyNZSLOhPlC49oCnOy4Pk5Z0SKsUNu4SJcFxmGiSAXLuA8dF0Jznmm6FNRqLgxjOp4iEIhDLP/QMdDCimlNjjz/XwNygo1J1Qgki+kUjBOLEGnHycJIdXKdqhbqpZwusAwGEkgXOACctEpCeQ4Ty/RR4lCCo3JFKqOK4r1+TXSD+5AJ+NRpMhRokIdGvQcY6YZk0o6lZRTq5kRAAA=') format('woff2');
+	}
+
+	.iconfont {
+		font-family: "iconfont" !important;
+		font-style: normal;
+		-webkit-font-smoothing: antialiased;
+		-moz-osx-font-smoothing: grayscale;
+	}
+
+	.icon-back:before {
+		content: "\e697";
+	}
+</style>

+ 2 - 6
pages/wallet/topdown/edit.vue

@@ -47,11 +47,7 @@ export default {
   },
   methods: {
     createOrder(provider) {
-		uni.showModal({
-			content: '功能正在开发中...',
-			showCancel: false
-		});
-		return;
+		
       if (!this.isValidAmount) {
         this.errorMessage = '请输入有效的兑现数量'
         return
@@ -63,7 +59,7 @@ export default {
       this.http.request({
         url: '/level-one-server/app/WalletManage/topdownSave',
         data: {
-          amount: this.total_fee * 100, // Convert to cents
+          amount: this.total_fee, // Convert to cents
           goodsName: '服务点兑现'
         },
         success: res => {

+ 105 - 0
pages/wallet/topup/topupSuccess.vue

@@ -0,0 +1,105 @@
+<template>
+  <view class="success-container">
+    <text class="success-title">充值成功</text>
+    <text class="success-amount">充值点数: {{ info.amount }}</text>
+    <text class="success-message">您的服务点数已更新</text>
+    <button class="return-btn" @tap="returnToHome">返回</button>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      info: {
+		  amount:0
+	  }
+    }
+  },
+  onLoad(option) {
+    // 从路由参数中获取充值金额
+	this.geDetail(option.prePayId);
+  },
+  methods: {
+	  geDetail(prePayId){
+		  this.http.request({
+			  url:'/level-one-server/app/TbWalletTopup/getByPrePayId',
+			  data:{prePayId:prePayId},
+			  success:resp=>{
+				  this.info=resp.data.data;
+			  }
+		  })
+	  },
+    returnToHome() {
+      // 返回到应用的首页
+      uni.reLaunch({
+        url: '/pages/personal/personal'
+      })
+    }
+  }
+}
+</script>
+
+<style>
+@font-face {
+  font-family: 'iconfont';
+  src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAKcAAsAAAAABlAAAAJPAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCCcApsgQ0BNgIkAwgLBgAEIAWEbQc2G7oFyK4wbuGJaCVsrXwzCN5Xzef9nLtvzMwHRJIoiAlKQqKQIlGah3TvpF7pzvL/udLXgDhQy0QkqtWuZ87sJvSGnCqkQh6Q0/+cXm0CDnx+oEvNg9oATlsDjLMosgIpIG8Yu8AlPCbQaVYjcVhZ3wIlhTEvEE8MoYBSllQpDW1DvWJjEW9Aazo9Th+BN//9+JeKUkmaMvPi/nHFBco/a3+Wg/9BdAQIEEFwvY2MNSARJ5WZQ1IwLqmTn2WwBdVq8bP2/ycysFXkv7wiyGrIbmAKs+RnrRQEP2vVIPEOXTqx3wTEY7A3cDgFx0vS1d0GlBSIyG5/3Nvde7h69Xrn6Qvd9auDZyuHV3fXL1+ygbZuHT6+Vgm7eAFOx84eX3/Rde7MwZHo9trZ3UtHR3fvHt1dO9c9gu7t3e2jI+jcNbJ/dHvvLrq1tn9y7eDZ9aNn+4/uQNf2T+/t3L3qcPzm9E3H/wdxWPy0z7z9fKs5bK+8mQ+TJfCt/OnGX+Vgp+Dj/0j4N1/8Gx/yEXxrBqXzrWGAn7WfYMFEo2HLlKYGOxSC3KBTJxCtxlHSbgp9Gu3zO3XqhEqLSiVkncYwGbWGRpc1qNVpC52u2F3dZUQpRjpYMQ+h3wVJr0/I+n1hMuoTGqO+odYfJnS6j5hL7LIaZuVYDFGhGPsPnYeKJOlGzTvyNZSLOhPlC49oCnOy4Pk5Z0SKsUNu4SJcFxmGiSAXLuA8dF0Jznmm6FNRqLgxjOp4iEIhDLP/QMdDCimlNjjz/XwNygo1J1Qgki+kUjBOLEGnHycJIdXKdqhbqpZwusAwGEkgXOACctEpCeQ4Ty/RR4lCCo3JFKqOK4r1+TXSD+5AJ+NRpMhRokIdGvQcY6YZk0o6lZRTq5kRAAA=') format('woff2');
+}
+
+.success-container {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  height: 50vh;
+  background-color: #ffffff;
+  padding: 20px;
+}
+
+.success-icon {
+  font-size: 80px;
+  color: #07c160;
+  margin-bottom: 20px;
+}
+
+.iconfont {
+  font-family: "iconfont" !important;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-success:before {
+  content: "\e600";
+}
+
+.success-title {
+  font-size: 24px;
+  font-weight: bold;
+  color: #333333;
+  margin-bottom: 10px;
+}
+
+.success-amount {
+  font-size: 18px;
+  color: #666666;
+  margin-bottom: 10px;
+}
+
+.success-message {
+  font-size: 16px;
+  color: #999999;
+  margin-bottom: 30px;
+}
+
+.return-btn {
+  width: 80%;
+  height: 44px;
+  line-height: 44px;
+  background-color: #07c160;
+  color: #ffffff;
+  border-radius: 22px;
+  text-align: center;
+  font-size: 16px;
+}
+</style>