Pārlūkot izejas kodu

Merge branch 'developerC' into developer

# Conflicts:
#	services/user.service.js
zhengjinyi 3 gadi atpakaļ
vecāks
revīzija
817ab45666

+ 7 - 0
common/config/caimeiApi.js

@@ -308,6 +308,12 @@ const caimeiApi = {
             url:url
         })
     },
+    reLaunch:function(url){
+        //路由跳转:关闭当前页跳转到新页面	
+        uni.reLaunch({
+            url:url
+        })
+    },
     switchTabTo:function(url){
         //路由跳转:底部 tab页
         uni.switchTab({
@@ -409,6 +415,7 @@ module.exports = {
     isNumber: caimeiApi.isNumber,
     FormatMoney: caimeiApi.FormatMoney,
     navigateTo: caimeiApi.navigateTo,
+    reLaunch: caimeiApi.reLaunch,
     redirectTo: caimeiApi.redirectTo,
     switchTabTo: caimeiApi.switchTabTo,
     formatDate: caimeiApi.formatDate,

+ 19 - 3
common/css/iconfont.scss

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 1519039 */
-  src: url('//at.alicdn.com/t/font_1519039_jpci2izhta9.woff2?t=1622614721342') format('woff2'),
-       url('//at.alicdn.com/t/font_1519039_jpci2izhta9.woff?t=1622614721342') format('woff'),
-       url('//at.alicdn.com/t/font_1519039_jpci2izhta9.ttf?t=1622614721342') format('truetype');
+  src: url('//at.alicdn.com/t/font_1519039_9e2bfkcum7.woff2?t=1642663000447') format('woff2'),
+       url('//at.alicdn.com/t/font_1519039_9e2bfkcum7.woff?t=1642663000447') format('woff'),
+       url('//at.alicdn.com/t/font_1519039_9e2bfkcum7.ttf?t=1642663000447') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,22 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-riqi:before {
+  content: "\e66a";
+}
+
+.icon-gengduo1:before {
+  content: "\e696";
+}
+
+.icon-yishiyong:before {
+  content: "\e72e";
+}
+
+.icon-yishixiao:before {
+  content: "\e72d";
+}
+
 .icon-zichan:before {
   content: "\e72c";
 }

+ 1 - 1
components/cm-module/cm-seller/cm-clubmodal.vue

@@ -24,7 +24,7 @@ export default {
 		},
 		modalType:{
 			type: Number,
-			default:0
+			default:2
 		}
 	},
 	data() {

+ 1 - 1
components/cm-module/cm-seller/cm-clubpopup.vue

@@ -116,7 +116,7 @@ export default {
 				})
 		},
 		checkedCoupon(idx) {
-			// 选择优惠券
+			// 选择机构
 			this.checkedIndex = idx
 			this.dataList.forEach((el, index) => {
 				if (this.checkedIndex == index) {

+ 332 - 0
components/cm-module/cm-seller/cm-refereepopup.vue

@@ -0,0 +1,332 @@
+<template name="coupon">
+	<view class="coupon-template">
+		<!-- 选择机构 -->
+		<tui-bottom-popup :radius="true" :show="show" @close="hidePopup">
+			<view class="tui-popup-box clearfix">
+				<view class="title">选择咨询人</view>
+				<view class="title-search">
+					<view class="search-from name">
+						<text class="iconfont icon-iconfonticonfontsousuo1"></text>
+						<input
+							class="input"
+							type="text"
+							confirm-type="search"
+							v-model="listQuery.name"
+							@input="onShowClose"
+							@confirm="initclubList()"
+							placeholder="咨询人姓名"
+							maxlength="16"
+						/>
+						<text class="iconfont icon-shanchu1" v-if="isShowClose" @click="delInputText()"></text>
+					</view>
+				</view>
+				<view class="tui-popup-main coupon">
+					<scroll-view class="tui-popup-scroll" scroll-y="true">
+						<view
+							v-for="(club, index) in dataList"
+							:key="index"
+							class="list"
+							@click.stop="checkedCoupon(index)"
+						>
+							<view class="list-cell-le">
+								{{ club.questionMan  }}
+							</view>
+							<view class="list-cell-btn">
+								<view
+									class="checkbox iconfont"
+									:class="[club.ischecked ? 'icon-yixuanze' : 'icon-weixuanze']"
+								>
+								</view>
+							</view>
+						</view>
+					</scroll-view>
+				</view>
+				<view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
+					<view class="tui-flex-1"> <view class="tui-button" @click="hidePopup">确定</view> </view>
+				</view>
+			</view>
+		</tui-bottom-popup>
+	</view>
+</template>
+
+<script>
+export default {
+	name: 'coupon',
+	props: {
+		show: {
+			type: Boolean,
+			default: false
+		}
+	},
+	data() {
+		return {
+			isIphoneX: this.$store.state.isIphoneX,
+			checkedIndex: 0,
+			isShowClose: false,
+			listQuery: {
+				serviceProviderId: 0,
+				pageNum: 1,
+				pageSize: 100
+			},
+			dataList: []
+		}
+	},
+	created() {
+		this.initclubList()
+	},
+	methods: {
+		async initclubList() {
+			const userInfo = await this.$api.getStorage()
+			this.listQuery.serviceProviderId = userInfo.serviceProviderId
+			this.UserService.getUserClubVisitorList(this.listQuery)
+				.then(response => {
+					let data = response.data
+					if (data.results && data.results.length > 0) {
+						 this.dataList = data.results.map((el,index)=>{
+							el.ischecked = false
+							return el
+						})
+					}
+					
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		checkedCoupon(idx) {
+			// 选择优惠券
+			this.checkedIndex = idx
+			this.dataList.forEach((el, index) => {
+				if (this.checkedIndex == index) {
+					el.ischecked = !el.ischecked
+				} else {
+					el.ischecked = false
+				}
+			})
+		},
+		onShowClose() {
+			//输入框失去焦点时触发
+			if (this.listQuery.name != '') {
+				this.isShowClose = true
+			} else {
+				this.isShowClose = false
+			}
+		},
+		delInputText() {
+			//清除输入框内容
+			this.listQuery.name = ''
+			this.isShowClose = false
+		},
+		hidePopup() {
+			let clubInfo = null
+			let checkedData = false
+			this.dataList.forEach((el, index) => {
+				if (el.ischecked) {
+					clubInfo = el
+					checkedData = true
+				}
+			})
+			if (checkedData) {
+				this.$emit('handleChoiceaConsult', clubInfo)
+			}
+			this.$parent.isClubConsultShow = false
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.coupon-template {
+	width: 100%;
+	height: auto;
+	background: #ffffff;
+	float: left;
+	margin-top: 24rpx;
+	.coupon-title {
+		width: 702rpx;
+		padding: 0 24rpx;
+		height: 88rpx;
+		line-height: 88rpx;
+		position: relative;
+		.text {
+			font-size: $font-size-28;
+			color: $text-color;
+		}
+		.text-coupon {
+			display: inline-block;
+			float: right;
+			padding-right: 30rpx;
+			line-height: 88rpx;
+			font-size: 28rpx;
+			color: #f94b4b;
+		}
+		.iconfont {
+			width: 50rpx;
+			height: 88rpx;
+			line-height: 88rpx;
+			color: #999999;
+			display: block;
+			position: absolute;
+			right: 0;
+			top: 0;
+		}
+	}
+}
+.tui-popup-box {
+	position: relative;
+	box-sizing: border-box;
+	min-height: 220rpx;
+	padding: 24rpx 32rpx 0 32rpx;
+	.title {
+		font-size: $font-size-32;
+		color: $text-color;
+		line-height: 68rpx;
+		text-align: center;
+		float: left;
+		width: 100%;
+		height: 68rpx;
+		box-sizing: border-box;
+		padding: 0 24rpx;
+	}
+	.title-search {
+		width: 100%;
+		height: 66rpx;
+		background: #ffffff;
+		box-sizing: border-box;
+		float: left;
+		.search-from {
+			width: 100%;
+			height: 100%;
+			background: #f7f7f7;
+			border-radius: 32rpx;
+			float: left;
+			position: relative;
+			.input {
+				width: 500rpx;
+				height: 64rpx;
+				float: left;
+				line-height: 64rpx;
+				color: $text-color;
+				font-size: $font-size-24;
+			}
+			.icon-iconfonticonfontsousuo1 {
+				width: 64rpx;
+				height: 64rpx;
+				line-height: 64rpx;
+				text-align: center;
+				display: block;
+				font-size: $font-size-38;
+				float: left;
+				color: #999999;
+			}
+			.icon-shanchu1 {
+				font-size: $font-size-32;
+				color: #999999;
+				position: absolute;
+				width: 64rpx;
+				height: 64rpx;
+				line-height: 64rpx;
+				text-align: center;
+				top: 0;
+				right: 0;
+				z-index: 10;
+			}
+		}
+	}
+	.tui-popup-main {
+		width: 100%;
+		float: left;
+		padding-top: 10rpx;
+		.tui-popup-scroll {
+			width: 100%;
+			height: 800rpx;
+			.list {
+				width: 100%;
+				height: 100rpx;
+				box-sizing: border-box;
+				background-size: cover;
+				border-bottom: 1px solid #e1e1e1;
+				.list-cell-le {
+					height: 100%;
+					line-height: 100rpx;
+					box-sizing: border-box;
+					float: left;
+					text-align: left;
+					font-size: $font-size-26;
+					color: #333333;
+				}
+				.list-cell-btn {
+					width: 40rpx;
+					height: 100rpx;
+					line-height: 100rpx;
+					float: right;
+					.checkbox {
+						width: 40rpx;
+						line-height: 128rpx;
+						float: right;
+						box-sizing: border-box;
+						text-align: center;
+						text-decoration: none;
+						-webkit-tap-highlight-color: transparent;
+						overflow: hidden;
+						font-size: $font-size-34;
+						&.icon-weixuanze {
+							color: #b2b2b2;
+						}
+						&.icon-yixuanze {
+							color: #e15616;
+						}
+					}
+				}
+			}
+		}
+		.tui-popup-coupon {
+			width: 100%;
+			height: 500rpx;
+			box-sizing: border-box;
+			padding: 30rpx 20rpx;
+			.tui-popup-h1 {
+				width: 100%;
+				height: 66rpx;
+				display: flex;
+				align-items: center;
+				.tui-popup-text {
+					flex: 1;
+					height: 66rpx;
+					line-height: 66rpx;
+					font-size: $font-size-30;
+					color: #333333;
+					&.red {
+						color: #f94b4b;
+					}
+					&.bold {
+						font-weight: bold;
+					}
+					&.left {
+						text-align: left;
+					}
+					&.right {
+						text-align: right;
+					}
+				}
+			}
+		}
+	}
+	.tui-popup-btn {
+		width: 100%;
+		height: auto;
+		float: left;
+		margin-top: 24rpx;
+		.tui-button {
+			width: 100%;
+			height: 88rpx;
+			background: $btn-confirm;
+			line-height: 88rpx;
+			text-align: center;
+			color: #ffffff;
+			font-size: $font-size-28;
+			border-radius: 44rpx;
+		}
+	}
+}
+</style>

+ 430 - 0
components/cm-module/cm-seller/cm-screen-drawer.vue

@@ -0,0 +1,430 @@
+<template>
+	<view class="drawer-content">
+		<!--右抽屉-->
+		<tui-drawer mode="right" :visible="rightDrawer" @close="closeDrawer">
+			<view
+				class="drawer-container clearfix"
+				scroll-y
+				:style="{ paddingTop: '0px', paddingBottom: isIphoneX ? '180rpx' : '146rpx' }"
+			>
+				<scroll-view class="tui-drawer-scroll" scroll-y :style="{ height: drawerH + 'px' }">
+					<view class="drawer-title">更多筛选</view>
+					<view class="drawer-main">
+						<view class="drawer-main-name">日期</view>
+						<view class="drawer-main-time">
+							<view class="drawer-main-time-input">
+								<picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindStartDateChange">
+									<text class="input-text">{{ queryData.startAddTime }}</text>
+								</picker>
+								<text class="iconfont icon-riqi"></text>
+							</view>
+							<view class="line">-</view>
+							<view class="drawer-main-time-input">
+								<picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindEndDateChange">
+									<text class="input-text">{{ queryData.endAddTime }}</text>
+								</picker>
+								<text class="iconfont icon-riqi"></text>
+							</view>
+						</view>
+						<view class="drawer-main-name">咨询类别</view>
+						<view class="drawer-main-brand clearfix">
+							<view
+								class="drawer-brand-list"
+								:class="category.isChecked ? 'checked' : ''"
+								v-for="(category, index) in categorys"
+								:key="index"
+								@click="choiceCategorys(category, index)"
+							>
+								{{ category.className }}
+							</view>
+						</view>
+						<template v-if="manager > 0">
+							<view class="drawer-main-name">小组</view>
+							<view class="drawer-main-brand clearfix">
+								<view
+									class="drawer-brand-list"
+									:class="isCheckedGroups ? 'checked' : ''"
+									@click="choiceGroupsAll"
+									>全部</view
+								> 
+								<view
+									class="drawer-brand-list"
+									:class="group.isChecked ? 'checked' : ''"
+									v-for="(group, index) in groups"
+									:key="index"
+									@click="choiceGroups(group, index)"
+								>
+									{{ group.leaderName }}
+								</view>
+							</view>
+						</template>
+						<template v-if="leaderId>0">
+							<view class="drawer-main-name" v-if="members.length>0">组员</view>
+							<view class="drawer-main-brand clearfix" v-if="members.length>0">
+								<view
+									class="drawer-brand-list"
+									:class="member.isChecked ? 'checked' : ''"
+									v-for="(member, index) in members"
+									:key="index"
+									@click="choiceMembers(member, index)"
+								>
+									{{ member.groupName }}
+								</view>
+							</view>
+						</template>
+					</view>
+				</scroll-view>
+				<view class="drawer-input btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
+					<view class="drawer-btn clear" @click="closeDrawer">取消</view>
+					<view class="drawer-btn comfrim" @click="handSearchConfirm">确定</view>
+				</view>
+			</view>
+		</tui-drawer>
+	</view>
+</template>
+
+<script>
+export default {
+	name: 'rightDrawer',
+	props: {
+		rightDrawer: {
+			type: Boolean,
+			default: false
+		}
+	},
+	data() {
+		const currentDate = this.getDate({
+			format: true
+		})
+		return {
+			CustomBar: this.CustomBar, // 顶部导航栏高度
+			isIphoneX: this.$store.state.isIphoneX,
+			isCheckedGroups:false,
+			checkedIndex: 0,
+			checkedGroupsIndex: 0,
+			checkedMemberIndex: 0,
+			isShowClose: false,
+			dataList: [],
+			date: currentDate,
+			manager:0,
+			leaderId:0,
+			height: 0,
+			drawerH: 0 ,// 抽屉内部scrollview高度
+			categorys:[],
+			checkedCategorysList:[],
+			groups:[],
+			members:[],
+			queryData:{
+				startAddTime:'',
+				endAddTime:'',
+				consult:'',
+				leaderId:0,
+				groupId:0,
+			}
+		}
+	},
+	created() {
+		this.SetScrollHeight()
+		this.getUserClubConsults()
+	},
+	computed: {
+		startDate() {
+			return this.getDate('start')
+		},
+		endDate() {
+			return this.getDate('end')
+		}
+	},
+	methods: {
+		async getUserClubConsults() {
+			const userInfo = await this.$api.getStorage()
+			this.manager = userInfo.manager ? userInfo.manager : 0
+			this.leaderId = userInfo.leaderId ? userInfo.leaderId : 0
+			//查询咨询类别
+			this.UserService.getUserClubConsults()
+				.then(response => {
+					this.categorys = response.data.map((el, index) => {
+						el.isChecked = false
+						return el
+					})
+					if(this.manager > 0){
+						this.getUserClubTeams()
+					}
+					if(this.leaderId > 0){
+						this.getUserClubTeamsRroups(this.leaderId)
+					}
+				})
+				.catch(error => {
+					console.log('=========>获取咨询类别列表失败')
+				})
+		},
+		getUserClubTeams() {
+			this.UserService.getUserClubTeams()
+				.then(response => {
+					this.groups = response.data.map((el, index) => {
+						el.isChecked = false
+						return el
+					})
+				})
+				.catch(error => {
+					console.log('=========>获取小组列表失败')
+				})
+		},
+		getUserClubTeamsRroups(leaderId) {
+			this.UserService.getUserClubTeamsRroups({leaderId:leaderId})
+				.then(response => {
+					this.members = response.data.map((el, index) => {
+						el.isChecked = false
+						return el
+					})
+				})
+				.catch(error => {
+					console.log('=========>获取咨询类别列表失败')
+				})
+		},
+		choiceCategorys(category,idx){
+			//选择分类
+			category.isChecked = !category.isChecked 
+			if (category.isChecked) {
+				if(!this.contains(this.checkedCategorysList,category.id)){
+					this.checkedCategorysList.push(category.id)
+				}
+			} else {
+				this.checkedCategorysList.splice(this.checkedCategorysList.indexOf(category.id),1)
+			}
+			this.queryData.consult = this.checkedCategorysList.join(',')
+		},
+		contains(arr, val) {// 校验
+			return arr.some(item => item === val)
+		},
+		choiceGroupsAll() {
+			// 点击选择全部小组
+			this.isCheckedGroups = true
+			this.queryData.leaderId = ''
+			this.groups.forEach(el => {
+				el.isChecked = false
+			})
+		},
+		choiceGroups(group,idx){
+			//选择小组
+			this.isCheckedGroups = false
+			this.checkedGroupsIndex = idx
+			this.groups.forEach((el, index) => {
+				if (this.checkedGroupsIndex == index) {
+					el.isChecked = true
+					this.queryData.leaderId = group.leaderId
+					this.getUserClubTeamsRroups(group.leaderId)
+				} else {
+					el.isChecked = false
+				}
+			})
+		},
+		choiceMembers(member, idx) {
+			//选择组员
+			this.checkedMemberIndex = idx
+			this.members.forEach((el, index) => {
+				if (this.checkedMemberIndex == index) {
+					el.isChecked = true
+					this.queryData.groupId = member.groupId
+				} else {
+					el.isChecked = false
+				}
+			})
+		},
+		closeDrawer(){
+			this.$parent.isScreenDrawer = false
+		},
+		handSearchConfirm(){
+			//确定筛选
+			this.$emit('handSearchConfirm', this.queryData)
+			this.$parent.isScreenDrawer = false
+		},
+		bindStartDateChange(event){
+			//开始时间
+			console.log('开始时间==>',event.detail.value)
+			this.queryData.startAddTime = event.detail.value
+		},
+		bindEndDateChange(event){
+			//结束时间
+			console.log('结束时间==>',event.detail.value)
+			this.queryData.endAddTime = event.detail.value
+		},
+		SetScrollHeight() {
+			let obj = {}
+			const { windowHeight, pixelRatio } = wx.getSystemInfoSync()
+			uni.getSystemInfo({
+				success: res => {
+					this.height = obj.top ? obj.top + obj.height + 8 : res.statusBarHeight + 44
+					this.drawerH = res.windowHeight - uni.upx2px(180) - this.height
+				}
+			})
+			this.windowHeight = windowHeight - 1
+			this.scrollHeight = windowHeight - 1
+		},
+		getDate(type) {
+			const date = new Date()
+			let year = date.getFullYear()
+			let month = date.getMonth() + 1
+			let day = date.getDate()
+			if (type === 'start') {
+				year = year - 1
+			} else if (type === 'end') {
+				year = year + 1
+			}
+			month = month > 9 ? month : '0' + month
+			day = day > 9 ? day : '0' + day
+			return `${year}-${month}-${day}`
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+/*screen*/
+.drawer-container {
+	width: 580rpx;
+	height: 100%;
+	padding: 80rpx 0;
+	overflow: hidden;
+	box-sizing: border-box;
+	background-color: #FFFFFF;
+	.drawer-title {
+		width: 100%;
+		height: 72rpx;
+		line-height: 72rpx;
+		box-sizing: border-box;
+		padding: 0 30rpx;
+		float: left;
+		background-color: #f7f7f7;
+		font-size: $font-size-26;
+		color: #333333;
+		font-weight: bold;
+		text-align: left;
+	}
+	.drawer-main {
+		width: 100%;
+		height: auto;
+		box-sizing: border-box;
+		float: left;
+		.drawer-main-name{
+			width: 100%;
+			height: 80rpx;
+			line-height: 80rpx;
+			text-align: left;
+			font-size: $font-size-26;
+			color: #333333;
+			box-sizing: border-box;
+			padding: 0 20rpx;
+			font-weight: bold;
+		}
+		.drawer-main-time{
+			width: 100%;
+			height: 56rpx;
+			box-sizing: border-box;
+			.line{
+				color: #999999;
+				float: left;
+				line-height: 56rpx;
+			}
+			.drawer-main-time-input{
+				width: 228rpx;
+				height: 56rpx;
+				background: #F7F7F7;
+				border-radius: 28rpx;
+				box-sizing: border-box;
+				padding: 0 20rpx;
+				line-height: 56rpx;
+				float: left;
+				margin: 0 20rpx;
+				position: relative;
+				.input-text{
+					display: block;
+					height: 56rpx;
+					font-size: 26rpx;
+					color: #666666;
+				}
+				.icon-riqi{
+					color: #E15616;
+					display: block;
+					width: 40rpx;
+					height: 56rpx;
+					position: absolute;
+					right: 10rpx;
+					top: 0;
+					line-height: 56rpx;
+				}
+			}
+		}
+		.drawer-main-brand {
+			width: 100%;
+			height: auto;
+			box-sizing: border-box;
+			padding: 0 20rpx;
+			background-color: #ffffff;
+			.drawer-brand-list {
+				width: 160rpx;
+				height: 56rpx;
+				line-height: 56rpx;
+				text-align: center;
+				font-size: 26rpx;
+				background-color: #f7f7f7;
+				color: #999999;
+				border-radius: 30rpx;
+				box-sizing: border-box;
+				padding: 0 15rpx;
+				float: left;
+				margin: 12rpx 24rpx 12rpx 0;
+				text-overflow: ellipsis;
+				overflow: hidden;
+				display: -webkit-box;
+				-webkit-line-clamp: 1;
+				line-clamp: 1;
+				-webkit-box-orient: vertical;
+				&.checked {
+					background-color: #fef6f3;
+					color: #e15616;
+				}
+				&:nth-child(3n) {
+					margin-right: 0;
+				}
+			}
+		}
+	}
+	.drawer-input {
+		width: 100%;
+		float: left;
+		box-sizing: border-box;
+		padding: 24rpx 10rpx 0 10rpx;
+		border: 1px solid rgba(0, 0, 0, 0.2);
+		border-radius: 4rpx;
+		position: relative;
+		background-color: #ffffff;
+		&.btn {
+			border: none;
+			display: flex;
+			position: fixed;
+			left: 0;
+			bottom: 0;
+		}
+		.drawer-btn {
+			width: 210rpx;
+			height: 84rpx;
+			border-radius: 42rpx;
+			background: $btn-confirm;
+			line-height: 84rpx;
+			text-align: center;
+			font-size: $font-size-26;
+			color: #ffffff;
+			flex: 1;
+			margin: 0 10rpx;
+			&.comfrim {
+				background: $btn-confirm;
+			}
+			&.clear {
+				background: #FFE6DC;
+				color: $color-system;
+			}
+		}
+	}
+}
+</style>

+ 1 - 1
components/cm-module/cm-seller/user.vue

@@ -177,7 +177,7 @@
 						icon:'https://static.caimei365.com/app/img/icon/icon_seller_6@2x.png',
 					},
 					{
-						name:'客户画像',
+						name:'客户咨询记录',
 						path:'/pages/seller/remarks/list',
 						icon:'https://static.caimei365.com/app/img/icon/icon_seller_7@2x.png',
 					}

+ 7 - 7
pages.json

@@ -600,43 +600,43 @@
                 {
                     "path": "remarks/list",
                     "style": {
-                        "navigationBarTitleText": "客户画像"
+                        "navigationBarTitleText": "注册客户咨询记录"
                     }
                 },
                 {
                     "path": "remarks/add",
                     "style": {
-                        "navigationBarTitleText": "添加画像"
+                        "navigationBarTitleText": "添加记录"
                     }
                 },
                 {
                     "path": "remarks/details",
                     "style": {
-                        "navigationBarTitleText": "画像详情"
+                        "navigationBarTitleText": "记录详情"
                     }
                 },
                 {
                     "path": "remarks/customer-list",
                     "style": {
-                        "navigationBarTitleText": "潜在客户"
+                        "navigationBarTitleText": "选择咨询人"
                     }
                 },
                 {
                     "path": "remarks/record-list",
                     "style": {
-                        "navigationBarTitleText": "画像记录"
+                        "navigationBarTitleText": "未注册客户咨询记录"
                     }
                 },
                 {
                     "path": "remarks/add-record",
                     "style": {
-                        "navigationBarTitleText": "添加画像"
+                        "navigationBarTitleText": "添加记录"
                     }
                 },
                 {
                     "path": "remarks/record-details",
                     "style": {
-                        "navigationBarTitleText": "画像详情"
+                        "navigationBarTitleText": "记录详情"
                     }
                 }
             ]

+ 101 - 6
pages/seller/remarks/add-record.vue

@@ -5,6 +5,21 @@
 				<view class="list-view-h1">咨询人:</view>
 			</view>
 			<view class="remarks-input">{{ questionMan }}</view>
+			<view class="list-view-title">
+				<view class="list-view-h1"><text>*</text>咨询类别:</view>
+			</view>
+			<view class="remarks-category">
+				<view
+					class="checkbox-list"
+					:class="category.isChecked ? 'checked' : ''"
+					v-for="(category, index) in categorys"
+					:key="index"
+					@click="choiceCategorys(category, index)"
+				>
+					<text class="iconfont" :class="category.isChecked ? 'icon-yixuanze' : 'icon-weixuanze'"></text>
+					{{ category.className }}
+				</view>
+			</view>
 			<view class="list-view-title">
 				<view class="list-view-h1"><text>*</text>关键词记录:</view>
 			</view>
@@ -89,20 +104,23 @@ export default {
 			questionMan:'',
 			clubUserId:0,
 			clubInfo:{},
-			userInfo:{}
+			userInfo:{},
+			checkedCategorysList:[],
+			categorys:[]
 		}
 	},
 	onLoad(option) {
 		console.log(option)
 		if (option.type == 'edit') {
-			this.questionMan = option.questionMan
 			this.handleType = option.type
+			this.getUserClubConsults()
 			this.getUserRemarksVisitDetail(option.remarksId)
-			uni.setNavigationBarTitle({title:'修改画像'})
+			uni.setNavigationBarTitle({title:'修改记录'})
 		} else {
 			this.questionMan = option.questionMan
 			this.remarksParams.questionManId = option.questionManId
 			this.initGetStotage(option)
+			this.getUserClubConsults()
 		}
 	},
 	methods: {
@@ -118,41 +136,90 @@ export default {
 			})
 			.then(response => {
 				let data = response.data
+				this.questionMan = data.questionMan
 				this.remarksParams.questionManId = data.questionManId
 				this.remarksParams.remarks = data.remarks.join(',')
 				this.remarksParams.remarksId = data.remarksId
 				this.remarksParams.fileList = data.fileList
 				this.remarksParams.imageList = data.imageList
+				this.remarksParams.consult = data.consult
+				this.checkedCategorysList = data.consult.split(',').map(i => parseInt(i, 0))
+				this.categorys = this.categorys.map((el, index) => {
+					if(data.consult.includes(el.id)){
+						el.isChecked = true
+					}else{
+						el.isChecked = false
+					}
+					return el
+				})
 				this.initGetStotage()
 			})
 			.catch(error => {
 				this.$util.msg(error.msg, 2000)
 			})
 		},
+		getUserClubConsults() {
+			//查询咨询类别
+			this.UserService.getUserClubConsults()
+				.then(response => {
+					this.categorys = response.data.map((el, index) => {
+						el.isChecked = false
+						return el
+					})
+				})
+				.catch(error => {
+					console.log('=========>获取咨询类别列表失败')
+				})
+		},
 		editButtonConfim() {
 			//保存资料备注
 			if (this.remarksParams.remarks == '') {
 				this.$util.msg('请输入关键词记录', 2000)
 				return
 			}
+			if (this.remarksParams.consult == '') {
+				this.$util.msg('请选择咨询类别', 2000)
+				return
+			}
+			if (this.remarksParams.remarks == '') {
+				this.$util.msg('请输入关键词记录', 2000)
+				return
+			}
 			this.UserService.getUserClubVisitorSaveAdd({
 				params: JSON.stringify(this.remarksParams)
 			})
 			.then(response => {
-				this.$util.msg('添加成功', 2000, true, 'success')
+				this.$util.msg('保存成功', 2000, true, 'success')
 				let VisitorInfo = {
 						questionManId: this.remarksParams.questionManId,
 						questionMan: this.questionMan
 					}
 				this.$api.setStorage('VisitorInfo', VisitorInfo)
 				setTimeout(() => {
-					this.$api.redirectTo('/pages/seller/remarks/record-list')
+					uni.navigateBack({
+						delta: 1
+					})
 				}, 2000)
 			})
 			.catch(error => {
 				this.$util.msg(error.msg, 2000)
 			})
 		},
+		choiceCategorys(category,index){
+			// 选择类别
+			category.isChecked = !category.isChecked
+			if (category.isChecked) {
+				if(!this.contains(this.checkedCategorysList,category.id)){
+					this.checkedCategorysList.push(category.id)
+				}
+			} else {
+				this.checkedCategorysList.splice(this.checkedCategorysList.indexOf(category.id),1)
+			}
+			this.remarksParams.consult = this.checkedCategorysList.join(',')
+		},
+		contains(arr, val) {// 校验
+			return arr.some(item => item === val)
+		},
 		uploadFile(array) {
 			//上传资质文件
 			console.log(array)
@@ -163,7 +230,6 @@ export default {
 					ossName: data.ossName
 				}
 				array.push(obj)
-				console.log('array', array)
 			}).catch(err=>{
                 console.log(err)
             })
@@ -247,6 +313,35 @@ page {
 			font-size: $font-size-20;
 		}
 	}
+	.remarks-category{
+		width: 100%;
+		float: left;
+		.checkbox-list {
+			height: 60rpx;
+			font-size: $font-size-28;
+			line-height: 60rpx;
+			border-radius: 10rpx;
+			margin-right: 20rpx;
+			margin-bottom: 10rpx;
+			box-sizing: border-box;
+			float: left;
+			.icon-yixuanze{
+				margin-right: 10rpx;
+				color: #E15616;
+			}
+			.icon-weixuanze{ 
+				margin-right: 10rpx;
+				color: #B2B2B2;
+			}
+		}
+		.item-text {
+			display: inline-block;
+			font-size: 26rpx;
+			color: #333333; 
+			border-radius: 28rpx;
+			line-height: 50rpx;
+		}
+	}
 	.remarks-input{
 		width: 100%;
 		height: 48rpx;

+ 103 - 5
pages/seller/remarks/add.vue

@@ -30,6 +30,21 @@
 					maxlength="15"
 				/>
 			</view>
+			<view class="list-view-title">
+				<view class="list-view-h1"><text>*</text>咨询类别:</view>
+			</view>
+			<view class="remarks-category">
+				<view
+					class="checkbox-list"
+					:class="category.isChecked ? 'checked' : ''"
+					v-for="(category, index) in categorys"
+					:key="index"
+					@click="choiceCategorys(category, index)"
+				>
+					<text class="iconfont" :class="category.isChecked ? 'icon-yixuanze' : 'icon-weixuanze'"></text>
+					{{ category.className }}
+				</view>
+			</view>
 			<view class="list-view-title">
 				<view class="list-view-h1"><text>*</text>关键词记录:</view>
 			</view>
@@ -107,25 +122,31 @@ export default {
 				remarks: '',
 				fileList: [],
 				imageList: [],
-				serviceProviderId: 0
+				serviceProviderId: 0,
+				consult:''
 			},
 			min: 0,
 			max: 500,
 			handleType: '',
 			clubUserId: 0,
 			clubInfo: {},
-			userInfo: {}
+			userInfo: {},
+			checkedCategorysList:[],
+			categorys:[],
+			isConfirmLoding:false
 		}
 	},
 	onLoad(option) {
 		console.log(option)
 		if (option.type == 'edit') {
+			this.getUserClubConsults()
 			this.getUserClubRemarksDetail(option.remarksId)
 			this.handleType = option.type
-			uni.setNavigationBarTitle({ title: '修改画像' })
+			uni.setNavigationBarTitle({ title: '修改记录' })
 		} else {
 			this.clubUserId = option.userId
 			this.getCulbInfo()
+			this.getUserClubConsults()
 		}
 	},
 	methods: {
@@ -159,6 +180,16 @@ export default {
 					this.remarksParams.imageList = data.imageList
 					if(this.handleType == 'edit'){
 						this.remarksParams.questionMan = data.questionMan
+						this.remarksParams.consult = data.consult
+						this.checkedCategorysList = data.consult.split(',').map(i => parseInt(i, 0))
+						this.categorys = this.categorys.map((el, index) => {
+							if(data.consult.includes(el.id)){
+								el.isChecked = true
+							}else{
+								el.isChecked = false
+							}
+							return el
+						})
 					}
 					this.getCulbInfo()
 				})
@@ -166,31 +197,69 @@ export default {
 					this.$util.msg(error.msg, 2000)
 				})
 		},
+		getUserClubConsults() {
+			//查询咨询类别
+			this.UserService.getUserClubConsults()
+				.then(response => {
+					this.categorys = response.data.map((el, index) => {
+						el.isChecked = false
+						return el
+					})
+				})
+				.catch(error => {
+					console.log('=========>获取咨询类别列表失败')
+				})
+		},
 		async editButtonConfim() {
 			//保存资料备注
+			if(this.isConfirmLoding){return}
 			const userInfo = await this.$api.getStorage()
 			if (this.remarksParams.questionMan == '') {
 				this.$util.msg('请输入咨询人姓名', 2000)
 				return
 			}
+			if (this.remarksParams.consult == '') {
+				this.$util.msg('请选择咨询类别', 2000)
+				return
+			}
 			if (this.remarksParams.remarks == '') {
 				this.$util.msg('请输入关键词记录', 2000)
 				return
 			}
 			this.remarksParams.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
+			this.isConfirmLoding = true
 			this.UserService.getUserClubRemarksSave({
 				params: JSON.stringify(this.remarksParams)
 			})
 				.then(response => {
-					this.$util.msg('添加成功', 3000, true, 'success')
+					this.$util.msg('保存成功', 3000, true, 'success')
+					this.isConfirmLoding = false
 					setTimeout(() => {
-						uni.navigateBack({ delta: 1 })
+						uni.navigateBack({
+							delta: 1
+						})
 					}, 1000)
 				})
 				.catch(error => {
 					this.$util.msg(error.msg, 2000)
+					this.isConfirmLoding = false
 				})
 		},
+		choiceCategorys(category,index){
+			// 选择类别
+			category.isChecked = !category.isChecked
+			if (category.isChecked) {
+				if(!this.contains(this.checkedCategorysList,category.id)){
+					this.checkedCategorysList.push(category.id)
+				}
+			} else {
+				this.checkedCategorysList.splice(this.checkedCategorysList.indexOf(category.id),1)
+			}
+			this.remarksParams.consult = this.checkedCategorysList.join(',')
+		},
+		contains(arr, val) {// 校验
+			return arr.some(item => item === val)
+		},
 		uploadFile(array) {
 			//上传资质文件
 			console.log(array)
@@ -327,6 +396,35 @@ page {
 			font-size: $font-size-20;
 		}
 	}
+	.remarks-category{
+		width: 100%;
+		float: left;
+		.checkbox-list {
+			height: 60rpx;
+			font-size: $font-size-28;
+			line-height: 60rpx;
+			border-radius: 10rpx;
+			margin-right: 20rpx;
+			margin-bottom: 10rpx;
+			box-sizing: border-box;
+			float: left;
+			.icon-yixuanze{
+				margin-right: 10rpx;
+				color: #E15616;
+			}
+			.icon-weixuanze{ 
+				margin-right: 10rpx;
+				color: #B2B2B2;
+			}
+		}
+		.item-text {
+			display: inline-block;
+			font-size: 26rpx;
+			color: #333333; 
+			border-radius: 28rpx;
+			line-height: 50rpx;
+		}
+	}
 	.remarks-input {
 		width: 100%;
 		height: 90rpx;

+ 152 - 140
pages/seller/remarks/customer-list.vue

@@ -1,20 +1,23 @@
 <template>
 	<view class="container product clearfix">
 		<view class="club-search clearfix">
-			<view class="search-from name">
-				<text class="iconfont icon-iconfonticonfontsousuo1"></text>
-				<input
-					class="input"
-					type="text"
-					confirm-type="search"
-					v-model="listQuery.keyWord"
-					@input="onShowClose"
-					@confirm="GetProductListInfo"
-					placeholder="搜索咨询人"
-					maxlength="16"
-				/>
-				<text class="iconfont icon-shanchu1" v-if="isShowClose" @click="delInputText()"></text>
+			<view class="club-search-form">
+				<view class="search-from name">
+					<text class="iconfont icon-iconfonticonfontsousuo1"></text>
+					<input
+						class="input"
+						type="text"
+						confirm-type="search"
+						v-model="listQuery.keyWord"
+						@input="onShowClose"
+						@confirm="getUserClubVisitorList"
+						placeholder="搜索关键词"
+						maxlength="16"
+					/>
+					<text class="iconfont icon-shanchu1" v-if="isShowClose" @click="delInputText()"></text>
+				</view>
 			</view>
+			<view class="search-from-title"> 请选择一个咨询人,将他所有的咨询记录同步到一个机构中去 </view>
 		</view>
 		<view class="remarks-content" :style="{ paddingBottom: isIphoneX ? '216rpx' : '168rpx' }">
 			<view :class="{ 'tui-order-list': scrollTop >= 0 }" class="clearfix">
@@ -26,11 +29,16 @@
 				<template v-else>
 					<!-- 列表 -->
 					<view class="tui-remarks-cell  tui-mtop" v-for="(list, index) in remarksList" :key="index">
-						<view class="tui-remarks-name" @click.stop="details(list)">
-							<view class="tui-remarks-name-le">咨询人:{{ list.questionMan }}</view>
-							<view class="tui-remarks-name-ri"><text class="iconfont icon-xiayibu"></text></view>
+						<view class="tui-remarks-name" @click.stop="checkedCoustomer(list,index)">
+							<view class="tui-remarks-name-le">{{ list.questionMan }}</view>
+							<view class="tui-remarks-name-ri">
+								<view
+									class="checkbox iconfont"
+									:class="[checkedIndex == index ? 'icon-yixuanze' : 'icon-weixuanze']"
+								>
+								</view>
+							</view>
 						</view>
-						<view class="tui-remarks-button" @click.stop="handleShowClubpopup(1, list)"> 修改姓名 </view>
 					</view>
 					<!--加载loadding-->
 					<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
@@ -39,29 +47,28 @@
 				</template>
 			</view>
 		</view>
-		<!-- 取消收藏操作 -->
+		<!-- 下一步 -->
 		<tui-bottom-popup :radius="false" :mask="false" :show="popupShow">
 			<view class="tui-popup-box clearfix">
 				<view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
 					<view class="tui-flex-1">
-						<view class="tui-button" @click="handleShowClubpopup(2)">添加咨询人</view>
+						<view class="tui-button" @click="handleShowClubpopup" v-if="!isEmpty">下一步</view>
 					</view>
 				</view>
 			</view>
 		</tui-bottom-popup>
-		<!-- 操作弹窗 -->
-		<cm-clubmodal
-			ref="clubModal"
-			v-if="isClubModalShow"
-			:show="isClubModalShow"
-			:modalType="modalType"
-			@handleChoiceaText="handleChoiceaTextData"
+		<!-- 添加记录 -->
+		<cm-clubpopup
+			ref="clubpopup"
+			v-if="isClubpopupShow"
+			:show="isClubpopupShow"
+			@handleChoiceaClub="handleChoiceaClubData"
 		>
-		</cm-clubmodal>
+		</cm-clubpopup>
 	</view>
 </template>
 <script>
-import cmClubmodal from '@/components/cm-module/cm-seller/cm-clubmodal'
+import cmClubpopup from '@/components/cm-module/cm-seller/cm-clubpopup'
 
 import { mapState, mapMutations } from 'vuex'
 const defaultListQuery = {
@@ -71,7 +78,7 @@ const defaultListQuery = {
 }
 export default {
 	components: {
-		cmClubmodal
+		cmClubpopup
 	},
 	data() {
 		return {
@@ -93,6 +100,7 @@ export default {
 				}
 			],
 			totalRecord: 0,
+			questionManId:'',
 			popupShow: true,
 			popupShow1: false,
 			listQuery: Object.assign({}, defaultListQuery),
@@ -106,8 +114,10 @@ export default {
 			navbarHeight: '',
 			nomoreText: '上拉显示更多',
 			handleUpdataVisitorId: 0,
-			modalType: 0,
-			isClubModalShow: false
+			modalType: 1,
+			checkedIndex: 0,
+			isClubModalShow: false,
+			isClubpopupShow: false,
 		}
 	},
 	onLoad() {},
@@ -127,9 +137,9 @@ export default {
 		async initGetStotage() {
 			const userInfo = await this.$api.getStorage()
 			this.listQuery.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
-			this.GetProductListInfo()
+			this.getUserClubVisitorList()
 		},
-		GetProductListInfo() {
+		getUserClubVisitorList() {
 			this.remarksList = []
 			this.listQuery.pageNum = 1
 			this.UserService.getUserClubVisitorList(this.listQuery)
@@ -139,7 +149,11 @@ export default {
 						this.isEmpty = false
 						this.hasNextPage = data.hasNextPage
 						this.totalRecord = data.totalRecord
-						this.remarksList = data.results
+						this.remarksList = data.results.map((el,index)=>{
+							el.ischecked = false
+							return el
+						})
+						this.questionManId = this.remarksList[0].questionManId
 						this.pullFlag = false
 						setTimeout(() => {
 							this.pullFlag = true
@@ -192,61 +206,28 @@ export default {
 					this.$util.msg(error.msg, 2000)
 				})
 		},
-		handleShowClubpopup(type, el) {
+		handleShowClubpopup() {
 			// 点击操作
-			this.modalType = type
-			if (this.modalType == 1) {
-				this.handleUpdataVisitorId = el.questionManId
-				this.isClubModalShow = true
-			} else {
-				this.isClubModalShow = true
-			}
+			this.isClubpopupShow = true
 		},
-		handleChoiceaTextData(data) {
-			// 监听获取
-			console.log(data)
-			if (this.modalType == 1) {
-				this.handleUpdateVisitor(data)
-			} else {
-				this.handleSaveVisitor(data)
-			}
-		},
-		handleUpdateVisitor(data) {
-			// 修改咨询人姓名
-			this.UserService.getUserClubVisitorUpdate({
-				questionMan: data,
-				questionManId: this.handleUpdataVisitorId,
-				serviceProviderId: this.listQuery.serviceProviderId
+		handleChoiceaClubData(data){
+			// 同步机构
+			console.log('data',data)
+			this.UserService.getUserRemarksConcactVisit(
+				{
+					clubId: data.clubId,
+					questionManId:this.questionManId
+				}
+			)
+			.then(response => {
+				this.$util.msg('同步成功', 2000, true, 'success')
+				setTimeout(() => {
+					this.$api.redirectTo('/pages/seller/remarks/list')
+				}, 2000)
 			})
-				.then(response => {
-					this.$util.msg('修改成功', 2000, true, 'success')
-					setTimeout(() => {
-						this.GetProductListInfo()
-					}, 2000)
-				})
-				.catch(error => {
-					console.log('=======>修改咨询姓名失败~')
-				})
-		},
-		handleSaveVisitor(data) {
-			// 添加咨询人
-			this.UserService.getUserClubVisitorSave({
-				name: data,
-				serviceProviderId: this.listQuery.serviceProviderId
+			.catch(error => {
+				this.$util.msg(error.msg, 2000)
 			})
-				.then(response => {
-					let VisitorInfo = {
-						questionManId: response.data.questionManId,
-						questionMan: response.data.questionMan
-					}
-					this.$api.setStorage('VisitorInfo', VisitorInfo)
-					setTimeout(() => {
-						this.$api.navigateTo('/pages/seller/remarks/record-list')
-					}, 1000)
-				})
-				.catch(error => {
-					console.log('=======>添加咨询人失败~')
-				})
 		},
 		onShowClose() {
 			//输入框失去焦点时触发
@@ -255,7 +236,7 @@ export default {
 			} else {
 				this.isShowClose = false
 				this.listQuery.pageNum = 1
-				this.GetProductListInfo()
+				this.getUserClubVisitorList()
 			}
 		},
 		delInputText() {
@@ -263,16 +244,14 @@ export default {
 			this.listQuery.keyWord = ''
 			this.isShowClose = false
 			this.listQuery.pageNum = 1
-			this.GetProductListInfo()
+			this.getUserClubVisitorList()
+		},
+		checkedCoustomer(list,idx) {
+			// 选择机构
+			this.checkedIndex = idx
+			this.questionManId = list.questionManId
+			console.log('questionManId',this.questionManId)
 		},
-		details(list) {
-			let VisitorInfo = {
-				questionManId: list.questionManId,
-				questionMan: list.questionMan
-			}
-			this.$api.setStorage('VisitorInfo', VisitorInfo)
-			this.$api.navigateTo('/pages/seller/remarks/record-list')
-		}
 	},
 	onPageScroll(e) {
 		//实时获取到滚动的值
@@ -299,57 +278,76 @@ export default {
 <style lang="scss">
 @import '@/uni.scss';
 page {
-	background: #f7f7f7;
+	background: #FFFFFF;
 }
 .empty-container {
 	z-index: 99;
 }
 .club-search {
 	width: 100%;
-	height: 112rpx;
-	padding: 24rpx;
+	height: 192rpx;
 	background: #ffffff;
 	box-sizing: border-box;
 	position: fixed;
 	top: 0;
 	left: 0;
-	z-index: 20;
-	.search-from {
+	z-index: 100;
+	.search-from-title {
+		width: 100%;
+		height: 80rpx;
+		line-height: 80rpx;
+		box-sizing: border-box;
+		padding: 0 24rpx;
+		font-size: $font-size-26;
+		float: left;
+		color: #1890f9;
+		background-color: #f2f9ff;
+		font-weight: normal;
+	}
+	.club-search-form {
 		width: 100%;
-		height: 100%;
-		background: #f7f7f7;
-		border-radius: 32rpx;
+		height: 112rpx;
+		background: #ffffff;
+		box-sizing: border-box;
+		padding: 24rpx;
 		float: left;
-		position: relative;
-		.input {
-			width: 500rpx;
-			height: 64rpx;
-			float: left;
-			line-height: 64rpx;
-			color: $text-color;
-			font-size: $font-size-24;
-		}
-		.icon-iconfonticonfontsousuo1 {
-			width: 64rpx;
-			height: 64rpx;
-			line-height: 64rpx;
-			text-align: center;
-			display: block;
-			font-size: $font-size-38;
+		.search-from {
+			width: 100%;
+			height: 100%;
+			background: #f7f7f7;
+			border-radius: 32rpx;
 			float: left;
-			color: #999999;
-		}
-		.icon-shanchu1 {
-			font-size: $font-size-32;
-			color: #999999;
-			position: absolute;
-			width: 64rpx;
-			height: 64rpx;
-			line-height: 64rpx;
-			text-align: center;
-			top: 0;
-			right: 0;
-			z-index: 10;
+			position: relative;
+			.input {
+				width: 500rpx;
+				height: 64rpx;
+				float: left;
+				line-height: 64rpx;
+				color: $text-color;
+				font-size: $font-size-24;
+			}
+			.icon-iconfonticonfontsousuo1 {
+				width: 64rpx;
+				height: 64rpx;
+				line-height: 64rpx;
+				text-align: center;
+				display: block;
+				font-size: $font-size-38;
+				float: left;
+				color: #999999;
+			}
+			.icon-shanchu1 {
+				font-size: $font-size-32;
+				color: #999999;
+				position: absolute;
+				width: 64rpx;
+				height: 64rpx;
+				line-height: 64rpx;
+				text-align: center;
+				top: 0;
+				right: 0;
+				z-index: 10;
+			}
 		}
 	}
 }
@@ -360,7 +358,7 @@ page {
 	padding: 0;
 	box-sizing: border-box;
 	padding: 24rpx;
-	padding-top: 136rpx;
+	padding-top: 212rpx;
 	.empty-container-image {
 		width: 260rpx;
 		height: 260rpx;
@@ -368,12 +366,9 @@ page {
 	}
 	.tui-remarks-cell {
 		width: 100%;
-		height: 200rpx;
 		border-radius: 16rpx;
 		background: #ffffff;
-		margin-bottom: 24rpx;
 		box-sizing: border-box;
-		padding: 0 24rpx;
 		.tui-remarks-name {
 			width: 100%;
 			height: 100rpx;
@@ -388,11 +383,25 @@ page {
 			}
 			.tui-remarks-name-ri {
 				width: 40rpx;
+				height: 100%;
 				float: right;
-				line-height: 100rpx;
-				font-size: $font-size-44;
-				color: #b2b2b2;
-				text-align: center;
+				.checkbox {
+					width: 40rpx;
+					line-height: 128rpx;
+					float: right;
+					box-sizing: border-box;
+					text-align: center;
+					text-decoration: none;
+					-webkit-tap-highlight-color: transparent;
+					overflow: hidden;
+					font-size: $font-size-34;
+					&.icon-weixuanze {
+						color: #b2b2b2;
+					}
+					&.icon-yixuanze {
+						color: #e15616;
+					}
+				}
 			}
 		}
 		.tui-remarks-button {
@@ -433,6 +442,9 @@ page {
 		font-size: $font-size-28;
 		border-radius: 44rpx;
 		margin: 0 auto;
+		&.none{
+			background: #E1E1E1;
+		}
 	}
 	.tui-button-text {
 		width: 600rpx;

+ 3 - 2
pages/seller/remarks/details.vue

@@ -18,7 +18,7 @@
 		</view>
 		<view class="remarks-content clearfix">
 			<view class="list-view-title"> <view class="list-view-h1">咨询人:{{ remarksParams.questionMan }}</view> </view>
-			
+			<view class="list-view-title"> <view class="list-view-h1">咨询类别:{{ remarksParams.consultBack ? remarksParams.consultBack : '无' }}</view> </view>
 			<view class="list-view-title"> <view class="list-view-h1">关键词记录:</view> </view>
 			<view class="tui-remarks-content">
 				<text class="tui-remarks-span" v-for="(label, labelIndex) in remarksParams.remarks" :key="labelIndex">
@@ -71,7 +71,8 @@ export default {
 			remarksId: 0,
 			clubUserId: 0,
 			clubInfo: {},
-			userInfo: {}
+			userInfo: {},
+			categorys:''
 		}
 	},
 	onLoad(option) {

+ 166 - 43
pages/seller/remarks/list.vue

@@ -8,11 +8,15 @@
 					   confirm-type="search" 
 					   v-model="listQuery.keyWord" 
 					   @input="onShowClose" 
-					   @confirm="GetProductListInfo" 
+					   @confirm="getUserClubRemarksList" 
 					   placeholder="搜索关键词"
 					   maxlength="16"/>
 				<text class="iconfont icon-shanchu1" v-if="isShowClose" @click="delInputText()"></text>
 			</view>
+			<view class="search-screen" @click="showScreenDrawer">
+				<text class="iconfont icon-gengduo1"></text>
+				筛选
+			</view>
 		</view>
 		<view class="remarks-content" :style="{ paddingBottom: isIphoneX ? '216rpx' : '168rpx' }">
 			<view :class="{ 'tui-order-list': scrollTop >= 0 }" class="clearfix">
@@ -24,16 +28,29 @@
 				<!-- 列表 -->
 				<view class="tui-remarks-cell  tui-mtop" v-for="(remark, index) in remarksList" :key="index" @click.stop="details(remark.remarksId)">
 					<view class="tui-remarks-title">
-						<view class="tui-remarks-time tt">{{ remark.clubName }}</view>
-						<view class="tui-remarks-time sm">{{ remark.addTime }}</view>
+						<view class="tui-remarks-title-top">
+							<view class="tui-remarks-time tt">{{ remark.clubName }}</view>
+							<view class="tui-remarks-time sm">{{ remark.addTime }}</view>
+						</view>
+						<view class="tui-remarks-title-bot">
+							<view class="tui-remarks-text h">记录人:{{ remark.recordName }}</view>
+							<view class="tui-remarks-text y" v-if="listQuery.manager > 0">管理员:{{ remark.leaderName ? remark.leaderName : '' }}</view>
+						</view>
+					</view>
+					<view class="tui-remarks-name">
+						<view class="tui-remarks-name-text h">
+							咨询人:{{ remark.questionMan ? remark.questionMan : '' }}
+						</view>
+						<view class="tui-remarks-name-text y">
+							咨询类别:{{ remark.consultBack ? remark.consultBack : '无' }}
+						</view>
 					</view>
-					<view class="tui-remarks-name">咨询人:{{ remark.questionMan ? remark.questionMan : '' }}</view>
 					<view class="tui-remarks-content">
 						<text class="tui-remarks-span" v-for="(label, labelIndex) in remark.remarks" :key="labelIndex">
 							{{ label }}
 						</text>
 					</view>
-					<view class="tui-remarks-button">
+					<view class="tui-remarks-button" v-if="remark.serviceProviderId === listQuery.serviceProviderId">
 						<view class="btn edit"  @click.stop="handEditRemark(remark.remarksId)">修改</view> 
 						<view class="btn del" @click.stop="deleteRemark(remark.remarksId)">删除</view>
 					</view>
@@ -49,19 +66,24 @@
 			<view class="tui-popup-box clearfix">
 				<view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
 					<view class="tui-flex-1">
-						<view class="tui-button" @click="handleShowClubpopup">添加画像</view>
+						<view class="tui-button" @click="handleShowClubpopup">添加已注册客户记录</view>
 					</view>
 					<view class="tui-flex-1">
-						<view class="tui-button-text" @click="handleAllUnder">潜在客户信息 ></view>
+						<view class="tui-button-text" @click="handleAllUnder">未注册客户咨询记录 ></view>
 					</view>
 				</view>
 			</view>
 		</tui-bottom-popup>
+		<!-- 筛选抽屉 -->
+		<cm-screenDrawer ref="screendrawer"
+						 :rightDrawer="isScreenDrawer"
+						 @handSearchConfirm="handSearchConfirmData">
+		</cm-screenDrawer>
 		<!-- 添加记录 -->
 		<cm-clubpopup ref="clubpopup" 
-				v-if="isClubpopupShow"
-				:show="isClubpopupShow"
-				@handleChoiceaClub="handleChoiceaClubData">
+					v-if="isClubpopupShow"
+					:show="isClubpopupShow"
+					@handleChoiceaClub="handleChoiceaClubData">
 		</cm-clubpopup>
 		<!-- 弹窗提示 -->
 		<tui-modal
@@ -80,17 +102,26 @@
 </template>
 <script>
 import cmClubpopup from '@/components/cm-module/cm-seller/cm-clubpopup'
+import cmScreenDrawer from '@/components/cm-module/cm-seller/cm-screen-drawer'
 
 
 import { mapState, mapMutations } from 'vuex'
 const defaultListQuery = {
+	startAddTime:'',
+	endAddTime:'',
+	consult:'',
+	leaderId:0,
+	groupId:0,
+	manager:0,
 	serviceProviderId: 0,
 	pageNum: 1,
 	pageSize: 10
+	
 }
 export default {
 	components: {
-		cmClubpopup
+		cmClubpopup,
+		cmScreenDrawer
 	},
 	data() {
 		return {
@@ -127,7 +158,8 @@ export default {
 			contentModalText: '', //操作文字提示语句
 			modal: false,
 			handleRemarksId:0,
-			isClubpopupShow:false
+			isClubpopupShow:false,
+			isScreenDrawer:false,
 		}
 	},
 	onLoad() {
@@ -149,9 +181,10 @@ export default {
 		async initGetStotage() {
 			const userInfo = await this.$api.getStorage()
 			this.listQuery.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
-			this.GetProductListInfo()
+			this.listQuery.manager = userInfo.manager ? userInfo.manager : 0
+			this.getUserClubRemarksList()
 		},
-		GetProductListInfo() {
+		getUserClubRemarksList() {
 			this.remarksList = []
 			this.listQuery.pageNum = 1
 			this.UserService.getUserClubRemarksList(this.listQuery)
@@ -220,20 +253,35 @@ export default {
 			this.contentModalText = '确定删除这条记录吗?'
 		},
 		handEditRemark(remarksId){
-			//跳转修改客户画像
+			//跳转修改客户咨询记录
 			this.$api.navigateTo(`/pages/seller/remarks/add?type=edit&remarksId=${remarksId}`)
 		},
 		handleAllUnder() {
-			//跳转潛在客戶頁
-			this.$api.navigateTo('/pages/seller/remarks/customer-list')
+			//跳转未注册客户咨询记录也
+			this.$api.navigateTo('/pages/seller/remarks/record-list')
 		},
 		handleShowClubpopup(){ 
+			//显示已注册机构弹窗
 			this.isClubpopupShow = true
 		},
 		handleChoiceaClubData(data){
-			console.log(data)
+			//跳转添加记录
 			this.$api.navigateTo(`/pages/seller/remarks/add?userId=${data.userId}`)
 		},
+		handSearchConfirmData(data){
+			//确定筛选
+			this.listQuery.startAddTime = data.startAddTime
+			this.listQuery.endAddTime = data.endAddTime
+			this.listQuery.consult = data.consult
+			this.listQuery.leaderId = data.leaderId
+			this.listQuery.groupId = data.groupId
+			console.log('确定筛选',this.listQuery)
+			this.getUserClubRemarksList()
+		},
+		showScreenDrawer(){
+			//显示筛选抽屉
+			this.isScreenDrawer = true
+		},
 		handleClick(e) {
 			//确认删除
 			if (e.index == 1) {
@@ -249,7 +297,7 @@ export default {
 				.then(response => {
 					this.$util.msg('已删除', 2000, true, 'success')
 					setTimeout(() => {
-						this.GetProductListInfo()
+						this.getUserClubRemarksList()
 					}, 2000)
 				})
 				.catch(error => {
@@ -262,14 +310,14 @@ export default {
 			}else{					
 				this.isShowClose = false
 				this.listQuery.pageNum=1
-				this.GetProductListInfo()
+				this.getUserClubRemarksList()
 			}
 		},
 		delInputText(){//清除输入框内容
 			this.listQuery.keyWord = ''
 			this.isShowClose = false
 			this.listQuery.pageNum=1
-			this.GetProductListInfo()
+			this.getUserClubRemarksList()
 		},
 		hideMobel() {
 			this.modal = false
@@ -317,16 +365,33 @@ page {
 	position: fixed;
 	top: 0;
 	left: 0;
-	z-index: 20;
+	z-index: 982;
+	.search-screen{
+		width: 152rpx;
+		height: 64rpx;
+		float: right;
+		box-sizing: border-box;
+		padding: 0 20rpx;
+		border: 1px solid #999999;
+		line-height: 64rpx;
+		border-radius: 32rpx;
+		color: #333333;
+		text-align: center;
+		font-size: 28rpx;
+		.icon-gengduo1{
+			font-size: 30rpx;
+			margin-right: 10rpx;
+		}
+	}
 	.search-from{
-		width: 100%;
+		width: 526rpx;
 		height: 100%;
 		background: #F7F7F7;
 		border-radius: 32rpx;
 		float: left;
 		position: relative;
 		.input{
-			width: 500rpx;
+			width: 420rpx;
 			height: 64rpx;
 			float: left;
 			line-height: 64rpx;
@@ -379,31 +444,66 @@ page {
 		padding: 24rpx;
 		.tui-remarks-title{
 			width: 100%;
-			height: 48rpx;
-			line-height: 48rpx;
-			.tui-remarks-time {
-				float: left;
-				&.tt{
-					width: 60%;
-					font-size: $font-size-32;
-					color: #333333;
+			height: 144rpx;
+			line-height: 144rpx;
+			box-sizing: border-box;
+			padding: 20rpx 0;
+			border-bottom: 1px solid #E1E1E1;
+			.tui-remarks-title-top{
+				width: 100%;
+				height: 56rpx;
+				line-height: 56rpx;
+				.tui-remarks-time {
+					float: left;
+					&.tt{
+						width: 50%;
+						font-size: $font-size-32;
+						color: #333333;
+						text-align: left;
+						text-overflow: ellipsis;
+						overflow: hidden;
+						display: -webkit-box;
+						-webkit-line-clamp: 1;
+						line-clamp: 1;
+						-webkit-box-orient: vertical;
+						font-weight: bold;
+					}
+					&.sm{
+						width: 50%;
+						font-size: $font-size-26;
+						color: #999999;
+						text-align: right;
+					}
+				}
+			}
+			.tui-remarks-title-bot{
+				width: 100%;
+				height: 48rpx;
+				line-height: 48rpx;
+				.tui-remarks-text{
+					width: 50%;
+					height: 48rpx;
+					box-sizing: border-box;
 					text-align: left;
+					font-size: $font-size-26;
+					color: #999999;
+					float: left;
 					text-overflow: ellipsis;
 					overflow: hidden;
 					display: -webkit-box;
 					-webkit-line-clamp: 1;
 					line-clamp: 1;
 					-webkit-box-orient: vertical;
-					font-weight: bold;
-				}
-				&.sm{
-					width: 40%;
-					font-size: $font-size-26;
-					color: #999999;
-					text-align: right;
+					&.h{
+						padding-right: 24rpx;
+					}
+					&.y{
+						padding-left: 24rpx;
+						border-left: 1px solid #E1E1E1;
+					}
 				}
 			}
-		}
+		}	
 		.tui-remarks-name{
 			width: 100%;
 			height: 48rpx;
@@ -412,12 +512,33 @@ page {
 			color: #666666;
 			text-align: left;
 			margin-bottom: 20rpx;
+			margin-top: 20rpx;
+			.tui-remarks-name-text{
+				height: 48rpx;
+				box-sizing: border-box;
+				text-align: left;
+				font-size: $font-size-26;
+				color: #333333;
+				float: left;
+				text-overflow: ellipsis;
+				overflow: hidden;
+				display: -webkit-box;
+				-webkit-line-clamp: 1;
+				line-clamp: 1;
+				-webkit-box-orient: vertical;
+				&.h{
+					width: 40%;
+					padding-right: 24rpx;
+				}
+				&.y{
+					width: 60%;
+					padding-left: 24rpx;
+				}
+			}
 		}
 		.tui-remarks-content {
 			width: 100%;
 			height: auto;
-			border-bottom: 1px solid #E1E1E1;
-			margin-bottom: 24rpx;
 			.tui-remarks-span{
 				height: 48rpx;
 				line-height: 48rpx;
@@ -437,7 +558,9 @@ page {
 		}
 		.tui-remarks-button {
 			width: 100%;
-			height: 48rpx;
+			height: 68rpx;
+			border-top: 1px solid #E1E1E1;
+			padding-top: 20rpx;
 			.btn {
 				width: 50%;
 				line-height: 48rpx;

+ 3 - 1
pages/seller/remarks/record-details.vue

@@ -5,6 +5,7 @@
 				<view class="list-view-h1">咨询人</view>
 			</view>
 			<view class="remarks-input">{{ remarksParams.questionMan }}</view>
+			<view class="list-view-title"> <view class="list-view-h1">咨询类别:{{ remarksParams.consultBack ? remarksParams.consultBack : '无' }}</view> </view>
 			<view class="list-view-title"> <view class="list-view-h1">关键词记录:</view> </view>
 			<view class="tui-remarks-content">
 				<text class="tui-remarks-span" v-for="(label, labelIndex) in remarksParams.remarks" :key="labelIndex">
@@ -45,7 +46,8 @@ export default {
 			isIphoneX: this.$store.state.isIphoneX,
 			productActions: [],
 			remarksParams: {},
-			remarksId:0
+			remarksId:0,
+			categorys:'产品,二手,耗材'
 		}
 	},
 	onLoad(option) {

+ 251 - 104
pages/seller/remarks/record-list.vue

@@ -10,20 +10,24 @@
 						confirm-type="search"
 						v-model="listQuery.keyWord"
 						@input="onShowClose"
-						@confirm="GetProductListInfo"
+						@confirm="getUserClubVisitorRecordlist"
 						placeholder="搜索关键词"
 						maxlength="16"
 					/>
 					<text class="iconfont icon-shanchu1" v-if="isShowClose" @click="delInputText()"></text>
 				</view>
+				<view class="search-screen" @click="showScreenDrawer">
+					<text class="iconfont icon-gengduo1"></text>
+					筛选
+				</view>
 			</view>
-			<view class="search-from-title"> 咨询人:{{ questionMan }} </view>
 		</view>
-		<view class="remarks-content" :style="{ paddingBottom: isIphoneX ? '182rpx' : '148rpx' }">
+		<view class="remarks-content" :style="{ paddingBottom: isIphoneX ? '220rpx' : '148rpx' }">
 			<view :class="{ 'tui-order-list': scrollTop >= 0 }" class="clearfix">
 				<!-- 空白页 -->
 				<view class="empty-container" v-if="isEmpty">
-					<text class="error-text">点击下方添加按钮开始记录吧~</text>
+					<image class="empty-container-image" :src="StaticUrl + '/icon/icon-remarks-empty@2x.png'"></image>
+					<text class="error-text">暂无任何记录~</text>
 				</view>
 				<template v-else>
 					<!-- 列表 -->
@@ -33,7 +37,23 @@
 						:key="index"
 						@click.stop="details(remark.remarksId)"
 					>
-						<view class="tui-remarks-title">{{ remark.addDate }}</view>
+						<view class="tui-remarks-title">
+							<view class="tui-remarks-title-top">
+								<view class="tui-remarks-time tt">记录人:{{ remark.recordName }}</view>
+								<view class="tui-remarks-time sm">{{ remark.addDate }}</view>
+							</view>
+							<view class="tui-remarks-title-bot">
+								<view class="tui-remarks-text y">管理员:{{ remark.leaderName ? remark.leaderName : '' }}</view>
+							</view>
+						</view>
+						<view class="tui-remarks-name">
+							<view class="tui-remarks-name-text h">
+								咨询人:{{ remark.questionMan ? remark.questionMan : '' }}
+							</view>
+							<view class="tui-remarks-name-text y">
+								咨询类别:{{ remark.consultBack ? remark.consultBack : '无' }}
+							</view>
+						</view>
 						<view class="tui-remarks-content">
 							<text
 								class="tui-remarks-span"
@@ -43,7 +63,7 @@
 								{{ label }}
 							</text>
 						</view>
-						<view class="tui-remarks-button">
+						<view class="tui-remarks-button" v-if="remark.serviceProviderId === listQuery.serviceProviderId">
 							<view class="btn edit" @click.stop="handEditRemark(remark.remarksId)">修改</view>
 							<view class="btn del" @click.stop="deleteRemark(remark.remarksId)">删除</view>
 						</view>
@@ -60,22 +80,31 @@
 			<view class="tui-popup-box clearfix">
 				<view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
 					<view class="tui-flex-1">
-						<view class="tui-button" :class="isEmpty ? 'disabled' : 'cancel'" @click="handleShowClubpopup"
-							>同步至机构</view
+						<view class="tui-button" :class="isEmpty ? 'disabled' : 'cancel'" @click="handleShowFereepopup"
+							>添加记录</view
 						>
-						<view class="tui-button confirm" @click="handleAddRecord">添加画像</view>
+						<view class="tui-button confirm" @click="handleAddRecord">新增咨询人</view>
+					</view>
+					<view class="tui-flex-1">
+						<view class="tui-button-text" @click="handleShowClubpopup">同步记录至机构 ></view>
 					</view>
 				</view>
 			</view>
 		</tui-bottom-popup>
-		<!-- 添加记录 -->
-		<cm-clubpopup
-			ref="clubpopup"
-			v-if="isClubpopupShow"
-			:show="isClubpopupShow"
-			@handleChoiceaClub="handleChoiceaClubData"
-		>
+		<!-- 筛选抽屉 -->
+		<cm-screenDrawer ref="screendrawer"
+						 :rightDrawer="isScreenDrawer"
+						 @handSearchConfirm="handSearchConfirmData">
+		</cm-screenDrawer>
 		</cm-clubpopup>
+		<!-- 咨询人列表弹窗 -->
+		<cm-refereepopup
+			ref="cmrefereepopup"
+			v-if="isClubConsultShow"
+			:show="isClubConsultShow"
+			@handleChoiceaConsult="handleChoiceaConsultData"
+		>
+		</cm-refereepopup>
 		<!-- 弹窗提示 -->
 		<tui-modal
 			:show="modal"
@@ -89,24 +118,39 @@
 			:maskClosable="false"
 		>
 		</tui-modal>
+		<!-- 操作弹窗 -->
+		<cm-clubmodal
+			ref="clubModal"
+			v-if="isClubModalShow"
+			:show="isClubModalShow"
+			:modalType="2"
+			@handleChoiceaText="handleChoiceaTextData"
+		>
+		</cm-clubmodal>
 	</view>
 </template>
 <script>
-import tuiLoadmore from '@/components/tui-components/loadmore/loadmore'
-import tuiNomore from '@/components/tui-components/nomore/nomore'
-import cmClubpopup from '@/components/cm-module/cm-seller/cm-clubpopup'
-
 import { mapState, mapMutations } from 'vuex'
+import cmRefereepopup from '@/components/cm-module/cm-seller/cm-refereepopup'
+import cmClubmodal from '@/components/cm-module/cm-seller/cm-clubmodal'
+import cmScreenDrawer from '@/components/cm-module/cm-seller/cm-screen-drawer'
+
 const defaultListQuery = {
-	questionManId: 0,
+	startAddTime:'',
+	endAddTime:'',
+	consult:'',
+	leaderId:0,
+	groupId:0,
+	manager:0,
+	serviceProviderId: 0,
 	pageNum: 1,
 	pageSize: 10
 }
 export default {
 	components: {
-		tuiLoadmore,
-		tuiNomore,
-		cmClubpopup
+		cmRefereepopup,
+		cmClubmodal,
+		cmScreenDrawer
 	},
 	data() {
 		return {
@@ -145,7 +189,9 @@ export default {
 			questionMan: '',
 			questionManId: '',
 			handleRemarksId: 0,
-			isClubpopupShow: false
+			isClubConsultShow:false,
+			isClubModalShow: false,
+			isScreenDrawer:false,
 		}
 	},
 	onLoad(option) {
@@ -165,13 +211,14 @@ export default {
 	methods: {
 		...mapMutations(['login', 'logout']),
 		async init() {
-			const VisitorInfo = await this.$api.getComStorage('VisitorInfo')
-			this.questionMan = VisitorInfo.questionMan
-			this.listQuery.questionManId = VisitorInfo.questionManId
-			this.GetProductListInfo()
-			this.$api.removeStorage('VisitorInfo')
+			const userInfo = await this.$api.getStorage()
+			this.listQuery.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
+			// const VisitorInfo = await this.$api.getComStorage('VisitorInfo')
+			// this.questionMan = VisitorInfo.questionMan
+			// this.listQuery.questionManId = VisitorInfo.questionManId
+			this.getUserClubVisitorRecordlist()
 		},
-		GetProductListInfo() {
+		getUserClubVisitorRecordlist() {
 			this.remarksList = []
 			this.listQuery.pageNum = 1
 			this.UserService.getUserClubVisitorRecordlist(this.listQuery)
@@ -204,7 +251,7 @@ export default {
 					this.isRequest = true
 				})
 				.catch(error => {
-					this.$util.msg(error.msg, 2000)
+					console.log('=======>查询列表异常~')
 				})
 		},
 		GetOnReachBottomData(index) {
@@ -231,7 +278,7 @@ export default {
 					}
 				})
 				.catch(error => {
-					this.$util.msg(error.msg, 2000)
+					console.log('=======>查询列表异常~')
 				})
 		},
 		deleteRemark(remarksId) {
@@ -241,44 +288,58 @@ export default {
 		},
 		handEditRemark(remarksId) {
 			//跳转修改画像
-			this.$api.redirectTo(`/pages/seller/remarks/add-record?type=edit&remarksId=${remarksId}&questionMan=${
+			this.$api.navigateTo(`/pages/seller/remarks/add-record?type=edit&remarksId=${remarksId}&questionMan=${
 					this.questionMan
 				}`)
 		},
-		handleAllUnder() {
-			//跳转添加资料备注
-			this.$api.navigateTo('/pages/seller/remarks/customer-list')
+		handSearchConfirmData(data){
+			//确定筛选
+			this.listQuery.startAddTime = data.startAddTime
+			this.listQuery.endAddTime = data.endAddTime
+			this.listQuery.consult = data.consult
+			this.listQuery.leaderId = data.leaderId
+			this.listQuery.groupId = data.groupId
+			console.log('确定筛选',this.listQuery)
+			this.getUserClubVisitorRecordlist()
 		},
 		handleShowClubpopup() {
-			if (this.isEmpty) {
-				return
-			}
-			this.isClubpopupShow = true
+			//跳转选择咨询人
+			this.$api.navigateTo('/pages/seller/remarks/customer-list')
 		},
-		handleChoiceaClubData(data) {// 同步至机构
-			console.log(data)
-			this.UserService.getUserRemarksConcactVisit(
-				{
-					clubId: data.clubId,
-					questionManId:this.listQuery.questionManId
-				}
-			)
-			.then(response => {
-				this.$util.msg('同步成功', 2000, true, 'success')
-				setTimeout(() => {
-					this.$api.redirectTo('/pages/seller/remarks/list')
-				}, 2000)
-			})
-			.catch(error => {
-				this.$util.msg(error.msg, 2000)
-			})
+		handleChoiceaConsultData(data){// 选择咨询人添加记录
+			//跳转添加记录
+			this.$api.navigateTo(`/pages/seller/remarks/add-record?type=add&questionManId=${data.questionManId}&questionMan=${
+					data.questionMan
+				}`)
 		},
-		handleAddRecord() {
-			this.$api.redirectTo(
-				`/pages/seller/remarks/add-record?questionManId=${this.listQuery.questionManId}&questionMan=${
-					this.questionMan
-				}`
-			)
+		handleAddRecord() {// 新增咨询人显示弹框
+			this.isClubModalShow = true
+		},
+		handleShowFereepopup(){// 显示咨询人弹窗
+			this.isClubConsultShow = true
+		},
+		handleChoiceaTextData(data) {// 新增咨询人监听时间
+			console.log('data',data)
+			this.handleSaveVisitor(data)
+		},
+		handleSaveVisitor(data) {
+			// 添加咨询人
+			this.UserService.getUserClubVisitorSave({
+				name: data,
+				serviceProviderId: this.listQuery.serviceProviderId
+			})
+				.then(response => {
+					setTimeout(() => {
+						this.$api.navigateTo(
+							`/pages/seller/remarks/add-record?questionManId=${response.data.questionManId}&questionMan=${
+								response.data.questionMan
+							}`
+						)
+					}, 1000)
+				})
+				.catch(error => {
+					console.log('=======>添加咨询人失败~')
+				})
 		},
 		handleClick(e) {
 			//取消收藏
@@ -295,13 +356,17 @@ export default {
 				.then(response => {
 					this.$util.msg('已删除', 2000, true, 'success')
 					setTimeout(() => {
-						this.GetProductListInfo()
+						this.getUserClubVisitorRecordlist()
 					}, 2000)
 				})
 				.catch(error => {
 					this.$util.msg(error.msg, 2000)
 				})
 		},
+		showScreenDrawer(){
+			//显示筛选抽屉
+			this.isScreenDrawer = true
+		},
 		onShowClose() {
 			//输入框失去焦点时触发
 			if (this.listQuery.keyWord != '') {
@@ -309,7 +374,7 @@ export default {
 			} else {
 				this.isShowClose = false
 				this.listQuery.pageNum = 1
-				this.GetProductListInfo()
+				this.getUserClubVisitorRecordlist()
 			}
 		},
 		delInputText() {
@@ -317,7 +382,7 @@ export default {
 			this.listQuery.keyWord = ''
 			this.isShowClose = false
 			this.listQuery.pageNum = 1
-			this.GetProductListInfo()
+			this.getUserClubVisitorRecordlist()
 		},
 		hideMobel() {
 			this.modal = false
@@ -359,25 +424,13 @@ page {
 }
 .club-search {
 	width: 100%;
-	height: 192rpx;
+	height: 112rpx;
 	background: #ffffff;
 	box-sizing: border-box;
 	position: fixed;
 	top: 0;
 	left: 0;
 	z-index: 100;
-	.search-from-title {
-		width: 100%;
-		height: 80rpx;
-		line-height: 80rpx;
-		box-sizing: border-box;
-		padding: 0 24rpx;
-		font-size: $font-size-34;
-		float: left;
-		color: #1890f9;
-		background-color: #f2f9ff;
-		font-weight: normal;
-	}
 	.club-search-form {
 		width: 100%;
 		height: 112rpx;
@@ -385,15 +438,32 @@ page {
 		box-sizing: border-box;
 		padding: 24rpx;
 		float: left;
+		.search-screen{
+			width: 152rpx;
+			height: 64rpx;
+			float: right;
+			box-sizing: border-box;
+			padding: 0 20rpx;
+			border: 1px solid #999999;
+			line-height: 64rpx;
+			border-radius: 32rpx;
+			color: #333333;
+			text-align: center;
+			font-size: 28rpx;
+			.icon-gengduo1{
+				font-size: 30rpx;
+				margin-right: 10rpx;
+			}
+		}
 		.search-from {
-			width: 100%;
+			width: 526rpx;
 			height: 100%;
 			background: #f7f7f7;
 			border-radius: 32rpx;
 			float: left;
 			position: relative;
 			.input {
-				width: 500rpx;
+				width: 420rpx;
 				height: 64rpx;
 				float: left;
 				line-height: 64rpx;
@@ -432,7 +502,7 @@ page {
 	padding: 0;
 	box-sizing: border-box;
 	padding: 24rpx;
-	padding-top: 212rpx;
+	padding-top: 134rpx;
 	.empty-container-image {
 		width: 260rpx;
 		height: 260rpx;
@@ -444,31 +514,96 @@ page {
 		background: #ffffff;
 		margin-bottom: 24rpx;
 		box-sizing: border-box;
-		padding: 24rpx;
-		.tui-remarks-title {
+		padding: 0 24rpx 24rpx 24rpx;
+		.tui-remarks-title{
 			width: 100%;
-			height: 66rpx;
-			line-height: 66rpx;
-			font-size: $font-size-26;
-			color: #333333;
-			border-bottom: 1px solid #e1e1e1;
+			height: 144rpx;
+			line-height: 144rpx;
 			box-sizing: border-box;
-		}
-		.tui-remarks-name {
+			padding: 20rpx 0;
+			border-bottom: 1px solid #E1E1E1;
+			.tui-remarks-title-top{
+				width: 100%;
+				height: 56rpx;
+				line-height: 56rpx;
+				.tui-remarks-time {
+					float: left;
+					&.tt{
+						width: 50%;
+						font-size: $font-size-26;
+						color: #333333;
+						text-align: left;
+						text-overflow: ellipsis;
+						overflow: hidden;
+						display: -webkit-box;
+						-webkit-line-clamp: 1;
+						line-clamp: 1;
+						-webkit-box-orient: vertical;
+					}
+					&.sm{
+						width: 50%;
+						font-size: $font-size-26;
+						color: #999999;
+						text-align: right;
+					}
+				}
+			}
+			.tui-remarks-title-bot{
+				width: 100%;
+				height: 48rpx;
+				line-height: 48rpx;
+				.tui-remarks-text{
+					width: 50%;
+					height: 48rpx;
+					box-sizing: border-box;
+					text-align: left;
+					font-size: $font-size-26;
+					color: #999999;
+					float: left;
+					text-overflow: ellipsis;
+					overflow: hidden;
+					display: -webkit-box;
+					-webkit-line-clamp: 1;
+					line-clamp: 1;
+					-webkit-box-orient: vertical;
+				}
+			}
+		}	
+		.tui-remarks-name{
 			width: 100%;
-			height: 37rpx;
-			line-height: 37rpx;
+			height: 48rpx;
+			line-height: 48rpx;
 			font-size: $font-size-26;
 			color: #666666;
 			text-align: left;
-			margin-bottom: 24rpx;
+			margin-bottom: 20rpx;
+			margin-top: 20rpx;
+			.tui-remarks-name-text{
+				height: 48rpx;
+				box-sizing: border-box;
+				text-align: left;
+				font-size: $font-size-26;
+				color: #333333;
+				float: left;
+				text-overflow: ellipsis;
+				overflow: hidden;
+				display: -webkit-box;
+				-webkit-line-clamp: 1;
+				line-clamp: 1;
+				-webkit-box-orient: vertical;
+				&.h{
+					width: 40%;
+					padding-right: 24rpx;
+				}
+				&.y{
+					width: 60%;
+					padding-left: 24rpx;
+				}
+			}
 		}
 		.tui-remarks-content {
 			width: 100%;
 			height: auto;
-			border-bottom: 1px solid #e1e1e1;
-			margin-bottom: 24rpx;
-			padding-top: 20rpx;
 			.tui-remarks-span {
 				height: 48rpx;
 				line-height: 48rpx;
@@ -488,7 +623,9 @@ page {
 		}
 		.tui-remarks-button {
 			width: 100%;
-			height: 48rpx;
+			height: 68rpx;
+			border-top: 1px solid #E1E1E1;
+			padding-top: 20rpx;
 			.btn {
 				width: 50%;
 				line-height: 48rpx;
@@ -497,12 +634,12 @@ page {
 				font-size: $font-size-34;
 				float: left;
 				font-weight: bold;
-				&.edit {
-					color: #1890f9;
-					border-right: 1px solid #e1e1e1;
+				&.edit{
+					color: #1890F9;
+					border-right: 1px solid #E1E1E1;
 				}
-				&.del {
-					color: #f94b4b;
+				&.del{
+					color: #F94B4B;
 				}
 			}
 		}
@@ -549,6 +686,16 @@ page {
 				color: #ffffff;
 			}
 		}
+		.tui-button-text{
+			width: 600rpx;
+			height: 48rpx;
+			line-height: 48rpx;
+			text-align: center;
+			color: #E15616;
+			font-size: $font-size-26;
+			margin: 0 auto;
+			margin-top: 15rpx;
+		}
 	}
 }
 </style>

+ 2 - 2
services/config.env.js

@@ -4,8 +4,8 @@ if(process.env.NODE_ENV === 'development'){
     // URL_CONFIG = 'http://192.168.2.67:18002'	 //智捷联调地址
     // URL_CONFIG = 'http://192.168.2.68:18002'	 //涛涛联调地址
     // URL_CONFIG = 'http://192.168.2.75:18002'	 //超超联调地址
-    // URL_CONFIG = 'https://core-b.caimei365.com'
-    URL_CONFIG = 'https://core.caimei365.com'
+    URL_CONFIG = 'https://core-b.caimei365.com'
+    // URL_CONFIG = 'https://core.caimei365.com'
 }else{
     // 生产环境
     // URL_CONFIG = 'https://core-b.caimei365.com'

+ 109 - 76
services/user.service.js

@@ -383,66 +383,65 @@ export default class UserService {
 	 *@机构资料备注删除
 	 *@param remarksId	备注Id
 	 */
-	getUserClubRemarksDelete(data = {}) {
-		return this.AjaxService.post({
-			url: '/user/club/remarks/delete',
-			data,
-			isLoading: true,
-
-		})
-	}
-	/**
+    getUserClubRemarksDelete (data = {}) {
+        return this.AjaxService.post({ 
+            url:'/user/club/remarks/delete', 
+            data, 
+            isLoading: true,
+        })
+    }
+    /**
 	 *@添加潜在客户咨询人
 	 *@param name	机构用户clubId
 	 *@param serviceProviderId	协销Id
 	 */
-	getUserClubVisitorSave(data = {}) {
-		return this.AjaxService.get({
-			url: '/user/club/remarks/visitor/save',
-			data,
-			isLoading: false,
-		})
-	}
-	/**
+    getUserClubVisitorSave (data = {}) {
+	    return this.AjaxService.get({
+	        url:'/user/club/remarks/visitor/save',
+	        data,
+	        isLoading: false,
+        })
+    }
+    /**
 	 *@修改潜在客户咨询人名称
 	 *@param questionMan	姓名
 	 *@param questionManId	咨询人Id
 	 *@param serviceProviderId	协销Id
 	 */
-	getUserClubVisitorUpdate(data = {}) {
-		return this.AjaxService.get({
-			url: '/user/club/remarks/visitor/update',
-			data,
-			isLoading: false,
-		})
-	}
-	/**
-	 *@潜在客户列表 
+    getUserClubVisitorUpdate (data = {}) {
+	    return this.AjaxService.get({
+	        url:'/user/club/remarks/visitor/update',
+	        data,
+	        isLoading: false,
+        })
+    }
+    /**
+	 *@潜在客户列表
 	 *@param serviceProviderId	机构用户clubId
 	 *@param pageNum 页码
 	 *@param pageSize 条数
 	 */
-	getUserClubVisitorList(data = {}) {
-		return this.AjaxService.get({
-			url: '/user/club/remarks/visitor/list',
-			data,
-			isLoading: true,
-		})
-	}
-	/**
-	 *@潜在客户列表 
+    getUserClubVisitorList (data = {}) {
+	    return this.AjaxService.get({
+	        url:'/user/club/remarks/visitor/list',
+	        data,
+	        isLoading: true,
+        })
+    }
+    /**
+	 *@潜在客户列表
 	 *@param questionManId	咨詢人ID
 	 *@param pageNum 页码
 	 *@param pageSize 条数
 	 */
-	getUserClubVisitorRecordlist(data = {}) {
-		return this.AjaxService.get({
-			url: '/user/club/remarks/visitor/recordlist',
-			data,
-			isLoading: true,
-		})
-	}
-	/**
+    getUserClubVisitorRecordlist (data = {}) {
+	    return this.AjaxService.get({
+	        url:'/user/club/remarks/visitor/recordlist',
+	        data,
+	        isLoading: true,
+        })
+    }
+    /**
 	 *@潜在客户信息保存
 	 *@param remarksId	記錄ID
 	 *@param questionManId	咨詢人ID
@@ -453,48 +452,82 @@ export default class UserService {
 	 *@param pageNum 页码
 	 *@param pageSize 条数
 	 */
-	getUserClubVisitorSaveAdd(data = {}) {
-		return this.AjaxService.post({
-			url: '/user/club/remarks/save/visit',
-			data,
-			isLoading: true,
-		})
-	}
-	/**
+    getUserClubVisitorSaveAdd(data = {}) {
+	    return this.AjaxService.post({
+	        url:'/user/club/remarks/save/visit',
+	        data,
+	        isLoading: true,
+        })
+    }
+    /**
 	 *@咨询人记录删除
 	 *@param remarksId	备注Id
 	 */
-	getUserRemarksVisitDelete(data = {}) {
-		return this.AjaxService.post({
-			url: '/user/club/remarks/delete/visit',
-			data,
-			isLoading: true,
-		})
-	}
-	/**
+    getUserRemarksVisitDelete (data = {}) {
+	    return this.AjaxService.post({
+	        url:'/user/club/remarks/delete/visit',
+	        data,
+	        isLoading: true,
+	    })
+    }
+    /**
 	 *@咨询人记录详情
 	 *@param remarksId	备注Id
 	 */
-	getUserRemarksVisitDetail(data = {}) {
-		return this.AjaxService.get({
-			url: '/user/club/remarks/detail/visit',
-			data,
-			isLoading: true,
-		})
-	}
-	/**
+    getUserRemarksVisitDetail (data = {}) {
+	    return this.AjaxService.get({
+	        url:'/user/club/remarks/detail/visit',
+	        data,
+	        isLoading: true,
+	    })
+    }
+    /**
 	 *@同步咨询人至机构
 	 *@param questionManId	备注Id
 	 */
-	getUserRemarksConcactVisit(data = {}) {
-		return this.AjaxService.post({
-			url: '/user/club/remarks/concact/visit',
-			data,
-			isLoading: true,
-			loadText: '同步中...'
-		})
-	}
-	/**
+    getUserRemarksConcactVisit (data = {}) {
+	    return this.AjaxService.post({
+	        url:'/user/club/remarks/concact/visit',
+	        data,
+	        isLoading: true,
+            loadText:'同步中...'
+	    })
+    }
+    /**
+	 *@获取查询记录类别
+	 *@param consults	咨询类别Id
+	 */
+    getUserClubConsults (data = {}) {
+	    return this.AjaxService.post({
+	        url:'/user/club/consults',
+	        data,
+	        isLoading: false
+	    })
+    }
+    /**
+	 *@获取协销组长列表
+	 */
+    getUserClubTeams (data = {}) {
+	    return this.AjaxService.post({
+	        url:'/user/club/teams',
+	        data,
+	        isLoading: false
+	    })
+    }
+
+    /**
+	 *@根据协销组长id获取组员列表
+	 *@param  leaderId	组长Id
+	 */
+    getUserClubTeamsRroups (data = {}) {
+	    return this.AjaxService.post({
+	        url:'/user/club/teams/groups ',
+	        data,
+	        isLoading: false,
+	    })
+    }
+
+    /**
 	 *@会员中心
 	 *@param userId	用户Id
 	 */