From bf96d142d8383f179e2d16f6555e43c5a1cbd85f Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Fri, 23 Jul 2021 14:57:41 +0800
Subject: [PATCH] 初版集成

---
 pages/home/home.vue              |   20 
 pages/groupChat/chatingQZ.vue    |  647 +++++++++++++++
 static/images/home/partrol.png   |    0 
 api/mock/home.js                 |   28 
 static/images/home/homeTop2.png  |    0 
 pages/groupChat/groupChat.vue    |  312 +++++++
 pages/groupChat/chatingcopy.vue  |  590 ++++++++++++++
 static/images/home/report.png    |    0 
 store/index.js                   |    2 
 static/images/home/more.png      |    0 
 pages/company/companyDetail.vue  |   64 +
 pages/groupChat/chating.vue      |  641 +++++++++++++++
 static/images/home/homeTop1.png  |    0 
 static/images/home/search003.png |    0 
 pages/login/login-account.vue    |    3 
 static/images/home/handle001.png |    0 
 static/images/home/handle.png    |    0 
 static/images/home/report002.png |    0 
 pages.json                       |   26 
 static/images/user/dengchu.png   |    0 
 static/images/home/search004.png |    0 
 pages/user/center.vue            |   70 +
 static/images/home/handle002.png |    0 
 static/images/home/report001.png |    0 
 static/images/home/say.png       |    0 
 static/images/home/homeTop3.png  |    0 
 static/images/home/search02.png  |    0 
 static/images/home/look.png      |    0 
 pages/company/company.vue        |   89 ++
 static/images/home/searchs.png   |    0 
 store/actions.js                 |    2 
 31 files changed, 2,448 insertions(+), 46 deletions(-)

diff --git a/api/mock/home.js b/api/mock/home.js
index cda62df..b7c2bae 100644
--- a/api/mock/home.js
+++ b/api/mock/home.js
@@ -3,8 +3,8 @@
 	return new Promise((resolute, reject) => {
 		try {
 			const detail = {
-				position: "研发部",
-				positionArr: ['研发部', '产品部']
+				position: "保安",
+				positionArr: ['保安', '民警']
 			}
 			resolute(detail);
 		} catch (e) {
@@ -103,38 +103,28 @@
 	return new Promise((resolute, reject) => {
 		try {
 			const list = [{
-					name: '人口登记',
+					name: '服务单位',
 					img: '/static/images/home/s1.png',
-					url: ''
+					url: '../company/company'
 				},
 				{
-					name: '工商年报',
+					name: '保安管理',
 					img: '/static/images/home/s2.png',
 					url: ''
 				},
 				{
-					name: '税务登记',
-					img: '/static/images/home/s3.png',
+					name: '工作汇报',
+					img: '/static/images/home/report001.png',
 					url: ''
 				},
 				{
-					name: '健康码',
+					name: '调度指令',
 					img: '/static/images/home/s4.png',
 					url: ''
 				},
 				{
-					name: '便民服务',
+					name: '现场检查',
 					img: '/static/images/home/s5.png',
-					url: ''
-				},
-				{
-					name: '通办大厅',
-					img: '/static/images/home/s6.png',
-					url: ''
-				},
-				{
-					name: '智能问答',
-					img: '/static/images/home/s7.png',
 					url: ''
 				}
 			];
diff --git a/pages.json b/pages.json
index 32470d9..04119bd 100644
--- a/pages.json
+++ b/pages.json
@@ -4,6 +4,13 @@
 	},
 	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
 		{
+			"path": "pages/login/login-account",
+			"style": {
+				"navigationBarTitleText": "登录",
+				"enablePullDownRefresh": false,
+				"navigationStyle": "custom"
+			}
+		},{
 			"path": "pages/home/home",
 			"style": {
 				"navigationBarTitleText": "首页",
@@ -33,7 +40,22 @@
 				"enablePullDownRefresh": false,
 				"navigationStyle": "custom"
 			}
-
+		}, {
+			"path": "pages/company/company",
+			"style": {
+				"navigationBarTitleText": "服务单位",
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#0BB9C8",
+				"navigationBarTextStyle": "white"
+			}
+		}, {
+			"path": "pages/company/companyDetail",
+			"style": {
+				"navigationBarTitleText": "服务单位管理",
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#0BB9C8",
+				"navigationBarTextStyle": "white"
+			}
 		}, {
 			"path": "pages/user/profile",
 			"style": {
@@ -145,7 +167,7 @@
 			"pagePath": "pages/demo/demo",
 			"iconPath": "static/images/tabbar/demo.png",
 			"selectedIconPath": "static/images/tabbar/demo_selected.png",
-			"text": "示例"
+			"text": "好友"
 		}, {
 			"pagePath": "pages/manage/manage",
 			"iconPath": "static/images/tabbar/manage.png",
diff --git a/pages/company/company.vue b/pages/company/company.vue
new file mode 100644
index 0000000..4909fd6
--- /dev/null
+++ b/pages/company/company.vue
@@ -0,0 +1,89 @@
+<template>
+	<view class="container">
+		<u-search shape="square" class="u-search" input-align="center" height="70"></u-search>
+		<view class="inTmain" v-for="(item,index) in dataList">
+			<u-card :title="item.enterprisename" @click="goDetail(item)">
+					<view class="" slot="body">
+						<view>
+							<view style="margin-bottom: 10px;" class="u-body-item-title u-line-2">公司地址:{{item.address}}</view>
+						</view>
+						<view>
+							<view class="u-body-item-title u-line-2">经营范围:{{item.business}}</view>
+						</view>
+					</view>
+					<view class="" slot="foot"></u-icon>法定代表人:{{item.representative}}</view>
+			</u-card>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				dataList:[]
+			};
+		},
+		onLoad() {
+			
+		},
+		onReachBottom() {
+			
+		},
+		mounted() {
+			this.getCompany();
+		},
+		methods: {
+			getCompany(){
+				var that = this;
+				uni.request({
+					url: this.$store.state.piAPI + "/information/page",
+					method:"get",
+					data:{
+						
+					},
+					success:(res)=> {
+						var resdata = res.data.data.records;
+						that.dataList = resdata;
+					}
+				});
+			},
+			goDetail(item){
+				uni.navigateTo({
+					url: './companyDetail?detailData=' + JSON.stringify(item)
+				});
+			}
+			
+		}
+	};
+</script>
+
+<style lang="scss">
+	.u-card-wrap { 
+			background-color: $u-bg-color;
+			padding: 1px;
+		}
+		
+	.u-body-item {
+		font-size: 32rpx;
+		color: #333;
+		padding: 20rpx 10rpx;
+	}
+		
+	.u-body-item image {
+		width: 120rpx;
+		flex: 0 0 120rpx;
+		height: 120rpx;
+		border-radius: 8rpx;
+		margin-left: 12rpx;
+	}
+	
+	.u-search {
+		padding: 20rpx 30rpx 0 30rpx;
+	}
+	
+	.inTmain{
+		
+	}
+	
+</style>
diff --git a/pages/company/companyDetail.vue b/pages/company/companyDetail.vue
new file mode 100644
index 0000000..a902ec4
--- /dev/null
+++ b/pages/company/companyDetail.vue
@@ -0,0 +1,64 @@
+<template>
+	<view class="container">
+		<view class="tab">
+			<u-tabs :list="list" :is-scroll="false" :current="current" active-color="#14B9C8" inactive-color="#595959"
+				height="100" @change="change"></u-tabs>
+				
+			<u-form label-style="width:200rpx" :model="detailData" ref="uForm" class="companyForm">
+					<u-form-item label="单位名称"><u-input v-model="detailData.enterprisename" /></u-form-item>
+					<u-form-item label="法定代表人"><u-input v-model="detailData.intro" /></u-form-item>
+					<u-form-item label="成立日期"><u-input v-model="detailData.sex" /></u-form-item>
+					<u-form-item label="注册资本"><u-input v-model="detailData.sex" /></u-form-item>
+					<u-form-item label="实缴资本"><u-input v-model="detailData.sex" /></u-form-item>
+					<u-form-item label="组织机构代码	"><u-input v-model="detailData.sex" /></u-form-item>
+					<u-form-item label="工商注册号"><u-input v-model="detailData.sex" /></u-form-item>
+					<u-form-item label="统一社会信用代码"><u-input v-model="detailData.sex" /></u-form-item>
+					<u-form-item label="纳税人识别号"><u-input v-model="detailData.sex" /></u-form-item>
+					<u-form-item label="注册地址"><u-input v-model="detailData.sex" /></u-form-item>
+					<u-form-item label="经营范围"><u-input v-model="detailData.sex" /></u-form-item>
+					<u-form-item label="所属地区"><u-input v-model="detailData.sex" /></u-form-item>
+					<u-form-item label="登记机关"><u-input v-model="detailData.sex" /></u-form-item>
+					<u-form-item label="所属行业"><u-input v-model="detailData.sex" /></u-form-item>
+			</u-form>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				list: [{
+						name: '注册信息'
+					},
+					{
+						name: '保安员管理'
+					}
+				],
+				current: 0,
+				detailData:{},
+			};
+		},
+		onLoad(event) {
+			var that = this;
+			this.detailData = JSON.parse(decodeURIComponent(event.detailData));
+		},
+		onReachBottom() {
+			
+		},
+		mounted() {
+			
+		},
+		methods: {
+			
+			
+		}
+	};
+</script>
+
+<style lang="scss">
+	.companyForm{
+		padding: 30rpx;
+	}
+	
+</style>
diff --git a/pages/groupChat/chating.vue b/pages/groupChat/chating.vue
new file mode 100644
index 0000000..df1f507
--- /dev/null
+++ b/pages/groupChat/chating.vue
@@ -0,0 +1,641 @@
+<template>
+	<view class="content">
+	
+	<!-- 头部 -->
+	<view class="top-bar">
+		<view class="top-bar-left" @tap="backOne()">
+			<view class="back-img">
+				<image src="@/static/images/common/back.png" />
+			</view>
+		</view>
+		<view class="top-bar-center title">
+			<text>{{ recName }}</text>
+		</view>
+		<view class="top-bar-right search pice">
+			<view class="group-img">
+				<image :src=recAvatar
+							 mode=""/>
+			</view>
+		</view>
+	</view>
+	
+	<scroll-view scroll-y="true"
+							 class="chat"
+							 scroll-with-animation="isanimation"
+							 :scroll-into-view="scrollToView"
+							 @scrolltoupper="nextPage">
+		<view class="chat-main"
+					:style="{paddingBottom:inputh + 'px'}">
+			<view class="loading"
+						:class="{displaynone:isload}">
+				<image src="@/static/images/chatroom/load.png" 
+							 mode=""
+							 class="loading-img"
+							 :animation="animationData"/>
+			</view>
+			<view class="chat-ls" v-for="(item, index) in msgs"
+													  :key="index"
+														:id="'msg' + item.id">
+				<view class="chat-time" v-if="item.postTime != ''">{{ item.postTime | Msgdate }}</view>
+				
+				<view class="msg-m msg-left" v-if="item.senderId != senId">
+					<image :src= recAvatar 
+								 mode=""
+								 class="user-img" />
+					<!-- text -->
+					<view class="message" v-if="item.messageType == 0">
+						<view class="msg-text">{{ item.postMessage }}</view>
+					</view>
+					<!-- image -->
+					<view class="message" v-if="item.messageType == 1">
+						<image :src="item.postMessage" 
+									 class="msg-img"
+									 mode="widthFix"
+									 @tap="previewImage(item.postMessage)"/>
+					</view>
+					<!-- voice -->
+					<view class="message" v-if="item.messageType == 2">
+						<view class="msg-text voice"
+									:style="{width:item.postMessage.time * 4 + 'px'}"
+									@tap="playVoice(item.postMessage.voice)">
+							<image src="../../static/images/chatroom/sound.png" 
+										 mode=""
+										 class="voice-img"/>
+							{{ item.postMessage.time }} "
+						</view>
+					</view>
+					<!-- location -->
+					<view class="message" v-if="item.messageType == 3">
+						<view class="msg-map"
+									@tap="openLocation(item.postMessage)">
+							<view class="map-name">{{ item.postMessage.name }}</view>
+							<view class="map-address">{{ item.postMessage.address }}</view>
+							<image src="../../static/images/chatroom/map.jpg" 
+										 mode="aspectFit" 
+										 class="map-img"/>
+						</view>
+					</view>
+					
+				</view>
+				
+				<view class="msg-m msg-right" v-if="item.senderId == senId">
+					<image :src= senAvatar 
+								 mode=""
+								 class="user-img" />
+					<view class="message" v-if="item.messageType == 0">
+						<view class="msg-text">{{ item.postMessage }}</view>
+					</view>
+					<view class="message" v-if="item.messageType == 1">
+						<image :src="item.postMessage" 
+									 class="msg-img"
+									 mode="widthFix"
+									 @tap="previewImage(item.postMessage)"/>
+					</view>
+					<!-- voice -->
+					<view class="message" v-if="item.messageType == 2">
+						<view class="msg-text voice"
+									:style="{width:item.postMessage.time * 4 + 'px'}"
+									@tap="playVoice(item.postMessage.voice)">
+							{{ item.postMessage.time }} "
+							<image src="@/static/images/chatroom/sound.png"
+										 mode=""
+										 class="voice-img"/>
+						</view>
+					</view>
+					<!-- location -->
+					<view class="message" v-if="item.messageType == 3">
+						<view class="msg-map"
+									@tap="openLocation(item.postMessage)">
+							<view class="map-name">{{ item.postMessage.name }}</view>
+							<view class="map-address">{{ item.postMessage.address }}</view>
+							<!-- <map class="map"
+									 :latitude="item.postMessage.latitude"
+									 :longitude="item.postMessage.longitude"
+									 :markers="covers(item.postMessage)"/> -->
+							<image src="../../static/images/chatroom/map.jpg"
+										 mode="aspectFit" 
+										 class="map-img"/>
+						</view>
+					</view>
+				</view>
+				
+				
+			</view>
+			
+		</view>
+		<!-- <view class="padbt"></view> -->
+	</scroll-view>
+	<submit @inputs="inputs" 
+					@heights="heights"/>
+	</view>
+</template>
+
+<script>
+	import datas from  '@/debugdate/debugdate.js'
+	import filter from '@/config/filter.js'
+	import submit from '@/components/submit/submit.vue'
+	import WxStorage from "../../static/lib/wxStorage.js"
+	const innerAudioContext = uni.createInnerAudioContext()
+	
+	export default {
+		data() {
+			return {
+				msgs: [],
+				imgMsg: [],
+				oldTime: new Date(),
+				scrollToView: '',
+				inputh: '72',   
+				recipientId: null,//接收者id
+				recAvatar: null,//接收者头像
+				recName: null,//接收者姓名
+				senAvatar:null,//发送者头像
+				senId: null,//接收者id
+				getData: null,
+				animationData: {},            // 动画
+				nowpage: 0,                   // 页码
+				loading: '',                  // 滚动事件
+				isload: true,
+				isanimation: true,
+				begainloading: true
+			};
+		},
+		components:{
+			submit,
+		},
+		onLoad(option) {
+			this.recipientId = option.chatID;
+			this._getMsg(this.nowpage)
+			// this.nextPage()
+		},
+		methods:{
+			// 返回键
+			backOne() {
+				uni.navigateBack({
+					delta: 1
+				})
+			},
+			// 滚动顶部加载上一页
+			nextPage() {
+				// if(this.nowpage > 0 && this.begainloading) {
+				// 	// 出现loading icon
+				// 	this.isload = false
+				// 	this.begainloading = false
+					
+				// 	var animation = uni.createAnimation({
+				// 		duration: 1000,
+				// 		timingFunction: 'step-start'
+				// 	})
+					
+				// 	this.animation = animation
+					
+					
+				// 	let i = 1
+				// 	this.loading = setInterval(function() {
+				// 		animation.rotate(i * 30).step()
+				// 		this.animationData = animation.export()
+				// 		i++
+				// 		// 滑动加载数据
+				// 		if(i > 40) {
+				// 			this._getMsg(this.nowpage)
+				// 		}
+						
+				// 	}.bind(this), 100)
+				// }
+				
+				
+			},
+			// 获取聊天数据
+			_getMsg(page) {
+				var that = this;
+				that.senId = WxStorage.get("ids");
+				uni.request({
+					url:"http://s16s652780.51mypc.cn/api/chat-records/getSingleMessagePage",
+					method:"get",
+					data:{
+						senderId: that.senId,
+						recipientId: that.recipientId
+						// recipientId: "1370571848600920066"
+					},
+					success:(res)=> {
+						// recAvatar: null,//接收者头像
+						// senAvatar:null,//发送者头像
+						var resdata = res.data.data.user;
+						for (var i = 0; i < resdata.length; i++) {
+							if(resdata[i].avatar == null || resdata[i].avatar == ""){
+								resdata[i].avatar = "http://s16s652780.51mypc.cn/img/bg/img-logo.png";
+							}
+							
+							if(resdata[i].id == that.senId){
+								that.senAvatar = resdata[i].avatar;
+							}else{
+								that.recAvatar = resdata[i].avatar;
+								that.recName = resdata[i].realName;
+							}
+						}
+						let msg = res.data.data.chatRecordsIPage
+						that.getData = msg;
+						// 页数加1
+						//let msg = datas.message()			
+						let maxpages = msg.length
+						if(msg.length > (page + 1) * 10) {
+							maxpages = (page + 1) * 10
+							that.nowpage++
+						}else {
+							// 数据获取完毕
+							that.nowpage = -1
+						}
+						// 数据分页加载 每十条为一页
+						for(var i = 0; i < msg.length; i++){
+							msg[i].imgUrl = '../../static/images/index/friend-list/'+msg[i].imgUrl
+							// 时间间隔
+							if(i < msg.length-1){
+								let t = filter.spaceTime(that.oldTime, msg[i].postTime)
+								if(t){
+									that.oldTime = t
+								}
+								msg[i].postTime = t
+							}
+							// 补充图片地址
+							if(msg[i].types == 1){
+								msg[i].message = '../../static/images/index/friend-list/'+msg[i].message
+								that.imgMsg.unshift(msg[i].message)
+							}
+							that.msgs.unshift(msg[i])
+						}
+						
+						that.$nextTick(() => {
+							that.isanimation = false
+							if(that.getData.length != 0){
+								that.scrollToView = 'msg' + that.getData[0].id
+							}
+							
+						})
+						// 数据加载完毕关闭动画,停止数据加载
+						clearInterval(this.loading)
+						// 关闭loading icon
+						this.isload = true
+						// 开启加载
+						this.begainloading = true
+						
+					}
+				})
+				
+			},
+			// 预览图片
+			previewImage(e) {
+				
+				let index = 0
+				for(var i =0; i < this.imgMsg.length; i++){
+					if(this.imgMsg[i] == e) {
+						index = i
+					}
+				}
+				uni.previewImage({
+					current: index,
+					urls: this.imgMsg,
+					longPressActions: {
+						itemList: ['发送给朋友', '保存图片', '收藏'],
+						success: function(data) {
+							console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
+						},
+						fail: function(err) {
+							console.log(err.errMsg);
+						}
+					}
+				});
+			},
+			// 音频播放
+			playVoice(e) {
+				console.log('ok')
+				innerAudioContext.src = e
+				innerAudioContext.play()
+			},
+			// 接收输入内容
+			inputs(e) {
+				var that = this;
+				this.isanimation = true
+				let len = this.msgs.length -1				
+				let nowTime = new Date();	
+				var sentTime = that.dateFormat("YYYY-mm-dd HH:MM:SS", nowTime);
+				let t = filter.spaceTime(this.oldTime, nowTime)
+				if(t){
+					this.oldTime = t
+				}
+				nowTime = t
+				let sendMsg = {
+					senderId: that.senId,
+					recipientId: that.recipientId,
+					postMessage: e.message,
+					messageType: 0,
+					status: 0,
+					postTime: nowTime,
+				}
+				
+				uni.request({
+					url:"http://s16s652780.51mypc.cn/api/chat-records/insertSingleChat",
+					method:"post",
+					data:{
+						senderId: that.senId,
+						recipientId: that.recipientId,
+						postMessage: e.message,
+						messageType: 0,
+						status: 0,
+						postTime: sentTime,
+					},
+					success:(res)=> {
+						
+					}
+				});
+				
+				this.msgs.push(sendMsg)
+				this.$nextTick(() => {
+					this.scrollToView = 'msg' + len
+				})
+				if(e.types == 1) {
+					this.imgMsg.push(e.message)
+				}
+			},
+			// 输入框高度
+			heights(e) {
+				this.inputh = e
+				this.goBottom()
+				// console.log('高度' + e)
+			},
+			// 滚动到底部
+			goBottom() {
+				this.isanimation = true
+				this.scrollToView = ''
+				this.$nextTick(() => {
+					let len = this.getData.length -1
+					if(this.getData.length != 0){
+						this.scrollToView = 'msg' + this.getData[0].id
+					}
+					
+				})
+			},
+			// 地图定位
+			covers(e) {
+				let map = [
+					{
+						latitude: e.latitude,
+						longitude: e.longitude,
+						iconPath: '../../static/images/chatroom/placeholder-r.png'
+					}
+				]
+				return (map)
+			},
+			// 导航
+			openLocation(e) {
+				uni.openLocation({
+					latitude: e.latitude,
+					longitude: e.longitude,
+					name: e.name,
+					address: e.address,
+					success: () => {
+						console.log('success')
+					}
+				})
+			},
+			//时间格式化
+			dateFormat(fmt, date) {
+			    let ret;
+			    const opt = {
+			        "Y+": date.getFullYear().toString(),        // 年
+			        "m+": (date.getMonth() + 1).toString(),     // 月
+			        "d+": date.getDate().toString(),            // 日
+			        "H+": date.getHours().toString(),           // 时
+			        "M+": date.getMinutes().toString(),         // 分
+			        "S+": date.getSeconds().toString()          // 秒
+			        // 有其他格式化字符需求可以继续添加,必须转化成字符串
+			    };
+			    for (let k in opt) {
+			        ret = new RegExp("(" + k + ")").exec(fmt);
+			        if (ret) {
+			            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
+			        };
+			    };
+			    return fmt;
+			}
+		},
+		filters:{
+			Msgdate(time) {
+			 return	filter.Msgdate(time)
+			}
+		}
+	}
+	
+</script>
+
+<style lang="scss">	
+	@import '../../static/scss/index.scss';
+	.padbt {
+		height: var(--status-bar-height);
+		width: 100%;
+	}
+	page {
+		height: 100%;
+	}
+	.content {
+		height: 100%;
+		background: rgba(244, 244, 244, 1);
+		// background: #2C405A;
+	}
+	
+	.top-bar {
+		background: rgba(244, 244, 244, .96);
+		// box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, .1);
+		border-bottom: 1px solid $uni-border-color;
+		
+		.group-img {
+			image{
+				position: absolute;
+				bottom: 10rpx;
+				right: $uni-spacing-col-base;
+				width: 68rpx;
+				height: 68rpx;
+				border-radius: 16rpx;
+				// justify-content: center;
+			}
+		}
+	}
+
+	.chat {
+		height: 100%;
+		
+		.chat-main {
+			padding-left: $uni-spacing-col-base;
+			padding-right: $uni-spacing-col-base;
+			padding-top: 100rpx;
+			// padding-bottom: 120rpx;
+			display: flex;
+			flex-direction: column;
+			
+			.loading {
+				text-align: center;
+				
+				.loading-img {
+					width: 60rpx;
+					height: 60rpx;
+				}
+			}
+		}
+		
+		.chat-ls {
+			
+			.chat-time {
+				font-size: $uni-font-size-base;
+				color: rgba(39, 40, 50, .6);
+				line-height: 34rpx;
+				padding: 20rpx 0;
+				text-align: center;
+			}
+			
+			.msg-m {
+				display: flex;
+				padding: 20rpx 0;
+				
+				.user-img {
+					flex: none;
+					width: 88upx;;
+					height: 88upx;;
+					border-radius: $uni-border-radius-base;
+				}
+				
+				.message {
+					flex: none;
+					max-width: 480rpx;
+					
+				}
+				
+				.msg-text {
+					font-size: $uni-font-size-lg;
+					color: $uni-text-color;
+					line-height: 44rpx;
+					padding: 18rpx 34rpx;
+				}
+				
+				.msg-img {
+					border-radius: $uni-border-radius-base;
+					max-width: 400rpx;
+				}
+				
+				.voice {
+					width: 200rpx;
+					min-width: 110rpx;
+					max-width: 400rpx;
+					
+					.voice-img {
+						width: 20px;
+						height: 40rpx;
+						top: 2rpx;
+						// padding-top: -8rpx;
+					}
+					
+				}
+				// 陶 我想你
+				.msg-map {
+					background: #fff;
+					width: 464rpx;
+					height: 284rpx;
+					overflow: hidden;
+					
+					.map-name {
+						font-size: $uni-font-size-lg;
+						color: $uni-text-color;
+						line-height: 44rpx;
+						padding: 18rpx 24rpx 0 24rpx;
+						display: -webkit-box;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 1;
+						overflow: hidden;
+					}
+					
+					.map-address {
+						font-size: $uni-font-size-sm;
+						color: $uni-text-color-disable;
+						padding: 0rpx 24rpx;
+						display: -webkit-box;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 1;
+						overflow: hidden;
+					}
+					
+					// .map {
+					// 	padding-top: 8rpx;
+					// 	width: 464rpx;
+					// 	height: 190rpx;
+					// 	overflow: hidden;
+					// }
+					
+					.map-img {
+						width: 464rpx;
+						// padding-top: 8rpx;
+						height: 310rpx;
+						// top: -70rpx;
+					}
+				}
+				
+			}
+			.msg-left {
+				flex-direction: row;
+				.msg-text {
+					margin-left: 16rpx;
+					background-color: #fff;
+					border-radius: 0 20rpx 20rpx 20rpx;
+				}
+				
+				.msg-img {
+					padding-left: 16rpx;
+				}
+				
+				.msg-map {
+					margin-left: 16rpx;
+					border-radius: 0 20rpx 20rpx 20rpx;
+				}
+				
+				.voice {
+					text-align: right;
+					
+					.voice-img {
+						float: left;			
+					}
+					
+				}
+				
+			}
+			
+			.msg-right {
+				flex-direction: row-reverse;
+				.msg-text {
+					margin-right: 16rpx;
+					background-color: rgba(255, 228, 49, .8);
+					border-radius: 20rpx 0rpx 20rpx 20rpx;
+				}
+				
+				.msg-img {
+					padding-right: 16rpx;
+				}
+				
+				.msg-map {
+					margin-right: 16rpx;
+					border-radius: 20rpx 0rpx 20rpx 20rpx;
+				}
+				
+				.voice {
+					text-align: left;
+					
+					.voice-img {
+						float: right;
+						transform: rotate(180deg);					
+					}
+					
+				}
+				
+			}
+		}
+		
+	}
+	.displaynone {
+		display: none;
+	}
+</style>
diff --git a/pages/groupChat/chatingQZ.vue b/pages/groupChat/chatingQZ.vue
new file mode 100644
index 0000000..0d47c8f
--- /dev/null
+++ b/pages/groupChat/chatingQZ.vue
@@ -0,0 +1,647 @@
+<template>
+	<view class="content">
+	
+	<!-- 头部 -->
+	<view class="top-bar">
+		<view class="top-bar-left" @tap="backOne()">
+			<view class="back-img">
+				<image src="@/static/images/common/back.png" />
+			</view>
+		</view>
+		<view class="top-bar-center title">
+			<text>{{ recName }}</text>
+		</view>
+		<view class="top-bar-right search pice">
+			<view class="group-img">
+				<image :src=recAvatar
+							 mode=""/>
+			</view>
+		</view>
+	</view>
+	
+	<scroll-view scroll-y="true"
+							 class="chat"
+							 scroll-with-animation="isanimation"
+							 :scroll-into-view="scrollToView"
+							 @scrolltoupper="nextPage">
+		<view class="chat-main"
+					:style="{paddingBottom:inputh + 'px'}">
+			<view class="loading"
+						:class="{displaynone:isload}">
+				<image src="@/static/images/chatroom/load.png" 
+							 mode=""
+							 class="loading-img"
+							 :animation="animationData"/>
+			</view>
+			<view class="chat-ls" v-for="(item, index) in msgs"
+													  :key="index"
+														:id="'msg' + item.id">
+				<view class="chat-time" v-if="item.post_time != ''">{{ item.post_time | Msgdate }}</view>
+				
+				<view class="msg-m msg-left" v-if="item.sender_id != senId">
+					
+					<image :src= item.avatar 
+								 mode=""
+								 class="user-img" />
+					<view>
+					<view  class="sent_name">
+						{{item.real_name}}
+					</view>
+					<!-- text -->
+					<view class="message" v-if="item.message_type == 0">
+						<view class="msg-text">{{ item.post_message }}</view>
+					</view>
+					<!-- image -->
+					<view class="message" v-if="item.message_type == 1">
+						<image :src="item.post_message" 
+									 class="msg-img"
+									 mode="widthFix"
+									 @tap="previewImage(item.post_message)"/>
+					</view>
+					<!-- voice -->
+					<view class="message" v-if="item.message_type == 2">
+						<view class="msg-text voice"
+									:style="{width:item.post_message.time * 4 + 'px'}"
+									@tap="playVoice(item.post_message.voice)">
+							<image src="../../static/images/chatroom/sound.png" 
+										 mode=""
+										 class="voice-img"/>
+							{{ item.post_message.time }} "
+						</view>
+					</view>
+					<!-- location -->
+					<view class="message" v-if="item.message_type == 3">
+						<view class="msg-map"
+									@tap="openLocation(item.post_message)">
+							<view class="map-name">{{ item.post_message.name }}</view>
+							<view class="map-address">{{ item.post_message.address }}</view>
+							<image src="../../static/images/chatroom/map.jpg" 
+										 mode="aspectFit" 
+										 class="map-img"/>
+						</view>
+					</view>
+					</view>
+				</view>
+				
+				<view class="msg-m msg-right" v-if="item.sender_id == senId">
+					<image :src= item.avatar  
+								 mode=""
+								 class="user-img" />
+					<view class="message" v-if="item.message_type == 0">
+						<view class="msg-text">{{ item.post_message }}</view>
+					</view>
+					<view class="message" v-if="item.message_type == 1">
+						<image :src="item.post_message" 
+									 class="msg-img"
+									 mode="widthFix"
+									 @tap="previewImage(item.post_message)"/>
+					</view>
+					<!-- voice -->
+					<view class="message" v-if="item.message_type == 2">
+						<view class="msg-text voice"
+									:style="{width:item.post_message.time * 4 + 'px'}"
+									@tap="playVoice(item.post_message.voice)">
+							{{ item.post_message.time }} "
+							<image src="@/static/images/chatroom/sound.png"
+										 mode=""
+										 class="voice-img"/>
+						</view>
+					</view>
+					<!-- location -->
+					<view class="message" v-if="item.message_type == 3">
+						<view class="msg-map"
+									@tap="openLocation(item.post_message)">
+							<view class="map-name">{{ item.post_message.name }}</view>
+							<view class="map-address">{{ item.post_message.address }}</view>
+							<!-- <map class="map"
+									 :latitude="item.post_message.latitude"
+									 :longitude="item.post_message.longitude"
+									 :markers="covers(item.post_message)"/> -->
+							<image src="../../static/images/chatroom/map.jpg"
+										 mode="aspectFit" 
+										 class="map-img"/>
+						</view>
+					</view>
+				</view>
+				
+				
+			</view>
+			
+		</view>
+		<!-- <view class="padbt"></view> -->
+	</scroll-view>
+	<submit @inputs="inputs" 
+					@heights="heights"/>
+	</view>
+</template>
+
+<script>
+	import datas from  '@/debugdate/debugdate.js'
+	import filter from '@/config/filter.js'
+	import submit from '@/components/submit/submit.vue'
+	import WxStorage from "../../static/lib/wxStorage.js"
+	const innerAudioContext = uni.createInnerAudioContext()
+	
+	export default {
+		data() {
+			return {
+				msgs: [],
+				imgMsg: [],
+				oldTime: new Date(),
+				scrollToView: '',
+				inputh: '72',   
+				recipientId: null,//接收者id
+				recAvatar: null,//接收者头像
+				recName: null,//接收者姓名
+				senAvatar:null,//发送者头像
+				senId: null,//接收者id
+				getData: null,
+				animationData: {},            // 动画
+				nowpage: 0,                   // 页码
+				loading: '',                  // 滚动事件
+				isload: true,
+				isanimation: true,
+				begainloading: true
+			};
+		},
+		components:{
+			submit,
+		},
+		onLoad(option) {
+			this.recipientId = option.chatID;
+			this._getMsg(this.nowpage)
+			// this.nextPage()
+		},
+		methods:{
+			// 返回键
+			backOne() {
+				uni.navigateBack({
+					delta: 1
+				})
+			},
+			// 滚动顶部加载上一页
+			nextPage() {
+				// if(this.nowpage > 0 && this.begainloading) {
+				// 	// 出现loading icon
+				// 	this.isload = false
+				// 	this.begainloading = false
+					
+				// 	var animation = uni.createAnimation({
+				// 		duration: 1000,
+				// 		timingFunction: 'step-start'
+				// 	})
+					
+				// 	this.animation = animation
+					
+					
+				// 	let i = 1
+				// 	this.loading = setInterval(function() {
+				// 		animation.rotate(i * 30).step()
+				// 		this.animationData = animation.export()
+				// 		i++
+				// 		// 滑动加载数据
+				// 		if(i > 40) {
+				// 			this._getMsg(this.nowpage)
+				// 		}
+						
+				// 	}.bind(this), 100)
+				// }
+				
+				
+			},
+			// 获取聊天数据
+			_getMsg(page) {
+				
+				var that = this;
+				that.senId = WxStorage.get("ids");
+				uni.request({
+					url:"http://s16s652780.51mypc.cn/api/chatgroupc/selectList",
+					method:"post",
+					header: {
+						'content-type': 'application/x-www-form-urlencoded', 
+					},
+					data:{
+						gid: that.recipientId
+						//gid: "1"
+					},
+					success:(res)=> {
+						// recAvatar: null,//接收者头像
+						// senAvatar:null,//发送者头像
+						var resdata = res.data.data;
+						for (var i = 0; i < resdata.length; i++) {
+							if(resdata[i].avatar == null || resdata[i].avatar == ""){
+								resdata[i].avatar = "http://s16s652780.51mypc.cn/img/bg/img-logo.png";
+							}else{
+								resdata[i].avatar = resdata[i].avatar;
+							}
+							if(resdata[i].sender_id == that.senId){
+								that.senAvatar = resdata[i].avatar;
+							}
+							
+						}
+						let msg = res.data.data;
+						that.getData = msg;
+						// 页数加1
+						//let msg = datas.message()			
+						let maxpages = msg.length
+						if(msg.length > (page + 1) * 10) {
+							maxpages = (page + 1) * 10
+							that.nowpage++
+						}else {
+							// 数据获取完毕
+							that.nowpage = -1
+						}
+						// 数据分页加载 每十条为一页
+						for(var i = 0; i < msg.length; i++){
+							msg[i].imgUrl = '../../static/images/index/friend-list/'+msg[i].imgUrl
+							// 时间间隔
+							if(i < msg.length-1){
+								let t = filter.spaceTime(that.oldTime, msg[i].post_time)
+								if(t){
+									that.oldTime = t
+								}
+								msg[i].post_time = t
+							}
+							// 补充图片地址
+							if(msg[i].types == 1){
+								msg[i].message = '../../static/images/index/friend-list/'+msg[i].message
+								that.imgMsg.unshift(msg[i].message)
+							}
+							that.msgs.unshift(msg[i])
+						}
+						
+						that.$nextTick(() => {
+							that.isanimation = false
+							that.scrollToView = 'msg' + that.getData[0].id
+						})
+						// 数据加载完毕关闭动画,停止数据加载
+						clearInterval(this.loading)
+						// 关闭loading icon
+						this.isload = true
+						// 开启加载
+						this.begainloading = true
+						
+					}
+				})
+				
+			},
+			// 预览图片
+			previewImage(e) {
+				
+				let index = 0
+				for(var i =0; i < this.imgMsg.length; i++){
+					if(this.imgMsg[i] == e) {
+						index = i
+					}
+				}
+				uni.previewImage({
+					current: index,
+					urls: this.imgMsg,
+					longPressActions: {
+						itemList: ['发送给朋友', '保存图片', '收藏'],
+						success: function(data) {
+							console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
+						},
+						fail: function(err) {
+							console.log(err.errMsg);
+						}
+					}
+				});
+			},
+			// 音频播放
+			playVoice(e) {
+				console.log('ok')
+				innerAudioContext.src = e
+				innerAudioContext.play()
+			},
+			// 接收输入内容
+			inputs(e) {
+				var that = this;
+				this.isanimation = true
+				let len = this.msgs.length -1				
+				let nowTime = new Date();	
+				var sentTime = that.dateFormat("YYYY-mm-dd HH:MM:SS", nowTime);
+				let t = filter.spaceTime(this.oldTime, nowTime)
+				if(t){
+					this.oldTime = t
+				}
+				nowTime = t
+				let sendMsg = {
+					sender_id: that.senId,
+					post_message: e.message,
+					message_type: 0,
+					status: 0,
+					post_time: nowTime,
+					avatar:that.senAvatar
+				}
+				
+				uni.request({
+					url:"http://s16s652780.51mypc.cn/api/chatgroupc/submit",
+					method:"post",
+					data:{
+						senderId: that.senId,
+						postMessage: e.message,
+						messageType: 0,
+						status: 0,
+						postTime: sentTime,
+						gid:that.recipientId
+					},
+					success:(res)=> {
+					}
+				});
+				
+				this.msgs.push(sendMsg)
+				this.$nextTick(() => {
+					this.scrollToView = 'msg' + len
+				})
+				if(e.types == 1) {
+					this.imgMsg.push(e.message)
+				}
+			},
+			// 输入框高度
+			heights(e) {
+				this.inputh = e
+				this.goBottom()
+				// console.log('高度' + e)
+			},
+			// 滚动到底部
+			goBottom() {
+				this.isanimation = true
+				this.scrollToView = ''
+				this.$nextTick(() => {
+					let len = this.getData.length -1
+					this.scrollToView = 'msg' + this.getData[0].id
+				})
+			},
+			// 地图定位
+			covers(e) {
+				let map = [
+					{
+						latitude: e.latitude,
+						longitude: e.longitude,
+						iconPath: '../../static/images/chatroom/placeholder-r.png'
+					}
+				]
+				return (map)
+			},
+			// 导航
+			openLocation(e) {
+				uni.openLocation({
+					latitude: e.latitude,
+					longitude: e.longitude,
+					name: e.name,
+					address: e.address,
+					success: () => {
+						console.log('success')
+					}
+				})
+			},
+			//时间格式化
+			dateFormat(fmt, date) {
+			    let ret;
+			    const opt = {
+			        "Y+": date.getFullYear().toString(),        // 年
+			        "m+": (date.getMonth() + 1).toString(),     // 月
+			        "d+": date.getDate().toString(),            // 日
+			        "H+": date.getHours().toString(),           // 时
+			        "M+": date.getMinutes().toString(),         // 分
+			        "S+": date.getSeconds().toString()          // 秒
+			        // 有其他格式化字符需求可以继续添加,必须转化成字符串
+			    };
+			    for (let k in opt) {
+			        ret = new RegExp("(" + k + ")").exec(fmt);
+			        if (ret) {
+			            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
+			        };
+			    };
+			    return fmt;
+			}
+		},
+		filters:{
+			Msgdate(time) {
+			 return	filter.Msgdate(time)
+			}
+		}
+	}
+	
+</script>
+
+<style lang="scss">	
+	@import '../../static/scss/index.scss';
+	.padbt {
+		height: var(--status-bar-height);
+		width: 100%;
+	}
+	page {
+		height: 100%;
+	}
+	.content {
+		height: 100%;
+		background: rgba(244, 244, 244, 1);
+		// background: #2C405A;
+	}
+	
+	.top-bar {
+		background: rgba(244, 244, 244, .96);
+		// box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, .1);
+		border-bottom: 1px solid $uni-border-color;
+		
+		.group-img {
+			image{
+				position: absolute;
+				bottom: 10rpx;
+				right: $uni-spacing-col-base;
+				width: 68rpx;
+				height: 68rpx;
+				border-radius: 16rpx;
+				// justify-content: center;
+			}
+		}
+	}
+
+	.chat {
+		height: 100%;
+		
+		.chat-main {
+			padding-left: $uni-spacing-col-base;
+			padding-right: $uni-spacing-col-base;
+			padding-top: 100rpx;
+			// padding-bottom: 120rpx;
+			display: flex;
+			flex-direction: column;
+			
+			.loading {
+				text-align: center;
+				
+				.loading-img {
+					width: 60rpx;
+					height: 60rpx;
+				}
+			}
+		}
+		
+		.chat-ls {
+			
+			.chat-time {
+				font-size: $uni-font-size-base;
+				color: rgba(39, 40, 50, .6);
+				line-height: 34rpx;
+				padding: 20rpx 0;
+				text-align: center;
+			}
+			
+			.msg-m {
+				display: flex;
+				padding: 20rpx 0;
+				
+				.user-img {
+					flex: none;
+					width: 88upx;;
+					height: 88upx;;
+					border-radius: $uni-border-radius-base;
+				}
+				
+				.message {
+					flex: none;
+					max-width: 480rpx;
+					
+				}
+				
+				.msg-text {
+					font-size: $uni-font-size-lg;
+					color: $uni-text-color;
+					line-height: 44rpx;
+					padding: 18rpx 34rpx;
+				}
+				
+				.msg-img {
+					border-radius: $uni-border-radius-base;
+					max-width: 400rpx;
+				}
+				
+				.voice {
+					width: 200rpx;
+					min-width: 110rpx;
+					max-width: 400rpx;
+					
+					.voice-img {
+						width: 20px;
+						height: 40rpx;
+						top: 2rpx;
+						// padding-top: -8rpx;
+					}
+					
+				}
+				// 陶 我想你
+				.msg-map {
+					background: #fff;
+					width: 464rpx;
+					height: 284rpx;
+					overflow: hidden;
+					
+					.map-name {
+						font-size: $uni-font-size-lg;
+						color: $uni-text-color;
+						line-height: 44rpx;
+						padding: 18rpx 24rpx 0 24rpx;
+						display: -webkit-box;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 1;
+						overflow: hidden;
+					}
+					
+					.map-address {
+						font-size: $uni-font-size-sm;
+						color: $uni-text-color-disable;
+						padding: 0rpx 24rpx;
+						display: -webkit-box;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 1;
+						overflow: hidden;
+					}
+					
+					// .map {
+					// 	padding-top: 8rpx;
+					// 	width: 464rpx;
+					// 	height: 190rpx;
+					// 	overflow: hidden;
+					// }
+					
+					.map-img {
+						width: 464rpx;
+						// padding-top: 8rpx;
+						height: 310rpx;
+						// top: -70rpx;
+					}
+				}
+				
+			}
+			.msg-left {
+				flex-direction: row;
+				.msg-text {
+					margin-left: 16rpx;
+					background-color: #fff;
+					border-radius: 0 20rpx 20rpx 20rpx;
+				}
+				
+				.msg-img {
+					padding-left: 16rpx;
+				}
+				
+				.msg-map {
+					margin-left: 16rpx;
+					border-radius: 0 20rpx 20rpx 20rpx;
+				}
+				
+				.voice {
+					text-align: right;
+					
+					.voice-img {
+						float: left;			
+					}
+					
+				}
+				
+			}
+			
+			.msg-right {
+				flex-direction: row-reverse;
+				.msg-text {
+					margin-right: 16rpx;
+					background-color: rgba(255, 228, 49, .8);
+					border-radius: 20rpx 0rpx 20rpx 20rpx;
+				}
+				
+				.msg-img {
+					padding-right: 16rpx;
+				}
+				
+				.msg-map {
+					margin-right: 16rpx;
+					border-radius: 20rpx 0rpx 20rpx 20rpx;
+				}
+				
+				.voice {
+					text-align: left;
+					
+					.voice-img {
+						float: right;
+						transform: rotate(180deg);					
+					}
+					
+				}
+				
+			}
+		}
+		
+	}
+	.displaynone {
+		display: none;
+	}
+	
+	.sent_name{
+		    margin-left: 8px;
+		    font-size: 8px;
+		    padding-bottom: 5px;
+	}
+</style>
diff --git a/pages/groupChat/chatingcopy.vue b/pages/groupChat/chatingcopy.vue
new file mode 100644
index 0000000..96ed765
--- /dev/null
+++ b/pages/groupChat/chatingcopy.vue
@@ -0,0 +1,590 @@
+<template>
+	<view class="content">
+	
+	<!-- 头部 -->
+	<view class="top-bar">
+		<view class="top-bar-left" @tap="backOne()">
+			<view class="back-img">
+				<image src="@/static/images/common/back.png" />
+			</view>
+		</view>
+		<view class="top-bar-center title">
+			<text>水原希子kiko</text>
+		</view>
+		<view class="top-bar-right search pice">
+			<view class="group-img">
+				<image src="@/static/images/index/friend-list/kiko.jpg"
+							 mode=""/>
+			</view>
+		</view>
+	</view>
+	
+	<scroll-view scroll-y="true"
+							 class="chat"
+							 scroll-with-animation="isanimation"
+							 :scroll-into-view="scrollToView"
+							 @scrolltoupper="nextPage">
+		<view class="chat-main"
+					:style="{paddingBottom:inputh + 'px'}">
+			<view class="loading"
+						:class="{displaynone:isload}">
+				<image src="@/static/images/chatroom/load.png" 
+							 mode=""
+							 class="loading-img"
+							 :animation="animationData"/>
+			</view>
+			<view class="chat-ls" v-for="(item, index) in msgs"
+													  :key="index"
+														:id="'msg' + item.tip">
+				<view class="chat-time" v-if="item.time != ''">{{ item.time | Msgdate }}</view>
+				
+				<view class="msg-m msg-left" v-if="item.id != 1">
+					<image :src="item.imgUrl" 
+								 mode=""
+								 class="user-img" />
+					<!-- text -->
+					<view class="message" v-if="item.types == 0">
+						<view class="msg-text">{{ item.message }}</view>
+					</view>
+					<!-- image -->
+					<view class="message" v-if="item.types == 1">
+						<image :src="item.message" 
+									 class="msg-img"
+									 mode="widthFix"
+									 @tap="previewImage(item.message)"/>
+					</view>
+					<!-- voice -->
+					<view class="message" v-if="item.types == 2">
+						<view class="msg-text voice"
+									:style="{width:item.message.time * 4 + 'px'}"
+									@tap="playVoice(item.message.voice)">
+							<image src="../../static/images/chatroom/sound.png" 
+										 mode=""
+										 class="voice-img"/>
+							{{ item.message.time }} "
+						</view>
+					</view>
+					<!-- location -->
+					<view class="message" v-if="item.types == 3">
+						<view class="msg-map"
+									@tap="openLocation(item.message)">
+							<view class="map-name">{{ item.message.name }}</view>
+							<view class="map-address">{{ item.message.address }}</view>
+							<image src="../../static/images/chatroom/map.jpg" 
+										 mode="aspectFit" 
+										 class="map-img"/>
+						</view>
+					</view>
+					
+				</view>
+				
+				<view class="msg-m msg-right" v-if="item.id == 1">
+					<image :src="item.imgUrl" 
+								 mode=""
+								 class="user-img" />
+					<view class="message" v-if="item.types == 0">
+						<view class="msg-text">{{ item.message }}</view>
+					</view>
+					<view class="message" v-if="item.types == 1">
+						<image :src="item.message" 
+									 class="msg-img"
+									 mode="widthFix"
+									 @tap="previewImage(item.message)"/>
+					</view>
+					<!-- voice -->
+					<view class="message" v-if="item.types == 2">
+						<view class="msg-text voice"
+									:style="{width:item.message.time * 4 + 'px'}"
+									@tap="playVoice(item.message.voice)">
+							{{ item.message.time }} "
+							<image src="@/static/images/chatroom/sound.png"
+										 mode=""
+										 class="voice-img"/>
+						</view>
+					</view>
+					<!-- location -->
+					<view class="message" v-if="item.types == 3">
+						<view class="msg-map"
+									@tap="openLocation(item.message)">
+							<view class="map-name">{{ item.message.name }}</view>
+							<view class="map-address">{{ item.message.address }}</view>
+							<!-- <map class="map"
+									 :latitude="item.message.latitude"
+									 :longitude="item.message.longitude"
+									 :markers="covers(item.message)"/> -->
+							<image src="../../static/images/chatroom/map.jpg"
+										 mode="aspectFit" 
+										 class="map-img"/>
+						</view>
+					</view>
+				</view>
+				
+				
+			</view>
+			
+		</view>
+		<!-- <view class="padbt"></view> -->
+	</scroll-view>
+	<submit @inputs="inputs" 
+					@heights="heights"/>
+	</view>
+</template>
+
+<script>
+	import datas from  '@/debugdate/debugdate.js'
+	import filter from '@/config/filter.js'
+	import submit from '@/components/submit/submit.vue'
+	import WxStorage from "../../static/lib/wxStorage.js"
+	const innerAudioContext = uni.createInnerAudioContext()
+	
+	export default {
+		data() {
+			return {
+				msgs: [],
+				imgMsg: [],
+				oldTime: new Date(),
+				scrollToView: '',
+				inputh: '72',   
+				recipientId: null,//接收者id
+				recAvatar: null,//接收者头像
+				senAvatar:null,//发送者头像
+				animationData: {},            // 动画
+				nowpage: 0,                   // 页码
+				loading: '',                  // 滚动事件
+				isload: true,
+				isanimation: true,
+				begainloading: true
+			};
+		},
+		components:{
+			submit,
+		},
+		onLoad(option) {
+			this.recipientId = option.chatID;
+			this._getMsg(this.nowpage)
+			// this.nextPage()
+		},
+		methods:{
+			// 返回键
+			backOne() {
+				uni.navigateBack({
+					delta: 1
+				})
+			},
+			// 滚动顶部加载上一页
+			nextPage() {
+				if(this.nowpage > 0 && this.begainloading) {
+					// 出现loading icon
+					this.isload = false
+					this.begainloading = false
+					
+					var animation = uni.createAnimation({
+						duration: 1000,
+						timingFunction: 'step-start'
+					})
+					
+					this.animation = animation
+					
+					
+					let i = 1
+					this.loading = setInterval(function() {
+						animation.rotate(i * 30).step()
+						this.animationData = animation.export()
+						i++
+						// 滑动加载数据
+						if(i > 40) {
+							this._getMsg(this.nowpage)
+						}
+						
+					}.bind(this), 100)
+				}
+				
+				
+			},
+			// 获取聊天数据
+			_getMsg(page) {
+				
+				var that = this;
+				uni.request({
+					url:"http://s16s652780.51mypc.cn/api/chat-records/getSingleMessagePage",
+					method:"get",
+					data:{
+						senderId: WxStorage.get("ids"),
+						recipientId: that.recipientId
+					},
+					success:(res)=> {
+						// recAvatar: null,//接收者头像
+						// senAvatar:null,//发送者头像
+						var resdata = res.data.data.user;
+						for (var i = 0; i < resdata.length; i++) {
+							if(resdata[i].avatar == null || resdata[i].avatar == ""){
+								resdata[i].avatar = "http://s16s652780.51mypc.cn/img/bg/img-logo.png";
+							}
+							
+							if(resdata[i].senderId == WxStorage.get("ids")){
+								that.senAvatar = resdata[i].avatar;
+							}else{
+								that.recAvatar = resdata[i].avatar;
+							}
+						}
+					}
+				})
+				//let msg = res.data.data.chatRecordsIPage.records
+				// 页数加1
+				let msg = datas.message()			
+				let maxpages = msg.length
+				debugger
+				if(msg.length > (page + 1) * 10) {
+					maxpages = (page + 1) * 10
+					this.nowpage++
+				}else {
+					// 数据获取完毕
+					this.nowpage = -1
+				}
+				
+				// 数据分页加载 每十条为一页
+				for(var i = page * 10; i < maxpages; i++){
+					msg[i].imgUrl = '../../static/images/index/friend-list/'+msg[i].imgUrl
+					// 时间间隔
+					if(i < msg.length-1){
+						let t = filter.spaceTime(this.oldTime, msg[i].time)
+						if(t){
+							this.oldTime = t
+						}
+						msg[i].time = t
+					}
+					// 补充图片地址
+					if(msg[i].types == 1){
+						msg[i].message = '../../static/images/index/friend-list/'+msg[i].message
+						this.imgMsg.unshift(msg[i].message)
+					}
+					this.msgs.unshift(msg[i])
+				}
+				
+				this.$nextTick(() => {
+					this.isanimation = false
+					this.scrollToView = 'msg' + this.msgs[maxpages - page * 10 - 1].tip
+				})
+				// 数据加载完毕关闭动画,停止数据加载
+				clearInterval(this.loading)
+				// 关闭loading icon
+				this.isload = true
+				// 开启加载
+				this.begainloading = true
+			},
+			// 预览图片
+			previewImage(e) {
+				
+				let index = 0
+				for(var i =0; i < this.imgMsg.length; i++){
+					if(this.imgMsg[i] == e) {
+						index = i
+					}
+				}
+				uni.previewImage({
+					current: index,
+					urls: this.imgMsg,
+					longPressActions: {
+						itemList: ['发送给朋友', '保存图片', '收藏'],
+						success: function(data) {
+							console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
+						},
+						fail: function(err) {
+							console.log(err.errMsg);
+						}
+					}
+				});
+			},
+			// 音频播放
+			playVoice(e) {
+				console.log('ok')
+				innerAudioContext.src = e
+				innerAudioContext.play()
+			},
+			// 接收输入内容
+			inputs(e) {
+				this.isanimation = true
+				let len = this.msgs.length -1				
+				let nowTime = new Date()				
+				let t = filter.spaceTime(this.oldTime, nowTime)
+				if(t){
+					this.oldTime = t
+				}
+				nowTime = t
+				let sendMsg = {
+					id: 1,
+					imgUrl: '../../static/images/index/friend-list/me.jpg',
+					message: e.message,
+					types: e.types,
+					time: nowTime,
+					tip: len
+				}
+				this.msgs.push(sendMsg)
+				this.$nextTick(() => {
+					this.scrollToView = 'msg' + len
+				})
+				if(e.types == 1) {
+					this.imgMsg.push(e.message)
+				}
+			},
+			// 输入框高度
+			heights(e) {
+				this.inputh = e
+				this.goBottom()
+				// console.log('高度' + e)
+			},
+			// 滚动到底部
+			goBottom() {
+				this.isanimation = true
+				this.scrollToView = ''
+				this.$nextTick(() => {
+					let len = this.msgs.length -1
+					this.scrollToView = 'msg' + this.msgs[len].tip
+				})
+			},
+			// 地图定位
+			covers(e) {
+				let map = [
+					{
+						latitude: e.latitude,
+						longitude: e.longitude,
+						iconPath: '../../static/images/chatroom/placeholder-r.png'
+					}
+				]
+				return (map)
+			},
+			// 导航
+			openLocation(e) {
+				uni.openLocation({
+					latitude: e.latitude,
+					longitude: e.longitude,
+					name: e.name,
+					address: e.address,
+					success: () => {
+						console.log('success')
+					}
+				})
+			},
+		},
+		filters:{
+			Msgdate(time) {
+			 return	filter.Msgdate(time)
+			}
+		}
+	}
+	
+</script>
+
+<style lang="scss">	
+	@import '../../static/scss/index.scss';
+	.padbt {
+		height: var(--status-bar-height);
+		width: 100%;
+	}
+	page {
+		height: 100%;
+	}
+	.content {
+		height: 100%;
+		background: rgba(244, 244, 244, 1);
+		// background: #2C405A;
+	}
+	
+	.top-bar {
+		background: rgba(244, 244, 244, .96);
+		// box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, .1);
+		border-bottom: 1px solid $uni-border-color;
+		
+		.group-img {
+			image{
+				position: absolute;
+				bottom: 10rpx;
+				right: $uni-spacing-col-base;
+				width: 68rpx;
+				height: 68rpx;
+				border-radius: 16rpx;
+				// justify-content: center;
+			}
+		}
+	}
+
+	.chat {
+		height: 100%;
+		
+		.chat-main {
+			padding-left: $uni-spacing-col-base;
+			padding-right: $uni-spacing-col-base;
+			padding-top: 100rpx;
+			// padding-bottom: 120rpx;
+			display: flex;
+			flex-direction: column;
+			
+			.loading {
+				text-align: center;
+				
+				.loading-img {
+					width: 60rpx;
+					height: 60rpx;
+				}
+			}
+		}
+		
+		.chat-ls {
+			
+			.chat-time {
+				font-size: $uni-font-size-base;
+				color: rgba(39, 40, 50, .6);
+				line-height: 34rpx;
+				padding: 20rpx 0;
+				text-align: center;
+			}
+			
+			.msg-m {
+				display: flex;
+				padding: 20rpx 0;
+				
+				.user-img {
+					flex: none;
+					width: 88upx;;
+					height: 88upx;;
+					border-radius: $uni-border-radius-base;
+				}
+				
+				.message {
+					flex: none;
+					max-width: 480rpx;
+					
+				}
+				
+				.msg-text {
+					font-size: $uni-font-size-lg;
+					color: $uni-text-color;
+					line-height: 44rpx;
+					padding: 18rpx 34rpx;
+				}
+				
+				.msg-img {
+					border-radius: $uni-border-radius-base;
+					max-width: 400rpx;
+				}
+				
+				.voice {
+					width: 200rpx;
+					min-width: 110rpx;
+					max-width: 400rpx;
+					
+					.voice-img {
+						width: 20px;
+						height: 40rpx;
+						top: 2rpx;
+						// padding-top: -8rpx;
+					}
+					
+				}
+				// 陶 我想你
+				.msg-map {
+					background: #fff;
+					width: 464rpx;
+					height: 284rpx;
+					overflow: hidden;
+					
+					.map-name {
+						font-size: $uni-font-size-lg;
+						color: $uni-text-color;
+						line-height: 44rpx;
+						padding: 18rpx 24rpx 0 24rpx;
+						display: -webkit-box;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 1;
+						overflow: hidden;
+					}
+					
+					.map-address {
+						font-size: $uni-font-size-sm;
+						color: $uni-text-color-disable;
+						padding: 0rpx 24rpx;
+						display: -webkit-box;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 1;
+						overflow: hidden;
+					}
+					
+					// .map {
+					// 	padding-top: 8rpx;
+					// 	width: 464rpx;
+					// 	height: 190rpx;
+					// 	overflow: hidden;
+					// }
+					
+					.map-img {
+						width: 464rpx;
+						// padding-top: 8rpx;
+						height: 310rpx;
+						// top: -70rpx;
+					}
+				}
+				
+			}
+			.msg-left {
+				flex-direction: row;
+				.msg-text {
+					margin-left: 16rpx;
+					background-color: #fff;
+					border-radius: 0 20rpx 20rpx 20rpx;
+				}
+				
+				.msg-img {
+					padding-left: 16rpx;
+				}
+				
+				.msg-map {
+					margin-left: 16rpx;
+					border-radius: 0 20rpx 20rpx 20rpx;
+				}
+				
+				.voice {
+					text-align: right;
+					
+					.voice-img {
+						float: left;			
+					}
+					
+				}
+				
+			}
+			
+			.msg-right {
+				flex-direction: row-reverse;
+				.msg-text {
+					margin-right: 16rpx;
+					background-color: rgba(255, 228, 49, .8);
+					border-radius: 20rpx 0rpx 20rpx 20rpx;
+				}
+				
+				.msg-img {
+					padding-right: 16rpx;
+				}
+				
+				.msg-map {
+					margin-right: 16rpx;
+					border-radius: 20rpx 0rpx 20rpx 20rpx;
+				}
+				
+				.voice {
+					text-align: left;
+					
+					.voice-img {
+						float: right;
+						transform: rotate(180deg);					
+					}
+					
+				}
+				
+			}
+		}
+		
+	}
+	.displaynone {
+		display: none;
+	}
+</style>
diff --git a/pages/groupChat/groupChat.vue b/pages/groupChat/groupChat.vue
new file mode 100644
index 0000000..af78597
--- /dev/null
+++ b/pages/groupChat/groupChat.vue
@@ -0,0 +1,312 @@
+<!-- 工作台 -->
+<template>
+	<view class="work">
+		<!-- 自定义顶部导航栏 -->
+		<!-- <navBarTop :title="'聊天室'"></navBarTop> -->
+		<view class="tab">
+			<u-tabs :list="list" :is-scroll="false" :current="current" active-color="#14B9C8" inactive-color="#595959"
+				height="100" @change="change"></u-tabs>
+		</view>
+		<swiper id="swiperBox" :style="{ height: swiperHeight + 'px' }" :current="current" @change="tabsChange">
+			<swiper-item class="swiper-item" v-for="(item, indexs) in list" :key="indexs">
+				<view v-if="indexs == 0" class="main">
+					<div>
+						<div class="m-main">
+							<!-- <view class="inTitle">{{Task}}</view> -->
+							<view class="inTmain">
+								<contacts v-for="(item,index) in dataListP" :key="index" :Pdata="item" :fromW="indexs"
+									@refreshTask="refreshTask"></contacts>
+							</view>
+						</div>
+					</div>
+				</view>
+				<view v-if="indexs == 1" class="main">
+					<div>
+						<div class="m-main">
+							<!-- <view class="inTitle">{{Task}}</view> -->
+							<view class="inTmain">
+								<contacts v-for="(item,index) in dataListQZ" :key="index" :Pdata="item" :fromW="indexs"
+									@refreshTask="refreshTask"></contacts>
+							</view>
+						</div>
+					</div>
+				</view>
+				<view v-if="indexs == 2" class="main">
+					<div>
+						<div class="m-main">
+							<!-- <view class="inTitle">{{Task}}</view> -->
+							<view class="inTmain">
+								<contacts v-for="(item,index) in dataListTXL" :key="index" :Pdata="item" :fromW="indexs"
+									@refreshTask="refreshTask"></contacts>
+							</view>
+						</div>
+					</div>
+				</view>
+			</swiper-item>
+		</swiper>
+		
+	</view>
+</template>
+
+<script>
+	import WxStorage from "../../static/lib/wxStorage.js"
+	import axios from '../../static/lib/axios.js'
+	import contacts from '../../components/contacts/contacts.vue'
+	import navBarTop from '../../components/nav-bar-top/nav-bar-top.vue';
+	export default{
+		components: {
+			navBarTop,contacts
+		},
+		data() {
+			return {
+				list: [{
+						name: '正在聊天'
+					},
+					{
+						name: '群组'
+					},
+					{
+						name: '通讯录'
+					}
+				],
+				swiperHeight: 0,
+				zhanwei: '', //因为小程序中底部和顶部栏占位置,uniapp中不占位置
+				current: 0,
+				show: true,
+				dataListP: [],
+				dataListQZ: [],
+				dataListTXL:[],
+				fromW: '',
+				onTop: false, //是否吸顶
+				rect: '', //页面滚动距离
+				menutop: '', //组件距离顶部的距离
+				titleTop: '', //
+				hello: false,
+				userName: '',
+			}
+		},
+		activated(){
+		      this.beginObj();
+		      this.getdataList(0);
+		    },
+			onReady() {
+				let that = this;
+				uni.getSystemInfo({
+					success(e) {
+						console.log(e);
+						let {
+							windowWidth,
+							windowHeight,
+							safeArea
+						} = e;
+						const query = uni.createSelectorQuery().in(that);
+						query
+							.select('#swiperBox')
+							.boundingClientRect(data => {
+								that.swiperHeight = safeArea.bottom - data.top;
+							})
+							.exec();
+					}
+				});
+			},
+		methods: {
+			change(index) {
+				this.current = index;
+			},
+			tabsChange(e) {
+				this.current = e.detail.current;
+				this.getdataList();
+			},
+			beginObj() {
+				this.titleTop = '2.6rem';
+				this.zhanwei = '3rem';
+				//#ifdef MP-WEIXIN
+				console.log('uni-app小程序中')
+				this.titleTop = '0';
+				this.zhanwei = '0';
+				//#endif
+			},
+			onClick(e) {
+				console.log(e, 777878)
+			},
+			getdataList() {
+				var that = this;
+				if(this.current == 0){
+					uni.request({
+						url:"http://s16s652780.51mypc.cn/api/chat-records/getChatListPage",
+						method:"get",
+						data:{
+							senderId: WxStorage.get("ids")
+						},
+						success:(res)=> {
+							var resdata = res.data.data;
+							for (var i = 0; i < resdata.length; i++) {
+								if(resdata[i].avatar == null || resdata[i].avatar == ""){
+									resdata[i].avatar = "http://s16s652780.51mypc.cn/img/bg/img-logo.png";
+								}
+							}
+							that.dataListP = resdata;
+							that.swiperHeight = resdata.length * 85;
+						}
+					});
+				}else if(this.current == 1){
+					uni.request({
+						url:"http://s16s652780.51mypc.cn/api/chatgroup/selectList",
+						method:"POST",
+						data:{
+							senderId: WxStorage.get("ids")
+						},
+						success:(res)=> {
+							var resdata = res.data.data;	
+							for (var i = 0; i < resdata.length; i++) {
+								if(resdata[i].avatar == null || resdata[i].avatar == ""){
+									resdata[i].avatar = "http://s16s652780.51mypc.cn/img/bg/qunz.png";
+								}
+							}
+							that.dataListQZ = resdata;
+							that.swiperHeight = resdata.length * 85;
+						}
+					})
+				}else if(this.current == 2){
+					uni.request({
+						url:"http://s16s652780.51mypc.cn/api//blade-user/pages?current=1&size=9999",
+						method:"get",
+						data:{
+							senderId: WxStorage.get("ids")
+						},
+						success:(res)=> {
+							var resdata = res.data.data.records;
+							for (var i = 0; i < resdata.length; i++) {
+					
+								if(resdata[i].avatar == null || resdata[i].avatar == ""){
+									resdata[i].avatar = "http://s16s652780.51mypc.cn/img/bg/img-logo.png";
+								}
+							}
+							that.dataListTXL = resdata;
+							that.swiperHeight = resdata.length * 85;
+						}
+					})
+				}
+			},
+			refreshTask() {
+				this.getdataList(1);
+			},
+			
+		},
+		mounted() {
+			this.beginObj();
+			this.getdataList(0);
+			
+		},
+		onPageScroll(e) {
+			// console.log(e.scrollTop, 'pingmu')
+			this.rect = e.scrollTop
+		},
+		watch: {
+			rect() {
+				if (this.rect >= this.menutop) {
+					this.onTop = true
+				} else {
+					this.onTop = false
+				}
+			}
+		},
+		onLoad: function(options) {
+			this.userName = options.login;
+			if(options.txlType == 2){
+				this.current = 2;
+			}
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+	.work {
+		width: 100%;
+		height: 100%;
+		padding: 0rem 2.5% 3rem 2.5%;
+		box-sizing: border-box;
+
+		.hello {
+			position: absolute;
+			top: 0;
+			left: 25%;
+			width: 50%;
+			height: 2rem;
+			border-radius: 20rem;
+			color: #fff;
+			background-color: rgba($color: #000000, $alpha: 0.5);
+			display: flex;
+			align-items: center;
+			justify-content: center;
+		}
+
+		.center {
+			padding-top: 0.5rem;
+			display: flex;
+			align-items: center;
+			justify-content: space-around;
+
+			.left,
+			.right {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				flex-direction: column;
+
+				image {
+					width: 4rem;
+					height: 4rem;
+				}
+			}
+		}
+
+		.main {
+			margin-top: 0.625rem;
+			
+			.m-title {
+				width: 100%;
+				height: 2rem;
+				display: flex;
+				align-items: center;
+				justify-content: space-around;
+				padding-top: 0.8rem;
+				padding-bottom: 0.5rem;
+				// border: 1px solid #B3E19D;
+				box-sizing: border-box;
+
+				.m-t {
+					padding-bottom: 0.5rem;
+					box-sizing: border-box;
+				}
+			}
+
+			.m-titletop {
+				width: 95%;
+				height: 2.2rem;
+				display: flex;
+				align-items: center;
+				justify-content: space-around;
+				padding-top: 0.8rem;
+				padding-bottom: 0.5rem;
+				// border: 1px solid #B3E19D;
+				box-sizing: border-box;
+				position: fixed;
+				background-color: #fff;
+				z-index: 3;
+				border-bottom: 1px solid rgba($color: #000000, $alpha: 0.3);
+
+				.m-t {
+					padding-bottom: 0.5rem;
+					box-sizing: border-box;
+				}
+				
+			}
+
+			.m-main {
+				box-sizing: border-box;
+			}
+		}
+	}
+</style>
diff --git a/pages/home/home.vue b/pages/home/home.vue
index 7aa0a74..4ced1bb 100644
--- a/pages/home/home.vue
+++ b/pages/home/home.vue
@@ -37,7 +37,7 @@
 		<!-- 头部 end -->
 
 		<!-- 头部按钮 start -->
-		<view class="nav">
+		<!-- <view class="nav">
 			<u-grid :col="5" :border="false">
 				<u-grid-item bg-color="transparent" v-for="(item, index) in navButton" :key="index">
 					<navigator :url="item.url" hover-class="none" class="nav-item">
@@ -46,11 +46,11 @@
 					</navigator>
 				</u-grid-item>
 			</u-grid>
-		</view>
+		</view> -->
 		<!-- 头部按钮 end -->
 
 		<!-- 公告 start -->
-		<view class="notice-box">
+		<!-- <view class="notice-box">
 			<image src="/static/images/home/notice.png" class="img" mode="widthFix"></image>
 			<view class="notice-info">
 				<navigator hover-class="none" class="notice-cell" v-for="(item, index) in noticeList" :key="index">
@@ -59,13 +59,13 @@
 					<u-icon name="arrow-right" size="12" color="#C9C9C9"></u-icon>
 				</navigator>
 			</view>
-		</view>
+		</view> -->
 		<!-- 公告 end -->
 
 		<!-- 服务按钮 start -->
 		<view class="service-box">
 			<u-grid :col="4" :border="false">
-				<u-grid-item bg-color="transparent" v-for="(item, index) in serviceButton" :key="index">
+				<u-grid-item bg-color="transparent" v-for="(item, index) in serviceButton" :key="index" @click="goBusinessPage(item.url,index)">
 					<navigator url="" hover-class="none" class="service-item">
 						<image :src="item.img" mode="widthFix" class="img"></image>
 						<view class="name">{{ item.name }}</view>
@@ -84,7 +84,7 @@
 		<!-- 新闻模块 start -->
 		<view class="news">
 			<navigator hover-class="none" url="/pages/news/list" class="cell">
-				<view class="ctitle">新闻</view>
+				<view class="ctitle">通知公告</view>
 				<view class="more">
 					更多
 					<u-icon name="arrow-right" color="#A6ABB5" size="16"></u-icon>
@@ -96,7 +96,7 @@
 					v-for="(item, index) in newsList" :key="index">
 					<view class="left">
 						<view class="info">
-							[中国空间站] 神舟十二号载人发射任务取得圆满成功
+							[火灾防范] 严禁在建筑内的共用走道、楼梯间、安全出口处等公共区域停放电动车或者为电动车充电。
 						</view>
 						<view class="date">
 							<image src="/static/images/home/date.png" class="icon" mode=""></image>
@@ -178,6 +178,12 @@
 				console.log(this.pickerArr[e.detail.value].name);
 				this.position = this.pickerArr[e.detail.value].name;
 			},
+			//页面跳转
+			goBusinessPage(url,index){
+				uni.navigateTo({
+					url:url
+				})
+			},
 			handleFocus() {
 				this.focus = !this.focus;
 			},
diff --git a/pages/login/login-account.vue b/pages/login/login-account.vue
index d620843..d70a909 100644
--- a/pages/login/login-account.vue
+++ b/pages/login/login-account.vue
@@ -138,8 +138,9 @@
 				this.judgeMsg();
 			},
 			OURpass() {
+				debugger
 				if (this.OURpass == true) {
-					this.passwords = '******';
+					// this.passwords = '******';
 					uni.hideNavigationBarLoading();
 					uni.reLaunch({
 						url: '../home/home'
diff --git a/pages/user/center.vue b/pages/user/center.vue
index fe8371b..28eceee 100644
--- a/pages/user/center.vue
+++ b/pages/user/center.vue
@@ -3,7 +3,8 @@
 		<view class="head">
 			<u-navbar :is-fixed="false" :border-bottom="false" :is-back="false" title="个人中心"
 				:background="{ background: 'transprent' }" title-color="#FFFFFF">
-				<view @click="$u.func.route('/pages/system/setting')" slot="right">
+				<!-- <view @click="$u.func.route('/pages/system/setting')" slot="right"> -->
+				<view slot="right">
 					<image src="/static/images/user/setting.png" class="set-icon" mode="widthFix"></image>
 				</view>
 			</u-navbar>
@@ -12,11 +13,12 @@
 			<!-- 用户信息 -->
 			<view class="user-box">
 				<view class="left">
-					<image :src="userInfo.avatar" class="avatar" mode=""></image>
-					<view class="user-name">{{ userInfo.nick_name }}</view>
-					<view class="tag">{{ userInfo.tenant_id }}</view>
+					<image :src="useimg" class="avatar" mode=""></image>
+					<view class="user-name">{{ name }}</view>
+					<view class="tag">{{ tenantName }}</view>
 				</view>
-				<view @click="$u.func.route('/pages/user/profile')" class="edit-btn">编辑资料</view>
+				<!-- <view @click="$u.func.route('/pages/user/profile')" class="edit-btn">编辑资料</view> -->
+				<view class="edit-btn">编辑资料</view>
 			</view>
 			<!-- 操作按钮 -->
 			<view class="nav">
@@ -39,7 +41,7 @@
 			</view>
 		</view>
 		<!-- 功能列表 -->
-		<view class="cell-box">
+		<!-- <view class="cell-box">
 			<u-cell-group :border="false">
 				<u-cell-item title="我的评价">
 					<image slot="icon" src="/static/images/user/c1.png" class="icon" mode=""></image>
@@ -51,16 +53,16 @@
 					<image slot="icon" src="/static/images/user/c3.png" class="icon" mode=""></image>
 				</u-cell-item>
 			</u-cell-group>
-		</view>
+		</view> -->
 		<view class="cell-box">
 			<u-cell-group :border="false">
-				<u-cell-item title="推荐">
+				<!-- <u-cell-item title="推荐">
 					<image slot="icon" src="/static/images/user/c4.png" class="icon" mode=""></image>
-				</u-cell-item>
+				</u-cell-item> -->
 				<u-cell-item title="评分">
 					<image slot="icon" src="/static/images/user/c5.png" class="icon" mode=""></image>
 				</u-cell-item>
-				<u-cell-item title="反馈">
+				<u-cell-item title="隐私">
 					<image slot="icon" src="/static/images/user/c6.png" class="icon" mode=""></image>
 				</u-cell-item>
 				<u-cell-item title="关于" :border-bottom="false">
@@ -68,10 +70,11 @@
 				</u-cell-item>
 			</u-cell-group>
 		</view>
+		<u-action-sheet :list="list" @click="outInClick" v-model="show"></u-action-sheet>
 		<view class="cell-box">
 			<u-cell-group :border="false">
-				<u-cell-item title="设置" :border-bottom="false" @click="$u.func.route('/pages/system/setting')">
-					<image slot="icon" src="/static/images/user/c8.png" class="icon" mode=""></image>
+				<u-cell-item title="登出" :border-bottom="false" @click="show = true">
+					<image slot="icon" src="/static/images/user/dengchu.png" class="icon" mode=""></image>
 				</u-cell-item>
 			</u-cell-group>
 		</view>
@@ -82,12 +85,49 @@
 	export default {
 		data() {
 			return {
-				
+				list: [ {
+					text: '登出'
+				}],
+				show: false,
+				name:'',
+				id:'',
+				tenantName:''
 			};
 		},
 		methods: {
-
-		}
+			outInClick(index){
+				if(index == 0){
+					this.$store.commit('loginReset'); //重置登录
+					uni.redirectTo({ //关闭并打开
+						url: '../login/login-account',
+						animationType: 'slide-in-top',
+						animationDuration: 20000
+					});
+				}
+			},
+			//登录成功后,获取个人信息
+			getOneselfInFo(){
+				var that = this;
+				//保安信息查询
+				uni.request({
+					url:'http://s16s652780.51mypc.cn/api/blade-user/details?id='+this.$store.state.puserID,
+					method:'POST',
+					success(resdata) {
+						that.name = resdata.data.data.realName;
+						that.id = resdata.data.data.id;
+						that.tenantName = resdata.data.data.tenantName;
+					}
+				})
+			},
+		},onLoad() {
+			if(this.$store.state.puserID){
+				//获取个人信息
+				this.getOneselfInFo();
+			}
+			if(this.$store.state.avatar!=null && this.$store.state.avatar!=''){
+				this.useimg = this.$store.state.avatar;
+			}
+		},
 	};
 </script>
 
diff --git a/static/images/home/handle.png b/static/images/home/handle.png
new file mode 100644
index 0000000..80ce56a
--- /dev/null
+++ b/static/images/home/handle.png
Binary files differ
diff --git a/static/images/home/handle001.png b/static/images/home/handle001.png
new file mode 100644
index 0000000..5170b50
--- /dev/null
+++ b/static/images/home/handle001.png
Binary files differ
diff --git a/static/images/home/handle002.png b/static/images/home/handle002.png
new file mode 100644
index 0000000..4bee926
--- /dev/null
+++ b/static/images/home/handle002.png
Binary files differ
diff --git a/static/images/home/homeTop1.png b/static/images/home/homeTop1.png
new file mode 100644
index 0000000..32eb4b9
--- /dev/null
+++ b/static/images/home/homeTop1.png
Binary files differ
diff --git a/static/images/home/homeTop2.png b/static/images/home/homeTop2.png
new file mode 100644
index 0000000..b73a74f
--- /dev/null
+++ b/static/images/home/homeTop2.png
Binary files differ
diff --git a/static/images/home/homeTop3.png b/static/images/home/homeTop3.png
new file mode 100644
index 0000000..f9dc1cf
--- /dev/null
+++ b/static/images/home/homeTop3.png
Binary files differ
diff --git a/static/images/home/look.png b/static/images/home/look.png
new file mode 100644
index 0000000..610c8a6
--- /dev/null
+++ b/static/images/home/look.png
Binary files differ
diff --git a/static/images/home/more.png b/static/images/home/more.png
new file mode 100644
index 0000000..0a9a229
--- /dev/null
+++ b/static/images/home/more.png
Binary files differ
diff --git a/static/images/home/partrol.png b/static/images/home/partrol.png
new file mode 100644
index 0000000..cdffdca
--- /dev/null
+++ b/static/images/home/partrol.png
Binary files differ
diff --git a/static/images/home/report.png b/static/images/home/report.png
new file mode 100644
index 0000000..1c3637b
--- /dev/null
+++ b/static/images/home/report.png
Binary files differ
diff --git a/static/images/home/report001.png b/static/images/home/report001.png
new file mode 100644
index 0000000..6378116
--- /dev/null
+++ b/static/images/home/report001.png
Binary files differ
diff --git a/static/images/home/report002.png b/static/images/home/report002.png
new file mode 100644
index 0000000..909f76e
--- /dev/null
+++ b/static/images/home/report002.png
Binary files differ
diff --git a/static/images/home/say.png b/static/images/home/say.png
new file mode 100644
index 0000000..84672b6
--- /dev/null
+++ b/static/images/home/say.png
Binary files differ
diff --git a/static/images/home/search003.png b/static/images/home/search003.png
new file mode 100644
index 0000000..1a7e884
--- /dev/null
+++ b/static/images/home/search003.png
Binary files differ
diff --git a/static/images/home/search004.png b/static/images/home/search004.png
new file mode 100644
index 0000000..97e25bd
--- /dev/null
+++ b/static/images/home/search004.png
Binary files differ
diff --git a/static/images/home/search02.png b/static/images/home/search02.png
new file mode 100644
index 0000000..cf47d06
--- /dev/null
+++ b/static/images/home/search02.png
Binary files differ
diff --git a/static/images/home/searchs.png b/static/images/home/searchs.png
new file mode 100644
index 0000000..a2823a6
--- /dev/null
+++ b/static/images/home/searchs.png
Binary files differ
diff --git a/static/images/user/dengchu.png b/static/images/user/dengchu.png
new file mode 100644
index 0000000..43c3592
--- /dev/null
+++ b/static/images/user/dengchu.png
Binary files differ
diff --git a/store/actions.js b/store/actions.js
index c144777..81a6d7c 100644
--- a/store/actions.js
+++ b/store/actions.js
@@ -16,7 +16,7 @@
 				},
 			],
 			pasw = md5(data.pass),
-			url = 'http://s16s652780.51mypc.cn/api/blade-auth/oauth/token?tenantId=963841&username=' + data.name +
+			url = 'http://192.168.0.105:80/api/blade-auth/oauth/token?tenantId=963841&username=' + data.name +
 			' &password=' + pasw + '&grant_type=password&scope=all&type=account';
 		// url ='http://192.168.0.109:82/blade-auth/oauth/token';
 		// url ='http://192.168.0.109:82/blade-auth/oauth/token?tenantId=000000&username=admin&password=93369e86dc5fa854a0eaf75558c4039d&grant_type=password';
diff --git a/store/index.js b/store/index.js
index 74276f9..293cae2 100644
--- a/store/index.js
+++ b/store/index.js
@@ -48,7 +48,7 @@
 			useName: '过客 ',
 		},
 		logPath: '',
-		piAPI: 'http://s16s652780.51mypc.cn/api/',
+		piAPI: 'http://192.168.0.104',
 		// piAPI: 'http://localhost:82/',
 		puserName: '',
 		puserID: '',

--
Gitblit v1.9.3