achao 3 年之前
父节点
当前提交
51711aa07c
共有 47 个文件被更改,包括 2104 次插入1365 次删除
  1. 76 75
      App.vue
  2. 10 2
      common/appUpdate.js
  3. 86 30
      common/helper.js
  4. 2 2
      components/nk-select-file/nk-select-file.vue
  5. 2 4
      components/ossutil/uploadFile.js
  6. 2 1
      config/index.js
  7. 21 18
      hybrid/html/map.html
  8. 12 369
      hybrid/html/play.html
  9. 4 4
      hybrid/html/video.html
  10. 0 0
      hybrid/html/vue.min.js
  11. 57 14
      manifest.json
  12. 28 18
      pages.json
  13. 1 1
      pages/goodSource/index.vue
  14. 1 1
      pages/mine/agentCargoOwner.vue
  15. 5 3
      pages/mine/cargoowner/addEnerprise.vue
  16. 3 3
      pages/mine/cargoowner/cargoowner.vue
  17. 2 2
      pages/mine/cargoowner/editEnerprise.vue
  18. 17 15
      pages/mine/cargoowner/editpersonalinformation.vue
  19. 29 14
      pages/mine/company/addcompany.vue
  20. 1 1
      pages/mine/company/addcompanytwo.vue
  21. 1 1
      pages/mine/company/editcompany.vue
  22. 1 1
      pages/mine/company/editcompanytwo.vue
  23. 11 8
      pages/mine/company/index.vue
  24. 7 7
      pages/mine/driverCertification.vue
  25. 3 3
      pages/mine/driverCertificationNext.vue
  26. 158 96
      pages/mine/index.vue
  27. 2 2
      pages/mine/manageBankCards/addBankCard.vue
  28. 8 8
      pages/mine/set.vue
  29. 89 52
      pages/order/index.vue
  30. 5 1
      pages/order/map.vue
  31. 1 1
      pages/order/orderDetails.vue
  32. 357 0
      pages/public/code.vue
  33. 370 175
      pages/public/login.vue
  34. 191 138
      pages/public/loginOther.vue
  35. 391 198
      pages/public/register.vue
  36. 21 20
      pages/release/addAddress.vue
  37. 1 1
      pages/release/editAddress.vue
  38. 5 5
      pages/release/editRelease.vue
  39. 4 4
      pages/release/lookRelease.vue
  40. 5 5
      pages/release/record.vue
  41. 110 57
      pages/release/release.vue
  42. 二进制
      static/1.mp4
  43. 二进制
      static/logo.png
  44. 二进制
      static/指引@2x.png
  45. 0 1
      store/index.js
  46. 4 4
      websocket_sdk.js
  47. 二进制
      zhiyunhuozhu.keystore

+ 76 - 75
App.vue

@@ -10,7 +10,7 @@
 	import Vue from 'vue'
 	import * as config from '@/config'
 	import appUpdate from 'common/appUpdate.js'
-	import app_push from './components/APPPush/app_push.js'
+	// import app_push from './components/APPPush/app_push.js'
 	export default {
 		methods: {
 			...mapMutations(['login']),
@@ -46,83 +46,84 @@
 			let type = uni.getSystemInfoSync().platform
 			console.log(type)
 			if (type == "android") {
-				// appUpdate()
+				console.log(111111111111111111111111111111111111111111111111111)
+				appUpdate()
 			}
-			var that = this
-			plus.push.getClientInfoAsync((info) => {
-				var name = 'clientId'
-				var value = info.clientid
-				that.$store.commit('$uStore', {
-					name,
-					value
-				});
-				uni.setStorageSync("clientId", info.clientid)
-				console.log("info.clientid", info.clientid)
-			}, err => {});
-			// 监听在线消息事件  
-			plus.push.addEventListener("receive", function(msg) {
-				var title = msg.content.split(':')[0]
-				var content = msg.content.split(':')[1]
+			// var that = this
+			// plus.push.getClientInfoAsync((info) => {
+			// 	var name = 'clientId'
+			// 	var value = info.clientid
+			// 	that.$store.commit('$uStore', {
+			// 		name,
+			// 		value
+			// 	});
+			// 	uni.setStorageSync("clientId", info.clientid)
+			// 	console.log("info.clientid", info.clientid)
+			// }, err => {});
+			// // 监听在线消息事件  
+			// plus.push.addEventListener("receive", function(msg) {
+			// 	var title = msg.content.split(':')[0]
+			// 	var content = msg.content.split(':')[1]
 
-				let params = {
-					inApp: true, // app内横幅提醒
-					voice: true, // 声音提醒
-					vibration: true, // 振动提醒
-					messageType: "",
-					messageTitle: title,
-					messageContent: content,
-					messageImage: 'https://taohaoliang.oss-cn-beijing.aliyuncs.com/app/logo.png'
-				}
-				console.log("msg", msg)
-				new app_push({
-					...params
-				}).show();
-				var userInfo = uni.getStorageSync("userInfo")
-				var that = this
-				that.$request.baseRequest('get', '/notice/query/noticeNumber').then(res => {
-					if (res.data.data) {
-						let name = 'myTip';
-						let value = res.data.data.task;
-						that.$store.commit('$uStore', {
-							name,
-							value
-						});
-						if (value != 0 && value) {
-							uni.setTabBarBadge({
-								index: 4,
-								text: value + ""
-							})
-						}
-						name = 'taskTip';
-						value = res.data.data.task;
-						that.$store.commit('$uStore', {
-							name,
-							value
-						});
-						// name = 'contractTip';
-						// value = res.data.data.contractTip;
-						// that.$store.commit('$uStore', {
-						// 	name,
-						// 	value
-						// });
-					}
-				})
-				//其它逻辑  
-			}, false);
-			//监听系统通知栏消息点击事件  
-			plus.push.addEventListener('click', function(msg) {
-				//处理点击消息的业务逻辑代码  
-				if (msg.content && msg.content.contains("任务")) {
-					uni.navigateTo({
-						url: '/pages/task/my_task'
-					})
-				} else if (msg.content && (msg.content.contains("合同") || msg.content.contains("交易"))) {
-					uni.navigateTo({
-						url: '/pageB/contract/contract'
-					})
-				}
+			// 	let params = {
+			// 		inApp: true, // app内横幅提醒
+			// 		voice: true, // 声音提醒
+			// 		vibration: true, // 振动提醒
+			// 		messageType: "",
+			// 		messageTitle: title,
+			// 		messageContent: content,
+			// 		messageImage: 'https://taohaoliang.oss-cn-beijing.aliyuncs.com/app/logo.png'
+			// 	}
+			// 	console.log("msg", msg)
+			// 	// new app_push({
+			// 	// 	...params
+			// 	// }).show();
+			// 	var userInfo = uni.getStorageSync("userInfo")
+			// 	var that = this
+			// 	that.$request.baseRequest('get', '/notice/query/noticeNumber').then(res => {
+			// 		if (res.data.data) {
+			// 			let name = 'myTip';
+			// 			let value = res.data.data.task;
+			// 			that.$store.commit('$uStore', {
+			// 				name,
+			// 				value
+			// 			});
+			// 			if (value != 0 && value) {
+			// 				uni.setTabBarBadge({
+			// 					index: 4,
+			// 					text: value + ""
+			// 				})
+			// 			}
+			// 			name = 'taskTip';
+			// 			value = res.data.data.task;
+			// 			that.$store.commit('$uStore', {
+			// 				name,
+			// 				value
+			// 			});
+			// 			// name = 'contractTip';
+			// 			// value = res.data.data.contractTip;
+			// 			// that.$store.commit('$uStore', {
+			// 			// 	name,
+			// 			// 	value
+			// 			// });
+			// 		}
+			// 	})
+			// 	//其它逻辑  
+			// }, false);
+			// //监听系统通知栏消息点击事件  
+			// plus.push.addEventListener('click', function(msg) {
+			// 	//处理点击消息的业务逻辑代码  
+			// 	if (msg.content && msg.content.contains("任务")) {
+			// 		uni.navigateTo({
+			// 			url: '/pages/task/my_task'
+			// 		})
+			// 	} else if (msg.content && (msg.content.contains("合同") || msg.content.contains("交易"))) {
+			// 		uni.navigateTo({
+			// 			url: '/pageB/contract/contract'
+			// 		})
+			// 	}
 
-			}, false);
+			// }, false);
 			// #endif
 			this.$socket.initWebIM(this.$ws, true, true)
 			let userInfo = uni.getStorageSync('userInfo') || '';

+ 10 - 2
common/appUpdate.js

@@ -5,15 +5,20 @@ import * as config from '../config'
 export default function appUpdate() {
 		
 	let baseUrlNew = config.def().baseUrlNew
+	console.log('id',plus.runtime.appid)
+	console.log('version',plus.runtime.version)
+	
 	uni.request({
-	    url: baseUrlNew + '/appVersion/selectInfo',
+	    url: 'https://apitest.eliangeyun.com/appVersion/selectInfo',
 	    data: {
 	    	appid: plus.runtime.appid,
 	    	version: plus.runtime.version,
-	    	imei: "1"
+	    	imei: "1",
+			type:'hz'
 	    },
 	    method: 'GET',
 	    success: (res) => {			
+			console.log(222222222222222222222222222)
 	    	if (res.statusCode === 200) {
 				console.log("uni.request update success",res)
 				plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {
@@ -74,6 +79,9 @@ export default function appUpdate() {
 				
 				});
 	    	}
+	    },fail(res) {
+	    	console.log(222222222222222222222222222)
+			console.log(res)
 	    }
 	})
 

+ 86 - 30
common/helper.js

@@ -14,7 +14,7 @@ const imgTypeList = [{
 		name: '拍照',
 	}
 ]
-const makeValidityPeriod = function(type,name) {
+const makeValidityPeriod = function(type, name) {
 	//获取当前年
 	let nowDate = new Date();
 	let year = nowDate.getFullYear()
@@ -94,46 +94,71 @@ const setAudit = (item) => {
 }
 const contactCustomerService = (item) => {
 	console.log(item)
+	if (!item) {
+		item = '110'
+	}
 	console.log("联系客服")
 	uni.makePhoneCall({
-		phoneNumber: '114' //仅为示例
+		phoneNumber: item,
+		success: (res) => {
+			console.log('调用成功!')
+		},
+		// 失败回调
+		fail: (res) => {
+			console.log('调用失败!')
+			contactCustomerService(item)
+		}
 	});
 }
+// 获取市、区简称
+const filterUrban = (s) => {
+	return s.substring(0, s.length - 1)
+}
+const filterArea = (q) => {
+	return q.substring(0, q.length - 1)
+}
 // const getAddress = (item) => {
 // 	let regex = "(?<province>[^省]+省|.+自治区)(?<city>[^自治州]+自治州|[^市]+市|[^盟]+盟|[^地区]+地区|.+区划)(?<county>[^市]+市|[^县]+县|[^旗]+旗|.+区)?(?<town>[^区]+区|.+镇)?(?<village>.*)";
 // 	return item.match(regex).groups
 // }
 
-const formatLocation = (res) => {
-	var regex = /^(北京市|天津市|重庆市|上海市|香港特别行政区|澳门特别行政区)/;
-	var REGION_PROVINCE = [];
-	var addressBean = {
-		REGION_PROVINCE: null,
-		REGION_COUNTRY: null,
-		REGION_CITY: null,
-		ADDRESS: null
-	};
+const formatLocation = (str) => {
+	// console.log('``````')
+	// console.log(str)
+	let area = {}
+	let index11 = 0
+	let index1 = str.indexOf("省")
+	if (index1 == -1) {
+		index11 = str.indexOf("自治区")
+		if (index11 != -1) {
+			area.Province = str.substring(0, index11 + 3)
+		} else {
+			area.Province = str.substring(0, 0)
+		}
+	} else {
+		area.Province = str.substring(0, index1 + 1)
+	}
 
-	function regexAddressBean(address, addressBean) {
-		// regex = /^(.*?[市州]|.*?地区|.*?特别行政区)(.*?[市区县])(.*?)$/g;
-		regex = /^(.*?[市]|.*?地区|.*?特别行政区)(.*?[市区县])(.*?)$/g;
-		var addxress = regex.exec(address);
-		addressBean.REGION_CITY = addxress[1];
-		addressBean.REGION_COUNTRY = addxress[2];
-		addressBean.ADDRESS = addxress[3] + "(" + res.name + ")";
-		// console.log(addxress);
-	};
-	if (!(REGION_PROVINCE = regex.exec(res.address))) {
-		regex = /^(.*?(省|自治区))(.*?)$/;
-		REGION_PROVINCE = regex.exec(res.address);
-		addressBean.REGION_PROVINCE = REGION_PROVINCE[1];
-		regexAddressBean(REGION_PROVINCE[3], addressBean);
+	let index2 = str.indexOf("市")
+	if (index11 == -1) {
+		area.City = str.substring(index11 + 1, index2 + 1)
 	} else {
-		addressBean.REGION_PROVINCE = REGION_PROVINCE[1];
-		regexAddressBean(res.address, addressBean);
+		if (index11 == 0) {
+			area.City = str.substring(index1 + 1, index2 + 1)
+		} else {
+			area.City = str.substring(index11 + 3, index2 + 1)
+		}
 	}
-	return addressBean
 
+	let index3 = str.indexOf("区")
+	if (index3 == -1) {
+		index3 = str.indexOf("县")
+		area.Country = str.substring(index2 + 1, index3 + 1)
+	} else {
+		area.Country = str.substring(index2 + 1, index3 + 1)
+	}
+	area.Village = str.substring(index3 + 1, str.length)
+	return area;
 }
 
 
@@ -211,7 +236,34 @@ const getProvinceAbbreviation = (province) => {
 		return "澳";
 
 }
-
+const getDistance = (lat1, lng1, lat2, lng2) => {
+	function Rad(d) {
+		return d * Math.PI / 180.0;
+	}
+	if (!lat1 || !lng1) {
+		return '';
+	}
+	// lat1用户的纬度
+	// lng1用户的经度
+	// lat2商家的纬度
+	// lng2商家的经度
+	let radLat1 = Rad(lat1);
+	let radLat2 = Rad(lat2);
+	let a = radLat1 - radLat2;
+	let b = Rad(lng1) - Rad(lng2);
+	let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) *
+		Math.pow(
+			Math.sin(b / 2), 2)));
+	s = s * 6378.137;
+	s = Math.round(s * 10000) / 10000;
+	s = s.toFixed(2) //保留两位小数
+	return s
+}
+const logout = () => {
+	uni.removeStorage({
+		key: 'userInfo'
+	})
+}
 
 export default {
 	getListByUserId,
@@ -224,5 +276,9 @@ export default {
 	makeValidityPeriod,
 	getProvinceAbbreviation,
 	// getAddress,
-	formatLocation
+	formatLocation,
+	getDistance,
+	logout,
+	filterUrban,
+	filterArea
 }

+ 2 - 2
components/nk-select-file/nk-select-file.vue

@@ -215,7 +215,7 @@
 			};
 		},
 		watch:{
-			value(val){debugger
+			value(val){
 				if(val){
 					this.open();
 				}else{
@@ -223,7 +223,7 @@
 				}
 			}
 		},
-		mounted() {debugger
+		mounted() {
 			if(Object.prototype.toString.call(this.filterArr) === '[object Array]' && this.filterArr.length > 0){
 				let str = this.filterArr.join("|");
 				this.filterReg = new RegExp(str,'i');

+ 2 - 4
components/ossutil/uploadFile.js

@@ -12,7 +12,7 @@ const Crypto = require('./crypto.js');
  *@param - successc:成功回调
  *@param - failc:失败回调
  */ 
-const uploadFile = function (file,filePath, dir, successc, failc) {debugger
+const uploadFile = function (filePath, dir, successc, failc) {
   if (!filePath || filePath.length < 9) {
     uni.showModal({
       title: '图片错误',
@@ -21,10 +21,8 @@ const uploadFile = function (file,filePath, dir, successc, failc) {debugger
     })
     return;
   }
-  
   //图片名字 可以自行定义,     这里是采用当前的时间戳 + 150内的随机数来给图片命名的
-  // const aliyunFileKey = dir + new Date().getTime() + Math.floor(Math.random() * 150) + '.png';
-  const aliyunFileKey = file.name
+  const aliyunFileKey = dir + new Date().getTime() + Math.floor(Math.random() * 150) + '.png';
   
   const aliyunServerURL = env.uploadImageUrl;//OSS地址,需要https
   const accessid = env.OSSAccessKeyId;

+ 2 - 1
config/index.js

@@ -1,5 +1,6 @@
 const dev = {
-	baseUrlNew: 'http://192.168.1.114:8091',
+	baseUrlNew: 'https://apitest.eliangeyun.com',
+	// baseUrlNew: 'http://192.168.1.114:8091',
 	h5Appid: 'wxb66b599f7f61b46f',
 	debug: false
 }

+ 21 - 18
hybrid/html/map.html

@@ -5,6 +5,7 @@
 		<meta http-equiv="X-UA-Compatible" content="IE=edge">
 		<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
 		<link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" />
+		<title>运输轨迹</title>
 		<style>
 			* {
 				margin: 0;
@@ -30,7 +31,6 @@
 			}
 			.start,.end{
 				display: flex;
-				flex-direction: column;
 			}
 			.distance {
 				background-color: #00000061;
@@ -47,13 +47,13 @@
 		<div id="container"></div>
 		<div class='content'>
 			<div class='start'>
-				<div>武汉</div>
-				<div>江汉</div>
+				<div id='sendCity'></div>
+				<div id='sendArea'></div>
 			</div>
-			<div>------></div>
+			<div>-----------></div>
 			<div class='end'>
-				<div>沈阳</div>
-				<div>和平</div>
+				<div id='unloadCity'></div>
+				<div id='unloadArea'></div>
 			</div>
 		</div>
 		<div id="distance" class='distance'></div>
@@ -62,20 +62,23 @@
 		</script>
 		<script src="https://webapi.amap.com/loca?v=2.0.0&key=211dd6f989e719022aaf47ddb0659c47"></script>
 		<script>
-			function getQuery(name) {
-				// 正则:[找寻'&' + 'url参数名字' = '值' + '&']('&'可以不存在)
-				let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
-				let r = window.location.search.substr(1).match(reg);
-				console.log(r);
-				if (r != null) {
-					// 对参数值进行解码
-					return decodeURIComponent(r[2]);
+		var _t = getQueryString("obj"); 
+				var obj = JSON.parse(decodeURI(_t)) ; 
+				console.log('---------------------')
+				console.log(obj)
+				document.getElementById('sendCity').innerHTML = obj.sendCity
+				document.getElementById('sendArea').innerHTML = obj.sendArea
+				document.getElementById('unloadCity').innerHTML = obj.unloadCity
+				document.getElementById('unloadArea').innerHTML = obj.unloadArea
+				
+				
+				
+				function getQueryString(name) {
+					var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+					var r = window.location.search.substr(1).match(reg);
+					if (r != null) return unescape(r[2]); return null;
 				}
-				return null;
-			}
-			// let starLnglat = getQuery('lat').toString().split(',');
 			let starLnglat = [40.243655, 122.114407]
-			console.log('---------------------')
 			console.log(starLnglat)
 			var map = new AMap.Map('container', {
 				zoom: 12,

+ 12 - 369
hybrid/html/play.html

@@ -11,384 +11,27 @@
 				background: #F5F6FA;
 			}
 
-			.content {
-				background: #F5F6FA;
-				height: 100vh;
-				position: relative;
-			}
-
-			.row {
-				display: flex;
-				justify-content: center;
-				padding-top: 50px;
-
-			}
-
-			.img-video {
-				position: relative;
-				border-radius: 280px;
-				width: 250px;
-				height: 250px;
-				overflow: hidden;
-			}
-
-			.row2 {
-				display: flex;
-				font-size: 20px;
-				justify-content: center;
-				margin-top: 20px;
-			}
-
-			.verify-btn {
-				background: #2772FB;
-				font-size: 20px;
-				padding: 10px 0;
-				width: 70%;
-				display: flex;
-				justify-content: center;
-				align-items: center;
-				border-radius: 50px;
-				color: white;
-
-			}
-
-			.btn {
-				position: absolute;
-				bottom: 0;
-				background: white;
-				width: 100%;
-				display: flex;
-				justify-content: center;
-				padding: 40px 0;
-			}
-
-			.img {
-				position: absolute;
-				top: 0;
-				bottom: 0;
-				width: 100%;
-				width: 564px;
-				height: 564px;
-				right: 0;
-				left: 0;
-				margin: auto;
-			}
-
-			.video-content {
-				position: absolute;
-				top: 0;
-				bottom: 0;
-				width: 100%;
-				right: 0;
-				left: 0;
-				margin: auto;
-			}
-
-			.video {
-				width: calc(100%);
-				background: #F5F6FA;
-			}
-
-			.video-btn {
-				width: 100%;
-				display: flex;
-				justify-content: center;
-			}
-			.progressBar {
-				width: 50%;
-				height: 25px;
-				display: block;
-				top: 0;
-				left: 0;
-				bottom: 0;
-				right: 0;
-				margin: auto;
-				padding: 10px 10px 10px 10px;
-				position: absolute;
-				z-index: 2001;
-				background: rgb(102, 102, 102);
-				color: white;
-				border-radius: 5px;
-			}
-			.text{
-				padding: 20px;
-			}
+			
 		</style>
 	</head>
 	<body>
 		<div id='app'>
-			<video width="320" height="240" controls>
-			  <source src="https://taohaoliang.oss-cn-beijing.aliyuncs.com/appData/video165026727868476.mp4" type="video/mp4">
+			<video width="320" height="240" controls id='srcSource'>
 			</video>
 		</div>
 	</body>
-	<script type="text/javascript" src="vue.min.js"></script>
 	<script type="text/javascript" src="https://taohaoliang.oss-cn-beijing.aliyuncs.com/app/jquery.min.js"></script>
-	<script type="text/javascript" src="base64.js"></script>
-	<script type="text/javascript" src="crypto.js"></script>
-	<script type="text/javascript" src="index.js"></script>
 	<script type="text/javascript">
-		document.addEventListener('UniAppJSBridgeReady', function() {
-			uni.webView.getEnv(function(res) {
-				console.log('当前环境:' + JSON.stringify(res));
-			});
-			// 
-			new Vue({
-		 	el: '#app',
-				data: {
-					url: '',
-					// showVideo: true,
-					mediaRecorder: null,
-					MediaStreamTrack: null,
-					isAlreadyRecord: false,
-					count: 8,
-					countTimer: null,
-					recordedBlobs: [],
-					compId: ''
-				},
-				beforeDestroy() {
-					this.MediaStreamTrack && this.MediaStreamTrack.stop()
-					this.countTimer && clearTimeout(this.countTimer)
-				},
-				computed: {},
-
-				mounted() {
-					this.getCamera()
-				},
-				watch: {},
-				methods: {
-					getPolicyBase64() {
-						let date = new Date();
-						date.setHours(date.getHours() + 87600);
-						let srcT = date.toISOString();
-		 			const policyText = {
-							"expiration": srcT, //设置该Policy的失效时间,超过这个失效时间之后,就没有办法通过这个policy上传文件了 
-							"conditions": [
-								["content-length-range", 0, 100 * 1024 * 1024] // 设置上传文件的大小限制,5mb
-							]
-						};
-
-						const policyBase64 = Window.base64.encode(JSON.stringify(policyText));
-						console.log(policyBase64);
-						return policyBase64;
-					},
-					getSignature(policyBase64) {
-						const accesskey = 'FpClTp4OVrRRtHEfi3lBOWUoLxKieW';
-						// console.log('video.js')
-						// console.log(Crypto)
-						const bytes = Window.Crypto.HMAC(Window.Crypto.SHA1, policyBase64, accesskey, {
-							asBytes: true
-						})
-						const signature = Window.Crypto.util.bytesToBase64(bytes);
-						// console.log(signature);
-		 			return signature;
-					},
-					async uploadFile(file) {
-						var formdata = new FormData()
-						const policyBase64 = this.getPolicyBase64();
-						const signature = this.getSignature(policyBase64); //获取签名
-						const urlStr = "https://taohaoliang.oss-cn-beijing.aliyuncs.com/"
-						const fileName = "appData/video" + new Date().getTime() + Math.floor(Math.random() *
-							150) + '.mp4'
-						formdata.append("key", fileName)
-						formdata.append("policy", policyBase64)
-						formdata.append("OSSAccessKeyId", 'LTAI4G9c14PgKvM23WZ9zrpc')
-						formdata.append("signature", signature)
-						formdata.append("success_action_status", '200')
-						formdata.append("file", file)
-						console.log('file.name')
-						$.ajax({
-							type: "POST",
-							data: formdata,
-							contentType: false,
-							processData: false,
-							url: urlStr,
-							success: function(result) {
-		 					console.log(urlStr + fileName)
-								uni.webView.navigateTo({
-									url: '/pages/mine/company/addcompany?videoSrc=' +
-										urlStr + fileName
-								})
-
-							},
-
-							//请求失败,包含具体的错误信息
-							error: function(e) {
-								console.log(e);
-								console.log(e.status);
-								console.log(e.responseText);
-							}
-						});
-					},
-					// 调用摄像头 开始录制
-					getCamera() {
-						// 注意本例需要在HTTPS协议网站中运行,新版本Chrome中getUserMedia接口在http下不再支持。
-						let constraints = {
-		 				audio: true,
-							video: {
-								facingMode: 'user' // 优先调前置摄像头
-							}
-						}
-						console.log('--------------')
-						console.log(navigator)
-						// 老的浏览器可能根本没有实现 mediaDevices,所以我们可以先设置一个空的对象
-						if (navigator.mediaDevices === undefined) {
-							navigator.mediaDevices = {}
-						}
-						// 一些浏览器部分支持 mediaDevices。我们不能直接给对象设置 getUserMedia
-						// 因为这样可能会覆盖已有的属性。这里我们只会在没有getUserMedia属性的时候添加它。
-						if (navigator.mediaDevices.getUserMedia === undefined) {
-							navigator.mediaDevices.getUserMedia = function(constraints) {
-								// 首先,如果有getUserMedia的话,就获得它
-								//   var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia
-								var getUserMedia = navigator.getUserMedia ||
-		 						navigator.webkitGetUserMedia ||
-									navigator.mozGetUserMedia
-		 					// 一些浏览器根本没实现它 - 那么就返回一个error到promise的reject来保持一个统一的接口
-								if (!getUserMedia) {
-									this.$messageBox.alert('该浏览器不支持getUserMedia,请使用其他浏览器')
-									return Promise.reject(new Error(
-										'getUserMedia is not implemented in this browser'))
-								}
-								// 否则,为老的navigator.getUserMedia方法包裹一个Promise
-								return new Promise(function(resolve, reject) {
-									getUserMedia.call(navigator, constraints, resolve, reject)
-								})
-							}
-						}
-						navigator.mediaDevices.getUserMedia(constraints)
-							.then((stream) => {
-								this.MediaStreamTrack = typeof stream.stop === 'function' ? stream :
-									stream
-									.getTracks()[0]
-								console.log(stream)
-								console.log(this.MediaStreamTrack)
-								// 显示录制框
-								this.showVideo = true
-								this.isAlreadyRecord = false
-								let winURL = window.URL || window.webkitURL
-								if ('srcObject' in this.$refs.videoRef) {
-									this.$refs.videoRef.srcObject = stream
-								} else {
-									this.$refs.videoRef.src = winURL.createObjectURL(stream)
-								}
-								console.log(this.$refs.videoRef)
-								this.$refs.videoRef.onloadedmetadata = e => {
-									// 播放视频
-									this.$refs.videoRef.play()
-								}
-								let options = {
-									videoBitsPerSecond: 2500000
-		 					}
-								this.mediaRecorder = new MediaRecorder(stream, options)
-							})
-							.catch((err) => {
-								console.log(err)
-								this.$messageBox.alert('摄像头开启失败,请检查摄像头是否授权或是否可用!')
-							})
-							$("#progressBar").hide();
-					},
-					// 关闭活体检测
-					closeVideo() {
-						this.recordedBlobs = ''
-						this.isAlreadyRecord = false
-						this.MediaStreamTrack && this.MediaStreamTrack.stop()
-						this.countTimer && clearTimeout(this.countTimer)
-						this.$router.go(0)
-					},
-					// 录制倒计时
-					countDown() {
-						let that = this
-						let sendTime = Math.round(+new Date() / 1000)
-		 			return function walk() {
-							that.countTimer = setTimeout(function() {
-								that.countTimer && clearTimeout(that.countTimer)
-								let diff = sendTime + 8 - Math.round(+new Date() / 1000)
-								if (diff > 0) {
-									that.count = diff
-									walk()
-								} else {
-									console.log('倒计时结束')
-									// this.showVideo = false
-									console.log(this.url)
-									console.log(this.MediaStreamTrack)
-								}
-							}, 1000)
-						}
-					},
-					dataURLtoBlob(dataurl) {
-
-						var arr = dataurl.split(","),
-
-							mime = arr[0].match(/:(.*?);/)[1],
-
-							bstr = atob(arr[1]),
-
-							n = bstr.length,
-
-							u8arr = new Uint8Array(n);
-
-						while (n--) {
-
-							u8arr[n] = bstr.charCodeAt(n);
-
-						}
-
-						return this.blobToFile(new Blob([u8arr], {
-							type: mime
-						}), {
-							type: mime
-						});
-
-					},
-					blobToFile(theBlob, type) {
-						theBlob.lastModifiedDate = new Date();
-						return new File([theBlob], `${new Date().getTime()}.mp4`, type);
-
-					},
-					// 保存录制视频
-					saveVideo() {
-						let that = this
-						if (this.isAlreadyRecord) {
-							this.countTimer && clearTimeout(this.countTimer)
-							// this.showVideo = false
-							//当录制的数据可用时
-							this.mediaRecorder.ondataavailable = (e) => {
-								if (e.data && e.data.size > 0) {
-									this.recordedBlobs.push(e.data)
-								}
-							}
-							this.mediaRecorder.stop()
-							setTimeout(() => {
-								console.log("this.recordedBlobs-------------------------")
-		 					var blob = new Blob(this.recordedBlobs, {
-									type: 'video/mp4'
-		 					})
-								this.isAlreadyRecord = false
-								this.MediaStreamTrack && this.MediaStreamTrack.stop()
-								var reader = new FileReader();
-								reader.readAsDataURL(blob)
-								reader.onload = (e) => {
-									this.$refs.videob.src = reader.result
-									let a = this.dataURLtoBlob(reader.result)
-									console.log(a)
-									this.uploadFile(a)
-								}
-							}, 100)
-						} else {
-							this.count = 8
-							this.isAlreadyRecord = true
-							this.mediaRecorder.start(8000)
-							this.countDown()()
-						}
-					},
-					changeVideo(e) {
-		 			let file = this.$refs.videoFile.files
-						console.log(file)
-					}
-				}
-			})
-		});
+		var src = getUrlParam("src")
+		function getUrlParam(name) {
+			var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
+			var r = window.location.search.substr(1).match(reg); //匹配目标参数
+			if (r != null) return unescape(r[2]);
+			return null; //返回参数值
+		}
+			console.log("src")
+		console.log(src)
+		$('#srcSource').attr("src",src)
 	</script>
 
 </html>

+ 4 - 4
hybrid/html/video.html

@@ -118,7 +118,7 @@
 	<body>
 		<div id='app'>
 			<div class='content'>
-				<div id="progressBar" class="progressBar">地图数据加载中...</div>
+				<!-- <div id="progressBar" class="progressBar">地图数据加载中...</div> -->
 				<div class='row'>
 					<div class='img-video'>
 						<!-- <img src="./img/shipinrenzheng.png" alt="" class='img'> -->
@@ -150,7 +150,7 @@
 							{{ isAlreadyRecord ? '结束录制(' + count + 's)' : '开始录制' }}</button> -->
 					</div>
 				</div>
-				<video ref="videob" controls="" name="media" width="100%" height="100"></video>
+				<!-- <video ref="videob" controls="" name="media" width="100%" height="100"></video> -->
 			</div>
 
 
@@ -318,7 +318,7 @@
 							})
 							.catch((err) => {
 								console.log(err)
-								this.$messageBox.alert('摄像头开启失败,请检查摄像头是否授权或是否可用!')
+							console.log('摄像头开启失败,请检查摄像头是否授权或是否可用!')
 							})
 							$("#progressBar").hide();
 					},
@@ -403,7 +403,7 @@
 								var reader = new FileReader();
 								reader.readAsDataURL(blob)
 								reader.onload = (e) => {
-									this.$refs.videob.src = reader.result
+									// this.$refs.videob.src = reader.result
 									let a = this.dataURLtoBlob(reader.result)
 									console.log(a)
 									this.uploadFile(a)

文件差异内容过多而无法显示
+ 0 - 0
hybrid/html/vue.min.js


+ 57 - 14
manifest.json

@@ -1,9 +1,9 @@
 {
-    "name" : "uni-app开发模板",
-    "appid" : "__UNI__6485BEA",
-    "description" : "",
-    "versionName" : "1.0.0",
-    "versionCode" : "100",
+    "name" : "智运-货主端",
+    "appid" : "__UNI__DCD13AC",
+    "description" : "智运",
+    "versionName" : "1.0.2",
+    "versionCode" : 102,
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {
@@ -19,27 +19,33 @@
         /* 模块配置 */
         "modules" : {
             "Maps" : {},
-            "VideoPlayer" : {}
+            "VideoPlayer" : {},
+            "Bluetooth" : {},
+            "OAuth" : {}
         },
         /* 应用发布信息 */
         "distribute" : {
             /* android打包配置 */
             "android" : {
                 "permissions" : [
-                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
                     "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
                     "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                     "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.INTERNET\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
                     "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                     "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
                     "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
                 ]
             },
@@ -52,6 +58,43 @@
                         "appkey_ios" : "64541bb9b52fe4d41d8ac5c1959cf4b9",
                         "appkey_android" : "8a601d5716a812aaf65291da18dae719"
                     }
+                },
+                "push" : {
+                    "unipush" : {}
+                },
+                "oauth" : {},
+                "ad" : {}
+            },
+            "icons" : {
+                "android" : {
+                    "hdpi" : "unpackage/res/icons/72x72.png",
+                    "xhdpi" : "unpackage/res/icons/96x96.png",
+                    "xxhdpi" : "unpackage/res/icons/144x144.png",
+                    "xxxhdpi" : "unpackage/res/icons/192x192.png"
+                },
+                "ios" : {
+                    "appstore" : "unpackage/res/icons/1024x1024.png",
+                    "iphone" : {
+                        "app@2x" : "unpackage/res/icons/120x120.png",
+                        "app@3x" : "unpackage/res/icons/180x180.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
+                        "spotlight@3x" : "unpackage/res/icons/120x120.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "settings@3x" : "unpackage/res/icons/87x87.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "notification@3x" : "unpackage/res/icons/60x60.png"
+                    },
+                    "ipad" : {
+                        "app" : "unpackage/res/icons/76x76.png",
+                        "app@2x" : "unpackage/res/icons/152x152.png",
+                        "proapp@2x" : "unpackage/res/icons/167x167.png",
+                        "spotlight" : "unpackage/res/icons/40x40.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
+                        "settings" : "unpackage/res/icons/29x29.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "notification" : "unpackage/res/icons/20x20.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png"
+                    }
                 }
             }
         }

+ 28 - 18
pages.json

@@ -54,12 +54,6 @@
 			}
 		},
 		{
-			"path": "pages/goodSource/index",
-			"style": {
-				"navigationBarTitleText": "开发中"
-			}
-		}
-		, {
 			"path": "pages/news/index",
 			"style": {
 				"navigationStyle": "custom",
@@ -67,6 +61,12 @@
 			}
 
 		},
+		{
+			"path": "pages/goodSource/index",
+			"style": {
+				"navigationBarTitleText": "开发中"
+			}
+		},
 		{
 			"path": "pages/mine/index",
 			"style": {
@@ -79,6 +79,12 @@
 				"navigationStyle": "custom"
 			}
 		},
+		{
+			"path": "pages/public/code",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
 		{
 			"path": "pages/public/loginOther",
 			"style": {
@@ -208,14 +214,14 @@
 				"backgroundColor": "#000000"
 			}
 
-		}, 
+		},
 		{
 			"path": "pages/mine/camera/video/video",
 			"style": {
 				"navigationStyle": "custom",
 				"backgroundColor": "#000000"
 			}
-		
+
 		},
 		{
 			"path": "pages/mine/agency/agency",
@@ -387,22 +393,26 @@
 
 		}, {
 			"path": "pages/order/map",
+			"style": {
+				"navigationBarTitleText": "运输轨迹",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/mine/cargoowner/editEnerprise",
 			"style": {
 				"navigationBarTitleText": "",
 				"enablePullDownRefresh": false
 			}
 
+		},
+		{
+			"path": "pages/goodSource/index",
+			"style": {
+				"navigationBarTitleText": "开发中"
+			}
 		}
-	    ,{
-            "path" : "pages/mine/cargoowner/editEnerprise",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-    ],
+	],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "uni-app",

+ 1 - 1
pages/goodSource/index.vue

@@ -1,7 +1,7 @@
 <!-- 货源 -->
 <template>
 	<view class="content">
-
+	找车
 	</view>
 </template>
 

+ 1 - 1
pages/mine/agentCargoOwner.vue

@@ -165,7 +165,7 @@
 						pageSize: page.size,
 						currentPage: page.num,
 					}).then(res => {
-						debugger
+						
 						this.mescroll.endBySize(res.data.records.length, res.data.total);
 						if (page.num == 1) this.goods = []; //如果是第一页需手动制空列表
 						this.goods = this.goods.concat(res.data.records); //追加新数据

+ 5 - 3
pages/mine/cargoowner/addEnerprise.vue

@@ -95,6 +95,7 @@
 				dataDetails:{
 					authorizationDeadline:'',
 					certificateAddressUrl:'',
+					advanceFreightService:''
 				},
 				companuList:[],
 				isshow:false,
@@ -120,6 +121,7 @@
 		onShow() {
 			if(uni.getStorageSync('currectcompany')){
 				this.dataDetails.company=uni.getStorageSync('currectcompany').companyName
+				this.dataDetails.advanceFreightService=uni.getStorageSync('currectcompany').advanceFreightService
 				this.dataDetails.legalPersonName=uni.getStorageSync('currectcompany').legalPersonName
 			}
 		},
@@ -130,7 +132,7 @@
 			},
 			uploadFilePromise(file,url) {
 				uploadImage(file,url, 'appData/',
-					result => {debugger
+					result => {
 						// 上传成功回调函数
 						console.log('图片地址', result)
 						this.dataDetails.certificateAddressUrl += result
@@ -143,7 +145,7 @@
 				this[`fileList${event.name}`].splice(event.index, 1)
 			},
 			// 新增图片
-			async afterRead(event) {debugger
+			async afterRead(event) {
 				// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
 				let lists = [].concat(event.file)
 				let fileListLen = this[`fileList${event.name}`].length
@@ -198,7 +200,7 @@
 				} = e
 			
 				// if (columnIndex === 0) {
-				// 	debugger
+				// 	
 				// 	if (e.index != 0) {
 				// 		picker.setColumnValues(1, this.validityPeriod[1].shift())
 				// 	}

+ 3 - 3
pages/mine/cargoowner/cargoowner.vue

@@ -113,10 +113,10 @@
 		},
 		methods: {
 			toEditPage(){
-				if(!this.personage){
-					return
-				}else{
+				if(this.personage&&this.personage.authenticationStatus=='已认证'){
 					uni.$u.route("/pages/mine/cargoowner/editpersonalinformation",this.personage);
+				}else{
+					
 				}
 			},
 			edit(val){

+ 2 - 2
pages/mine/cargoowner/editEnerprise.vue

@@ -113,7 +113,7 @@
 			}
 			this.validityPeriod = this.$helper.makeValidityPeriod(0,'长期')
 			// this.getList()
-			debugger
+			
 			this.dataDetails = options
 			this.fileList1 = [{
 				url:options.certificateAddressUrl
@@ -193,7 +193,7 @@
 				} = e
 			
 				// if (columnIndex === 0) {
-				// 	debugger
+				// 	
 				// 	if (e.index != 0) {
 				// 		picker.setColumnValues(1, this.validityPeriod[1].shift())
 				// 	}

+ 17 - 15
pages/mine/cargoowner/editpersonalinformation.vue

@@ -40,12 +40,10 @@
 				<view class="text">上传身份证人像面</view>
 			</view>
 			<view v-if="dataDetails.cardAddressUrl" @click.stop="uploadImg(1,index)" class="preview-card-img picture">
-				<!-- <image class="card-img" :src="dataDetails.cardAddressUrl"></image> -->
-				<!-- 		<view @click.stop="delCard(1)">
-						<image class='del-card' src="@/static/images/common/quxiao@2x.png">
-						</image>
-					</view> -->
-
+				<view @click.stop="delCard(1)">
+					<image class='del-card' src="@/static/images/common/quxiao@2x.png">
+					</image>
+				</view>
 				<image class="" :src="dataDetails.cardAddressUrl" mode="aspectFit" style=""></image>
 			</view>
 
@@ -158,7 +156,7 @@
 				index: '',
 			};
 		},
-		onLoad(options) {debugger
+		onLoad(options) {
 			var _this = this;
 			this.dataDetails = options
 			this.validityPeriod = this.$helper.makeValidityPeriod(0, '长期')
@@ -169,6 +167,11 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
+			// 性别切换
+			radioChange(n) {
+				console.log('radioChange', n);
+				this.dataDetails.sex = n
+			},
 			consent() {
 				this.checked = !this.checked
 			},
@@ -177,7 +180,7 @@
 			},
 			//设置图片
 			setImage(e) {
-				// debugger
+				// 
 				console.log(e);
 				//显示在页面
 				//this.imagesrc = e.path;
@@ -191,7 +194,7 @@
 			},
 			//保存图片到相册,方便核查
 			savePhoto(path) {
-				// debugger
+				// 
 				this.imagesrc = path;
 				uploadImage(path, 'appData/',
 					result => {
@@ -220,7 +223,7 @@
 				} = e
 
 				// if (columnIndex === 0) {
-				// 	debugger
+				// 	
 				// 	if (e.index != 0) {
 				// 		picker.setColumnValues(1, this.validityPeriod[1].shift())
 				// 	}
@@ -252,7 +255,7 @@
 					mask: true
 				})
 				var _this = this
-				this.$request.baseRequest('post', '/cargoOwnerInfo/api/addCargoOwner', _this.dataDetails).then(res => {
+				this.$request.baseRequest('post', '/cargoOwnerInfo/api/editCargoOwner', _this.dataDetails).then(res => {
 						uni.hideLoading()
 						uni.$u.toast('提交成功')
 						uni.$u.route('/pages/mine/cargoowner/cargoowner')
@@ -285,7 +288,6 @@
 			},
 
 			imgTypeSelect(val) {
-				debugger
 				let that = this
 				console.log(val)
 				console.log(this.uploadType)
@@ -299,7 +301,7 @@
 								result => {
 									// 上传成功回调函数
 									console.log('图片地址', result)
-									debugger
+									
 									switch (that.uploadType) {
 										// 身份正面
 										case 1:
@@ -313,6 +315,7 @@
 													if (!that.dataDetails.name) {
 														that.dataDetails.name = res.data.recPerson
 													}
+													that.$forceUpdate()
 												})
 												.catch(res => {
 													uni.$u.toast(res.message);
@@ -321,6 +324,7 @@
 											// 身份反面
 										case 2:
 											that.dataDetails.cardBackAddressUrl = result
+											that.$forceUpdate()
 											break
 									}
 								}
@@ -450,9 +454,7 @@
 		.picture {
 			width: 100%;
 			height: 440rpx;
-			background: red;
 			position: relative;
-
 			.text {
 				margin-top: 20rpx;
 			}

+ 29 - 14
pages/mine/company/addcompany.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="content">
-		<!-- <web-view id="mapContainer" :src="srcHandler()"></web-view> -->
+		<web-view :src="srcHandler()" v-if="isSshowPlayVideo"></web-view>
 		<!-- 		<u-navbar leftText="返回" title="企业认证" :safeAreaInsetTop="true">
 			<view class="u-nav-slot" slot="left">
 				<u-icon @click='navback' name="arrow-left" size="19"></u-icon>
@@ -46,8 +46,8 @@
 		</view>
 		<view class='content1'>
 			<view class="title">上传营业执照</view>
-			<view style='position:relative;'>
-				<view v-if='!dataDetails.businessLicenseAddressUrl' @click="uploadImg(1)" class="picture picture7">
+			<view style='position:relative;' @click="uploadImg(1)">
+				<view v-if='!dataDetails.businessLicenseAddressUrl' class="picture picture7">
 					<image class="xj-image" src="@/static/mine/ic_shanchuan@2x.png"></image>
 					<view class="text">上传营业执照</view>
 				</view>
@@ -118,17 +118,22 @@
 		</view>
 		<!-- http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4 -->
 		<!-- dataDetails.videoAddressUrl -->
-		<view class='content3' @click="goDetailPage('/pages/mine/company/addcompanythree')">
-			<video src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" @error="videoErrorCallback" controls></video>
-			<video src="https://taohaoliang.oss-cn-beijing.aliyuncs.com/appData/video165026727868476.mp4" :play-strategy='3' @error="videoErrorCallback" controls></video>
-			<view v-if="!dataDetails.videoAddressUrl">
-				<view class="left-text">视频验证(打开摄像头并阅读提示文字)</view>
+		<view class='content3' v-if="!dataDetails.videoAddressUrl"
+			@click="goDetailPage('/pages/mine/company/addcompanythree')">
+			<view class="left-text">视频验证(打开摄像头并阅读提示文字)</view>
+			<view class="video-icon">
+				<u-icon size="40" name="camera-fill"></u-icon>
+			</view>
+		</view>
+		<view class='content3' v-if="dataDetails.videoAddressUrl">
+			<view class="left-text">视频验证(点击按钮播放视频)</view>
+			<view >
 				<view class="video-icon">
-					<u-icon size="40" name="camera-fill"></u-icon>
+					<u-icon size="40" name="play-circle-fill" @click="isSshowPlayVideo=true"></u-icon>
 				</view>
 			</view>
-
 		</view>
+
 		<view class="content4">
 			<view class="flex row noborder mt20 flex-space-between">
 				<view class="left-text">申请开通平台垫付运费业务</view>
@@ -138,7 +143,7 @@
 			</view>
 			<view class="flex service align-center">
 				<u--image @click='consent'
-					:src="consentStatus==true?'../../static/images/mine/duihao@2x.png':'../../static/images/mine/wxz.png'"
+					:src="consentStatus==true?'../../../static/images/mine/duihao@2x.png':'../../../static/images/mine/wxz.png'"
 					width="12px" height="12px"></u--image>
 				我已阅读并同意
 				<navigator
@@ -172,9 +177,10 @@
 		components: {},
 		data() {
 			return {
+				isSshowPlayVideo: false,
 				srcHandler() {
 					// 
-					return `/hybrid/html/play.html`
+					return `/hybrid/html/play.html?src=${this.dataDetails.videoAddressUrl}`
 				},
 				consentStatus: false,
 				ValidityPeriodType: '',
@@ -223,6 +229,12 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
+			loadedmetadata(event) {
+				console.log(event)
+			},
+			loadeddata(event) {
+				console.log(event)
+			},
 			videoErrorCallback: function(e) {
 				uni.showModal({
 					content: e.target.errMsg,
@@ -264,7 +276,10 @@
 				this.dataDetails.landOwnership = n
 				console.log('this.dataDetails.landOwnership', this.dataDetails.landOwnership);
 			},
-			delCard() {
+			delCard(type) {
+				if(type==1){}else{
+					
+				}
 				this.dataDetails.businessLicenseAddressUrl = ''
 				this.$forceUpdate()
 			},
@@ -388,7 +403,7 @@
 				} = e
 
 				// if (columnIndex === 0) {
-				// 	debugger
+				// 	
 				// 	if (e.index != 0) {
 				// 		picker.setColumnValues(1, this.validityPeriod[1].shift())
 				// 	}

+ 1 - 1
pages/mine/company/addcompanytwo.vue

@@ -158,7 +158,7 @@
 				} = e
 			
 				// if (columnIndex === 0) {
-				// 	debugger
+				// 	
 				// 	if (e.index != 0) {
 				// 		picker.setColumnValues(1, this.validityPeriod[1].shift())
 				// 	}

+ 1 - 1
pages/mine/company/editcompany.vue

@@ -216,7 +216,7 @@
 				} = e
 			
 				// if (columnIndex === 0) {
-				// 	debugger
+				// 	
 				// 	if (e.index != 0) {
 				// 		picker.setColumnValues(1, this.validityPeriod[1].shift())
 				// 	}

+ 1 - 1
pages/mine/company/editcompanytwo.vue

@@ -158,7 +158,7 @@
 				} = e
 			
 				// if (columnIndex === 0) {
-				// 	debugger
+				// 	
 				// 	if (e.index != 0) {
 				// 		picker.setColumnValues(1, this.validityPeriod[1].shift())
 				// 	}

+ 11 - 8
pages/mine/company/index.vue

@@ -158,13 +158,16 @@
 		box-sizing: border-box;
 	}
 	.newlyIncreased{
-		width:100%;
-		margin:0 auto;
-		text-align:center;
-		height:46px;
-		line-height: 46px;
-		color:#fff;
-		background:url(../../../static/mine/huozhurenzheng/Mask@3x.png) no-repeat;
-		background-size:100%;
+		width: 100%;
+		height: 80rpx;
+		margin: 0 auto;
+		text-align: center;
+		color: #fff;
+		background: #2772FB;
+		background-size: 100%;
+		border-radius: 50rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
 	}
 </style>

+ 7 - 7
pages/mine/driverCertification.vue

@@ -252,7 +252,7 @@
 				} = e
 
 				// if (columnIndex === 0) {
-				// 	debugger
+				// 	
 				// 	if (e.index != 0) {
 				// 		picker.setColumnValues(1, this.validityPeriod[1].shift())
 				// 	}
@@ -265,7 +265,7 @@
 			},
 			// 回调参数为包含columnIndex、value、values
 			confirmValidityPeriod(e) {
-				// debugger
+				// 
 				console.log('confirm', e)
 				if (e.value[0] == '长期') {
 					this.dataDetails.cardValidityDate = e.value[0]
@@ -298,7 +298,7 @@
 			},
 			//设置图片
 			setImage(e) {
-				// debugger
+				// 
 				console.log(e);
 				//显示在页面
 				//this.imagesrc = e.path;
@@ -312,7 +312,7 @@
 			},
 			//保存图片到相册,方便核查
 			savePhoto(path) {
-				// debugger
+				// 
 				this.imagesrc = path;
 				uploadImage(path, 'appData/',
 					result => {
@@ -332,7 +332,7 @@
 				// });
 			},
 			uploadImg(type, val) {
-				// debugger
+				// 
 				this.uploadType = type
 				this.isShowimgType = true
 				this.carInfo = val
@@ -355,7 +355,7 @@
 
 			},
 			imgTypeSelect(val) {
-				// debugger
+				// 
 				console.log(val)
 				console.log(this.uploadType)
 				if (val.name == '相册') {
@@ -454,7 +454,7 @@
 				this.dataDetails.driverCarInfoList[this.index].carNumber = e.value //键盘输入值
 			},
 			handleShowKeyboard(index) {
-				// debugger
+				// 
 				if (this.dataDetails.driverCarInfoList[index].carNumber == '') {
 					this.carNumber = ''
 				} else {

+ 3 - 3
pages/mine/driverCertificationNext.vue

@@ -131,7 +131,7 @@
 			},
 			//设置图片
 			setImage(e) {
-				// debugger
+				// 
 				console.log(e);
 				//显示在页面
 				//this.imagesrc = e.path;
@@ -145,7 +145,7 @@
 			},
 			//保存图片到相册,方便核查
 			savePhoto(path) {
-				// debugger
+				// 
 				this.imagesrc = path;
 				uploadImage(path, 'appData/',
 					result => {
@@ -220,7 +220,7 @@
 					});
 
 				} else {
-					// debugger
+					// 
 					switch (this.uploadType) {
 						case 0:
 

+ 158 - 96
pages/mine/index.vue

@@ -6,12 +6,13 @@
 				<view style='margin-bottom:14px;' class="row flex flex-end">
 					<u--image class='image' :showLoading="true" src="../../static/mine/saoma.png" width="20px"
 						height="20px"></u--image>
-					<u--image @click="goDetailPage('/pages/mine/set')" style='margin-right:0;' class='image' :showLoading="true" src="../../static/mine/shezhi.png" width="20px"
-						height="20px"></u--image>
+					<u--image @click="goDetailPage('/pages/mine/set')" style='margin-right:0;' class='image'
+						:showLoading="true" src="../../static/mine/shezhi.png" width="20px" height="20px"></u--image>
 				</view>
 				<view class="flex">
-					<u--image :showLoading="true" :src="userInfo.avatarUrl?userInfo.avatarUrl:'../../static/mine/avatar1.png'" width="56px"
-					height="56px"></u--image>
+					<u--image :showLoading="true"
+						:src="userInfo.avatarUrl?userInfo.avatarUrl:'../../static/mine/avatar1.png'" width="56px"
+						height="56px"></u--image>
 					<view class='information' v-if='hasLogin'>
 						<view class='flex items-center'>
 							<view class='username'>{{userName}}</view>
@@ -27,49 +28,77 @@
 						<view style='font-size:14px;'>货主身份认证</view>
 						<view style='color:#DDA558;font-size:12px;'>您还没有完成货主认证哦~</view>
 					</view>
-					<view @click="goDetailPage('/pages/mine/cargoowner/cargoowner')" class='promptlyAuthentication'>立即认证</view>
+					<view @click="goDetailPage('/pages/mine/cargoowner/cargoowner')" class='promptlyAuthentication'>立即认证
+					</view>
 				</view>
 			</view>
 			<view class='flex operate flex-space-around'>
 				<view class='flex items-center' @click="toMyRelease">
-					<u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/wodefabu.png" width="42px"
-						height="42px"></u--image>我发布的
+					<u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/wodefabu.png"
+						width="42px" height="42px"></u--image>我发布的
 				</view>
 				<view class='flex items-center'>
-					<u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/pingjia.png" width="42px"
-						height="42px"></u--image>
+					<u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/pingjia.png"
+						width="42px" height="42px"></u--image>
 					司机评价
 				</view>
 			</view>
 			<view class="content1">
 				<view class="flex flex-space-between content1-item" @click="goDetailPage('/pages/mine/company/index')">
-					<view class='flex items-center'><u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/wodegongsi.png" width="20px"
-						height="20px"></u--image>我的公司</view>
-					<view class='flex'> <u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon></view>
+					<view class='flex items-center'>
+						<u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/wodegongsi.png"
+							width="20px" height="20px"></u--image>我的公司
+					</view>
+					<view class='flex'>
+						<u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon>
+					</view>
 				</view>
-				<view class="flex flex-space-between content1-item" @click="goDetailPage('/pages/mine/cargoowner/cargoowner')">
-					<view class='flex items-center'><u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/huozhu.png" width="20px"
-						height="20px"></u--image>货主认证</view>
-					<view class='flex'> <u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon></view>
+				<view class="flex flex-space-between content1-item"
+					@click="goDetailPage('/pages/mine/cargoowner/cargoowner')">
+					<view class='flex items-center'>
+						<u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/huozhu.png"
+							width="20px" height="20px"></u--image>货主认证
+					</view>
+					<view class='flex'>
+						<u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon>
+					</view>
 				</view>
-				<view class="flex flex-space-between content1-item" @click="goDetailPage('/pages/mine/helpDescription')">
-					<view class='flex items-center'><u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/bangzhushuoming.png" width="20px"
-						height="20px"></u--image>帮助说明</view>
-					<view> <u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon> </view>
+				<view class="flex flex-space-between content1-item"
+					@click="goDetailPage('/pages/mine/helpDescription')">
+					<view class='flex items-center'>
+						<u--image style='margin-right:8px;' :showLoading="true"
+							src="../../static/mine/bangzhushuoming.png" width="20px" height="20px"></u--image>帮助说明
+					</view>
+					<view>
+						<u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon>
+					</view>
 				</view>
-				<view class="flex flex-space-between content1-item" @click="goDetailPage('/pages/mine/agentCargoOwner')">
-					<view class='flex items-center'><u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/dailihuozhu.png" width="20px"
-						height="20px"></u--image>代理货主</view>
-					<view> <u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon> </view>
+				<view class="flex flex-space-between content1-item"
+					@click="goDetailPage('/pages/mine/agentCargoOwner')">
+					<view class='flex items-center'>
+						<u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/dailihuozhu.png"
+							width="20px" height="20px"></u--image>代理货主
+					</view>
+					<view>
+						<u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon>
+					</view>
 				</view>
-<view class="flex flex-space-between content1-item" @click="goDetailPage('/pages/mine/set')">
-					<view class='flex items-center'><u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/dailihuozhu.png" width="20px"
-						height="20px"></u--image>设置</view>
-					<view> <u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon> </view>
+				<view class="flex flex-space-between content1-item" @click="goDetailPage('/pages/mine/set')">
+					<view class='flex items-center'>
+						<u--image style='margin-right:8px;' :showLoading="true" src="../../static/mine/dailihuozhu.png"
+							width="20px" height="20px"></u--image>设置
+					</view>
+					<view>
+						<u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon>
+					</view>
 				</view>
-				
+
 			</view>
 		</view>
+		<u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :closeOnClickOverlay='true'
+			:showCancelButton='true' confirmColor='#2772FB' @confirm="confirmClick" @close="cancelClick"
+			@cancel="cancelClick"></u-modal>
+		<u-toast ref="uToast"></u-toast>
 	</view>
 </template>
 
@@ -80,41 +109,52 @@
 	export default {
 		data() {
 			return {
-				userName:'',
-				phone:'',
-				status:false,
+				isShowAlert:false,
+				alertTitle: '',
+				userName: '',
+				phone: '',
+				status: false,
+				alertContent: '您尚未登录,是否立即登录?',
 			};
 		},
+		onShow() {
+			if (!this.hasLogin) {
+				this.isShowAlert = true
+				return
+			}
+		},
 		onLoad() {
 			uni.showLoading({
 				title: '加载中',
-				mask:true
+				mask: true
 			})
-			this.$request.baseRequest('get', '/cargoOwnerInfo/selectCargoOwner',{commonId:this.userInfo.id} ).then(res => {
-				uni.hideLoading()
-				
-				if(res.data){
-					if(res.data.authenticationStatus=='审核中'||res.data.authenticationStatus=='已驳回'){
-						this.status=false
-					}else{
-						this.status=true
+			this.$request.baseRequest('get', '/cargoOwnerInfo/selectCargoOwner', {
+					commonId: this.userInfo.id
+				}).then(res => {
+					uni.hideLoading()
+
+					if (res.data) {
+						if (res.data.authenticationStatus == '审核中' || res.data.authenticationStatus == '已驳回') {
+							this.status = false
+						} else {
+							this.status = true
+						}
+
+					} else {
+						this.status = false
 					}
-					
-				}else{
-					this.status=false
-				}
-			})
-			.catch(res => {
-				uni.hideLoading()
-				uni.showToast({
-					title: res.message,
-					icon: 'none',
-					duration: 2000
 				})
-			});
-			// debugger
+				.catch(res => {
+					uni.hideLoading()
+					uni.showToast({
+						title: res.message,
+						icon: 'none',
+						duration: 2000
+					})
+				});
+			// 
 			this.userName = this.userInfo.userName
-			this.phone=this.userInfo.phone.replace(this.userInfo.phone.substring(3,7), "****")
+			this.phone = this.userInfo.phone.replace(this.userInfo.phone.substring(3, 7), "****")
 		},
 		computed: {
 			...mapState(['hasLogin', 'userInfo']),
@@ -127,7 +167,14 @@
 			// }
 		},
 		methods: {
-			toMyRelease(){
+			confirmClick() {
+				this.isShowAlert = false
+				uni.$u.route('/pages/public/login');
+			},
+			cancelClick() {
+				this.isShowAlert = false
+			},
+			toMyRelease() {
 				uni.$u.route('/pages/release/record');
 			},
 			goDetailPage(src) {
@@ -150,7 +197,7 @@
 </script>
 
 <style lang="scss" scoped>
-	.container{
+	.container {
 		padding-top: 85px;
 		padding-top: 35px;
 		background-color: #F5F6FA;
@@ -161,20 +208,25 @@
 		background-size: 100% 100%;
 		margin: 0 auto;
 		height: calc(100vh - 0px);
-		.container_content{
-			padding:18px;
+
+		.container_content {
+			padding: 18px;
 		}
 	}
-	.image{
-		margin:0 7px;
+
+	.image {
+		margin: 0 7px;
 	}
-	.username{
-		font-size:21px;
+
+	.username {
+		font-size: 21px;
 	}
-	.information{
-		margin:0 0 10px 17px;
+
+	.information {
+		margin: 0 0 10px 17px;
 	}
-	.currectstatus{
+
+	.currectstatus {
 		display: flex;
 		align-items: center;
 		justify-content: center;
@@ -186,55 +238,65 @@
 		font-size: 24rpx;
 		margin-left: 10rpx;
 	}
-	.currectstatus1{
+
+	.currectstatus1 {
 		display: flex;
 		align-items: center;
 		justify-content: center;
 		width: 100rpx;
 		height: 40rpx;
-		background: linear-gradient(145deg, #C1C3CC 0%, #85909E 100%);;
+		background: linear-gradient(145deg, #C1C3CC 0%, #85909E 100%);
+		;
 		border-radius: 16px;
 		color: #D6B798;
 		font-size: 24rpx;
 		margin-left: 10rpx;
 	}
-	.phone{
-		color:#8F97AB;
-		font-size:13px;
-		margin-top:5px;
+
+	.phone {
+		color: #8F97AB;
+		font-size: 13px;
+		margin-top: 5px;
 	}
-	.operate{
-		font-size:16px;
+
+	.operate {
+		font-size: 16px;
 		font-weight: 600;
-		background:#fff;
-		border-radius:10px;
-		padding:10px 15px;
-		margin:15px 0;
+		background: #fff;
+		border-radius: 10px;
+		padding: 10px 15px;
+		margin: 15px 0;
 	}
-	.content1{
-		background:#fff;
-		padding:10px;
-		border-radius:10px;
-		.content1-item{
-			padding:10px;
+
+	.content1 {
+		background: #fff;
+		padding: 10px;
+		border-radius: 10px;
+
+		.content1-item {
+			padding: 10px;
 		}
 	}
-	.authentication{
-		border:1px solid #F3EACF;
-		margin:10px 0;
-		height:64px;
-		border-radius:10px;
-		padding:15px;
+
+	.authentication {
+		border: 1px solid #F3EACF;
+		margin: 10px 0;
+		height: 64px;
+		border-radius: 10px;
+		padding: 15px;
 		box-sizing: border-box;
 		background: linear-gradient(144deg, #FEFAEE 0%, #FEFDF8 100%);
 	}
-	.promptlyAuthentication{
-		font-size:13px;
-		padding:8px 16px;
-		border-radius:15px;
-		background: linear-gradient(327deg, #EDBB63 0%, #FFDEA5 100%);;
+
+	.promptlyAuthentication {
+		font-size: 13px;
+		padding: 8px 16px;
+		border-radius: 15px;
+		background: linear-gradient(327deg, #EDBB63 0%, #FFDEA5 100%);
+		;
 	}
-	.items-center{
+
+	.items-center {
 		align-items: center;
 	}
 </style>

+ 2 - 2
pages/mine/manageBankCards/addBankCard.vue

@@ -78,7 +78,7 @@
 		methods: {
 			//设置图片
 			setImage(e) {
-				// debugger
+				// 
 				console.log(e);
 				//显示在页面
 				//this.imagesrc = e.path;
@@ -92,7 +92,7 @@
 			},
 			//保存图片到相册,方便核查
 			savePhoto(path) {
-				// debugger
+				// 
 				this.imagesrc = path;
 				uploadImage(path, 'appData/',
 					result => {

+ 8 - 8
pages/mine/set.vue

@@ -21,12 +21,12 @@
 					<image src="../../static/images/myimg/gengduo1@3x.png" class="arrow"></image>
 				</view>
 			</view>
-			<view class='flex flex-space-between  wrap-item' @click='UpdataPassword'>
+			<!-- <view class='flex flex-space-between  wrap-item' @click='UpdataPassword'>
 				<view>
 					<text>修改账号</text>
 				</view>
 				<image src="../../static/images/myimg/gengduo1@3x.png" class="arrow"></image>
-			</view>
+			</view> -->
 			<view class='flex flex-space-between wrap-item' @click='UpdataPassword'>
 				<view>
 					<text>修改密码</text>
@@ -50,11 +50,11 @@
 			</view>
 		</view>
 		<view class='exitloginwrap'>
-			<button @click='logout()' class='exitlogin'>退出登录</button>
+			<button @click='logoutAlert()' class='exitlogin'>退出登录</button>
 		</view>
 		<u-modal :show="isShowAlert" :title-style="{fontSize: '18px',fontWeight:'500'}"
 			:content-style="{fontSize: '14px',fontWeight:'400'}" confirm-color='#22C572' confirm-text='确定' :title='title'
-			:showCancelButton='false' :content="content" @confirm="goOpenService" @cancel="cancelClick"></u-modal>
+			:showCancelButton='false' :content="content" @confirm="logout" @cancel="cancelClick"></u-modal>
 	</view>
 </template>
 
@@ -102,14 +102,14 @@
 				uni.clearStorage({
 					success: function(res) {
 						console.log('success');
-						that.goOpenService()
+						that.logout()
 					}
 				})
 			},
 			cancelClick() {
 				this.isShowAlert = false
 			},
-			goOpenService() {
+			logout() {
 				uni.hideTabBarRedDot({
 					index: 3
 				})
@@ -118,7 +118,7 @@
 				this.$request.baseRequest('post', '/auth/api/logout').then(res => {
 				})
 				this.$store.commit('logout')
-				this.$api.logout()
+				this.$helper.logout()
 				uni.navigateTo({
 					url: `/pages/public/login`
 				})
@@ -149,7 +149,7 @@
 					url: `/pages/user/fankui`
 				})
 			},
-			logout() {
+			logoutAlert() {
 				this.show=true
 				// const that = this
 				this.isShowAlert = true

+ 89 - 52
pages/order/index.vue

@@ -64,9 +64,9 @@
 						<view class="left">
 							<view class="top">
 								<view class="ssx">{{$helper.getProvinceAbbreviation(good.sendPrivate)}}</view>
-								<view class="level2-title">{{good.sendCity}} </view>
+								<view class="level2-title">{{$helper.filterUrban(good.sendCity)}}</view>
 							</view>
-							<view class="bottom">{{good.sendArea}}</view>
+							<view class="bottom">{{$helper.filterArea(good.sendArea)}}</view>
 						</view>
 						<view class="jt-image">
 							<image class="jt-icon" src="@/static/images/order/jt.png" mode='widthFix'>
@@ -78,10 +78,10 @@
 								<view class="ssx">
 									{{$helper.getProvinceAbbreviation(good.unloadPrivate)}}
 								</view>
-								<view class="level2-title">{{good.unloadCity}}</view>
+								<view class="level2-title">{{$helper.filterUrban(good.unloadCity)}}</view>
 							</view>
 							<view class="bottom">
-								{{good.unloadArea}}
+								{{$helper.filterArea(good.unloadArea)}}
 							</view>
 						</view>
 					</view>
@@ -114,7 +114,7 @@
 					</view>
 					<view class="row5 flex flex-end">
 						<image class="jt-icon" src="@/static/images/order/position.png" mode='widthFix'
-							@click.stop="toMap()">
+							@click.stop="toMap(good)">
 						</image>
 						<view class="stop" @click.stop="accept(good,1)" v-if="good.cargoOwnerStatus=='待接单'">接受
 						</view>
@@ -191,6 +191,8 @@
 		mixins: [MescrollMixin], // 使用mixin
 		data() {
 			return {
+				type: null,
+				objData: {},
 				showMenu: false,
 				searchStyle: {
 					background: "#317AFE",
@@ -200,11 +202,6 @@
 					padding: "6rpx 20rpx",
 					"border-radius": '30rpx'
 				},
-				// isShowStopBtn: false,
-				// isConfirmLoadingBtn:false,
-				// isShowCustomerServiceBtn:false,
-				// isConfirmUnLoadingBtn:false,
-				// isClosedBtn:false,
 				searchKeyWord: '',
 				useSearchList: [],
 				mescroll: null,
@@ -323,37 +320,26 @@
 
 		// },
 		methods: {
-			toMap() {
-				uni.$u.route('/pages/order/map', {
-					id: 1,
-				});
+			toMap(val) {
+				uni.$u.route('/pages/order/map', val);
 			},
 			closeMenu() {
 				this.showMenu = false
 			},
 			accept(item, type) {
-				this.$request.baseRequest('post', '/orderInfo/api/orderReceiving', {
-						id: item.id,
-						flag: type
-					}).then(res => {
-						debugger
-						if (res.code == 200) {
-							this.$refs.uToast.show({
-								type: 'success',
-								message: "提交成功",
-								complete() {
-									that.upCallback({
-										size: 10,
-										num: 1
-									})
-								}
-							})
-
-						}
-					})
-					.catch(res => {
-						uni.$u.toast(res.message);
-					});
+				this.objData = item
+				this.type = type
+				if (type == 1) {
+					this.alertTitle = '确定接受订单?'
+					this.confirmText = '确定'
+				} else if (type == 2) {
+					this.alertTitle = '确定拒绝订单?'
+					this.confirmText = '确定'
+				} else {
+					this.alertTitle = '确定终止订单?'
+					this.confirmText = '终止'
+				}
+				this.isShowAlert = true
 			},
 			// 完结
 			closed(item) {
@@ -435,25 +421,72 @@
 			},
 			confirmClick() {
 				console.log('终止')
-
-				this.$request.baseRequest('post', '/orderInfo/api/end', {
-						id: this.id,
-						terminator: 2,
-					}).then(res => {
-						console.log(res)
-						this.isShowAlert = false
-						this.mescroll.resetUpScroll()
-
-					})
-					.catch(res => {
-						uni.$u.toast(res.message);
-					});
+				that.isShowAlert = false
+				if (this.type == 1 || this.type == 2) {
+					let _title = ''
+					this.$request.baseRequest('post', '/orderInfo/api/orderReceiving', {
+							id: this.objData.id,
+							flag: this.type
+						}).then(res => {
+							if (res.code == 200) {
+								if (this.type == 1) {
+									_title = '抢单成功'
+								} else {
+									_title = '拒绝订单成功'
+								}
+								this.$refs.uToast.show({
+									type: 'success',
+									message: _title,
+									complete() {
+										that.mescroll.resetUpScroll()
+									}
+								})
+							} else {
+								if (this.type == 1) {
+									_title = '抢单失败'
+								} else {
+									_title = '拒绝订单失败'
+								}
+								this.$refs.uToast.show({
+									type: 'success',
+									message: _title,
+									complete() {
+										that.mescroll.resetUpScroll()
+									}
+								})
+							}
+						})
+						.catch(res => {
+							uni.$u.toast(res.message);
+						});
+				} else {
+					this.$request.baseRequest('post', '/orderInfo/api/end', {
+							id: this.id,
+							terminator: 2,
+						}).then(res => {
+							if (res.code == 200) {
+								this.$refs.uToast.show({
+									type: 'success',
+									message: '终止订单成功',
+								})
+							} else {
+								this.$refs.uToast.show({
+									type: 'success',
+									message: '终止订单失败',
+								})
+							}
+							that.mescroll.resetUpScroll()
+						})
+						.catch(res => {
+							uni.$u.toast(res.message);
+						});
+				}
 			},
 			cancelClick() {
 				this.isShowAlert = false
 			},
 			getSearch(e) {
-				debugger
+
 				// = uni.getStorageSync('useSearchList')
 
 				// this.useSearchList.unshift(e)
@@ -473,7 +506,7 @@
 				});
 			},
 			upCallback(page) {
-
+				if (this.searchType == 0) this.searchType = ''
 				this.$request.baseRequest('get', '/orderInfo/selectCargoOwnerOrder', {
 						cargoCommonId: this.userInfo.id,
 						searchKeyWord: this.searchKeyWord,
@@ -493,7 +526,7 @@
 			},
 			clickTab(val) {
 				uni.showLoading({
-					mask:true
+					mask: true
 				})
 				console.log(val)
 				this.searchType = val.index
@@ -634,6 +667,7 @@
 					justify-content: flex-start;
 					font-size: 24rpx;
 					color: #878787;
+					margin-top: 10rpx;
 				}
 			}
 
@@ -654,6 +688,7 @@
 					justify-content: flex-end;
 					font-size: 24rpx;
 					color: #878787;
+					margin-top: 10rpx;
 				}
 			}
 		}
@@ -800,6 +835,7 @@
 
 	.tab-content {
 		position: relative;
+	   padding-right: 100rpx;
 	}
 
 	.right-btn {
@@ -822,6 +858,7 @@
 	.tabs {
 		// background: red;
 		margin-top: 20rpx;
+		overflow-x:scroll ;
 	}
 
 	/deep/.u-transition {

+ 5 - 1
pages/order/map.vue

@@ -18,6 +18,10 @@
 		created() {
 			this.getLngLat();
 		},
+		onLoad(options) {
+			console.log(options)
+			this.obj = options
+		},
 		methods: {
 			back(){
 				uni.navigateBack({
@@ -25,7 +29,7 @@
 				})
 			},
 			srcHandler() {
-				return `/hybrid/html/map.html?lat=${this.lat}`
+				return `/hybrid/html/map.html?obj=${encodeURI(encodeURI(JSON.stringify(this.obj)))}`
 			},
 			getLngLat() {
 				uni.getLocation({

+ 1 - 1
pages/order/orderDetails.vue

@@ -400,7 +400,7 @@
 							this.status3 = true
 						}
 						if (res.data.carrierInfo) {
-							debugger
+							
 							let _zcList = res.data.carrierInfo.loadingImg.split(',')
 							let _xcList = res.data.carrierInfo.unloadingImg.split(',')
 							for (let i = 0; i < _zcList.length; i++) {

+ 357 - 0
pages/public/code.vue

@@ -0,0 +1,357 @@
+<template>
+	<view class="top">
+		<view class="back-btn cuIcon-back" @click="navBack"></view>
+		<!-- 文字 -->
+		<view class="top_one">请输入验证码</view>
+		<view class="top_two">验证码已发送到<text class="text">{{phone}}</text></view>
+		<!-- 六个显示框 -->
+		<view class="top_three">
+			<view :class="[ !inputList[0]||inputList.length>0 ? 'inb' : '' ]" class="input">
+				<text>{{inputList[0]}}</text>
+				<view v-if="!inputList[0]" class="fours"></view>
+			</view>
+			<view :class="[ inputList[0] && !inputList[1]||inputList.length>1 ? 'inb' : '' ]" class="input">
+				<text>{{inputList[1]}}</text>
+				<view v-if="inputList[0] && !inputList[1]" class="fours"></view>
+			</view>
+			<view :class="[ inputList[1] && !inputList[2]||inputList.length>2 ? 'inb' : '' ]" class="input">
+				<text>{{inputList[2]}}</text>
+				<view v-if="inputList[1] && !inputList[2]" class="fours"></view>
+			</view>
+			<view :class="[ inputList[2] && !inputList[3]||inputList.length>3 ? 'inb' : '' ]" class="input">
+				<text>{{inputList[3]}}</text>
+				<view v-if="inputList[2] && !inputList[3]" class="fours"></view>
+			</view>
+			<view :class="[ inputList[3] && !inputList[4]||inputList.length>4 ? 'inb' : '' ]" class="input">
+				<text>{{inputList[4]}}</text>
+				<view v-if="inputList[3] && !inputList[4]" class="fours"></view>
+			</view>
+			<view :class="[ inputList[4] && !inputList[5]||inputList.length>5 ? 'inb' : '' ]" class="input">
+				<text>{{inputList[5]}}</text>
+				<view v-if="inputList[4] && !inputList[5]" class="fours"></view>
+			</view>
+		</view>
+		<!-- 隐藏的input -->
+		<view class="top_four">
+			<input type="number" class="input_show" maxlength="6" @input='submit' v-model="inputList" focus="true" />
+		</view>
+		<!-- 重新获取 -->
+		<view class="top_five" @click='regain' :class="!status ? 'active' : '' "><text v-if="!status">重新发送</text><text
+				v-if="status">{{count_down}}秒后重新发送</text></view>
+	</view>
+</template>
+
+<script>
+	import helper from '@/common/helper.js';
+	export default {
+		data() {
+			return {
+				// 电话
+				phone: '',
+				// 跟隐藏input绑定的数组
+				inputList: [],
+				//计时器
+				count_down: 60,
+				status: false
+			}
+		},
+		onLoad(options) {
+			console.log("options", options.phone)
+			this.phone = options.phone
+			console.log("phone:", this.phone);
+			if (this.phone) {
+				this.regain()
+			} else {
+				uni.showToast({
+					title: '请输入正确的手机号',
+					icon: 'none',
+					duration: 2000
+				})
+			}
+		},
+		methods: {
+			navBack() {
+				uni.navigateBack();
+			},
+			regain() {
+				console.log("regain", this.phone);
+				this.status = true
+				// console.log(e)150500
+				// 设定一个定时器 1000是1秒的意思
+				var interval = setInterval(() => {
+					--this.count_down
+				}, 1000)
+				if (this.count_down == 0) {
+					this.status = false
+				}
+				// 设定一个定时器 60000就是六十秒
+				setTimeout(() => {
+					this.status = false
+					clearInterval(interval) //括号里面的名字要与setInterval定义的相同
+				}, 60000)
+				this.$request.baseRequest('get', '/commonUser/sendVerifyCode', {
+						phone: this.phone
+					}).then(res => {
+						// 获得数据
+						if (res.code != 200) {
+							uni.showToast({
+								title: res.message,
+								icon: 'none',
+								duration: 2000
+							})
+						}
+						console.log(res);
+					})
+					.catch(res => {
+						uni.showToast({
+							title: res.errMsg,
+							icon: 'none',
+							duration: 2000
+						})
+					});
+			},
+			submit(e) {
+				if (e.detail.value.length == 6) {
+					var that = this
+					uni.showLoading({
+						title: '登录中',
+						mask: true
+					})
+					that.$request.baseRequest('get', '/commonUser/loginVerifyCode', {
+							phone: this.phone,
+							verifyCode: this.inputList,
+							loginFlag: 1
+						}).then(res => {
+							if (res.code == 200) {
+								that.$request.baseRequest('post', '/commonUser/api/loginQuickly', {
+									mobilePhone: this.phone,
+									veriCode: "123456",
+									loginFlag: 1
+								}).then(res1 => {
+									that.$request.baseRequest('get', '/newsInfo/unreadMessage', {
+										reCommonId: this.userInfo.id,
+									}).then(res3 => {
+										if (res3.data) {
+											let name = 'myTip';
+											let value = res3.data
+											if (value == 0) {
+												uni.removeTabBarBadge({
+													index: 2
+												})
+											}
+											that.$store.commit('$uStore', {
+												name,
+												value
+											});
+											if (value != 0 && value) {
+												uni.setTabBarBadge({
+													index: 2,
+													text: value + ""
+												})
+											}
+										}
+									})
+									if (res1.code == 200) {
+										uni.setStorageSync('pcuserInfo', res1.data)
+										helper.getListByUserId()
+									} else {
+										that.$api.doRequest('post', '/commonUser/api/loginQuickly', {
+											mobilePhone: '14444444444',
+											veriCode: "123456",
+											loginFlag: 1
+										}).then(res2 => {
+											that.$request.baseRequest('get',
+											'/newsInfo/unreadMessage', {
+												reCommonId: this.userInfo.id,
+											}).then(res3 => {
+												if (res3.data) {
+													let name = 'myTip';
+													let value = res3.data
+													if (value == 0) {
+														uni.removeTabBarBadge({
+															index: 2
+														})
+													}
+													that.$store.commit('$uStore', {
+														name,
+														value
+													});
+													if (value != 0 && value) {
+														uni.setTabBarBadge({
+															index: 2,
+															text: value + ""
+														})
+													}
+												}
+											})
+											uni.setStorageSync('pcuserInfo', res2.data)
+											helper.getListByUserId()
+										})
+									}
+								})
+								uni.setStorageSync('userInfo', res.data)
+								helper.getListByUserId()
+								that.$store.commit('login', res.data)
+								// that.liangxinLogin()
+								uni.switchTab({
+									url: '/pages/goodSource/index'
+								});
+								uni.hideLoading()
+							} else {
+								uni.hideLoading()
+								uni.showToast({
+									title: res.message,
+									icon: 'none',
+									duration: 2000
+								})
+							}
+						})
+						.catch(res => {
+							uni.showToast({
+								title: res.message,
+								icon: 'none',
+								duration: 2000
+							})
+						});
+				}
+			}
+
+		}
+	}
+</script>1
+
+<style>
+	.top {
+		padding-top: 85px;
+		position: relative;
+		width: 100vw;
+		height: calc(100vh - 85px);
+		overflow: hidden;
+		background: url('~@/static/images/mine/bg@2x.png');
+		background-size: 100%;
+	}
+
+	.back-btn {
+		position: absolute;
+		left: 40upx;
+		z-index: 9999;
+		padding-top: var(--status-bar-height);
+		top: 40upx;
+		font-size: 40upx;
+		color: $font-color-dark;
+	}
+
+	/* 文字 */
+	.top_one {
+		/* margin-top: 85px; */
+		width: 90%;
+		height: 90rpx;
+		line-height: 90rpx;
+		font-size: 44rpx;
+		margin: auto;
+		font-weight: bold;
+	}
+
+	.top_two {
+		width: 90%;
+		height: 40rpx;
+		line-height: 40rpx;
+		font-size: 24rpx;
+		margin: auto;
+		color: #545454;
+	}
+
+	.text {
+		font-weight: bold;
+	}
+
+	/* 六个显示框容器 */
+	.top_three {
+		width: 80%;
+		height: 200rpx;
+		margin: auto;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+
+	/* 六个框显示框 */
+	.input {
+		width: 14%;
+		height: 80rpx;
+		background-color: #F5F5F5;
+		margin-right: 12rpx;
+		text-align: center;
+		line-height: 80rpx;
+		font-size: 50rpx;
+		border-radius: 3px;
+		color: #181818;
+	}
+
+	/* 模拟的焦点 */
+	.inb {
+		background: #FFFFFF;
+		box-shadow: 0px 9px 10px 4px rgba(0, 0, 0, 0.07);
+	}
+
+	.fours {
+		width: 5rpx;
+		height: 40rpx;
+		margin: auto;
+		background-color: #000000;
+		margin-top: 20rpx;
+		animation: show .8s linear infinite;
+	}
+
+	/* 模拟焦点动画  更改animation以更改动画样式*/
+	@keyframes show {
+		from {
+			background-color: #000000;
+		}
+
+		to {
+			background-color: #ffffff;
+		}
+	}
+
+	/* 隐藏的inpit容器 */
+	.top_four {
+		width: 80%;
+		height: 100rpx;
+		margin: auto;
+		margin-top: -140rpx;
+	}
+
+	.input_show {
+		width: 100%;
+		height: 100rpx;
+		border-bottom: 2rpx solid #000000;
+		margin: auto;
+		opacity: 0;
+		background-color: #c6c6c6;
+	}
+
+	/* 重新获取 */
+	.top_five {
+		width: 100%;
+		height: 60rpx;
+		margin-top: 180rpx;
+		text-align: center;
+		line-height: 60rpx;
+		color: #959595;
+	}
+
+	/* 定时器结束的字体样式 */
+	.active {
+		color: #22C572;
+	}
+
+	.button {
+		width: 80%;
+		height: 100rpx;
+		line-height: 100rpx;
+		background-color: #5473E8;
+		border-radius: 60rpx;
+
+	}
+</style>

+ 370 - 175
pages/public/login.vue

@@ -1,208 +1,376 @@
 <template>
-	<view class="u-page content">
+	<view class="container">
 		<u-icon class="back-btn" name="arrow-left" color="black" size="20" @click="navBack"></u-icon>
 		<view class="wrapper">
-			<image style='width:38px;height:38px;margin-bottom:10px;' src='@/static/logo.png'></image>
-			<h2 class="title">欢迎使用网络货运</h2>
-			<u--form labelPosition="left" :model="dataDetails" ref="loginForm" labelWidth="80">
-				<u-form-item label="电话" prop="phone" borderBottom>
-					<u--input v-model="dataDetails.phone" border="none" placeholder="请输入手机号码"></u--input>
-				</u-form-item>
-
-				<u-form-item label="验证码" prop="code" labelWidth="80" borderBottom>
-					<u--input v-model="dataDetails.code" border="none" placeholder="请填写验证码"></u--input>
-					<u-button slot="right" @tap="getCode" :text="tips" class="code-style" size="mini"
-						:disabled="disabled1">
-					</u-button>
-				</u-form-item>
-				<u-code ref="uCode" @change="codeChange" seconds="20" @start="disabled1 = true"
-					@end="disabled1 = false">
-				</u-code>
-			</u--form>
-			<u-button  @tap="login"class="code-style submit">登录</u-button>
-			<view @click='gonumber' class="use-password" style='text-align:center;color:#6A6A6A;'>使用账号密码登录</view>
-			<!-- <u-button type="primary" text="登录" customStyle="margin-top: 50px" @click="login()"></u-button>
-			<u-button type="primary" @click='goregister'>手机号一键注册</u-button> -->
-			<!-- <u-loading-page :loading="isLoading" bg-color="#e8e8e8"></u-loading-page> -->
+			<image style='width:38px;height:38px;margin:223rpx 0 20px 0;' src='@/static/logo.png'></image>
+			<h2 class="title Semibold">欢迎使用智运货主端</h2>
+			<view
+				style='position:relative;width:100%;margin-top:50px;border-bottom:1px solid #E8E9ED;padding:10px;align-items: center;'
+				class="flex">
+				<view class="phone-before-num NumberMedium">+86</view>
+				<view style='width:85%;'>
+					<!-- <u--input class="phone-number" border="none" maxlength='11' v-model='phone'
+						placeholder="请输入手机号码" type="number"></u--input>
+					<u-input /> -->
+					<u--input v-model="phone" border="none" type='number' placeholder="请输入手机号码" class="phone-number"
+						maxlength='11' :clearable='true'></u--input>
+				</view>
+			</view>
+			<view style='margin-top:20px;border-bottom:1px solid #E8E9ED;position:relative;height:40px'>
+				<!-- <u--input class='password' border="none" v-model='password'
+					placeholder="请输入密码,6-16位字符" :type="type" value="">
+					</u--input> -->
+				<u-input class='password' border="none" v-model='password' placeholder="请输入密码,6-16位字符"
+					:type="isShowPassword" :clearable='true'>
+					<template slot="suffix">
+						<u-icon name="eye-fill" color="rgb(192, 196, 204)" size="24" @click="passWordStatus(1)"
+							v-if="isShowPassword=='password'"></u-icon>
+						<u-icon name="eye-off" color="rgb(192, 196, 204)" size="24" @click="passWordStatus(2)" v-else>
+						</u-icon>
+					</template>
+				</u-input>
+			</view>
+			<button :class='phone!=""&&password!=""?"active":""' @click='passlogin'
+				class='Regular verificationCode'>登录</button>
+			<button @click='goregister' class='verificationCode active Regular'>手机号一键注册</button>
+			<view class='flex' style='color:#6A6A6A;margin-top:10px;'>
+				<view style='flex:1;text-align:center;border-right:1px solid #E8E9ED;' class="Regular"
+					@click="forgetpass()">忘记密码</view>
+				<view @click='gocode' style='flex:1;text-align:center;' class="Regular">验证码登录</view>
+			</view>
 		</view>
-		<u-toast ref="uToast"></u-toast>
+	</view>
 	</view>
 </template>
 
 <script>
-	var _this
+	import {
+		mapMutations
+	} from 'vuex';
+	import {
+		openFSqlite,
+		createFSQL,
+		selectFSQL,
+		addFSQL
+	} from '../../util/f.js'
 	import helper from '@/common/helper.js';
+	import {
+		queryData,
+		upData,
+		initData
+	} from '../../util/dbUtil.js'
+	import {
+		mapState
+	} from 'vuex';
 	export default {
 		data() {
 			return {
-				isLoading: false,
-				disabled1: false,
-				tips: '',
-				showCalendar: false,
-				showBirthday: false,
-				dataDetails: {
-					phone: '',
-					code: ''
+				isShowPassword: 'password',
+				inputContent: null,
+				loginType: "wechat",
+				phone: '',
+				password: '',
+				logining: false,
+				isPhone: false,
+				isApple: true,
+				accessToken: '',
+				params: {
+					encryptedData: '',
+					session_key: '',
+					iv: '',
 				},
-				rules: {
-					phone: [
-						{
-							required: true,
-							message: '请输入手机号',
-							trigger: ['change', 'blur'],
-						},
-						{
-							// 自定义验证函数,见上说明
-							validator: (rule, value, callback) => {
-								// 上面有说,返回true表示校验通过,返回false表示不通过
-								// uni.$u.test.mobile()就是返回true或者false的
-								return uni.$u.test.mobile(value);
-							},
-							message: '手机号码不正确',
-							// 触发器可以同时用blur和change
-							trigger: [ 'blur'],
-						}
-					],
-					code: {
-						type: 'string',
-						required: true,
-						len: 6,
-						message: '请填写6位验证码',
-						trigger: ['blur'],
-					},
-				}
+				userInfo: {
+					nickName: '',
+					avatarUrl: '',
+					gender: '',
+					phone: ''
+				},
+				type: 'password',
+				inputStatus: 'none',
+				verifyCode: null,
+				sendText: '获取验证码',
+				sendDisabled: false,
+				system: '',
+				platform: '',
+				userData: undefined,
+				canIUseProfile: false
 			}
 		},
-		onReady() {
-			// 如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则
-			this.$refs.loginForm.setRules(this.rules)
+		computed: {
+			...mapState(['clientId'])
 		},
-		onLoad() {
-			 _this = this
+		onShow() {
+			// this.loginType = "wechat"
+			this.$api.logout()
+		},
+		onLoad(options) {
+
+			if (wx.getUserProfile) {
+				console.log('--check getUserProfile--OK');
+				this.canIUseProfile = true;
+			}
+			console.log("login on load")
+			// var that = this
+			// that.$request.baseRequest('user', 'sendIsApple', {
+			// }).then(res => {
+			// 	that.isApple = res.data
+			// })
+			//  uni.getSystemInfo({
+			// 	success:(res) => {
+			// 		// console.log(res)
+			// 		this.system = res.system  // ios
+			// 		this.platform = res.platform  // 14.3
+			// 	}
+			// })
 		},
 		methods: {
-			gonumber(){
-				uni.navigateTo({
-					url:'/pages/public/loginOther'
-				})
-			},
-			navBack() {
-				uni.navigateBack();
-			},
-			codeChange(text) {
-				this.tips = text;
-			},
-			getCode() {
-				if (this.dataDetails.phone.length != 11) {
-					this.$refs.uToast.show({
-						type: 'error',
-						message: "手机号输入错误",
-					})
+			passWordStatus(type) {
+				if (type == 1) {
+					this.isShowPassword = 'text'
 				} else {
-					if (this.$refs.uCode.canGetCode) {
-						// 模拟向后端请求验证码
-						uni.showLoading({
-							title: '正在获取验证码'
-						})
-						_this.$request.baseRequest('get', '/commonUser/sendVerifyCode', {
-								phone: this.dataDetails.phone
-							}).then(res => {
-								uni.hideLoading();
-								// 这里此提示会被this.start()方法中的提示覆盖
-								uni.$u.toast('验证码已发送');
-								// 通知验证码组件内部开始倒计时
-								this.$refs.uCode.start();
-
-							})
-							.catch(res => {
-								uni.$u.toast(res.message);
-							});
-					} else {
-						uni.$u.toast('倒计时结束后再发送');
-					}
+					this.isShowPassword = 'password'
 				}
-
 			},
-
-			login() {
-				// 如果有错误,会在catch中返回报错信息数组,校验通过则在then中返回true
-				this.$refs.loginForm.validate().then(res => {
-					uni.$u.toast('校验通过')
-					this.isLoading = true
-					_this.$request.baseRequest('get', '/commonUser/loginVerifyCode', {
-							phone: _this.dataDetails.phone,
-							verifyCode: _this.dataDetails.code,
-							 loginFlag:1
-						}).then(res => {
-									uni.setStorageSync('pcUserInfo', res.data)
-									uni.setStorageSync('userInfo', res.data)
-									helper.getListByUserId()
-									_this.$store.commit('login', res.data)
-									// that.liangxinLogin()
-									uni.switchTab({
-										url: '/pages/order/index'
+			passlogin(e) {debugger
+				var that = this
+				uni.showLoading({
+					title: '登录中',
+					mask: true
+				})
+				console.log("clinetId", this.clientId)
+				that.$request.baseRequest('get', '/commonUser/login', {
+						phone: this.phone,
+						password: this.password,
+						loginFlag: 1
+					}).then(res => {
+						if (res.code == 200) {
+							console.log("userInfo", res.data)
+							uni.setStorageSync('userInfo', res.data)
+							that.$request.baseRequest('get', '/newsInfo/unreadMessage', {
+								reCommonId: this.userInfo.id,
+							}).then(res3 => {
+								if (res3.data) {
+									let name = 'myTip';
+									let value = res3.data
+									if (value == 0) {
+										uni.removeTabBarBadge({
+											index: 2
+										})
+									}
+									that.$store.commit('$uStore', {
+										name,
+										value
 									});
-									_this.isLoading = false
-
-
-							// that.$request.TokenRequest('post', '/commonUser/api/loginQuickly', {
-							// 	mobilePhone: that.model1.phone,
-							// 	veriCode: that.model1.code
+									if (value != 0 && value) {
+										uni.setTabBarBadge({
+											index: 2,
+											text: value + ""
+										})
+									}
+								}
+							})
+							// that.$request.baseRequest('get', '/driverInfo/firstAuthentication', {
+							// 	driverPhone: this.phone,
+							// }).then(res2 => {
+								
+							// 	// 
+							// 	// 
+							// })
+							
+							// that.$request.baseRequest('post', '/commonUser/api/loginQuickly', {
+							// 	mobilePhone: this.phone,
+							// 	veriCode: "123456",
+							// 	loginFlag: 1
 							// }).then(res1 => {
-							// 	uni.setStorageSync('pcUserInfo', res1.data)
-							// 	uni.setStorageSync('userInfo', res.data)
-							// 	helper.getListByUserId()
-							// 	that.$store.commit('login', res.data)
-							// 	// that.liangxinLogin()
-							// 	uni.switchTab({
-							// 		url: '/pages/index/index'
-							// 	});
-							// 	this.isLoading = false
+							// 	console.log("loginQuickly", res)
+							// 	if (res1.code == 200) {
+							// 		uni.setStorageSync('pcuserInfo', res1.data)
+							// 		that.$request.baseRequest('get', '/newsInfo/unreadMessage', {
+							// 			reCommonId: this.userInfo.id,
+							// 		}).then(res3 => {
+							// 			if (res3.data) {
+							// 				let name = 'myTip';
+							// 				let value = res3.data
+							// 				if (value == 0) {
+							// 					uni.removeTabBarBadge({
+							// 						index: 2
+							// 					})
+							// 				}
+							// 				that.$store.commit('$uStore', {
+							// 					name,
+							// 					value
+							// 				});
+							// 				if (value != 0 && value) {
+							// 					uni.setTabBarBadge({
+							// 						index: 2,
+							// 						text: value + ""
+							// 					})
+							// 				}
+							// 			}
+							// 		})
+							// 		uni.setStorageSync('pcuserInfo', res.data)
+							// 		uni.setStorageSync('userInfo', res.data)
+							// 		helper.getListByUserId()
+							// 		that.$store.commit('login', res.data)
+							// 		uni.hideLoading()
+							// 		uni.switchTab({
+							// 			url: '/pages/goodSource/index'
+							// 		});
+							// 	} else {
+							// 		that.$request.baseRequest('post', '/commonUser/api/loginQuickly', {
+							// 			mobilePhone: '14444444444',
+							// 			veriCode: "123456",
+							// 			loginFlag: 1
+							// 		}).then(res2 => {
+							// 			that.$request.baseRequest('get', '/newsInfo/unreadMessage', {
+							// 				reCommonId: this.userInfo.id,
+							// 			}).then(res3 => {
+							// 				if (res3.data) {
+							// 					let name = 'myTip';
+							// 					let value = res3.data
+							// 					if (value == 0) {
+							// 						uni.removeTabBarBadge({
+							// 							index: 2
+							// 						})
+							// 					}
+							// 					that.$store.commit('$uStore', {
+							// 						name,
+							// 						value
+							// 					});
+							// 					if (value != 0 && value) {
+							// 						uni.setTabBarBadge({
+							// 							index: 2,
+							// 							text: value + ""
+							// 						})
+							// 					}
+							// 				}
+							// 			})
+							// 			uni.setStorageSync('pcuserInfo', res2.data)
+							// 			helper.getListByUserId()
+							// 		})
+							// 	}
+
 							// })
+							that.$store.commit('login', res.data)
+							var name = 'userInfo';
+							var value = res.data;
+							that.$store.commit('$uStore', {
+								name,
+								value
+							});
+							// that.liangxinLogin()
 
-						})
-						.catch(res => {
+							uni.switchTab({
+								url: '/pages/goodSource/index'
+							});
+							uni.hideLoading()
+						} else {
+							uni.hideLoading()
 							uni.showToast({
 								title: res.message,
 								icon: 'none',
 								duration: 2000
 							})
-						});
-				}).catch(errors => {
-					this.$refs.uToast.show({
-						type: 'error',
-						message: "校验失败",
+						}
 					})
-				})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
 			},
-			reset() {
-				const validateList = ['userInfo.name', 'userInfo.sex', 'radiovalue1', 'checkboxValue1', 'intro',
-					'hotel', 'code', 'userInfo.birthday'
-				]
-				this.$refs.form1.resetFields()
-				this.$refs.form1.clearValidate()
-				setTimeout(() => {
-					this.$refs.form1.clearValidate(validateList)
-					// 或者使用 this.$refs.form1.clearValidate()
-				}, 10)
+			gocode() {
+				uni.navigateTo({
+					url: '/pages/public/loginOther'
+				})
 			},
-			hideKeyboard() {
-				uni.hideKeyboard()
+			forgetpass() {
+				uni.navigateTo({
+					url: '/pages/mine/settings/editPassword'
+				})
 			},
 			goregister() {
-				uni.$u.route('/pages/public/register');
+				uni.navigateTo({
+					url: '/pages/public/register'
+				})
+			},
+
+			...mapMutations(['login']),
+			navBack() {
+				uni.navigateBack();
 			},
 		},
+
 	}
 </script>
 
-<style lang="scss">
-	.content {
-		background: url(~@/static/mine/bg@3x.png);
-		background-size: 100% 100%;
+<style lang='scss' scoped>
+	.apple {
+		background: #000;
+		width: 35px;
+		height: 35px;
+		padding: 8px;
+		border-radius: 50%;
+		vertical-align: middle;
+	}
+
+	page {
+		background: #fff;
+	}
+
+	.close {
+		width: 20px;
+		height: 20px;
+		position: absolute;
+		right: 0px;
+	}
+
+	.close1 {
+		width: 20px;
+		height: 20px;
+		position: absolute;
+		right: 10px;
+		top: 0;
+	}
+
+	.close2 {
+		width: 15px;
+		height: 15px;
+		position: absolute;
+		right: 19px;
+		top: 50%;
+		transform: translateY(-45%);
+	}
+
+	.password {
+		border: none;
+		outline: none;
+	}
+
+	.cuIcon-weixin {
+		background: #2772FB;
+		color: #fff;
+		font-size: 18px;
+		padding: 9px;
+		border-radius: 50%;
+		vertical-align: middle;
+		margin-right: 5px;
+	}
+
+	.container {
+		/* padding-top: 85px; */
+		position: relative;
+		width: 100vw;
 		height: 100vh;
-		padding-top: 85px;
+		overflow: hidden;
+		background: url('~@/static/images/mine/bg@2x.png');
+		background-size: cover;
+	}
+
+	.wrapper {
 		position: relative;
+		z-index: 90;
+		padding-bottom: 40upx;
+		height: 100%;
+		padding: 0 30px;
 	}
 
 	.back-btn {
@@ -215,22 +383,49 @@
 		color: red;
 	}
 
-	.wrapper {
-		position: relative;
-		z-index: 90;
-		padding-bottom: 40upx;
-		height: 100%;
-		padding: 0 30px;
+	.verificationCode {
+		margin-top: 20px;
+		background: #F5F6F9;
+		color: #AFB3BF;
 	}
 
-	.code-style {
+	.verificationCode:after {
+		border: none;
+	}
+
+	.verificationCode.active {
 		background: #2772FB;
-		color: white;
+		color: #fff;
+	}
+
+	.register {
+		/* position:absolute; */
+		bottom: 20px;
+		left: 50%;
+		transform: translateX(-50%);
+		color: #333333;
+		height: 50px;
+		line-height: 50px;
+		border-radius: 30px;
+		border: 1px solid #444444;
 	}
-	.use-password{
-		margin-top: 31rpx;
+
+	.register:after {
+		border: none;
 	}
-	.submit{
-		margin-top: 40rpx;
+
+	.phone-before-num {
+		font-size: 34rpx;
+		color: #333333;
+		border-right: 1px solid #E8E9ED;
+		padding-right: 20rpx;
+	}
+
+	.phone-number {
+		margin-left: 20rpx;
+		font-size: 34rpx;
+		font-family: DINPro-Medium, DINPro;
+		font-weight: 500;
+		color: #333333;
 	}
 </style>

+ 191 - 138
pages/public/loginOther.vue

@@ -1,169 +1,196 @@
 <template>
-	<view class="u-page content">
+	<view class="container">
 		<u-icon class="back-btn" name="arrow-left" color="black" size="20" @click="navBack"></u-icon>
+		<!-- 设置白色背景防止软键盘把下部绝对定位元素顶上来盖住输入框等 -->
 		<view class="wrapper">
-			<image style='width:38px;height:38px;margin-bottom:10px;' src='@/static/logo.png'></image>
-			<h2 class="title">欢迎使用网络货运</h2>
-			<u--form labelPosition="left" :model="dataDetails" ref="loginForm" labelWidth="80">
-				<u-form-item label="电话" prop="phone" borderBottom>
-					<u--input v-model="dataDetails.phone" @input='passwordInput' border="none" placeholder="请输入手机号码">
-					</u--input>
-				</u-form-item>
-				<u-form-item label="密码" prop="password" borderBottom>
-					<u--input v-model="dataDetails.password" @input='passwordInput' border="none"
-						placeholder="请输入密码,6-16位字符"></u--input>
-				</u-form-item>
-			</u--form>
-			<u-button @tap="login" class="code-style submit" :disabled="isdisabled">登录</u-button>
-			<u-button @click='goregister' class="code-style submit">手机号一键注册</u-button>
-			<view class='flex' style='color:#6A6A6A;margin-top:10px;'>
-				<view style='flex:1;text-align:center;border-right:1px solid #E8E9ED;' class="Regular"
-					@click="forgetpass()">忘记密码</view>
-				<view @click='gocode' style='flex:1;text-align:center;' class="Regular">验证码登录</view>
+			<image style='width:38px;height:38px;margin:223rpx 0 20px 0;' src='@/static/logo.png'></image>
+			<h2 class="title Semibold">欢迎使用智运货主端</h2>
+			<view style='width:100%;margin-top:50px;border-bottom:1px solid #E8E9ED;padding:10px;' class="flex">
+				<view class="phone-before-num NumberMedium">+86</view>
+
+				<view style='width:85%;'>
+					<!-- <u--input style='padding-left:10px;' class="NumberMedium" v-model='phone' @input='changephone' placeholder="请输入手机号码" type="number" maxlength="11" :clearable='true'></u--input> -->
+					<input style='padding-left:10px;' class="NumberMedium" v-model='phone' @input='changephone'
+						placeholder="请输入手机号码" type="number" maxlength="11">
+				</view>
+				<!-- <image v-if='phone!=""' @click='phone=""' class='close' src='../../static/img/login/guanbi@2x.png'></image> -->
+			</view>
+			<button @click='gocode' :class='codestatus?"active":""' class='verificationCode'>获取验证码</button>
+			<view @click='gonumber' class="Regular use-password" style='text-align:center;color:#6A6A6A;'>使用账号密码登录
 			</view>
+
+			<button v-if='tabbar' @click='goregister' class='Regular register active'>手机号一键注册</button>
+		</view>
+		<view v-if="loginType === 'phone'" class="register-section">
+			还没有账号?
+			<text @click="toRegist">马上注册</text>
 		</view>
-		<u-toast ref="uToast"></u-toast>
 	</view>
 </template>
 
 <script>
-	var _this
-	import helper from '@/common/helper.js';
+	import {
+		mapMutations
+	} from 'vuex';
+	import {
+		openFSqlite,
+		createFSQL,
+		selectFSQL,
+		addFSQL
+	} from '../../util/f.js'
+	import {
+		queryData,
+		upData,
+		initData
+	} from '../../util/dbUtil.js'
+	import {
+		mapState
+	} from 'vuex';
 	export default {
 		data() {
 			return {
-				isdisabled: true,
-				dataDetails: {
-					phone: '',
-					password: ''
+				inputContent: null,
+				loginType: "wechat",
+				phone: '',
+				password: '',
+				logining: false,
+				isPhone: false,
+				isApple: true,
+				accessToken: '',
+				phone: '',
+				params: {
+					encryptedData: '',
+					session_key: '',
+					iv: '',
 				},
-				rules: {
-					phone: [{
-							required: true,
-							message: '请输入手机号',
-							trigger: ['blur'],
-						},
-						{
-							// 自定义验证函数,见上说明
-							validator: (rule, value, callback) => {
-								// 上面有说,返回true表示校验通过,返回false表示不通过
-								// uni.$u.test.mobile()就是返回true或者false的
-								return uni.$u.test.mobile(value);
-							},
-							message: '手机号码不正确',
-							// 触发器可以同时用blur和change
-							trigger: ['blur'],
-						}
-					],
-					password: {
-						type: 'string',
-						required: true,
-						min: 6,
-						max: 16,
-						message: '长度在6-16位字符之间',
-						trigger: ['blur'],
-					},
-				}
+				userInfo: {
+					nickName: '',
+					avatarUrl: '',
+					gender: '',
+					phone: ''
+				},
+				inputStatus: 'none',
+				verifyCode: null,
+				sendText: '获取验证码',
+				sendDisabled: false,
+				system: '',
+				platform: '',
+				userData: undefined,
+				tabbar: true,
+				windowHeight: '',
+				canIUseProfile: false,
+				codestatus: false
 			}
 		},
-		onReady() {
-			// 如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则
-			this.$refs.loginForm.setRules(this.rules)
+		computed: {
+			...mapState(['clientId'])
+		},
+		onShow() {
+			// this.loginType = "wechat"
+			this.$api.logout()
 		},
-		onLoad() {
-			_this = this
+		onLoad(options) {
 		},
 		methods: {
-			passwordInput() {
-				if (this.dataDetails.password && this.dataDetails.phone) {
-					this.isdisabled = false
+			changephone(e) {
+				if (e.detail.value.length > 11) {
+					this.codestatus = true
+				} else if (e.detail.value.length < 11) {
+					this.codestatus = false
 				} else {
-					this.isdisabled = true
+					this.codestatus = true
 				}
 			},
-			forgetpass() {
+			gonumber() {
 				uni.navigateTo({
-					url: '/pages/mine/settings/editPassword'
+					url: '/pages/public/login'
 				})
 			},
-			goregister() {
+			forgetpass() {
 				uni.navigateTo({
-					url: '/pages/public/register'
+					url: '/pages/public/reset'
 				})
 			},
 			gocode() {
+				if (this.phone.length == 11 && /^0?1[3|4|5|6|7|8][0-9]\d{8}$/.test(this.phone)) {
+					uni.navigateTo({
+						url: '/pages/public/code?phone=' + this.phone
+					})
+				} else if (this.phone.length == 0) {
+					uni.showToast({
+					 title: '手机号不能为空',
+						icon: 'none'
+					})
+				} else {
+					uni.showToast({
+						title: '请输入正确的手机号',
+						icon: 'none'
+					})
+				}
+
+			},
+			goregister() {
 				uni.navigateTo({
-					url: '/pages/public/login'
+					url: '/pages/public/register'
 				})
 			},
+			...mapMutations(['login']),
 			navBack() {
 				uni.navigateBack();
 			},
-			codeChange(text) {
-				this.tips = text;
-			},
-
-			login() {
-				// 如果有错误,会在catch中返回报错信息数组,校验通过则在then中返回true
-				this.$refs.loginForm.validate().then(res => {
-					uni.showLoading({
-						title: '登录中',
-						mask:true
-					})
-					_this.dataDetails.loginFlag=1
-					_this.$request.baseRequest('get', '/commonUser/login', _this.dataDetails).then(res => {
-						uni.setStorageSync('pcUserInfo', res.data)
-						uni.setStorageSync('userInfo', res.data)
-						helper.getListByUserId()
-						_this.$store.commit('login', res.data)
-						uni.switchTab({
-							url: '/pages/goodSource/index'
-						});
-						uni.hideLoading()
-						})
-						.catch(res => {
-							
-							uni.showToast({
-								title: res.message,
-								icon: 'none',
-								duration: 2000
-							})
-						});
-				}).catch(errors => {
-					this.$refs.uToast.show({
-						type: 'error',
-						message: "校验失败",
-					})
-				})
-			},
-			reset() {
-				const validateList = ['userInfo.name', 'userInfo.sex', 'radiovalue1', 'checkboxValue1', 'intro',
-					'hotel', 'code', 'userInfo.birthday'
-				]
-				this.$refs.form1.resetFields()
-				this.$refs.form1.clearValidate()
-				setTimeout(() => {
-					this.$refs.form1.clearValidate(validateList)
-					// 或者使用 this.$refs.form1.clearValidate()
-				}, 10)
-			},
-			hideKeyboard() {
-				uni.hideKeyboard()
-			},
-			goregister() {
-				uni.$u.route('/pages/public/register');
-			},
+			
 		},
+
 	}
 </script>
 
-<style lang="scss">
-	.content {
-		background: url(~@/static/mine/bg@3x.png);
-		background-size: 100% 100%;
+<style lang='scss' scoped>
+	.apple {
+		background: #000;
+		width: 35px;
+		height: 35px;
+		padding: 8px;
+		border-radius: 50%;
+		vertical-align: middle;
+	}
+
+	page {
+		background: #fff;
+	}
+
+	.cuIcon-weixin {
+		background: #2772FB;
+		color: #fff;
+		font-size: 18px;
+		padding: 9px;
+		border-radius: 50%;
+		vertical-align: middle;
+		margin-right: 5px;
+	}
+
+	.close {
+		width: 20px;
+		height: 20px;
+		position: absolute;
+		right: 30px;
+	}
+
+	.container {
+		/* padding-top: 223rpx; */
+		position: relative;
+		width: 100vw;
 		height: 100vh;
-		padding-top: 85px;
+		overflow: hidden;
+		background: url('~@/static/images/mine/bg@2x.png');
+		background-size: cover;
+	}
+
+	.wrapper {
 		position: relative;
+		z-index: 90;
+		padding-bottom: 40upx;
+		height: 100%;
+		padding: 0 30px;
 	}
 
 	.back-btn {
@@ -176,24 +203,50 @@
 		color: red;
 	}
 
-	.wrapper {
-		position: relative;
-		z-index: 90;
-		padding-bottom: 40upx;
-		height: 100%;
-		padding: 0 30px;
+	.verificationCode {
+		margin-top: 20px;
+		background: #F5F6F9;
+		color: #AFB3BF;
 	}
 
-	.code-style {
+	.verificationCode.active {
 		background: #2772FB;
-		color: white;
+		color: #fff;
 	}
 
-	.use-password {
-		margin-top: 31rpx;
+	.verificationCode:after {
+		border: none;
+	}
+
+	.register {
+		position: absolute;
+		bottom: 136rpx;
+		left: 50%;
+		transform: translateX(-50%);
+		color: #333333;
+		border-radius: 43rpx;
+		border: 1px solid #444444;
+		font-size: 28rpx;
+		padding: 0rpx 49rpx;
+
 	}
 
-	.submit {
-		margin-top: 40rpx;
+	.register:after {
+		border: none;
+	}
+
+	.title {
+		font-size: 46rpx;
+	}
+
+	.phone-before-num {
+		font-size: 34rpx;
+		font-family: DINPro-Medium, DINPro;
+		font-weight: 500;
+		color: #333333;
+	}
+
+	.use-password {
+		margin-top: 31rpx;
 	}
 </style>

+ 391 - 198
pages/public/register.vue

@@ -1,31 +1,40 @@
 <template>
-	<view class="u-page content">
+	<view class="container">
 		<u-icon class="back-btn" name="arrow-left" color="black" size="20" @click="navBack"></u-icon>
 		<view class="wrapper">
 			<h2 class="Semibold">手机号注册</h2>
-			<u--form labelPosition="left" :model="registerData" ref="registerForm" labelWidth="80">
-				<u-form-item label="电话" prop="phone" borderBottom>
-					<u--input v-model="registerData.phone" border="none" placeholder="请输入手机号码"></u--input>
-				</u-form-item>
-			
-				<u-form-item label="验证码" prop="verifyCode" labelWidth="80" borderBottom>
-					<u--input v-model="registerData.verifyCode" border="none" placeholder="请填写验证码"></u--input>
-					<u-button slot="right" @tap="getCode" :text="tips"  size="mini" :disabled="disabled1" class="code-style">
-					</u-button>
-				</u-form-item>
-				<u-form-item label="密码" prop="password" borderBottom>
-					<u--input v-model="registerData.password" border="none" placeholder="请输入密码,6-16位字符"></u--input>
-				</u-form-item>
-			
-				<u-code ref="uCode" @change="codeChange" seconds="20" @start="disabled1 = true" @end="disabled1 = false">
-				</u-code>
-			</u--form>
-			<u-button class="code-style register" @click='register'>注册</u-button>
-			<view class="flex service aligns-center">
-				<u--image class='check' @click='consent'
-					:src="consentStatus==true?'../../static/mine/duihao@2x.png':'../../static/mine/wxz.png'"
-					width="12px" height="12px"></u--image>
-				我已阅读并同意
+			<view style='width:100%;margin-top:50px;border-bottom:1px solid #E8E9ED;padding:10px;position:relative;'
+				class="flex">
+				<view class="NumberMedium" style='width:15%;border-right:1px solid #E8E9ED;'>+86</view>
+				<view style='width:85%;'>
+					<u-input border="none" maxlength="11" v-model='phone' @input='phoneinput' style='padding-left:10px;'
+						placeholder="请输入手机号码" type="number" class="Regular" />
+				</view>
+				<!-- <image v-if='phone!=""' @click='phone=""' class='close' src='../../static/img/login/guanbi@2x.png'></image> -->
+			</view>
+			<view style='width:100%;border-bottom:1px solid #E8E9ED;position:relative;padding:10px;' class="flex">
+				<view style='width:70%;position:relative;'>
+					<u-input border="none" v-model='verifyCode' class="Regular" placeholder="请输入验证码" type="number" />
+					<!-- <image v-if='verifyCode' @click='verifyCode=""' class='close1' src='../../static/img/login/guanbi@2x.png'></image> -->
+				</view>
+				<button :class='codestatus&&!sendDisabled?"active":""' @click='getcode'
+					class='getcode Regular'>{{sendText}}</button>
+			</view>
+			<view style='border-bottom:1px solid #E8E9ED;padding:10px;position:relative;'>
+				<u-input border="none" maxlength='16' class='Regular input-style' style='height:30px;'
+					v-model='password' placeholder="请输入密码,6-16位字符" :type="type" />
+				<!-- 				<input maxlength='16' class='password Regular input-style' style='height:30px;' v-model='password' placeholder="请输入密码,6-16位字符" :type="type"> -->
+				<!-- <image v-if='password!=""' @click='password=""' class='close2' src='../../static/img/login/guanbi@2x.png'></image> -->
+				<!-- <view @click='switchover' style='position:absolute;right:0;top:38%;z-index:10;cursor:pointer;' class="iconfont " :class='type=="password"?"icon-yanjing-biyan":"icon-yanjing-zhengyan"'></view> -->
+			</view>
+			<button :class='phone!=""&&verifyCode!=""&&password!=""?"active":""' @click='register'
+				class='verificationCode'>注册</button>
+			<view
+				style='color:#6A6A6A;margin-top:10px;font-size:30rpx;display:flex;justify-content:center;align-items: center;'>
+				<u--image @click='consent'
+					:src="consentStatus==true?'../../static/images/mine/duihao@2x.png':'../../static/images/mine/wxz.png'"
+					width="17px" height="17px"></u--image>
+				已阅读并同意
 				<navigator
 					url="/pages/sale/webview?can_share=false&url=https://liangxin.zthymaoyi.com/userAgreement.html"
 					class="path" hover-class="navigator-hover">《服务协议》</navigator>和<navigator
@@ -33,130 +42,87 @@
 					class="path" hover-class="navigator-hover">《隐私政策》</navigator>
 			</view>
 		</view>
-	
 	</view>
 </template>
 
 <script>
-	var _this
+	import {
+		mapMutations
+	} from 'vuex';
+	import {
+		openFSqlite,
+		createFSQL,
+		selectFSQL,
+		addFSQL
+	} from '../../util/f.js'
 	import helper from '@/common/helper.js';
+	import {
+		queryData,
+		upData,
+		initData
+	} from '../../util/dbUtil.js'
 	export default {
 		data() {
 			return {
-				disabled1: false,
-				tips: '',
+				inputContent: null,
+				loginType: "wechat",
+				phone: '',
+				password: '',
+				logining: false,
+				isPhone: false,
+				isApple: true,
+				accessToken: '',
+				params: {
+					encryptedData: '',
+					session_key: '',
+					iv: '',
+				},
+				userInfo: {
+					nickName: '',
+					avatarUrl: '',
+					gender: '',
+					phone: ''
+				},
 				consentStatus: false,
 				codestatus: false,
-				registerData: {
-					phone: '',
-					password: '',
-					verifyCode: '',
-				},
-				rules: {
-					phone: [
-						{
-							required: true,
-							message: '请输入手机号',
-							trigger: ['change', 'blur'],
-						},
-						{
-							// 自定义验证函数,见上说明
-							validator: (rule, value, callback) => {
-								// 上面有说,返回true表示校验通过,返回false表示不通过
-								// uni.$u.test.mobile()就是返回true或者false的
-								return uni.$u.test.mobile(value);
-							},
-							message: '手机号码不正确',
-							// 触发器可以同时用blur和change
-							trigger: [ 'blur'],
-						}
-					],
-					verifyCode: {
-						type: 'string',
-						required: true,
-						len: 6,
-						message: '请填写6位验证码',
-						trigger: ['blur'],
-					},
-					password: {
-						type: 'string',
-						required: true,
-						min: 6,
-						max: 16,
-						message: '长度在6-16位字符之间',
-						trigger: ['blur'],
-					}
-				}
+				type: 'password',
+				inputStatus: 'none',
+				verifyCode: null,
+				sendText: '获取验证码',
+				sendDisabled: false,
+				system: '',
+				platform: '',
+				canIUseProfile: false
 			}
 		},
-		onReady() {
-			// 如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则
-			this.$refs.registerForm.setRules(this.rules)
+		onShow() {
+			// this.loginType = "wechat"
+
+			// this.$api.logout()
 		},
-		onLoad() {
-			_this = this
+		onLoad(options) {
+			if (wx.getUserProfile) {
+				console.log('--check getUserProfile--OK');
+				this.canIUseProfile = true;
+			}
+			console.log("login on load")
+			var that = this
+			// that.$api.request('user', 'sendIsApple', {}).then(res => {
+			// 	that.isApple = res.data
+			// })
+			// uni.getSystemInfo({
+			// 	success: (res) => {
+			// 		// console.log(res)
+			// 		this.system = res.system // ios
+			// 		this.platform = res.platform // 14.3
+			// 	}
+			// })
 		},
 		methods: {
-			navBack() {
-				uni.navigateBack();
-			},
-			codeChange(text) {
-				this.tips = text;
-			},
-			// 获取验证码
-			getCode() {
-				if (/^0?1[3|4|5|6|7|8][0-9]\d{8}$/.test(this.registerData.phone)) {
-					if (this.$refs.uCode.canGetCode) {
-
-						// 模拟向后端请求验证码
-						uni.showLoading({
-							title: '正在获取验证码'
-						})
-						_this.$request.baseRequest('get', '/commonUser/sendVerifyCode', {
-								phone: this.registerData.phone
-							}).then(res => {
-								uni.hideLoading();
-								// 这里此提示会被this.start()方法中的提示覆盖
-								uni.$u.toast('验证码已发送');
-								// 通知验证码组件内部开始倒计时
-								this.$refs.uCode.start();
-
-							})
-							.catch(res => {
-								uni.$u.toast(res.message);
-							});
-
-						// setTimeout(() => {
-
-						// }, 2000);
-					} else {
-						uni.$u.toast('倒计时结束后再发送');
-					}
-				} else {
-					uni.$u.toast('请输入正确手机号');
-				}
-
-			},
-			consent() {
-				this.consentStatus = !this.consentStatus
-				uni.setStorage({
-					key: 'policyStorageKey',
-					data: this.consentStatus
-				});
-			},
 			// 随机数
 			randomAccess(min, max) {
 				return Math.floor(Math.random() * (min - max) + max)
 			},
-			getRandomName(NameLength) {
-				let name = ""
-				for (let i = 0; i < NameLength; i++) {
-					let unicodeNum = ""
-					unicodeNum = this.randomAccess(0x4e00, 0x9fa5).toString(16)
-					name += this.decodeUnicode(unicodeNum)
-				}
-				return name
-			},
 			// 解码
 			decodeUnicode(str) {
 				//Unicode显示方式是\u4e00
@@ -168,8 +134,67 @@
 				str = str.replace(/%/g, "\\");
 				return str;
 			},
-			//注册
+			/*
+			 *@param Number NameLength 要获取的名字长度
+			 */
+			getRandomName(NameLength) {
+				let name = ""
+				for (let i = 0; i < NameLength; i++) {
+					let unicodeNum = ""
+					unicodeNum = this.randomAccess(0x4e00, 0x9fa5).toString(16)
+					name += this.decodeUnicode(unicodeNum)
+				}
+				return name
+			},
+			phoneinput(e) {
+				if (e.length == 11) {
+					this.codestatus = true
+				}
+			},
+			getcode() {
+				var that = this
+				if (/^0?1[3|4|5|6|7|8][0-9]\d{8}$/.test(this.phone)) {
+					that.$request.baseRequest('get', '/commonUser/sendVerifyCode', {
+							phone: this.phone
+						}).then(res => {
+							if (res.code == 200) {
+								that.sendDisabled = true
+								let sec = 60
+								let interval = setInterval(() => {
+									sec--;
+									that.sendText = sec + 's后重发'
+									if (sec <= 0) {
+										that.sendDisabled = false
+										that.sendText = "获取验证码"
+										clearInterval(interval)
+									}
+								}, 1000)
+							} else {
+								uni.showToast({
+									title: res.message,
+									icon: 'none',
+									duration: 2000
+								})
+							}
+						})
+						.catch(res => {
+							uni.showToast({
+								title: res.data.message,
+								icon: 'none',
+								duration: 2000
+							})
+						});
+				} else {
+					uni.showToast({
+						title: '请输入正确的手机号',
+						icon: 'none',
+						duration: 2000
+					})
+				}
+
+			},
 			register() {
+				var that = this
 				if (!this.consentStatus) {
 					uni.showToast({
 						title: '请勾选协议',
@@ -178,76 +203,190 @@
 					})
 					return
 				}
-				this.$refs.registerForm.validate().then(res => {
-					_this.registerData.userName = _this.getRandomName(3)
-					// uni.$u.toast('校验通过')
-					_this.isLoading = true
-					_this.registerData.loginFlag=1
-					_this.$request.baseRequest('post', '/commonUser/register', _this.registerData).then(res => {
-							if (res.data.code == '11002') {
-								uni.$u.toast('验证码错误或过期,请重新获取')
-
-								return
-							} else if (res.data.code == '11004') {
-								uni.$u.toast('该手机号已注册,可直接登录')
-
-								return
-							} 
+				if (this.verifyCode.length > 6) {
+					uni.showToast({
+						title: '验证码错误',
+						icon: 'none',
+						duration: 2000
+					})
+					return
+				}
+				if (this.password.length < 6) {
+					uni.showToast({
+						title: '请输入正确的密码格式',
+						icon: 'none',
+						duration: 2000
+					})
+					return
+				}
+				var username = this.getRandomName(3)
+				that.$request.baseRequest('post', '/commonUser/register', {
+						phone: this.phone,
+						password: this.password,
+						verifyCode: this.verifyCode,
+						userName: username
+					}).then(res => {
+						if (res.code == '11002') {
+							uni.showToast({
+								title: '验证码错误或过期,请重新获取',
+								icon: 'none',
+								duration: 2000
+							})
+							return
+						} else if (res.code == '11004') {
+							uni.showToast({
+								title: '该手机号已注册,可直接登录',
+								icon: 'none',
+								duration: 2000
+							})
+							return
+						} else {
 							uni.showLoading({
 								title: '登录中',
 								mask: true
 							})
-							_this.$request.baseRequest('get', '/commonUser/login', {
-								phone: _this.registerData.phone,
-								password: _this.registerData.password,
-								cid: uni.getStorageSync("clientId")
-							}).then(res => {
-								uni.hideLoading()
-								uni.setStorageSync('userInfo', res.data)
-								_this.$store.commit('login', res.data)
-								uni.switchTab({
-									url: '/pages/goodSource/index'
-								});
-									
+							that.$request.baseRequest('get', '/commonUser/login', {
+									phone: this.phone,
+									password: this.password,
+									loginFlag: 1
+								}).then(res => {
+
+									if (res.data.code == 200) {
+										// pc登录
+										that.$request.baseRequest('post', '/commonUser/api/loginQuickly', {
+											mobilePhone: this.phone,
+											veriCode: "123456",
+										}).then(res1 => {
+											if (res1.code == 200) {
+												uni.setStorageSync('pcUserInfo', res1.data)
+
+												helper.getListByUserId()
+											} else {
+												that.$api.doRequest('post',
+													'/commonUser/api/loginQuickly', {
+														mobilePhone: '14444444444',
+														veriCode: "123456",
+													}).then(res2 => {
+													uni.setStorageSync('pcUserInfo', res2
+														.data)
+													helper.getListByUserId()
+												})
+											}
+										})
+										uni.setStorageSync('userInfo', res.data)
+										that.$store.commit('login', res.data)
+										// that.liangxinLogin()
+										uni.switchTab({
+											url: '/pages/sale/information'
+										});
+									} else {
+										uni.showToast({
+											title: res.message,
+											icon: 'none',
+											duration: 2000
+										})
+									}
+									uni.hideLoading()
 								})
 								.catch(res => {
-									uni.$u.toast(res.message)
+									console.log(res);
 								});
-							
-							
-							
-						})
-						.catch(res => {
-							uni.$u.toast(res.message)
-						});
-				}).catch(errors => {
-					uni.$u.toast('校验失败')
-				})
+						}
+					})
+					.catch(res => {
+						console.log(res);
+					});
+			},
+			consent() {
+				this.consentStatus = !this.consentStatus
+				uni.setStorage({
+					key: 'policyStorageKey',
+					data: this.consentStatus
+				});
+			},
+			switchover() {
+				if (this.type == 'password') {
+					this.type = 'text'
+				} else {
+					this.type = 'password'
+				}
+			},
+			...mapMutations(['login']),
+			navBack() {
+				uni.navigateBack();
 			},
 		},
+
 	}
 </script>
 
-<style lang="scss">
-	.content {
-		background: url(~@/static/mine/bg@3x.png);
-		background-size: 100% 100%;
-		height: 100vh;
+<style lang='scss' scoped>
+	uni-navigator {
+		display: inline-block;
+		color: #2772FB;
+	}
+
+	.password {
+		border: none;
+		outline: none;
+
+	}
+
+	.apple {
+		background: #000;
+		width: 35px;
+		height: 35px;
+		padding: 8px;
+		border-radius: 50%;
+		vertical-align: middle;
+	}
+
+	page {
+		background: #fff;
+	}
+
+	.cuIcon-weixin {
+		background: #2772FB;
+		color: #fff;
+		font-size: 18px;
+		padding: 9px;
+		border-radius: 50%;
+		vertical-align: middle;
+		margin-right: 5px;
+	}
+
+	.container {
 		padding-top: 85px;
 		position: relative;
+		width: 100vw;
+		height: calc(100vh - 85px);
+		overflow: hidden;
+		background: url('~@/static/images/mine/bg@2x.png');
+		background-size: 100%;
+	}
+
+	.close {
+		width: 20px;
+		height: 20px;
+		position: absolute;
+		right: 0px;
 	}
-	.check{
-		position:relative;
-		top:2px;
+
+	.close1 {
+		width: 20px;
+		height: 20px;
+		position: absolute;
+		right: 10px;
+		top: 0;
 	}
-	.back-btn {
+
+	.close2 {
+		width: 15px;
+		height: 15px;
 		position: absolute;
-		left: 40upx;
-		z-index: 9999;
-		padding-top: var(--status-bar-height);
-		top: 40upx;
-		font-size: 40upx;
-		color: red;
+		right: 19px;
+		top: 50%;
+		transform: translateY(-45%);
 	}
 
 	.wrapper {
@@ -258,26 +397,80 @@
 		padding: 0 30px;
 	}
 
-	.code-style {
+	.back-btn {
+		position: absolute;
+		left: 40upx;
+		z-index: 9999;
+		padding-top: var(--status-bar-height);
+		top: 40upx;
+		font-size: 40upx;
+		color: black;
+	}
+
+	.verificationCode {
+		margin-top: 20px;
+		background: #F5F6F9;
+		color: #AFB3BF;
+	}
+
+	.verificationCode:after {
+		border: none;
+	}
+
+	.register {
+		position: absolute;
+		bottom: 20px;
+		left: 50%;
+		transform: translateX(-50%);
+		color: #333333;
+		height: 50px;
+		line-height: 50px;
+		border-radius: 30px;
+		border: 1px solid #444444;
+	}
+
+	.register:after {
+		border: none;
+	}
+
+	.verificationCode.active {
 		background: #2772FB;
-		color: white;
+		color: #fff;
 	}
-	.register{
-		margin-top: 50rpx;
+
+	.getcode {
+		font-size: 14px;
+		position: absolute;
+		right: 0;
+		top: 50%;
+		transform: translateY(-50%);
+		color: #AFB3BF;
+		background: #F5F6F9;
+		height: 30px;
+		line-height: 30px;
+
 	}
-	.service {
-		font-size: 24rpx;
-		margin: 20rpx;
-		justify-content: center;
-	
-		/deep/.u-image {
-			margin: 0 20rpx;
-		}
+
+	.getcode:after {
+		border: none;
 	}
-	.path{
+
+	uni-navigator {
+		display: inline-block;
 		color: #2772FB;
 	}
-	.Semibold{
-		margin-bottom: 50rpx;
+
+	.getcode.active {
+		background: #2772FB;
+		color: #fff;
+	}
+
+	.NumberMedium {
+		display: flex;
+		align-items: center;
+	}
+
+	.flex {
+		align-items: center;
 	}
 </style>

+ 21 - 20
pages/release/addAddress.vue

@@ -12,7 +12,7 @@
 				</u-radio-group>
 			</view> -->
 			<view class="">
-				<u--form labelPosition="left" :model="addressInfo" :rules="rules" ref="form1" labelWidth='100'>
+				<u--form labelPosition="left" :model="addressInfo" ref="form1" labelWidth='100'>
 					<u-form-item label="所属区域" ref="item1" borderBottom>
 						<view @click='toMap' :class="addressInfo.area?'':'select-color'">
 							{{addressInfo.area?(addressInfo.province+addressInfo.city+addressInfo.area):'选择所属区域 '}}
@@ -58,19 +58,20 @@
 					longitude: "",
 					latitude: ""
 				},
-				rules: {
-					// 'addressInfo.name': {
-					// 	type: 'string',
-					// 	required: true,
-					// 	message: '请填写姓名',
-					// 	trigger: ['blur', 'change']
-					// },
-				},
+				// rules: {
+				// 	// 'addressInfo.name': {
+				// 	// 	type: 'string',
+				// 	// 	required: true,
+				// 	// 	message: '请填写姓名',
+				// 	// 	trigger: ['blur', 'change']
+				// 	// },
+				// },
 
 			};
 		},
 		onLoad(options) {
 			console.log(options)
+			this.$helper.formatLocation('辽宁省营口市鲅鱼圈区蝴蝶泉路红运小区')
 		},
 		computed: {
 			...mapState(['hasLogin', 'userInfo'])
@@ -113,21 +114,21 @@
 				uni.chooseLocation({
 					success: function(res) {
 						console.log(res);
-
-						console.log('位置名称:' + res.name);
-						console.log('详细地址:' + res.address);
-						console.log('纬度:' + res.latitude);
-						console.log('经度:' + res.longitude);
-						let _address = that.$helper.getAddress(res.address)
+						// console.log('位置名称:' + res.name);
+						// console.log('详细地址:' + res.address);
+						// console.log('纬度:' + res.latitude);
+						// console.log('经度:' + res.longitude);
+						let _address = that.$helper.formatLocation(res.address)
+						console.log('----------------------------')
 						console.log(_address)
 						that.addressInfo.latitude = res.latitude
 						that.addressInfo.longitude = res.longitude
-						that.addressInfo.detailedAddress = _address.village
-						that.addressInfo.province = _address.province
-						that.addressInfo.city = _address.city
-						that.addressInfo.area = _address.county
+						that.addressInfo.detailedAddress = _address.Village
+						that.addressInfo.province = _address.Province
+						that.addressInfo.city = _address.City
+						that.addressInfo.area = _address.Country
 						that.addressInfo.commonId = that.userInfo.id
-
+						that.$forceUpdate()
 					}
 				});
 				// console.log(123)

+ 1 - 1
pages/release/editAddress.vue

@@ -119,7 +119,7 @@
 						console.log('详细地址:' + res.address);
 						console.log('纬度:' + res.latitude);
 						console.log('经度:' + res.longitude);
-						let _address = that.$helper.getAddress(res.address)
+						let _address = that.$helper.formatLocation(res.address)
 						console.log(_address)
 						that.addressInfo.latitude = res.latitude
 						that.addressInfo.longitude = res.longitude

+ 5 - 5
pages/release/editRelease.vue

@@ -314,7 +314,7 @@
 			// }
 		},
 		onLoad(options) {
-			debugger
+			
 			_this = this;
 			this.dataObj = options
 			if (this.dataObj.billingMethod == 1) {
@@ -360,7 +360,7 @@
 				} = e
 
 				// if (columnIndex === 0) {
-				// 	debugger
+				// 	
 				// 	if (e.index != 0) {
 				// 		picker.setColumnValues(1, this.validityPeriod[1].shift())
 				// 	}
@@ -375,7 +375,7 @@
 				this.show = false
 			},
 			confirmSelectCargoOwner(e) {
-				debugger
+				
 				this.dataObj.cargoOwner = e.value[0]
 				this.show = false
 			},
@@ -437,7 +437,7 @@
 				this.dataDetails.type = n
 			},
 			submit() {
-				debugger
+				
 				uni.showLoading({
 					mask: true,
 					title: '加载中...'
@@ -468,7 +468,7 @@
 				this.dataObj.carModel = _list.toString()
 				this.dataObj.commonId = this.userInfo.id
 				this.$request.baseRequest('post', '/publishTaskInfo/api/editTask', this.dataObj).then(res => {
-						debugger
+						
 						uni.hideLoading()
 						this.$refs.uToast.show({
 							type: 'success',

+ 4 - 4
pages/release/lookRelease.vue

@@ -232,7 +232,7 @@
 			// 	} = e
 
 			// 	// if (columnIndex === 0) {
-			// 	// 	debugger
+			// 	// 	
 			// 	// 	if (e.index != 0) {
 			// 	// 		picker.setColumnValues(1, this.validityPeriod[1].shift())
 			// 	// 	}
@@ -247,7 +247,7 @@
 			// 	this.show = false
 			// },
 			// confirmSelectCargoOwner(e) {
-			// 	debugger
+			// 	
 			// 	this.dataObj.cargoOwner = e.value[0]
 			// 	this.show = false
 			// },
@@ -302,7 +302,7 @@
 			// 	this.dataDetails.type = n
 			// },
 			// submit() {
-			// 	debugger
+			// 	
 			// 	// 校验没写
 			// 	if (this.dataObj.billingMethod == '元/吨') {
 			// 		this.dataObj.billingMethod = 0
@@ -328,7 +328,7 @@
 			// 	}
 			// 	this.dataObj.carModel = _list.toString()
 			// 	this.$request.baseRequest('post', '//publishTaskInfo/api/addTask', this.dataObj).then(res => {
-			// 			debugger
+			// 			
 
 
 			// 		})

+ 5 - 5
pages/release/record.vue

@@ -46,7 +46,7 @@
 						<view class="right">
 							<view class="flex row">
 								<view class="flex">
-									<image class="hz-good" src="@/static/images/order/good-img.png"></image>
+									<!-- <image class="hz-good" src="@/static/images/order/good-img.png"></image> -->
 									<view>{{good.goodsName}}</view>
 								</view>
 								<view class="cc">{{good.carLengthSmall}} - {{good.carLength}} 米</view>
@@ -54,7 +54,7 @@
 								<view>{{carType(good)}}</view>
 							</view>
 							<view class="flex align-center">
-								<view class="yj">运距约 {{good.distance}}km</view>
+								<view class="">运距约 {{good.distance}}km</view>
 								<view class="sline"></view>
 								<view class=" ">{{good.weight}}吨</view>
 							</view>
@@ -166,7 +166,7 @@
 				this.mescroll = mescroll;
 			},
 			search() {
-				debugger
+				
 				this.mescroll.resetUpScroll()
 			},
 			back() {
@@ -233,7 +233,7 @@
 						id: val.id,
 						commonId: this.userInfo.id
 					}).then(res => {
-						debugger
+						
 						if (res.code == 200) {
 							this.$refs.uToast.show({
 								type: 'success',
@@ -268,7 +268,7 @@
 				this.$request.baseRequest('post', '/publishTaskInfo/api/showHidden', {
 						id: this.rowObj.id,
 					}).then(res => {
-						debugger
+						
 						console.log(this.rowObj)
 						if (res.code == 200) {
 							if (this.rowObj.showHide == 2) {

+ 110 - 57
pages/release/release.vue

@@ -61,6 +61,7 @@
 			<view class="row">
 				<view class="left">距离</view>
 				<input type="text" value="" class="input" placeholder="自动计算" v-model="dataObj.distance" disabled="" />
+				<view>公里</view>
 			</view>
 			<view class="row">
 				<view class="left">货名</view>
@@ -78,7 +79,7 @@
 			</view>
 			<view class="row">
 				<view class="left">运费单价</view>
-				<view class="right"><input type="text" value="" placeholder="输入运费单价" class="input"
+				<view class="right"><input type="number" value="" placeholder="输入运费单价" class="input"
 						v-model="dataObj.freightPrice" /></view>
 			</view>
 			<view class="row">
@@ -121,7 +122,7 @@
 			<view class="row">
 				<view class="left">重量(吨)</view>
 				<view class="right flex">
-					<input type="text" value="" placeholder="输入预计发运重量" class="input" v-model="dataObj.weight" />
+					<input type="text" value="" placeholder="输入预计发运重量" class="number" v-model="dataObj.weight" />
 				</view>
 			</view>
 			<view class="flex row">
@@ -141,14 +142,14 @@
 			</view>
 			<view class="row flex-space-between row-bgc">
 				<view class="car-row">
-					<input type="text" value="" placeholder="最短不限" class="" v-model="dataObj.carLengthSmall"
+					<input type="number" value="" placeholder="最短不限" class="" v-model="dataObj.carLengthSmall"
 						class="car-input" />
 					<view>m</view>
 				</view>
 
 				<view class="car-line">-</view>
 				<view class="car-row">
-					<input type="text" value="" placeholder="最长不限" class="" v-model="dataObj.carLength"
+					<input type="number" value="" placeholder="最长不限" class="" v-model="dataObj.carLength"
 						class="car-input" />
 					<view>m</view>
 				</view>
@@ -159,13 +160,13 @@
 			</view>
 			<view class="row flex-space-between row-bgc">
 				<view class="car-row">
-					<input type="text" value="" placeholder="最小不限" class="car-input"
+					<input type="number" value="" placeholder="最小不限" class="car-input"
 						v-model="dataObj.loadWeightSmall" />
 					<view>吨</view>
 				</view>
 				<view class="car-line">-</view>
 				<view class="car-row">
-					<input type="text" value="" placeholder="最大不限" class="car-input" v-model="dataObj.loadWeight" />
+					<input type="number" value="" placeholder="最大不限" class="car-input" v-model="dataObj.loadWeight" />
 					<view>吨</view>
 				</view>
 			</view>
@@ -202,6 +203,7 @@
 		<u-picker :show="isShowValidity" ref="uPicker" :columns="validityPeriod" @confirm="confirmValidityPeriod"
 			:closeOnClickOverlay='true' @close='isShowValidity=false' @cancel='isShowValidity=false'>
 		</u-picker>
+		<u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :closeOnClickOverlay='true' :showCancelButton='true' confirmColor='#2772FB'  @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal>
 		<u-toast ref="uToast"></u-toast>
 	</view>
 </template>
@@ -214,6 +216,9 @@
 	export default {
 		data() {
 			return {
+				isShowAlert:false,
+				alertTitle:'确定发布运输任务?',
+				alertContent:null,
 				radioCustomStyle: {
 					margin: '0 0 0 20rpx'
 				},
@@ -298,10 +303,10 @@
 		onShow() {
 
 		},
-		onLoad(options) {
+		 onLoad(options) {
 			_this = this;
 			this.validityPeriod = this.$helper.makeValidityPeriod()
-			this.validityPeriodcq = this.$helper.makeValidityPeriod(0)
+			this.validityPeriodcq = this.$helper.makeValidityPeriod(0,'长期')
 			let _faddress = uni.getStorageSync('storage_faddress');
 			let _saddress = uni.getStorageSync('storage_saddress');
 			if (_faddress) {
@@ -324,6 +329,9 @@
 			} else {
 				this.getDefaultPlace(1)
 			}
+			if(this.dataObj.sendLatitude&&this.dataObj.sendLongitude&&this.dataObj.unsendLatitude&&this.dataObj.unsendLongitude){
+				this.dataObj.distance=this.$helper.getDistance(this.dataObj.unsendLatitude,this.dataObj.unsendLongitude,this.dataObj.sendLatitude,this.dataObj.sendLongitude)
+			}
 
 
 		},
@@ -331,6 +339,92 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
+			confirmClick(){
+				
+				// 校验没写
+				if (this.dataObj.billingMethod == '元/吨') {
+					this.dataObj.billingMethod = 0
+				} else {
+					this.dataObj.billingMethod = 1
+				}
+				if (this.dataObj.freightAdvance) {
+					this.dataObj.freightAdvance = 1
+				} else {
+					this.dataObj.freightAdvance = 0
+				}
+				let _list = []
+				for (let i = 0; i < this.checkboxValue1.length; i++) {
+					if (this.checkboxValue1[i] == '不限') {
+						_list.push(1)
+					} else if (this.checkboxValue1[i] == '高栏') {
+						_list.push(2)
+					} else if (this.checkboxValue1[i] == '集装箱') {
+						_list.push(3)
+					} else if (this.checkboxValue1[i] == '自卸车') {
+						_list.push(4)
+					}
+				}
+				this.dataObj.carModel = _list.toString()
+				this.dataObj.commonId = this.userInfo.id
+				this.$request.baseRequest('post', '/publishTaskInfo/api/addTask', this.dataObj).then(res => {
+						
+						this.$refs.uToast.show({
+							type: 'success',
+							message: "发布成功",
+							complete() {
+								_this.isShowAlert = false
+								_this.dataObj={
+									commonId: '',
+									cargoOwner: '',
+									sendPrivate: '',
+									sendCity: '',
+									sendArea: '',
+									sendDetailedAddress: '',
+									unloadPrivate: '',
+									unloadCity: '',
+									unloadArea: '',
+									unloadDetailedAddress: '',
+									distance: '',
+									goodsName: '',
+									billingMethod: '元/吨',
+									freightPrice: '',
+									freightAdvance: true,
+									sender: '',
+									senderPhone: '',
+									receiver: '',
+									receiverPhone: '',
+									weight: '',
+									loadingDateStart: '',
+									loadingDateEnd: '',
+									carLengthSmall: '',
+									carLength: '',
+									loadWeightSmall: '',
+									loadWeight: '',
+									carModel: '',
+									taskDescription: '',
+									taskValidity: '',
+									sendLongitude: '',
+									sendLatitude: '',
+									unsendLongitude: '',
+									unsendLatitude: '',
+								}
+								_this.checkboxValue1=['不限']
+							}
+						})
+				
+					})
+					.catch(res => {
+						uni.showToast({
+							title: res.message,
+							icon: 'none',
+							duration: 2000
+						})
+					});
+				
+			},
+			cancelClick(){
+				this.isShowAlert = false
+			},
 			//获取默认发货地、收货地
 			getDefaultPlace(type) {
 				// 0时获取默认发货地址,1时获取默认收货地址 通过选择获取的地址无需获取默认地址
@@ -359,6 +453,9 @@
 								this.dataObj.unsendLatitude = res.data[i].latitude
 							}
 						}
+						if(this.dataObj.sendLatitude&&this.dataObj.sendLongitude&&this.dataObj.unsendLatitude&&this.dataObj.unsendLongitude){
+							this.dataObj.distance=this.$helper.getDistance(this.dataObj.unsendLatitude,this.dataObj.unsendLongitude,this.dataObj.sendLatitude,this.dataObj.sendLongitude)
+						}
 						uni.hideLoading()
 
 
@@ -381,7 +478,7 @@
 				} = e
 
 				// if (columnIndex === 0) {
-				// 	debugger
+				// 	
 				// 	if (e.index != 0) {
 				// 		picker.setColumnValues(1, this.validityPeriod[1].shift())
 				// 	}
@@ -396,7 +493,6 @@
 				this.show = false
 			},
 			confirmSelectCargoOwner(e) {
-				debugger
 				this.dataObj.cargoOwner = e.value[0]
 				this.show = false
 			},
@@ -404,9 +500,9 @@
 				this.show = true
 			},
 			selectAddress(type) {
-				uni.removeStorage({
-					key: 'storage_faddress'
-				});
+				// uni.removeStorage({
+				// 	key: 'storage_faddress'
+				// });
 				uni.removeStorage({
 					key: 'storage_saddress'
 				});
@@ -457,50 +553,7 @@
 				this.dataDetails.type = n
 			},
 			submit() {
-				debugger
-				// 校验没写
-				if (this.dataObj.billingMethod == '元/吨') {
-					this.dataObj.billingMethod = 0
-				} else {
-					this.dataObj.billingMethod = 1
-				}
-				if (this.dataObj.freightAdvance) {
-					this.dataObj.freightAdvance = 1
-				} else {
-					this.dataObj.freightAdvance = 0
-				}
-				let _list = []
-				for (let i = 0; i < this.checkboxValue1.length; i++) {
-					if (this.checkboxValue1 == '不限') {
-						_list.push(1)
-					} else if (this.checkboxValue1 == '高栏') {
-						_list.push(2)
-					} else if (this.checkboxValue1 == '集装箱') {
-						_list.push(3)
-					} else if (this.checkboxValue1 == '自卸车') {
-						_list.push(4)
-					}
-				}
-				this.dataObj.carModel = _list.toString()
-				this.dataObj.commonId = this.userInfo.id
-				this.$request.baseRequest('post', '/publishTaskInfo/api/addTask', this.dataObj).then(res => {
-						debugger
-						this.$refs.uToast.show({
-							type: 'success',
-							message: "发布成功",
-							complete() {
-								this.dataObj = {}
-							}
-						})
-
-					})
-					.catch(res => {
-						uni.showToast({
-							title: res.message,
-							icon: 'none',
-							duration: 2000
-						})
-					});
+				this.isShowAlert = true;
 			},
 		}
 	}

二进制
static/1.mp4


二进制
static/logo.png


二进制
static/指引@2x.png


+ 0 - 1
store/index.js

@@ -114,7 +114,6 @@ const store = new Vuex.Store({
 			saveLifeData(saveKey, state[saveKey])
 		},
 		login(state, provider) {
-			// debugger
 			state.hasLogin = true;
 			state.userInfo = provider;
 			uni.setStorageSync('userInfo', provider)

+ 4 - 4
websocket_sdk.js

@@ -265,8 +265,8 @@ export default class Websocket {
 			if (!userInfo || !userInfo.accessToken) {
 				userInfo = uni.getStorageSync('userInfo')
 			}
-			var pcUserInfo=uni.getStorageSync('pcUserInfo')
-			if(!pcUserInfo && userInfo){
+			var pcUserInfoHZ=uni.getStorageSync('pcUserInfoHZ')
+			if(!pcUserInfoHZ && userInfo){
 				uni.request({
 					url: baseUrlNew + '/commonUser/api/loginQuickly',
 					data: {
@@ -276,7 +276,7 @@ export default class Websocket {
 					method: 'POST',
 					success: (res) => {						
 						if (res.statusCode === 200) {
-							uni.setStorageSync('pcUserInfo', res.data)
+							uni.setStorageSync('pcUserInfoHZ', res.data)
 							helper.getListByUserId()
 						}
 						else{
@@ -289,7 +289,7 @@ export default class Websocket {
 								method: 'POST',
 								success: (res) => {						
 									if (res.statusCode === 200) {
-										uni.setStorageSync('pcUserInfo', res.data)
+										uni.setStorageSync('pcUserInfoHZ', res.data)
 										helper.getListByUserId()
 									}
 								}

二进制
zhiyunhuozhu.keystore


部分文件因为文件数量过多而无法显示