瀏覽代碼

拍照功能更新

oyq28 2 月之前
父節點
當前提交
c9b8ec3af0
共有 4 個文件被更改,包括 410 次插入223 次删除
  1. 4 3
      api/work.uts
  2. 13 5
      pages/work/record/Camera.uvue
  3. 79 17
      pages/work/record/RecordList.uvue
  4. 314 198
      pages/work/record/camera-scan-code.uvue

+ 4 - 3
api/work.uts

@@ -50,11 +50,12 @@ export type Record = {
 	 date : string,
 	 partno : string,
 	 num : number,
-	 status : string,
+	 status : number,
 	 urlspl : string
 	 imgname : string,
-	 urlpdt : string
-	 workorder: string
+	 urlpdt : string,
+	 pid: number,
+	 workorder: string,
 	 invname: string
  }
 

+ 13 - 5
pages/work/record/Camera.uvue

@@ -35,7 +35,7 @@
 		<view class="bottom-left">
 			<view class="album-preview" @click="handleScanCode">
 				<image class="preview-img" v-if="imageSrc" :src="imageSrc"></image>
-				<text class="preview-tip" v-else>浏览相册</text>
+				<text class="preview-tip" v-else>浏览图片</text>
 			</view>
 		</view>
 
@@ -86,10 +86,18 @@
 
 		methods: {
 			handleScanCode() {
-				let params = "path="+this.imageSrc+"&recordId="+this.recordId+"&num="+this.num
-				uni.navigateTo({
-					url: "/pages/work/record/camera-scan-code?"+params
-				})
+				if(this.imageSrc!=""){
+					let params = "path="+this.imageSrc+"&recordId="+this.recordId+"&num="+this.num
+					uni.navigateTo({
+						url: "/pages/work/record/camera-scan-code?"+params
+					})
+				}else{
+					uni.showToast({
+					  title: '没有拍照文件',
+					  icon: 'error', 
+					  duration: 2000 
+					});
+				}
 			},
 			switchDevicePosition() {
 				this.devicePosition = this.devicePosition == "back" ? "front" : "back"

+ 79 - 17
pages/work/record/RecordList.uvue

@@ -54,26 +54,29 @@
 				<text class="value">{{ item.num }}</text>
 			</view>
 
-			<button class="cancel-btn" v-if="item.status == 1" @click="cancel(item.sxid, item.num)">
+			<button class="cancel-btn" v-if="item.status == 1 || item.status == 2" @click="cancel(item.sxid, item.num)">
 				拍照
 			</button>
 
-			<view class="info-row" style="margin: 10px 0;">
-				<view v-for="(tag,index) in item.imgname" :key="index" v-if="item.imgname[index] != ''">
-					<text class="img-banner" v-if="closeTags[index]" @click="closeTag(index)">{{tag}}</text>
+			<view class="tag-banner" style="">
+				<view class="tag-banner" v-for="(tag,index) in item.imgname" :key="index" v-if="item.imgname.length>0">
+					<text class="img-banner" v-if="item.imgname[index]" @click="closeTag(index)">{{tag}}</text>
 				</view>
 
 			</view>
 			<view class="my-page">
 				<swiper class="swiper-box my-swiper" :current="0" :indicator-dots="true" v-if="item.urlpdt.length>0">
-					<swiper-item v-for="(url, index) in item.urlpdt" :key="index">
+					<swiper-item v-for="(url, index) in item.urlpdt" :key="index" @tap="preview(url)" >
 						<view class="swiper-item ">
 							<image class="my-image" :src="url" mode="aspectFill" />
 						</view>
+						<view v-if="item.imgname.length>0">     
+							<text class="demo-view-label">{{ item.imgname?.[index] ?? ''}}</text>
+						</view>
 					</swiper-item>
 				</swiper>
-				<image :src="item.urlspl" mode="widthFix" v-if="item.urlpdt.length == 0"></image>
-				<view>
+				<image :src="item.urlspl" mode="widthFix" v-if="item.urlpdt.length == 0 && item.urlspl!=''"></image>
+				<view v-if="item.urlspl">
 					<text class="demo-view-label">样张</text>
 				</view>
 			</view>
@@ -98,13 +101,13 @@
 	import {
 		ref
 	} from 'vue'
-	import { getList, Record, recordStatusDict } from '@/api/work';
+	import { getList, Record, recordStatusDict,updateData } from '@/api/work';
 
 	//检查项目最大数量
 	var maxcount = 5
 	var current = ref(1)
 	var records = ref<Record[]>([]);
-	var closeTags = ref([true, true, true, true, true, true, true])
+	//var closeTags = ref<boolean[]>([]);
 	var initRecords = [] as Record[]
 
 	onLoad((options) => {
@@ -112,16 +115,17 @@
 		const num = options?.num ?? "1"
 		const pid = options?.pid ?? "1"
 		maxcount = parseInt(num)
+		//closeTags.value = Array<boolean>(maxcount).fill(true);
 		// #ifdef APP-ANDROID
 		 getList('app_media_record', 'photoitem', photoitem, 'pid', pid, null).then((res : UTSJSONObject) => {
 			let dataList = res?.['data'] as UTSJSONObject[] ?? Array<UTSJSONObject>()
 			if (dataList != null && dataList.length > 0) {
 				dataList.forEach(item => {
 					if (item != null) {
-						const imgnameStr = item['imgname'] as string
-						const urlpdtStr = item['urlpdt'] as string
-						const imgnameArr = imgnameStr.split(",")
-						const urlpdtArr = urlpdtStr.split(",")
+						const imgnameStr = item?.['imgname'] as string ?? ''
+						const urlpdtStr = item?.['urlpdt'] as string ?? ''
+						const imgnameArr = imgnameStr.indexOf(",")>-1? imgnameStr.split(",") : (imgnameStr!=''?[imgnameStr]:[])
+						const urlpdtArr = urlpdtStr.indexOf(",")>-1? urlpdtStr.split(",") : (urlpdtStr!=''?[urlpdtStr]:[])
 						item['imgname'] = imgnameArr
 						item['urlpdt'] = urlpdtArr
 						let record = JSON.parse<Record>(item.toJSONString());
@@ -179,8 +183,58 @@
 		current.value = obj
 		records.value = initRecords.filter(item => item['senum'] == current.value)
 	}
-	const closeTag = (index : number) => {
-		closeTags.value[index] = false
+	const closeTag = (index : number) => {		
+		uni.showModal({
+		  title: '系统提示',
+		  content: '确认是否删除图片',
+		  cancelText: '取消',
+		  confirmText: '确定',
+		  success: function(res) {
+		    if (res.confirm) {
+		        //closeTags.value[index] = false
+				let record = records.value[0]
+				let imgname = record.imgname.filter((img,i)=> i!= index)
+				let urlpdt = record.urlpdt.filter((url,i)=> i!= index)
+				let updatedData = ''
+				if(imgname.length!=urlpdt.length){
+					uni.showToast({
+					  title: '图片数据不正确',
+					  icon: 'error', 
+					  duration: 2000 
+					});
+					return;
+				}
+				console.log(urlpdt)
+				if(imgname.length==0 && urlpdt.length==0){
+					updatedData = "imgname='',urlpdt=''"					
+				}else if(imgname.length==1 && urlpdt.length==1) {
+					updatedData = "imgname='"+imgname[0]+ "',urlpdt='"+urlpdt[0]+"'"
+				}else{
+					updatedData = "imgname='"+imgname.join(",")+ "',urlpdt='"+urlpdt.join(",")+"'"
+				}
+								
+				updateData('app_media_record', updatedData, 'sxid', record.sxid.toString()).then((res : UTSJSONObject) => {
+					let dataList = res?.['data'] as UTSJSONObject[] ?? Array<UTSJSONObject>()
+					if (dataList != null && dataList.length > 0) {
+						console.log(dataList[0])
+						uni.showToast({
+							title: "删除成功!",
+						});
+						
+					}
+				});
+		    }
+		  }
+		})
+	}
+	
+	const preview = (imageUrl: string) => {
+		uni.previewImage({
+		  urls: [imageUrl], // 需要预览的图片链接列表
+		  current: 0, // 当前显示图片的索引
+		  indicator: 'number', // 图片指示器样式
+		  loop: false // 是否可循环预览
+		});
 	}
 
 	const cancel = (id : number, num : number) => {
@@ -458,12 +512,20 @@
 
 	.img-banner {
 		height: 50rpx;
-		width: 120rpx;
+		width: 100%;
 		background-color: #004a99;
 		text-align: center;
 		color: #fff;
 		line-height: 50rpx;
 		border-radius: 10rpx;
-		margin-left: 10rpx;
+		margin-left: 2rpx;
+		font-size: 12px;
+		padding: 0 10rpx;
+	}
+	.tag-banner {
+	  flex-direction: column;
+	  flex-wrap: wrap;
+	  margin: 4px 0;
+	  font-size: 12px;	  
 	}
 </style>

+ 314 - 198
pages/work/record/camera-scan-code.uvue

@@ -1,213 +1,329 @@
 <template>
-  <view style="flex:1">
-	<!--
+	<view style="flex:1">
+		<!--
     <camera style="width: 100%; height: 300px;" :resolution="'high'" :mode="'scanCode'" @scancode="handleScanCode">
     </camera> -->
-	<swiper class="swiper-box my-swiper" :current="swiperDotIndex" :indicator-dots="true" >
-	  <swiper-item v-for="item in data"  >
-	    <view class="swiper-item" @tap="previewSingleImage(item.image)">
-	      <image class="my-image" :src="item.image" mode="aspectFill"   />
-		  <view class="img-name">{{ item.name }}</view>
-	    </view>
-	  </swiper-item>
-	</swiper>
-	    
-    <view class="camera-scan-code-back-wrap">
-      <button class="btn block bg-blue lg round" @click="chooseImage">
-      	浏览相册
-      </button>
-    </view>
-	
-	<view class="camera-scan-code-table">
-		<view class="camera-scan-code-table-pair">
-		     <view class="camera-scan-code-table-pair-label">
-		          <text></text>
-		        </view>
-		        <view class="camera-scan-code-table-pair-value">
-					<checkbox-group @change="checkboxChange">
-					  <view v-for="(item, index) in data">
-						  <checkbox :value="item.name" :checked="true"></checkbox>
-						   {{ dyImgName+"-"+(index+1)}}
-					  </view>
-				    </checkbox-group>
-		        </view>
+		<swiper class="swiper-box my-swiper" :current="swiperDotIndex" :indicator-dots="true">
+			<swiper-item v-for="item in data">
+				<view class="swiper-item" @tap="previewSingleImage(item.image)">
+					<image class="my-image" :src="item.image" mode="aspectFill" />
+				</view>
+				<view>
+					<text class="demo-view-label">{{ item?.name ?? ''}}</text>
+				</view>
+			</swiper-item>
+		</swiper>
+
+		<view class="camera-scan-code-back-wrap">
+			<button class="btn block bg-blue lg round" @click="chooseImage">
+				浏览相册
+			</button>
 		</view>
-    </view>		
-	
+
+		<view class="camera-scan-code-table">
+			<view class="camera-scan-code-table-pair" v-if="joinRecord.imgname!=''" >
+				<view class="camera-scan-code-table-pair-label">
+					<text>已存图片(最多能存{{joinRecord.num}}张)</text>
+				</view>
+				<view class="camera-scan-code-table-pair-value">					
+					<text class="txt">{{joinRecord.imgname}}</text>
+				</view>
+			</view>
 			
-	  <view class="camera-scan-code-back-wrap">
-		  <button class="btn block bg-blue lg round" @click="saveImage">
-			 保存图片
-		  </button>
-	  </view>
-    	  
-	  <view class="camera-scan-code-back-wrap">
-	    <button type="default" class="btn bg-blue round" @click="navigateBack">返回拍照</button>
-	  </view>
-    
-  </view>
+			<view class="camera-scan-code-table-pair">
+				<view class="camera-scan-code-table-pair-label">
+					<text>待存图片</text>
+				</view>
+				<view class="camera-scan-code-table-pair-value">
+					<!--
+					<checkbox-group @change="checkboxChange">
+						<view v-for="(item, index) in data">
+							<checkbox :value="item.name" :checked="true"></checkbox>
+							<view>{{ dyImgName+"-"+(index+1)+".jpg"}}</view>		
+						</view>
+					</checkbox-group>-->
+					<text class="txt">{{ dyImgName+"-"+(imgArrLen + 1)+".jpg"}}</text>
+				</view>
+			</view>
+		</view>
+
+
+		<view class="camera-scan-code-back-wrap">
+			<button class="btn block bg-blue lg round" @click="saveImage">
+				保存图片
+			</button>
+		</view>
+
+		<view class="camera-scan-code-back-wrap">
+			<button type="default" class="btn bg-blue round" @click="navigateBack">返回拍照</button>
+		</view>
+		
+		<view class="camera-scan-code-back-wrap">
+			<button type="default" class="btn bg-blue round" @click="navigateExit">退出拍照</button>
+		</view>
+
+	</view>
 </template>
 
 <script lang="uts">
-  type CameraScanCodeResult = {
-    type : string | null;
-    result : string | null;
-  }
-  type ImageItem={
-  	 image:string,
-	 name:string,
-	 checked: boolean
-  }
-  import { getJoinList, JoinRecord, updateData } from '@/api/work';
-  export default {
-    data() {
-      return {
-        result: null as CameraScanCodeResult | null,
-		swiperDotIndex: 0 as number,
-		recordId: 0,
-		num:0,
-		dyImgName: '',
-		data: [{
-		    image: '/static/images/banner/banner01.png',
-			name: 'banner01.png',
-			checked: true,
-		  },
-		] as ImageItem[] 	
-      }
-    },
-	onLoad(options) { 
-		let path = options?.['path'] ?? ''
-		let recordId = options?.['recordId'] ?? ''
-		let num = options?.['num'] ?? ''
-		console.log(path)
-		if(path!=''){
-			this.data = []
-			this.data.push({image:path, name:'', checked:true})
-		}
-		if(recordId!=''){
-			this.recordId = parseInt(recordId)			
-			getJoinList('app_media_record as r','app_media_info as i', 'r.*,i.workorder,i.invname', 'r.pid=i.pdid', 'sxid', recordId, null).then((res:UTSJSONObject) => {
-				let dataList = res?.['data'] as UTSJSONObject[] ?? Array<UTSJSONObject>()
-				if(dataList!=null && dataList.length>0){
-					dataList.forEach(item =>{
-						if(item!=null){  
-						  let record = JSON.parse<JoinRecord>(item.toJSONString());
-						  if(record!=null){
-						  	this.num = record.num;
-							this.dyImgName = record.workorder+record.invname+record.part+record.photoitem+record.partno;
-						  }	
+	type CameraScanCodeResult = {
+		type : string | null;
+		result : string | null;
+	}
+	type ImageItem = {
+		image : string,
+		name : string,
+		checked : boolean
+	}
+	import { getJoinList, JoinRecord, updateData } from '@/api/work';
+	export default {
+		data() {
+			return {
+				result: null as CameraScanCodeResult | null,
+				swiperDotIndex: 0 as number,
+				path: '',
+				recordId: 0,
+				imgArrLen: 0,
+				joinRecord: {
+					sxid: 0,
+					senum: 0,
+					photoitem: "",
+					productno: "",
+					descb:"",
+					part: "",
+					date: "",
+					partno : "",
+					num : 0,
+					status : 1,
+					urlspl : "",
+					imgname : "",
+					urlpdt : "",
+					pid: 0,
+					workorder: "",
+					invname: ""
+				} as JoinRecord,
+				num: 0,
+				dyImgName: '',
+				data: [{
+					image: '/static/images/banner/banner01.png',
+					name: 'banner01.png',
+					checked: true,
+				},
+				] as ImageItem[]
+			}
+		},
+		onLoad(options) {
+			this.path = options?.['path'] ?? ''
+			let recordId = options?.['recordId'] ?? ''
+			let num = options?.['num'] ?? ''
+			console.log(this.path)
+			if (this.path != '') {
+				this.data = []
+				this.data.push({ image: this.path, name: '', checked: true })
+			}
+			if (recordId != '') {
+				this.recordId = parseInt(recordId)
+				getJoinList('app_media_record as r', 'app_media_info as i', 'r.*,i.workorder,i.invname', 'r.pid=i.pdid', 'sxid', recordId, null).then((res : UTSJSONObject) => {
+					let dataList = res?.['data'] as UTSJSONObject[] ?? Array<UTSJSONObject>()
+					if (dataList != null && dataList.length > 0) {
+						dataList.forEach(item => {
+							if (item != null) {
+								let record = JSON.parse<JoinRecord>(item.toJSONString());
+								if (record != null) {
+									this.num = record.num;
+									this.dyImgName = record.workorder + record.invname + record.part + record.photoitem + record.partno;
+								    this.joinRecord = record
+									this.imgArrLen = record.imgname.indexOf(",")>-1? record.imgname.split(",").length : (record.imgname!=''?1:0)
+									
+								}
+							}
+						});
+					}
+				});
+			}
+			if (num != '') {
+				this.num = parseInt(num)
+			}
+		},
+		methods: {
+			navigateBack() {
+				//uni.navigateBack()
+				uni.navigateTo({
+					url: `/pages/work/record/Camera?id=${this.recordId}&num=${this.num}`
+				})
+			},
+			navigateExit(){
+				uni.navigateTo({
+					url: `/pages/work/record/InfoDetail?id=${this.joinRecord.pid}`
+				})
+			},
+			checkboxChange() {
+				console.log("选择图片名称")
+			},
+			chooseImage() {
+				uni.chooseImage({
+					sourceType: ['album'],
+					success: (res) => {
+						//this.data = res.tempFilePaths; // 获取选中的图片路径
+						this.data = []
+						for (let i = 0; i < res.tempFilePaths.length; i++) {
+							this.data.push({ image: res.tempFilePaths[i], name: '', checked: true })
 						}
+					},
+					fail: (err) => {
+						console.error('选择图片失败', err);
+					}
+				});
+			},
+			saveImage() {
+				//保存图片进入相册文件
+				if(this.path==''){
+					uni.showToast({
+					  title: '没有拍照文件',
+					  icon: 'error', 
+					  duration: 2000 
 					});
+					return;
 				}
-			});
-		}
-		if(num!=''){
-			this.num = parseInt(num)
-		}
-	},
-    methods: {
-      navigateBack() {
-        uni.navigateBack()
-      },
-	  checkboxChange(){
-		  console.log("选择图片名称")
-	  },
-	  chooseImage() {
-	  	uni.chooseImage({
-			sourceType: ['album'],
-	  		success: (res) => {
-	  			//this.data = res.tempFilePaths; // 获取选中的图片路径
-				this.data = []
-				for(let i=0; i<res.tempFilePaths.length; i++){
-					this.data.push({image: res.tempFilePaths[i], name:'', checked:true})
+				if(this.imgArrLen == this.joinRecord.num){
+					uni.showToast({
+					  title: '拍照图片已满',
+					  icon: 'error', 
+					  duration: 2000 
+					});
+					return;
+				}
+								
+				/*
+				uni.saveImageToPhotosAlbum({
+					filePath: this.path,
+					success: () => {
+						uni.showToast({
+							title: "保存成功!",
+						});
+					},
+					fail: () => {
+						uni.showToast({
+							title: "保存失败",
+						});
+					},
+				}); */
+
+
+				let updateImgs = ''
+				let updateNames = ''
+				let updateStatus = ''
+				if(this.imgArrLen == 0){
+					updateImgs = this.path
+				    updateNames = this.dyImgName+"-"+(this.imgArrLen + 1)+".jpg"
+				}else{
+					updateImgs = this.joinRecord.urlpdt + "," + this.path					
+					updateNames = this.joinRecord.imgname + "," + (this.dyImgName+"-"+(this.imgArrLen + 1)+".jpg")				
 				}
-	  		},
-	  		fail: (err) => {
-	  			console.error('选择图片失败', err);
-	  		}
-	  	});
-	  },
-	  saveImage() {
-		 //let data = 'imgname='++',urlpdt='; 
-		 let updateImgs = this.data.filter(item=>item.checked == true).map(item=>item.image);
-		 let updateNames = this.data.filter(item=>item.checked == true).map(item=>item.name);
-		 let updatedData = "imgname='"+ updateNames.join(",") +"',urlpdt='"+ updateImgs.join(",") + "' "
-		 updateData('app_media_record',updatedData, 'sxid', this.recordId.toString()).then((res:UTSJSONObject) => {
-		 	let dataList = res?.['data'] as UTSJSONObject[] ?? Array<UTSJSONObject>()
-		 	if(dataList!=null && dataList.length>0){
-		 		console.log(dataList[0])
-		 	}
-		 });
-	  },
-	  previewSingleImage(imageUrl:string) {		 
-	    uni.previewImage({
-	      urls: [imageUrl], // 需要预览的图片链接列表
-	      current: 0, // 当前显示图片的索引
-	      indicator: 'number', // 图片指示器样式
-	      loop: false // 是否可循环预览
-	    });
-	  },  	
-      handleScanCode(ev : UniCameraScanCodeEvent) {
-        const deatil = ev.detail;
-        this.result = {
-          type: deatil.type,
-          result: deatil.result
-        } as CameraScanCodeResult
-      }
-    }
-  }
+				
+				let updatedData = "imgname='" + updateNames + "',urlpdt='" + updateImgs + "'"
+				
+				if(this.joinRecord.num === this.imgArrLen + 1 ){				
+					updateStatus = "status='3'"
+					updatedData = updatedData + "," + updateStatus
+				}else if(this.joinRecord.status === 1){
+					updateStatus = "status='2'"
+					updatedData = updatedData + "," + updateStatus
+				}
+				console.log(updatedData)
+				
+				updateData('app_media_record', updatedData, 'sxid', this.recordId.toString()).then((res : UTSJSONObject) => {
+					let dataList = res?.['data'] as UTSJSONObject[] ?? Array<UTSJSONObject>()
+					if (dataList != null && dataList.length > 0) {
+						console.log(dataList[0])
+						uni.showToast({
+							title: "保存成功!",
+						});
+						/*
+						uni.reLaunch({
+						    url: '/pages/record/camera-scan-code?path='+this.path+'&recordId='+this.recordId+'&num='+this.num
+						}); */
+					}
+				});
+			},
+			previewSingleImage(imageUrl : string) {
+				uni.previewImage({
+					urls: [imageUrl], // 需要预览的图片链接列表
+					current: 0, // 当前显示图片的索引
+					indicator: 'number', // 图片指示器样式
+					loop: false // 是否可循环预览
+				});
+			},
+			handleScanCode(ev : UniCameraScanCodeEvent) {
+				const deatil = ev.detail;
+				this.result = {
+					type: deatil.type,
+					result: deatil.result
+				} as CameraScanCodeResult
+			}
+		}
+	}
 </script>
 
 <style>
-  .camera-scan-code-back-wrap {
-    display: flex;
-    justify-content: center;
-    align-items: center;	
-  }
-  .camera-scan-code-table {
-    background-color: white;
-    margin-top: 20px;
-  }
-  .camera-scan-code-table-pair {
-    height: 250px;
-    flex-direction: row;
-    justify-content: space-between;
-    align-items: center;
-  }
-  .camera-scan-code-table-pair-label {
-    flex-grow: 1;
-    margin-left: 15px;
-
-  }
-  .camera-scan-code-table-pair-value{
-    flex-grow: 2;
-
-  }
-  .camera-scan-code-table-top-line {
-    border-top: 1px solid #eee;
-  }
-  
-  .swiper {
-    height: 300rpx;
-  }
-  
-  .swiper-box {
-    height: 150px;
-  }
-  
-  .swiper-item {
-    /* #ifndef APP-NVUE */
-    display: flex;
-    /* #endif */
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
-    color: #fff;
-    height: 300rpx;
-    line-height: 300rpx;
-  }
-  .btn {
-	margin-top: 30px;
-	height: 45px; 
-  }
-</style>
+	.camera-scan-code-back-wrap {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.camera-scan-code-table {
+		background-color: white;
+		margin-top: 20px;
+	}
+
+	.camera-scan-code-table-pair {
+		height: 150px;
+		flex-direction: column;
+		justify-content: space-between;
+		align-items: center;
+	}
+
+	.camera-scan-code-table-pair-label {
+		flex-grow: 1;
+		margin-left: 15px;
+
+	}
+
+	.camera-scan-code-table-pair-value {
+		flex-grow: 2;
+	}
+	
+	.camera-scan-code-table-pair-value .txt {
+	  font-size: 14px;
+	}
+
+	.camera-scan-code-table-top-line {
+		border-top: 1px solid #eee;
+	}
+
+	.swiper {
+		height: 300rpx;
+	}
+
+	.swiper-box {
+		height: 150px;
+	}
+
+	.swiper-item {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		color: #fff;
+		height: 300rpx;
+		line-height: 300rpx;
+	}
+
+	.btn {
+		margin-top: 30px;
+		height: 45px;
+	}
+</style>