From ad876a6fea2df6e2a831d4c9d95cf724855610f4 Mon Sep 17 00:00:00 2001
From: Liuyi <candymxq888@outlook.com>
Date: 星期六, 14 十二月 2024 16:43:35 +0800
Subject: [PATCH] 修复用户微信扫码进入小程序无法跳转及登录问题,修改会员卡解绑接口

---
 pages/addCard/index.vue |  205 +++++++++++++++++++++++++++++----------------------
 1 files changed, 116 insertions(+), 89 deletions(-)

diff --git a/pages/addCard/index.vue b/pages/addCard/index.vue
index c3a1b07..c9bb53c 100644
--- a/pages/addCard/index.vue
+++ b/pages/addCard/index.vue
@@ -1,70 +1,129 @@
+<script setup>
+import { onMounted,ref} from 'vue';
+import{ creatUserArchive } from '../../api/index.js'
+
+const form = ref({
+	id:JSON.parse(uni.getStorageSync('userInfo')).id,
+    waterCardNumber:'',
+    userName:'',
+    userPhone:'',
+    remark:'',
+})
+function toScan(){
+	// 调用二维码扫描接口
+	uni.scanCode({
+		scanType: ['qrCode'],
+		success: function (res) {
+			console.log('条码内容:' + res.result);
+			let data = res.result.split('&id=')
+			form.value.waterCardNumber = data[1]
+			console.log('form.value.waterCardNumber',form.value.waterCardNumber)
+		}
+	});
+}
+//校验
+const formRef = ref()
+const rules = ref({
+	waterCardNumber: {
+		rules:[
+			{required: true,errorMessage: '请输入卡号'}]
+	},
+	userName: {
+		rules:[
+			{required: true,errorMessage: '请输入姓名'},
+			{pattern:/^[\u4e00-\u9fa5\\.]+$/, errorMessage: '请输入中文或" . "符号'}
+			]
+	},
+	userPhone: {
+		rules:[
+			{required: true,errorMessage: '请输入您的手机号'},
+			{pattern: /^1[3-9]\d{9}$/, errorMessage: '手机号格式不正确'}
+			]
+	},
+})
+async function submit(){
+	formRef.value.validate().then(async() =>{
+		await creatUserArchive(form.value).then((res) =>{
+			if(res.code == 200){
+				uni.showToast({
+					title: '添加成功!',
+					image: '../../static/images/other/success.svg',
+					duration:2000     
+				}).then(() =>{
+					uni.navigateBack()
+				})
+			}else if(res.code == 300){
+				uni.showToast({
+					title: res.msg,
+					duration:2000,
+					icon:'none'
+				})
+			}else{
+				uni.showToast({
+					title:'绑卡失败',
+					duration:2000,
+					icon:'none'
+				})
+			}
+		})
+	})
+}
+onMounted(() =>{
+})
+</script>
 <template>
 	<view class="container">
 		<view class="content">
-			<navbar @navBackTo="navBackTo()" title="绑定会员卡"></navbar>
+			<navbar title="绑定会员卡"></navbar>
 			<view class="main">
 				<view class="title">请填写卡及个人信息</view>
 				<view class="form">
+					<uni-forms ref="formRef" :model="form" :rules="rules" label-width = 100>
+						<uni-forms-item class="form-item" label="卡号:" name="waterCardNumber">
+							<view class="card-item">
+								<input v-model="form.waterCardNumber" placeholder="请输入卡号或扫描二维码" />
+								<image @click="toScan()" src="../../static/images/addCard/code.png" alt=""></image>
+							</view>
+						</uni-forms-item>
+						<uni-forms-item label="姓名:" name="userName">
+							<input v-model="form.userName" placeholder="请输入姓名" />
+						</uni-forms-item>
+						<uni-forms-item label="联系方式:" name="userPhone">
+							<input type="textarea" v-model="form.userPhone" placeholder="请输入手机号" />
+						</uni-forms-item>
+						<uni-forms-item label="备注:" name="remark">
+							<input type="textarea" v-model="form.remark" placeholder="请输入内容" />
+						</uni-forms-item>
+					</uni-forms>
+				</view>
+				<!-- <view class="form">
 					<view class="form-item card-item">
 						<text>卡号:</text>
-						<input v-model="form.cardNumber" placeholder="请输入卡号"/>
-						<image src="../../static/images/addCard/code.png" alt=""></image>
+						<input v-model="form.waterCardNumber" placeholder="请输入卡号"/>
+						<image @click="toScan()" src="../../static/images/addCard/code.png" alt=""></image>
 					</view>
 					<view class="form-item">
 						<text>姓名:</text>
-						<input v-model="form.cardNumber" placeholder="请输入姓名"/>
+						<input v-model="form.userName" placeholder="请输入姓名"/>
 					</view>
 					<view class="form-item">
 						<text>联系方式:</text>
-						<input v-model="form.cardNumber" placeholder="请输入手机号"/>
-					</view>
-					<view class="form-item">
-						<text>区域:</text>
-						<input v-model="form.cardNumber" placeholder="请选择区域"/>
-					</view>
-					<view class="form-item">
-						<text>地址:</text>
-						<input v-model="form.cardNumber" placeholder="请输入地址"/>
+						<input v-model="form.userPhone" placeholder="请输入手机号"/>
 					</view>
 					<view class="form-item">
 						<text>备注:</text>
-						<input v-model="form.cardNumber" placeholder="请输入内容"/>
+						<input v-model="form.remark" placeholder="请输入内容"/>
 					</view>
-				</view>
+				</view> -->
 				<view class="tips">
 					<text>1、完成实名认证,方便遗失挂失及补卡等。</text>
-					<text>2、绑卡后,运营商可以看到您实名时填写的 姓名和电话。</text>
+					<text>2、绑卡后,运营商可以看到您实名时填写的姓名和电话。</text>
 				</view>
 				<view class="subBtn" @click="submit()">提交信息</view>
 			</view>
 		</view>
 	</view>
 </template>
-
-<script setup>
-import { onMounted,ref} from 'vue';
-//状态栏高度
-// const statusBarHeight = ref()
-//返回
-function navBackTo(){
-	uni.navigateBack()
-}
-const form = ref({
-    cardNumber:'',
-    name:'',
-    phone:'',
-    address:'',
-    remark:'',
-})
-function submit(){
-	console('res')
-}
-onMounted(() =>{
-	// if(uni.getMenuButtonBoundingClientRect){
-	// 	statusBarHeight.value = uni.getMenuButtonBoundingClientRect().top * 2
-	// }
-})
-</script>
 
 <style lang="scss" scoped>
 	   .container{
@@ -73,32 +132,11 @@
 		   .content{
 			   width:100%;
 			   height:100vh;
-			   .navbar{
-				   width:100%;
-				   height:176rpx;
-				   background: linear-gradient(to bottom,#5EA1FA,#8BC1FC);
-				   display: flex;
-				   align-items: flex-end;
-				   padding-bottom:24rpx;
-				   box-sizing: border-box;
-				   image{
-					   width:20rpx;
-					   height:40rpx;
-					   margin-left:32rpx;
-				   }
-				   text{
-					   font-weight: 400;
-					   font-size: 36rpx;
-					   color: #000000;
-					   margin-left: 234rpx;
-					   
-				   }
-			   }
 		   .main{
 			   width:100%;
 			   height: calc(100vh - 176rpx);
 			   background:linear-gradient(to top,#FFFFFF,#E8EFFF);
-			   padding:0 32rpx 38rpx;
+			   padding:0 50rpx 38rpx;
 			   box-sizing:border-box;
 			   .title{
 				   width:100%;
@@ -108,38 +146,26 @@
 				   // background: #e6e6e6; 
 			   }
 			   .form{
-				   height: 700rpx;
+				   height: 600rpx;
 				   width:100%;
 				   background: #FFFFFF;
 				   border-radius: 24rpx;
-				   .form-item{
-					   height:100rpx;
-					   width:96%;
-					   border-bottom:1px solid rgba(226,226,226,0.6);
-					   display: flex;
-					   justify-content:space-between;
-					   align-items: center;
-					   margin: 0 auto;
-					   text{
-						   width:160rpx;
-						   font-weight:400;
-						   font-size: 32rpx;
-						   color: #000000;
-						   margin-left: 24rpx;
-						   // margin-right: 82rpx;
-					   }
-					   input{
-						   width: 450rpx;
-						   :deep(.uni-input-placeholder ){
-							   font-weight: 300;
-							   font-size:32rpx;
-							   color: #ccc;
-						   }
-					   }
+				   padding:30rpx 50rpx 0;
+				   box-sizing: border-box;
+				   input{
+					   line-height:100%;
+					   height:100%;
 				   }
 				   .card-item{
+					   display: flex;
+					   justify-content: space-around;
+					   height:100%;
+					   align-items: center;
 					   input{
 						 width:375rpx;
+						 margin-right:20rpx;
+						 line-height:100%;
+						 height:100%;
 						 }
 						 image{
 							 width:44rpx;
@@ -157,7 +183,7 @@
 				   flex-direction: column;
 				   margin-top:56rpx;
 				   font-weight: 300;
-				   font-size: 32rpx;
+				   font-size:28rpx;
 				   color: #484848;
 				   text:first-child{
 					   margin-bottom:28rpx;
@@ -174,6 +200,7 @@
 				   text-align: center;
 				   line-height:98rpx;
 				   margin-top: 236rpx;
+				   letter-spacing:2px;
 			   }
 		   }
 	   }

--
Gitblit v1.9.3