Explorar el Código

Merge branch 'master' of http://47.100.3.209:3000/gongdecai/wangluohuoyun-app

# Conflicts:
#	config/index.js
zhongtianhaoyuan hace 3 años
padre
commit
c561702c22

+ 183 - 2
common/helper.js

@@ -125,6 +125,187 @@ const filterArea = (q) => {
 	}
 	return q
 }
+// 根据当前时间获取本周一到本周日日期
+function getDates() {
+	// var new_Date = new Date(t2)
+	var new_Date = new Date()
+	var timesStamp = new_Date.getTime()
+	var currenDay = new_Date.getDay()
+	var dates = []
+	for (var i = 0; i < 7; i++) {
+		dates.push(new Date(timesStamp + 24 * 60 * 60 * 1000 * (i - (currenDay + 6) % 7)).toLocaleDateString().replace(
+			/[年月]/g, '-').replace(/[日上下午]/g, ''));
+	}
+	var weekStar = new Date(dates[0] + ' 00:00:00').getTime()
+	var weekEnd = new Date(dates[dates.length - 1] + ' 23:59:59').getTime()
+	var week = [weekStar, weekEnd]
+	return week
+}
+//判断是否是今天,昨天,明天
+function isToday(str,type) {
+	//type == 0 判断是否是今天,type == 1 判断是否是昨天,type == 2 判断是否是明天
+	if (type == 0){
+		if (new Date(str).toDateString() === new Date().toDateString()) {
+			// console.log('今天');
+		    return true
+		} else{
+			// console.log('不是今天');
+			return false
+		}
+	}if (type == 1) {
+		if (new Date(str).toDateString() === new Date(new Date().getTime() -1000 * 60 * 60 * 24).toDateString()) {
+			// console.log('昨天');
+		    return true
+		} else{
+			// console.log('不是昨天');
+			return false
+		}
+	}
+	if (type == 2) {
+		if (new Date(str).toDateString() === new Date(new Date().getTime() +1000 * 60 * 60 * 24).toDateString()) {
+			// console.log('明天');
+		    return true
+		} else{
+			// console.log('不是明天');
+			return false
+		}
+	}
+}
+const changeTime = (t1) => {
+	// t1截止时间  t2当前时间
+	// 调用getDtes函数把当前时间传过去,获取本周一和本周日时间戳
+	// var weeks = getDates(t2)
+	var weeks = getDates()
+	// console.log(weeks)
+	var dateBegin = new Date(t1.replace(/-/g,'/'))//解决ios时new Date(2021-04-17 09:50:20)报错
+	// var dateEnd = new Date(t2)
+	var dateEnd = new Date()
+	// 时间戳
+	var end = dateBegin.getTime()
+	// console.log(end)
+	var nows = dateEnd.getTime()
+	// console.log(nows)
+	// 获取当天0点时间戳todayStar
+	const start = new Date(new Date(dateEnd).toLocaleDateString())
+	start.setTime(start.getTime())
+	var todayStar = new Date(start).getTime()
+	// console.log(todayStar)
+	// 获取当天23点59分59秒时间戳todayEnd
+	var ends = new Date(new Date(new Date(dateEnd).toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1)
+	var todayEnd = new Date(ends).getTime()
+	// console.log(todayEnd)
+	// 时间差的毫秒数
+	var dateDiff = Math.abs(dateBegin.getTime() - dateEnd.getTime())
+	// 计算出相差天数
+	var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000))
+	// console.log(dayDiff);
+	// 计算天数后剩余的毫秒数
+	var leave1 = dateDiff % (24 * 3600 * 1000)
+	// 计算出小时数
+	var hours = Math.floor(leave1 / (3600 * 1000))
+	// console.log(hours);
+	// 计算相差分钟数
+	var leave2 = leave1 % (3600 * 1000) // 计算小时数后剩余的毫秒数
+	// 计算相差分钟数
+	var minutes = Math.floor(leave2 / (60 * 1000))
+	// console.log(minutes);
+	// t1截止时间  t2当前时间
+	
+	if (dateEnd < dateBegin) {
+		if ((dayDiff === 0)) {
+			if (hours === 0) {
+				if (minutes < 30 || minutes == 30) {
+					return minutes + '分钟后'
+				}else{
+					return '今天' + t1.substring(10, 16)
+				}
+			} else {
+				if (isToday(end,0)) {
+					return '今天' + t1.substring(10, 16)
+				}else{
+					return '明天' + t1.substring(10, 16)
+				}
+			}
+		} else if (dayDiff === 1) {
+			if (isToday(end,2)){
+				return '明天' + t1.substring(10, 16)
+			}else{
+				if ((weeks[0] < end || weeks[0] == end) && (weeks[1] > end || weeks[1] == end)) {
+					var weekArray = new Array('日', '一', '二', '三', '四', '五', '六')
+					var week = weekArray[new Date(t1.replace(/-/g,'/')).getDay()] // 注意此处必须是先new一个Date
+					return '周' + week + t1.substring(10, 16)
+				} else {
+					return t1.substring(0, 16).replace(/-/g, '/')
+				}
+			}
+		} else {
+			if ((weeks[0] < end || weeks[0] == end) && (weeks[1] > end || weeks[1] == end)) {
+				var weekArray = new Array('日', '一', '二', '三', '四', '五', '六')
+				var week = weekArray[new Date(t1.replace(/-/g,'/')).getDay()] // 注意此处必须是先new一个Date
+				return '周' + week + t1.substring(10, 16)
+			} else {
+				return t1.substring(0, 16).replace(/-/g, '/')
+			}
+		}
+	}
+	if (dateEnd === dateBegin) {
+		return '刚刚'
+	}
+	if (dateEnd > dateBegin) {
+		if (dayDiff === 0) {
+			if (hours === 0) {
+				if (minutes < 60 || minutes == 60) {
+					if (minutes < 5 || minutes == 5) {
+						return '刚刚'
+					} else {
+						return minutes + '分钟前'
+					}
+				} else {
+					return '今天' + t1.substring(10, 16)
+				}
+			} else {
+				if (isToday(end,0)) {
+					return hours+'小时前'
+				}else{
+					
+					return '昨天' + t1.substring(10, 16)
+				}
+			}
+		} else if (dayDiff === 1) {
+			if (isToday(end,1)){
+				// return '昨天' + t1.substring(10, 16)
+				return dayDiff + '天前'
+			}else{
+				if ((weeks[0] < end || weeks[0] == end) && (weeks[1] > end || weeks[1] == end)) {
+					var weekArray = new Array('日', '一', '二', '三', '四', '五', '六')
+					var week = weekArray[new Date(t1.replace(/-/g,'/')).getDay()] // 注意此处必须是先new一个Date
+					return '周' + week + t1.substring(10, 16)
+				} else {
+					return t1.substring(0, 16).replace(/-/g, '/')
+				}
+			}
+		}else if (dayDiff < 30){
+			// return  dayDiff +'天前'+ t1.substring(10, 16)
+			return  dayDiff +'天前'
+			
+		}else if (dayDiff > 30 && dayDiff < 365){
+			return t1.substring(5, 10)
+			
+		}else if (dayDiff > 365){
+			
+			return t1.substring(0, 4)
+			
+		}else {
+			if ((weeks[0] < end || weeks[0] == end) && (weeks[1] > end || weeks[1] == end)) {
+				var weekArray = new Array('日', '一', '二', '三', '四', '五', '六')
+				var week = weekArray[new Date(t1.replace(/-/g,'/')).getDay()] // 注意此处必须是先new一个Date
+				return '周' + week + t1.substring(10, 16)
+			} else {
+				return t1.substring(0, 16).replace(/-/g, '/')
+			}
+		}
+	}
+}
 //获取省份简称
 const getProvinceAbbreviation = (province) => {
 	if (province == "北京市" || province == "北京")
@@ -195,7 +376,6 @@ const getProvinceAbbreviation = (province) => {
 		return "港";
 	else if (province == "澳门特别行政区" || province == "澳门")
 		return "澳";
-
 }
 
 export default {
@@ -210,5 +390,6 @@ export default {
 	getProvinceAbbreviation,
 	filterUrban,
 	filterArea,
-	fUN_AmapLocation
+	fUN_AmapLocation,
+	changeTime
 }

+ 10 - 1
pages.json

@@ -263,7 +263,16 @@
               "navigationStyle": "custom"
             }
             
-        }
+        },
+		{
+		    "path" : "pages/order/signContract",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "签订合同",
+		        "enablePullDownRefresh": false
+		    }
+		    
+		}
     ],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",

+ 26 - 12
pages/goodSource/index.vue

@@ -41,8 +41,9 @@
 			<view v-for="(good,index) in goods" :key="index" @click="toDetail(good.id)">
 				<view v-if="good.peripheralInfo==1&&isFirstIndex==index" class="other-goods">周边货源</view>
 				<view class="good-list">
-					<view style="padding: 0 35rpx 20rpx 35rpx;">
-						<view class="flex flex-space-between">
+					<view style="padding: 0 35rpx 20rpx 35rpx;position: relative;">
+						<image src="@/static/images/goodSource/xf.png" mode="widthFix" class="xf-iamge" v-if="good.freightAdvance==1"></image>
+						<view class="flex align-center">
 							<view class="item1">
 								<view class="ssx">{{$helper.getProvinceAbbreviation(good.sendPrivate)}}</view>
 								<view class="level2-title">{{$helper.filterUrban(good.sendCity)}}
@@ -60,16 +61,18 @@
 							</view>
 						</view>
 						<view class="right gray">
-							{{good.createDate}}
+							<!-- {{good.createDate}} -->
+							{{$helper.changeTime(good.createDate)}}
 						</view>
 						<view class="flex flex-space-between yf-style">
 							<view class="left">
 								<view class="flex">
-									<view class="fontsize-25 gray mr20">货距 {{good.cargoDistance}}km</view>
-									<view class="fontsize-25 gray ">运距 {{good.distance}}km</view>
+									<view class="gray mr20">货距 {{good.cargoDistance}}km</view>
+									<view class="gray ">运距 {{good.distance}}km</view>
 								</view>
-								<view class="flex fontsize-25 gray row">
+								<view class="flex gray row">
 									<view>{{good.goodsName}} | </view>
+									<!-- <u-line direction="col"></u-line> -->
 									<view>{{carLength(good)}} | {{carType(good)}} | {{carWeight(good)}}</view>
 								</view>
 								<view class="flex row">
@@ -565,6 +568,9 @@
 </script>
 
 <style scoped lang="scss">
+	.content{
+		background: #F2F4F7;
+	}
 	.banner {
 		width: 100%;
 		position: relative;
@@ -626,14 +632,15 @@
 	}
 
 	.good-list {
-		background-color: white;
-		margin: 20rpx;
-		padding: 20rpx 0rpx 0 0;
-		border-radius: 20rpx;
+		    background-color: white;
+		    margin: 10px 10px 15px 10px;
+		    padding: 10px 0px 0px 0;
+		    border-radius: 30rpx;
+		    box-shadow: 0px 5rpx 20rpx #E3E3E3;
 
 		.item1,
 		.item3 {
-			width: 40%;
+			// width: 40%;
 			display: flex;
 
 			.text {
@@ -669,7 +676,7 @@
 	.item-bottom {
 		background: #F0F5FF;
 		padding: 0 30rpx;
-
+		border-radius: 0 0 30rpx 30rpx;
 		.name {
 			font-size: 26rpx;
 			font-weight: 700;
@@ -737,4 +744,11 @@
 			top: -30rpx;
 		}
 	}
+	.xf-iamge{
+		width: 74rpx;
+		height: 43rpx;
+		position: absolute;
+		top: -20rpx;
+		right: 0;
+	}
 </style>

+ 4 - 1
pages/mine/index.vue

@@ -182,7 +182,10 @@
 								this.statusVal = '身份认证审核中'
 							} else if (this.firstAuthentication.authenticationStatus == '未通过') {
 								this.statusVal = '身份认证未通过'
-							} else {
+							}
+							 else if (this.firstAuthentication.authenticationStatus == '已过期') {
+							 	this.statusVal = '证件已过期'
+							 }else {
 								this.statusVal = '已认证'
 							}
 						} else {

+ 233 - 121
pages/order/confirmLoading.vue

@@ -4,76 +4,81 @@
 		<div class='content1'>
 			<view class="level2-title">承运合同</view>
 			<view class='row-between'>
-				<view class="row-left-text">合同编号</view>
-				<view class="row-right-text">{{detailData.contractNo?detailData.contractNo:'未签订'}}</view>
+				<view class="">合同编号</view>
+				<view class="">{{detailData.contractNo?detailData.contractNo:'未签订'}}</view>
 			</view>
 		</div>
 		<view class="content2">
 			<view class="level2-title">基本信息</view>
 			<view class='row-between'>
-				<view class="row-left-text">订单编号</view>
-				<view class="row-right-text">{{detailData.orderNo}}</view>
+				<view class="">订单编号</view>
+				<view class="">{{detailData.orderNo}}</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text">货主</view>
-				<view class="row-right-text">{{detailData.cargoOwner}}</view>
+				<view class="">货主</view>
+				<view class="">{{detailData.cargoOwner}}</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text">货主单位</view>
-				<view class="row-right-text">{{detailData.compName?detailData.compName:'个人货主'}}</view>
+				<view class="">货主单位</view>
+				<view class="">{{detailData.compName?detailData.compName:'个人货主'}}</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text">发货地</view>
-				<view class="row-right-text place">
+				<view class="">发货地</view>
+				<view class=" place">
 					{{detailData.sendPrivate}}{{detailData.sendCity}}{{detailData.sendArea}}{{detailData.sendDetailedAddress}}
 				</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text">卸货地</view>
-				<view class="row-right-text place">
+				<view class="">卸货地</view>
+				<view class=" place">
 					{{detailData.unloadPrivate}}{{detailData.unloadCity}}{{detailData.unloadArea}}{{detailData.unloadDetailedAddress}}
 				</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text">货名</view>
-				<view class="row-right-text">{{detailData.goodsName}}</view>
+				<view class="">货名</view>
+				<view class="">{{detailData.goodsName}}</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text">运费</view>
-				<view class="row-right-text">{{detailData.freight}}{{detailData.illingMethod==0?'元/吨':'元/车'}}</view>
+				<view class="">运费</view>
+				<view class="">{{detailData.freight}}{{detailData.illingMethod==0?'元/吨':'元/车'}}</view>
 			</view>
 
 		</view>
 		<view class="content2">
 			<view class="level2-title">装车信息</view>
 			<view class='row-between'>
-				<view class="row-left-text">车牌号</view>
-				<view class="row-right-text">{{detailData.carrierInfo.carNo}}</view>
+				<view class="">车牌号</view>
+				<input class="car-uumber input" v-model='detailData.carrierInfo.carNo' @click.stop="handleShowKeyboard"
+					:disabled="true" placeholder="输入车牌号" name="input"></input>
 			</view>
-			<view class='row-between'>
-				<view class="row-left-text">装车日期</view>
-				<view class="row-right-text">{{detailData.carrierInfo.loadingDate}}</view>
+			<view class='row-between' @click="selectDate">
+				<view class="">装车日期</view>
+				<view class="date-style">
+					{{detailData.carrierInfo.loadingDate?detailData.carrierInfo.loadingDate:'选择装车日期'}}
+				</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text">预计运费(元)</view>
-				<view class="row-right-text">{{detailData.carrierInfo.estimatedFreight}}</view>
+				<view class="">运费总额(元)</view>
+				<!-- {{detailData.carrierInfo.estimatedFreight}} -->
+				<view class=""><input class="input" type="text" value=""
+						v-model="detailData.carrierInfo.freight" placeholder="请输入运费"></view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text">定位</view>
+				<view class="">定位</view>
 				<view class="flex align-center">{{detailData.carrierInfo.sendCity}} {{detailData.carrierInfo.sendArea}}
 					<view class="sx-style" @click.stop="getLngLat()">刷新</view>
 				</view>
 
 			</view>
 			<view class='s-flex'>
-				<view class="row-left-text" style="margin:20rpx 0;">上传装车照片</view>
+				<view class="" style="margin:20rpx 0;">上传装车照片</view>
 				<upload class="upload" ref="upload" :action="action" :max-size="maxSize" :max-count="3"
 					:size-type="['compressed']" @on-success="getImgUrl" @on-remove="onRemove"
 					@on-uploaded="isAdd = true" :sourceType='sourceType' :before-upload="filterFileType"
 					@on-progress="onProgress"></upload>
 			</view>
 			<!-- 			<view class='s-flex'>
-				<view class="row-left-text">上传装车磅单</view>
+				<view class="">上传装车磅单</view>
 				<upload class="upload" ref="upload" :action="action" :max-size="maxSize" :max-count="1"
 					:size-type="['compressed']" @on-success="getImgUrl" @on-error="onError" @on-remove="onRemove"
 					@on-uploaded="isAdd = true" :before-upload="filterFileType" @on-progress="onProgress"></upload>
@@ -87,7 +92,10 @@
 		<u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :closeOnClickOverlay='true'
 			:showCancelButton='true' confirmColor='#2772FB' @confirm="confirmClick" @close="cancelClick"
 			@cancel="cancelClick"></u-modal>
+		<master-keyboard ref="keyboard" keyboardtype="car" :show="keyShow" :randomNumber="true" :newCar="false"
+			:defaultValue="carNumber" @keyboardClick="handleClick"></master-keyboard>
 		<u-toast ref="uToast"></u-toast>
+		<u-calendar :show="showDate" :mode="mode" @confirm="confirmDate"></u-calendar>
 	</view>
 </template>
 
@@ -99,6 +107,9 @@
 		},
 		data() {
 			return {
+				showDate: false,
+				mode: 'single',
+				id: '',
 				sourceType: ['camera'],
 				detailData: {
 					carrierInfo: {},
@@ -110,39 +121,90 @@
 				isShowAlert: false,
 				alertContent: '',
 				alertTitle: '',
+				keyShow: false,
+				carNumber: '',
 			}
 		},
 		onLoad(options) {
+			debugger
 			// #ifdef APP-PLUS
 			this.getLngLat();
 			// #endif
 			console.log(options)
-			this.detailData = options;
+			this.id = options.id
+			this.getInfo()
+			// this.detailData = options;
 			// CYHT20220317000001
-			this.detailData.contractNo = 'CYHT20220317000001'
-			this.detailData.id = this.detailData.carrierId
-			this.detailData.carrierInfo = {
-				id: this.detailData.carrierId,
-				carNo: '123',
-				loadingDate: '2023-03-17',
-				estimatedFreight: '10000',
-				loadingAreaLongitude: '',
-				loadingAreaLatitude: '',
-				sendCity: '营口',
-				sendArea: '鲅鱼圈',
-				loadingImg: ''
 
-			}
+
 		},
 		methods: {
+			selectDate() {
+				this.showDate = true
+			},
+			confirmDate(e) {
+				this.detailData.carrierInfo.loadingDate = e[0]
+				this.showDate = false
+				console.log(e);
+			},
+			getInfo() {
+				this.$request.baseRequest('get', '/orderInfo/getOrderInfo', {
+					id: this.id,
+				}).then(res => {
+					if (res.code == 200) {
+						this.detailData = res.data
+						this.detailData.contractNo = 'CYHT20220317000001'
+						this.detailData.id = this.detailData.carrierId
+						this.detailData.carrierInfo.loadingDate = ''
+						this.detailData.carrierInfo.carNo = ''
+						this.detailData.carrierInfo.loadingAreaLongitude = ''
+						this.detailData.carrierInfo.loadingAreaLatitude = ''
+						this.detailData.carrierInfo.sendCity = '营口'
+						this.detailData.carrierInfo.sendArea = '鲅鱼圈'
+						this.detailData.carrierInfo.loadingImg = ''
+						// this.carrierInfo = res.data.carrierInfo
+						// this.freightInfo = res.data.freightInfo
+						// this.zcPhoneList = this.carrierInfo.loadingImg.split(',')
+						// if(res.data.orderStatus!="待货主确认"&&res.data.orderStatus!="未装车"&&res.data.orderStatus!="已终止"){
+						// 	this.status1 = true
+						// }
+						// if(res.data.orderStatus!="已终止"&&res.data.orderStatus!="平台驳回装车信息"&&res.data.orderStatus!="待平台确认装车"&&res.data.orderStatus!="待货主确认"&&res.data.orderStatus!="未装车"&&res.data.orderStatus!="待货主确认装车"&&res.data.orderStatus!="货主驳回装车信息"){
+						// 	this.status2 = true
+						// }
+					}
+
+				})
+			},
+			//车牌号弹出键盘
+			handleShowKeyboard() {
+				if (this.detailData.carrierInfo.carNo == '') {
+					this.carNumber = ''
+				} else {
+					this.carNumber = this.detailData.carrierInfo.carNo
+				}
+				if (this.$refs.keyboard.open) {
+					this.$refs.keyboard.open(false) //true 键盘显示 false 键盘隐藏
+				} else {
+					this.$refs.keyboard[0].open(false)
+				}
+				if (this.$refs.keyboard.open) {
+					this.$refs.keyboard.open(true) //true 键盘显示 false 键盘隐藏
+				} else {
+					this.$refs.keyboard[0].open(true)
+				}
+			},
+			//车牌号弹出键盘
+			handleClick(e) {
+				this.carNumber = e.value
+				this.detailData.carrierInfo.carNo = e.value //键盘输入值
+			},
 			getLngLat() {
 				uni.showLoading({
 					title: '获取定位中',
 					mask: true
 				})
-				this.$helper.fUN_AmapLocation.start(
-					{
-						intervalTime: 1000*3,
+				this.$helper.fUN_AmapLocation.start({
+						intervalTime: 1000 * 3,
 						isReport: false,
 					},
 					res => {
@@ -157,72 +219,72 @@
 							console.log(this.detailData.carrierInfo.sendCity)
 							console.log(this.detailData.carrierInfo.sendArea)
 							this.$forceUpdate()
-							
+
 						}
 						uni.hideLoading()
-						
+
 						this.$helper.fUN_AmapLocation.stop({}, result => {
 							console.log('====fUN_AmapLocation定位stop====', JSON.stringify(result));
 						});
 					}
-				); 
-			// 	uni.getLocation({
-			// 		type: 'gcj02',
-			// 		geocode: true,
-			// 		success: res => {
-			// 			console.log('定位地址')
-			// 			console.log(res)
-			// 			if (res.latitude) {
-			// 				this.detailData.carrierInfo.loadingAreaLongitude = res.longitude;
-			// 				this.detailData.carrierInfo.loadingAreaLatitude = res.latitude;
-			// 				this.detailData.carrierInfo.sendCity = this.$helper.filterUrban(res.address.city)
-			// 				this.detailData.carrierInfo.sendArea = this.$helper.filterArea(res.address
-			// 					.district);
-			// 				console.log(this.detailData.carrierInfo.sendCity)
-			// 				console.log(this.detailData.carrierInfo.sendArea)
-			// 				this.$forceUpdate()
-			// 				uni.hideLoading()
-			// 			} else {
-			// 				if (uni.getSystemInfoSync().platform == 'android') {
-			// 					var context = plus.android.importClass("android.content.Context");
-			// 					var locationManager = plus.android.importClass(
-			// 						"android.location.LocationManager");
-			// 					var main = plus.android.runtimeMainActivity();
-			// 					var mainSvr = main.getSystemService(context.LOCATION_SERVICE);
-			// 					this.bool = mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)
-			// 				}
-			// 				if (this.bool === false) {
-			// 					uni.showModal({
-			// 						title: '提示',
-			// 						content: '请打开定位服务',
-			// 						success: ({
-			// 							confirm,
-			// 							cancel
-			// 						}) => {
-			// 							if (confirm) {
-			// 								if (uni.getSystemInfoSync().platform == 'android') {
-			// 									var Intent = plus.android.importClass(
-			// 										'android.content.Intent');
-			// 									var Settings = plus.android.importClass(
-			// 										'android.provider.Settings');
-			// 									var intent = new Intent(Settings
-			// 										.ACTION_LOCATION_SOURCE_SETTINGS);
-			// 									var main = plus.android.runtimeMainActivity();
-			// 									main.startActivity(intent); // 打开系统设置GPS服务页面
-			// 								}
-			// 							}
-			// 						}
-			// 					});
-			// 				}
-			// 			}
-			// 		},
-			// 		fail: res => {
-			// 			console.log('定位失败')
-			// 			console.log(res)
-						
-			// 		}
-			// 	});
-			
+				);
+				// 	uni.getLocation({
+				// 		type: 'gcj02',
+				// 		geocode: true,
+				// 		success: res => {
+				// 			console.log('定位地址')
+				// 			console.log(res)
+				// 			if (res.latitude) {
+				// 				this.detailData.carrierInfo.loadingAreaLongitude = res.longitude;
+				// 				this.detailData.carrierInfo.loadingAreaLatitude = res.latitude;
+				// 				this.detailData.carrierInfo.sendCity = this.$helper.filterUrban(res.address.city)
+				// 				this.detailData.carrierInfo.sendArea = this.$helper.filterArea(res.address
+				// 					.district);
+				// 				console.log(this.detailData.carrierInfo.sendCity)
+				// 				console.log(this.detailData.carrierInfo.sendArea)
+				// 				this.$forceUpdate()
+				// 				uni.hideLoading()
+				// 			} else {
+				// 				if (uni.getSystemInfoSync().platform == 'android') {
+				// 					var context = plus.android.importClass("android.content.Context");
+				// 					var locationManager = plus.android.importClass(
+				// 						"android.location.LocationManager");
+				// 					var main = plus.android.runtimeMainActivity();
+				// 					var mainSvr = main.getSystemService(context.LOCATION_SERVICE);
+				// 					this.bool = mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)
+				// 				}
+				// 				if (this.bool === false) {
+				// 					uni.showModal({
+				// 						title: '提示',
+				// 						content: '请打开定位服务',
+				// 						success: ({
+				// 							confirm,
+				// 							cancel
+				// 						}) => {
+				// 							if (confirm) {
+				// 								if (uni.getSystemInfoSync().platform == 'android') {
+				// 									var Intent = plus.android.importClass(
+				// 										'android.content.Intent');
+				// 									var Settings = plus.android.importClass(
+				// 										'android.provider.Settings');
+				// 									var intent = new Intent(Settings
+				// 										.ACTION_LOCATION_SOURCE_SETTINGS);
+				// 									var main = plus.android.runtimeMainActivity();
+				// 									main.startActivity(intent); // 打开系统设置GPS服务页面
+				// 								}
+				// 							}
+				// 						}
+				// 					});
+				// 				}
+				// 			}
+				// 		},
+				// 		fail: res => {
+				// 			console.log('定位失败')
+				// 			console.log(res)
+
+				// 		}
+				// 	});
+
 			},
 			alertBtn() {
 				// uni.navigateTo({
@@ -283,7 +345,53 @@
 				// 	}
 				// })
 			},
+			validate() {
+				if (uni.$u.test.isEmpty(this.detailData.carrierInfo.carNo)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "车牌号不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.detailData.carrierInfo.loadingDate)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "装车日期不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.detailData.carrierInfo.freight)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "运费总额不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.detailData.carrierInfo.sendCity)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "定位不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.detailData.carrierInfo.sendArea)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "定位不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.detailData.carrierInfo.loadingImg)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "装车照片不能为空!",
+					})
+					return true
+				}
+			},
 			confirmClick() {
+				this.validate()
+				this.isShowAlert = false
 				//1暂存
 				if (this.detailData.statusFlag == 1) {
 					delete this.detailData.carrierInfo.loadingAreaLongitude;
@@ -291,38 +399,36 @@
 					delete this.detailData.carrierInfo.sendCity;
 					delete this.detailData.carrierInfo.sendArea;
 				}
-				if (!this.detailData.carrierInfo.loadingImg) {
-					uni.showToast({
-						title: '装车照片不能为空',
-						duration: 2000,
-						icon: "none",
-					});
-					return
-				}
 				this.detailData.carrierInfo.statusFlag = this.detailData.statusFlag
 				this.$request.baseRequest('post', '/carrierInfo/loadingAdd', this.detailData.carrierInfo).then(res => {
-						if (res.code == 200) {
+						if (res.code == 200) {debugger
 							let _title = ''
 							if (this.detailData.statusFlag == 1) {
 								_title = '暂存成功!'
 							} else {
 								_title = '提交成功!'
 							}
-							this.$helper.fUN_AmapLocation.start(
-								{
-									intervalTime: 1000*60,
+							this.$helper.fUN_AmapLocation.start({
+									intervalTime: 1000 * 60,
 									isReport: true,
 									reportInterval: 5,
 									url: 'http://192.168.0.66/fun/open/test_json.do',
-									params: { a: 1, B: '测试', c: true },
-									headers: { a: '123', B: 'abcd' }
+									params: {
+										a: 1,
+										B: '测试',
+										c: true
+									},
+									headers: {
+										a: '123',
+										B: 'abcd'
+									}
 								},
 								res => {
 									//见下方定位返回示例
 									console.log('====确认装车开启连续定位====', JSON.stringify(res));
 									//判断缓存数据条数,超过reportInterval时清空缓存,重新存入缓存
 								}
-							); 
+							);
 							this.$refs.uToast.show({
 								type: 'success',
 								message: _title,
@@ -344,9 +450,9 @@
 
 <style scoped lang="scss">
 	.content {
-		.row-left-text {
-			color: #333333;
-		}
+		// . {
+		// 	color: #333333;
+		// }
 	}
 
 	.level2-title {
@@ -408,4 +514,10 @@
 		border-radius: 10rpx;
 		margin-left: 20rpx;
 	}
+
+	.input {
+		text-align: right;
+	}
+
+	.date-style {}
 </style>

+ 6 - 2
pages/order/index.vue

@@ -105,9 +105,13 @@
 						<view class="row5 flex flex-end">
 							<view class="stop active" @click.stop="stop(good)"
 								v-if="good.orderStatus=='待货主确认'||good.orderStatus=='未装车'">终止</view>
-							<view class="start normal" @click.stop="confirmLoading(good)"
+					<!-- 		<view class="start normal" @click.stop="confirmLoading(good)"
 								v-if="good.orderStatus=='未装车'||good.orderStatus=='货主驳回装车信息'||good.orderStatus=='平台驳回装车信息'">
-								确认装车</view>
+								确认装车</view> -->
+										<view class="start normal" @click.stop="toDetail(good.id)"
+											v-if="good.orderStatus=='未装车'||good.orderStatus=='货主驳回装车信息'||good.orderStatus=='平台驳回装车信息'">
+											确认装车</view>
+								
 							<view class="start normal" v-if="good.orderStatus!='未装车'&&good.orderStatus!='待货主确认'"
 								@click.stop="$helper.contactCustomerService">联系客服
 							</view>

+ 84 - 40
pages/order/orderDetails.vue

@@ -16,9 +16,12 @@
 			</view>
 			<!-- flex flex-space-between -->
 			<view class="item2">
+				<u-button class="btn" text="查看合同" @click="lookContract"></u-button>
+				<u-button class="btn" text="签订合同" @click="signContract" v-if="dataObj.cargoOwnerStatus=='未装车'&&dataObj.driverContract!='1'">
+				</u-button>
 				<u-button class="btn" text="终止" @click="stop"  v-if="dataObj.orderStatus=='待货主确认'||dataObj.orderStatus=='未装车'"></u-button>
 				<!-- <u-button class="btn" text="联系客服"  @click="$helper.contactCustomerService"></u-button> -->
-				<u-button class="btn" text="确认装车" @click="confirmLoading" v-if="dataObj.orderStatus=='未装车'"></u-button>
+				<u-button class="btn" text="确认装车" @click="confirmLoading" v-if="dataObj.orderStatus=='未装车'&&dataObj.driverContract=='1'"></u-button>
 				<u-button class="btn" text="修改装车信息"  @click="confirmLoading" v-if="dataObj.orderStatus=='货主驳回装车信息'||dataObj.orderStatus=='平台驳回装车信息'"></u-button>
 				<u-button class="btn" text="确认卸车" @click="confirmUnLoading" v-if="dataObj.orderStatus=='运输中'"></u-button>
 				<u-button class="btn" text="修改卸车信息" @click="confirmUnLoading" v-if="dataObj.orderStatus=='货主驳回卸车信息'||dataObj.orderStatus=='平台驳回卸车信息'"></u-button>
@@ -84,73 +87,73 @@
 			</view>
 			<view class="level2-title">基本信息</view>
 			<view class='row-between'>
-				<view class="row-left-text gray">订单编号</view>
-				<view class="row-right-text">{{dataObj.orderNo}}</view>
+				<view class=" gray">订单编号</view>
+				<view class="">{{dataObj.orderNo}}</view>
 			</view>
 		<!-- 	<view class='row-between'>
-				<view class="row-left-text gray">货主</view>
-				<view class="row-right-text">{{dataObj.cargoOwner}}</view>
+				<view class=" gray">货主</view>
+				<view class="">{{dataObj.cargoOwner}}</view>
 			</view> -->
 			<view class='row-between'>
-				<view class="row-left-text gray">货主单位</view>
-				<view class="row-right-text">{{dataObj.compName?dataObj.compName:'个人货主'}}</view>
+				<view class=" gray">货主单位</view>
+				<view class="">{{dataObj.compName?dataObj.compName:'个人货主'}}</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text gray">发货地</view>
-				<view class="row-right-text place">{{dataObj.sendPrivate}}{{dataObj.sendCity}}{{dataObj.sendArea}}{{dataObj.sendDetailedAddress}}</view>
+				<view class=" gray">发货地</view>
+				<view class=" place">{{dataObj.sendPrivate}}{{dataObj.sendCity}}{{dataObj.sendArea}}{{dataObj.sendDetailedAddress}}</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text gray">卸货地</view>
-				<view class="row-right-text place">{{dataObj.unloadPrivate}}{{dataObj.unloadCity}}{{dataObj.unloadArea}}{{dataObj.unloadDetailedAddress}}</view>
+				<view class=" gray">卸货地</view>
+				<view class=" place">{{dataObj.unloadPrivate}}{{dataObj.unloadCity}}{{dataObj.unloadArea}}{{dataObj.unloadDetailedAddress}}</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text gray">货名</view>
-				<view class="row-right-text">{{dataObj.goodsName}}</view>
+				<view class=" gray">货名</view>
+				<view class="">{{dataObj.goodsName}}</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text gray">距离</view>
-				<view class="row-right-text">约{{dataObj.distance}}公里</view>
+				<view class=" gray">距离</view>
+				<view class="">约{{dataObj.distance}}公里</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text gray">运费</view>
-				<view class="row-right-text">{{dataObj.freight}}{{dataObj.illingMethod==0?'元/吨':'元/车'}}</view>
+				<view class=" gray">运费</view>
+				<view class="">{{dataObj.freight}}{{dataObj.illingMethod==0?'元/吨':'元/车'}}</view>
 			</view>
 		</view>
 		<view class="content3" v-if='dataObj.orderStatus!="待货主确认"&&dataObj.orderStatus!="未装车"&&dataObj.orderStatus!="已终止"'>
 			<view class="level2-title">承运信息</view>
 			<view class='row-between'>
-				<view class="row-left-text gray">合同编号</view>
-				<view class="row-right-text">{{carrierInfo.contractNo}}</view>
+				<view class=" gray">合同编号</view>
+				<view class="">{{carrierInfo.contractNo}}</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text gray">车牌号</view>
-				<view class="row-right-text">{{carrierInfo.carNo}}</view>
+				<view class=" gray">车牌号</view>
+				<view class="">{{carrierInfo.carNo}}</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text gray">预计运费</view>
-				<view class="row-right-text">{{carrierInfo.estimatedFreight}}元</view>
+				<view class=" gray">预计运费</view>
+				<view class="">{{carrierInfo.estimatedFreight}}元</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text gray">装车时间</view>
-				<view class="row-right-text gray">{{carrierInfo.loadingDate}}</view>
+				<view class=" gray">装车时间</view>
+				<view class=" gray">{{carrierInfo.loadingDate}}</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text gray">装车照片</view>
+				<view class=" gray">装车照片</view>
 				<view class="flex">
 					<u--image :showLoading="true" :src='item' width="40px" height="40px" v-for="(item,index) in zcPhoneList"></u--image>
 				</view>
 			</view>
 			<view v-if='dataObj.orderStatus!="待货主确认"&&dataObj.orderStatus!="未装车"&&dataObj.orderStatus!="待货主确认装车"&&dataObj.orderStatus!="货主驳回装车信息"&&dataObj.orderStatus!="待平台确认装车"&&dataObj.orderStatus!="平台驳回装车信息"&&dataObj.orderStatus!="运输中"&&dataObj.orderStatus!="已终止"'>
 				<view class='row-between'>
-					<view class="row-left-text gray">合计应付运费</view>
-					<view class="row-right-text">{{carrierInfo.totalFreight}}元</view>
+					<view class=" gray">合计应付运费</view>
+					<view class="">{{carrierInfo.totalFreight}}元</view>
 				</view>
 				<view class='row-between'>
-					<view class="row-left-text gray">卸车时间</view>
-					<view class="row-right-text gray">{{carrierInfo.loadingDate}}</view>
+					<view class=" gray">卸车时间</view>
+					<view class=" gray">{{carrierInfo.loadingDate}}</view>
 				</view>
 				<view class='row-between'>
-					<view class="row-left-text gray">卸车照片</view>
+					<view class=" gray">卸车照片</view>
 					<view class="flex">
 						<u--image :showLoading="true" :src='item' width="40px" height="40px" v-for="(item,index) in xcPhoneList"></u--image>
 					</view>
@@ -162,17 +165,17 @@
 		<view class="content4" v-if='dataObj.orderStatus!="待货主确认"&&dataObj.orderStatus!="未装车"&&dataObj.orderStatus!="待货主确认装车"&&dataObj.orderStatus!="货主驳回装车信息"&&dataObj.orderStatus!="待平台确认装车"&&dataObj.orderStatus!="平台驳回装车信息"&&dataObj.orderStatus!="已终止"'>
 			<view class="level2-title gray">运费信息(单位:元)</view>
 			<view class='row-between'>
-				<view class="row-left-text gray">预付运费</view>
-				<view class="row-right-text">{{freightInfo.prepaidFreight}}</view>
+				<view class=" gray">预付运费</view>
+				<view class="">{{freightInfo.prepaidFreight}}</view>
 			</view>
 			<view class='flex flex-end'>
-				<view class="gray row-right-text">{{freightInfo.prepaidFreightDate}}</view>
+				<view class="gray ">{{freightInfo.prepaidFreightDate}}</view>
 			</view>
 			<view class='row-between'>
-				<view class="row-left-text gray">运费尾款</view>
-				<view class="row-right-text">{{freightInfo.freightBalance?freightInfo.freightBalance:'未支付'}}</view>
+				<view class=" gray">运费尾款</view>
+				<view class="">{{freightInfo.freightBalance?freightInfo.freightBalance:'未支付'}}</view>
 			</view>
-			<view class='row-between mx row-left-text gray'>
+			<view class='row-between mx  gray'>
 				明细:预付{{freightInfo.prepaidFreight}}元,扣款{{freightInfo.deduction}}元,服务费{{freightInfo.serviceCharge}}元,尾款{{freightInfo.freightBalance}}元,合计收款{{freightInfo.totalCollection}}元。
 			</view>
 		</view>
@@ -203,7 +206,6 @@
 				cyinfoStatus: '未装车',
 				src: 'https://cdn.uviewui.com/uview/album/1.jpg',
 				isShowTerminationReason: false,
-				id: "",
 				dataObj:{},
 				status1:false,
 				status2:false,
@@ -240,6 +242,48 @@
 			this.getList()
 		},
 		methods: {
+			lookContract(){
+				this.$request.baseRequest('get', '/orderInfo/setPdf', {
+					}).then(res => {
+						if (res.code == 200) {
+							debugger
+							this.contractSrc = res.data
+							uni.downloadFile({
+							  url: res.data,
+							  success: function (res) {
+							    var filePath = res.tempFilePath;
+							    uni.openDocument({
+							      filePath: filePath,
+							      showMenu: true,
+							      success: function (res) {
+							        console.log('打开文档成功');
+							      }
+							    });
+							  }
+							});
+							// this.$refs.uToast.show({
+							// 	type: 'success',
+							// 	message: "提交成功",
+							// 	complete() {
+							// 		that.upCallback({
+							// 			size: 10,
+							// 			num: 1
+							// 		})
+							// 	}
+							// })
+				
+						}
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			signContract() {
+				// this.lookAlert = true
+				uni.$u.route('/pages/order/signContract', this.dataObj
+				);
+				
+			},
 			// 完结
 			closed() {
 				let item = this.dataDetails
@@ -266,8 +310,7 @@
 					});
 			},
 			confirmLoading() {
-				let item = this.dataDetails
-				uni.$u.route('/pages/order/confirmLoading', item);
+				uni.$u.route('/pages/order/confirmLoading', {id:this.id});
 			},
 			confirmUnLoading() {
 				let item = this.dataDetails
@@ -426,6 +469,7 @@
 
 		.btn {
 			width: 40%;
+			margin-top: 20rpx;
 		}
 
 		.item2 {

+ 553 - 0
pages/order/signContract.vue

@@ -0,0 +1,553 @@
+<template>
+	<view class="content">
+<!-- 		<view class="content1">
+			<view style='width:70px'>付款方式</view>
+			<u-radio-group v-model="dataDetails.advanceFreightService" placement="row">
+				<u-radio :customStyle="radioCustomStyle" v-for="(item, index) in radiolist1" :key="index"
+					:label="item.name" :name="item.name" @change="radioChange">
+				</u-radio>
+			</u-radio-group>
+
+		</view> -->
+		<view class="content2">
+			<view class="title">
+				合同摘要
+			</view>
+			<view class='row-between'>
+				<view class="gray">发货单位</view>
+				<view class="">{{dataDetails.compName?dataDetails.compName:'个人货主'}}</view>
+			</view>
+			<view class='row-between'>
+				<view class="gray">发货地</view>
+				<view class="place">
+					{{dataDetails.sendPrivate}}{{dataDetails.sendCity}}{{dataDetails.sendArea}}{{dataDetails.sendDetailedAddress}}
+				</view>
+			</view>
+			<view class='row-between'>
+				<view class="gray">卸货地</view>
+				<view class=" place">
+					{{dataDetails.unloadPrivate}}{{dataDetails.unloadCity}}{{dataDetails.unloadArea}}{{dataDetails.unloadDetailedAddress}}
+				</view>
+			</view>
+			<view class='row-between'>
+				<view class="gray">货名</view>
+				<view class="">{{dataDetails.goodsName}}</view>
+			</view>
+			<view class='row-between'>
+				<view class="gray">距离</view>
+				<view class="">约{{dataDetails.distance}}公里</view>
+			</view>
+			<view class='row-between'>
+				<view class="gray">运费</view>
+				<view class="">{{dataDetails.freight}}{{dataDetails.illingMethod==0?'元/吨':'元/车'}}</view>
+				<!-- 				<view class="flex"><input type="text" placeholder="请输入运费" v-model="dataDetails.freight"
+						class="text-align-right yf-input">{{dataDetails.freight}}元/车</view> -->
+			</view>
+		</view>
+		<view class="wrapper content3">
+			<view class="qm-row">
+				<view class="handTitle">手写签名</view>
+				<image src="@/static/xiangpica@2x.png" mode="widthFix" @click="retDraw" class="retDraw-image"></image>
+				<!-- <button @click="retDraw" class="delBtn">重写</button> -->
+			</view>
+
+			<view class="handCenter">
+				<canvas class="handWriting" :disable-scroll="true" @touchstart="uploadScaleStart"
+					@touchmove="uploadScaleMove" canvas-id="handWriting"></canvas>
+			</view>
+			<view class="handRight">
+
+			</view>
+			<view class="handBtn">
+				<!-- 			<image @click="selectColorEvent('black','#1A1A1A')"
+					:src="selectColor === 'black' ? '/static/other/color_black_selected.png' : '/static/other/color_black.png'"
+					:class="[selectColor === 'black' ? 'color_select' : '', 'black-select']"></image>
+				<image @click="selectColorEvent('red','#ca262a')"
+					:src="selectColor === 'red' ? '/static/other/color_red_selected.png' : '/static/other/color_red.png'"
+					:class="[selectColor === 'red' ? 'color_select' : '', 'black-select']"></image> -->
+
+				<!-- <button @click="saveCanvasAsImg" class="saveBtn">保存</button> -->
+				<view @click="submit" class="saveBtn">提交</view>
+				<!-- <button @click="previewCanvasImg" class="previewBtn">预览</button> -->
+				<!-- <button @click="subCanvas" class="subBtn">完成</button> -->
+			</view>
+		</view>
+		<u-toast ref="uToast"></u-toast>
+	</view>
+</template>
+
+<script>
+	var that;
+	import uploadImage from '@/components/ossutil/uploadFile.js';
+	export default {
+		data() {
+			return {
+				isScaleStart: false,
+				radioCustomStyle: {
+					margin: '0 0 0 10rpx'
+				},
+				canvasName: 'handWriting',
+				ctx: '',
+				startX: null,
+				startY: null,
+				canvasWidth: 0,
+				canvasHeight: 0,
+				selectColor: 'black',
+				lineColor: '#1A1A1A', // 颜色
+				lineSize: 5, // 笔记倍数
+				value: true,
+				dataDetails: {},
+				radiolist1: [{
+						name: '平台垫付运费',
+						disabled: false
+					},
+					{
+						name: '无需平台垫付运费',
+						disabled: false
+					},
+				],
+			};
+		},
+		onLoad(options) {
+			that = this
+			console.log(options)
+			this.dataDetails = options
+			this.dataDetails.advanceFreightService = '平台垫付运费'
+			this.ctx = uni.createCanvasContext("handWriting");
+			this.$nextTick(() => {
+				uni.createSelectorQuery().select('.handCenter').boundingClientRect(rect => {
+						this.canvasWidth = rect.width;
+						this.canvasHeight = rect.height;
+						/* 将canvas背景设置为 白底,不设置  导出的canvas的背景为透明 */
+						this.setCanvasBg('#fff');
+					})
+					.exec();
+			});
+		},
+		methods: {
+			submit() {
+				if (!that.isScaleStart) {
+					that.$refs.uToast.show({
+						type: 'error',
+						message: "手写签名不能为空!",
+					})
+					return
+				}
+				// if (uni.$u.test.isEmpty(that.dataDetails.freight)) {
+				// 	that.$refs.uToast.show({
+				// 		type: 'error',
+				// 		message: "运费不能为空!",
+				// 	})
+				// 	return
+				// }
+				uni.canvasToTempFilePath({
+					canvasId: 'handWriting',
+					fileType: 'png',
+					quality: 1, //图片质量
+					success(res) {
+						console.log(res.tempFilePath, 'canvas生成图片地址');
+						uploadImage('image', res.tempFilePath, 'appData/',
+							result => {
+								// 上传成功
+								console.log('图片地址', result)
+								that.dataDetails.cargoOwnerAutograph = result
+
+
+								uni.showLoading({
+									title: '加载中',
+									mask: true
+								})
+
+								that.$request.baseRequest('get', '/orderInfo/setPdf', that.dataDetails).then(res => {
+										if (res.code == 200) {
+											debugger
+											// that.contractSrc = res.data
+											// uni.downloadFile({
+											// 	url: res.data,
+											// 	success: function(res) {
+											// 		var filePath = res.tempFilePath;
+											// 		uni.openDocument({
+								   //  		filePath: filePath,
+											// 			showMenu: true,
+								   // 			success: function(res) {
+											// 				console.log('打开文档成功');
+											// 			}
+											// 		});
+											// 	}
+											// });
+											// this.$refs.uToast.show({
+											// 	type: 'success',
+											// 	message: "提交成功",
+											// 	complete() {
+											// 		that.upCallback({
+											// 			size: 10,
+											// 			num: 1
+											// 		})
+											// 	}
+											// })
+
+										}
+									})
+									.catch(res => {
+										uni.$u.toast(res.message);
+									});
+							}
+						)
+
+					}
+				});
+			},
+			// change(e){
+			// 	if(this.value){
+			// 		this.$set(this.dataDetails,'advanceFreightService',1)
+			// 	}else{
+			// 		this.$set(this.dataDetails,'advanceFreightService',0)
+			// 	}
+			// },
+			// 笔迹开始
+			uploadScaleStart(e) {
+				this.isScaleStart = true
+				this.startX = e.changedTouches[0].x
+				this.startY = e.changedTouches[0].y
+				//设置画笔参数
+				//画笔颜色
+				this.ctx.setStrokeStyle(this.lineColor)
+				//设置线条粗细
+				this.ctx.setLineWidth(this.lineSize)
+				//设置线条的结束端点样式
+				this.ctx.setLineCap("round") //'butt'、'round'、'square'
+				//开始画笔
+				this.ctx.beginPath()
+			},
+			// 笔迹移动
+			uploadScaleMove(e) {
+				//取点
+				let temX = e.changedTouches[0].x
+				let temY = e.changedTouches[0].y
+				//画线条
+				this.ctx.moveTo(this.startX, this.startY)
+				this.ctx.lineTo(temX, temY)
+				this.ctx.stroke()
+				this.startX = temX
+				this.startY = temY
+				this.ctx.draw(true)
+			},
+			/**
+			 * 重写
+			 */
+			retDraw() {
+				this.ctx.clearRect(0, 0, 700, 730);
+				this.ctx.draw();
+				//设置canvas背景
+				this.setCanvasBg('#fff');
+			},
+			/**
+			 * @param {Object} str
+			 * @param {Object} color
+			 * 选择颜色
+			 */
+			selectColorEvent(str, color) {
+				this.selectColor = str;
+				this.lineColor = color;
+			},
+			//完成
+			subCanvas() {
+				uni.canvasToTempFilePath({
+					canvasId: 'handWriting',
+					fileType: 'png',
+					quality: 1, //图片质量
+					success(res) {
+						// console.log(res.tempFilePath, 'canvas生成图片地址');
+						uni.showToast({
+							title: '以保存'
+						});
+						//保存到系统相册
+						uni.saveImageToPhotosAlbum({
+							filePath: res.tempFilePath,
+							success(res) {
+								uni.showToast({
+									title: '已成功保存到相册',
+									duration: 2000
+								});
+							}
+						});
+					}
+				});
+			},
+			//保存到相册
+			saveCanvasAsImg() {
+				uni.canvasToTempFilePath({
+					canvasId: 'handWriting',
+					fileType: 'png',
+					quality: 1, //图片质量
+					success(res) {
+						console.log(res.tempFilePath, 'canvas生成图片地址');
+						uni.saveImageToPhotosAlbum({
+							filePath: res.tempFilePath,
+							success(res) {
+								uni.showToast({
+									title: '已保存到相册',
+									duration: 2000
+								});
+							}
+						});
+					}
+				});
+			},
+			//预览
+			previewCanvasImg() {
+				uni.canvasToTempFilePath({
+					canvasId: 'handWriting',
+					fileType: 'jpg',
+					quality: 1, //图片质量
+					success(res) {
+						uni.previewImage({
+							urls: [res.tempFilePath] //预览图片 数组
+						});
+					}
+				});
+			},
+			//设置canvas背景色  不设置  导出的canvas的背景为透明
+			//@params:字符串  color
+			setCanvasBg(color) {
+
+				/* 将canvas背景设置为 白底,不设置  导出的canvas的背景为透明 */
+				//rect() 参数说明  矩形路径左上角的横坐标,左上角的纵坐标, 矩形路径的宽度, 矩形路径的高度
+				//这里是 canvasHeight - 4 是因为下边盖住边框了,所以手动减了写
+				this.ctx.rect(0, 0, this.canvasWidth, this.canvasHeight - 4);
+				// ctx.setFillStyle('red')
+				this.ctx.setFillStyle(color);
+				this.ctx.fill(); //设置填充
+				this.ctx.draw(); //开画
+			}
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	page {
+		background: #fbfbfb;
+		height: auto;
+	}
+
+	.content1 {
+		background: white;
+		border-radius: 20rpx;
+		margin: 20rpx;
+		padding: 30rpx 20rpx;
+		display: flex;
+		justify-content: space-between;
+
+		.right {
+			display: flex;
+		}
+	}
+
+	.content2 {
+		background: white;
+		border-radius: 20rpx;
+		margin: 20rpx;
+		padding: 30rpx 20rpx;
+
+		.title {
+			font-size: 36rpx;
+			font-weight: 700;
+			margin-bottom: 20rpx;
+		}
+
+		.row-between {
+			margin-bottom: 20rpx;
+		}
+
+		.left-text {
+			margin-right: 20rpx;
+		}
+
+		.yf-input {
+			padding-right: 10rpx;
+		}
+	}
+
+	.content3 {
+		background: white;
+		border-radius: 20rpx;
+		margin: 20rpx;
+		padding: 30rpx 20rpx;
+	}
+
+	.place {
+		width: 80%;
+		text-align: right;
+	}
+
+	.handCenter {
+		border: 4rpx dashed #e9e9e9;
+		overflow: hidden;
+		box-sizing: border-box;
+		height: 500rpx;
+	}
+
+	.handWriting {
+		background: #F9F9FB;
+		width: 100%;
+		height: 100%;
+	}
+
+	.handRight {
+		display: inline-flex;
+		align-items: center;
+	}
+
+	.handCenter {
+		border: 4rpx dashed #e9e9e9;
+		flex: 5;
+		overflow: hidden;
+		box-sizing: border-box;
+	}
+
+	.handTitle {
+		font-size: 36rpx;
+		color: #666;
+		font-weight: 700;
+		color: #333333;
+		margin-bottom: 20rpx;
+	}
+
+	.retDraw-image {
+		width: 50rpx;
+
+	}
+
+	.qm-row {
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.saveBtn {
+		width: 80%;
+		background: #2772FB;
+		color: white;
+		text-align: center;
+		border-radius: 50rpx;
+		padding: 20rpx;
+	}
+
+	.handBtn {
+		display: flex;
+		justify-content: center;
+	}
+
+	/* 
+	.wrapper {
+		width: 100%;
+		height: 95vh;
+		margin: 30rpx 0;
+		overflow: hidden;
+		display: flex;
+		align-content: center;
+		flex-direction: row;
+		justify-content: center;
+		font-size: 28rpx;
+	}
+
+
+
+
+	.handBtn button {
+		font-size: 28rpx;
+	}
+
+	.handBtn {
+		height: 95vh;
+		display: inline-flex;
+		flex-direction: column;
+		justify-content: space-between;
+		align-content: space-between;
+		flex: 1;
+	}
+
+	.delBtn {
+		position: absolute;
+		top: 250rpx;
+		left: 0rpx;
+		transform: rotate(90deg);
+		color: #666;
+	}
+
+	.delBtn image {
+		position: absolute;
+		top: 13rpx;
+		left: 25rpx;
+	}
+
+	.subBtn {
+		position: absolute;
+		bottom: 52rpx;
+		left: -3rpx;
+		display: inline-flex;
+		transform: rotate(90deg);
+		background: #008ef6;
+		color: #fff;
+		margin-bottom: 30rpx;
+		text-align: center;
+		justify-content: center;
+	}
+
+
+
+	.saveBtn {
+		position: absolute;
+		top: 375rpx;
+		left: 0rpx;
+		transform: rotate(90deg);
+		color: #666;
+	}
+
+	.previewBtn {
+		position: absolute;
+		top: 500rpx;
+		left: 0rpx;
+		transform: rotate(90deg);
+		color: #666;
+	}
+
+	.uploadBtn {
+		position: absolute;
+		top: 625rpx;
+		left: 0rpx;
+		transform: rotate(90deg);
+		color: #666;
+	}
+
+
+
+	.black-select {
+		width: 60rpx;
+		height: 60rpx;
+		position: absolute;
+		top: 30rpx;
+		left: 25rpx;
+	}
+
+	.black-select.color_select {
+		width: 90rpx;
+		height: 90rpx;
+		top: 100rpx;
+		left: 10rpx;
+	}
+
+	.red-select {
+		width: 60rpx;
+		height: 60rpx;
+		position: absolute;
+		top: 140rpx;
+		left: 25rpx;
+	}
+
+	.red-select.color_select {
+		width: 90rpx;
+		height: 90rpx;
+		top: 120rpx;
+		left: 10rpx;
+	} */
+</style>

BIN
static/images/goodSource/xf.png


BIN
static/xiangpica@2x.png