浏览代码

团购可以上传团购名单

gcz 1 月之前
父节点
当前提交
e7ecb92cb0
共有 3 个文件被更改,包括 174 次插入449 次删除
  1. 2 0
      .gitignore
  2. 3 1
      common/config.js
  3. 169 448
      pages/bookticket.vue

+ 2 - 0
.gitignore

@@ -5,6 +5,8 @@ npm-debug.log*
 yarn-debug.log*
 yarn-error.log*
 
+.history/
+
 node_modules/
 
 # Editor directories and files

+ 3 - 1
common/config.js

@@ -2,12 +2,14 @@
  * 配置通用 
  */
 const node_dev = process.env.H_NODE_ENV;
+console.log('node_dev===================',node_dev)
 let baseUrl = '/api/serviceapi',
   wxAppid = 'wx6490eaa0d20d2be2', // 
   staticUrl = 'https://minio.wdzzgs.com/greattransition/staticfile',
   redirectUri = encodeURIComponent('https://greath5.dev.dazesoft.cn/greatgroup/pages/login/login'),
   authUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${wxAppid}&redirect_uri=${redirectUri}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect`,
-  upFileUrl = 'https://serviceapi.wdzzgs.com/thirdapi/upload/single/minio';
+  // upFileUrl = 'https://serviceapi.wdzzgs.com/thirdapi/upload/single/minio';
+  upFileUrl = 'http://fileupload.dev.dazesoft.cn/upload/single/minio';
 if (node_dev) {
 	if(process.env.H_NODE_ENV=='production'){
 		redirectUri = encodeURIComponent('https://h5.wdzzgs.com/greatgroup/pages/login/login')

+ 169 - 448
pages/bookticket.vue

@@ -8,7 +8,7 @@
 		<view class="page-wrap">
 			<view class="base-info">
 				<view class="up u-flex">
-					<image class="img" :src="pageContent.performImg" mode="aspectFill" alt="">
+					<image class="img" :src="pageContent.performImg" mode="aspectFill" alt="" />
 						<view class="text">
 							<view class="name text-item">{{pageContent.performName}}-{{pageContent.goodsName}}</view>
 							<view class="time text-item">日期 {{pageContent.timeDate}}({{pageContent.timeWeek}})</view>
@@ -16,11 +16,6 @@
 								{{pageContent.performTimeEnd}}</view>
 							<view class="num text-item">{{pageContent.goodsName}} / {{pageContent.seatTypeName}}</view>
 							<view class=" text-item">{{pageContent.auditoriumName}}</view>
-							<!-- <view class="position text-item">{{performInfo.name}}</view> -->
-							<!-- 	<view class="addr u-flex u-row-between">
-							<view class="u-line-1">地址:遵义市《伟大转折》演艺中心</view>
-							<u-icon name="arrow-right" color="#2D2D2D" size="36rpx"></u-icon>
-						</view> -->
 						</view>
 				</view>
 				<view class="down">
@@ -30,19 +25,6 @@
 					</view>
 				</view>
 			</view>
-		<!-- 	<view class="block-wrap purchaser">
-				<view class="block-title u-flex">
-					<view class="name">购票人信息</view>
-				</view>
-				<view class="" v-if="vuex_member_info.isAuth">
-					<view class="item">姓名:{{pageContent.purchaser.name}}</view>
-					<view class="item">手机号:{{pageContent.purchaser.mobile|hidePhoneNumber}}</view>
-					<view class="item">身份证:{{pageContent.purchaser.cardId|maskID}}</view>
-				</view>
-				<view class="un-auth" v-else @click="$u.route('center/factorauth',{from:'bookticket'})">
-					请先<text style="color: #ED0000;">实名认证</text>
-				</view>
-			</view> -->
 			<view class="block-wrap linkman">
 				<view class="block-title u-flex">
 					<view class="name">带队负责人</view>
@@ -64,55 +46,52 @@
 						<text class="tip" v-if="pageContent.touristMin">最少{{pageContent.touristMin}}个观影人</text>
 						<text class="tip" v-if="pageContent.touristMax">最多{{pageContent.touristMax}}个观影人</text> 
 					</view>
-					<!-- <text v-if="needIdcardNumber">需要{{needIdcardNumber}}张身份证</text> -->
 				</view>
 				<view class="people-list">
-					<!-- <view class="people btn" v-if="visitors.length>0" v-for="(visitor,index) in visitors" :key="index">
-						{{visitor.name}}
-					</view> -->
-					<!-- <view class="add-wrap" v-if="visitors.length<needIdcardNumber||!needIdcardNumber"> -->
-					<view class="add-wrap">
-						 <u--input placeholder="请输入观影人姓名" border="surround" v-model="newVisitor.name"></u--input>
-						 <u--input placeholder="请输入观影人身份证" border="surround" v-model="newVisitor.cardId"></u--input>
+					<view class="add-wrap" >
+						<!-- v-if="!fileList.length" -->
+						<u--input placeholder="请输入观影人姓名" border="surround" v-model="newVisitor.name"></u--input>
+						<u--input placeholder="请输入观影人身份证" border="surround" v-model="newVisitor.cardId"></u--input>
 					</view>
-					 <!-- v-if="visitors.length<needIdcardNumber||!needIdcardNumber" -->
-					<view class="btn u-flex u-row-center" @click="addVisitor">
-						<u-icon name="plus-circle" color="#2D2D2D" size="32rpx"></u-icon>
-						<text class="text">新增观影人</text>
+					<view class="btn-wrap u-flex">
+						<view class="btn u-flex u-row-center" @click="addVisitor">
+							<u-icon name="plus-circle" color="#2D2D2D" size="32rpx"></u-icon>
+							<text class="text">新增观影人</text>
+						</view>
+						<view class="btn u-flex u-row-center">
+							<!-- :fileList="fileList" -->
+							<u-upload
+								@afterRead="afterRead"
+								:maxSize="5 * 1024 * 1024"
+								@oversize="onOversize"
+								 accept=".xlsx,.xls"
+								:maxCount="1"
+								@select="onSelect"
+							>
+								<view class="upload-btn u-flex u-row-center">
+									<u-icon name="plus-circle" color="#2D2D2D" size="32rpx"></u-icon>
+									<text class="text">导入观影人(限制5M)</text>
+								</view>
+							</u-upload>
+						</view>
 					</view>
 				</view>
-				<!-- <view class="no-people u-flex" v-if="!visitors.length>0">
-					<text>游客</text>
-					<text class="right" @click="visitorShow = true">点击选择游客</text>
-				</view> -->
 				<view class="peoples" v-if="visitors.length>0">
-					<view class="peoples-item u-flex u-row-between" v-for="(visitor,index) in visitors" :key="index">
+					<view class="peoples-item u-flex u-row-between" v-for="(visitor,index) in displayVisitors" :key="index">
 						<view class="left u-flex">
 							<u-icon @click="delVisitor(visitor)" name="close-circle" color="#2D2D2D"
 								size="32rpx"></u-icon>
-							<text style="margin-left: 8rpx;">观影人{{ index + 1 }}</text>
+							<text class="serial">{{ index + 1 }}</text>
 							<text class="name">{{visitor.name}}</text>
-							<!-- <text class="people-id">{{ visitor.cardId | maskID }}</text> -->
+							<text class="cardId">{{visitor.cardId}}</text>
 						</view>
-						<!-- <view class="right" @click="editVisitor(visitor)">编辑</view> -->
 					</view>
-				</view>
-			</view>
-		<!-- 	<view class="coupon">
-				<view class="title u-flex u-row-between u-border-bottom">
-					<text>本单可享优惠</text>
-				</view>
-				<view class="single-til u-flex u-row-between">
-					<view class="text">优惠券</view>
-					<view class="more-text u-flex">
-						<text>未使用</text>
-						<u-icon name="arrow-right" color="#E6E6E6" size="24rpx"></u-icon>
+					<view class="expand-btn" v-if="visitors.length > 5" @click="showAllVisitors = !showAllVisitors">
+						{{ showAllVisitors ? '收起' : '展开查看更多' }}
+						<u-icon :name="showAllVisitors ? 'arrow-up' : 'arrow-down'" size="24rpx" color="#666"></u-icon>
 					</view>
 				</view>
-				<view class="no-coupon">
-					您暂无可使用优惠券~
-				</view>
-			</view> -->
+			</view>
 			<view class="notice">
 				<view class="title u-flex u-row-between u-border-bottom">
 					<text>购票须知</text>
@@ -120,16 +99,6 @@
 				<view class="notice-item parse-content">
 					<u-parse :content="pageContent.ticketNotice"></u-parse>
 				</view>
-				<!-- <view class="notice-item">
-					1.由于设备故障等不可抗力因素,存在少量场次取消的情况,会
-					进行退票退款
-				</view>
-				<view class="notice-item">
-					2.由于影院系统不稳定等因素,存在出票失败的情况,会进行退款
-				</view>
-				<view class="notice-item">
-					3.取票码可以在“我的-订单页”中查看
-				</view> -->
 			</view>
 		</view>
 		<u-popup :show="visitorShow">
@@ -139,7 +108,6 @@
 					选择观影人
 				</view>
 				<view class="add-btn u-flex u-row-center" @click="addVisitor">
-					<!-- <image class="img" :src="staticUrl+'/img/car.png'" ></image> -->
 					添加观影人信息
 				</view>
 				<view class="list">
@@ -222,14 +190,14 @@
 				},
 				linkName:'',
 				linkPhone:'',
-
+				fileList: [], // 上传的文件列表
+				fileUrl: '', // 上传的文件URL
+				showAllVisitors: false, // 是否显示所有观影人
 			}
 		},
 		computed: {
 			totalPrice() {
 				let that = this;
-				console.log('that.pageData.priceType',that.pageContent.priceType);
-				console.log('that.pageData.priceType',typeof that.pageContent.priceType);
 				if(that.pageContent.priceType===1){
 					if(this.visitors.length>0){
 						return that.pageContent.salePrice
@@ -260,13 +228,14 @@
 				}else if(this.pageContent.oneMany===2){
 					return 1
 				}
+			},
+			displayVisitors() {
+				return this.showAllVisitors ? this.visitors : this.visitors.slice(0, 5);
 			}
 		},
 		onShow() {
-			// this.getSettlement();
 		},
 		onLoad(page) {
-			console.log('page', page);
 			this.pageData = page;
 			this.performId = page.performId;
 			this.pageData.performTimeId = page.performTimeId;
@@ -276,11 +245,89 @@
 			
 			this.getSystemInfo();
 			this.getSettlement();
-
-			// this.getTemplateIdList(); //获取微信订阅模板列表
-
 		},
 		methods: {
+			// 文件选择回调
+			onSelect(files) {
+				const file = files[0];
+				if (!/\.(xlsx|xls)$/i.test(file.name)) {
+					uni.showToast({
+						title: '请上传XLSX或XLS格式的文件',
+						icon: 'none'
+					});
+					return false;
+				}
+				return true;
+			},
+			// 文件读取后的处理
+			afterRead(files) {
+				this.fileList = [files.file];
+				const size  = this.fileList[0].size/1024/1024;//M
+				if(size>5){
+					this.onOversize();
+					return
+				}
+				uni.showLoading({
+					title: '文件上传中...'
+				});
+				uni.uploadFile({
+					url: this.$commonConfig.baseUrl+'/member/marketTeamApplyViewer/analysis',		
+					filePath: files.file.url,
+					name: 'file',
+					header: {
+						'Authorization': `Bearer ${this.vuex_user_info.accessToken}`
+					},
+					formData: {
+						bucket: 'greattransition'
+					},
+					success: (res) => {
+						if (res.statusCode === 200) {
+							const data = JSON.parse(res.data);
+							if (data.code === 200) {
+								const newVisitors = data.data || [];
+								const uniqueVisitors = newVisitors.filter(newVisitor => {
+									return !this.visitors.some(existingVisitor => 
+										existingVisitor.cardId === newVisitor.cardId
+									);
+								});
+								this.visitors = [...this.visitors, ...uniqueVisitors];
+								uni.showToast({
+									title: '导入成功',
+									icon: 'success'
+								});
+							} else {
+								this.clearFile();
+								uni.showToast({
+									title: data.msg || '导入失败',
+									icon: 'none'
+								});
+							}
+						}
+					},
+					fail: () => {
+						this.clearFile();
+						uni.showToast({
+							title: '导入失败',
+							icon: 'none'
+						});
+					},
+					complete: () => {
+						uni.hideLoading();
+					}
+				});
+			},
+			// 文件大小超出限制
+			onOversize() {
+				uni.showToast({
+					title: '文件大小不能超过5M',
+					icon: 'none'
+				});
+			},
+			// 清除已上传的文件
+			clearFile() {
+				this.fileList = [];
+				this.fileUrl = '';
+			},
 			leftClick(e) {
 				let pages = getCurrentPages();
 				if (pages.length == 1) {
@@ -291,31 +338,11 @@
 			},
 			getSettlement() {
 				this.$u.api.getSettlement(this.pageData).then(res => {
-					// console.log('getSettlement',res.data);
 					this.pageContent = res.data;
-					// this.getMemberAll();
 				}).catch(err => {
 					console.log('getSettlement', err);
 				})
 			},
-			getMemberAll() {
-				let that = this;
-				// const userId = this.vuex_member_info.id;
-				const userId = this.pageContent.viewerList[0]?.id;
-				this.$u.api.selectMemberAll({
-					userid: userId
-				}).then(res => {
-					// console.log('getMemberAll',res.data);
-					this.visitorList = res.data.list;
-					// this.visitors = this.visitorList.filter(obj => obj.memberId==userId);
-					this.visitors = this.visitorList.filter(obj => that.selectedVisitor.includes(obj.cardId));
-					// console.log('this.visitorList',this.visitorList);
-					// console.log('this.selectedVisitor',this.selectedVisitor);
-					// console.log('this.visitors',this.visitors);
-				}).catch(err => {
-					console.log('getMemberAll', err);
-				})
-			},
 			confirmVisitor() {
 				let that = this;
 				if(this.needIdcardNumber&&this.needIdcardNumber!==this.selectedVisitor.length){
@@ -325,7 +352,6 @@
 					})
 					return false
 				}
-				// console.log('selectedVisitor',this.selectedVisitor);
 				this.visitorShow = false;
 				this.visitors = this.visitorList.filter(obj => that.selectedVisitor.includes(obj.id)).map(item => {
 					return {
@@ -334,11 +360,8 @@
 						cardId: item.cardId
 					}
 				});
-				// console.log('this.visitors',this.visitors);
 			},
 			delVisitor(visitor) {
-				// console.log('delVisitor',visitor);
-				// console.log('this.visitors',this.visitors);
 				this.visitors = this.visitors.filter(obj => obj.cardId != visitor.cardId);
 			},
 			addVisitor() {
@@ -357,47 +380,7 @@
 					cardId: item.cardId,
 				});
 			},
-			getTemplateIdList() {
-				this.$u.api.templateIdList({
-					templateLabel: 'order_pay'
-				}).then(res => {
-					console.log('getTemplateIdList', res.data);
-					this.templateIdList = res.data.list.map(item => {
-						return item.templateId
-					});
-					// if(this.templateIdList.length>0){
-					// 	this.templateEven();
-					// }
-				}).catch(err => {
-					console.log('getTemplateIdList', err);
-				})
-			},
 			applyOrder(){
-				// 一证多票调整暂时隐藏
-				// if(this.needIdcardNumber&&this.needIdcardNumber!==this.visitors.length){
-				// 	uni.showToast({
-				// 		title:'观影人信息不正确',
-				// 		icon:'none'
-				// 	})
-				// 	return false
-				// }
-				// if(this.pageContent.oneMany === 2 && this.pageContent.personnelNum!==0){//一证多票,补齐观影人信息
-				// 	let dontNeedCardsNumber = this.pageContent.personnelNum - this.visitors.length;
-				// 	if(dontNeedCardsNumber>0){//
-				// 		for (let i = 0;i<dontNeedCardsNumber;i++) {
-				// 			console.log('dontNeedCardsNumber',dontNeedCardsNumber);
-				// 			console.log('this.visitors---',this.visitors);
-				// 			this.visitors.push({
-				// 				name: this.visitors[0].name,
-				// 				cardId: this.visitors[0].cardId,
-				// 				// mobile: this.visitors[0].mobile,
-				// 			});
-				// 		}
-				// 	}
-				// }
-				// 一证多票调整暂时隐藏
-				console.log('applyOrder');
-				
 				if(!this.linkName||!this.linkPhone){
 					uni.showToast({
 						title:'请填写带队负责人信息',
@@ -414,7 +397,6 @@
 				}
 				
 				this.cansubmit = false;
-				// console.log('this.pageContent',this.pageContent);
 				let params = {
 					theatreId:this.theatreId,
 					theatreName:this.theatreName,
@@ -434,7 +416,6 @@
 					linkPhone:this.linkPhone,
 					
 				}
-				console.log('params',params);
 				this.$u.api.teamApply(params).then(res => {
 					uni.$u.route('/center/paysuccess')				
 				}).catch(err => {
@@ -443,318 +424,24 @@
 					console.log('applyOrder', err);
 				})
 			},
-			submitorder() {
-				if(this.needIdcardNumber&&this.needIdcardNumber!==this.visitors.length){
-					uni.showToast({
-						title:'观影人信息不正确',
-						icon:'none'
-					})
-					return false
-				}
-				if(this.pageContent.oneMany === 2 && this.pageContent.personnelNum!==0){//一证多票,补齐观影人信息
-					let dontNeedCardsNumber = this.pageContent.personnelNum - this.visitors.length;
-					if(dontNeedCardsNumber>0){//
-						for (let i = 0;i<dontNeedCardsNumber;i++) {
-							console.log('dontNeedCardsNumber',dontNeedCardsNumber);
-							this.visitors.push({
-								name: this.visitors[0].name,
-								idcard: this.visitors[0].idcard,
-								mobile: this.visitors[0].mobile,
-							});
-						}
-					}
-				}
-				let params = {
-					performId: this.pageContent.performId,
-					goodsList: [{
-						goodsId: this.pageContent.goodsId,
-						salePeice: this.pageContent.salePrice,
-						saleNum: 1
-					}],
-					auditoriumId: this.pageContent.auditoriumId,
-					performTimeId: this.pageContent.performTimeId,
-					seatTypeId: this.pageContent.seatTypeId,
-					purchaser: {
-						name: this.pageContent.purchaser.name,
-						mobile: this.pageContent.purchaser.mobile,
-						cardId: this.pageContent.purchaser.cardId
-					},
-					viewerList: this.visitors
-				}
-				// #ifdef MP
-				params['source'] = 1
-				// #endif 
-				// #ifdef H5
-				params['source'] = 4
-				// #endif
-				this.cansubmit = false;
-				// console.log('pageData',this.pageData);
-				// console.log('visitors',this.visitors);
-				// console.log('params',params);
-				this.$u.api.submitOrder(params).then(res => {
-					// console.log('submitOrder',res.data);
-					this.orderId = res.data.orderId;
-					// this.templateEven()
-					this.setTemplate();
-
-				}).catch(err => {
-					this.cansubmit = true;
-					uni.$u.toast(err.msg);
-					if (err.msg.includes('限购')) {
-						setTimeout(() => {
-							uni.$u.route('/center/order', {
-								status: 0
-							});
-						}, 2000)
-					}
-					console.log('submitOrder', err);
-				})
-			},
-			// 订阅消息
-			templateEven() {
-				let that = this
-				wx.showModal({
-					title: '温馨提示',
-					content: '为更好的促进与您的交流,服务号需要实时向您发送消息',
-					confirmText: "同意",
-					cancelText: "拒绝",
-					success: function(res) {
-						if (res.confirm) {
-							//调用订阅消息
-							console.log('用户点击确定');
-							//调用订阅
-							that.setTemplate();
-						} else if (res.cancel) {
-							console.log('用户点击取消');
-							///显示第二个弹说明一下
-							wx.showModal({
-								title: '温馨提示',
-								content: '拒绝后您将无法获取实时的消息',
-								confirmText: "知道了",
-								showCancel: false,
-								success: function(res) {
-									that.gotoPay();
-									///点击知道了的后续操作 
-									///如跳转首页面 
-								}
-							});
-						}
-					}
-				});
-			},
-			// 设置小程序订阅消息
-			setTemplate() {
-				let that = this;
-				console.log('templateIdList', this.templateIdList);
-				// #ifdef MP
-				uni.requestSubscribeMessage({
-					tmplIds: that.templateIdList,
-					success(res) {
-						// that.gotoPay();
-						console.log("success:", res);
-					},
-					fail(res) {
-						console.log("fail:", res);
-					},
-					complete(res) {
-						that.gotoPay();
-						console.log("complete:", res);
-					}
-				})
-				// #endif
-				// #ifdef H5
-				that.gotoPay()
-				// #endif
-			},
-			gotoPay() {
-				this.$u.api.gotoPay({
-					orderId: this.orderId,
-					openid: ''
-				}).then(res => {
-					this.payResult = res.data.payInfo;
-					this.payResult.package = res.data.payInfo.packageValue;
-					// #ifdef H5
-					this.initConfig(this.payResult)
-					// #endif 
-					// #ifdef MP
-					this.wxPay()
-					// #endif 
-
-
-					// if(this.params.paymentMode==1||this.params.paymentMode==4){
-					// 	this.wxPay()
-					// }else{
-					// 	uni.$u.route('/shopping/paysuccess');
-					// }
-					console.log('gotoPayres', res.data);
-				}).catch(err => {
-					this.cansubmit = true;
-					// this.paypass = '';
-					// this.checkPassShow = false;
-					console.log('gotoPay', err);
-				})
-			},
-			wxPay() {
-				let that = this;
-				uni.requestPayment({
-					...this.payResult,
-					"provider": "wxpay",
-					"orderInfo": {
-						// "appid": "wx499********7c70e",  // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致
-						// "noncestr": "c5sEwbaNPiXAF3iv", // 随机字符串
-						// "package": "Sign=WXPay",        // 固定值
-						// "partnerid": "148*****52",      // 微信支付商户号
-						// "prepayid": "wx202254********************fbe90000", // 统一下单订单号 
-						// "timestamp": 1597935292,        // 时间戳(单位:秒)
-						// "sign": "A842B45937F6EFF60DEC7A2EAA52D5A0" // 签名,这里用的 MD5/RSA 签名
-					},
-					success(res) {
-						that.payQuery();
-					},
-					fail(e) {
-						uni.$u.route('/center/order', {
-							status: 0
-						});
-						console.log('wxPayfail', e);
-					},
-					complete() {
-						this.cansubmit = true;
-					}
-				})
-			},
-			payQuery() {
-				let that = this;
-				let retryCount = 0;
-				let maxRetryCount = 5; // 设置最大重试次数
-				let interval = 2000; // 设置间隔时间为2秒
-				let timeout = 10000; // 设置超时时间为10秒
-				let timer;
-				uni.showLoading({
-					title: '支付结果查询中'
-				})
-				timer = setInterval(() => {
-					retryCount++;
-					if (retryCount > maxRetryCount || retryCount * interval > timeout) {
-						clearInterval(timer);
-						uni.hideLoading();
-						console.log("支付查询超时或达到最大重试次数");
-						// 在这里添加超时或达到最大重试次数的处理逻辑
-						uni.$u.route('/center/order');
-					} else {
-						console.log("第" + retryCount + "次查询");
-						// 调用查询支付状态的方法
-						// 如果支付状态为成功,则清除定时器并处理成功的逻辑
-						// 如果支付状态为失败,则清除定时器并处理失败的逻辑
-						this.$u.api.payQuery({
-							orderId: this.orderId
-						}).then(res => {
-							// 0-未支付 1-已支付 2-支付中 3-支付失败 4-支付退款
-							let payStatus = res.data.payStatus;
-							if (payStatus === 1) {
-								uni.$u.route('/center/order', {
-									status: 3
-								});
-								// uni.$u.route('/center/paysuccess');
-							} else if (payStatus === 0 || payStatus === 2) {
-								this.payQuery()
-							} else if (payStatus === 3) {
-								uni.$u.toast('支付失败')
-							}
-							clearInterval(timer);
-						}).catch(err => {
-							console.log('payQuery', err);
-						}).finally(() => {
-							uni.hideLoading()
-						})
-					}
-				}, interval);
-			},
 			addVisitor(){
-				// if(this.needIdcardNumber&&this.visitors.length>=this.needIdcardNumber){
-				// 	uni.showToast({
-				// 		title:'不需要身份证了',
-				// 		icon:'none'
-				// 	})
-				// 	return false
-				// }
 				if(!this.newVisitor.name){
 					uni.$u.toast('请填写观影人姓名')
 					return
 				}
-				// !uni.$u.test.idCard(this.newVisitor.cardId)
 				if(!this.newVisitor.cardId){
 					uni.$u.toast('请填写观影人身份证')
 					return
 				}
-				// console.log('this.newVisitor.cardId',this.newVisitor.cardId);
-				// console.log('visitors',this.visitors);
-				// 检查是否存在相同身份证号的观影人
 				if(this.pageContent.oneMany==1){
 					if(this.visitors.some(visitor => visitor.cardId === this.newVisitor.cardId)){
 						uni.$u.toast('相同身份证号的观影人已存在')
 						return
 					}
 				}
-				
-				console.log('this.newVisitor',this.newVisitor);
 				this.visitors.push(this.newVisitor);
 				this.newVisitor = {name:'',cardId:''};
-				// this.$u.api.authID({name:this.newVisitor.name,idcard:this.newVisitor.cardId}).then(res=>{
-				// 	if(res.data.status===1){
-				// 		this.visitors.push(this.newVisitor);
-				// 		this.newVisitor = {name:'',cardId:''};
-				// 	}else{
-				// 		uni.$u.toast(res.data.errReason)
-				// 	}
-				// 	// console.log('res',res.data);
-				// }).catch(err=>{
-				// 	uni.$u.toast('认证失败')
-				// 	console.log('login',err);
-				// })
-				
 			},
-
-			/**
-			 * 公众号微信支付
-			 */
-			initConfig() {
-				// #ifdef H5
-				let that = this
-				wxH5.config({
-					debug: false, // 这里一般在测试阶段先用ture,等打包给后台的时候就改回false, 
-					appId: that.payResult.appId, // 必填,公众号的唯一标识 
-					timestamp: that.payResult.timeStamp, // 必填,生成签名的时间戳     
-					nonceStr: that.payResult.nonceStr, // 必填,生成签名的随机串 
-					signature: that.payResult.paySign, // 必填,签名 
-					jsApiList: ['chooseWXPay', 'checkJsApi'] // 必填,需要使用的JS接口列表 
-				})
-				wxH5.ready(() => {
-					wxH5.chooseWXPay({
-						timestamp: that.payResult.timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符     
-						nonceStr: that.payResult.nonceStr, // 支付签名随机串,不长于 32 位         
-						package: that.payResult.packageValue, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)     
-						signType: 'SHA1', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'     
-						paySign: that.payResult.paySign, // 支付签名     
-						success: () => {
-							that.payQuery();
-						},
-						fail: (e) => {
-							uni.$u.route('/center/order', {
-								status: 0
-							});
-							console.log('wxPayfail', e);
-						},
-						cancel: () => {
-							uni.$u.route('/center/order', {
-								status: 0
-							});
-							that.cansubmit = true;
-						}
-					})
-				})
-				// #endif
-			}
-
 		}
 	}
 </script>
@@ -842,24 +529,12 @@
 		padding: 32rpx 30rpx 34rpx;
 
 		.block-title {
-			// padding-left: 16rpx;
 			position: relative;
 			margin-bottom: 22rpx;
 			font-size: 24rpx;
 			font-weight: 500;
 			color: #CACACA;
 
-			// &:before{
-			// 	content: '';
-			// 	width: 6rpx;
-			// 	height: 32rpx;
-			// 	background: #1677FF;
-			// 	border-radius: 4rpx;
-			// 	position: absolute;
-			// 	left: 0;
-			// 	top: 50%;
-			// 	margin-top: -16rpx;
-			// }
 			.name {
 				font-size: 32rpx;
 				font-weight: bold;
@@ -883,13 +558,17 @@
 			font-size: 28rpx;
 			font-weight: 400;
 			color: #7F7F7F;
-			margin-bottom: 24rpx;
+			// margin-bottom: 24rpx;
 
 			.peoples-item {
 				margin-bottom: 10rpx;
 			}
-
+			.serial{
+				margin-left: 3px;
+				min-width: 2em;
+			}
 			.name {
+				min-width: 4em;
 				margin-left: 20rpx;
 				margin-right: 28rpx;
 				font-size: 28rpx;
@@ -913,9 +592,12 @@
 
 	.people-list {
 		margin-bottom: 20rpx;
+		.btn-wrap{
+			gap: 10px;
+		}
 
 		.btn {
-			width: 185rpx;
+			min-width: 185rpx;
 			height: 60rpx;
 			line-height: 60rpx;
 			font-size: 24rpx;
@@ -1144,4 +826,43 @@
 		}
 	}
 }
+
+.upload-wrap {
+	margin-top: 20rpx;
+	.file-info {
+		padding: 20rpx;
+		background-color: #f8f8f8;
+		border-radius: 8rpx;
+		.left {
+			.filename {
+				margin: 0 10rpx;
+				max-width: 400rpx;
+				overflow: hidden;
+				text-overflow: ellipsis;
+				white-space: nowrap;
+			}
+			.filesize {
+				color: #909399;
+				font-size: 24rpx;
+			}
+		}
+	}
+}
+.upload-btn {
+	width: 100%;
+	height: 100%;
+}
+.expand-btn {
+	text-align: center;
+	padding-top: 20rpx;
+	font-size: 24rpx;
+	color: #666;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	
+	.u-icon {
+		margin-left: 10rpx;
+	}
+}
 </style>