lilei 1 anno fa
parent
commit
2a0cd41bdd

+ 19 - 0
api/data.js

@@ -69,4 +69,23 @@ export const listLookUp = (params) => {
     url: url,
     method: 'post'
   })
+}
+
+// 发送验证码
+export const sendPhoneVerifyCode = (params) => {
+  let url = `mobileVerifyCode/sendCode`
+  return request({
+    url: url,
+	data: params,
+    method: 'post'
+  })
+}
+// 验证验证码输入是否正确
+export const verifyPhoneCode = (params) => {
+  let url = `mobileVerifyCode/verifyCode`
+  return request({
+    url: url,
+	data: params,
+    method: 'post'
+  })
 }

File diff suppressed because it is too large
+ 2 - 1
libs/tools.js


+ 0 - 8
pages.json

@@ -356,14 +356,6 @@
                     "enablePullDownRefresh": false
                 }
             },
-			{
-				"path" : "qualityPolicy/index",
-				"style" : 
-				{
-					"navigationBarTitleText" : "轮胎质保",
-					"enablePullDownRefresh" : false
-				}
-			},
 			{
 				"path" : "qualityPolicy/creatOrder",
 				"style" : 

+ 3 - 1
pages/scan-frame/scan-frame.vue

@@ -41,6 +41,7 @@ export default {
 	  imageInfo: null ,// 拍照图片信息
 	  showAuth: false,
 	  pageType: 'VIN', // 用途,VIN 码识别 或 UUID 唯一码识别
+	  tempImg: ''
     }
   },
   onLoad(opts) {
@@ -157,6 +158,7 @@ export default {
         src: tempFilePaths,
         quality: 100,
         success: (imageRes) => {
+		  this.tempImg = imageRes.tempFilePath
           // 获取类型
           uni.getImageInfo({
             src: imageRes.tempFilePath,
@@ -232,7 +234,7 @@ export default {
 						url: "/pages/vinInput/confirmVin?filePath="+base64Str + "&verifyCode="+res.data + "&type=carmen"
 					})
 				}else{
-					this.$store.state.vuex_tempData = {filePath:base64Str,retCode:res.data}
+					this.$store.state.vuex_tempData = {filePath:this.tempImg,retCode:res.data}
 					uni.navigateBack()
 				}
 			}else{

+ 20 - 6
pagesA/qualityPolicy/creatCarInfo.vue

@@ -28,7 +28,7 @@
 			</view>
 			<view class="flex align_center">
 				<view class="labes"><text>*</text>里程数:</view>
-				<view class="inputs"><u-input v-model="form.mileage" border clearable @click="openKey('number')" placeholder="请输入里程数"></u-input></view>
+				<view class="inputs"><u-input v-model="form.mileage" border maxlength="99999999" clearable @click="openKey('number')" placeholder="请输入里程数"></u-input></view>
 				<view class="btns">KM</view>
 			</view>
 			<view class="flex align_center">
@@ -39,7 +39,7 @@
 		 
 		<view class="buttons flex align_center">
 			<u-button type="default" @click="toBack">上一步</u-button>
-			<u-button type="primary" @click="saveForm">确定</u-button>
+			<u-button type="primary" :loading="loading" @click="saveForm">确定</u-button>
 		</view>
 		<u-keyboard :mode="keyMode" cancel-text="清空" @cancel="clearVal" @change="valChange" @backspace="backspace" v-model="showkeyboard"></u-keyboard>
 	</view>
@@ -64,19 +64,23 @@
 					// text:''
 				},
 				uuid: [],
-				focusInput: false
+				focusInput: false,
+				loading: false
 			}
 		},
 		onLoad() {
 			const tempData = this.$store.state.vuex_uuidTempData
 			this.uuid = tempData&&tempData.traceCodeList ? tempData.traceCodeList : []
+			this.form = Object.assign(this.form,tempData&&tempData.carInfo ? tempData.carInfo : {})
 		},
 		onShow() {
 			const ret = this.$store.state.vuex_tempData
 			if(ret&&ret.retCode){
 				this.tempImg = ret.filePath
 				this.form.vin = ret.retCode
-				this.getCarInfo()
+				if(ret.retCode){
+					this.getCarInfo()
+				}
 			}
 			this.focusInput = ret&&ret=="inputCode"
 		},
@@ -96,16 +100,17 @@
 				}
 				if(this.keyMode == 'car'){
 					this.form.vehicleNumber += val;
+					if(this.form.vehicleNumber.length > 8){
+						this.form.vehicleNumber = this.form.vehicleNumber.substr(0,8)
+					}
 				}
 			},
 			// 退格键被点击
 			backspace() {
 				if(this.keyMode == 'number' && this.form.mileage.length){
-					console.log(this.form.mileage)
 					this.form.mileage = this.form.mileage.substr(0, this.form.mileage.length - 1)
 				}
 				if(this.keyMode == 'car' && this.form.vehicleNumber.length){
-					console.log(this.form.vehicleNumber)
 					this.form.vehicleNumber = this.form.vehicleNumber.substr(0, this.form.vehicleNumber.length - 1)
 				}
 			},
@@ -129,6 +134,7 @@
 			},
 			//获取车辆信息
 			async getCarInfo(){
+				this.loading = true
 				const ret = await getVehicleInfoByVin({vin: this.form.vin})
 				if(ret.data){
 					this.form.carBrand = ret.data.brand_name
@@ -142,6 +148,7 @@
 						title: ret.message
 					})
 				}
+				this.loading = false
 			},
 			saveForm(){
 				if(this.form.vin == ''){
@@ -158,6 +165,13 @@
 					})
 					return
 				}
+				if(this.form.vehicleNumber.length < 7){
+					uni.showToast({
+						icon: 'none',
+						title: '请输入正确的车牌号码'
+					})
+					return
+				}
 				
 				this.$store.state.vuex_uuidTempData.carInfo = this.form
 				uni.redirectTo({

+ 27 - 16
pagesA/qualityPolicy/creatCustomInfo.vue

@@ -56,8 +56,9 @@
 	import uniPopup from '@/components/uni-popup/uni-popup.vue'
 	import popupCon from '@/components/uni-popup/popup-con.vue'
 	import {
-		sendLoginVerifyCode
-	} from '../../api/login.js'
+		sendPhoneVerifyCode,
+		verifyPhoneCode
+	} from '@/api/data.js'
 	import {
 		isvalidPhone
 	} from '@/libs/validate.js'
@@ -98,6 +99,8 @@
 			const tempData = this.$store.state.vuex_uuidTempData
 			this.uuid = tempData&&tempData.traceCodeList ? tempData.traceCodeList : [],
 			this.carInfo = Object.assign(this.carInfo, tempData.carInfo)
+			this.form = Object.assign(this.form,tempData&&tempData.customerInfo ? tempData.customerInfo : {})
+			this.form.vericode = ''
 		},
 		methods: {
 			toBack(){
@@ -163,9 +166,8 @@
 				obj.random = nowRandomCode
 				obj.code = code
 				obj.signName = '修配易码通'
-				obj.openid = this.$store.state.vuex_openid
 				//  发送短信验证码
-				sendLoginVerifyCode(obj).then(res => {
+				sendPhoneVerifyCode(obj).then(res => {
 					console.log(JSON.stringify(res.data))
 					if (res.status == 200) { //  验证码输入正确
 						_this.randomCode = nowRandomCode //  图片验证码随机码
@@ -198,7 +200,7 @@
 					_this.changeImg = true
 				})
 			},
-			saveForm(){
+			async saveForm(){
 				if(this.form.customName == ''){
 					uni.showToast({
 						icon: 'none',
@@ -223,16 +225,19 @@
 				this.$store.state.vuex_uuidTempData.customerInfo = this.form
 				const formData = this.$store.state.vuex_uuidTempData
 				console.log(formData)
-				const params = {...formData.carInfo,...formData.customerInfo}
-				const uuidList = []
-				formData.traceCodeList.map(item => {
-					uuidList.push(item.traceCode)
-				})
-				params.traceCodeList = uuidList
-				console.log(params)
-				// 保存数据
-				this.loading = true
-				traceWarrantySave(params).then(res => {
+				// 验证验证码是否正确
+				const phoneCodeIsOk = await verifyPhoneCode({mobile: this.form.customMobile, code: this.form.vericode })
+				if(phoneCodeIsOk.status == 200){
+					const params = {...formData.carInfo,...formData.customerInfo}
+					const uuidList = []
+					formData.traceCodeList.map(item => {
+						uuidList.push(item.traceCode)
+					})
+					params.traceCodeList = uuidList
+					console.log(params)
+					// 保存数据
+					this.loading = true
+					const res = await traceWarrantySave(params)
 					uni.showToast({
 						icon: 'none',
 						title: res.message
@@ -243,7 +248,13 @@
 						})
 					}
 					this.loading = false
-				})
+				}else{
+					uni.showToast({
+						icon: 'none',
+						title: '验证码不正确'
+					})
+					this.form.vericode = ''
+				}
 			}
 		}
 	}

+ 14 - 3
pagesA/qualityPolicy/creatOrder.vue

@@ -79,8 +79,15 @@
 						this.loading = false
 						return
 					}
-					if(hasCode.list && hasCode.list.length > 0 && !hasCode.list[0].warrantyState){
-						this.uuid.push(hasCode.list[0])
+					if(hasCode.list && hasCode.list.length > 0){
+						if(!hasCode.list[0].warrantyState){
+							this.uuid.push(hasCode.list[0])
+						}else{
+							uni.showToast({
+								icon: 'none',
+								title: '唯一码已使用'
+							})
+						}
 					}
 					this.uuidCode = ''
 					this.loading = false
@@ -98,7 +105,11 @@
 			},
 			saveForm(){
 				if(this.uuid.length){
-					this.$store.state.vuex_uuidTempData = {traceCodeList:this.uuid}
+					if(this.$store.state.vuex_uuidTempData){
+						this.$store.state.vuex_uuidTempData.traceCodeList = this.uuid
+					}else{
+						this.$store.state.vuex_uuidTempData = {traceCodeList: this.uuid}
+					}
 					uni.redirectTo({
 						url: "/pagesA/qualityPolicy/creatCarInfo"
 					})

+ 0 - 52
pagesA/qualityPolicy/index.vue

@@ -1,52 +0,0 @@
-<template>
-	<view class="pages">
-		<view class="gard-box">
-			<view @click="toPage('/pagesA/qualityPolicy/creatOrder')">
-				<view><image src="/pagesA/static/zbdc.png"></image></view>
-				<view>创建质保单</view>
-			</view>
-			<view @click="toPage('/pagesA/qualityPolicy/searchOrder')">
-				<view><image src="/pagesA/static/bdcx.png"></image></view>
-				<view>质保单查询</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				
-			}
-		},
-		methods: {
-			toPage(url){
-				uni.navigateTo({
-					url: url
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="less">
-.pages{
-	height: 100vh;
-	background: #fff;
-}
-.gard-box{
-	display: flex;
-	align-items: center;
-	padding: 5rem 2rem;
-	> view{
-		flex:1;
-		margin: 1rem;
-		text-align: center;
-		image{
-			width: 3rem;
-			height: 3rem;
-		}
-	}
-}
-</style>

+ 60 - 36
pagesA/qualityPolicy/orderDetail.vue

@@ -1,84 +1,108 @@
 <template>
-	<view class="pages flex flex_column">
+	<view class="pages flex flex_column" v-if="detail">
 		<u-read-more toggle close-text="展开全部">
 			<view class="uuid-list">
-				<view v-for="item in detail.uuid" :key="item.code">
-					<view class="flex align_center">
+				<view>
+					<view class="flex">
 						<view class="uuid-info">
-							<view>轮胎名称:{{item.name}}</view>
-							<view class="uuid">轮胎唯一码:{{item.code}}</view>
-							<view class="uuid">质保时间:2023-10-23至2026-10-23</view>
+							<view>产品名称:{{detail.productName}}</view>
+							<view>产品编码:{{detail.productCode}}</view>
+							<view class="uuid" style="margin-top: 0.3rem;">唯一码:{{detail.traceCode}}</view>
+							<view class="uuid">质保时间:{{detail.warrantyStartDate.split(' ')[0]}}至{{detail.warrantyEndDate.split(' ')[0]}}</view>
 						</view>
-						<view class="uuid-img">
-							<image style="width: 100%;height: 80px;background: #eaeaea;" :src="item.img"></image>
+						<view class="uuid-img" @click="viewPic(detail.productMsg)">
+							<image style="width: 100%;height: 80px;background: #eaeaea;" :src="detail.productMsg"></image>
 						</view>
 					</view>
-					<view class="state" :class="item.state"></view>
+					<view class="state" :class="detail.state"></view>
 				</view>
 			</view>
 		</u-read-more>
 		<view class="forms">
 			<view class="forms-tits">门店信息</view>
-			<view class="flex align_center">
+			<view class="flex align_center" v-if="detail.store">
 				<view class="labes">门店名称:</view>
-				<view class="inputs">赢信汽车贸易有限公司</view>
-			</view>
-			<view class="flex align_center">
-				<view class="labes">汽配经销商:</view>
-				<view class="inputs">箭冠汽配东莞寮步店</view>
+				<view class="inputs">{{detail.store.name}}</view>
 			</view>
-			<view class="flex align_center">
+			<view class="flex align_center" v-if="detail.store">
 				<view class="labes">姓名:</view>
-				<view class="inputs">高山</view>
+				<view class="inputs">{{detail.store.manager}}</view>
 			</view>
-			<view class="flex align_center">
+			<view class="flex align_center" v-if="detail.store">
 				<view class="labes">电话:</view>
-				<view class="inputs">15349286715</view>
+				<view class="inputs">{{detail.store.tele?detail.store.tele+'/':''}}{{detail.store.managerMobile}}</view>
+			</view>
+			<view class="flex align_center">
+				<view class="labes">汽配经销商:</view>
+				<view class="inputs">{{detail.dealerName}}</view>
 			</view>
 		</view>
 		<view class="forms">
 			<view class="forms-tits">车辆信息</view>
 			<view class="flex align_center">
 				<view class="labes">车辆品牌:</view>
-				<view class="inputs">大众</view>
+				<view class="inputs">{{detail.carBrand}}</view>
 			</view>
 			<view class="flex align_center">
 				<view class="labes">车型:</view>
-				<view class="inputs">速腾1.6L</view>
+				<view class="inputs">{{detail.carModel}}</view>
 			</view>
 			<view class="flex align_center">
 				<view class="labes">里程数:</view>
-				<view class="inputs">1600KM</view>
+				<view class="inputs">{{detail.mileage}}KM</view>
 			</view>
 			<view class="flex align_center">
 				<view class="labes">车牌号:</view>
-				<view class="inputs">陕A53LL9</view>
+				<view class="inputs">{{detail.vehicleNumber}}</view>
 			</view>
 			<view class="flex align_center">
 				<view class="labes">客户姓名:</view>
-				<view class="inputs">张生</view>
+				<view class="inputs">{{detail.customName}}</view>
 			</view>
 			<view class="flex align_center">
 				<view class="labes">手机号码:</view>
-				<view class="inputs">15349286715</view>
+				<view class="inputs">{{detail.customMobile}}</view>
 			</view>
 		</view>
-		 
+		<view class="buttons flex align_center">
+			<u-button type="primary" @click="shareCode">保存二维码分享给客户</u-button>
+		</view>
 	</view>
 </template>
 
 <script>
+	import { getWarrantyDetail } from "@/api/trace"
+	import { sharePic } from "@/libs/tools.js"
 	export default {
 		data() {
 			return {
-				detail: null
+				detail: null,
+				id: ''
 			}
 		},
-		onLoad() {
-			this.detail = this.$store.state.vuex_uuidTempData
+		onLoad(opts) {
+			this.id = opts.id
+			this.getDetail()
 		},
 		methods: {
-			  
+			viewPic(img){
+				uni.previewImage({
+					urls: [img]
+				})
+			},
+			getDetail(){
+				uni.showLoading({
+					mask:true,
+					title: "正在查询..."
+				})
+				getWarrantyDetail({id: this.id}).then(res => {
+					this.detail = res.data
+					uni.hideLoading()
+				})
+			},
+			shareCode(){
+				sharePic()
+			}
 		}
 	}
 </script>
@@ -87,7 +111,7 @@
 .pages{
 	height: 100vh;
 	background: #f8f8f8;
-	padding-bottom: 6rem;
+	padding-bottom: 7rem;
 	overflow: auto;
 	.uuid-list{
 		background: #fff;
@@ -105,13 +129,13 @@
 			background-size: 100%;
 			background-position: center center;
 			position: absolute;
-			width: 5rem;
-			height: 5rem;
+			width: 4.5rem;
+			height: 4.5rem;
 			z-index: 1000;
 			bottom: 0.5rem;
 			right: 1rem;
 		}
-		.inhand{
+		.RUN{
 			background-image: url(/pagesA/static/inhand.png);
 		}
 		.outof{
@@ -124,7 +148,7 @@
 			line-height: 1.5rem;
 		}
 		.uuid{
-			color: #333;
+			font-weight: bold;
 		}
 		.uuid-img{
 			width: 7rem;
@@ -141,7 +165,7 @@
 		border-top: 1px solid #eee;
 		justify-content: space-around;
 		/deep/ .u-btn{
-			width: 7rem;
+			width: 15rem;
 		}
 	}
 }

+ 24 - 7
pagesA/qualityPolicy/resultOrder.vue

@@ -3,32 +3,42 @@
 		<view class="success-box">
 			<view class="success-tit">质保单领取成功</view>
 			<view class="success-code">
-				<image></image>
+				<image :src="codeImg"></image>
 			</view>
 			<view class="success-tips">车主可用微信扫此二维码查看质保单详情</view>
 		</view>
-		<view class="buttons">
-			<u-button type="primary" @click="saveForm">保存二维码并查看质保信息</u-button>
+		<view class="buttons flex justify_between">
+			<u-button type="default" @click="shareCode">保存二维码</u-button>
+			<u-button type="primary" @click="saveForm">查看质保信息</u-button>
 		</view>
 	</view>
 </template>
 
 <script>
+	import { getZbdQrCode, sharePic } from '@/libs/tools'
 	export default {
 		data() {
 			return {
-				detail: null
+				detail: null,
+				codeImg: ''
 			}
 		},
 		onLoad() {
 			this.detail = this.$store.state.vuex_uuidTempData
+			this.codeImg = getZbdQrCode()
+		},
+		onUnload() {
+			this.$store.state.vuex_uuidTempData = null
 		},
 		methods: {
 			// 保存二维码到相册并打开详情页面
 			saveForm(){
 				uni.redirectTo({
-					url: "/pagesA/qualityPolicy/orderDetail"
+					url: "/pagesA/qualityPolicy/searchOrder?mobile="+this.detail.customerInfo.customMobile
 				})
+			},
+			shareCode(){
+				sharePic()
 			}
 		}
 	}
@@ -60,13 +70,20 @@
 			color: #fd920e;
 		}
 	}
+	 
 	.buttons{
+		padding: 1rem 2rem 2rem;
 		position: fixed;
+		width: 100%;
 		bottom: 0;
 		left: 0;
-		padding: 1rem 3rem 3rem;
 		background: #fff;
-		width: 100%;
+		z-index: 10000;
+		border-top: 1px solid #eee;
+		justify-content: space-around;
+		/deep/ .u-btn{
+			width: 8rem;
+		}
 	}
 }
 </style>

+ 96 - 27
pagesA/qualityPolicy/searchOrder.vue

@@ -1,42 +1,108 @@
 <template>
 	<view class="pages flex flex_column">
 		<view class="search-box">
-			<u-search placeholder="请输入轮胎唯一码/手机号码" v-model="keyword"></u-search>
+			<u-search placeholder="请输入轮胎唯一码/手机号码" v-model="queryWord" @search="pageInit" @custom="pageInit"></u-search>
 		</view>
-		<view class="uuid-list">
-			<view v-for="item in detail.uuid" :key="item.code" @click="toDetail(item)">
-				<view class="flex align_center">
-					<view class="uuid-info">
-						<view>轮胎名称:{{item.name}}</view>
-						<view class="uuid">轮胎唯一码:{{item.code}}</view>
-						<view class="uuid">质保时间:2023-10-23至2026-10-23</view>
-						<view class="uuid">手机号码:15349286715</view>
-					</view>
-					<view class="uuid-img">
-						<image style="width: 100%;height: 80px;background: #eaeaea;" :src="item.img"></image>
-					</view>
+		<view class="uuid-listbox">
+			<scroll-view scroll-y style="height: 100%;width: 100%;overflow: auto;" @scrolltolower="onreachBottom">
+				<view class="uuid-list">
+						<view
+							v-for="(item,index) in list"
+							:key="item.id" 
+							 @click="toDetail(item)"
+						>
+							<view class="flex">
+								<view class="uuid-info">
+									<view>产品名称:{{item.productName}}</view>
+									<view>产品编码:{{item.productCode}}</view>
+									<view class="uuid" style="margin-top: 0.5rem;">唯一码:{{item.traceCode}}</view>
+									<view class="uuid">质保时间:{{item.warrantyStartDate.split(' ')[0]}}至{{item.warrantyEndDate.split(' ')[0]}}</view>
+									<view class="uuid">手机号码:{{item.customMobile}}</view>
+								</view>
+								<view class="uuid-img">
+									<image style="width: 100%;height: 80px;background: #eaeaea;" :src="item.productMsg"></image>
+								</view>
+							</view>
+							<view class="state" :class="item.state"></view>
+						</view>
 				</view>
-				<view class="state" :class="item.state"></view>
-			</view>
+			</scroll-view>
 		</view>  
 	</view>
 </template>
 
 <script>
+	import { getWarrantyQueryList } from "@/api/trace"
 	export default {
 		data() {
 			return {
-				keyword: '',
-				detail: null
+				queryWord: '',
+				pageNo: 1,
+				pageSize: 10,
+				list: [],
+				total: 0,
+				status: 'loading',
+				noDataText: '暂无数据',
 			}
 		},
-		onLoad() {
-			this.detail = this.$store.state.vuex_uuidTempData
+		onLoad(opts) {
+			this.queryWord = opts.mobile || ''
+			this.pageInit()
 		},
 		methods: {
+			pageInit(){
+				this.status = 'loading'
+				this.total = 0
+				this.pageNo = 1
+				uni.showLoading({
+					mask:true,
+					title: "正在查询..."
+				})
+				this.getRow()
+			},
+			// 查询列表
+			getRow (pageNo) {
+			  let _this = this
+			  if (pageNo) {
+			    this.pageNo = pageNo
+			  }
+			  // 查询条件
+			  let params = {
+			    pageNo: this.pageNo,
+			    pageSize: this.pageSize,
+				queryWord: this.queryWord
+			  }
+			  this.status = "loading"
+			  getWarrantyQueryList(params).then(res => {
+				if (res.status == 200) {
+				  const retList = res.data.list
+				  if(_this.pageNo>1){
+					  _this.list = _this.list.concat(retList || [])
+				  }else{
+					  _this.list = retList || []
+				  }
+				  _this.total = res.data.count || 0
+				} else {
+				  _this.list = []
+				  _this.total = 0
+				  _this.noDataText = '暂无数据'
+				}
+				_this.status = _this.total>=_this.list.length ? "nomore" : 'loadmore'
+				uni.hideLoading()
+			  })
+			},
+			// scroll-view到底部加载更多
+			onreachBottom() {
+				if(this.list.length < this.total){
+					this.pageNo += 1
+					this.getRow()
+				}else{
+					this.status = "nomore"
+				}
+			},
 			toDetail(item){
 				uni.navigateTo({
-					url: "/pagesA/qualityPolicy/orderDetail?id="+item.code
+					url: "/pagesA/qualityPolicy/orderDetail?id="+item.id
 				})
 			}
 		}
@@ -49,31 +115,34 @@
 	background: #f8f8f8;
 	overflow: auto;
 	.search-box{
-		padding: 1rem;
+		padding: 0.6rem 1rem;
 		background: #fff;
 	}
-	.uuid-list{
+	.uuid-listbox{
 		flex-grow: 1;
+		height: calc(100vh - 52px);
+	}
+	.uuid-list{
 		> view{
 			justify-content: space-between;
 			border-bottom: 1px solid #eee;
 			padding: 0.6rem 1rem;
 			position: relative;
 			background: #fff;
-			margin-top: 0.5rem;
+			margin-top: 0.2rem;
 		}
 		.state{
 			background-repeat: no-repeat;
 			background-size: 100%;
 			background-position: center center;
 			position: absolute;
-			width: 5rem;
-			height: 5rem;
+			width: 4.5rem;
+			height: 4.5rem;
 			z-index: 1000;
 			bottom: 0.5rem;
 			right: 1rem;
 		}
-		.inhand{
+		.RUN{
 			background-image: url(/pagesA/static/inhand.png);
 		}
 		.outof{
@@ -86,7 +155,7 @@
 			line-height: 1.5rem;
 		}
 		.uuid{
-			color: #333;
+			font-weight: bold;
 		}
 		.uuid-img{
 			width: 7rem;

BIN
pagesA/static/bdcx.png


BIN
pagesA/static/zbdQrCode.png


BIN
pagesA/static/zbdc.png


Some files were not shown because too many files changed in this diff