@dongkboy преди 1 година
родител
ревизия
7236c08d40

+ 3 - 0
.idea/.gitignore

@@ -0,0 +1,3 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml

+ 0 - 10
AndroidManifest.xml

@@ -1,10 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
-	package="uni.UNID4FE29A">
-	<!--permissions-->
-
-	<application>
-		<!--meta-data-->
-		<meta-data android:name="EasyGoClient" android:value="true" />
-
-	</application>
-</manifest>

+ 0 - 1
components/modules/my/my-list-item.vue

@@ -30,7 +30,6 @@
 		},
 		methods: {
 			clickevent() {
-				console.log(this.someData)
 				switch (this.item.clicktype) {
 					case "navigateTo":
 						if (this.item.url) {

+ 129 - 0
components/modules/orders/springBox.vue

@@ -0,0 +1,129 @@
+<template>
+	//这里是搜索框的输入框 不需要的可以删掉
+	<view>
+		<view class="arrivalSearch">
+			<view class="arrivalSmallsearch">
+				<view class="arrivalSearchInput">
+					<input type="text" :placeholder="dateinit">
+				</view>
+				//这里是输入框旁边的图标(这里的图标是一张图片)
+				<image src="../../static/img/nav.png" mode="aspectFill" @click.stop="ShowHidden = !ShowHidden"> </image>
+			</view>
+		</view>
+		//这里是弹出来的下拉筛选框
+		<view class="arrivalNavigation">
+			<view class="d4"></view>
+			<view class="sideNavigation">
+				<nav>
+					<li>到货查询</li>
+					<view class="liBottomBorder"></view>
+					<li>门店查询</li>
+					<view class="liBottomBorder"></view>
+					<li>货号查询</li>
+					<view class="liBottomBorder"></view>
+					<li>降价查询</li>
+				</nav>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				ShowHidden: false,
+				dateinit: '请输入货号',
+			};
+		},
+		methods: {
+			// 点击页面事件 隐藏需要隐藏的区域
+			HiddenClick() {
+				this.ShowHidden = false
+			},
+		},
+		mounted() {
+			// document.addEventListener('click', this.HiddenClick)
+		},
+	}
+</script>
+
+<style lang="less">
+	.arrivalSearch {
+		width: 100%;
+		height: 100rpx;
+		background-color: #fff;
+		box-shadow: 0 0 10rpx #eee;
+
+		.arrivalSmallsearch {
+			width: 96%;
+			display: flex;
+
+			.arrivalSearchInput {
+				height: 70rpx;
+				background-color: #F0F1F6;
+				border-radius: 40rpx;
+				font-size: 25rpx;
+				margin-left: 10rpx;
+				margin-top: 10rpx;
+				width: 608rpx;
+			}
+
+			input {
+				width: 80%;
+				margin-left: 40rpx;
+				margin-top: 10rpx;
+			}
+
+			image {
+				width: 40rpx;
+				height: 40rpx;
+				margin-left: 20rpx;
+				margin-top: 20rpx;
+			}
+		}
+
+	}
+
+	//从这里开始是弹出框的样式  不需要搜索框的 前面样式都不用加
+	.arrivalNavigation {
+		width: 250rpx;
+		position: absolute;
+		right: 20rpx;
+		z-index: 99;
+
+		.sideNavigation {
+			width: 248rpx;
+			background-color: #202020;
+			color: #eee;
+			border-radius: 10rpx;
+
+			li {
+				height: 85rpx;
+				text-align: center;
+				line-height: 85rpx;
+				font-size: 25rpx;
+			}
+
+			.liBottomBorder {
+				border: 0.1rpx solid #373737;
+			}
+
+		}
+
+		.d4 {
+			// position: absolute;
+			//  	left: 140rpx;
+			width: 0;
+			height: 0;
+			margin-left: 150rpx;
+			margin-top: -20rpx;
+			border-width: 20rpx;
+			border-style: solid;
+			border-color: transparent #333 transparent transparent;
+			transform: rotate(90deg);
+			/*顺时针旋转90°*/
+
+		}
+	}
+</style>

+ 0 - 278
components/uni-transition/uni-transition.vue

@@ -1,278 +0,0 @@
-<template>
-	<view v-if="isShow" ref="ani" class="uni-transition" :class="[ani.in]" :style="'transform:' +transform+';'+stylesObject" @click="change">
-		<slot></slot>
-	</view>
-</template>
-
-<script>
-	// #ifdef APP-NVUE
-	const animation = uni.requireNativePlugin('animation');
-	// #endif
-	/**
-	 * Transition 过渡动画
-	 * @description 简单过渡动画组件
-	 * @tutorial https://ext.dcloud.net.cn/plugin?id=985
-	 * @property {Boolean} show = [false|true] 控制组件显示或隐藏
-	 * @property {Array} modeClass = [fade|slide-top|slide-right|slide-bottom|slide-left|zoom-in|zoom-out] 过渡动画类型
-	 *  @value fade 渐隐渐出过渡
-	 *  @value slide-top 由上至下过渡
-	 *  @value slide-right 由右至左过渡
-	 *  @value slide-bottom 由下至上过渡
-	 *  @value slide-left 由左至右过渡
-	 *  @value zoom-in 由小到大过渡
-	 *  @value zoom-out 由大到小过渡
-	 * @property {Number} duration 过渡动画持续时间
-	 * @property {Object} styles 组件样式,同 css 样式,注意带’-‘连接符的属性需要使用小驼峰写法如:`backgroundColor:red`
-	 */
-	export default {
-		name: 'uniTransition',
-		props: {
-			show: {
-				type: Boolean,
-				default: false
-			},
-			modeClass: {
-				type: Array,
-				default () {
-					return []
-				}
-			},
-			duration: {
-				type: Number,
-				default: 300
-			},
-			styles: {
-				type: Object,
-				default () {
-					return {}
-				}
-			}
-		},
-		data() {
-			return {
-				isShow: false,
-				transform: '',
-				ani: {
-					in: '',
-					active: ''
-				}
-			};
-		},
-		watch: {
-			show: {
-				handler(newVal) {
-					if (newVal) {
-						this.open()
-					} else {
-						this.close()
-					}
-				},
-				immediate: true
-			}
-		},
-		computed: {
-			stylesObject() {
-				let styles = {
-					...this.styles,
-					'transition-duration': this.duration / 1000 + 's'
-				}
-				let transfrom = ''
-				for (let i in styles) {
-					let line = this.toLine(i)
-					transfrom += line + ':' + styles[i] + ';'
-				}
-				return transfrom
-			}
-		},
-		created() {
-			// this.timer = null
-			// this.nextTick = (time = 50) => new Promise(resolve => {
-			// 	clearTimeout(this.timer)
-			// 	this.timer = setTimeout(resolve, time)
-			// 	return this.timer
-			// });
-		},
-		methods: {
-			change() {
-				this.$emit('click', {
-					detail: this.isShow
-				})
-			},
-			open() {
-				this.isShow = true
-				this.transform = ''
-				this.ani.in = ''
-				for (let i in this.getTranfrom(false)) {
-					if (i === 'opacity') {
-						this.ani.in = 'fade-in'
-					} else {
-						this.transform += `${this.getTranfrom(false)[i]} `
-					}
-				}
-				this.$nextTick(() => {
-					setTimeout(() => {
-						this._animation(true)
-					}, 50)
-				})
-
-			},
-			close(type) {
-				this._animation(false)
-			},
-			_animation(type) {
-				let styles = this.getTranfrom(type)
-				// #ifdef APP-NVUE
-				if (!this.$refs['ani']) return
-				animation.transition(this.$refs['ani'].ref, {
-					styles,
-					duration: this.duration, //ms
-					timingFunction: 'ease',
-					needLayout: false,
-					delay: 0 //ms
-				}, () => {
-					if (!type) {
-						this.isShow = false
-					}
-					this.$emit('change', {
-						detail: this.isShow
-					})
-				})
-				// #endif
-				// #ifndef APP-NVUE
-				this.transform = ''
-				for (let i in styles) {
-					if (i === 'opacity') {
-						this.ani.in = `fade-${type?'out':'in'}`
-					} else {
-						this.transform += `${styles[i]} `
-					}
-				}
-				clearTimeout(this.timer)
-				this.timer = setTimeout(() => {
-					if (!type) {
-						this.isShow = false
-					}
-					this.$emit('change', {
-						detail: this.isShow
-					})
-
-				}, this.duration)
-				// #endif
-
-			},
-			getTranfrom(type) {
-				let styles = {
-					transform: ''
-				}
-				this.modeClass.forEach((mode) => {
-					switch (mode) {
-						case 'fade':
-							styles.opacity = type ? 1 : 0
-							break;
-						case 'slide-top':
-							styles.transform += `translateY(${type?'0':'-100%'}) `
-							break;
-						case 'slide-right':
-							styles.transform += `translateX(${type?'0':'100%'}) `
-							break;
-						case 'slide-bottom':
-							styles.transform += `translateY(${type?'0':'100%'}) `
-							break;
-						case 'slide-left':
-							styles.transform += `translateX(${type?'0':'-100%'}) `
-							break;
-						case 'zoom-in':
-							styles.transform += `scale(${type?1:0.8}) `
-							break;
-						case 'zoom-out':
-							styles.transform += `scale(${type?1:1.2}) `
-							break;
-					}
-				})
-				return styles
-			},
-			_modeClassArr(type) {
-				let mode = this.modeClass
-				if (typeof(mode) !== "string") {
-					let modestr = ''
-					mode.forEach((item) => {
-						modestr += (item + '-' + type + ',')
-					})
-					return modestr.substr(0, modestr.length - 1)
-				} else {
-					return mode + '-' + type
-				}
-			},
-			// getEl(el) {
-			// 	console.log(el || el.ref || null);
-			// 	return el || el.ref || null
-			// },
-			toLine(name) {
-				return name.replace(/([A-Z])/g, "-$1").toLowerCase();
-			}
-		}
-	}
-</script>
-
-<style scoped>
-	.uni-transition {
-		transition-timing-function: ease;
-		transition-duration: 0.3s;
-		transition-property: transform, opacity;
-	}
-
-	.fade-in {
-		opacity: 0;
-	}
-
-	.fade-active {
-		opacity: 1;
-	}
-
-	.slide-top-in {
-		/* transition-property: transform, opacity; */
-		transform: translateY(-100%);
-	}
-
-	.slide-top-active {
-		transform: translateY(0);
-		/* opacity: 1; */
-	}
-
-	.slide-right-in {
-		transform: translateX(100%);
-	}
-
-	.slide-right-active {
-		transform: translateX(0);
-	}
-
-	.slide-bottom-in {
-		transform: translateY(100%);
-	}
-
-	.slide-bottom-active {
-		transform: translateY(0);
-	}
-
-	.slide-left-in {
-		transform: translateX(-100%);
-	}
-
-	.slide-left-active {
-		transform: translateX(0);
-		opacity: 1;
-	}
-
-	.zoom-in-in {
-		transform: scale(0.8);
-	}
-
-	.zoom-out-active {
-		transform: scale(1);
-	}
-
-	.zoom-out-in {
-		transform: scale(1.2);
-	}
-</style>

+ 1 - 0
config/baseUrl.js

@@ -46,6 +46,7 @@ const courtConfig = {
 		// #endif
 	}
 };
+
 //手机号验证正则表达式
 const phoneRegular = /^1[3456789]\d{9}$/;
 //邮箱验证正则表达式

+ 29 - 33
config/login.js

@@ -17,31 +17,27 @@ async function login(options = {}) {
 	// 请求登录
 	let res = await $http.post(options.url, options.data);
 	if (res.code != '200') {
-		return uni.showToast({
-			title: res.msg,
-			icon: 'none'
-		});
+		return Promise.resolve(res);
 	} else {
 		if (options.data.account) {
 			uni.setStorageSync('username', options.data.account);
 			uni.setStorageSync('password', options.data.password);
 		}
-	}
-	let loginStatus = await getLoginUserInfo(res.data, options.data.account);
-	if (loginStatus) {
-		// 跳转到首页
-		uni.switchTab({
-			url: "/pages/index/index"
-		})
-		setTimeout(() => {
-			uni.showToast({
-				title: '登录成功',
-				icon: 'none'
-			});
-		}, 500);
+		let loginStatus = await getLoginUserInfo(res.data, options.data.account);
+		if (loginStatus) {
+			// 跳转到首页
+			uni.switchTab({
+				url: "/pages/index/index"
+			})
+			setTimeout(() => {
+				uni.showToast({
+					title: '登录成功',
+					icon: 'none'
+				});
+			}, 500);
 
+		}
 	}
-
 }
 
 // 微信小程序登录
@@ -215,21 +211,21 @@ async function getLoginUserInfo(token, userId) {
 	// 	title: 'userCheckInfo',
 	// 	data: userInfoCheckRes.data
 	// })
-	let avatar;
-	let avatars = await $http.get("/insTaskImage/findById?imgtype=avatar&taskid=" + userId, {}, {
-		header: {
-			Authorization: Author
-		}
-	})
-	if ((avatars.code == '200') && (avatars.data.imgList.length > 0)) {
-		avatar = avatars.data.imgList[0];
-	} else {
-		avatar = "/static/common/avatar.png";
-	}
-	store.commit('setUserModules', {
-		title: 'avatar',
-		data: avatar
-	})
+	// let avatar;
+	// let avatars = await $http.get("/insTaskImage/findById?imgtype=avatar&taskid=" + userId, {}, {
+	// 	header: {
+	// 		Authorization: Author
+	// 	}
+	// })
+	// if ((avatars.code == '200') && (avatars.data.imgList.length > 0)) {
+	// 	avatar = avatars.data.imgList[0];
+	// } else {
+	// 	avatar = "/static/common/avatar.png";
+	// }
+	// store.commit('setUserModules', {
+	// 	title: 'avatar',
+	// 	data: avatar
+	// })
 	return true;
 	// let loginStatus = await getStaffStatus(userId);
 	// if (loginStatus) {

+ 2 - 2
manifest.json

@@ -7,8 +7,8 @@
 		"sizes": "分辨率,192x192",
 		"src": "图片路径"
 	}],
-	"versionName": "1.2.3",
-	"versionCode": 123,
+	"versionName": "1.3.3",
+	"versionCode": 133,
 	"app-plus": {
 		"error": {
 			"url": "hybrid/html/error.html"

+ 149 - 157
node_modules/uview-ui/components/u-steps/u-steps.vue

@@ -1,23 +1,14 @@
 <template>
 	<view class="">
-		<view
-			class="u-steps"
-			:style="{
+		<view class="u-steps" :style="{
 				flexDirection: direction
-			}"
-		>
-			<view class="u-steps__item" 
-				:class="['u-steps__item--' + direction]" 
-				v-for="(item, index) in list" :key="index"
-			>
-				<view
-					class="u-steps__item__num"
-					v-if="mode == 'number'"
-					:style="{
+			}">
+			<view class="u-steps__item" :class="['u-steps__item--' + direction]" v-for="(item, index) in list"
+				:key="index">
+				<view class="u-steps__item__num" v-if="mode == 'number'" :style="{
 						backgroundColor: current < index ? 'transparent' : activeColor,
 						borderColor: current < index ? unActiveColor : activeColor
-					}"
-				>
+					}">
 					<text v-if="current < index" :style="{
 						color: current < index ? unActiveColor : activeColor,
 					}">
@@ -33,7 +24,8 @@
 				}" :class="['u-steps__item__text--' + direction]">
 					{{ item.name }}
 				</text>
-				<view class="u-steps__item__line" :class="['u-steps__item__line--' + mode]" v-if="index < list.length - 1">
+				<view class="u-steps__item__line" :class="['u-steps__item__line--' + mode]"
+					v-if="index < list.length - 1">
 					<u-line :direction="direction" length="100%" :hair-line="false" :color="unActiveColor"></u-line>
 				</view>
 			</view>
@@ -42,159 +34,159 @@
 </template>
 
 <script>
-/**
- * steps 步骤条
- * @description 该组件一般用于完成一个任务要分几个步骤,标识目前处于第几步的场景。
- * @tutorial https://www.uviewui.com/components/steps.html
- * @property {String} mode 设置模式(默认dot)
- * @property {Array} list 数轴条数据,数组。具体见上方示例
- * @property {String} type type主题(默认primary)
- * @property {String} direction row-横向,column-竖向(默认row)
- * @property {Number String} current 设置当前处于第几步
- * @property {String} active-color 已完成步骤的激活颜色,如设置,type值会失效
- * @property {String} un-active-color 未激活的颜色,用于表示未完成步骤的颜色(默认#606266)
- * @example <u-steps :list="numList" active-color="#fa3534"></u-steps>
- */
-export default {
-	name: 'u-steps',
-	props: {
-		// 步骤条的类型,dot|number
-		mode: {
-			type: String,
-			default: 'dot'
-		},
-		// 步骤条的数据
-		list: {
-			type: Array,
-			default() {
-				return [];
+	/**
+	 * steps 步骤条
+	 * @description 该组件一般用于完成一个任务要分几个步骤,标识目前处于第几步的场景。
+	 * @tutorial https://www.uviewui.com/components/steps.html
+	 * @property {String} mode 设置模式(默认dot)
+	 * @property {Array} list 数轴条数据,数组。具体见上方示例
+	 * @property {String} type type主题(默认primary)
+	 * @property {String} direction row-横向,column-竖向(默认row)
+	 * @property {Number String} current 设置当前处于第几步
+	 * @property {String} active-color 已完成步骤的激活颜色,如设置,type值会失效
+	 * @property {String} un-active-color 未激活的颜色,用于表示未完成步骤的颜色(默认#606266)
+	 * @example <u-steps :list="numList" active-color="#fa3534"></u-steps>
+	 */
+	export default {
+		name: 'u-steps',
+		props: {
+			// 步骤条的类型,dot|number
+			mode: {
+				type: String,
+				default: 'dot'
+			},
+			// 步骤条的数据
+			list: {
+				type: Array,
+				default () {
+					return [];
+				}
+			},
+			// 主题类型, primary|success|info|warning|error
+			type: {
+				type: String,
+				default: 'primary'
+			},
+			// 当前哪一步是激活的
+			current: {
+				type: [Number, String],
+				default: 0
+			},
+			// 激活步骤的颜色
+			activeColor: {
+				type: String,
+				default: '#2979ff'
+			},
+			// 未激活的颜色
+			unActiveColor: {
+				type: String,
+				default: '#909399'
+			},
+			// 自定义图标
+			icon: {
+				type: String,
+				default: 'checkmark'
+			},
+			// step的排列方向,row-横向,column-竖向
+			direction: {
+				type: String,
+				default: 'row'
 			}
 		},
-		// 主题类型, primary|success|info|warning|error
-		type: {
-			type: String,
-			default: 'primary'
-		},
-		// 当前哪一步是激活的
-		current: {
-			type: [Number, String],
-			default: 0
-		},
-		// 激活步骤的颜色
-		activeColor: {
-			type: String,
-			default: '#2979ff'
-		},
-		// 未激活的颜色
-		unActiveColor: {
-			type: String,
-			default: '#909399'
+		data() {
+			return {};
 		},
-		// 自定义图标
-		icon: {
-			type: String,
-			default: 'checkmark'
-		},
-		// step的排列方向,row-横向,column-竖向
-		direction: {
-			type: String,
-			default: 'row'
-		}
-	},
-	data() {
-		return {};
-	},
-};
+	};
 </script>
 
 <style lang="scss" scoped>
-@import '../../libs/css/style.components.scss';
-
-$u-steps-item-number-width: 44rpx;
-$u-steps-item-dot-width: 20rpx;
-
-.u-steps {
-	@include vue-flex;
-	
-	.u-steps__item {
-		flex: 1;
-		text-align: center;
-		position: relative;
-		min-width: 100rpx;
-		font-size: 26rpx;
-		color: #8799a3;
+	@import '../../libs/css/style.components.scss';
+
+	$u-steps-item-number-width: 44rpx;
+	$u-steps-item-dot-width: 20rpx;
+
+	.u-steps {
 		@include vue-flex;
-		justify-content: center;
-		flex-direction: column;
-		align-items: center;
-		
-		&--row {
+
+		.u-steps__item {
+			flex: 1;
+			text-align: center;
+			position: relative;
+			min-width: 100rpx;
+			font-size: 26rpx;
+			color: #8799a3;
 			@include vue-flex;
+			justify-content: center;
 			flex-direction: column;
-			
-			.u-steps__item__line {
-				position: absolute;
-				z-index: 0;
-				left: 75%;
-				width: 50%;
-				
-				&--dot {
-					top: calc(#{$u-steps-item-dot-width} / 2);
-				}
-				
-				&--number {
-					top: calc(#{$u-steps-item-number-width} / 2);
+			align-items: center;
+
+			&--row {
+				@include vue-flex;
+				flex-direction: column;
+
+				.u-steps__item__line {
+					position: absolute;
+					z-index: 0;
+					left: 75%;
+					width: 50%;
+
+					&--dot {
+						top: calc(#{$u-steps-item-dot-width} / 2);
+					}
+
+					&--number {
+						top: calc(#{$u-steps-item-number-width} / 2);
+					}
 				}
 			}
-		}
-		
-		&--column {
-			@include vue-flex;
-			flex-direction: row;
-			justify-content: flex-start;
-			min-height: 120rpx;
-			
-			.u-steps__item__line {
-				position: absolute;
-				z-index: 0;
-				height: 50%;
-				top: 75%;
-				
-				&--dot {
-					left: calc(#{$u-steps-item-dot-width} / 2);
-				}
-				
-				&--number {
-					left: calc(#{$u-steps-item-number-width} / 2);
+
+			&--column {
+				@include vue-flex;
+				flex-direction: row;
+				justify-content: flex-start;
+				min-height: 120rpx;
+
+				.u-steps__item__line {
+					position: absolute;
+					z-index: 0;
+					height: 50%;
+					top: 75%;
+
+					&--dot {
+						left: calc(#{$u-steps-item-dot-width} / 2);
+					}
+
+					&--number {
+						left: calc(#{$u-steps-item-number-width} / 2);
+					}
 				}
 			}
-		}
-		
-		&__num {
-			@include vue-flex;
-			align-items: center;
-			justify-content: center;
-			width: $u-steps-item-number-width;
-			height: $u-steps-item-number-width;
-			border: 1px solid #8799a3;
-			border-radius: 50%;
-			overflow: hidden;
-		}
-		
-		&__dot {
-			width: $u-steps-item-dot-width;
-			height: $u-steps-item-dot-width;
-			@include vue-flex;
-			border-radius: 50%;
-		}
-		
-		&__text--row {
-			margin-top: 14rpx;
-		}
-		
-		&__text--column {
-			margin-left: 14rpx;
+
+			&__num {
+				@include vue-flex;
+				align-items: center;
+				justify-content: center;
+				width: $u-steps-item-number-width;
+				height: $u-steps-item-number-width;
+				border: 1px solid #8799a3;
+				border-radius: 50%;
+				overflow: hidden;
+			}
+
+			&__dot {
+				width: $u-steps-item-dot-width;
+				height: $u-steps-item-dot-width;
+				@include vue-flex;
+				border-radius: 50%;
+			}
+
+			&__text--row {
+				margin-top: 14rpx;
+			}
+
+			&__text--column {
+				margin-left: 14rpx;
+			}
 		}
 	}
-}
-</style>
+</style>

+ 1 - 1
node_modules/uview-ui/theme.scss

@@ -24,7 +24,7 @@ $u-type-success-disabled: #71d5a1;
 $u-type-success-dark: #18b566;
 $u-type-success-light: #dbf1e1;
 
-$u-type-error: #fa3534;
+$u-type-error: #ff604f;
 $u-type-error-disabled: #fab6b6;
 $u-type-error-dark: #dd6161;
 $u-type-error-light: #fef0f0;

+ 17 - 0
pages.json

@@ -315,6 +315,16 @@
 				}
 			}
 		},
+		{
+			"path": "pages/tools/addStaff/orderissuer",
+			"style": {
+				"navigationBarTitleText": "添加出单员",
+				"app-plus": {
+					"scrollIndicator": "none", //隐藏滚动条
+					"bounce": "none" //关闭反弹效果
+				}
+			}
+		},
 		{
 			"path": "pages/tools/policy",
 			"style": {
@@ -748,6 +758,13 @@
 				"navigationBarTitleText": "扫码下载",
 				"enablePullDownRefresh": false
 			}
+		},
+		{
+			"path": "pages/register/orderissuer",
+			"style": {
+				"navigationBarTitleText": "出单员注册",
+				"enablePullDownRefresh": false
+			}
 		}
 
 	],

+ 10 - 21
pages/carInsure1/insureItems1.vue

@@ -1016,7 +1016,6 @@
 					if (this.riskList.length > 0) {
 						this.insureCodeList = [];
 						this.riskList.map((ele, index) => {
-
 							// console.log(ele)
 							// switch (ele.riskCode) {
 							// 	case '0507':
@@ -1081,6 +1080,13 @@
 											ele1.amount = ele.deductibleRate;
 											ele1.amountDesc = ele.deductibleRate + '%'
 											break;
+										case "TY1":
+										case "TY2":
+										case "TY3":
+										case "TY4":
+											ele1.amount = ele.serviceTimes;
+											ele1.amountDesc = ele.serviceTimes + '次'
+											break;
 										default:
 											ele1.amount = ele.amount;
 											ele1.amountDesc = this.toChinesNum(ele.amount)
@@ -1092,7 +1098,6 @@
 						})
 						var notselected = this.insureList.filter(item1 => !this.kindList.some(item2 => item2
 							.kindCode === item1.kindCode))
-						console.log(notselected)
 						notselected.map(ele => {
 							ele.amount = '0';
 							ele.amountDesc = '不投保'
@@ -1377,34 +1382,19 @@
 						riskCode: "0510"
 					})
 					this.insureList.map((ele, index) => {
-						if (
-							ele.amount != "0" &&
-							(ele.kindCode == "D4" || ele.kindCode == "SY_FJ_YBW2")
-						) {
+						if (ele.amount != "0" && ["SY_FJ_YBW2", "D4"].includes(ele.kindCode)) {
 							kindList.push({
 								unitAmount: this.insureList[index].amount,
 								kindCode: this.insureList[index].kindCode,
 								kindName: this.insureList[index].kindName
 							});
-						} else if (
-							ele.amount != "0" &&
-							(ele.kindCode == "MJ1" ||
-								ele.kindCode == "MJ2" ||
-								ele.kindCode == "MJ3" ||
-								ele.kindCode == "MJ4")
-						) {
+						} else if (ele.amount != "0" && ["MJ1", "MJ2", "MJ3", "MJ4"].includes(ele.kindCode)) {
 							kindList.push({
 								deductibleRate: this.insureList[index].amount,
 								kindCode: this.insureList[index].kindCode,
 								kindName: this.insureList[index].kindName
 							});
-						} else if (
-							ele.amount != "0" &&
-							(ele.kindCode == "TY1" ||
-								ele.kindCode == "TY2" ||
-								ele.kindCode == "TY3" ||
-								ele.kindCode == "TY4")
-						) {
+						} else if (ele.amount != "0" && ["TY1", "TY2", "TY3", "TY4"].includes(ele.kindCode)) {
 							kindList.push({
 								serviceTimes: String(this.insureList[index].amount),
 								kindCode: this.insureList[index].kindCode,
@@ -1588,7 +1578,6 @@
 	}
 
 	/* 整个页面的统一样式 End */
-
 	.plan-ins-title {
 		background-color: #F4F5F7;
 		height: 88upx;

+ 13 - 3
pages/carInsure1/payCode1.vue

@@ -117,9 +117,19 @@
 					this.jypremium = res.data.jypremium; // 驾意险
 					this.jqStartDate = res.data.jqStartDate; // 交强起保日期
 					this.syStartDate = res.data.syStartDate; // 商业起保日期
-					this.paycodeimg = QR.createQrCodeImg(res.data.qrCodeUrl, {
-						size: parseInt(300) //二维码大小  
-					})
+					if (this.companyName == '太平财险') {
+						let result = res.data.qrCodeUrl.replace(/[\r\n]/g, "");
+						let imgBase64 = `data:image/png;base64,${result}`;
+						base64ToPath(imgBase64)
+							.then(path => {
+								this.paycodeimg = path;
+							})
+					} else {
+						this.paycodeimg = QR.createQrCodeImg(res.data.qrCodeUrl, {
+							size: parseInt(300) //二维码大小  
+						})
+					}
+
 				} else {
 					uni.showModal({
 						showCancel: false,

+ 291 - 50
pages/carInsure1/quote1.vue

@@ -92,9 +92,13 @@
 				</view>
 			</view>
 			<view class="quoteCompany">
-				<view class="header j-sb  d-flex a-center">
+				<view class="header dis a-c j-s">
 					<view class="title  d-flex">精选保险公司<view class="icon iconfont icon-Group-"></view>
 					</view>
+					<view class="">
+						<u-checkbox v-model="Selectchecked" @change="SelectAll($event)"
+							active-color="rgb(250, 53, 52)">全选</u-checkbox>
+					</view>
 				</view>
 				<block v-for="(totalitem,totalindex) in totalCompanyList" :key="totalindex">
 					<template>
@@ -130,13 +134,15 @@
 									<text v-if="totalitem.result.taxAmount">车船税:¥{{totalitem.result.taxAmount}}</text>
 									<text v-if="totalitem.result.jyPremium">驾意险:¥{{totalitem.result.jyPremium}}</text>
 								</view>
-								<view v-show="totalitem.quoteCode==200" class="dis  f-c"
+								<view v-show="totalitem.quoteCode==200" class="dis Premium  f-wrap"
 									style="font-size: 12px;color: #6495ed;border-top: 1px solid #f2f2f2;">
+
 									<text
 										v-if="totalitem.result.jqPremium">交强险:{{totalitem.result.startDateJq}}~{{totalitem.result.endDateJq}}
-										<u-icon style="color:#ee7000;margin-left: 20px;font-size: 16px;" name="clock"
-											@click="syncData(totalitem.result)"></u-icon>
+
 									</text>
+									<u-icon style="color:#ee7000;font-size: 16px;" name="clock"
+										@click="syncData(totalitem.result)"></u-icon>
 									<text
 										v-if="totalitem.result.startDateSy">商业险:{{totalitem.result.startDateSy}}~{{totalitem.result.endDateSy}}
 
@@ -147,6 +153,16 @@
 				  totalitem.result.ilogPreUdwMess : '无' }}</text>
 									<text v-if="totalitem.result.accidentInfoStr">出险信息:{{ totalitem.result.accidentInfoStr ?
 				  totalitem.result.accidentInfoStr : '无' }}</text>
+									<text v-if="totalitem.result.jqScore">交强类型评分:{{ totalitem.result.jqScore ?
+				  totalitem.result.jqScore : '无' }}</text>
+									<text v-if="totalitem.result.syScore">商业类型评分:{{ totalitem.result.syScore ?
+				  totalitem.result.syScore : '无' }}</text>
+									<text v-if="totalitem.result.TossRation">总赔付率:{{ totalitem.result.TossRation ?
+				  totalitem.result.TossRation : '无' }}</text>
+									<text v-if="totalitem.result.jgLossRation">交强赔付率:{{ totalitem.result.jgLossRation ?
+				  totalitem.result.jgLossRation : '无' }}</text>
+									<text v-if="totalitem.result.syLossRation">商业赔付率:{{ totalitem.result.syLossRation ?
+				  totalitem.result.syLossRation : '无' }}</text>
 								</view>
 								<text v-if="totalitem.result.tips && totalitem.namesimple == '众安财险'"
 									style="color: red;">{{ totalitem.result.tips}}</text>
@@ -207,7 +223,7 @@
 									<text style="font-weight: bold;font-size: 12px;"
 										v-if="zijinaccidentalDrivingVo.length>0">意外险信息</text>
 									<view class="accident-style dis f-c "
-										v-for="(item,index) in zijinaccidentalDrivingVo">
+										v-for="(item,index) in zijinaccidentalDrivingVo" :key="index">
 										<view class=" accident-ins dis a-c j-s">
 
 											<view class=" dis a-c j-s ">
@@ -260,6 +276,36 @@
 										</view>
 									</view>
 								</template>
+								<template
+									v-if="totalitem.namesimple == '太平财险' && totalitem.checked && totalitem.agreementId && taipingaccidentalDrivingVo.id">
+									<view class="accident-style dis f-c ">
+										<text style="font-weight: bold;font-size: 12px;">意外险信息</text>
+										<view class=" accident-ins dis a-c j-s">
+											<u-checkbox shape="circle" size="30" v-model="totalitem.jychecked"
+												@change="checkboxChangeInfo($event,totalindex)"
+												active-color="rgb(255, 170, 0)"></u-checkbox>
+											<view class=" dis a-c j-s " @click="taipingPopupshow=true">
+												<text
+													style="font-size: 14px;">{{taipingaccidentalDrivingVo.rationName}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+											</view>
+										</view>
+										<view class=" dis j-s a-c">
+											<view class="">
+												<text style="font-size: 14px;">保费:</text>
+												<text
+													style="font-size: 14px;color: #ee7000;">¥{{taipingaccidentalDrivingVo.price*taipingaccidentalDrivingVo.quantity}}.00</text>
+											</view>
+											<view class="">
+												<text style="font-size: 14px;">份数:</text>
+												<u-number-box v-model="taipingaccidentalDrivingVo.quantity" :min="1"
+													:max="taipingaccidentalDrivingVo.maxQuantity" :disabled-input="true"
+													:input-width="70" :input-height="44" size="26"></u-number-box>
+											</view>
+
+										</view>
+									</view>
+								</template>
 								<template
 									v-if="totalitem.namesimple == '众安财险' && totalitem.checked && totalitem.agreementId && zhonganaccidentalDrivingVo.combination">
 									<view class="accident-style dis f-c ">
@@ -384,6 +430,36 @@
 
 									</view>
 								</template>
+								<template
+									v-if="totalitem.namesimple == '大家财险' && totalitem.checked && totalitem.agreementId && dajiaaccidentalDrivingVo.rideRiskCode">
+									<view class="accident-style dis f-c ">
+										<text style="font-weight: bold;font-size: 12px;">意外险信息</text>
+										<view class=" accident-ins dis a-c j-s">
+											<u-checkbox shape="circle" size="30" v-model="totalitem.jychecked"
+												@change="checkboxChangeInfo($event,totalindex)"
+												active-color="rgb(255, 170, 0)"></u-checkbox>
+											<view class=" dis a-c j-s " @click="dajiaPopupshow=true">
+												<text
+													style="font-size: 14px;">{{dajiaaccidentalDrivingVo.rideRiskName}}</text>
+												<u-icon name="arrow-right" style="color: #999;" size="24"></u-icon>
+											</view>
+										</view>
+										<view class=" dis j-s a-c">
+											<view class="">
+												<text style="font-size: 14px;">保费:</text>
+												<text
+													style="font-size: 14px;color: #ee7000;">¥{{dajiaaccidentalDrivingVo.price*dajiaaccidentalDrivingVo.quantity}}.00</text>
+											</view>
+											<view class="">
+												<text style="font-size: 14px;">份数:</text>
+												<u-number-box v-model="dajiaaccidentalDrivingVo.quantity" :min="1"
+													:max="1" :disabled-input="true" :input-width="70" :input-height="44"
+													size="26"></u-number-box>
+											</view>
+
+										</view>
+									</view>
+								</template>
 								<view v-if="totalitem.namesimple == '国任财险' && guoRenSpecialAgreementVo.length>0">
 									<text style="font-weight: bold;font-size: 12px;">特别约定</text>
 									<view class="contributing dis f-c"
@@ -529,6 +605,28 @@
 				</u-checkbox-group>
 			</view>
 		</u-modal>
+		<!-- 大家驾意险弹框 -->
+		<u-popup v-model="dajiaPopupshow" mode="center" width="80%" border-radius="10">
+			<view class="popContent dis f-c a-c">
+				<u-radio-group size="30" active-color="rgb(255, 170, 0)">
+					<u-radio style="margin: 4px 0;flex: auto;" @change="DJradioChange"
+						v-for="(item, index) in dajiaInsuranceData" :key="index" :name="item.id">
+						{{item.productName}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-popup>
+		<!-- 太平驾意险弹框 -->
+		<u-popup v-model="taipingPopupshow" mode="center" width="80%" border-radius="10">
+			<view class="popContent dis f-c a-c">
+				<u-radio-group size="30" active-color="rgb(255, 170, 0)">
+					<u-radio style="margin: 4px 0;flex: auto;" @change="TPradioChange"
+						v-for="(item, index) in taipingInsuranceData" :key="index" :name="item.id">
+						{{item.rationName}}
+					</u-radio>
+				</u-radio-group>
+			</view>
+		</u-popup>
 		<u-modal v-model="Generateshow" content="是否生成新的订单?" :content-style="{fontWeight: 'bold'}"
 			:show-cancel-button="true" :show-title="false" :confirm-style="{color: '#ff9000'}"
 			@confirm="GenerateModalConfirm"></u-modal>
@@ -568,6 +666,7 @@
 		},
 		data() {
 			return {
+				Selectchecked: false,
 				params: {
 					year: true, //年
 					month: true, //月
@@ -580,6 +679,9 @@
 				zijinPopupshow: false,
 				zijinInsuranceData: [], //紫金意外险list
 				zijinaccidentalDrivingVo: [], //紫金意外险
+				taipingPopupshow: false,
+				taipingInsuranceData: [], //太平意外险list
+				taipingaccidentalDrivingVo: [], //太平意外险
 				anshengPopupshow: false,
 				anshengPopupshow1: false,
 				anshengprogrammeData: [],
@@ -591,6 +693,9 @@
 				guorenInsuranceData: [], //国任意外险list
 				guorenaccidentalDrivingVo: {}, //国任意外险
 				guoRencontributingshow: false, //国任特约
+				dajiaPopupshow: false,
+				dajiaInsuranceData: [], //大家意外险list
+				dajiaaccidentalDrivingVo: {}, //大家意外险
 				guoRenSpecialAgreementData: [],
 				guoRenSpecialAgreementVo: [],
 				yongchengPopupshow: false,
@@ -1184,32 +1289,27 @@
 				renewalCodeSy: "", //商业确认码
 				//-----------------
 				totalCompanyList: [], //保险公司列表
+				insAreaCompanyEditingDtos: [],
 				notStartedQuote: true, //未开始报价(true表示未开始报价,false表示已经报价结束)
 				quoteCompanyCount: 0,
 			}
 		},
-		async onLoad() {
-			const eventChannel = this.getOpenerEventChannel()
-			// 监听acceptData事件,获取上一页面通过eventChannel传送到当前页面的数据
-			eventChannel.on('acceptData', async (data) => {
-				console.log(data)
-				this.carInfo = data.carInfo; //车辆信息
-				this.ownerInfo = data.ownerInfo; //车主信息
-				this.policyHolderInfo = data.policyHolderInfo; //投保人信息
-				this.insuredPersonInfo = data.insuredPersonInfo; //被保人信息
-				this.riskList = data.riskList; //险种大类
-				this.kindList = data.kindList; //商业险险别
-				this.vehicleAndVesselTaxForm = data.vehicleAndVesselTaxForm; //车船税信息
-				if (data.quoteno) {
-					this.orderno = data.orderno;
-					this.quoteno = data.quoteno;
-					this.imageEcho(data.quoteno) // 影像获取完毕
-				} else {
-					this.carInfoPositiveList = data.carInfoPositiveList; //车辆
-					this.ownerInfoPositiveList = data.ownerInfoPositiveList; //车主
-					this.policyHolderInfoPositiveList = data.policyHolderInfoPositiveList; //投保
-					this.insuredPersonInfoPositiveList = data.insuredPersonInfoPositiveList; //被保人
-				}
+		async onLoad(params) {
+			if (params.orderno) {
+				let res = await this.$http.post('/insurance/order/revise', {
+					orderNo: params.orderno
+				});
+				this.carInfo = res.data.carinfo; //车辆信息
+				this.ownerInfo = res.data.ownerinfo; //车主信息
+				this.policyHolderInfo = res.data.applyinfo; //投保人信息
+				this.insuredPersonInfo = res.data.insureinfo; //被保人信息
+				this.riskList = res.data.risk; //险种大类
+				this.kindList = res.data.king; //商业险险别
+				this.vehicleAndVesselTaxForm = res.data.vehicleAndVesselTax; //车船税信息
+				this.orderno = res.data.orderno;
+				this.quoteno = res.data.quoteno;
+				this.imageEcho(res.data.quoteno) // 影像获取完毕
+				this.insAreaCompanyEditingDtos = res.data.insAreaCompanyEditingDtos;
 				if (this.riskList.length > 0) {
 					for (let i = 0; i < this.riskList.length; i++) {
 						if (this.riskList[i].riskCode == '0507') {
@@ -1238,7 +1338,8 @@
 											case "TY3":
 											case "TY4":
 												ele2.amount = ele1.serviceTimes;
-												ele2.amountDesc = ele1.serviceTimes + '次'
+												ele2.amountDesc = ele1.serviceTimes +
+													'次'
 												break;
 											default:
 												ele2.amount = ele1.amount;
@@ -1250,7 +1351,65 @@
 						}
 					}
 				}
-			})
+			} else {
+				const eventChannel = this.getOpenerEventChannel()
+				// 监听acceptData事件,获取上一页面通过eventChannel传送到当前页面的数据
+				eventChannel.on('acceptData', async (data) => {
+					console.log(data)
+					this.carInfo = data.carInfo; //车辆信息
+					this.ownerInfo = data.ownerInfo; //车主信息
+					this.policyHolderInfo = data.policyHolderInfo; //投保人信息
+					this.insuredPersonInfo = data.insuredPersonInfo; //被保人信息
+					this.riskList = data.riskList; //险种大类
+					this.kindList = data.kindList; //商业险险别
+					this.vehicleAndVesselTaxForm = data.vehicleAndVesselTaxForm; //车船税信息
+					this.carInfoPositiveList = data.carInfoPositiveList; //车辆
+					this.ownerInfoPositiveList = data.ownerInfoPositiveList; //车主
+					this.policyHolderInfoPositiveList = data.policyHolderInfoPositiveList; //投保
+					this.insuredPersonInfoPositiveList = data.insuredPersonInfoPositiveList; //被保人
+					if (this.riskList.length > 0) {
+						for (let i = 0; i < this.riskList.length; i++) {
+							if (this.riskList[i].riskCode == '0507') {
+								this.jqstartDate = this.riskList[i].startDate;
+								this.jqendDate = this.riskList[i].endDate;
+							}
+							if (this.riskList[i].riskCode == '0510') {
+								this.systartDate = this.riskList[i].startDate;
+								this.syendDate = this.riskList[i].endDate;
+								this.kindList.map(ele1 => {
+									this.insureList.map(ele2 => {
+										if (ele2.kindCode == ele1.kindCode) {
+											switch (ele1.kindCode) {
+												case 'D4':
+												case 'SY_FJ_YBW2':
+													ele2.amount = ele1.unitAmount;
+													break;
+												case "MJ1":
+												case "MJ2":
+												case "MJ3":
+												case "MJ4":
+													ele2.amount = ele1.deductibleRate;
+													break;
+												case "TY1":
+												case "TY2":
+												case "TY3":
+												case "TY4":
+													ele2.amount = ele1.serviceTimes;
+													ele2.amountDesc = ele1.serviceTimes +
+														'次'
+													break;
+												default:
+													ele2.amount = ele1.amount;
+											}
+										}
+									})
+								})
+
+							}
+						}
+					}
+				})
+			}
 			const storage = uni.getStorageSync('historyInfo');
 			if (storage) {
 				Object.keys(storage).forEach(key => {
@@ -1260,6 +1419,7 @@
 				this.commpanyList();
 
 			}
+
 		},
 		onHide() {
 			let historyInfo = {
@@ -1284,6 +1444,13 @@
 			uni.setStorageSync('historyInfo', res);
 		},
 		methods: {
+			SelectAll(e) {
+				this.totalCompanyList.map((ele, index) => {
+					e.value ? ele.checked = true : ele.checked = false;
+					this.checkboxChange(e, ele.id, ele.cnName, index)
+
+				})
+			},
 			jqstartconfirm(e) {
 				this.jqstartDate = e.year + '-' + e.month + '-' + e.day + ' ' + e.hour + ':' + e.minute + ':' + e.second;
 				this.jqendDate = this.oneYearPast(this.jqstartDate)
@@ -1415,15 +1582,12 @@
 				if (event.value) {
 					let ins = this.totalCompanyList[index].namesimple;
 					this.totalCompanyList[index].checked = event.value;
-					let arr = this.totalCompanyList[index].agreement;
-					let list = [];
-					list = arr.filter(item => {
-						return item.licenseNo.length > 0 ? item.licenseNo.includes(this.carInfo
-							.licenseNo
-							.slice(
-								0,
-								2)) : "true"
-					})
+					let list = this.totalCompanyList[index].agreement;
+					// let arr = this.totalCompanyList[index].agreement;
+					// let list = [];
+					// list = arr.filter(item => {
+					// 	return item.licenseNo.length > 0 ? item.licenseNo.includes(this.carInfo.licenseNo.slice(0,2)) : "true"
+					// })
 					list.map(ele => {
 						ele.extra = ele.apiType;
 						return ele;
@@ -1530,10 +1694,29 @@
 								}
 							}
 							break;
+						case '大家财险':
+							let djcallback = await this.$http.post('/api/dajia/accidentalDrivingList', {
+								agreementId: this.totalCompanyList[index].agreement[0].id
+							});
+							if (djcallback.code == '200') {
+								let data = djcallback.data;
+								data.map(ele => {
+									ele.quantity = 1;
+									return ele;
+								})
+								this.dajiaInsuranceData = data;
+								this.dajiaaccidentalDrivingVo = {
+									rideRiskCode: data[0].id,
+									rideRiskName: data[0].productName,
+									quantity: data[0].quantity,
+									price: data[0].price,
+								};
+							}
+							break;
 						case '中国人寿':
 						case '恒邦财险':
 						case '众安财险':
-
+						case '太平财险':
 							let Insurancecallback = await this.$http.post(
 								'/insurance/crawler/getDrivingInsurance', {
 									agreementId: this.totalCompanyList[index].agreement[0].id
@@ -1574,6 +1757,21 @@
 				this.zhonganaccidentalDrivingVo = this.zhonganInsuranceData.find(val => val.combination == id)
 				this.zhonganPopupshow = false;
 			},
+			//大家意外险
+			DJradioChange(id) {
+				let info = this.dajiaInsuranceData.find(val => val.id == id)
+				this.dajiaaccidentalDrivingVo = {
+					rideRiskCode: info.id,
+					rideRiskName: info.productName,
+					quantity: info.quantity,
+					price: info.price,
+				};
+				this.dajiaPopupshow = false;
+			},
+			TPradioChange(id) {
+				this.taipingaccidentalDrivingVo = this.taipingInsuranceData.find(val => val.id == id)
+				this.taipingPopupshow = false;
+			},
 			//永诚意外险
 			YCradioChange(id) {
 				let info = this.yongchengInsuranceData.find(val => val.id == id)
@@ -1649,6 +1847,7 @@
 				Object.assign(this.guorenaccidentalDrivingVo, dataInfo);
 				this.guorenPopupshow1 = false;
 			},
+
 			//紫金意外险
 			ZJcheckboxGroupChange(detail) {
 				this.zijinaccidentalDrivingVo = [];
@@ -1672,6 +1871,16 @@
 					ele["apiType"] = "";
 					ele["selectShow"] = false;
 				})
+				if (this.insAreaCompanyEditingDtos.length > 0) {
+					commpanykad.data.forEach((val, index) => {
+						this.insAreaCompanyEditingDtos.map(ele => {
+							if (val.namesimple == ele.inscompany) {
+								commpanykad.data[index].quoteCode = 200;
+								commpanykad.data[index].result = ele;
+							}
+						})
+					})
+				}
 				this.totalCompanyList = commpanykad.data;
 			},
 			async toNext() {
@@ -2075,8 +2284,10 @@
 			},
 			//大家报价
 			async dajia(num, id) {
+				let jychecked = this.totalCompanyList[num].jychecked
 				let params = {
-					accidentalDrivingVo: {},
+					accidentalDrivingVo: jychecked ? this
+						.dajiaaccidentalDrivingVo : {},
 					orderNo: this.orderno,
 					companyId: id,
 					cqryCdeJq: this.cqryCdeJq,
@@ -2248,6 +2459,7 @@
 
 			//爬虫统一报价接口
 			async quoteInsurance(num, id, apiType, jychecked) {
+				console.log(apiType)
 				let api = apiType === 2 ?
 					"/insurance/crawler/quote" :
 					"anshengquote";
@@ -2362,6 +2574,28 @@
 							return;
 						}
 						break;
+					case '太平财险':
+						if (!!res.data) {
+							if (res.data.warnMessageList != null && res.data.warnMessageList[0] != null && res.data
+								.warnMessageList[0] != "") {
+								this.totalCompanyList[num].lastYearMsg = "";
+								let dat = res.data.warnMessageList;
+								dat.map(ele => {
+									this.totalCompanyList[num].lastYearMsg += ele;
+								})
+							}
+							this.totalCompanyList[num]
+								.quoteCode = 200;
+							this.totalCompanyList[num].result =
+								res.data;
+						} else {
+							this.totalCompanyList[num]
+								.quoteCode = "3";
+							this.totalCompanyList[num].msg =
+								res.msg;
+							return;
+						}
+						break;
 					case '众安财险':
 						if (!!res.data) {
 							if (res.data.warnMessageList !=
@@ -2397,6 +2631,21 @@
 						break;
 				}
 			},
+			//华农
+			huanong(num, id) {
+				this.quoteInsurance(num, id, this
+					.totalCompanyList[num].apiType, this
+					.totalCompanyList[num].jychecked);
+			},
+			//太平
+			taiping(num, id) {
+				this.quoteInsurance(num, id, this
+					.totalCompanyList[num].apiType, this
+					.totalCompanyList[num].jychecked);
+				console.log(num, id, this
+					.totalCompanyList[num].apiType, this
+					.totalCompanyList[num].jychecked)
+			},
 			//安盛天平
 			ansheng(num, id) {
 				this.quoteInsurance(num, id, this
@@ -2487,7 +2736,7 @@
 								insuredPersonInfoPositiveList: this
 									.insuredPersonInfoPositiveList, //被保人
 								vehicleModel: this
-									.vehicleModel,
+									.vehicleAndVesselTaxForm,
 							})
 					}
 				}, "navigateTo", true);
@@ -2774,15 +3023,7 @@
 		padding-left: 25upx;
 	}
 
-	.quoteCompany .header .title:before {
-		content: "";
-		position: absolute;
-		left: 30upx;
-		top: 25upx;
-		width: 8upx;
-		height: 30upx;
-		background-color: rgba($themeColor, 0.6);
-	}
+
 
 	.quoteCompany .header .title .icon {
 		color: rgba($themeColor, 0.6);

+ 12 - 10
pages/carInsure1/quoteDetail1.vue

@@ -42,7 +42,7 @@
 			<view class="quotePlan">
 				<view class="header d-flex a-center j-sb">
 					<view class="title">报价方案</view>
-					<template v-if="routepage!='pages/orders/subOrders' && routepage!='pages/orders/quoteHistory'">
+					<template>
 						<view class="adjustPlan" @tap="toInsureItems">调整方案</view>
 					</template>
 				</view>
@@ -100,7 +100,7 @@
 							</block>
 						</view>
 					</view>
-					<view class="addedServices" v-if="kindList.length>0">
+					<view class="addedServices" v-if="roadrescueList.length>0">
 						<view class="row d-flex a-center j-sb">
 							<view class="d-flex">增值服务<view class="d-flex a-center"
 									style="color:#999;margin-left: 10upx;font-size: 24upx;">不收费,使用不影响明年保费</view>
@@ -108,14 +108,12 @@
 							<view>赠送</view>
 						</view>
 						<view class="kindList">
-							<view class="kindItem d-flex a-center j-sb">
-								<view>道路救援</view>
-								<view class="d-flex j-end">7次</view>
-							</view>
-							<view class="kindItem d-flex a-center j-sb">
-								<view>代为送检</view>
-								<view class="d-flex j-end">1次</view>
+							<view class="kindItem d-flex a-center j-sb" v-for="(item,index) in roadrescueList"
+								:key="index">
+								<view>{{item.kindName}}</view>
+								<view class="d-flex j-end">{{item.serviceTimes}}次</view>
 							</view>
+
 						</view>
 					</view>
 				</view>
@@ -1043,6 +1041,7 @@
 				quoteno: "",
 				extendInfo: {},
 				routepage: "",
+				roadrescueList: [],
 			}
 		},
 		// 监听导航栏的按钮
@@ -1081,7 +1080,6 @@
 				};
 				let res = await this.$http.post('/insurance/order/getByCompanyId', param);
 				if (res.code == 200) {
-					//获取前一个页面传过来的信息(车辆信息,人员信息,险种信息)
 					this.icon = "";
 					this.quoteno = res.data.quoteno;
 					this.name = res.data.inscompany;
@@ -1139,6 +1137,9 @@
 					this.insuredPersonInfo = res.data.insureinfo;
 					this.riskList = res.data.riskinfo;
 					this.kindList = res.data.kindinfo;
+					this.roadrescueList = this.kindList.filter((val) => {
+						return ["TY1", "TY2", "TY3", "TY4"].includes(val.kindCode)
+					})
 					this.sumPermium = res.data.sumpremium;
 					this.taxAmount = res.data.taxamount;
 					this.sypremium = res.data.sypremium;
@@ -1164,6 +1165,7 @@
 						case "安盛天平":
 						case "众安财险":
 						case "中国人寿":
+						case "太平财险":
 							this.pythonprint(); //电子保单
 							break;
 						case "永诚财险":

+ 12 - 0
pages/carInsure1/underwriting1.vue

@@ -646,6 +646,17 @@
 				if (this.name == '华泰财险') {
 					let huaTaires = await this.$http.post('/order/huaTaiApi/queryClauseData', param);
 					this.huaTaiengageListData = huaTaires.data;
+					huaTaires.data.map(val => {
+						if (val.optType == '2') {
+							this.huaTaiengageList.push({
+								engageCode: val.engageCode,
+								engageDetail: val.engageDetail,
+								engageTitle: val.engageTitle,
+								riskCode: val.riskCode,
+								modifyFlag: val.modifyFlag,
+							})
+						}
+					})
 				}
 				// 影像获取完毕
 			} else {
@@ -1334,6 +1345,7 @@
 								case "安盛天平":
 								case "众安财险":
 								case "中国人寿":
+								case "太平财险":
 									let pythonimage = await this.$http.post(
 										'/insurance/crawler/submitImage', {
 											subOrderNo: this.companyId

+ 11 - 3
pages/index/index.vue

@@ -25,8 +25,10 @@
 		<!-- 占位 -->
 		<view class="place" :style="{backgroundColor:'#fff'}"></view>
 		<!-- 实名认证提示 -->
-		<u-notice-bar :list="list" v-show="isShow" type="error" padding="8rpx 24rpx"
-			@click='navigate({url:"/pages/realname/realname"},"navigateTo",true)'></u-notice-bar>
+		<view class="" @click='navigate({url:"/pages/realname/realname"},"navigateTo",true)' v-show="isShow">
+			<u-notice-bar :list="list" type="error" padding="8rpx 24rpx"></u-notice-bar>
+		</view>
+
 		<!-- 轮播图 -->
 		<swiper-image :resdata="swiperList" @changeEvent="swiperChange"></swiper-image>
 
@@ -88,6 +90,7 @@
 		},
 		data() {
 			return {
+				avatar: "",
 				xuelishow: false,
 				border: false,
 				form: {
@@ -291,7 +294,7 @@
 
 
 		computed: {
-			...mapState(['avatar', 'userInfo'])
+			...mapState(['userInfo'])
 		},
 
 
@@ -304,6 +307,11 @@
 			}
 		},
 		onShow() {
+			if (this.userInfo.sysUser.headSculpture) {
+				this.avatar = this.$base.baseUrl + this.userInfo.sysUser.headSculpture;
+			} else {
+				this.avatar = "/static/common/avatar.png"
+			}
 			const arr = uni.getStorageSync('historyInfo');
 			if (arr) {
 				uni.removeStorageSync('historyInfo');

+ 96 - 102
pages/login/login.vue

@@ -92,8 +92,8 @@
 				<text>是否更新账号密码?</text>
 			</view>
 			<view class="heng shili_btn">
-				<view class="heng1" @click="fanhui">取消</view>
-				<view class="heng1" @click="zhifu" style="background-color: orangered;">确认</view>
+				<view class="heng1" @click="quxiao">取消</view>
+				<view class="heng1" @click="queren" style="background-color: orangered;">确认</view>
 			</view>
 		</u-popup>
 	</view>
@@ -127,6 +127,7 @@
 				isHidePassword: true, //是否隐藏密码
 				phone: "", //登录手机号
 				checknum: "", //登录验证码
+				captchaId: "",
 				codetime: 0, //验证码获取倒计时
 				code: "", //用户code
 				listData: [],
@@ -143,13 +144,13 @@
 		//第一次加载
 		onLoad(e) {
 			// #ifdef APP-PLUS
-			// this.openSQL();
-			// this.selectTableData();
+			this.openSQL();
+			this.selectTableData();
+			// this.deleteTableData();
 			// #endif
 			this.username = this.defaultid;
 		},
 		//页面显示   
-
 		onShow() {
 			uni.getClipboardData({
 				success: (res) => {
@@ -239,7 +240,9 @@
 
 			// 图片验证码
 			refreshCaptcha() {
-				this.imgcodesrc = this.$base.baseUrl + '/captcha.jpg?t=' + new Date().getTime();
+				let randnum = Math.floor(Math.random() * (1000000 - 1 + 1)) + 1
+				this.imgcodesrc = this.$base.baseUrl + "/captchaById?t=" + new Date().getTime() + '&captchaId=' + randnum;
+				this.captchaId = randnum;
 			},
 			// 切换登录状态
 			changeStatus() {
@@ -309,79 +312,50 @@
 					}
 				}, 1000);
 			},
-			async getCheckNum1() {
-				uni.hideKeyboard();
-				if (this.codetime > 0) return;
-				// 验证手机号合法性
-				if (!this.phone) {
-					return uni.showToast({
-						title: '请输入手机号',
-						icon: 'none'
-					});
-				}
-				if (!this.$base.phoneRegular.test(this.phone)) {
-					return uni.showToast({
-						title: '请输入正确的手机号码',
-						icon: 'none'
-					});
-				}
-				// 请求服务器,发送验证码
-				let res = await this.$http.get('/sendMsg', {
-					phone: this.phone,
-					type: "0"
-				});
-				// 请求失败处理
-				if (res.code != 200) {
-					return uni.showToast({
-						title: res.data.msg,
-						icon: "none"
-					});
-				} else {
-					uni.showToast({
-						title: "发送成功",
-						icon: "none"
-					});
-				}
-				// 发送成功,开启倒计时
-				this.codetime = 60;
-				let timer = setInterval(() => {
-					this.codetime--;
-					if (this.codetime < 1) {
-						clearInterval(timer);
-						this.codetime = 0;
-					}
-				}, 1000);
-			},
 			//#ifdef APP-PLUS
-			//确认离开
-			fanhui() {
+			quxiao() {
 				this.show = false;
 				this.$login({
-					url: "/login",
+					url: "/login2",
 					data: {
 						account: this.username,
 						password: this.password,
-						captcha: this.imgcode.toLowerCase()
+						captcha: this.imgcode.toLowerCase(),
+						captchaId: this.captchaId,
 					}
 				}).then(res => {
-					socket.init();
-					return;
+					if (res) {
+						return uni.showToast({
+							title: res.msg,
+							icon: 'none'
+						});
+					} else {
+						socket.init();
+					}
+
 				})
 			},
-			//立即支付
-			zhifu() {
+			queren() {
 				this.show = false;
-				this.updateTableData();
 				this.$login({
-					url: "/login",
+					url: "/login2",
 					data: {
 						account: this.username,
 						password: this.password,
-						captcha: this.imgcode.toLowerCase()
+						captcha: this.imgcode.toLowerCase(),
+						captchaId: this.captchaId,
 					}
 				}).then(res => {
-					socket.init();
-					return;
+					if (res) {
+						return uni.showToast({
+							title: res.msg,
+							icon: 'none'
+						});
+					} else {
+						this.updateTableData();
+						socket.init();
+					}
+
 				})
 			},
 			//#endif
@@ -391,59 +365,74 @@
 				uni.hideKeyboard();
 				if (!this.status) {
 					//#ifdef H5
-					if (this.username == 'ADMIN') {
-						return uni.showToast({
-							title: '无效账号',
-							icon: "none"
-						});
-					} else {
-						this.$login({
-							url: "/login",
-							data: {
-								account: this.username,
-								password: this.password,
-								captcha: this.imgcode.toLowerCase()
-							}
-						}).then(res => {
+					this.$login({
+						url: "/login2",
+						data: {
+							account: this.username,
+							password: this.password,
+							captcha: this.imgcode.toLowerCase(),
+							captchaId: this.captchaId,
+						}
+					}).then(res => {
+						if (res) {
+							return uni.showToast({
+								title: res.msg,
+								icon: 'none'
+							});
+						} else {
 							socket.init();
-							return;
-						})
-					}
+						}
+					})
+					// }
 					//#endif
 					//#ifdef APP-PLUS
 					if (this.listData.length > 0) {
 						this.listData.map(ele => {
-							if (this.username != ele.username || this.password != ele.password) {
-								this.show = true;
-							} else {
+							if (this.username == ele.username && this.password == ele.password) {
 								this.$login({
-									url: "/login",
+									url: "/login2",
 									data: {
 										account: this.username,
 										password: this.password,
-										captcha: this.imgcode.toLowerCase()
+										captcha: this.imgcode.toLowerCase(),
+										captchaId: this.captchaId,
 									}
 								}).then(res => {
-									socket.init();
-									return;
+									if (res) {
+										return uni.showToast({
+											title: res.msg,
+											icon: 'none'
+										});
+									} else {
+										socket.init();
+									}
 								})
+
+							} else {
+								this.show = true;
 							}
 						})
 					} else {
 						this.$login({
-							url: "/login",
+							url: "/login2",
 							data: {
 								account: this.username,
 								password: this.password,
-								captcha: this.imgcode.toLowerCase()
+								captcha: this.imgcode.toLowerCase(),
+								captchaId: this.captchaId,
 							}
 						}).then(res => {
-							console.log(res)
-							this.openSQL(); //打开数据库
-							this.createTable(); //创建表
-							this.insertTableData(this.username, this.password); //新增表数据
-							socket.init();
-							return;
+							if (res) {
+								return uni.showToast({
+									title: res.msg,
+									icon: 'none'
+								});
+							} else {
+								this.openSQL(); //打开数据库
+								this.createTable(); //创建表
+								this.insertTableData(this.username, this.password); //新增表数据
+								socket.init();
+							}
 						})
 					}
 					//#endif
@@ -457,9 +446,18 @@
 						});
 					}
 					this.$login({
-						url: "/loginByPhone?phone=" + this.phone + "&phoneMsg=" + this.checknum,
+						url: "/loginByPhone",
+						data: {
+							phone: this.phone,
+							phoneMsg: this.checknum
+						}
 					}).then(res => {
-
+						if (res) {
+							return uni.showToast({
+								title: res.msg,
+								icon: 'none'
+							});
+						}
 						// socket.init();
 						return;
 					})
@@ -499,13 +497,10 @@
 			openSQL() {
 				// 这个是查询有没有打开数据库
 				let open = DB.isOpen();
-				console.log("数据库状态", open ? "开启" : "关闭");
 				// if (!open) {
 				DB.openSqlite()
 					.then(res => {})
-					.catch(error => {
-						console.log(error)
-					});
+					.catch(error => {});
 				// }
 			},
 			// 关闭数据库
@@ -565,7 +560,6 @@
 			// 查询表数据
 			selectTableData() {
 				let open = DB.isOpen();
-				console.log(open)
 				if (open) {
 					// 查询表 DB.selectTableData(表名,查询条件列名,查询条件列值)
 					DB.selectTableData("chat")
@@ -590,7 +584,7 @@
 					// 修改表数据 DB.updateTableData(表名, 要修改的列名=修改后列值, 修改条件的列名, 修改条件的列值)
 					DB.updateTableData("chat", data)
 						.then(res => {
-							console.log(res)
+							console.log('修改后的数据', res)
 							this.showToast("保存成功");
 							this.selectTableData();
 						})

+ 48 - 30
pages/my/my.vue

@@ -59,7 +59,7 @@
 		<!-- 广告End -->
 
 		<!-- 我的钱包Start -->
-		<view class="my-wallet">
+		<view class="my-wallet" v-if="userInfo.sysUser.roleId!=19">
 			<view class="header d-flex a-center j-sb">
 				<view>我的钱包</view>
 				<span @tap="toWallet" style="font-size: 24upx;color: #333;">更多</span>
@@ -186,6 +186,7 @@
 </template>
 
 <script>
+	import store from '@/store';
 	import {
 		mapState,
 		mapMutations
@@ -210,7 +211,7 @@
 				advanceMoney: '0', // 预收账户金额
 				withdrawal: '0', //可提现金额
 				extendMoney: '0', //推广费
-
+				avatar: "",
 				//轮播
 				swiperList: [{
 					sid: 0,
@@ -398,7 +399,7 @@
 			}
 		},
 		computed: {
-			...mapState(['avatar', 'userInfo', "userCheckInfo"]),
+			...mapState(['userInfo', "userCheckInfo"]),
 
 			toolsListLength() {
 				return Math.ceil(this.toolsList.length / 8);
@@ -411,6 +412,11 @@
 			}
 		},
 		onShow() {
+			if (this.userInfo.sysUser.headSculpture) {
+				this.avatar = this.$base.baseUrl + this.userInfo.sysUser.headSculpture;
+			} else {
+				this.avatar = "/static/common/avatar.png"
+			}
 			if (this.userInfo.sysUser.status == '1') {
 				this.mystatusText = "已认证";
 			} else if (this.userStatus == '2') {
@@ -427,7 +433,6 @@
 			...mapMutations(['setUserModules', 'setOrderType', 'setOrderStage']),
 			//获得订单数量
 			async getOrderNum() {
-				console.log(this.userInfo)
 				var data = {
 					"columnFilters": {
 						"orderstatus": {
@@ -531,37 +536,50 @@
 						icon: "none"
 					});
 				}
-				// 上传
-				pathToBase64(chooseImageRes.tempFilePaths[0])
-					.then(async base64 => {
-						var paramImg = {
-							"imgList": [base64],
-							"imgtype": "avatar",
-							"taskid": "",
-						}
-						let res = await this.$http.post('/insTaskImage/save', paramImg);
-						if (res.code == 200) {
-							this.setUserModules({
-								title: 'avatar',
-								data: base64
-							})
-							uni.showToast({
-								title: '更换头像成功!',
-								icon: 'none',
-								duration: 2000
-							});
-						} else {
-							uni.showToast({
-								title: '更换头像失败!',
-								icon: 'none',
-								duration: 2000
+				uni.uploadFile({
+					url: this.$base.baseUrl + '/ins/taskImage/uploadFile',
+					filePath: chooseImageRes.tempFilePaths[0],
+					name: "multipartFile",
+					formData: {
+						'type': 'avatar',
+					},
+					header: {
+						Authorization: store.state.token,
+					},
+					success: async (imgRes) => {
+						let data = JSON.parse(imgRes.data);
+						let res = await this.$http.post('/user/modifyingTheAvatar', {
+							imagesId: data.data.id
+						});
+						if (res.code == '200') {
+							this.popupShow = false;
+							let userInfoRes = await this.$http.get('/user/loginUser', {
+								header: {
+									Authorization: store.state.token,
+								}
 							});
+							this.avatar = this.$base.baseUrl + userInfoRes.data.headSculpture;
+							store.commit('setUserModules', {
+								title: 'userInfo',
+								data: {
+									sysUser: {
+										...userInfoRes.data
+									}
+								}
+							})
 						}
-					})
+					}
+				});
 			},
-
 			//去工具页面
 			toTools(e, listName) {
+				if (this.userInfo.sysUser.status == '2') {
+					return uni.showToast({
+						icon: "none",
+						title: '请先通过实名认证',
+						duration: 1500
+					})
+				}
 				if (!!this[listName][e.detail.index].url && (this[listName][e.detail.index].url ==
 						'/pages/wallet/wallet')) {
 					if ((!!this.userInfo.esmUserInternal) && (!!this.userInfo.esmUserInternal.accountno)) {

+ 25 - 25
pages/orders/orders.vue

@@ -91,7 +91,7 @@
 					<u-button type="primary" size="mini" :hair-line="false" :plain="true"
 						@click="quotehistory(item)">报价历史</u-button>
 					<u-button v-if="item.orderstatus!='3'" type="success" size="mini" :hair-line="false" :plain="true"
-						@click="CloseEdit(item)">编辑</u-button>
+						@click="CloseEdit(item.orderno)">编辑</u-button>
 				</view>
 			</view>
 		</view>
@@ -108,16 +108,12 @@
 		mapState,
 		mapMutations
 	} from "vuex"
-	import carOrders from "@/components/modules/orders/carOrders.vue";
-	import nothingOrder from "@/components/modules/orders/nothingOrder.vue";
+	// import carOrders from "@/components/modules/orders/carOrders.vue";
 	import {
 		watch
 	} from "vue";
 	export default {
-		components: {
-			carOrders,
-			nothingOrder,
-		},
+		components: {},
 		watch: {
 			stageIndex(newVal, oldVal) {
 				if (newVal !== oldVal) {
@@ -258,10 +254,11 @@
 			this.getOrdersList()
 			this.esmInsCompany()
 		},
-		onLoad(e) {
+		async onLoad(e) {
 			this.pageRequest.userId = this.userInfo.sysUser.id;
 			this.pageRequest.deptId = this.userInfo.sysUser.deptId;
 			this.getOrdersList()
+
 		},
 		methods: {
 			...mapMutations(['setOrderType', 'setOrderStage']),
@@ -382,23 +379,26 @@
 			},
 			//编辑
 			CloseEdit(val) {
-				this.navigate({
-					url: '/pages/carInsure1/quote1',
-					success: (res) => {
-						res.eventChannel.emit("acceptData", {
-							carInfo: val.carinfo, //车辆信息
-							ownerInfo: val.ownerinfo, //车主信息
-							policyHolderInfo: val.applyinfo, //
-							insuredPersonInfo: val.insureinfo,
-							riskList: val.risk,
-							kindList: val.king,
-							orderno: val.orderno, //车辆
-							quoteno: val.quoteno, //车主
-							vehicleAndVesselTaxForm: val.vehicleAndVesselTax, //车船税
-
-						})
-					}
-				}, "navigateTo", true);
+				uni.navigateTo({
+					url: "/pages/carInsure1/quote1?orderno=" + val
+				})
+				// this.navigate({
+				// 	url: '/pages/carInsure1/quote1',
+				// 	success: (res) => {
+				// 		res.eventChannel.emit("acceptData", {
+				// 			carInfo: val.carinfo, //车辆信息
+				// 			ownerInfo: val.ownerinfo, //车主信息
+				// 			policyHolderInfo: val.applyinfo, //
+				// 			insuredPersonInfo: val.insureinfo,
+				// 			riskList: val.risk,
+				// 			kindList: val.king,
+				// 			orderno: val.orderno, //车辆
+				// 			quoteno: val.quoteno, //车主
+				// 			vehicleAndVesselTaxForm: val.vehicleAndVesselTax, //车船税
+
+				// 		})
+				// 	}
+				// }, "navigateTo", true);
 			},
 			//回车搜索事件
 			search(val) {

+ 11 - 0
pages/orders/quotation.vue

@@ -107,6 +107,9 @@
 						<view v-else-if="['MJ1', 'MJ2', 'MJ3', 'MJ4'].includes(item.kindCode)">
 							<text>{{item.deductibleRate}}</text>
 						</view>
+						<view v-else-if="['TY1', 'TY2', 'TY3', 'TY4'].includes(item.kindCode)">
+							<text>{{item.serviceTimes}}/次</text>
+						</view>
 						<view v-else>
 							<text>{{item.amount}}</text>
 						</view>
@@ -189,6 +192,14 @@
 						name: "大家财险",
 						icon: "../../static/insuranceicon/dajia.png"
 					},
+					{
+						name: "太平财险",
+						icon: "../../static/insuranceicon/taiping.png"
+					},
+					{
+						name: "华农财险",
+						icon: "../../static/insuranceicon/huanong.png"
+					},
 				],
 				logoimg: "",
 			}

+ 240 - 39
pages/orders/subOrders.vue

@@ -1,5 +1,5 @@
 <template>
-	<view>
+	<view @click.native="init">
 		<view class="car-header dis a-c">
 			<view class="icon-radius">
 				<image src="../../static/icon/insurance.png" mode=""></image>
@@ -31,7 +31,7 @@
 							{{statusitem.label}}
 						</view>
 					</view>
-					<view class="dis" style="font-size: 12px;color: #276D6F;">
+					<view class="dis f-wrap" style="font-size: 12px;color: #276D6F;">
 						<text v-if="item.jqpremium">交强险:¥{{item.jqpremium}}</text>
 						<text v-if="item.sypremium">商业险:¥{{item.sypremium}}</text>
 						<text>车船税:¥{{item.taxamount}}</text>
@@ -43,42 +43,72 @@
 					</view>
 				</view>
 				<view class="orders-below dis j-end">
-					<u-button v-if="item.orderstatus==2" size="mini" type="error" :plain="true" :hair-line="false"
-						shape="circle" @click="revokeCode(item.id)">撤销二维码</u-button>
-					<u-button v-if="item.orderstatus==1  && ['中煤财险'].includes(item.inscompany)" size="mini" type="error"
-						:plain="true" :hair-line="false" shape="circle" @click="underwriting(item.id)">核保状态查询</u-button>
-					<u-button v-if="item.orderstatus==4 && item.inscompany=='华泰财险'" size="mini" type="error"
-						:plain="true" :hair-line="false" shape="circle"
-						@click="underwritingCode(item.id)">核保状态查询</u-button>
 					<u-button
-						v-if="item.orderstatus==2 && ['恒邦财险','安盛天平','中国人寿','众安财险','紫金财险','永诚财险','国任财险','大家财险','华泰财险'].includes(item.inscompany)"
-						size="mini" type="error" :plain="true" :hair-line="false" shape="circle"
+						v-if="item.orderstatus==2 && ['恒邦财险','安盛天平','中国人寿','众安财险','太平财险','紫金财险','永诚财险','国任财险','大家财险','华泰财险','中煤财险'].includes(item.inscompany)"
+						size="mini" type="error" shape="circle"
 						@click="queryStatus(item.id,item.inscompany)">查询缴费状态</u-button>
-					<u-button v-if="item.orderstatus==2 && ['紫金财险'].includes(item.inscompany)" size="mini" type="error"
-						:plain="true" :hair-line="false" shape="circle" @click="cancelorder(item.id)">撤单</u-button>
-					<u-button v-if="item.orderstatus==2" size="mini" type="error" :plain="true" :hair-line="false"
-						shape="circle" @click="Payment(item.id)">二维码</u-button>
-
-					<u-button size="mini" type="primary" :plain="true" :hair-line="false" shape="circle"
-						@click="detial(item.id)">查看详情</u-button>
-
+					<u-button v-if="item.orderstatus==2" size="mini" type="error" shape="circle"
+						@click="Payment(item.id)">二维码</u-button>
+					<u-button v-if="(item.orderstatus==4 || item.orderstatus==1) && item.inscompany=='华泰财险'" size="mini"
+						type="error" shape="circle" @click="huataiunderwriting(item.id)">更新订单</u-button>
+					<u-button v-if="item.orderstatus==1  && ['中煤财险','永诚财险','国任财险','大家财险'].includes(item.inscompany)"
+						size="mini" type="error" shape="circle"
+						@click="underwriting(item.id,item.inscompany)">更新订单</u-button>
+					<u-button size="mini" type="primary" shape="circle" @click="detial(item.id)">查看详情</u-button>
+					<u-button class="arrivalNavigations" size="mini" type="warning" :data-id="item.id" shape="circle"
+						@click.native="Moremethods">更多操作
+						<view class="arrivalNavigation" v-show="item.checked">
+							<view class="d4"></view>
+							<view class="sideNavigation">
+								<view class="sideNavigation-btn">
+									<view @click="bjdpreview(item.id)">报价单</view>
+									<view v-if="item.orderstatus==2 && ['紫金财险'].includes(item.inscompany)"
+										@click="cancelorder(item.id)">撤单</view>
+									<view v-if="item.orderstatus==2" @click="revokeCode(item.id)">撤销二维码</view>
+									<!-- <view @click="orderTrajectory(item.id)">订单轨迹</view> -->
+								</view>
+							</view>
+						</view>
+					</u-button>
 				</view>
 			</view>
 		</view>
-
-
+		<!-- <u-popup v-model="trajectoryShow" mode="center" border-radius="8" width="80%">
+			<u-steps mode="number" :list="numList" :current="2" direction="column" style="padding: 20px;"></u-steps>
+		</u-popup> -->
 	</view>
 </template>
-
 <script>
 	export default {
 		data() {
 			return {
+				show: true,
+				modeClass: 'fade',
+				styles: {},
+				// trajectoryShow: false,
+				// trajectoryList: [],
+				MoreShow: false,
+				moreindex: "",
+				companyId: "",
 				modelcname: "",
 				orderno: "",
 				insuredname: "",
 				licenseno: "",
 				sublist: [],
+				numList: [{
+						name: '报价中'
+					}, {
+						name: '待核保'
+					},
+					{
+						name: '核保退回'
+					}, {
+						name: '已核保待缴费'
+					}, {
+						name: '已承保'
+					},
+
+				],
 				statusList: [{
 						label: '报价中',
 						value: 0,
@@ -108,6 +138,16 @@
 			}
 		},
 		onLoad(params) {
+			this.styles = {
+				justifyContent: 'center',
+				alignItems: 'center',
+				width: '100px',
+				height: '100px',
+				borderRadius: '5px',
+				textAlign: 'center',
+				backgroundColor: '#4cd964',
+				boxShadow: '0 0 5px 1px rgba(0,0,0,0.2)'
+			}
 			let item = JSON.parse(params.orderno);
 			this.orderno = item.orderno;
 			this.modelcname = item.modelcname;
@@ -116,13 +156,42 @@
 			this.querylist();
 		},
 		methods: {
+			handle(type) {
+				this.show = !this.show
+				this.modeClass = type
+			},
 			async querylist() {
 				let params = {
 					orderNo: this.orderno
 				}
 				let res = await this.$http.post('/insurance/order/querySuborder', params)
 				this.sublist = res.data;
+				this.sublist.map(val => {
+					val.checked = false;
+					return val;
+				})
+			},
+			//更多操作
+			Moremethods(e) {
+				let id = e.currentTarget.dataset.id;
+				let list = this.sublist;
+				this.sublist = list.map(val => {
+					if (val.id == id) {
+						val.checked = !val.checked;
+					} else {
+						val.checked = false;
+					}
+					return val;
+				})
 			},
+			// //订单轨迹
+			// async orderTrajectory(id) {
+			// 	let res = await this.$http.get('/insurance/track/queryBySuborder?suborder=' + id);
+			// 	if (res.code == '200') {
+			// 		this.trajectoryList = res.data;
+			// 		this.trajectoryShow = true;
+			// 	}
+			// },
 			//查看详情
 			detial(id) {
 				uni.navigateTo({
@@ -153,7 +222,7 @@
 					});
 				}
 			},
-			async underwritingCode(id) {
+			async huataiunderwriting(id) {
 				let params = {
 					companyId: id,
 				}
@@ -179,23 +248,83 @@
 					url: "/pages/orders/quotation?companyId=" + id
 				})
 			},
-			async underwriting(id) {
-				let res = await this.$http.post('/order/zhongMeiApi/auditStatusQuery', {
-					companyId: id
-				})
-				if (res.code == '200') {
-					uni.showToast({
-						title: res.msg,
-						icon: 'none',
-						duration: 1000
-					});
-					this.querylist();
-				} else {
-					uni.showToast({
-						title: res.msg,
-						icon: 'error',
-					});
+			//核保状态查询
+			async underwriting(id, inscompany) {
+				switch (inscompany) {
+					case "中煤财险":
+						let zmres = await this.$http.post('/order/zhongMeiApi/auditStatusQuery', {
+							companyId: id
+						})
+						if (zmres.code == '200') {
+							uni.showToast({
+								title: zmres.msg,
+								icon: 'none',
+								duration: 1000
+							});
+							this.querylist();
+						} else {
+							uni.showToast({
+								title: zmres.msg,
+								icon: 'error',
+							});
+						}
+						break;
+					case "永诚财险":
+						let ycres = await this.$http.get('/api/yongCheng/orderStatusBySuborderId/' + id);
+						if (ycres.code == '200') {
+							uni.showToast({
+								title: ycres.msg,
+								icon: 'none',
+								duration: 2000
+							});
+							this.querylist();
+						} else {
+							uni.showToast({
+								title: ycres.msg,
+								icon: 'error',
+							});
+						}
+						break;
+					case "国任财险":
+						let grres = await this.$http.post('/api/guoRen/updateOrderInfo', {
+							companyId: id
+						});
+						if (grres.code == '200') {
+							uni.showToast({
+								title: grres.msg,
+								icon: 'none',
+								duration: 2000
+							});
+							this.querylist();
+						} else {
+							uni.showToast({
+								title: grres.msg,
+								icon: 'error',
+							});
+						}
+						break;
+					case "大家财险":
+						let djres = await this.$http.post('/api/dajia/verifyPayment', {
+							companyId: id
+						});
+						if (djres.code == '200') {
+							uni.showToast({
+								title: djres.msg,
+								icon: 'none',
+								duration: 2000
+							});
+							this.querylist();
+						} else {
+							uni.showToast({
+								title: djres.msg,
+								icon: 'error',
+							});
+						}
+						break;
+					default:
+						break;
 				}
+
 			},
 			//撤单
 			async cancelorder(item) {
@@ -306,6 +435,24 @@
 							});
 						}
 						break;
+					case "中煤财险":
+						let zmres = await this.$http.post('/order/zhongMeiApi/paymentEnquiry', {
+							companyId: id
+						});
+						if (zmres.code == '200') {
+							uni.showToast({
+								title: zmres.msg,
+								icon: 'none',
+								duration: 2000
+							});
+							this.querylist();
+						} else {
+							uni.showToast({
+								title: zmres.msg,
+								icon: 'error',
+							});
+						}
+						break;
 					default:
 						let pythonres = await this.$http.post('/insurance/crawler/verifyPayment', {
 							subOrderNo: id
@@ -325,7 +472,14 @@
 						}
 						break;
 				}
+			},
+			init() {
+				this.sublist = this.sublist.map(val => {
+					val.checked = false;
+					return val;
+				})
 			}
+
 		}
 	}
 </script>
@@ -420,4 +574,51 @@
 	.strong {
 		font-weight: bold;
 	}
+
+	.arrivalNavigations {
+		position: relative;
+	}
+
+	//从这里开始是弹出框的样式  不需要搜索框的 前面样式都不用加
+	.arrivalNavigation {
+		width: 250rpx;
+		position: absolute;
+		right: -50px;
+		top: 30px;
+		z-index: 99;
+
+		.sideNavigation {
+			width: 90px;
+			background-color: #999;
+			color: #eee;
+			border-radius: 10rpx;
+
+			.sideNavigation-btn>view {
+				text-align: center;
+				font-size: 25rpx;
+				text-align: center;
+				padding: 6px 0;
+				border-bottom: 1px solid #aeaeae;
+
+				&:last-child {
+					border: none;
+				}
+			}
+
+
+		}
+
+		.d4 {
+			width: 0;
+			height: 0;
+			margin-left: 52px;
+			margin-top: -20rpx;
+			border-width: 20rpx;
+			border-style: solid;
+			border-color: transparent #999 transparent transparent;
+			transform: rotate(90deg);
+			/*顺时针旋转90°*/
+
+		}
+	}
 </style>

+ 381 - 0
pages/register/orderissuer.vue

@@ -0,0 +1,381 @@
+<template>
+	<view class="page">
+		<!-- 公共组件-每个页面必须引入 -->
+		<public-module></public-module>
+		<view class="mx-3 mt-3">
+			<!-- 账号密码登录 false代表账号密码登录 -->
+			<view class="phone d-flex">
+				<view class="title">电话号码</view>
+				<input placeholder="请输入手机号" v-model="phone" maxlength="11" />
+			</view>
+			<view class="phone d-flex">
+				<view class="title">真实姓名</view>
+				<input placeholder="请输入姓名" v-model="name" />
+			</view>
+			<view class="password d-flex">
+				<view class="title">密码</view>
+				<input placeholder="请输入密码" v-model="password" :password='isHidePassword' maxlength="15"
+					style="padding-right: 200rpx;" />
+				<view class="d-flex a-center j-center yanzhengma">
+					<view style="font-size: 40rpx;" class="icon iconfont"
+						:class="isHidePassword?'icon-buxianshimima':'icon-xianshimima'"
+						@tap="isHidePassword = !isHidePassword"></view>
+				</view>
+			</view>
+
+			<view class="code d-flex">
+				<view class="title">验证码</view>
+				<input placeholder="请输入验证码" v-model="code" maxlength="5" style="padding-right: 200rpx;" />
+				<view class="d-flex a-center j-center login-font-color yanzhengma" @tap="getCheckNum">
+					<view class="d-flex a-center j-center"
+						:class="!codetime?'yanzhengma1 main-text-color':'yanzhengma2'">
+						{{!codetime?'获取验证码':codetime+' s'}}
+					</view>
+				</view>
+			</view>
+
+			<!-- 推荐信息 -->
+			<template v-if="showRecommend">
+				<view class="recommendInfo">
+					<view class="d-flex">
+						<view>
+							<image src="/static/bigLogo.png"></image>
+						</view>
+						<view>
+							<view><span class="text-muted mr-2">推荐人姓名</span> {{recommendername}}</view>
+							<view><span class="text-muted mr-2">推荐人会员号</span> {{recommenderid}}</view>
+						</view>
+					</view>
+					<view class="px-3 py-1 d-flex a-center j-center">请确认推荐人信息,注册后,推荐人将不可修改</view>
+				</view>
+			</template>
+
+			<button class="my-3 mt-4 d-flex a-center j-center font-weight main-bg-color" :loading="loading"
+				:class="{'main-bf-hover-color':disabled}" type="primary" @tap="submit" :disabled="disabled"
+				style="letter-spacing: 20rpx;">注册</button>
+
+			<view class="d-flex a-center j-center my-3">
+				已有帐号?<view class="main-text-color" @tap="navigate({url:'/pages/login/login'},'reLaunch')">去登录</view>
+			</view>
+		</view>
+
+	</view>
+</template>
+<script>
+	import {
+		pathToBase64,
+		base64ToPath
+	} from '@/common/image-tools-base64.js';
+	import {
+		mapMutations
+	} from "vuex"
+	export default {
+		data() {
+			return {
+				name: "",
+				phone: "",
+				password: "",
+				code: "",
+				isHidePassword: true,
+				disabled: true,
+				loading: false,
+
+				codetime: 0,
+				showRecommend: false,
+				recommendername: "",
+				recommenderid: ""
+			}
+		},
+		async onLoad(params) {
+			// // #ifdef H5
+			// document.getElementsByTagName('uni-page-head')[0].style.display = 'none'
+			// // #endif
+			if (params.id) {
+				this.recommenderid = params.id;
+				// 查询推荐人信息
+				let res = await this.$http.get('/user/findById?id=' + params.id);
+				if ((res.code == '200') && (res.data != null)) {
+					this.recommendername = res.data.name;
+					this.showRecommend = true;
+				} else {
+					uni.showToast({
+						title: res.msg,
+						icon: "success",
+						duration: 2000
+					});
+					this.showRecommend = false;
+					// if(this.$base.baseUrl.indexOf("test")>-1){
+					// 	this.recommenderid="99140109M01D01001";
+					// 	this.recommendername = "耿陈杰";
+					// 	this.showRecommend = false;
+					// }else{
+					// 	this.recommenderid="99140109M03D01001";
+					// 	this.recommendername = "掌柜老王";
+					// 	this.showRecommend = false;
+					// }
+
+				}
+			}
+			// else{
+			// 	if(this.$base.baseUrl.indexOf("test")>-1){
+			// 		this.recommenderid="99140109M01D01001";
+			// 		this.recommendername = "耿陈杰";
+			// 		this.showRecommend = false;
+			// 	}else{
+			// 		this.recommenderid="99140109M03D01001";
+			// 		this.recommendername = "掌柜老王";
+			// 		this.showRecommend = false;
+			// 	}
+			// }
+		},
+		watch: {
+			name() {
+				this.OnBtnChange();
+			},
+			phone(val) {
+				this.OnBtnChange();
+			},
+			password(val) {
+				this.OnBtnChange();
+			},
+			code(val) {
+				this.OnBtnChange();
+			}
+		},
+		methods: {
+			...mapMutations(['setUserModules']),
+			// 改变按钮状态
+			OnBtnChange() {
+				if (this.phone && this.password && this.code && this.name) {
+					this.disabled = false;
+					return;
+				}
+				this.disabled = true;
+			},
+			isPwdRules() {
+				let mPattern = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;
+				return mPattern.test(this.password);
+			},
+			// 获取验证码
+			async getCheckNum() {
+				uni.hideKeyboard();
+				if (this.codetime > 0) return;
+				// 验证手机号合法性
+				if (!this.phone) {
+					return uni.showToast({
+						title: '请输入手机号',
+						icon: 'none'
+					});
+				}
+				if (!this.$base.phoneRegular.test(this.phone)) {
+					return uni.showToast({
+						title: '请输入正确的手机号码',
+						icon: 'none'
+					});
+				}
+				// 请求服务器,发送验证码
+				let res = await this.$http.get('/sendMsg', {
+					phone: this.phone,
+					type: "1"
+				});
+				// 请求失败处理
+				if (res.code != 200) {
+					return uni.showToast({
+						title: res.data.msg,
+						icon: "none"
+					});
+				} else {
+					uni.showToast({
+						title: "发送成功",
+						icon: "none"
+					});
+				}
+				// 发送成功,开启倒计时
+				this.codetime = 60;
+				let timer = setInterval(() => {
+					this.codetime--;
+					if (this.codetime < 1) {
+						clearInterval(timer);
+						this.codetime = 0;
+					}
+				}, 1000);
+			},
+
+			// 提交注册
+			async submit() {
+				if (!this.name) {
+					return uni.showToast({
+						title: '请输入姓名',
+						icon: 'none'
+					});
+				}
+				// 验证手机号合法性
+				if (!this.$base.phoneRegular.test(this.phone)) {
+					return uni.showToast({
+						title: '请输入正确的手机号码',
+						icon: 'none'
+					});
+				}
+				// 验证密码合法性
+				if (!this.$base.passwordRegular.test(this.password)) {
+					return uni.showToast({
+						title: '密码须6-15位数字与字母组合',
+						icon: 'none'
+					});
+				}
+				// 请求服务器,发送验证码
+				let res = await this.$http.post('/user/agentRegist', {
+					"name": this.name,
+					"password": this.password,
+					"mobile": this.phone,
+					"mobileMsg": this.code,
+					"referrerId": this.recommenderid,
+					"referrerName": this.recommendername,
+					"flag": 2,
+				});
+				// 请求失败处理
+				// var newPhone= "";
+				// newPhone = this.phone;
+				// this.password="";
+				// this.phone="";
+				// this.code="";
+				// this.name="";
+				if ((res.code == 200) && (!!res.data)) {
+					// #ifndef H5
+					this.setUserModules({
+						title: "userLoginId",
+						data: res.data
+					})
+					uni.showToast({
+						title: '注册成功',
+						icon: "success",
+						duration: 2000
+					});
+					setTimeout(() => {
+						return uni.reLaunch({
+							url: "/pages/login/login"
+						})
+					}, 2000);
+					// #endif
+
+					// #ifdef H5
+					setTimeout(() => {
+						return uni.reLaunch({
+							url: "/pages/register/registerSuccess?id=" + res.data + '&phone=' + this
+								.phone
+						})
+					}, 2000);
+					// #endif
+				} else {
+					uni.showToast({
+						title: res.msg,
+						icon: "none",
+						duration: 2000
+					});
+				}
+				// else{
+				// 	uni.showToast({ title: '已注册,重复注册', icon:"success",duration:2000 });
+				// }
+			}
+
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import '@/style/mixin.scss';
+
+	.idCardBefore {
+		background: rgba($themeColor, 0.1) url('/static/image/user/identy2.png') center center no-repeat;
+		background-size: auto 70%;
+		padding: 10upx;
+	}
+
+	.page {
+		background: #F5F5F5;
+		height: 100vh;
+		width: 100%;
+		position: absolute;
+	}
+
+	.phone,
+	.password,
+	.code {
+		position: relative;
+		height: 90upx;
+		display: flex;
+		align-items: center;
+		background-color: #FFFFFF;
+		padding: 0 30upx;
+		margin-bottom: 26upx;
+	}
+
+	.phone .title,
+	.password .title,
+	.code .title {
+		width: 160upx;
+		flex-shrink: 0;
+		color: #666;
+	}
+
+	.phone input,
+	.password input,
+	.code input {
+		width: 350upx;
+		font-size: 28upx;
+	}
+
+	.yanzhengma {
+		width: 150upx;
+		position: absolute;
+		right: 30upx;
+	}
+
+	.yanzhengma1 {
+		font-size: 26upx;
+		background: #FFFFFF;
+		border-radius: 10rpx;
+		width: 150rpx;
+		padding: 5rpx 0;
+	}
+
+	.yanzhengma2 {
+		background: #FFFFFF;
+		font-size: 26upx;
+		color: #B2B2B2;
+		border-radius: 10rpx;
+		width: 150rpx;
+		padding: 5rpx 0;
+	}
+
+	.recommendInfo {
+		background: #FFFFFF;
+	}
+
+	.recommendInfo>view:nth-of-type(1) {
+		border-bottom: 1px solid #ddd;
+	}
+
+	.recommendInfo>view:nth-of-type(1)>view:nth-of-type(1) {
+		width: 150upx;
+		height: 150upx;
+		border-radius: 50%;
+	}
+
+	.recommendInfo>view:nth-of-type(1)>view:nth-of-type(1)>image {
+		width: 100%;
+		height: 100%;
+	}
+
+	.recommendInfo>view:nth-of-type(1)>view:nth-of-type(2) {
+		padding: 20upx;
+	}
+
+	.recommendInfo>view:nth-of-type(1)>view:nth-of-type(2)>view {
+		height: 55upx;
+	}
+
+	.recommendInfo>view:nth-of-type(2) {
+		line-height: 50upx;
+	}
+</style>

+ 2 - 4
pages/register/register.vue

@@ -226,15 +226,13 @@
 				// 请求服务器,发送验证码
 				let res = await this.$http.post('/user/agentRegist', {
 					"name": this.name,
-					"identity": this.identity,
-					"addressnow": this.addressnow,
 					"password": this.password,
 					"mobile": this.phone,
 					"mobileMsg": this.code,
 					"referrerId": this.recommenderid,
-					"referrerName": this.recommendername
+					"referrerName": this.recommendername,
+					"flag": 1,
 				});
-				console.log(res)
 				// 请求失败处理
 				// var newPhone= "";
 				// newPhone = this.phone;

+ 5 - 0
pages/register/registerSuccess.vue

@@ -95,6 +95,11 @@
 					let url = getquote.data.content[0].path;
 					if (getquote.code == '200') {
 						window.open(url);
+					} else {
+						uni.showToast({
+							title: getquote.msg,
+							icon: 'none'
+						});
 					}
 				}
 			},

+ 39 - 3
pages/tools/addStaff/addStaff.vue

@@ -19,15 +19,26 @@
 		<view class="line"></view>
 
 		<!-- 增员菜单Start -->
-		<block v-for="(item,index) in menusList" :key="index">
-			<my-list-item :item="item" :index="index"></my-list-item>
-		</block>
+		<template v-if="userInfo.sysUser.roleId==19">
+			<block v-for="(item,index) in menusList1" :key="index">
+				<my-list-item :item="item" :index="index"></my-list-item>
+			</block>
+		</template>
+		<template v-else>
+			<block v-for="(item,index) in menusList" :key="index">
+				<my-list-item :item="item" :index="index"></my-list-item>
+			</block>
+		</template>
 		<!-- 增员菜单End -->
 
 	</view>
 </template>
 
 <script>
+	import {
+		mapState,
+		mapMutations
+	} from "vuex"
 	import myListItem from "@/components/modules/my/my-list-item.vue";
 	export default {
 		components: {
@@ -49,6 +60,13 @@
 						url: "/pages/tools/addStaff/codeDownload",
 						auth: true
 					},
+					{
+						icon: "",
+						name: "出单员扫码注册",
+						clicktype: "navigateTo",
+						url: "/pages/tools/addStaff/orderissuer",
+						auth: true
+					},
 					{
 						icon: "",
 						name: "邀请函",
@@ -56,9 +74,27 @@
 						url: "/pages/tools/poster/poster",
 						auth: true
 					}
+				],
+				menusList1: [{
+						icon: "",
+						name: "扫码下载",
+						clicktype: "navigateTo",
+						url: "/pages/tools/addStaff/codeDownload",
+						auth: true
+					},
+					{
+						icon: "",
+						name: "出单员扫码注册",
+						clicktype: "navigateTo",
+						url: "/pages/tools/addStaff/orderissuer",
+						auth: true
+					},
 				]
 			}
 		},
+		computed: {
+			...mapState(['userInfo']),
+		},
 		methods: {
 			getStaffList(staffType) {
 				// 0未认证 1已认证 2全部

+ 61 - 0
pages/tools/addStaff/orderissuer.vue

@@ -0,0 +1,61 @@
+<template>
+	<view :style="getHeight">
+		<!-- 公共组件-每个页面必须引入 -->
+		<public-module></public-module>
+		<view class="content d-flex flex-column a-center j-center">
+			<image src="/static/image/addStaff/face_sao.png" mode="widthFix" lazy-load style="width: 500upx;"></image>
+			<image :src="recommendImg" mode="widthFix" lazy-load style="width: 450upx;"></image>
+			<view>新成员只需要扫描您的二维码,即可马上注册加入啦!</view>
+		</view>
+	</view>
+</template>
+<script>
+	import {
+		mapState
+	} from "vuex"
+	import QR from "@/common/wxqrcode.js"
+	export default {
+		data() {
+			return {
+				recommendImg: ""
+			}
+		},
+		computed: {
+			...mapState(['userInfo']),
+			getHeight() {
+				let height = uni.getSystemInfoSync().windowHeight;
+				return `height: ${height}px;`;
+			}
+		},
+		onLoad() {
+			var id = this.userInfo.sysUser.id;
+			console.log(id)
+			this.recommendImg = QR.createQrCodeImg(this.$base.h5BaseUrl + "/#/pages/register/orderissuer?id=" + id, {
+				size: parseInt(200) //二维码大小  
+			})
+		},
+		methods: {
+
+		}
+	}
+</script>
+
+<style>
+	.content {
+		position: absolute;
+		top: 50%;
+		left: 50%;
+		transform: translate(-50%, -60%);
+	}
+
+	.content>image {
+		margin-top: 30upx;
+		margin-bottom: 30upx;
+	}
+
+	.content>view {
+		width: 400upx;
+		color: red;
+		text-align: center;
+	}
+</style>

+ 3 - 6
pages/tools/poster/poster-detail.vue

@@ -19,7 +19,7 @@
 				imgurl: '',
 				canvasShow: true,
 				posterimg: "",
-				recommendImg: ""
+				recommendImg: "",
 			}
 		},
 		onLoad(params) {
@@ -36,13 +36,10 @@
 			})
 		},
 		computed: {
-			...mapState(['avatar', "userInfo"]),
+			...mapState(["userInfo"]),
 		},
 		mounted() {
 			this.canvasImage();
-			// uni.setNavigationBarTitle({
-			// 	title: "新的标题"
-			// })
 		},
 		methods: {
 			canvasImage() {
@@ -55,7 +52,7 @@
 				myCanvas.drawImage(this.posterimg, 0, 0, ww, hh);
 
 				//头像
-				myCanvas.drawImage(this.avatar, ww / 10, hh - ww / 40 * 9, ww / 0 * 7, ww / 7);
+				// myCanvas.drawImage(this.avatar, ww - hh / 2, hh - ww / 3.8, ww / 8, ww / 8);
 				//个人信息
 				let fontSize1 = uni.upx2px(32);
 				myCanvas.setFillStyle('#fff') //文字样式

+ 8 - 7
pages/tools/poster/poster.vue

@@ -6,32 +6,32 @@
 		</view>
 		<view class="" style="padding-top: 100rpx;box-sizing: border-box;">
 			<view v-if="current==0" class="order">
-				<view class="order1" v-for="(item,index) in list1" @click="admin(item.url)">
+				<view class="order1" v-for="(item,index) in list1" :key="index" @click="queryImg(item.url)">
 					<image :src="item.url" mode=""></image>
 					<text>{{item.originalfilename}}</text>
 				</view>
 			</view>
 			<view v-if="current==1" class="order">
-				<view class="order1" v-for="(item,index) in list2" @click="admin(item.url)">
+				<view class="order1" v-for="(item,index) in list2" :key="index" @click="queryImg(item.url)">
 					<image :src="item.url" mode=""></image>
 					<text>{{item.originalfilename}}</text>
 				</view>
 			</view>
 
 			<view v-if="current==2" class="order">
-				<view class="order1" v-for="(item,index) in list3" @click="admin(item.url)">
+				<view class="order1" v-for="(item,index) in list3" :key="index" @click="queryImg(item.url)">
 					<image :src="item.url" mode=""></image>
 					<text>{{item.originalfilename}}</text>
 				</view>
 			</view>
 			<view v-if="current==3" class="order">
-				<view class="order1" v-for="(item,index) in list4" @click="admin(item.url)">
+				<view class="order1" v-for="(item,index) in list4" :key="index" @click="queryImg(item.url)">
 					<image :src="item.url" mode=""></image>
 					<text>{{item.originalfilename}}</text>
 				</view>
 			</view>
 			<view v-if="current==4" class="order">
-				<view class="order1" v-for="(item,index) in list5" @click="admin(item.url)">
+				<view class="order1" v-for="(item,index) in list5" :key="index" @click="queryImg(item.url)">
 					<image :src="item.url" mode=""></image>
 					<text>{{item.originalfilename}}</text>
 				</view>
@@ -113,10 +113,11 @@
 				console.log(index)
 				this.current = index;
 			},
-			admin(data) {
+			queryImg(img) {
 				uni.navigateTo({
-					url: "/pages/tools/poster/poster-detail?img=" + data
+					url: '/pages/tools/poster/poster-detail?img=' + img
 				})
+
 			}
 		}
 	}

+ 50 - 64
pages/tools/team/team.vue

@@ -25,9 +25,9 @@
 					<view class="d-flex a-center j-center">签单保费(元)</view>
 					<view class="d-flex a-center j-center">出单人力</view>
 				</view>
-				<block v-for="(item,index) in arrdata" :key="index">
+				<block v-for="(item,index) in SummaryList" :key="index">
 					<view class="statisticsContent">
-						<view class="d-flex a-center j-center">{{item.name}}</view>
+						<view class="d-flex a-center j-center">{{item.teamlevel}}</view>
 						<view class="d-flex a-center j-center">{{item.teamnum}}</view>
 						<view class="d-flex a-center j-center">{{item.sumpremium.toFixed(2)}}</view>
 						<view class="d-flex a-center j-center">{{item.usernum}}</view>
@@ -50,7 +50,36 @@
 						<view>签单保费</view>
 					</view>
 				</view>
-				<view class="dis j-s a-c team_members-data" v-for="(item,index) in teamStaffList1" :key="index">
+				<view v-if="teamTabIndex==0" class="dis j-s a-c team_members-data"
+					v-for="(item,index) in userPolicyList1" :key="index" @click="toTeamMember('userPolicyList1',index)">
+					<view class="dis j-c a-c">{{item.username}}</view>
+					<view class="dis j-c a-c">{{item.ordernum}}</view>
+					<view class="dis j-c a-c">{{item.policynum}}</view>
+					<view class="dis j-c a-c">{{item.sumpremium}}</view>
+				</view>
+				<view v-if="teamTabIndex==1" class="dis j-s a-c team_members-data"
+					v-for="(item,index) in userPolicyList2" :key="index">
+					<view class="dis j-c a-c">{{item.username}}</view>
+					<view class="dis j-c a-c">{{item.ordernum}}</view>
+					<view class="dis j-c a-c">{{item.policynum}}</view>
+					<view class="dis j-c a-c">{{item.sumpremium}}</view>
+				</view>
+				<view v-if="teamTabIndex==2" class="dis j-s a-c team_members-data"
+					v-for="(item,index) in userPolicyList3" :key="index">
+					<view class="dis j-c a-c">{{item.username}}</view>
+					<view class="dis j-c a-c">{{item.ordernum}}</view>
+					<view class="dis j-c a-c">{{item.policynum}}</view>
+					<view class="dis j-c a-c">{{item.sumpremium}}</view>
+				</view>
+				<view v-if="teamTabIndex==3" class="dis j-s a-c team_members-data"
+					v-for="(item,index) in userPolicyList4" :key="index">
+					<view class="dis j-c a-c">{{item.username}}</view>
+					<view class="dis j-c a-c">{{item.ordernum}}</view>
+					<view class="dis j-c a-c">{{item.policynum}}</view>
+					<view class="dis j-c a-c">{{item.sumpremium}}</view>
+				</view>
+				<view v-if="teamTabIndex==4" class="dis j-s a-c team_members-data"
+					v-for="(item,index) in userPolicyList5" :key="index">
 					<view class="dis j-c a-c">{{item.username}}</view>
 					<view class="dis j-c a-c">{{item.ordernum}}</view>
 					<view class="dis j-c a-c">{{item.policynum}}</view>
@@ -86,30 +115,36 @@
 				],
 				showDatePicker: false,
 				teamTabIndex: 0,
+				SummaryList: [],
+				userPolicyList1: [],
+				userPolicyList2: [],
+				userPolicyList3: [],
+				userPolicyList4: [],
+				userPolicyList5: [],
 				arrdata: [{
 						teamlevel: 99,
-						name: '总计',
+						name: '总',
 						teamnum: 0, //人数
 						sumpremium: 0, //签单保费
 						usernum: 0 //出单人力
 					},
 					{
 						teamlevel: 1,
-						name: '一级团队',
+						name: '本人',
 						teamnum: 0, //人数
 						sumpremium: 0, //签单保费
 						usernum: 0 //出单人力
 					},
 					{
 						teamlevel: 2,
-						name: '级团队',
+						name: '级团队',
 						teamnum: 0, //人数
 						sumpremium: 0, //签单保费
 						usernum: 0 //出单人力
 					},
 					{
 						teamlevel: 3,
-						name: '级团队',
+						name: '级团队',
 						teamnum: 0, //人数
 						sumpremium: 0, //签单保费
 						usernum: 0 //出单人力
@@ -124,7 +159,6 @@
 				],
 				teamStaff: {},
 				teamStaffList: [],
-				teamStaffList1: []
 			}
 		},
 		async onLoad(params) {
@@ -157,10 +191,6 @@
 		},
 
 		methods: {
-			change(index) {
-				console.log(index)
-				this.current = index;
-			},
 			bindPickerChange: function(e) {
 				this.queryTimeTypeIndex = e.target.value
 				if (e.target.value == 0) {
@@ -180,38 +210,18 @@
 			},
 
 			async queryData() {
-				this.arrdata.map(val => {
-					val.teamnum = 0
-					val.sumpremium = 0
-					val.usernum = 0
-				})
-				this.teamTabIndex = 0;
-				var params = {
-					"id": this.queryPeopleId,
-					"mobile": "",
-					"name": "",
+				let params = {
 					"enddate": this.dateRange[1],
 					"startdate": this.dateRange[0]
 				}
-				let res = await this.$http.post('/esm/user/queryTeamPolicy', params);
+				let res = await this.$http.post('/esm/user/queryUserCount', params);
 				if (res.code == '200') {
-					res.data.map(ele => {
-						this.arrdata.map(val => {
-							if (ele.teamlevel == val.teamlevel) {
-								Object.assign(val, ele)
-								this.arrdata[0].teamnum += ele.teamnum;
-								this.arrdata[0].sumpremium += ele.sumpremium;
-								this.arrdata[0].usernum += ele.usernum;
-							}
-							return val;
-						})
-					})
-				}
-
-				let res1 = await this.$http.post('/esm/user/queryUserPolicy', params);
-				if (res1.code == '200') {
-					this.teamStaffList = res1.data;
-					this.teamStaffList1 = res1.data;
+					this.SummaryList = res.data.hzList;
+					this.userPolicyList1 = res.data.userPolicyList;
+					this.userPolicyList2 = res.data.userPolicyList0;
+					this.userPolicyList3 = res.data.userPolicyList1;
+					this.userPolicyList4 = res.data.userPolicyList2;
+					this.userPolicyList5 = res.data.userPolicyList9;
 				}
 			},
 
@@ -227,31 +237,7 @@
 			},
 			// 选择团队tap
 			teamTabtap(index) {
-
 				this.teamTabIndex = index;
-				if (index == 0) {
-					this.teamStaffList1 = this.teamStaffList;
-				} else if (index == 1) {
-					let DataList = this.teamStaffList.filter(val => {
-						return val.teamlevel == 1
-					})
-					this.teamStaffList1 = DataList;
-				} else if (index == 2) {
-					let DataList = this.teamStaffList.filter(val => {
-						return val.teamlevel == 2
-					})
-					this.teamStaffList1 = DataList;
-				} else if (index == 3) {
-					let DataList = this.teamStaffList.filter(val => {
-						return val.teamlevel == 3
-					})
-					this.teamStaffList1 = DataList;
-				} else if (index == 4) {
-					let DataList = this.teamStaffList.filter(val => {
-						return val.teamlevel == 9
-					})
-					this.teamStaffList1 = DataList;
-				}
 			},
 			toTeamMember(index) {
 				this.navigate({

+ 79 - 59
pages/tools/team/teamMember.vue

@@ -4,21 +4,21 @@
 			<view class="infoTitle d-flex a-center">业绩信息</view>
 			<view class="achievementStatistics d-flex">
 				<view class="achievementStatistics_item d-flex flex-1 flex-column">
-					<view class="d-flex a-center j-center">标保</view>
+					<view class="d-flex a-center j-center">签单保费</view>
 					<view class="d-flex a-center j-center">0</view>
 				</view>
 				<view class="achievementStatistics_item d-flex flex-1 flex-column">
-					<view class="d-flex a-center j-center">件数</view>
+					<view class="d-flex a-center j-center">出单人力</view>
 					<view class="d-flex a-center j-center">0</view>
 				</view>
 				<view class="achievementStatistics_item d-flex flex-1 flex-column">
-					<view class="d-flex a-center j-center">均件</view>
+					<view class="d-flex a-center j-center">平均保费</view>
 					<view class="d-flex a-center j-center">0</view>
 				</view>
 			</view>
 			<view class="achievementAssessment d-flex">
 				<view class="achievementAssessment_item d-flex a-center j-center flex-1">
-					<view>机制考核</view><br/>
+					<view>机制考核</view><br />
 					<view>守维持</view>
 				</view>
 				<view class="achievementAssessment_item d-flex flex-1 flex-column">
@@ -28,53 +28,54 @@
 				</view>
 			</view>
 		</view>
-		
-		<view class="teamInfo">
+		<!-- <view class="teamInfo">
 			<view class="teamInfo_item d-flex a-center j-sb" hover-class="teamInfo-list-hover">
 				<view class="d-flex a-center">团队信息</view>
 				<view class="icon iconfont icon-youjiantou" @tap="toTeam"></view>
 			</view>
-		</view>
-		
+		</view> -->
 		<view class="personInfo">
 			<view class="infoTitle d-flex a-center">个人信息</view>
 			<view class="personInfo_item d-flex a-center j-sb">
 				<view class="d-flex a-center">姓名</view>
-				<view>{{staffInfo.sysUser.name}}</view>
+				<view>{{this.userInfo.sysUser.name}}</view>
 			</view>
 			<view class="personInfo_item d-flex a-center j-sb">
 				<view class="d-flex a-center">会员号</view>
-				<view>{{staffInfo.sysUser.id}}</view>
+				<view>{{this.userInfo.sysUser.id}}</view>
 			</view>
 			<view class="personInfo_item d-flex a-center j-sb">
 				<view class="d-flex a-center">手机</view>
-				<view @tap="callPhone(staffInfo.sysUser.mobile)" style="color: #007AFF;">{{staffInfo.sysUser.mobile?(staffInfo.sysUser.mobile.substring(0,3)+'****'+staffInfo.sysUser.mobile.substring(7)):''}}</view>
+				<view @tap="callPhone(this.userInfo.sysUser.mobile)" style="color: #007AFF;">
+					{{this.userInfo.sysUser.mobile?(this.userInfo.sysUser.mobile.substring(0,3)+'****'+this.userInfo.sysUser.mobile.substring(7)):''}}
+				</view>
 			</view>
 			<view class="personInfo_item d-flex a-center j-sb">
 				<view class="d-flex a-center">注册时间</view>
-				<view>{{staffInfo.esmUserInternal.intime}}</view>
+				<view>{{this.userInfo.sysUser.createTime}}</view>
 			</view>
-			
+
 		</view>
-		
-		
+
+
 	</view>
 </template>
 
 <script>
+	import {
+		mapState
+	} from "vuex";
 	export default {
 		data() {
 			return {
-				staffInfo:{
-					sysUser:{
-						name:"",
-						id:"",
-						mobile:"",
-					},
-					esmUserInternal:{
-						intime:""
-					}
-				}
+
+			}
+		},
+		computed: {
+			...mapState(['userInfo']),
+			getHeight() {
+				let height = uni.getSystemInfoSync().windowHeight - uni.upx2px(770);
+				return `height: ${height}px;`;
 			}
 		},
 		// 监听导航栏的按钮
@@ -82,18 +83,16 @@
 			if (e.index == 0) {
 				this.navigate({
 					url: '/pages/index/index'
-				}, "switchTab",true);
+				}, "switchTab", true);
 			}
 		},
 		onLoad() {
 			const eventChannel = this.getOpenerEventChannel()
 			// 监听acceptData事件,获取上一页面通过eventChannel传送到当前页面的数据
-			eventChannel.on('acceptData', (data) => {
-				this.staffInfo = data.item;
-			})
+			eventChannel.on('acceptData', (data) => {})
 		},
 		methods: {
-			callPhone(tel){
+			callPhone(tel) {
 				uni.makePhoneCall({
 					phoneNumber: tel,
 					success: () => {
@@ -101,96 +100,117 @@
 					}
 				})
 			},
-			toTeam(){
-				this.navigate({url:'/pages/tools/team/team?id='+this.staffInfo.sysUser.id+'&name='+this.staffInfo.sysUser.name},"navigateTo",true)
-			}
+			// toTeam() {
+			// 	this.navigate({
+			// 		url: '/pages/tools/team/team?id=' + this.staffInfo.sysUser.id + '&name=' + this.staffInfo
+			// 			.sysUser.name
+			// 	}, "navigateTo", true)
+			// }
 		}
 	}
 </script>
 
 <style>
-	page{
+	page {
 		background: #F1F1F3;
 	}
-	
-	.achievementInfo,.teamInfo,.personInfo{
+
+	.achievementInfo,
+	.teamInfo,
+	.personInfo {
 		margin-top: 20rpx;
-		background:#FFFFFF;
+		background: #FFFFFF;
 	}
+
 	/* 业绩信息Start */
-	.infoTitle{
+	.infoTitle {
 		height: 80rpx;
 		padding: 0rpx 20rpx;
 		border-bottom: 1px solid #EDEDED;
 	}
-	.achievementStatistics{
+
+	.achievementStatistics {
 		/* height: 140rpx; */
 		border-bottom: 1px solid #EDEDED;
 	}
-	.achievementStatistics_item{
+
+	.achievementStatistics_item {
 		padding: 10rpx 0;
 		box-sizing: border-box;
 	}
-	.achievementStatistics_item>view:nth-of-type(1){
+
+	.achievementStatistics_item>view:nth-of-type(1) {
 		font-size: 32rpx;
 		line-height: 60rpx;
 		color: #4D4D4D;
 	}
-	.achievementStatistics_item>view:nth-of-type(2){
+
+	.achievementStatistics_item>view:nth-of-type(2) {
 		font-size: 32rpx;
 		color: #D30500;
 	}
-	.achievementAssessment{
+
+	.achievementAssessment {
 		border-bottom: 1px solid #EDEDED;
 	}
-	.achievementAssessment_item{
+
+	.achievementAssessment_item {
 		padding: 15rpx 0;
 	}
-	.achievementAssessment .achievementAssessment_item:nth-child(1){
+
+	.achievementAssessment .achievementAssessment_item:nth-child(1) {
 		border-right: 1px solid #F1F1F1;
 		flex: 2;
 	}
-	.achievementAssessment .achievementAssessment_item:nth-child(1)>view:nth-of-type(2){
+
+	.achievementAssessment .achievementAssessment_item:nth-child(1)>view:nth-of-type(2) {
 		display: inline-block;
 		background-color: #007AFF;
 		padding: 0rpx 10rpx;
-		border-radius:20rpx;
+		border-radius: 20rpx;
 		font-size: 20rpx;
 		text-align: center;
 		color: #fff;
 		margin-left: 20rpx;
 	}
-	
-	.achievementAssessment .achievementAssessment_item:nth-child(2){
+
+	.achievementAssessment .achievementAssessment_item:nth-child(2) {
 		padding-left: 40rpx;
 		box-sizing: border-box;
 		flex: 3;
 		color: #5F5F5F;
 	}
+
 	/* 业绩信息End */
-	
-	.teamInfo-list-hover{
+
+	.teamInfo-list-hover {
 		background: #f4f4f4;
 	}
-	.teamInfo_item>view:first-child{
+
+	.teamInfo_item>view:first-child {
 		color: #000;
 	}
-	.teamInfo_item>view:last-child{
+
+	.teamInfo_item>view:last-child {
 		color: #6A6A6A;
 	}
-	
-	.personInfo_item,.teamInfo_item{
+
+	.personInfo_item,
+	.teamInfo_item {
 		padding: 15upx 30upx;
 		border-top: 1upx solid #F4F4F4;
 		border-bottom: 1upx solid #F4F4F4;
 	}
-	.personInfo_item>view:first-child{
+
+	.personInfo_item>view:first-child {
 		color: #3C3C3C;
 	}
-	.personInfo_item>view:first-child>view{
+
+	.personInfo_item>view:first-child>view {
 		margin-right: 20upx;
 	}
-	.personInfo_item>view:last-child{
+
+	.personInfo_item>view:last-child {
 		color: #6A6A6A;
 	}
-</style>
+</style>

+ 1 - 1
pages/user/userInfo.vue

@@ -46,7 +46,7 @@
 			</view>
 			<view class="user-set-userinfo-list d-flex a-center j-sb">
 				<view>注册时间</view>
-				<view class="d-flex a-center info">{{esmUserInternal.intime}}</view>
+				<view class="d-flex a-center info">{{sysUser.createTime}}</view>
 				<view></view>
 			</view>
 		</view>