2 次代碼提交 f66e6b0bf8 ... 5c4233319a

作者 SHA1 備註 提交日期
  denghaoyue 5c4233319a 冲突解决 6 年之前
  denghaoyue 6d5dff84d4 1.输入框高度自适应2.输入消息时,历史信息能滚动完全 6 年之前
共有 2 個文件被更改,包括 70 次插入17 次删除
  1. 1 1
      chat/config/index.js
  2. 69 16
      chat/src/components/index.vue

+ 1 - 1
chat/config/index.js

@@ -21,7 +21,7 @@ module.exports = {
     // },
 
     // Various Dev Server settings
-    host: 'localhost', // can be overwritten by process.env.HOST  localhost 192.168.2.195
+    host: '192.168.2.190', // can be overwritten by process.env.HOST  localhost 192.168.2.195
     port: 8006, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
     autoOpenBrowser: false,
     errorOverlay: true,

+ 69 - 16
chat/src/components/index.vue

@@ -27,7 +27,7 @@
 					<img class="icon-msg" @click="knowledge = true,flag = false" src="@/assets/leaveSwitch.png" v-if="!isExit">
 				</div>
 			</div>
-			<div class="main" id="main">
+			<div class="main" id="main" @scroll="scrollMain">
 
 				<!-- ********************************************************** -->
 				<!-- 机器人聊天板块 -->
@@ -359,7 +359,11 @@
 			<!-- 底部输入框 -->
 			<div class="footer row wrap" id='input_box'>
 				<!-- @keydown="inputNumFun()" -->
+<<<<<<< HEAD
+				<textarea
+=======
 				 <!-- <textarea  
+>>>>>>> f66e6b0bf8455a9b957b56df1da1b52ef778bc8f
 						id="textarea"
 						v-model.trim="text_info"
 						placeholder="请输入你的问题:"
@@ -368,11 +372,16 @@
 						 :style="{height:iboxheight}" 
 					
 				>
+<<<<<<< HEAD
+				</textarea>
+				<div class="send row item-center" style="border-bottom:.01rem solid #ddd;">
+=======
 				</textarea>  -->
 
 				 <autoTextarea placeholder="" lineHeight="30px" border="false" fontSize="18px" />
 
 				<div class="send row item-center" style="border-bottom:.01rem solid #ddd">
+>>>>>>> f66e6b0bf8455a9b957b56df1da1b52ef778bc8f
 					<img
 							:src="meme?require('@/assets/faceActive.png'):require('@/assets/face.png')"
 							@click="faceClick"
@@ -1144,6 +1153,9 @@
 				this.automaticRolling();
 				// console.log(data)
 				this.sendAudio();
+				// 还原输入框高度
+				let area = document.getElementById('textarea')
+				area.style.height = 36 + 'px';
 			},
 
 			// 消息发送音频
@@ -1283,19 +1295,55 @@
 					});
 				}
 			},
-			/***********************************/
+			/**监听滚动事件,使消息能完全看见 */
+			scrollMain() {
+				let main = document.getElementById('main')
+				let footer = document.getElementById('input_box')
+				main.style.paddingBottom = (footer.offsetHeight - 30) + 'px'
+			},
+			/*监听滚动高度,并给textarea高度赋值*/
 			keyup_maxlength(){
-				let ct=this.text_info;
-				let leng=ct.replace(/[^\x00-\xff]/g,"aa").length;
-				let len=Math.ceil(leng/25);
-				if(leng>12){
-					len=len+1;
+				let area = document.getElementById('textarea')
+				this.makeExpandingArea(area)
+				let main = document.getElementById('main')
+			},
+			/** 兼容处理 */
+			makeExpandingArea(el) {
+				var timer = null;
+				//由于ie8有溢出堆栈问题,故调整了这里
+				var setStyle = function(el, auto) {
+					if (auto) el.style.height = 'auto';
+					el.style.height = el.scrollHeight + 'px';
 				}
-				if(len >0){
-					this.ibox_height=(len)*27;
-				
-					this.ibox_height=this.ibox_height+'px';
+				var delayedResize = function(el) {
+					if (timer) {
+						clearTimeout(timer);
+						timer = null;
+					}
+					timer = setTimeout(function() {
+						setStyle(el)
+					}, 200);
+				}
+				if (el.addEventListener) {
+					el.addEventListener('input', function() {
+						setStyle(el, 1);
+					}, false);
+					setStyle(el)
+				} else if (el.attachEvent) {
+					el.attachEvent('onpropertychange', function() {
+						setStyle(el)
+					})
+					setStyle(el)
+				}
+				if (window.VBArray && window.addEventListener) { //IE9
+					el.attachEvent("onkeydown", function() {
+						var key = window.event.keyCode;
+						if (key == 8 || key == 46) delayedResize(el);
 
+					});
+					el.attachEvent("oncut", function() {
+						delayedResize(el);
+					}); //处理粘贴
 				}
 			},
 			
@@ -1529,6 +1577,8 @@
 
 <style scoped>
 	#textarea {
+		flex: 1;
+		height: 36px;
 		margin: 15px;
 		border: none;
 	}
@@ -1630,7 +1680,7 @@
 		height: 83vh;
 		overflow-x: hidden;
 		overflow-y: auto;
-		padding: 0 0.3rem;
+		padding: 0 0.6rem;
 	}
 
 	.btn {
@@ -1738,6 +1788,7 @@
 	}
 
 	.footer {
+		display: flex;
 		min-height: 1.2rem;
 		box-shadow: 0px -5px 5px rgba(0, 0, 0, 0.05);
 		background: #fff;
@@ -1760,10 +1811,12 @@
 	}
 
 	.send {
-		width: 40%;
-		position: absolute;
+		flex: 0 0 130px;
+		margin-right: 10px;
+		text-align: right;
+		/* position: absolute;
 		right: 0;
-		top: 0;
+		top: 0; */
 		background: #fff;
 		height: 1.2rem;
 	}
@@ -2005,7 +2058,7 @@
 	}
 
 	div /deep/ .yd-textarea > textarea {
-		height: 1.2rem;
+		min-height: 1.2rem;
 		font-size: 0.28rem;
 		padding-top: 0.2rem;
 	}