achao 2 년 전
부모
커밋
bd4b8420ec
86개의 변경된 파일3269개의 추가작업 그리고 137개의 파일을 삭제
  1. 3 3
      App.vue
  2. 1 1
      components/bert-suggest/suggest.vue
  3. 819 0
      components/mx-datepicker/mx-datepicker.vue
  4. 1 1
      config/index.js
  5. 1 1
      demo.vue
  6. 1 1
      hybrid/html/video.html
  7. 41 6
      pages.json
  8. 5 5
      pages/carSource/driverSee.vue
  9. 5 5
      pages/carSource/index.vue
  10. 417 0
      pages/cargoTerminal/cargoTerminal.vue
  11. 228 0
      pages/cargoTerminal/cargoTerminalDetail.vue
  12. 1619 0
      pages/cargoTerminal/publishSource.vue
  13. 3 3
      pages/mine/agentCargoOwner.vue
  14. 2 2
      pages/mine/cargoowner/addEnerprise.vue
  15. 2 2
      pages/mine/cargoowner/editEnerprise.vue
  16. 1 1
      pages/mine/cargoowner/editpersonalinformation.vue
  17. 3 3
      pages/mine/cargoowner/selectcompany.vue
  18. 4 4
      pages/mine/company/addcompany.vue
  19. 1 1
      pages/mine/company/companyvideo.nvue
  20. 1 1
      pages/mine/company/companyvideo.vue
  21. 4 4
      pages/mine/company/editcompany.vue
  22. 6 6
      pages/mine/company/index.vue
  23. 2 2
      pages/mine/confirm.vue
  24. 15 1
      pages/mine/index.vue
  25. 2 2
      pages/mine/manageBankCards/addBankCard.vue
  26. 2 2
      pages/mine/manageBankCards/editBankCard.vue
  27. 3 3
      pages/mine/manageBankCards/index.vue
  28. 2 2
      pages/mine/myAccount/bankList.vue
  29. 2 2
      pages/mine/myAccount/index.vue
  30. 2 2
      pages/mine/myAccount/withdrawal.vue
  31. 2 2
      pages/mine/set.vue
  32. 1 1
      pages/mine/settings/editAvatar.vue
  33. 1 1
      pages/mine/settings/editPassword.vue
  34. 2 2
      pages/news/index.vue
  35. 4 4
      pages/order/confirmLoading.vue
  36. 5 5
      pages/order/driverDetail.vue
  37. 1 1
      pages/order/fk.vue
  38. 14 14
      pages/order/index.vue
  39. 1 1
      pages/order/jb.vue
  40. 3 3
      pages/order/orderDetails.vue
  41. 2 2
      pages/order/signContract.vue
  42. 2 2
      pages/public/login.vue
  43. 2 2
      pages/public/loginOther.vue
  44. 5 5
      pages/public/register.vue
  45. 2 2
      pages/release/addAddress.vue
  46. 2 2
      pages/release/editAddress.vue
  47. 6 6
      pages/release/editRelease.vue
  48. 2 2
      pages/release/lookRelease.vue
  49. 2 2
      pages/release/record.vue
  50. 7 7
      pages/release/release.vue
  51. 3 3
      pages/release/selectAddress.vue
  52. BIN
      static/banner.jpg
  53. BIN
      static/banner@2x.png
  54. 2 2
      static/css/common.scss
  55. BIN
      static/images/1.png
  56. BIN
      static/images/carSource/dianhua.png
  57. BIN
      static/images/common/bz@2x.png
  58. BIN
      static/images/common/dingdan@2x.png
  59. BIN
      static/images/common/huoyuan@2x.png
  60. BIN
      static/images/common/jt.png
  61. BIN
      static/images/common/my@2x.png
  62. BIN
      static/images/common/quxiao@2x.png
  63. BIN
      static/images/common/top@2x.png
  64. BIN
      static/images/common/xiaoxi@2x.png
  65. BIN
      static/images/dianhua.png
  66. BIN
      static/images/goodSource/Mask@2x.png
  67. BIN
      static/images/goodSource/banner@2x.png
  68. BIN
      static/images/goodSource/jx.png
  69. BIN
      static/images/mine/duihao@2x.png
  70. BIN
      static/images/mine/wxz.png
  71. BIN
      static/images/news/bg.png
  72. BIN
      static/images/news/xt.png
  73. BIN
      static/images/order/bg.png
  74. BIN
      static/images/order/jt.png
  75. BIN
      static/images/order/position.png
  76. BIN
      static/logo.png
  77. BIN
      static/mine/duihao@2x.png
  78. BIN
      static/mine/fabu.png
  79. BIN
      static/mine/huoyuan_check.png
  80. BIN
      static/mine/tongzhi_check.png
  81. BIN
      static/mine/wode_check.png
  82. BIN
      static/mine/wodefabu.png
  83. BIN
      static/mine/wxz.png
  84. BIN
      static/mine/zhaoche_check.png
  85. BIN
      static/xiangpica@2x.png
  86. BIN
      static/xj.png

+ 3 - 3
App.vue

@@ -95,7 +95,7 @@
 						radius:10,
 					    // cancelText: '否',
 						showCancel:false,
-						okColor:'#2772FB',
+						okColor:'#F5BA3C',
 						okButtonColor:'#fff'
 					};
 					const native = uni.requireNativePlugin('AJ-Alert');
@@ -116,7 +116,7 @@
 					//     content: '这是一个模态弹窗',
 					// 	showCancel:false,
 					// 	confirmText:'退出app',
-					// 	// confirmColor:'#317AFE',
+					// 	// confirmColor:'#F5BA3C',
 					// 	confirmColor:'#F54E40',
 					//     success: function (res) {
 					//         if (res.confirm) {
@@ -190,7 +190,7 @@
 									radius:10,
 								    // cancelText: '否',
 									showCancel:false,
-									okColor:'#2772FB',
+									okColor:'#F5BA3C',
 									okButtonColor:'#ffffff'
 								};
 								const native = uni.requireNativePlugin('AJ-Alert');

+ 1 - 1
components/bert-suggest/suggest.vue

@@ -102,7 +102,7 @@
 	}
 
 	.submit-btn {
-		background-color: #2772FB;
+		background-color: #F5BA3C;
 		color: #fff;
 		border-radius: 30px;
 		margin: 20rpx;

+ 819 - 0
components/mx-datepicker/mx-datepicker.vue

@@ -0,0 +1,819 @@
+<template>
+	<view v-if="isShow" class="picker">
+		<!-- 日期选择器 -->
+		<view v-if="type!='time'" class="picker-modal">
+			<view class="picker-modal-header">
+				<view class="picker-icon picker-icon-zuozuo" :hover-stay-time="100" hover-class="picker-icon-active" @click="onSetYear('-1')"></view>
+				<view class="picker-icon picker-icon-zuo" :hover-stay-time="100" hover-class="picker-icon-active" @click="onSetMonth('-1')"></view>
+				<text class="picker-modal-header-title">{{title}}</text>
+				<view class="picker-icon picker-icon-you" :hover-stay-time="100" hover-class="picker-icon-active" @click="onSetMonth('+1')"></view>
+				<view class="picker-icon picker-icon-youyou" :hover-stay-time="100" hover-class="picker-icon-active" @click="onSetYear('+1')"></view>
+			</view>
+			<swiper class="picker-modal-body" :circular="true" :duration="200" :skip-hidden-item-layout="true" :current="calendarIndex" @change="onSwiperChange">
+				<swiper-item class="picker-calendar" v-for="(calendar,calendarIndex2) in calendars" :key="calendarIndex2">
+					<view class="picker-calendar-view" v-for="(week,index) in weeks" :key="index - 7">
+						<view class="picker-calendar-view-item">{{week}}</view>
+					</view>
+					<view class="picker-calendar-view" v-for="(date,dateIndex) in calendar" :key="dateIndex" @click="onSelectDate(date)">
+						<!-- 背景样式 -->
+						<view v-show="date.bgStyle.type" :class="'picker-calendar-view-'+date.bgStyle.type" :style="{background: date.bgStyle.background}"></view>
+						<!-- 正常和选中样式 -->
+						<view class="picker-calendar-view-item" :style="{opacity: date.statusStyle.opacity, color: date.statusStyle.color, background: date.statusStyle.background}">
+							<text>{{date.title}}</text>
+						</view>
+						<!-- 小圆点样式 -->
+						<view class="picker-calendar-view-dot" :style="{opacity: date.dotStyle.opacity, background: date.dotStyle.background}"></view>
+						<!-- 信息样式 -->
+						<view v-show="date.tips" class="picker-calendar-view-tips">{{date.tips}}</view>
+					</view>
+				</swiper-item>
+			</swiper>
+			<view class="picker-modal-footer">
+				<view class="picker-modal-footer-info">
+					<block v-if="isMultiSelect">
+						<view class="picker-display">
+							<text>{{beginText}}日期</text>
+							<text class="picker-display-text">{{BeginTitle}}</text>
+							<view v-if="isContainTime" class="picker-display-link" :hover-stay-time="100" hover-class="picker-display-link-active"
+							 :style="{color}" @click="onShowTimePicker('begin')">{{BeginTimeTitle}}</view>
+						</view>
+						<view class="picker-display">
+							<text>{{endText}}日期</text>
+							<text class="picker-display-text">{{EndTitle}}</text>
+							<view v-if="isContainTime" class="picker-display-link" :hover-stay-time="100" hover-class="picker-display-link-active"
+							 :style="{color}" @click="onShowTimePicker('end')">{{EndTimeTitle}}</view>
+						</view>
+					</block>
+					<block v-else>
+						<view class="picker-display">
+							<text>当前选择</text>
+							<text class="picker-display-text">{{BeginTitle}}</text>
+							<view v-if="isContainTime" class="picker-display-link" :hover-stay-time="100" hover-class="picker-display-link-active"
+							 :style="{color}" @click="onShowTimePicker('begin')">{{BeginTimeTitle}}</view>
+						</view>
+					</block>
+				</view>
+				<view class="picker-modal-footer-btn">
+					<view class="picker-btn" :hover-stay-time="100" hover-class="picker-btn-active" @click="onCancel">取消</view>
+					<view class="picker-btn" :style="{color}" :hover-stay-time="100" hover-class="picker-btn-active" @click="onConfirm">确定</view>
+				</view>
+			</view>
+		</view>
+		<!-- 时间选择器 -->
+		<view v-if="showTimePicker" class="picker">
+			<view class="picker-modal picker-time">
+				<view class="picker-modal-header">
+					<text class="picker-modal-header-title">选择日期</text>
+				</view>
+				<picker-view class="picker-modal-time" indicator-class="picker-modal-time-item" :value="timeValue" @change="onTimeChange">
+					<picker-view-column>
+						<view v-for="(v,i) in 24" :key="i">{{i<10?'0'+i:i}}时</view>
+					</picker-view-column>
+					<picker-view-column>
+						<view v-for="(v,i) in 60" :key="i">{{i<10?'0'+i:i}}分</view>
+					</picker-view-column>
+					<picker-view-column v-if="showSeconds">
+						<view v-for="(v,i) in 60" :key="i">{{i<10?'0'+i:i}}秒</view>
+					</picker-view-column>
+				</picker-view>
+				<view class="picker-modal-footer">
+					<view class="picker-modal-footer-info">
+						<view class="picker-display">
+							<text>当前选择</text>
+							<text class="picker-display-text">{{PickerTimeTitle}}</text>
+						</view>
+					</view>
+					<view class="picker-modal-footer-btn">
+						<view class="picker-btn" :hover-stay-time="100" hover-class="picker-btn-active" @click="onCancelTime">取消</view>
+						<view class="picker-btn" :style="{color}" :hover-stay-time="100" hover-class="picker-btn-active" @click="onConfirmTime">确定</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	/**
+	 * 工具函数库
+	 */
+	const DateTools = {
+		/**
+		 * 获取公历节日
+		 * @param date Date对象
+		 */
+		getHoliday(date) {
+			let holidays = {
+				'0101': '元旦',
+				'0214': '情人',
+				'0308': '妇女',
+				'0312': '植树',
+				'0401': '愚人',
+				'0501': '劳动',
+				'0504': '青年',
+				'0601': '儿童',
+				'0701': '建党',
+				'0801': '建军',
+				'0903': '抗日',
+				'0910': '教师',
+				'1001': '国庆',
+				'1031': '万圣',
+				'1224': '平安',
+				'1225': '圣诞'
+			};
+			let value = this.format(date, 'mmdd');
+			if (holidays[value]) return holidays[value];
+			return false;
+		},
+		/**
+		 * 解析标准日期格式
+		 * @param s 日期字符串
+		 * @return 返回Date对象
+		 */
+		parse: s => new Date(s.replace(/(年|月|-)/g, '/').replace(/(日)/g, '')),
+		/**
+		 * 比较日期是否为同一天
+		 * @param a Date对象
+		 * @param b Date对象
+		 * @return Boolean
+		 */
+		isSameDay: (a, b) => a.getMonth() == b.getMonth() && a.getFullYear() == b.getFullYear() && a.getDate() == b.getDate(),
+		/**
+		 * 格式化Date对象
+		 * @param d 日期对象
+		 * @param f 格式字符串
+		 * @return 返回格式化后的字符串
+		 */
+		format(d, f) {
+			var o = {
+				"m+": d.getMonth() + 1,
+				"d+": d.getDate(),
+				"h+": d.getHours(),
+				"i+": d.getMinutes(),
+				"s+": d.getSeconds(),
+				"q+": Math.floor((d.getMonth() + 3) / 3),
+			};
+			if (/(y+)/.test(f))
+				f = f.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length));
+			for (var k in o)
+				if (new RegExp("(" + k + ")").test(f))
+					f = f.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
+			return f;
+		},
+		/**
+		 * 用于format格式化后的反解析
+		 * @param s 日期字符串
+		 * @param f 格式字符串
+		 * @return 返回Date对象
+		 */
+		inverse(s, f) {
+			var o = {
+				"y": '',
+				"m": '',
+				"d": '',
+				"h": '',
+				"i": '',
+				"s": '',
+			};
+			let d = new Date();
+			if (s.length != f.length) return d;
+			for (let i in f)
+				if (o[f[i]] != undefined) o[f[i]] += s[i];
+			if (o.y) d.setFullYear(o.y.length < 4 ? (d.getFullYear() + '').substr(0, 4 - o.y.length) + o.y : o.y);
+			o.m && d.setMonth(o.m - 1, 1);
+			o.d && d.setDate(o.d - 0);
+			o.h && d.setHours(o.h - 0);
+			o.i && d.setMinutes(o.i - 0);
+			o.s && d.setSeconds(o.s - 0);
+			return d;
+		},
+		/**
+		 * 获取日历数组(42天)
+		 * @param date 日期对象或日期字符串
+		 * @param proc 处理日历(和forEach类似),传递一个数组中的item
+		 * @return Array
+		 */
+		getCalendar(date, proc) {
+			let it = new Date(date),
+				calendars = [];
+			it.setDate(1);
+			it.setDate(it.getDate() - ((it.getDay() == 0 ? 7 : it.getDay()) - 1)); //偏移量
+			for (let i = 0; i < 42; i++) {
+				let tmp = {
+					dateObj: new Date(it),
+					title: it.getDate(),
+					isOtherMonth: it.getMonth() < date.getMonth() || it.getMonth() > date.getMonth()
+				};
+				calendars.push(Object.assign(tmp, proc ? proc(tmp) : {}));
+				it.setDate(it.getDate() + 1);
+			}
+			return calendars;
+		},
+		/**
+		 * 获取日期到指定的月份1号(不改变原来的date对象)
+		 * @param d Date对象
+		 * @param v 指定的月份
+		 * @return Date对象
+		 */
+		getDateToMonth(d, v) {
+			let n = new Date(d);
+			n.setMonth(v, 1);
+			return n;
+		},
+		/**
+		 * 把时间数组转为时间字符串
+		 * @param t Array[时,分,秒]
+		 * @param showSecinds 是否显示秒
+		 * @return 字符串 时:分[:秒]
+		 */
+		formatTimeArray(t, s) {
+			let r = [...t];
+			if (!s) r.length = 2;
+			r.forEach((v, k) => r[k] = ('0' + v).slice(-2));
+			return r.join(':');
+		}
+	};
+
+	export default {
+		props: {
+			//颜色
+			color: {
+				type: String,
+				default: '#409eff'
+			},
+			//是否显示秒 针对type为datetime或time时生效
+			showSeconds: {
+				type: Boolean,
+				default: false
+			},
+			//初始的值
+			value: [String, Array],
+			//类型date time datetime range rangetime
+			type: {
+				type: String,
+				default: 'range'
+			},
+			//是否显示
+			show: {
+				type: Boolean,
+				default: false
+			},
+			//初始格式
+			format: {
+				type: String,
+				default: ''
+			},
+			//显示公历节日
+			showHoliday: {
+				type: Boolean,
+				default: true
+			},
+			//显示提示
+			showTips: {
+				type: Boolean,
+				default: false
+			},
+			//开始文案 针对type为范围选择时生效
+			beginText: {
+				type: String,
+				default: '开始'
+			},
+			//结束文案 针对type为范围选择时生效
+			endText: {
+				type: String,
+				default: '结束'
+			}
+		},
+		data() {
+			return {
+				isShow: false, //是否显示
+				isMultiSelect: false, //是否为多选
+				isContainTime: false, //是否包含时间
+				date: {}, //当前日期对象
+				weeks: ["一", "二", "三", "四", "五", "六", "日"],
+				title: '初始化', //标题
+				calendars: [[],[],[]], //日历数组
+				calendarIndex: 1, //当前日历索引
+				checkeds: [], //选中的日期对象集合
+				showTimePicker: false, //是否显示时间选择器
+				timeValue: [0, 0, 0], //时间选择器的值
+				timeType: 'begin', //当前时间选择的类型
+				beginTime: [0, 0, 0], //当前所选的开始时间值
+				endTime: [0, 0, 0], //当前所选的结束时间值
+			};
+		},
+		methods: {
+			//设置值
+			setValue(value) {
+				this.date = new Date();
+				this.checkeds = [];
+				this.isMultiSelect = this.type.indexOf('range') >= 0;
+				this.isContainTime = this.type.indexOf('time') >= 0;
+				//将字符串解析为Date对象
+				let parseDateStr = (str) => (this.format ? DateTools.inverse(str, this.format) : DateTools.parse(str));
+				if (value) {
+					if (this.isMultiSelect) {
+						Array.isArray(value) && value.forEach((dateStr, index) => {
+							let date = parseDateStr(dateStr);
+							let time = [date.getHours(), date.getMinutes(), date.getSeconds()];
+							if (index == 0) this.beginTime = time;
+							else this.endTime = time;
+							this.checkeds.push(date);
+						});
+					} else {
+						if (this.type == 'time') {
+							let date = parseDateStr('2019/1/1 ' + value);
+							this.beginTime = [date.getHours(), date.getMinutes(), date.getSeconds()];
+							this.onShowTimePicker('begin');
+						} else {
+							this.checkeds.push(parseDateStr(value));
+							if (this.isContainTime) this.beginTime = [
+								this.checkeds[0].getHours(),
+								this.checkeds[0].getMinutes(),
+								this.checkeds[0].getSeconds()
+							];
+						}
+					}
+					if (this.checkeds.length) this.date = new Date(this.checkeds[0]);
+				} else {
+					if (this.isContainTime) {
+						this.beginTime = [this.date.getHours(), this.date.getMinutes(), this.date.getSeconds()];
+						if (this.isMultiSelect) this.endTime = [...this.beginTime];
+					}
+					this.checkeds.push(new Date(this.date));
+				}
+				if (this.type != 'time') this.refreshCalendars(true);
+				else this.onShowTimePicker('begin');
+			},
+			//改变年份
+			onSetYear(value) {
+				this.date.setFullYear(this.date.getFullYear() + parseInt(value));
+				this.refreshCalendars(true);
+			},
+			//改变月份
+			onSetMonth(value) {
+				this.date.setMonth(this.date.getMonth() + parseInt(value));
+				this.refreshCalendars(true);
+			},
+			//时间选择变更
+			onTimeChange(e) {
+				this.timeValue = e.detail.value;
+			},
+			//设置时间选择器的显示状态
+			onShowTimePicker(type) {
+				this.showTimePicker = true;
+				this.timeType = type;
+				this.timeValue = type == 'begin' ? [...this.beginTime] : [...this.endTime];
+			},
+			//处理日历
+			procCalendar(item) {
+				//定义初始样式
+				item.statusStyle = {
+					opacity: 1,
+					color: item.isOtherMonth ? '#ddd' : '#000',
+					background: 'transparent'
+				};
+				item.bgStyle = {
+					type: '',
+					background: 'transparent'
+				};
+				item.dotStyle = {
+					opacity: 1,
+					background: 'transparent'
+				};
+				item.tips = "";
+				//标记今天的日期
+				if (DateTools.isSameDay(new Date(), item.dateObj)) {
+					item.statusStyle.color = this.color;
+					if (item.isOtherMonth) item.statusStyle.opacity = 0.3;
+				}
+				//标记选中项
+				this.checkeds.forEach(date => {
+					if (DateTools.isSameDay(date, item.dateObj)) {
+						item.statusStyle.background = this.color;
+						item.statusStyle.color = '#fff';
+						item.statusStyle.opacity = 1;
+						if (this.isMultiSelect && this.showTips) item.tips = this.beginText;
+					}
+				});
+				//节假日或今日的日期标点
+				if (item.statusStyle.background != this.color) {
+					let holiday = this.showHoliday ? DateTools.getHoliday(item.dateObj) : false;
+					if (holiday || DateTools.isSameDay(new Date(), item.dateObj)) {
+						item.title = holiday || item.title;
+						item.dotStyle.background = this.color;
+						if (item.isOtherMonth) item.dotStyle.opacity = 0.2;
+					}
+				} else {
+					item.title = item.dateObj.getDate();
+				}
+				//有两个日期
+				if (this.checkeds.length == 2) {
+					if (DateTools.isSameDay(this.checkeds[0], item.dateObj)) { //开始日期
+						item.bgStyle.type = 'bgbegin';
+					}
+					if (DateTools.isSameDay(this.checkeds[1], item.dateObj)) { //结束日期
+						if (this.isMultiSelect && this.showTips) item.tips = item.bgStyle.type ? this.beginText + ' / ' + this.endText : this.endText;
+						if (!item.bgStyle.type) { //开始日期不等于结束日期
+							item.bgStyle.type = 'bgend';
+						} else {
+							item.bgStyle.type = '';
+						}
+					}
+					if (!item.bgStyle.type && (+item.dateObj > +this.checkeds[0] && +item.dateObj < +this.checkeds[1])) { //中间的日期
+						item.bgStyle.type = 'bg';
+						item.statusStyle.color = this.color;
+					}
+					if (item.bgStyle.type) {
+						item.bgStyle.background = this.color;
+						item.dotStyle.opacity = 1;
+						item.statusStyle.opacity = 1;
+					}
+				}
+			},
+			//刷新日历
+			refreshCalendars(refresh = false) {
+				let date = new Date(this.date);
+				let before = DateTools.getDateToMonth(date, date.getMonth() - 1);
+				let after = DateTools.getDateToMonth(date, date.getMonth() + 1);
+				if (this.calendarIndex == 0) {
+					if(refresh) this.calendars.splice(0, 1, DateTools.getCalendar(date, this.procCalendar));
+					this.calendars.splice(1, 1, DateTools.getCalendar(after, this.procCalendar));
+					this.calendars.splice(2, 1, DateTools.getCalendar(before, this.procCalendar));
+				} else if (this.calendarIndex == 1) {
+					this.calendars.splice(0, 1, DateTools.getCalendar(before, this.procCalendar));
+					if(refresh) this.calendars.splice(1, 1, DateTools.getCalendar(date, this.procCalendar));
+					this.calendars.splice(2, 1, DateTools.getCalendar(after, this.procCalendar));
+				} else if (this.calendarIndex == 2) {
+					this.calendars.splice(0, 1, DateTools.getCalendar(after, this.procCalendar));
+					this.calendars.splice(1, 1, DateTools.getCalendar(before, this.procCalendar));
+					if(refresh) this.calendars.splice(2, 1, DateTools.getCalendar(date, this.procCalendar));
+				}
+				this.title = DateTools.format(this.date, 'yyyy年mm月');
+			},
+			//滑块切换
+			onSwiperChange(e) {
+				this.calendarIndex = e.detail.current;
+				let calendar = this.calendars[this.calendarIndex];
+				this.date = new Date(calendar[22].dateObj); //取中间一天,保证是当前的月份
+				this.refreshCalendars();
+			},
+			//选中日期
+			onSelectDate(date) {
+				if (~this.type.indexOf('range') && this.checkeds.length == 2) this.checkeds = [];
+				else if (!(~this.type.indexOf('range')) && this.checkeds.length) this.checkeds = [];
+				this.checkeds.push(new Date(date.dateObj));
+				this.checkeds.sort((a, b) => a - b); //从小到大排序
+				this.calendars.forEach(calendar => {
+					calendar.forEach(this.procCalendar); //重新处理
+				});
+			},
+			//时间选择取消
+			onCancelTime() {
+				this.showTimePicker = false;
+				this.type == 'time' && this.onCancel();
+			},
+			//时间选择确定
+			onConfirmTime() {
+				if (this.timeType == 'begin') this.beginTime = this.timeValue;
+				else this.endTime = this.timeValue;
+				this.showTimePicker = false;
+				this.type == 'time' && this.onConfirm();
+			},
+			//取消
+			onCancel() {
+				this.$emit('cancel', false);
+			},
+			//确定
+			onConfirm() {
+				let result = {
+					value: null,
+					date: null
+				};
+				//定义默认格式
+				let defaultFormat = {
+					'date': 'yyyy/mm/dd',
+					'time': 'hh:ii' + (this.showSeconds ? ':ss' : ''),
+					'datetime': ''
+				};
+				defaultFormat['datetime'] = defaultFormat.date + ' ' + defaultFormat.time;
+				let fillTime = (date, timeArr) => {
+					date.setHours(timeArr[0], timeArr[1]);
+					if (this.showSeconds) date.setSeconds(timeArr[2]);
+				};
+				if (this.type == 'time') {
+					let date = new Date();
+					fillTime(date, this.beginTime);
+					result.value = DateTools.format(date, this.format ? this.format : defaultFormat.time);
+					result.date = date;
+				} else {
+					if (this.isMultiSelect) {
+						let values = [],
+							dates = [];
+						if (this.checkeds.length < 2) return uni.showToast({
+							icon: 'none',
+							title: '请选择两个日期'
+						});
+						this.checkeds.forEach((date, index) => {
+							let newDate = new Date(date);
+							if (this.isContainTime) {
+								let time = [this.beginTime, this.endTime];
+								fillTime(newDate, time[index]);
+							}
+							values.push(DateTools.format(newDate, this.format ? this.format : defaultFormat[this.isContainTime ?
+								'datetime' : 'date']));
+							dates.push(newDate);
+						});
+						result.value = values;
+						result.date = dates;
+					} else {
+						let newDate = new Date(this.checkeds[0]);
+						if (this.isContainTime) {
+							newDate.setHours(this.beginTime[0], this.beginTime[1]);
+							if (this.showSeconds) newDate.setSeconds(this.beginTime[2]);
+						}
+						result.value = DateTools.format(newDate, this.format ? this.format : defaultFormat[this.isContainTime ?
+							'datetime' : 'date']);
+						result.date = newDate;
+					}
+				}
+				this.$emit('confirm', result);
+			}
+		},
+		computed: {
+			BeginTitle() {
+				let value = '未选择';
+				if (this.checkeds.length) value = DateTools.format(this.checkeds[0], 'yy/mm/dd');
+				return value;
+			},
+			EndTitle() {
+				let value = '未选择';
+				if (this.checkeds.length == 2) value = DateTools.format(this.checkeds[1], 'yy/mm/dd');
+				return value;
+			},
+			PickerTimeTitle() {
+				return DateTools.formatTimeArray(this.timeValue, this.showSeconds);
+			},
+			BeginTimeTitle() {
+				return this.BeginTitle != '未选择' ? DateTools.formatTimeArray(this.beginTime, this.showSeconds) : '';
+			},
+			EndTimeTitle() {
+				return this.EndTitle != '未选择' ? DateTools.formatTimeArray(this.endTime, this.showSeconds) : '';
+			}
+		},
+		watch: {
+			show(newValue, oldValue) {
+				newValue && this.setValue(this.value);
+				this.isShow = newValue;
+			},
+			value(newValue, oldValue) {
+				setTimeout(()=>{
+					this.setValue(newValue);
+				}, 0);
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	$z-index: 100;
+	$cell-spacing: 20upx;
+	$calendar-size: 630upx;
+	$calendar-item-size: 90upx;
+
+	.picker {
+		position: fixed;
+		z-index: $z-index;
+		background: rgba(255, 255, 255, 0);
+		left: 0;
+		top: 0;
+		width: 100%;
+		height: 100%;
+		font-size: 28upx;
+
+		&-btn {
+			padding: $cell-spacing*0.5 $cell-spacing;
+			border-radius: 12upx;
+			color: #666;
+
+			&-active {
+				background: rgba(0, 0, 0, .1);
+			}
+		}
+
+		&-display {
+			color: #666;
+
+			&-text {
+				color: #000;
+				margin: 0 $cell-spacing*0.5;
+			}
+
+			&-link {
+				display: inline-block;
+
+				&-active {
+					background: rgba(0, 0, 0, .1);
+				}
+			}
+		}
+
+		&-time {
+			width: $calendar-size - 80upx !important;
+			left: ((750upx - $calendar-size) / 2 + 40upx) !important;
+		}
+
+		&-modal {
+			background: #fff;
+			position: absolute;
+			top: 50%;
+			left: (750upx - $calendar-size) / 2;
+			width: $calendar-size;
+			transform: translateY(-50%);
+			box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.1);
+			border-radius: 12upx;
+
+			&-header {
+				text-align: center;
+				line-height: 80upx;
+				font-size: 32upx;
+
+				&-title {
+					display: inline-block;
+					width: 40%;
+				}
+
+				.picker-icon {
+					display: inline-block;
+					line-height: 50upx;
+					width: 50upx;
+					height: 50upx;
+					border-radius: 50upx;
+					text-align: center;
+					margin: 10upx;
+					background: #fff;
+					font-size: 36upx;
+
+					&-active {
+						background: rgba(0, 0, 0, .1);
+					}
+				}
+			}
+
+			&-body {
+				width: $calendar-size !important;
+				height: $calendar-size !important;
+				position: relative;
+			}
+
+			&-time {
+				width: 100%;
+				height: 180upx;
+				text-align: center;
+				line-height: 60upx;
+			}
+
+			&-footer {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				padding: $cell-spacing;
+
+				&-info {
+					flex-grow: 1;
+				}
+
+				&-btn {
+					flex-shrink: 0;
+					display: flex;
+				}
+			}
+		}
+
+		&-calendar {
+			position: absolute;
+			left: 0;
+			top: 0;
+			width: 100%;
+			height: 100%;
+			display: flex;
+			align-items: center;
+			flex-wrap: wrap;
+
+			&-view {
+				position: relative;
+				width: $calendar-item-size;
+				height: $calendar-item-size;
+				text-align: center;
+
+				&-bgbegin,
+				&-bg,
+				&-bgend,
+				&-item,
+				&-dot,
+				&-tips {
+					position: absolute;
+					transition: .2s;
+				}
+
+				&-bgbegin,
+				&-bg,
+				&-bgend {
+					opacity: .15;
+					height: 80%;
+				}
+
+				&-bg {
+					left: 0;
+					top: 10%;
+					width: 100%;
+				}
+
+				&-bgbegin {
+					border-radius: $calendar-item-size 0 0 $calendar-item-size;
+					top: 10%;
+					left: 10%;
+					width: 90%;
+				}
+
+				&-bgend {
+					border-radius: 0 $calendar-item-size $calendar-item-size 0;
+					top: 10%;
+					left: 0%;
+					width: 90%;
+				}
+
+				&-item {
+					left: 5%;
+					top: 5%;
+					width: 90%;
+					height: 90%;
+					border-radius: $calendar-item-size;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+				}
+
+				&-dot {
+					right: 10%;
+					top: 10%;
+					width: 12upx;
+					height: 12upx;
+					border-radius: 12upx;
+				}
+
+				&-tips {
+					bottom: 100%;
+					left: 50%;
+					transform: translateX(-50%);
+					background: #4E4B46;
+					color: #fff;
+					border-radius: 12upx;
+					padding: 10upx 20upx;
+					font-size: 24upx;
+					width: max-content;
+					margin-bottom: 5px;
+					pointer-events: none;
+
+					&:after {
+						content: "";
+						position: absolute;
+						top: 100%;
+						left: 50%;
+						transform: translateX(-50%);
+						width: 0;
+						height: 0;
+						border-style: solid;
+						border-width: 5px 5px 0 5px;
+						border-color: #4E4B46 transparent transparent transparent;
+					}
+				}
+			}
+		}
+	}
+
+	@font-face {
+		font-family: "mxdatepickericon";
+		src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAMYAAsAAAAACBgAAALMAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDIgqDRIJiATYCJAMUCwwABCAFhG0HSRvfBsg+QCa3noNAyAQ9w6GDvbwpNp2vloCyn8bD/x+y+/5qDhtj+T4eRVEcbsCoKMFASzCgLdDkmqYDwgxkWQ6YH5L/YnppOlLEjlnter43YRjU7M6vJ3iGADVAgJn5kqjv/wEii23T86UsAQT+04fV+o97VTMx4PPZt4DlorLXwIQiGMA5uhaVrBWqGHfQXcTEiE+PE+g2SUlxWlLVBHwUYFMgrgwSB3wstTKSGzqF1nOyiGeeOtNjV4An/vvxR58PSc3AzrMViyDvPo/7dVEUzn5GROfIWAcU4rLXfMFdhte56y4We9gGNEVIezkBOOaQXUrbTf/hJVkhGpDdCw7dSOEzByMEn3kIic98hMxnAfeFPKWCbjRcA148/HxhCEkaA94eGWFaGolsblpaWz8/Po2WVuNHh1fmBpZHIpqal9fOjizhTteY+RZ9rv02I/pq0W6QVH3pSncBz3m55r9ZIPycHfmenvxe4uyutIgfT5u4bgkDusl9gcF0rnfnz+b2NpSaQWBFeu8GIL1xQj5AH/6FAsEr/50F28e/gA9ny6KjLrxIp0TE+UucmQOl5AFNLXkzZufWamWHYEI39PEP2If97CMdm51N6DSmIekwAVmneXTBr0PVYx+aTgfQbU3p+R4jKHdRurBq0oEw6AKSfm+QDbpGF/w3VOP+oBnMHbqdx409FjP4RRHHkAj5IWgQiBUjHfMTuQ1Icpg5avI4sQVRu8EHdWptM1aKrIjuscfeL+kZwxBTYoElztOQ2UygjRIjEphaZsyWodHgvm9SC8QC/JygEA6DiCDeEMhAQFhhOpvxa/18A0TiYMahIy0L2hYIZWeYH9JR085Al4qts1re5St2/SR6DINBGEVYQCWOETHDMAHZ+pcZIQJGTV4RtMmg8UbhuWL1+VLLA2RFHYC71kiRo0SNpjwQh8pj2EFU3oTNmS1WqgIA') format('woff2');
+	}
+
+	.picker-icon {
+		font-family: "mxdatepickericon" !important;
+	}
+
+	.picker-icon-you:before {
+		content: "\e63e";
+	}
+
+	.picker-icon-zuo:before {
+		content: "\e640";
+	}
+
+	.picker-icon-zuozuo:before {
+		content: "\e641";
+	}
+
+	.picker-icon-youyou:before {
+		content: "\e642";
+	}
+</style>

+ 1 - 1
config/index.js

@@ -3,7 +3,7 @@ const dev = {
 	// baseUrlNew: 'https://apitest.changyuntong56.com',
 	// baseUrlNew: 'https://api.changyuntong56.com',
 	// baseUrlNew: 'https://apitest.changyuntong56.com',
-	// baseUrlNew: 'http://192.168.110.9:8099',
+	// baseUrlNew: 'http://192.168.110.67:8099',
 	// baseUrlNew: 'https://apitest.eliangeyun.com',
 	baseUrlNew: 'http://192.168.110.138:8999/',
 	h5Appid: 'wxb66b599f7f61b46f',

+ 1 - 1
demo.vue

@@ -82,7 +82,7 @@
 	
 				// uni.$u.toast('倒计时结束后再发送');
 				// 9、
-				// <u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :closeOnClickOverlay='true' :showCancelButton='true' confirmColor='#2772FB'  @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal>
+				// <u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :closeOnClickOverlay='true' :showCancelButton='true' confirmColor='#F5BA3C'  @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal>
 				// confirmClick(){
 				// 	this.isShowAlert = fasle
 				// },

+ 1 - 1
hybrid/html/video.html

@@ -40,7 +40,7 @@
 			}
 
 			.verify-btn {
-				background: #2772FB;
+				background: #F5BA3C;
 				font-size: 20px;
 				padding: 10px 0;
 				width: 70%;

+ 41 - 6
pages.json

@@ -2,7 +2,7 @@
 	"tabBar": {
 		"custom": false,
 		"color": "#656765",
-		"selectedColor": "#2772FB",
+		"selectedColor": "#F5BA3C",
 		"borderStyle": "white",
 		"backgroundColor": "#ffffff",
 		"list": [{
@@ -12,12 +12,18 @@
 				"text": "订单"
 			},
 			{
-				"pagePath": "pages/carSource/index",
+				"pagePath": "pages/cargoTerminal/cargoTerminal",
 				"iconPath": "static/mine/zhaoche.png",
 				"selectedIconPath": "static/mine/zhaoche_check.png",
-				"text": "车源"
+				"text": "货站"
 			},
 			// {
+			// 	"pagePath": "pages/carSource/index",
+			// 	"iconPath": "static/mine/zhaoche.png",
+			// 	"selectedIconPath": "static/mine/zhaoche_check.png",
+			// 	"text": "车源"
+			// },
+			// {
 			// 	"pagePath": "pages/goodSource/index",
 
 			// 	"iconPath": "static/mine/zhaoche.png",
@@ -148,7 +154,7 @@
 					},
 					"pullToRefresh": {
 						"support": true,
-						"color": "#2772FB", //小圈圈的颜色
+						"color": "#F5BA3C", //小圈圈的颜色
 						"style": "circle" //小圈圈的样式
 					}
 				}
@@ -503,7 +509,7 @@
 					},
 					"pullToRefresh": {
 						"support": true,
-						"color": "#2772FB", //小圈圈的颜色
+						"color": "#F5BA3C", //小圈圈的颜色
 						"style": "circle" //小圈圈的样式
 					}
 				}
@@ -584,7 +590,36 @@
 			}
 
 		}
-	],
+	    ,{
+            "path" : "pages/cargoTerminal/cargoTerminal",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "货站",
+                "enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#F5BA3C",
+				"navigationBarTextStyle": "white"
+            }
+            
+        }
+        ,{
+            "path" : "pages/cargoTerminal/publishSource",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "货站货源",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/cargoTerminal/cargoTerminalDetail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "发货详情",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+    ],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "uni-app",

+ 5 - 5
pages/carSource/driverSee.vue

@@ -12,7 +12,7 @@
 				<view class="right flex s-row align-center phone">
 					<view @click="toPhone" class="bgc flex flex-space-between flex-center">
 						<image class='phone-icon' src="@/static/images/carSource/dianhua.png" mode="" ></image>
-						<!-- <u-icon class="phone" name="phone-fill" color="#2772FB" size="20" @click="toPhone"></u-icon> -->
+						<!-- <u-icon class="phone" name="phone-fill" color="#F5BA3C" size="20" @click="toPhone"></u-icon> -->
 						<view class="hz-name">联系司机</view>
 					</view>
 				</view>
@@ -386,7 +386,7 @@
 
 		.hz-name {
 			font-size: 26rpx;
-			color: #2772FB;
+			color: #F5BA3C;
 		}
 
 	}
@@ -405,7 +405,7 @@
 		}
 
 		.pf-number {
-			color: #2772FB;
+			color: #F5BA3C;
 		}
 	}
 
@@ -426,7 +426,7 @@
 		bottom: -10rpx;
 		width: 40rpx;
 		height: 6rpx;
-		background: #2772FB;
+		background: #F5BA3C;
 		left: 0;
 		right: 0;
 		margin: auto;
@@ -482,7 +482,7 @@
 	}
 
 	.btn-active {
-		background-color: #2772FB;
+		background-color: #F5BA3C;
 		color: white;
 		border-radius: 50rpx;
 		display: flex;

+ 5 - 5
pages/carSource/index.vue

@@ -548,7 +548,7 @@
 				text-align: center;
 				color: #FFFFFF;
 				line-height: 54rpx;
-				background: #2772FB;
+				background: #F5BA3C;
 			}
 
 			.driver_name {
@@ -579,7 +579,7 @@
 			}
 
 			.spot1 {
-				background: #2772FB;
+				background: #F5BA3C;
 			}
 
 			.spot2 {
@@ -614,7 +614,7 @@
 				}
 
 				.sign1 {
-					background: #2772FB;
+					background: #F5BA3C;
 				}
 
 				.sign2 {
@@ -661,7 +661,7 @@
 
 				.fleet_invite {
 					text-align: center;
-					background-color: #2772FB;
+					background-color: #F5BA3C;
 					width: 128rpx;
 					height: 66rpx;
 					line-height: 66rpx;
@@ -685,7 +685,7 @@
 						position: absolute;
 						right: 0rpx;
 						bottom: 0rpx;
-						color: #2772fb;
+						color: #F5BA3C;
 					}
 				}
 

+ 417 - 0
pages/cargoTerminal/cargoTerminal.vue

@@ -0,0 +1,417 @@
+<template>
+	<view class="content">
+		<view class="img">
+			<u-image width="100%" height="300rpx" src="@/static/banner.jpg"></u-image>
+		</view>
+		<view class="tab-view">
+			<u-tabs :list="tabList" @click="clickTab" :lineColor="scrollTop>1200?'white':'#000000'" :current='tabIndex'
+				:inactiveStyle="{color: scrollTop>1200?'white':'',}" :activeStyle="{
+							color: scrollTop>1200?'':'#000000',
+							fontWeight: 'bold',
+							transform: 'scale(1.25)',
+						}" :class="scrollTop>1200?'fixed':''"></u-tabs>
+		</view>
+		<mescroll-body ref="mescrollRef" :up="upOption" @init="mescrollInit" @down="downCallback" @up="upCallback"
+			class="mescroll">
+			<view class="list-content" @click="toDetail(item.id)" v-for="item in goodsList">
+				<view class="list-item">
+					<view class="xj"  v-if="item.status=='已下架'">
+						已下架
+					</view>
+					<view class="row1 row">
+						<view class="left">
+							{{item.sendCity}} {{item.sendArea}}
+						</view>
+						<view class="">
+							→
+						</view>
+						<view class="right">
+							{{item.unloadCity}} {{item.unloadArea}}
+						</view>
+					</view>
+					<view class="row2 flex row">
+						<view class="left">
+							<text>¥{{item.freightPrice}}</text>
+							<text v-if="item.billingMethod==0">元/吨</text>
+							<text v-if="item.billingMethod==1">元/车</text>
+							<text v-if="item.billingMethod==2">元/方</text>
+						</view>
+						<view class="right">
+							{{item.updateDate}}
+						</view>
+					</view>
+					<view class="row3 row">
+						{{item.content}}
+						<!-- {{item.carModel?item.carModel.replace(',','/'):''}}、{{item.carLength?item.carLength.replace(',','/'):''}}米、10吨/10方、10车... -->
+					</view>
+					<view class="row4 flex row">
+						<view class="btn" @click.native.stop="shelvesBtnClick(1,item)" v-if="item.status=='已下架'">
+							上架
+						</view>
+						<view class="btn" @click.native.stop="shelvesBtnClick(2,item)" v-if="item.status=='已上架'">
+							下架
+						</view>
+						<view class="btn" @click.native.stop="copyToNewPage(item,1)" v-if="tabIndex==1">
+							复制
+						</view>
+						<view class="btn" @click.native.stop="often(item)" v-if="tabIndex==1&&item.oftenFlag!=1">
+							常发
+						</view>
+						<view class="btn often" v-if="tabIndex==1&&item.oftenFlag==1">
+							常发
+						</view>
+						<view class="btn" @click.native.stop="deleteTask(item)">
+							删除
+						</view>
+						<view class="btn" @click.native.stop="editTask(item)">
+							编辑
+						</view>
+						<view class="btn" @click.native.stop="removeOften(item)" v-if="tabIndex==2">
+							移除
+						</view>
+					</view>
+				</view>
+
+			</view>
+			<!-- <view class="" v-for="(item,index) in goodsList" :key="index">
+				{{item}}
+			</view> -->
+		</mescroll-body>
+		<u-button type="warning" :custom-style="customStyleButton" @click="toPublishSource">发货找车</u-button>
+		<u-toast ref="uToast"></u-toast>
+		<u-modal :show="show" :content='content' @confirm="confirmRemove" @cancel="show=false"
+			showCancelButton></u-modal>
+		<u-modal :show="show1" :content='content1' @confirm="confirmRemove1" @cancel="show1=false"
+			showCancelButton></u-modal>
+		<u-modal :show="show2" :content='content2' @confirm="confirmRemove2" @cancel="show2=false"
+			showCancelButton></u-modal>
+	</view>
+</template>
+
+<script>
+	var that;
+	import {
+		mapState
+	} from 'vuex';
+	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
+	export default {
+		mixins: [MescrollMixin],
+		data() {
+			return {
+				show: false,
+				content: '确认移出常发货源?',
+				show1: false,
+				content1: '确认下架该货源?',
+				show2: false,
+				content2: '确认删除该货源?',
+				upOption: {
+					page: {
+						size: 10 // 每页数据的数量,默认10
+					},
+					noMoreSize: 0, // 配置列表的总数量要大于等于5条才显示'-- END --'的提示
+					empty: {
+						tip: '暂无记录!'
+					},
+					toTop: {
+						src: ''
+					}
+				},
+				goodsList: [],
+				customStyleButton: {
+					position: "fixed",
+					bottom: "140rpx",
+					margin: "0 20rpx",
+					width: "calc(100vw - 40rpx)"
+				},
+				scrollTop: 0,
+				tabIndex: 0,
+
+				tabList: [{
+					name: '发布中'
+				}, {
+					name: '发布记录'
+				}, {
+					name: '常发货源'
+				}, ],
+			};
+		},
+		onLoad() {
+			that = this
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		methods: {
+			toDetail(id) {
+				uni.navigateTo({
+					url: "/pages/cargoTerminal/cargoTerminalDetail?id=" + id
+				})
+			},
+			toPublishSource() {
+				uni.navigateTo({
+					url: "/pages/cargoTerminal/publishSource"
+				})
+			},
+			copyToNewPage(val, type) {
+				uni.setStorageSync("selectGoodObj", val)
+				uni.navigateTo({
+					url: "/pages/cargoTerminal/publishSource?type=1"
+				})
+			},
+			deleteTask(val) {
+				this.selectObj = val
+				this.show2 = true
+			},
+			editTask(val) {
+				uni.setStorageSync("selectGoodObj", val)
+				uni.navigateTo({
+					url: "/pages/cargoTerminal/publishSource?type=2"
+				})
+			},
+			removeOften(val) {
+				this.selectObj = val
+				this.show = true
+			},
+			confirmRemove2() {
+				uni.showLoading({
+					title: "加载中"
+				})
+				this.$request.baseRequest('post', '/hyReleaseGoodsInfo/deleteTask', this.selectObj).then(res => {
+						uni.hideLoading()
+						uni.showToast({
+							title: "货源删除成功!",
+							icon:'none'
+						})
+						this.show2 = true
+						this.mescroll.resetUpScroll()
+					})
+					.catch(res => {});
+			},
+			confirmRemove1() {
+				uni.showLoading({
+					title: "加载中"
+				})
+				this.selectObj.status = '已下架'
+				this.$request.baseRequest('post', '/hyReleaseGoodsInfo/api/editTask', this.selectObj).then(res => {
+						uni.showToast({
+							title: "货源已下架",
+							icon:'none'
+						})
+						this.show1 = false
+						that.mescroll.resetUpScroll()
+					})
+					.catch(res => {
+						uni.hideLoading()
+						uni.$u.toast(res.message);
+					});
+			},
+			confirmRemove() {
+				uni.showLoading({
+					title: "加载中",
+					icon:'none'
+				})
+				this.selectObj.oftenFlag = 0
+				this.$request.baseRequest('post', '/hyReleaseGoodsInfo/api/editTask', this.selectObj).then(res => {
+						uni.hideLoading()
+						this.show = false
+						uni.showToast({
+							title: "成功移除常发货源!",
+							icon:'none'
+						})
+						this.mescroll.resetUpScroll()
+					})
+					.catch(res => {});
+			},
+			often(val) {
+				uni.showLoading({
+					title: "加载中"
+				})
+				this.$request.baseRequest('post', '/hyReleaseGoodsInfo/api/editTask', val).then(res => {
+						uni.hideLoading()
+						uni.showToast({
+							title: "已存为常发货源!",
+							icon:'none'
+						})
+						this.mescroll.resetUpScroll()
+					})
+					.catch(res => {});
+			},
+
+
+			shelvesBtnClick(flag, val) {
+				if (flag == '1') {
+					val.status = '已上架'
+					this.$request.baseRequest('post', '/hyReleaseGoodsInfo/api/editTask', val).then(res => {
+							uni.showToast({
+								title: "货源已上架",
+								icon:'none'
+							})
+							that.mescroll.resetUpScroll()
+						})
+						.catch(res => {
+							uni.hideLoading()
+							uni.$u.toast(res.message);
+						});
+				} else {
+					this.selectObj = val
+					this.show1 = true
+				}
+
+			},
+			upCallback(page) {
+				uni.showLoading({
+					mask: true,
+					title: '加载中'
+				})
+				this.$request.baseRequest('get', '/hyReleaseGoodsInfo/selectTask', {
+						currentPage: page.num,
+						pageSize: page.size,
+						searchType: this.tabIndex + 1,
+						commonId: this.userInfo.id
+					}).then(res => {
+						uni.hideLoading()
+						let curPageData = res.data.records;
+						let totalPage = res.data.total;
+						let curPageLen = curPageData.length;
+						this.mescroll.endByPage(curPageLen, totalPage);
+						console.log(res.data)
+						if (page.num == 1) this.goodsList = [];
+						this.goodsList = this.goodsList.concat(curPageData);
+						for (let i = 0; i < this.goodsList.length; i++) {
+							let _text3 = ''
+							let _textList = this.goodsList[i].measuringMethod.split(',')
+							for (let k = 0; k < _textList.length; k++) {
+								if (_textList[k] == '重量(吨)') {
+									_text3 += this.goodsList[i].weight + '吨/'
+								} else {
+									_text3 += this.goodsList[i].volume + '方/'
+								}
+							}
+							_text3 = _text3.substring(0, _text3.length - 1)
+							this.goodsList[i].content = this.goodsList[i].carModel.replace(',', '/') + '、' + this
+								.goodsList[i].carLength.replace(',', '/') + '米、' + _text3 + '、' + this.goodsList[i]
+								.expectedNum + '车、' + this.goodsList[i].goodsName + '、' + this.goodsList[i]
+								.packageType + '、' + this.goodsList[i].cargoDistance + 'km'
+						}
+
+					})
+					.catch(res => {
+						uni.hideLoading()
+						uni.$u.toast(res.message);
+						this.mescroll.endErr();
+					});
+			},
+			downCallback() {
+				this.mescroll.resetUpScroll()
+			},
+			mescrollInit(mescroll) {
+				this.mescroll = mescroll;
+			},
+			async clickTab(val) {
+				console.log("val", val)
+				this.tabIndex = val.index
+				this.mescroll.resetUpScroll()
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.fixed,
+	.fixed1 {
+		background: linear-gradient(97deg, #F5BA3C 0%, #F5BA3C 100%);
+		position: fixed;
+		top: var(--status-bar-height);
+		z-index: 999;
+		// width: calc(100% - 40rpx);
+		width: 100%;
+		// margin:0 20rpx;
+	}
+
+	.fixed1 {
+		top: 0;
+		height: var(--status-bar-height);
+		background: linear-gradient(97deg, #F5BA3C 0%, #F5BA3C 100%);
+	}
+
+	.tab-view {
+		padding: 0 20rpx;
+	}
+
+	.list-content {
+		margin: 20rpx;
+	}
+
+	.list-item {
+		position: relative;
+		background: #fff;
+		padding: 20rpx;
+		border-radius: 20rpx;
+
+		.xj {
+			position: absolute;
+			right: 40rpx;
+			top: 50rpx;
+			color: red;
+			font-weight: 700;
+			border: 2px solid red;
+			padding: 10rpx 20rpx;
+			border-radius: 10rpx;
+			transform: rotate(40deg);
+			background-color: rgba(255, 255, 255, 0.6);
+			
+		}
+
+		.row2 {
+			.left{
+				color:rgb(255, 134, 0);
+				font-weight: 700;
+			}
+			.right {
+				color: rgb(153, 153, 153)
+			}
+		}
+
+		.row {
+			margin: 10rpx 0;
+		}
+
+		.row1 {
+			display: flex;
+			font-size: 32rpx;
+			font-weight: 700;
+
+		}
+
+		.row2 {
+			justify-content: space-between;
+		}
+
+		.row3 {
+			color: rgb(153, 153, 153);
+			text-overflow: ellipsis;
+			white-space: nowrap;
+			overflow: hidden;
+		}
+
+		.row4 {
+			justify-content: flex-end;
+			margin-top: 20rpx;
+		}
+	}
+
+	.btn {
+		border: 1px solid rgb(255, 134, 0);
+		padding: 10rpx;
+		box-sizing: border-box;
+		margin-left: 10rpx;
+		color: rgb(255, 134, 0);
+		border-radius: 10rpx;
+		font-size: 28rpx;
+	}
+
+	.often {
+		border: 1px solid rgb(187, 187, 187);
+		color: rgb(187, 187, 187);
+	}
+</style>

+ 228 - 0
pages/cargoTerminal/cargoTerminalDetail.vue

@@ -0,0 +1,228 @@
+<template>
+	<view class="content">
+		<view class="content1">
+			<view class="title">
+				发运信息
+			</view>
+			<view class="row1 row">
+				<view class="left">
+					发货地
+				</view>
+				<view class="right">
+					{{dataObj.sendPrivate}}  {{dataObj.sendCity}}  {{dataObj.sendArea}}
+				</view>
+			</view>
+			<view class="row2 row right">
+					{{dataObj.sendDetailedAddress}}
+			</view>
+			<view class="row3 row">
+				<view class="left">
+					卸货地
+				</view>
+				<view class="right">
+					{{dataObj.unloadPrivate}}  {{dataObj.unloadCity}}  {{dataObj.unloadArea}}
+				</view>
+			</view>
+			<view class="row4 row right">
+					{{dataObj.unloadDetailedAddress}}
+			</view>
+			<view class="row5 row">
+				<view class="left">
+					装车时间
+				</view>
+				<view class="right">
+					{{dataObj.loadingDate}}  {{dataObj.periodOfTime}}
+				</view>
+			</view>
+			<view class="row6 row">
+				<view class="left">
+					运输距离
+				</view>
+				<view class="right">
+					{{dataObj.cargoDistance}}
+				</view>
+			</view>
+			<view class="row7 row">
+				<view class="left">
+					运价
+				</view>
+				<view class="right">
+					<text>¥{{dataObj.freightPrice}}</text>
+					<text v-if="dataObj.billingMethod==0">元/吨</text>
+					<text v-if="dataObj.billingMethod==1">元/车</text>
+					<text v-if="dataObj.billingMethod==2">元/方</text>
+				</view>
+			</view>
+			<view class="row8 row">
+				<view class="top">
+					备注
+				</view>
+				<view class="bottom">
+					{{dataObj.remark}}
+				</view>
+			</view>
+		</view>
+		<view class="content2">
+			<view class="title">
+				车辆货物信息
+			</view>
+			<view class="row">
+				<view class="left">
+					货名
+				</view>
+				<view class="right">
+					{{dataObj.goodsName}}
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">
+					货物重量
+				</view>
+				<view class="right">
+					{{dataObj.weight}} 吨
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">
+					货物体积
+				</view>
+				<view class="right">
+					{{dataObj.volume}} 方
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">
+					包装方式
+				</view>
+				<view class="right">
+					{{dataObj.packageType}}
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">
+					用车数量
+				</view>
+				<view class="right">
+					{{dataObj.expectedNum}}辆
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">
+					车型
+				</view>
+				<view class="right">
+					{{dataObj.carModel}}
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">
+					车长
+				</view>
+				<view class="right">
+					{{dataObj.carLength}}
+				</view>
+			</view>
+		</view>
+		<view class="content3">
+			<view class="title">
+				货站信息
+			</view>
+			<view class="row">
+				<view class="left">
+					联系人
+				</view>
+				<view class="right">
+					{{dataObj.contacts}}
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">
+					联系电话
+				</view>
+				<view class="right">
+					{{dataObj.contactsPhone}}
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">
+					货站名称
+				</view>
+				<view class="right">
+					{{dataObj.freightStationName}}
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">
+					信息费
+				</view>
+				<view class="right">
+					{{dataObj.stationFee}}
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				dataObj:{}
+			};
+		},
+		onLoad(options) {
+			this.id = options.id
+			this.init()
+		},
+		methods:{
+			init(){
+				this.$request.baseRequest('get', '/hyReleaseGoodsInfo/seeTask', {id:this.id}).then(res => {
+						uni.hideLoading()
+						this.dataObj = res.data
+					})
+					.catch(res => {});
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.content{
+		padding: 20rpx;
+	}
+	.content1,.content2,.content3{
+		background: #fff;
+		border-radius: 20rpx;
+		padding:20rpx;
+		box-sizing: border-box;
+		margin-bottom: 20rpx;
+	}
+.row{
+	display: flex;
+	justify-content: space-between;
+	margin-bottom: 10rpx;
+	.left{
+		color: rgba(153,153,153,1);
+	}
+}
+.right{
+	display: flex;
+	justify-content: flex-end;
+}
+.row8{
+	display: flex;
+	flex-direction: column;
+}
+.title{
+	    font-weight: 700;
+	    font-size: 32rpx;
+	    color: rgb(51, 51, 51);
+		margin: 20rpx 0;
+}
+.row2,.row4,.row8 .top{
+	color:rgb(153, 153, 153)
+}
+.row7 .right{
+	color:rgb(255, 134, 0) ;
+}
+</style>

+ 1619 - 0
pages/cargoTerminal/publishSource.vue

@@ -0,0 +1,1619 @@
+<template>
+	<view class="content">
+		<view class="content2">
+			<view class="row1">
+				<view class="left">
+					<view class="top" @click="selectAddress(0)">
+						<view class="send">装</view>
+						<view class="title">
+							{{dataObj.sendArea?(dataObj.sendPrivate + dataObj.sendCity+dataObj.sendArea):'选择装货地区'}}
+						</view>
+					</view>
+					<view class="bottom">
+						<input type="text" value="" placeholder="输入详细地址" v-model="dataObj.sendDetailedAddress" />
+					</view>
+				</view>
+				<view class="right" @click="selectAddress(0)" v-if="!dataObj.sendArea">
+					<view v-if='dataObj.sendArea' class="right"></view>
+					<view class="right" v-else>
+						<image src="../../static/right.png" style="width: 22rpx;height: 22rpx;margin-top:14rpx;">
+						</image>
+					</view>
+				</view>
+			</view>
+			<view class="row2">
+				<view class="left">
+					<view class="top" @click="selectAddress(1)">
+						<view class="collect">卸</view>
+						<view class="title">
+							{{dataObj.unloadArea?(dataObj.unloadPrivate + dataObj.unloadCity+dataObj.unloadArea):'选择卸货地区'}}
+						</view>
+					</view>
+					<view class="bottom">
+						<input type="text" value="" placeholder="输入详细地址" v-model="dataObj.unloadDetailedAddress" />
+					</view>
+				</view>
+				<view class="right" @click="selectAddress(1)" v-if="!dataObj.unloadArea">
+					<view v-if='dataObj.unloadArea' class="right">{{(dataObj.unloadCity+dataObj.unloadArea)}}</view>
+					<view class="right" v-else>
+						<image src="../../static/right.png" style="width: 22rpx;height: 22rpx;margin-top:14rpx;">
+						</image>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="content3">
+			<view class="row">
+				<view class="left">预估总里程</view>
+				{{dataObj.cargoDistance }}
+				km
+			</view>
+		</view>
+		<view class="content3">
+			<view class="row" @click="isShowPopup1=true">
+				<view class="left">货物信息</view>
+				<view class="right flex">
+					{{dataObj.goodsName?dataObj.goodsName+'、'+dataObj.packageType+'、'+dataObj.weight:"完善货物信息"}}
+					<u-icon name="arrow-right" size="20"></u-icon>
+				</view>
+			</view>
+			<view class="row" @click="isShowPopup2=true">
+				<view class="left">车型车长</view>
+				<view class="right flex">{{dataObj.carModel?dataObj.carModel+'、'+dataObj.carLength:"选择车型车长"}}<u-icon
+						name="arrow-right" size="20"></u-icon></view>
+			</view>
+		</view>
+		<view class="content3">
+			<view class="row">
+				<view class="left">运价单位</view>
+				<view class="btn flex">
+					<view class="price-item" :class="index==priceIndex?'active':''" v-for="(item,index) in priceBtnList"
+						@click="selectPriceType(item,index)">
+						<view class="">
+							{{item.name}}
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="row y-price flex">
+				<view class="left">运价</view>
+				<view class="right" v-if="priceBtnType==0">
+					<input type="number" value="" placeholder="输入运费单价" class="input" v-model="dataObj.freightPrice" />
+				</view>
+				<view class="right" v-if="priceBtnType==1">
+					<input type="number" value="" placeholder="输入车数" class="input" v-model="dataObj.freightPrice" />
+				</view>
+				<view class="right" v-if="priceBtnType==2">
+					<input type="number" value="" placeholder="输入方数" class="input" v-model="dataObj.freightPrice" />
+				</view>
+			</view>
+		</view>
+		<view class="content3">
+			<view class="row" @click="isShowPopup3=true">
+				<view class="left">货站信息</view>
+				<view class="right flex">
+					{{dataObj.contacts?dataObj.contacts+'、'+dataObj.contactsPhone+'、'+dataObj.freightStationName:"完善货站信息"}}
+					<u-icon name="arrow-right" size="20"></u-icon>
+				</view>
+			</view>
+		</view>
+		<view class="content5">
+			<view class="flex row" @click="selectValidityPeriod(0)">
+				<view class="left">装车日期</view>
+				<view class="right flex">
+					{{dataObj.loadingDate?dataObj.loadingDate:"选择装车日期"}}
+					<u-icon name="arrow-right" size="20"></u-icon>
+				</view>
+			</view>
+			<view class="flex row" @click="selectValidityPeriod(1)">
+				<view class="left-text">时段</view>
+				<view class="right flex">
+					{{dataObj.periodOfTime?dataObj.periodOfTime:'选择装时段'}}
+					<u-icon name="arrow-right" size="20"></u-icon>
+				</view>
+			</view>
+		</view>
+		<view class="content5">
+			<view class="row">
+				<view class="left">备注(选填)</view>
+			</view>
+			<view class="row">
+				<u--textarea v-model="dataObj.remark" placeholder="请输入内容" :count='true' maxlength='500'>
+				</u--textarea>
+			</view>
+			<!-- <view class="flex">
+				<u-button :type="item.type" v-for="(item,index) in remarkList"
+					@click="remarkBtnChange(item,index)">{{item.name}}</u-button>
+			</view> -->
+		<!-- 	<view class="cartype-item" style="font-size: 24rpx;" :class="item.checked?'active':''"
+				v-for="(item,index) in remarkList" @click="selectRemarkType(item,index)">
+				<view class="">
+					{{item.name}}
+				</view>
+			</view> -->
+		</view>
+		<view class="content5">
+			<view class="row">
+				<view class="left">货站信息费</view>
+				<view class="right"><input type="number" value="" placeholder="输入信息费金额" class="input"
+						v-model="dataObj.stationFee" /></view>元/吨
+			</view>
+		</view>
+		<view class="">
+			<view class="submit" @click="goodsSubmit">发布货源</view>
+		</view>
+		<u-popup :show="isShowPopup1" :round="10" closeable safeAreaInsetBottom @close="isShowPopup1=false">
+			<view style="padding: 60rpx 40rpx;" class="popup">
+				<view class="title">
+					货物信息
+				</view>
+				<u--form labelPosition="left" :model="dataObj" ref="uForm">
+					<u-form-item label="货名" prop="contacts" borderBottom labelWidth="140rpx">
+						<u--input v-model="dataObj.goodsName" border="none" placeholder="输入货名"
+							inputAlign='right'></u--input>
+					</u-form-item>
+					<u-form-item label="包装类型" prop="contacts" borderBottom labelWidth="140rpx">
+						<view style="display: flex;justify-content: flex-end;width: 100%;">
+							<view class="price-item" :class="index==bzIndex?'active':''"
+								v-for="(item,index) in packageTypePickerColumns" @click="selectBzType(item,index)">
+								<view class="">
+									{{item}}
+								</view>
+							</view>
+						</view>
+					</u-form-item>
+					<u-form-item label="计量方式" borderBottom labelWidth="140rpx">
+						<view style="display: flex;justify-content: flex-end;width: 100%;">
+							<view class="price-item" :class="item.checked?'active':''"
+								v-for="(item,index) in measuringMethodList" @click="selectJlType(item,index)">
+								<view class="">
+									{{item.name}}
+								</view>
+							</view>
+						</view>
+					</u-form-item>
+					<u-form-item label="货物重量" borderBottom labelWidth="140rpx" v-if="measuringMethodList[0].checked">
+						<u--input v-model="dataObj.weight" border="none" placeholder="输入重量"
+							inputAlign='right'></u--input><text style="margin-left: 10rpx;">吨</text>
+					</u-form-item>
+					<u-form-item label="货物体积" borderBottom labelWidth="140rpx" v-if="measuringMethodList[1].checked">
+						<u--input v-model="dataObj.volume" border="none" placeholder="输入体积"
+							inputAlign='right'></u--input><text style="margin-left: 10rpx;">方</text>
+					</u-form-item>
+					<u-form-item label="预计用车数量" labelWidth="200rpx">
+						<u--input v-model="dataObj.expectedNum" border="none" placeholder="输入用车数量"
+							inputAlign='right'></u--input><text style="margin-left: 10rpx;">辆</text>
+					</u-form-item>
+					<!-- <u-form-item label="货站名称" prop="contacts" borderBottom labelWidth="140rpx">
+						<u--input v-model="dataObj.freightStationName" border="none" placeholder="输入货站名称,不超过10个字"
+							inputAlign='right'></u--input>
+					</u-form-item> -->
+				</u--form>
+				<view class="submit" @click="goodsInfoSubmit">完成</view>
+			</view>
+		</u-popup>
+		<u-popup :show="isShowPopup2" :round="10" closeable safeAreaInsetBottom @close="isShowPopup2=false">
+			<view style="padding: 60rpx 40rpx;" class="popup">
+				<view class="title">
+					车型车长
+				</view>
+				<view class="">
+					选择车型 <text style="color:rgb(170, 170, 170);margin-left: 20rpx;">(1-3个)</text>
+				</view>
+				<view class="cartype-item" :class="item.checked?'active':''" v-for="(item,index) in carTypeList"
+					@click="selectCarType(item,index)">
+					<view class="">
+						{{item.name}}
+					</view>
+				</view>
+				<view class="" style="margin: 40rp 0;">
+					选择车长 <text style="color:rgb(170, 170, 170);margin-left: 20rpx;">(1-3个)</text>
+				</view>
+				<view class="cartype-item" :class="item.checked?'active':''" v-for="(item,index) in carLengthList"
+					@click="selectCarLength(item,index)">
+					<view class="">
+						{{item.name}}
+					</view>
+				</view>
+				<view class="submit" @click="carInfoSubmit">完成</view>
+			</view>
+		</u-popup>
+		<u-popup :show="isShowPopup3" :round="10" closeable safeAreaInsetBottom @close="isShowPopup3=false">
+			<view style="padding: 60rpx 40rpx;" class="popup">
+				<view class="title">
+					货站信息
+				</view>
+				<u--form labelPosition="left" :model="dataObj" ref="uForm">
+					<u-form-item label="联系人" borderBottom labelWidth="140rpx">
+						<u--input v-model="dataObj.contacts" border="none" placeholder="输入联系人姓名"
+							inputAlign='right'></u--input>
+					</u-form-item>
+					<u-form-item label="联系人电话" borderBottom labelWidth="160rpx">
+						<u--input v-model="dataObj.contactsPhone" border="none" placeholder="输入联系人姓名"
+							inputAlign='right'></u--input>
+					</u-form-item>
+					<u-form-item label="货站名称" labelWidth="140rpx">
+						<u--input v-model="dataObj.freightStationName" border="none" placeholder="输入货站名称,不超过10个字"
+							inputAlign='right'></u--input>
+					</u-form-item>
+				</u--form>
+				<view class="submit" @click="isShowPopup3=false">完成</view>
+			</view>
+		</u-popup>
+		<u-popup :show="isShowPopup4" :round="10" closeable safeAreaInsetBottom @close="isShowPopup4=false">
+			<view style="padding: 60rpx 40rpx;" class="popup">
+				<view class="title">
+					装车时间
+				</view>
+				<u-line></u-line>
+				<view class="select-date">
+					<view class="title-two">
+						选择日期
+					</view>
+					<view class="date-list">
+						<view class="date-list-item" :class="item.checked?'active':''" v-for="(item,index) in dateList"
+							@click="selectDate(item,index)">
+							{{index==0?"今天"+item.date:item.date}}
+						</view>
+					</view>
+					<view class="title-two">
+						选择时段
+					</view>
+					<view class="row flex" style="margin-bottom: 20rpx;">
+						<view class="" style="flex: 1;text-align: center;">
+							开始时间
+						</view>
+						<view class="" style="flex: 1;text-align: center;">
+							结束时间
+						</view>
+					</view>
+					<picker-view class="picker" :value="value" @change="getime">
+						<picker-view-column>
+							<view class="hours" style="line-height:30px; text-align: center;"
+								v-for="(item,index) in hoursList" :key="index">{{item}}</view>
+						</picker-view-column>
+						<picker-view-column>
+							<view class="hours" style="line-height:30px; text-align: center;"
+								v-for="(item,index) in hoursList" :key="index">{{item}}</view>
+						</picker-view-column>
+					</picker-view>
+				</view>
+				<view class="submit" @click="dateInfoSubmit"  v-if="isCanBeSubmit">完成</view>
+				<view class="fa-submit" v-if="!isCanBeSubmit">
+					完成
+				</view>
+			</view>
+		</u-popup>
+
+		<!-- 	<u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :closeOnClickOverlay='false'
+			:showCancelButton='showCancelButton' confirmColor='#F5BA3C' @confirm="$u.throttle(confirmClick(), 1000)"
+			@close="cancelClick" @cancel="cancelClick"></u-modal>
+		<u-modal :show="isShowAlert1" :title="alertTitle" :confirmText='confirmText' :content='alertContent'
+			:closeOnClickOverlay='false' :showCancelButton='showCancelButton' confirmColor='#F5BA3C'
+			@confirm="$u.throttle(confirmClick(), 1000)" @close="cancelClick" @cancel="cancelClick"></u-modal> -->
+		<u-toast ref="uToast"></u-toast>
+
+	</view>
+</template>
+
+<script>
+	var _this;
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				isCanBeSubmit:true,
+				isEdit: false,
+				isCopy: false,
+				hoursList: [
+					'00:00',
+					'00:30',
+					'01:00',
+					'01:30',
+					'02:00',
+					'02:30',
+					'03:00',
+					'03:30',
+					'04:00',
+					'04:30',
+					'05:00',
+					'05:30',
+					'06:00',
+					'06:30',
+					'07:00',
+					'07:30',
+					'08:00',
+					'08:30',
+					'09:00',
+					'09:30',
+					'10:00',
+					'10:00',
+					'11:00',
+					'11:30',
+					'12:00',
+					'12:30',
+					'13:00',
+					'13:30',
+					'14:00',
+					'14:30',
+					'15:00',
+					'15:30',
+					'16:00',
+					'16:30',
+					'17:00',
+					'17:30',
+					'18:00',
+					'18:30',
+					'19:00',
+					'19:30',
+					'20:00',
+					'20:30',
+					'21:00',
+					'21:30',
+					'22:00',
+					'22:30',
+					'23:00',
+					'23:30'
+				],
+				value: ["18", "34"],
+				checkTime: ["09:00", "17:00"],
+				dateCheckList: [],
+				dateList: [],
+				jlLindex: 0,
+				bzIndex: 0,
+				priceIndex: 0,
+				measuringMethodList: [{
+						name: '重量(吨)',
+						checked: true,
+					},
+					{
+						name: '体积(方)',
+						checked: false,
+					}
+				],
+				jlCheckList: ['重量(吨)'],
+				carLengthCheckList: ['不限'],
+				carTypeCheckList: [],
+				carLengthList: [{
+						name: '不限',
+						checked: true
+					},
+					{
+						name: '2',
+						checked: false
+					},
+					{
+						name: '3',
+						checked: false
+					},
+					{
+						name: '4',
+						checked: false
+					},
+					{
+						name: '5',
+						checked: false
+					},
+					{
+						name: '6',
+						checked: false
+					},
+					{
+						name: '7',
+						checked: false
+					},
+					{
+						name: '8',
+						checked: false
+					},
+					{
+						name: '9',
+						checked: false
+					},
+					{
+						name: '10',
+						checked: false
+					},
+					{
+						name: '11',
+						checked: false
+					},
+					{
+						name: '12',
+						checked: false
+					},
+					{
+						name: '13',
+						checked: false
+					},
+					{
+						name: '14',
+						checked: false
+					},
+					{
+						name: '15',
+						checked: false
+					},
+					{
+						name: '16',
+						checked: false
+					},
+					{
+						name: '17',
+						checked: false
+					},
+					{
+						name: '18',
+						checked: false
+					}
+				],
+				carTypeList: [{
+						name: '高栏',
+						checked: false
+					},
+					{
+						name: '集装箱',
+						checked: false
+					},
+					{
+						name: '平板',
+						checked: false
+					},
+					{
+						name: '厢式',
+						checked: false
+					},
+					{
+						name: '自卸',
+						checked: false
+					},
+					{
+						name: '冷藏车',
+						checked: false
+					},
+					{
+						name: '保温车',
+						checked: false
+					},
+					{
+						name: '轻型',
+						checked: false
+					}
+				],
+				packageTypePickerColumns: ['散装', '袋装', '其他'],
+				packageTypePicker: false,
+				isShowPopup1: false,
+				isShowPopup2: false,
+				isShowPopup3: false,
+				isShowPopup4: false,
+				remarkCheckList: [],
+				remarkList: [{
+						name: "到付",
+						checked: false,
+					},
+					{
+						name: "需防雨",
+						checked: false,
+					},
+					{
+						name: "不压车",
+						checked: false,
+					}, {
+						name: "合规运输",
+						checked: false,
+					}
+				],
+				priceBtnType: '0',
+				priceBtnList: [{
+						name: '吨',
+						index: 0
+					},
+					{
+						name: '车',
+						index: 1
+					},
+					{
+						name: '方',
+						index: 2
+					}
+				],
+
+				showCancelButton: true,
+				qyList: [],
+				isShowAlert: false,
+				alertTitle: '确定发布运输任务?',
+				alertContent: null,
+				radioCustomStyle: {
+					margin: '0 0 0 20rpx'
+				},
+				freightAdvance: false,
+				dataObj: {
+					commonId: '',
+					sendPrivate: '',
+					sendCity: '',
+					sendArea: '',
+					sendDetailedAddress: '',
+					unloadPrivate: '',
+					unloadCity: '',
+					unloadArea: '',
+					unloadDetailedAddress: '',
+					cargoDistance: '',
+					goodsName: '',
+					packageType: '散装',
+					measuringMethod: '重量(吨)',
+					weight: '',
+					volume: '',
+					expectedNum: '',
+					carModel: '',
+					carLength: '',
+					billingMethod: '0',
+					freightPrice: '',
+					contacts: '',
+					contactsPhone: '',
+					freightStationName: '',
+					loadingDate: '',
+					periodOfTime: '',
+					remark: '',
+					stationFee: '',
+					sendLongitude: '',
+					sendLatitude: '',
+					unsendLongitude: '',
+					unsendLatitude: ''
+				},
+				confirmText: '',
+				isShowAlert1: false,
+				ValidityPeriodType: '',
+			}
+		},
+		onShow() {
+			if (!this.hasLogin) {
+				uni.$u.route('/pages/public/login');
+				return
+			}
+			this.$request.baseRequest('get', '/cargoOwnerInfo/firstAuthentication', {
+				phone: this.userInfo.phone
+			}).then(res => {
+				uni.setStorageSync("firstAuthentication", res.data)
+				let _obj = res.data
+				if (_obj.authenticationStatus == '已认证') {
+					uni.$u.route('/pages/components/empty/index');
+				} else if (_obj.authenticationStatus == '审核中') {
+					uni.showToast({
+						title: '身份信息审核中',
+						icon: 'none'
+					})
+
+				} else if (_obj.authenticationStatus == '已过期') {
+					this.alertTitle = '身份信息已过期!'
+					this.showCancelButton = false
+					this.confirmText = '立即修改'
+					this.isShowAlert1 = true
+				} else {
+					this.alertTitle = '身份信息未认证,去认证?'
+					this.confirmText = '确认'
+					this.showCancelButton = false
+					this.isShowAlert = true
+				}
+			})
+			if (!this.isEdit || !this.isCopy) {
+				let _faddress = uni.getStorageSync('storage_faddress');
+				let _saddress = uni.getStorageSync('storage_saddress');
+				if (_faddress) {
+					this.dataObj.sendCity = _faddress.city
+					this.dataObj.sendArea = _faddress.area
+					this.dataObj.sendAdCode = _faddress.adCode
+					this.dataObj.sendPrivate = _faddress.province
+					this.dataObj.sendDetailedAddress = _faddress.detailedAddress
+					this.dataObj.sendLongitude = _faddress.longitude
+					this.dataObj.sendLatitude = _faddress.latitude
+					if (_faddress.contactPhone) {
+						this.dataObj.senderPhone = _faddress.contactPhone
+					}
+					if (_faddress.contacts) {
+						this.dataObj.sender = _faddress.contacts
+					}
+				} else {
+					this.getDefaultPlace(0)
+				}
+				if (_saddress) {
+					this.dataObj.unloadDetailedAddress = _saddress.detailedAddress
+					this.dataObj.unloadCity = _saddress.city
+					this.dataObj.unloadArea = _saddress.area
+					this.dataObj.unsendAdCode = _faddress.adCode
+					this.dataObj.unloadPrivate = _saddress.province
+					this.dataObj.unsendLongitude = _saddress.longitude
+					this.dataObj.unsendLatitude = _saddress.latitude
+					if (_saddress.contacts) {
+						this.dataObj.receiver = _saddress.contacts
+					}
+					if (_saddress.contactPhone) {
+						this.dataObj.receiverPhone = _saddress.contactPhone
+					}
+				} else {
+					this.getDefaultPlace(1)
+				}
+				if (this.dataObj.sendLatitude && this.dataObj.sendLongitude && this.dataObj.unsendLatitude && this.dataObj
+					.unsendLongitude) {
+					this.dataObj.cargoDistance = this.$helper.getDistance(this.dataObj.unsendLatitude, this.dataObj
+						.unsendLongitude,
+						this.dataObj.sendLatitude, this.dataObj.sendLongitude)
+				}
+			}
+
+
+		},
+		onLoad(options) {
+
+			if (options.type == 1) {
+				this.isCopy = true
+			}
+			if (options.type == 2) {
+				this.isEdit = true
+			}
+			if (options.type == 1 || options.type == 2) {
+				this.dataObj = uni.getStorageSync("selectGoodObj")
+				if (this.dataObj.packageType == '散装') {
+					this.bzIndex = 0
+				} else if (this.dataObj.packageType == '袋装') {
+					this.bzIndex = 1
+				} else {
+					this.bzIndex = 2
+				}
+				let _carModel = this.dataObj.carModel.split(',')
+				for (let i = 0; i < this.carTypeList.length; i++) {
+					for (let k = 0; k < _carModel.length; k++) {
+						if (this.carTypeList[i].name == _carModel[k]) {
+							this.carTypeList[i].checked = true
+							this.carTypeCheckList.push(this.carTypeList[i])
+						}
+					}
+				}
+				let _measuringMethod = this.dataObj.measuringMethod.split(',')
+				this.jlCheckList = []
+				for (let i = 0; i < this.measuringMethodList.length; i++) {
+					this.measuringMethodList[i].checked = false
+					for (let k = 0; k < _measuringMethod.length; k++) {
+						if (this.measuringMethodList[i].name == _measuringMethod[k]) {
+							this.measuringMethodList[i].checked = true
+							this.jlCheckList.push(this.measuringMethodList[i].name)
+						}
+					}
+				}
+			}
+			_this = this
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		methods: {
+			goodsSubmit() {
+				this.dataObj.commonId = this.userInfo.id
+				if (this.validate()) return
+				uni.showLoading({
+					mask: true,
+					title: '加载中'
+				})
+				console.log("this.dataObj", this.dataObj)
+				this.dataObj.headSculpture = this.userInfo.avatarUrl
+				if (this.isEdit) {
+					this.$request.baseRequest('post', '/hyReleaseGoodsInfo/api/editTask', this.dataObj).then(res => {
+							uni.hideLoading()
+							uni.navigateBack()
+						})
+						.catch(res => {});
+				} else {
+					this.$request.baseRequest('post', '/hyReleaseGoodsInfo/api/addTask', this.dataObj).then(res => {
+							uni.hideLoading()
+							uni.navigateBack()
+						})
+						.catch(res => {});
+				}
+
+			},
+			getime(e) {
+				let val = e.detail.value
+				console.log(val)
+				this.checkTime[0] = this.hoursList[val[0]]
+				this.checkTime[1] = this.hoursList[val[1]]
+				if(val[0]>val[1]){
+					uni.showToast({
+						icon: 'none',
+						title: "开始时间不能大于结束时间!"
+					})
+					this.isCanBeSubmit = false
+					return
+				}else{
+					this.isCanBeSubmit = true
+				}
+				
+				console.log(this.checkTime)
+
+			},
+			selectDate(val, index) {
+				console.log("val--index", val, index)
+				let _startCheckIndex = ''
+				let _endCheckIndex = ''
+				if (this.dateCheckList.length != 0) {
+					_startCheckIndex = this.dateCheckList[0].index
+					_endCheckIndex = this.dateCheckList[this.dateCheckList.length - 1].index
+					console.log("选中开始", _startCheckIndex)
+					console.log("选中结束", _endCheckIndex)
+				}
+				if (this.dateCheckList.length == 0) {
+					val.checked = !val.checked
+					if (val.checked) {
+						this.dateCheckList.push(val)
+					}
+				} else if (this.dateCheckList.length == 1) {
+					val.checked = !val.checked
+					if (!val.checked) {
+						this.dateCheckList = []
+					} else {
+						this.dateCheckList = []
+						if (val.index < _startCheckIndex) {
+							for (let i = val.index; i <= _startCheckIndex; i++) {
+								this.dateList[i].checked = true
+								this.dateCheckList.push(this.dateList[i])
+							}
+						} else if (val.index > _startCheckIndex) {
+							for (let i = _startCheckIndex; i <= val.index; i++) {
+								console.log(i)
+								this.dateList[i].checked = true
+								this.dateCheckList.push(this.dateList[i])
+							}
+						}
+					}
+				} else if (this.dateCheckList.length == 2) {
+					//点开始或点结束
+					val.checked = !val.checked
+					if (val.index == _startCheckIndex) {
+						this.dateCheckList.splice(0, 1)
+					}
+					if (val.index == _endCheckIndex) {
+						this.dateCheckList.splice(1, 1)
+					}
+					if (val.index < _startCheckIndex) {
+						this.dateCheckList = []
+						for (let i = val.index; i <= _endCheckIndex; i++) {
+							this.dateList[i].checked = true
+							this.dateCheckList.push(this.dateList[i])
+						}
+					}
+					if (val.index > _endCheckIndex) {
+						this.dateCheckList = []
+						for (let i = _startCheckIndex; i <= val.index; i++) {
+							this.dateList[i].checked = true
+							this.dateCheckList.push(this.dateList[i])
+						}
+					}
+				} else {
+					let _dateCheckList = JSON.parse(JSON.stringify(this.dateCheckList))
+					if (val.index == _startCheckIndex || val.index == _endCheckIndex) {
+						val.checked = !val.checked
+						for (let i = 0; i < _dateCheckList.length; i++) {
+							if (val.index == _dateCheckList[i].index) {
+								this.dateCheckList.splice(i, 1)
+							}
+						}
+					} else if (_startCheckIndex < val.index && val.index < _endCheckIndex) {
+						for (let i = 0; i < this.dateList.length; i++) {
+							this.dateList[i].checked = false
+						}
+						this.dateCheckList = []
+					} else if (val.index < _startCheckIndex) {
+						this.dateCheckList = []
+						for (let i = val.index; i <= _endCheckIndex; i++) {
+							this.dateList[i].checked = true
+							this.dateCheckList.push(this.dateList[i])
+						}
+
+					} else if (val.index > _endCheckIndex) {
+						this.dateCheckList = []
+						for (let i = _startCheckIndex; i <= val.index; i++) {
+							console.log(i)
+							this.dateList[i].checked = true
+							this.dateCheckList.push(this.dateList[i])
+						}
+					}
+				}
+				console.log("this.dateCheckList", this.dateCheckList)
+			},
+			selectJlType(val, index) {
+				val.checked = !val.checked
+				if (val.checked) {
+					this.jlCheckList.push(val.name)
+				} else {
+					let _jlCheckList = JSON.parse(JSON.stringify(this.jlCheckList))
+					for (let i = 0; i < _jlCheckList.length; i++) {
+						if (_jlCheckList[i] == val.name) {
+							this.jlCheckList.splice(i, 1)
+							if (this.jlCheckList.length == 0 && val.name == '重量(吨)') {
+								this.jlCheckList.push('体积(方)')
+								this.measuringMethodList[1].checked = true
+								this.measuringMethodList[0].checked = false
+							}
+							if (this.jlCheckList.length == 0 && val.name == '体积(方)') {
+								this.jlCheckList.push('重量(吨)')
+								this.measuringMethodList[0].checked = true
+								this.measuringMethodList[1].checked = false
+							}
+						}
+					}
+				}
+				console.log('this.jlCheckList', this.jlCheckList)
+			},
+			selectBzType(val, index) {
+				this.bzIndex = index
+				this.dataObj.packageType = val
+			},
+			selectPriceType(val, index) {
+				this.priceIndex = index
+				this.priceBtnType = index
+				this.dataObj.billingMethod = index
+			},
+			carInfoSubmit() {
+				if (this.carTypeCheckList.length == 0) {
+					uni.showToast({
+						icon: 'none',
+						title: "至少选择1个车型!"
+					})
+					return
+				}
+				if (this.carLengthCheckList.length == 0) {
+					uni.showToast({
+						icon: 'none',
+						title: "至少选择1个车长!"
+					})
+					return
+				}
+				this.dataObj.carLength = this.carLengthCheckList.toString()
+				this.dataObj.carModel = this.carTypeCheckList.toString()
+				this.isShowPopup2 = false
+			},
+			selectRemarkType(val, index) {
+				val.checked = !val.checked
+				if (val.checked) {
+					this.remarkCheckList.push(val.name)
+				} else {
+					let _remarkCheckList = JSON.parse(JSON.stringify(this.remarkCheckList))
+					for (let i = 0; i < _remarkCheckList.length; i++) {
+						if (_remarkCheckList[i] == val.name) {
+							this.remarkCheckList.splice(i, 1)
+						}
+					}
+				}
+			},
+			selectCarType(val, index) {
+				if (this.carTypeCheckList.length > 2 && !val.checked) {
+					uni.showToast({
+						icon: 'none',
+						title: "最多选择3个车型!"
+					})
+					return
+				}
+				val.checked = !val.checked
+				if (val.checked) {
+					this.carTypeCheckList.push(val.name)
+				} else {
+					let _carTypeCheckList = JSON.parse(JSON.stringify(this.carTypeCheckList))
+					for (let i = 0; i < _carTypeCheckList.length; i++) {
+						if (_carTypeCheckList[i] == val.name) {
+							this.carTypeCheckList.splice(i, 1)
+						}
+					}
+				}
+				console.log("carTypeCheckList", this.carTypeCheckList)
+			},
+			selectCarLength(val, index) {
+				if (this.carLengthCheckList.length > 2 && !val.checked && index != 0) {
+					uni.showToast({
+						icon: 'none',
+						title: "最多选择3个车长!"
+					})
+					return
+				}
+				this.carLengthCheckList = []
+				val.checked = !val.checked
+				// this.carLengthList[0].checked = false
+				console.log(val)
+				if (index == 0 && val.checked) {
+					this.carLengthCheckList = ['不限']
+					for (let i = 1; i < this.carLengthList.length; i++) {
+						this.carLengthList[i].checked = false
+					}
+					console.log("this.carLengthCheckList", this.carLengthCheckList)
+					return
+				} else {
+					this.carLengthList[0].checked = false
+				}
+				for (let i = 0; i < this.carLengthList.length; i++) {
+					if (this.carLengthList[i].checked) {
+						this.carLengthCheckList.push(this.carLengthList[i].name)
+					}
+				}
+			},
+			packageTypeConfirm(val) {
+				console.log(val)
+				this.dataObj.packageType = val.value[0]
+				this.packageTypePicker = false
+			},
+			goodsInfoSubmit() {
+				this.dataObj.measuringMethod = this.jlCheckList.toString()
+				this.isShowPopup1 = false
+			},
+			dateInfoSubmit() {
+				let _dateList = []
+				for (let i = 0; i < this.dateCheckList.length; i++) {
+					_dateList.push(this.dateCheckList[i].date)
+				}
+				this.dataObj.loadingDate = _dateList.toString()
+				this.dataObj.periodOfTime = this.checkTime.toString()
+				this.isShowPopup4 = false
+			},
+			funDate() {
+				let timestamp = new Date(new Date().toLocaleDateString()).getTime();
+				let basetime = 24 * 60 * 60 * 1000;
+				for (let i = 0; i < 8; i++) {
+					let _date = timestamp + basetime * i
+					let _obj = {
+						date: new Date(_date).toLocaleDateString().substring(5).replace("/", "."),
+						index: i,
+						checked: false,
+					}
+					this.dateList.push(_obj)
+					console.log("this.dateList", this.dateList)
+				}
+				console.log(this.dateList)
+
+			},
+			validate() {
+				if (uni.$u.test.isEmpty(this.dataObj.commonId)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "货主不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.sendArea)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "请选择装货地区!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.sendDetailedAddress)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "装货详细地址不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.unloadArea)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "请选择卸货地区!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.unloadDetailedAddress)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "卸货详细地址不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.packageType)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "包装类型不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.goodsName)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "货名不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.measuringMethod)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "计量方式不能为空!",
+					})
+					return true
+				}
+				if (this.dataObj.measuringMethod == '重量(吨)') {
+					if (uni.$u.test.isEmpty(this.dataObj.weight)) {
+						this.$refs.uToast.show({
+							type: 'error',
+							message: "货物重量不能为空!",
+						})
+						return true
+					}
+				} else if (this.dataObj.measuringMethod == '体积(方)') {
+					if (uni.$u.test.isEmpty(this.dataObj.volume)) {
+						this.$refs.uToast.show({
+							type: 'error',
+							message: "货物体积不能为空!",
+						})
+						return true
+					}
+				} else {
+					if (uni.$u.test.isEmpty(this.dataObj.volume) || uni.$u.test.isEmpty(this.dataObj.weight)) {
+						this.$refs.uToast.show({
+							type: 'error',
+							message: "货物体积、货物重量不能为空!",
+						})
+						return true
+					}
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.expectedNum)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "预计用车数量不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.carModel)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "车型不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.carLength)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "车长不能为空!",
+					})
+					return true
+				}
+
+				if (uni.$u.test.isEmpty(this.dataObj.billingMethod)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "运价单位不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.freightPrice)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "运价不能为空!",
+					})
+					return true
+				}
+				if (
+					this.dataObj.freightPrice < 0 || this.dataObj.freightPrice > 100000 || (
+						String(this.dataObj.freightPrice).indexOf('.') != -1 && String(this.dataObj.freightPrice).length -
+						(String(this.dataObj.freightPrice).indexOf(
+							'.') + 1) > 2)
+				) {
+					uni.showToast({
+						title: '运价输入错误!',
+						duration: 2000,
+						icon: "none",
+					});
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.contacts)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "联系人不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.contactsPhone)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "联系人电话不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.freightStationName)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "货站名称不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.loadingDate)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "装车日期不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.periodOfTime)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "时段不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataObj.stationFee)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "货站信息费不能为空!",
+					})
+					return true
+				}
+			},
+			confirmClick() {
+				uni.$u.throttle(this.requestdata, 500)
+			},
+			requestdata() {
+				if (this.dataDetails.type == '元/吨') {
+					this.dataObj.billingMethod = 0
+				} else {
+					this.dataObj.billingMethod = 1
+				}
+				if (this.dataObj.freightAdvance) {
+					this.dataObj.freightAdvance = 1
+				} else {
+					this.dataObj.freightAdvance = 0
+				}
+				if (!this.dataObj.receiverIdcard) {
+					this.dataObj.receiverIdcard = ''
+				}
+				if (!this.dataObj.receiverCreditCode) {
+					this.dataObj.receiverCreditCode = ''
+				}
+				this.dataObj.carModel = this.carTypeCheckList.toString()
+				this.dataObj.commonId = this.userInfo.id
+				uni.$u.route('/pages/order/signContract', {
+					obj: JSON.stringify(this.dataObj),
+					type: 1
+				});
+
+			},
+			cancelClick() {
+				this.isShowAlert = false
+			},
+			//获取默认装货地、卸货地
+			getDefaultPlace(type) {
+				// 0时获取默认装货地址,1时获取默认卸货地址 通过选择获取的地址无需获取默认地址
+				uni.showLoading({
+					mask: true,
+					title: '加载中...'
+				})
+				this.$request.baseRequest('get', '/cargoOwnerAddressInfo/addressList', {
+						commonId: this.userInfo.id
+					}).then(res => {
+						uni.hideLoading()
+						for (let i = 0; i < res.data.length; i++) {
+							if (res.data[i].defaultShipment == 1 && type == 0) {
+								this.dataObj.sendCity = res.data[i].city
+								this.dataObj.sendArea = res.data[i].area
+								this.dataObj.sendPrivate = res.data[i].province
+								this.dataObj.sendDetailedAddress = res.data[i].detailedAddress
+								this.dataObj.sendLongitude = res.data[i].longitude
+								this.dataObj.sendLatitude = res.data[i].latitude
+								this.dataObj.sender = res.data[i].contacts
+								this.dataObj.senderPhone = res.data[i].contactPhone
+							}
+							if (res.data[i].defaultReceipt == 1 && type == 1) {
+								this.dataObj.unloadDetailedAddress = res.data[i].detailedAddress
+								this.dataObj.unloadCity = res.data[i].city
+								this.dataObj.unloadArea = res.data[i].area
+								this.dataObj.unloadPrivate = res.data[i].province
+								this.dataObj.unsendLongitude = res.data[i].longitude
+								this.dataObj.unsendLatitude = res.data[i].latitude
+								this.dataObj.receiver = res.data[i].contacts
+								this.dataObj.receiverPhone = res.data[i].contactPhone
+							}
+						}
+						if (this.dataObj.sendLatitude && this.dataObj.sendLongitude && this.dataObj.unsendLatitude &&
+							this.dataObj.unsendLongitude) {
+							this.dataObj.cargoDistance = this.$helper.getDistance(this.dataObj.unsendLatitude, this
+								.dataObj
+								.unsendLongitude, this.dataObj.sendLatitude, this.dataObj.sendLongitude)
+						}
+
+					})
+					.catch(res => {
+						uni.hideLoading()
+						uni.showToast({
+							title: res.message,
+							icon: 'none',
+							duration: 2000
+						})
+					});
+			},
+			changeHandler(e) {
+				const {
+					columnIndex,
+					value,
+					values,
+					index,
+					picker = this.$refs.uPicker
+				} = e
+
+
+			},
+			selectAddress(type) {
+				uni.$u.route('/pages/release/selectAddress', {
+					type: type,
+				});
+			},
+			selectValidityPeriod(type) {
+				this.funDate()
+				this.isShowPopup4 = true
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.input {
+		text-align: right;
+		width: 100%;
+	}
+
+	.content {
+		height: 100vh;
+		overflow: scroll;
+	}
+
+	.title {
+		padding: 0 20rpx;
+		display: flex;
+		justify-content: center;
+		position: relative;
+
+		.nav-title {
+			font-size: 32rpx;
+		}
+
+		.back {
+			position: absolute;
+			left: 20rpx;
+		}
+
+		.search {
+			display: flex;
+			align-items: center;
+			position: absolute;
+			right: 20rpx;
+		}
+
+	}
+
+
+	.fixed1 {
+		height: var(--status-bar-height);
+	}
+
+	.row {
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.content1 {
+		background: white;
+		margin: 40rpx 20rpx 0 20rpx;
+		border-radius: 20rpx;
+		padding: 40rpx;
+
+		.select-sf {
+			color: #171717;
+			font-size: 34rpx;
+			font-weight: 600;
+		}
+
+		.select-sf1 {
+			color: #999999;
+		}
+
+		.right {
+			color: #CBCBCB
+		}
+	}
+
+	.content2,
+	.content3,
+	.content5 {
+		box-sizing: border-box;
+		background: white;
+		border-radius: 20rpx;
+		padding: 20rpx;
+		margin: 20rpx;
+
+		.row {
+			margin: 30rpx;
+		}
+
+		.row1,
+		.row2 {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+
+			.left .top {
+				display: flex;
+			}
+		}
+	}
+
+	.select-type {
+		display: flex;
+		justify-content: flex-end;
+	}
+
+	.top-title {
+		background: #fff;
+		padding: 20rpx;
+		position: fixed;
+		z-index: 100;
+		top: 0;
+		box-sizing: border-box;
+		width: 100%;
+	}
+
+	.content2 {
+		padding: 40rpx;
+
+		.row1,
+		.row2 {
+			.left {
+				width: 100%;
+			}
+
+			.right {
+				color: #CBCBCB
+			}
+		}
+
+		.row2 {
+			margin-top: 40rpx;
+		}
+
+		.top {
+			display: flex;
+			align-items: center;
+		}
+
+		.bottom {
+			margin-top: 10rpx;
+			padding-left: 72rpx;
+		}
+
+		.title {
+			font-size: 36rpx;
+			font-weight: 700;
+			color: #171717;
+			width: 90%;
+			justify-content: flex-start;
+			// text-align:left;
+		}
+
+		.collect {
+			width: 40rpx;
+			height: 40rpx;
+			line-height: 40rpx;
+			background: #F5BA3C;
+			color: white;
+			// font-size:1px;
+			padding: 6rpx;
+			border-radius: 50%;
+			text-align: center;
+		}
+
+		.send {
+			width: 40rpx;
+			height: 40rpx;
+			line-height: 40rpx;
+			background: #101010;
+			color: white;
+			padding: 6rpx;
+			border-radius: 50%;
+			text-align: center;
+		}
+	}
+
+	.content3 {}
+
+	.content4 {
+		margin: 20rpx;
+		padding-left: 20rpx;
+
+		.title {
+			color: #999999;
+		}
+
+		.btn-text {
+			color: #F5BA3C;
+			border: 1px solid #F5BA3C;
+			border-radius: 40rpx;
+			padding: 0rpx 10rpx;
+			box-sizing: border-box;
+		}
+	}
+
+	.submit {
+		width: 90%;
+		margin: 50rpx auto;
+		font-size: 36rpx;
+		font-weight: 500;
+		color: #FFFFFF;
+		background: #F5BA3C;
+		text-align: center;
+		padding: 20rpx 0;
+		border-radius: 50rpx;
+	}
+	.fa-submit {
+		width: 90%;
+		margin: 50rpx auto;
+		font-size: 36rpx;
+		font-weight: 500;
+		color: #FFFFFF;
+		background: rgb(153, 153, 153);
+		text-align: center;
+		padding: 20rpx 0;
+		border-radius: 50rpx;
+	}
+
+	.select-data {
+		color: #999999;
+	}
+
+	.row-bgc {
+		background: #F7F8FA;
+		padding: 20rpx 30rpx;
+		box-sizing: border-box;
+		border-radius: 10rpx;
+	}
+
+	.car-input {
+
+		// padding:20rpx;
+		// box-sizing: border-box;
+		// border-radius: 10px;
+	}
+
+	.car-line {
+		margin: 0 20rpx;
+
+	}
+
+	.car-row {
+		display: flex;
+		background: white;
+		padding: 20rpx;
+		box-sizing: border-box;
+		border-radius: 10rpx;
+	}
+
+	uni-navigator {
+		display: inline-block;
+		color: #F5BA3C;
+	}
+
+	.popup .title {
+		position: relative;
+		top: -30rpx;
+		font-size: 36rpx;
+		font-weight: 700;
+	}
+
+	.price-item {
+		display: inline-block;
+		background: rgb(243, 243, 243);
+		border: 1px solid rgb(243, 243, 243);
+		text-align: center;
+		margin-left: 20rpx;
+		padding: 14rpx 30rpx;
+		box-sizing: border-box;
+		font-size: 28rpx;
+		border-radius: 10rpx;
+	}
+
+	.cartype-item {
+		display: inline-block;
+		width: calc(25% - 40rpx);
+		background: rgb(243, 243, 243);
+		border: 1px solid rgb(243, 243, 243);
+		text-align: center;
+		margin: 20rpx;
+		padding: 14rpx 10rpx;
+		box-sizing: border-box;
+		font-size: 28rpx;
+		border-radius: 10rpx;
+	}
+
+	.active {
+		background: rgb(251, 240, 229) !important;
+		border: 1px solid rgb(255, 134, 0) !important;
+		color: rgb(255, 134, 0);
+	}
+
+	.y-price {
+		justify-content: space-between;
+
+		.left {
+			width: 320rpx;
+		}
+
+		.right {
+			width: 100%;
+		}
+	}
+
+	.date-list-item {
+		display: inline-block;
+		background: rgb(243, 243, 243);
+		border: 1px solid rgb(243, 243, 243);
+		box-sizing: border-box;
+		width: calc(25% - 20rpx);
+		text-align: center;
+		margin: 10rpx;
+		padding: 10rpx 0;
+		border-radius: 10rpx;
+	}
+
+	.title-two {
+		margin: 20rpx 0;
+	}
+
+	.time1 {
+		width: 100%;
+		margin: 0 auto;
+		background-color: #FFFFFF;
+		color: #000;
+		height: 450rpx;
+
+		.top {
+			width: 690rpx;
+			margin: 0 auto;
+			height: 100rpx;
+			line-height: 100rpx;
+
+			text {
+				font-weight: bold;
+
+				&:nth-child(1) {
+					font-size: 28rpx;
+					color: #999;
+				}
+
+				&:nth-child(2) {
+					font-size: 28rpx;
+					color: #0A84FF;
+				}
+			}
+		}
+
+		.tip12 {
+			width: 100%;
+			height: 100rpx;
+
+			view {
+				width: 50%;
+				text-align: center;
+				line-height: 100rpx;
+				font-size: 40rpx;
+				color: #000000;
+			}
+		}
+
+		.hours {
+			font-size: 30rpx;
+			font-weight: bold;
+			color: #000;
+		}
+
+		.minutes {
+			font-size: 30rpx;
+			font-weight: bold;
+			color: #000;
+		}
+	}
+
+	.picker {
+		width: 100%;
+		height: 300rpx;
+	}
+</style>

+ 3 - 3
pages/mine/agentCargoOwner.vue

@@ -34,7 +34,7 @@
 		</view>
 		<u-toast ref="uToast"></u-toast>
 		<u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :closeOnClickOverlay='true'
-			:showCancelButton='true' confirmColor='#2772FB' @confirm="$u.throttle(confirmClick(), 1000)" @close="cancelClick"
+			:showCancelButton='true' confirmColor='#F5BA3C' @confirm="$u.throttle(confirmClick(), 1000)" @close="cancelClick"
 			@cancel="cancelClick"></u-modal>
 	</mescroll-body>
 </template>
@@ -248,7 +248,7 @@
 	.sqs {
 		background: #F3F8FF;
 		margin-top: 40rpx;
-		color: #2772FB;
+		color: #F5BA3C;
 		padding: 20rpx;
 		border-radius: 15rpx;
 	}
@@ -258,7 +258,7 @@
 	}
 
 	.sq-btn {
-		background: #2772FB;
+		background: #F5BA3C;
 		font-size: 28rpx;
 		color: #FFFFFF;
 		padding: 10rpx 20rpx;

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

@@ -495,7 +495,7 @@
 		}
 
 		.title_css {
-			color: #2772FB;
+			color: #F5BA3C;
 		}
 	}
 
@@ -520,7 +520,7 @@
 		}
 
 		.next-btn {
-			background: #2772FB;
+			background: #F5BA3C;
 			color: #fff;
 			width: 85%;
 			padding: 20rpx 20rpx;

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

@@ -463,7 +463,7 @@
 		}
 
 		.title_css {
-			color: #2772FB;
+			color: #F5BA3C;
 		}
 	}
 
@@ -500,7 +500,7 @@
 		}
 
 		.next-btn.active {
-			background: #2772FB;
+			background: #F5BA3C;
 			color: #fff;
 		}
 	}

+ 1 - 1
pages/mine/cargoowner/editpersonalinformation.vue

@@ -696,7 +696,7 @@
 		}
 
 		.next-btn {
-			background: #2772FB;
+			background: #F5BA3C;
 			width: 85%;
 			padding: 20rpx 20rpx;
 			text-align: center;

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

@@ -69,7 +69,7 @@
 			},
 			join(str, key) {
 				var reg = new RegExp((`(${key})`), "gm");
-				var replace = '<span style="color:#2772FB;">$1</span>';
+				var replace = '<span style="color:#F5BA3C;">$1</span>';
 				return str.replace(reg, replace);
 			},
 			clicksearch(item) {
@@ -252,9 +252,9 @@
 		margin-top:30px;
 	}
 	.legal_person {
-		color: #2772FB;
+		color: #F5BA3C;
 		font-size: 20rpx;
-		border: 1px solid #2772FB;
+		border: 1px solid #F5BA3C;
 		padding: 4rpx 6rpx;
 		border-radius: 10rpx;
 		margin: 8rpx 10rpx 8rpx 0;

+ 4 - 4
pages/mine/company/addcompany.vue

@@ -175,7 +175,7 @@
 			<view class="flex row noborder mt20 flex-space-between">
 				<view class="left-text">视频验证(点击按钮播放视频)</view>
 				<view>
-					<u-button color='#2772FB' type="primary" @click="goDetailPage('/pages/mine/company/companyvideo')"
+					<u-button color='#F5BA3C' type="primary" @click="goDetailPage('/pages/mine/company/companyvideo')"
 						size="mini">重新上传
 					</u-button>
 				</view>
@@ -1015,7 +1015,7 @@
 	}
 
 	.next {
-		color: #2772FB;
+		color: #F5BA3C;
 		font-size: 13px;
 	}
 
@@ -1075,7 +1075,7 @@
 	}
 
 	.type {
-		background: #2772FB;
+		background: #F5BA3C;
 		border-radius: 10rpx;
 		color: white;
 		box-sizing: border-box;
@@ -1179,7 +1179,7 @@
 		margin: 0 auto;
 		text-align: center;
 		color: #fff;
-		background: #2772FB;
+		background: #F5BA3C;
 		background-size: 100%;
 		border-radius: 50rpx;
 		display: flex;

+ 1 - 1
pages/mine/company/companyvideo.nvue

@@ -507,7 +507,7 @@
 			width: 300rpx;
 			height: 100rpx;
 			align-items: center;
-			background: #2772FB;
+			background: #F5BA3C;
 			color: #FFFFFF;
 		}
 		.u-button--disabled{

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

@@ -395,7 +395,7 @@
 		}
 		
 		.verify-btn {
-			background: #2772FB;
+			background: #F5BA3C;
 			font-size: 20px;
 			padding: 10px 0;
 			width: 70%;

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

@@ -173,7 +173,7 @@
 			<view class="flex row noborder mt20 flex-space-between">
 				<view class="left-text">视频验证(点击按钮播放视频)</view>
 				<view>
-					<u-button color='#2772FB' type="primary" @click="goDetailPage('/pages/mine/company/companyvideo')"
+					<u-button color='#F5BA3C' type="primary" @click="goDetailPage('/pages/mine/company/companyvideo')"
 						size="mini">重新上传
 					</u-button>
 				</view>
@@ -965,7 +965,7 @@
 	}
 
 	.next {
-		color: #2772FB;
+		color: #F5BA3C;
 		font-size: 13px;
 	}
 
@@ -1003,7 +1003,7 @@
 	}
 
 	.type {
-		background: #2772FB;
+		background: #F5BA3C;
 		border-radius: 10rpx;
 		color: white;
 		box-sizing: border-box;
@@ -1132,7 +1132,7 @@
 		margin: 0 auto;
 		text-align: center;
 		color: #fff;
-		background: #2772FB;
+		background: #F5BA3C;
 		background-size: 100%;
 		border-radius: 50rpx;
 		display: flex;

+ 6 - 6
pages/mine/company/index.vue

@@ -89,8 +89,8 @@
 			del(item) {
 				var _this = this
 				uni.showModal({ title: '友情提示',
-				    content: '确认删除公司吗?',
-				    success: function (res) {
+				    content: '确认删除公司吗?',
+				    success: function (res) {
 						if (res.confirm) {
 							uni.showLoading({
 								title: '加载中',
@@ -114,7 +114,7 @@
 								});
 						} else if (res.cancel) { 
 							
-						}     
+						}     
 					} 
 				});
 			},
@@ -162,7 +162,7 @@
 		margin: 36px auto 0;
 		color: #fff;
 		// background: url(../../../static/mine/company/Mask@3x.png);
-		background: #2772FB ;
+		background: #F5BA3C ;
 		border-radius: 44rpx;
 		background-size: 100%;
 		line-height: 42px;
@@ -176,7 +176,7 @@
 		margin-top: 20rpx;
 
 		.lookAccount {
-			color: #2772FB;
+			color: #F5BA3C;
 			font-size: 26rpx;
 			margin-top: 112rpx;
 			width: 50%;
@@ -230,7 +230,7 @@
 		margin: 0 auto;
 		text-align: center;
 		color: #fff;
-		background: #2772FB;
+		background: #F5BA3C;
 		background-size: 100%;
 		border-radius: 50rpx;
 		display: flex;

+ 2 - 2
pages/mine/confirm.vue

@@ -13,7 +13,7 @@
 			<button @click="mobileOkPcLogin()" class="row4 btn">取消登录</button>
 		</view>
 		<u-modal :show="isShowAlert" :title="alertTitle" :closeOnClickOverlay='true' :showCancelButton='true'
-			confirmColor='#2772FB' @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal>
+			confirmColor='#F5BA3C' @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal>
 	</view>
 </template>
 
@@ -93,7 +93,7 @@
 	.row3 {
 		margin-top: 300rpx;
 
-		background: #2772FB;
+		background: #F5BA3C;
 		color: white;
 	}
 

+ 15 - 1
pages/mine/index.vue

@@ -125,6 +125,20 @@
 						<!-- <u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon> -->
 					</view>
 				</view>
+				<view class="flex flex-space-between content1-item"
+					@click="goDetailPage('/pages/carSource/index',false)">
+					<view class='flex'>
+						<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>
+						<u-badge v-if='redDotPrompt==0 && hasLogin' :isDot="true" type="error"></u-badge>
+					</view>
+					<view>
+						<image class='right' src="@/static/mine/right.png" mode=""></image>
+						<!-- <u-icon name="arrow-right" color="#7E7E7E" size="10"></u-icon> -->
+					</view>
+				</view>
 				<view class="flex flex-space-between content1-item" @click="$helper.contactCustomerService()">
 					<view class="flex align-center">
 						<u--image style='margin-right:8px;' :showLoading="true" src="../../static/images/mine/kf.png"
@@ -181,7 +195,7 @@
 			</view>
 		</view>
 		<u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :closeOnClickOverlay='true'
-			:showCancelButton='showCancelButton' confirmColor='#2772FB' @confirm="confirmClick" @close="cancelClick"
+			:showCancelButton='showCancelButton' confirmColor='#F5BA3C' @confirm="confirmClick" @close="cancelClick"
 			@cancel="cancelClick"></u-modal>
 		<u-toast ref="uToast"></u-toast>
 	</view>

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

@@ -552,7 +552,7 @@
 	}
 
 	.type {
-		background: #2772FB;
+		background: #F5BA3C;
 		border-radius: 10rpx;
 		color: white;
 		box-sizing: border-box;
@@ -568,7 +568,7 @@
 		position: fixed;
 		bottom: 40rpx;
 		width: 90%;
-		background: #2772FB;
+		background: #F5BA3C;
 		color: white;
 		text-align: center;
 		margin-left: 5%;

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

@@ -310,7 +310,7 @@
 	}
 
 	.type {
-		background: #2772FB;
+		background: #F5BA3C;
 		border-radius: 10rpx;
 		color: white;
 		box-sizing: border-box;
@@ -326,7 +326,7 @@
 		position: fixed;
 		bottom: 40rpx;
 		width: 90%;
-		background: #2772FB;
+		background: #F5BA3C;
 		color: white;
 		text-align: center;
 		margin-left: 5%;

+ 3 - 3
pages/mine/manageBankCards/index.vue

@@ -40,7 +40,7 @@
 			<view class="add_btn" @click="addBankCard">去添加</view>
 		</view>
 		<!-- <view @click="addBankCard">添加银行卡</view> -->
-		 <u-modal :show="isShowAlert" :title="alertTitle" :closeOnClickOverlay='true' :showCancelButton='true' confirmColor='#2772FB'  @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal>
+		 <u-modal :show="isShowAlert" :title="alertTitle" :closeOnClickOverlay='true' :showCancelButton='true' confirmColor='#F5BA3C'  @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal>
 		<u-toast ref="uToast"></u-toast>
 	</view>
 </template>
@@ -294,7 +294,7 @@
 
 	.add-bankcard {
 		background: #EEF4FF;
-		color: #2772FB;
+		color: #F5BA3C;
 		font-weight: 700;
 		font-size: 26rpx;
 		align-items: center;
@@ -360,7 +360,7 @@
 			margin-top: 90rpx;
 		}
 		.add_btn{
-			background: #2772FB;
+			background: #F5BA3C;
 			width: 212rpx;
 			height: 86rpx;
 			margin: 74rpx auto;

+ 2 - 2
pages/mine/myAccount/bankList.vue

@@ -28,7 +28,7 @@
 			</view>
 		</view>
 		<!-- <view @click="addBankCard">添加银行卡</view> -->
-		 <u-modal :show="isShowAlert" :title="alertTitle" :closeOnClickOverlay='true' :showCancelButton='true' confirmColor='#2772FB'  @confirm="$u.throttle(confirmClick(), 1000)" @close="cancelClick" @cancel="cancelClick"></u-modal>
+		 <u-modal :show="isShowAlert" :title="alertTitle" :closeOnClickOverlay='true' :showCancelButton='true' confirmColor='#F5BA3C'  @confirm="$u.throttle(confirmClick(), 1000)" @close="cancelClick" @cancel="cancelClick"></u-modal>
 		<u-toast ref="uToast"></u-toast>
 	</view>
 </template>
@@ -281,7 +281,7 @@
 
 	.add-bankcard {
 		background: #EEF4FF;
-		color: #2772FB;
+		color: #F5BA3C;
 		font-weight: 700;
 		font-size: 26rpx;
 		align-items: center;

+ 2 - 2
pages/mine/myAccount/index.vue

@@ -127,7 +127,7 @@
 		}
 
 		.next_btn {
-			background: #2772FB;
+			background: #F5BA3C;
 			color: #FFFFFF;
 			padding: 25rpx 0;
 			border-radius: 60rpx;
@@ -161,7 +161,7 @@
 					width: 50%;
 					text-align: center;
 					line-height: 60rpx;
-					color: #2772FB;
+					color: #F5BA3C;
 				}
 
 				.btn {

+ 2 - 2
pages/mine/myAccount/withdrawal.vue

@@ -65,7 +65,7 @@
 		</view>
 		<u-toast ref="uToast"></u-toast>
 		<u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :closeOnClickOverlay='true'
-			:showCancelButton='showCancelButton' confirmColor='#2772FB' @confirm="$u.throttle(confirmClick(), 1000)" @close="cancelClick"
+			:showCancelButton='showCancelButton' confirmColor='#F5BA3C' @confirm="$u.throttle(confirmClick(), 1000)" @close="cancelClick"
 			@cancel="cancelClick"></u-modal>
 			<view @click="$u.throttle(submit, 1000)" class='newlyIncreased'>提交</view>
 		<!-- <u-button type="primary" text="提交" @click="submit" class="btn_css"></u-button> -->
@@ -292,7 +292,7 @@
 		margin: 20px auto;
 		text-align: center;
 		color: #fff;
-		background: #2772FB;
+		background: #F5BA3C;
 		background-size: 100%;
 		border-radius: 50rpx;
 		display: flex;

+ 2 - 2
pages/mine/set.vue

@@ -55,7 +55,7 @@
 			<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='#2772FB' confirm-text='确定' :title='title'
+			:content-style="{fontSize: '14px',fontWeight:'400'}" confirm-color='#F5BA3C' confirm-text='确定' :title='title'
 			:showCancelButton='true' :content="content" @confirm="logout" @cancel="cancelClick"></u-modal>
 	</view>
 </template>
@@ -257,7 +257,7 @@
 	.exitlogin {
 		background: #fff;
 		border-radius: 10px;
-		color: #2772FB;
+		color: #F5BA3C;
 		font-size: 17px;
 	}
 

+ 1 - 1
pages/mine/settings/editAvatar.vue

@@ -136,7 +136,7 @@
 
 	.submit {
 		margin-top: 20rpx;
-		background: #2772FB;
+		background: #F5BA3C;
 		border-radius: 50rpx;
 		padding: 20rpx 0;
 		color: white;

+ 1 - 1
pages/mine/settings/editPassword.vue

@@ -223,7 +223,7 @@
 	}
 
 	.code-style {
-		background: #2772FB;
+		background: #F5BA3C;
 		color: white;
 	}
 

+ 2 - 2
pages/news/index.vue

@@ -70,7 +70,7 @@
 				isShowAlert: false,
 				showCancelButton: true,
 				src: 'https://cdn.uviewui.com/uview/album/1.jpg',
-				bgColor: '#317AFE',
+				bgColor: '#F5BA3C',
 				value: 100,
 				news: [], // 数据列表
 				badgeOffset: [0, -5],
@@ -285,7 +285,7 @@
 		position: absolute;
 		width: 100%;
 		height: 519rpx;
-		// background: linear-gradient(180deg, #317AFE 0%, #F8F9FC 100%);
+		// background: linear-gradient(180deg, #F5BA3C 0%, #F8F9FC 100%);
 
 	}
 

+ 4 - 4
pages/order/confirmLoading.vue

@@ -82,7 +82,7 @@
 			<view class="submit" @click="submit(3)">提交</view>
 		</view>
 		<u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :closeOnClickOverlay='true'
-			:showCancelButton='true' confirmColor='#2772FB' @confirm="confirmClick" @close="cancelClick"
+			:showCancelButton='true' confirmColor='#F5BA3C' @confirm="confirmClick" @close="cancelClick"
 			@cancel="cancelClick"></u-modal>
 		<master-keyboard ref="keyboard" keyboardtype="car" :show="keyShow" :randomNumber="true" :newCar="false"
 			:defaultValue="carNumber" @keyboardClick="handleClick"></master-keyboard>
@@ -454,7 +454,7 @@
 
 	.store {
 		padding: 20rpx 30rpx;
-		color: #2772FB;
+		color: #F5BA3C;
 		width: 40%;
 		background: #EEF4FF;
 		border-radius: 40rpx;
@@ -467,7 +467,7 @@
 		padding: 20rpx 30rpx;
 		color: white;
 		width: 40%;
-		background: #2772FB;
+		background: #F5BA3C;
 		border-radius: 40rpx;
 		text-align: center;
 	}
@@ -477,7 +477,7 @@
 	}
 
 	.sx-style {
-		background: #2772FB;
+		background: #F5BA3C;
 		color: white;
 		padding: 2rpx 16rpx;
 		box-sizing: border-box;

+ 5 - 5
pages/order/driverDetail.vue

@@ -11,7 +11,7 @@
 
 				<view class="right flex s-row align-center phone">
 					<view class="bgc flex flex-space-between">
-						<u-icon class="phone" name="phone-fill" color="#2772FB" size="20" @click="toPhone"></u-icon>
+						<u-icon class="phone" name="phone-fill" color="#F5BA3C" size="20" @click="toPhone"></u-icon>
 						<view class="hz-name">联系司机</view>
 					</view>
 				</view>
@@ -398,7 +398,7 @@
 
 		.hz-name {
 			font-size: 26rpx;
-			color: #2772FB;
+			color: #F5BA3C;
 		}
 
 	}
@@ -417,7 +417,7 @@
 		}
 
 		.pf-number {
-			color: #2772FB;
+			color: #F5BA3C;
 		}
 	}
 
@@ -438,7 +438,7 @@
 		bottom: -10rpx;
 		width: 40rpx;
 		height: 6rpx;
-		background: #2772FB;
+		background: #F5BA3C;
 		left: 0;
 		right: 0;
 		margin: auto;
@@ -494,7 +494,7 @@
 	}
 
 	.btn-active {
-		background-color: #2772FB;
+		background-color: #F5BA3C;
 		color: white;
 		border-radius: 50rpx;
 		display: flex;

+ 1 - 1
pages/order/fk.vue

@@ -191,7 +191,7 @@
 
 	.row3 {
 		width: 80%;
-		background: #2772FB;
+		background: #F5BA3C;
 		text-align: center;
 		color: white;
 		padding: 20rpx;

+ 14 - 14
pages/order/index.vue

@@ -7,8 +7,8 @@
 					<view>订单</view>
 					<u-icon class="search" name="search" color="" size="28" @click="search"></u-icon>
 				</view>
-				<u-tabs :list="tabList" @click="clickTab" lineColor='#2772FB' :current='tabIndex' :activeStyle="{
-								color: '#2772FB',
+				<u-tabs :list="tabList" @click="clickTab" lineColor='#F5BA3C' :current='tabIndex' :activeStyle="{
+								color: '#F5BA3C',
 								fontWeight: 'bold',
 								transform: 'scale(1.05)'
 							}"></u-tabs>
@@ -21,7 +21,7 @@
 				<view class="tab-content">
 					<u-tabs :list="tabList" @click="clickTab" lineColor='transparent' :current='tabIndex'
 						:inactiveStyle="{color:'white'}" :activeStyle="{
-										color: '#2772FB',
+										color: '#F5BA3C',
 										fontWeight: 'bold',
 										transform: 'scale(1.05)',
 										background:'white',
@@ -140,7 +140,7 @@
 							</image> -->
 						<view
 							v-if="good.cargoOwnerStatus=='运输中'||good.cargoOwnerStatus=='已完结'||good.cargoOwnerStatus=='待收货'"
-							style='border:1px solid #2772FB' class="start normal look-map" @click.stop="toMap(good)">
+							style='border:1px solid #F5BA3C' class="start normal look-map" @click.stop="toMap(good)">
 							查看轨迹</view>
 						<view class="stop" @click.stop="accept(good,1)" v-if="good.cargoOwnerStatus=='待接单'">接受
 						</view>
@@ -254,7 +254,7 @@
 				objData: {},
 				showMenu: false,
 				searchStyle: {
-					background: "#317AFE",
+					background: "#F5BA3C",
 					color: 'white',
 					position: "absolute",
 					right: "30rpx",
@@ -761,7 +761,7 @@
 	}
 
 	.top-content {
-		background: url(../../static/images/order/bg.png) no-repeat;
+		background: #F5BA3C;
 		background-size: cover;
 		padding: 20rpx;
 		position: fixed;
@@ -783,7 +783,7 @@
 
 	// .fixed,
 	// .fixed1 {
-	// 	background: #2772FB;
+	// 	background: #F5BA3C;
 	// 	position: fixed;
 	// 	top: var(--status-bar-height);
 	// 	z-index: 999;
@@ -808,7 +808,7 @@
 	.fixed1 {
 		top: 0;
 		height: var(--status-bar-height);
-		background: #317AFE;
+		background: #F5BA3C;
 		// position: fixed;
 		// z-index: 9999;
 	}
@@ -1003,7 +1003,7 @@
 	// 	}
 
 	// 	.qd {
-	// 		background: linear-gradient(97deg, #4FABFD 0%, #2772FB 100%);
+	// 		background: linear-gradient(97deg, #4FABFD 0%, #F5BA3C 100%);
 	// 		border-radius: 13px;
 	// 		font-size: 29rpx;
 	// 		font-weight: 400;
@@ -1065,7 +1065,7 @@
 		position: absolute;
 		width: 88rpx;
 		height: 88rpx;
-		background: #317AFE;
+		background: #F5BA3C;
 		box-shadow: -14px 0px 8px -8px rgba(0, 53, 149, 0.21);
 		display: flex;
 		flex-direction: column;
@@ -1105,7 +1105,7 @@
 		}
 
 		.menu-active {
-			background: #2772FB;
+			background: #F5BA3C;
 			color: white;
 		}
 	}
@@ -1126,8 +1126,8 @@
 	}
 
 	.look-map {
-		background: #2772FB;
-		border: 1px solid #2772FB;
+		background: #F5BA3C;
+		border: 1px solid #F5BA3C;
 		color: white;
 	}
 
@@ -1163,7 +1163,7 @@
 	}
 
 	.termination.active {
-		background: #2772FB;
+		background: #F5BA3C;
 		color: white;
 	}
 

+ 1 - 1
pages/order/jb.vue

@@ -210,7 +210,7 @@
 
 	.row3 {
 		width: 80%;
-		background: #2772FB;
+		background: #F5BA3C;
 		text-align: center;
 		color: white;
 		padding: 20rpx;

+ 3 - 3
pages/order/orderDetails.vue

@@ -69,7 +69,7 @@
 					<view class="bgc">
 						<image class="phone" style='width:24px;height:24px;' src="../../static/images/dianhua.png"
 							@click="toPhone" mode=""></image>
-						<!-- <u-icon class="phone" name="phone-fill" color="#2772FB" size="20" @click="toPhone"></u-icon> -->
+						<!-- <u-icon class="phone" name="phone-fill" color="#F5BA3C" size="20" @click="toPhone"></u-icon> -->
 					</view>
 
 					<view class="hz-name">联系司机</view>
@@ -1080,7 +1080,7 @@
 
 				.hz-name {
 					font-size: 26rpx;
-					color: #2772FB;
+					color: #F5BA3C;
 				}
 
 			}
@@ -1343,7 +1343,7 @@
 	}
 
 	.termination.active {
-		background: #2772FB;
+		background: #F5BA3C;
 		color: white;
 	}
 

+ 2 - 2
pages/order/signContract.vue

@@ -624,7 +624,7 @@
 
 	.saveBtn {
 		width: 80%;
-		background: #2772FB;
+		background: #F5BA3C;
 		color: white;
 		text-align: center;
 		border-radius: 50rpx;
@@ -644,7 +644,7 @@
 	uni-navigator {
 		//条款
 		display: inline-block;
-		color: #2772FB;
+		color: #F5BA3C;
 
 	}
 

+ 2 - 2
pages/public/login.vue

@@ -328,7 +328,7 @@
 	}
 
 	.cuIcon-weixin {
-		background: #2772FB;
+		background: #F5BA3C;
 		color: #fff;
 		font-size: 18px;
 		padding: 9px;
@@ -376,7 +376,7 @@
 	}
 
 	.verificationCode.active {
-		background: #2772FB;
+		background: #F5BA3C;
 		color: #fff;
 	}
 

+ 2 - 2
pages/public/loginOther.vue

@@ -171,7 +171,7 @@
 	}
 
 	.cuIcon-weixin {
-		background: #2772FB;
+		background: #F5BA3C;
 		color: #fff;
 		font-size: 18px;
 		padding: 9px;
@@ -222,7 +222,7 @@
 	}
 
 	.verificationCode.active {
-		background: #2772FB;
+		background: #F5BA3C;
 		color: #fff;
 	}
 

+ 5 - 5
pages/public/register.vue

@@ -397,7 +397,7 @@
 <style lang='scss' scoped>
 	uni-navigator {
 		display: inline-block;
-		color: #2772FB;
+		color: #F5BA3C;
 	}
 
 	.password {
@@ -420,7 +420,7 @@
 	}
 
 	.cuIcon-weixin {
-		background: #2772FB;
+		background: #F5BA3C;
 		color: #fff;
 		font-size: 18px;
 		padding: 9px;
@@ -508,7 +508,7 @@
 	}
 
 	.verificationCode.active {
-		background: #2772FB;
+		background: #F5BA3C;
 		color: #fff;
 	}
 
@@ -531,11 +531,11 @@
 
 	uni-navigator {
 		display: inline-block;
-		color: #2772FB;
+		color: #F5BA3C;
 	}
 
 	.activeCode {
-		background: #2772FB;
+		background: #F5BA3C;
 		color: #fff;
 	}
 

+ 2 - 2
pages/release/addAddress.vue

@@ -42,7 +42,7 @@
 			</view>
 		</view>
 		<u-modal :show="isShowAlert" :title="alertTitle" :closeOnClickOverlay='true' :showCancelButton='true'
-			confirmColor='#2772FB' @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal>
+			confirmColor='#F5BA3C' @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal>
 		<view class="submit" @click="$u.throttle(submit(), 1000)">提交</view>
 		<u-toast ref="uToast"></u-toast>
 	</view>
@@ -248,7 +248,7 @@
 		width: 80%;
 		font-size: 36rpx;
 		color: #FFFFFF;
-		background: #2772FB;
+		background: #F5BA3C;
 		border-radius: 50rpx;
 		padding: 20rpx 0;
 		left: 0;

+ 2 - 2
pages/release/editAddress.vue

@@ -34,7 +34,7 @@
 			</view>
 		</view>
 		<u-modal :show="isShowAlert" :title="alertTitle" :closeOnClickOverlay='true' :showCancelButton='true'
-			confirmColor='#2772FB' @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal>
+			confirmColor='#F5BA3C' @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal>
 		<view class="submit" @click="$u.throttle(submit, 1000)">提交</view>
 		<u-toast ref="uToast"></u-toast>
 	</view>
@@ -214,7 +214,7 @@
 		width: 80%;
 		font-size: 36rpx;
 		color: #FFFFFF;
-		background: #2772FB;
+		background: #F5BA3C;
 		border-radius: 50rpx;
 		padding: 20rpx 0;
 		left: 0;

+ 6 - 6
pages/release/editRelease.vue

@@ -236,7 +236,7 @@
 		</u-picker> -->
 		<itmister-date-picker :dateStatus="2" :startYear='2022' ref="datezc" :futureYear="30" :checkYear="year" :checkMonth="month" :checkDay="day" @dateConfirm="confirmValidityPeriod"></itmister-date-picker>
 		<u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :closeOnClickOverlay='true'
-			:showCancelButton='true' confirmColor='#2772FB' @confirm="$u.throttle(confirmClick(), 1000)" @close="cancelClick"
+			:showCancelButton='true' confirmColor='#F5BA3C' @confirm="$u.throttle(confirmClick(), 1000)" @close="cancelClick"
 			@cancel="cancelClick"></u-modal>
 		<u-toast ref="uToast"></u-toast>
 	</view>
@@ -1043,7 +1043,7 @@
 			width: 40rpx;
 			height: 40rpx;
 			line-height: 40rpx;
-			background: #2772FB;
+			background: #F5BA3C;
 			color: white;
 			padding: 6rpx;
 			border-radius: 50%;
@@ -1073,8 +1073,8 @@
 		}
 
 		.btn-text {
-			color: #2772FB;
-			border: 1px solid #2772FB;
+			color: #F5BA3C;
+			border: 1px solid #F5BA3C;
 			border-radius: 40rpx;
 			padding: 0rpx 10rpx;
 			box-sizing: border-box;
@@ -1087,7 +1087,7 @@
 		font-size: 36rpx;
 		font-weight: 500;
 		color: #FFFFFF;
-		background: #2772FB;
+		background: #F5BA3C;
 		text-align: center;
 		padding: 20rpx 0;
 		border-radius: 50rpx;
@@ -1125,6 +1125,6 @@
 	}
 	uni-navigator {//条款
 		display: inline-block;
-		color: #2772FB;
+		color: #F5BA3C;
 	}
 </style>

+ 2 - 2
pages/release/lookRelease.vue

@@ -430,8 +430,8 @@
 		}
 
 		.btn-text {
-			color: #2772FB;
-			border: 1px solid #2772FB;
+			color: #F5BA3C;
+			border: 1px solid #F5BA3C;
 			border-radius: 20rpx;
 			padding: 0rpx 10rpx;
 			box-sizing: border-box;

+ 2 - 2
pages/release/record.vue

@@ -683,7 +683,7 @@
 	// 	}
 
 	// 	.qd {
-	// 		background: linear-gradient(97deg, #4FABFD 0%, #2772FB 100%);
+	// 		background: linear-gradient(97deg, #4FABFD 0%, #F5BA3C 100%);
 	// 		border-radius: 13px;
 	// 		font-size: 29rpx;
 	// 		font-weight: 400;
@@ -766,7 +766,7 @@
 		transform: translate(-50%);
 		height: 4px;
 		bottom: 0;
-		background: #2772FB;
+		background: #F5BA3C;
 		border-radius: 2px;
 	}
 </style>

+ 7 - 7
pages/release/release.vue

@@ -265,10 +265,10 @@
 			@cancel='isBusinessType=false'>
 		</u-picker>
 		<u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :closeOnClickOverlay='false'
-			:showCancelButton='showCancelButton' confirmColor='#2772FB' @confirm="$u.throttle(confirmClick(), 1000)"
+			:showCancelButton='showCancelButton' confirmColor='#F5BA3C' @confirm="$u.throttle(confirmClick(), 1000)"
 			@close="cancelClick" @cancel="cancelClick"></u-modal>
 		<u-modal :show="isShowAlert1" :title="alertTitle" :confirmText='confirmText' :content='alertContent'
-			:closeOnClickOverlay='false' :showCancelButton='showCancelButton' confirmColor='#2772FB'
+			:closeOnClickOverlay='false' :showCancelButton='showCancelButton' confirmColor='#F5BA3C'
 			@confirm="$u.throttle(confirmClick(), 1000)" @close="cancelClick" @cancel="cancelClick"></u-modal>
 		<u-toast ref="uToast"></u-toast>
 
@@ -1296,7 +1296,7 @@
 			width: 40rpx;
 			height: 40rpx;
 			line-height: 40rpx;
-			background: #2772FB;
+			background: #F5BA3C;
 			color: white;
 			// font-size:1px;
 			padding: 6rpx;
@@ -1327,8 +1327,8 @@
 		}
 
 		.btn-text {
-			color: #2772FB;
-			border: 1px solid #2772FB;
+			color: #F5BA3C;
+			border: 1px solid #F5BA3C;
 			border-radius: 40rpx;
 			padding: 0rpx 10rpx;
 			box-sizing: border-box;
@@ -1341,7 +1341,7 @@
 		font-size: 36rpx;
 		font-weight: 500;
 		color: #FFFFFF;
-		background: #2772FB;
+		background: #F5BA3C;
 		text-align: center;
 		padding: 20rpx 0;
 		border-radius: 50rpx;
@@ -1380,6 +1380,6 @@
 
 	uni-navigator {
 		display: inline-block;
-		color: #2772FB;
+		color: #F5BA3C;
 	}
 </style>

+ 3 - 3
pages/release/selectAddress.vue

@@ -52,7 +52,7 @@
 			<view class="btn-right" @click="selectAddress(1)">新增常用地址</view>
 		</view>
 		<u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :closeOnClickOverlay='true'
-			:showCancelButton='showCancelButton' confirmColor='#2772FB' @confirm="$u.throttle(confirmClick, 1000)"
+			:showCancelButton='showCancelButton' confirmColor='#F5BA3C' @confirm="$u.throttle(confirmClick, 1000)"
 			@close="cancelClick" @cancel="cancelClick"></u-modal>
 		<u-toast ref="uToast"></u-toast>
 	</view>
@@ -408,7 +408,7 @@
 			width: 30%;
 			font-size: 32rpx;
 			font-weight: 500;
-			color: #2772FB;
+			color: #F5BA3C;
 			background-color: #EEF4FF;
 			padding: 20rpx 40rpx;
 			border-radius: 40rpx;
@@ -420,7 +420,7 @@
 			font-size: 32rpx;
 			font-weight: 500;
 			color: white;
-			background-color: #2772FB;
+			background-color: #F5BA3C;
 			padding: 20rpx 40rpx;
 			border-radius: 50rpx;
 		}

BIN
static/banner.jpg


BIN
static/banner@2x.png


+ 2 - 2
static/css/common.scss

@@ -104,14 +104,14 @@
 	background:yellow;
 }
 .btn-color{
-	background: #2772FB!important;
+	background: #F5BA3C!important;
 	color: white!important;
 }
 .h-color{
 	color: #FE6300;
 }
 .number-color{
-	color:#2772FB;
+	color:#F5BA3C;
 }
 // 颜色相关end
 // 文字相关start

BIN
static/images/1.png


BIN
static/images/carSource/dianhua.png


BIN
static/images/common/bz@2x.png


BIN
static/images/common/dingdan@2x.png


BIN
static/images/common/huoyuan@2x.png


BIN
static/images/common/jt.png


BIN
static/images/common/my@2x.png


BIN
static/images/common/quxiao@2x.png


BIN
static/images/common/top@2x.png


BIN
static/images/common/xiaoxi@2x.png


BIN
static/images/dianhua.png


BIN
static/images/goodSource/Mask@2x.png


BIN
static/images/goodSource/banner@2x.png


BIN
static/images/goodSource/jx.png


BIN
static/images/mine/duihao@2x.png


BIN
static/images/mine/wxz.png


BIN
static/images/news/bg.png


BIN
static/images/news/xt.png


BIN
static/images/order/bg.png


BIN
static/images/order/jt.png


BIN
static/images/order/position.png


BIN
static/logo.png


BIN
static/mine/duihao@2x.png


BIN
static/mine/fabu.png


BIN
static/mine/huoyuan_check.png


BIN
static/mine/tongzhi_check.png


BIN
static/mine/wode_check.png


BIN
static/mine/wodefabu.png


BIN
static/mine/wxz.png


BIN
static/mine/zhaoche_check.png


BIN
static/xiangpica@2x.png


BIN
static/xj.png