ソースを参照

补充剪切板功能

huangxiaojing 3 年 前
コミット
462e0bbaaf

+ 191 - 29
screenAndroid/WXtrialInterface.html

@@ -32,8 +32,8 @@
 	<!-- windows phone 点击无高? -->
 	<meta name="msapplication-tap-highlight" content="no">
 	<link rel="stylesheet" type="text/css" href="css/WXtrialInterface.css" />
-	<link rel="stylesheet" href="https://cdn.bootcss.com/weui/1.1.3/style/weui.min.css">
-	<link rel="stylesheet" href="https://cdn.bootcss.com/jquery-weui/1.2.1/css/jquery-weui.min.css">
+	<link rel="stylesheet" href="https://cdn.bootcss.com/weui/1.1.3/style/weui.min.css" />
+	<link rel="stylesheet" href="https://cdn.bootcss.com/jquery-weui/1.2.1/css/jquery-weui.min.css" />
 </head>
 
 <body class="scroll h-player" style="overscroll-behavior: contain;">
@@ -63,7 +63,7 @@
 					<img src="../static/img/wx/shangchuan_icon.png">
 					<div>上传</div>
 				</div>
-				<div class="upload" onclick="cp(document.getElementById('user_ref_id'));" data-text="Shearplate">
+				<div class="upload" onclick="showShearPlate()" data-text="Shearplate">
 					<img src="../static/img/wx/jianqieban_icon.png">
 					<div>剪切板</div>
 				</div>
@@ -90,21 +90,12 @@
 				</div>
 			</div>
 		</div>
-		<div class="mainbox" style="display: none;">
-			<div class="boxTitle">提示</div>
-			<div class="boxText">
-				<div>由于小程序的功能限制,此功能暂时</div>
-				<div>无法使用,请下载APP使用更多功能</div>
-			</div>
-			<div class="boxbt" onclick="cp(document.getElementById('user_ref_id'));">立即前往下载</div>
-			<div class="boximg"><img src="../static/img/wx/guanbi_icon.png"></div>
-		</div>
-		<div class="sbox" style="display: none;">
-			<div class="sboxText">下载地址已复制到剪切板</div>
-			<div class="sboxbu">确定</div>
-		</div>
 		<div class="loading"></div>
 	</div>
+	<div class="mask">
+		<div class="box-shear-plate"></div>
+		<img class="close" onclick="handleClose()" src="img/guanbi_icon@2x.png" alt="">
+	</div>
 	<div class="weui-mask_transparent"></div>
 	<div class="weui-toast weui_loading_toast weui-toast--visible">
 		<div class="weui_loading"><i class="weui-loading weui-icon_toast"></i></div>
@@ -113,9 +104,6 @@
 
 	<body oncontextmenu="Back()">
 	</body>
-	<div id="copy-txt" style="position: absolute;opacity: 0;">
-		<span id="user_ref_id">www.androidsCloud.com</span>
-	</div>
 	<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
 	<script type="text/javascript" src="../static/js/jquery-1.11.0.min.js"></script>
 	<script type="text/javascript" src="helper.js"></script>
@@ -189,7 +177,7 @@
 				ExexuteKeyDown(e.keyCode);
 			}
 		}
-		var ws,errorTime = 0;
+		var ws, errorTime = 0;
 		doConnect();
 		// 节流
 		// 设置一个标志
@@ -200,8 +188,8 @@
 				if (!flag) return;
 				flag = false;
 				timer = setTimeout(() => {
-				fn();
-				flag = true;
+					fn();
+					flag = true;
 				}, delay);
 			};
 		}
@@ -211,8 +199,8 @@
 
 			ws.onclose = function (e) {
 				ws.close();
-				throttle(doConnect,100);
-				if(errorTime > 1000){
+				throttle(doConnect, 100);
+				if (errorTime > 1000) {
 					wx.miniProgram.switchTab({
 						url: '/pages/home/home'
 					})
@@ -227,8 +215,8 @@
 
 			ws.addEventListener('error', function (event) {
 				ws.close();
-				throttle(doConnect,100);
-				if(errorTime > 1000){
+				throttle(doConnect, 100);
+				if (errorTime > 1000) {
 					wx.miniProgram.switchTab({
 						url: '/pages/home/home'
 					})
@@ -279,6 +267,10 @@
 			debug: false
 		});
 
+		function handleClose() {
+			$('.mask').hide();
+		}
+
 		function decodeAAC(data) {
 			var retPtr = Module._malloc(4 * 5 * 1024); // 接收的数据
 			var inputPtr = Module._malloc(4 * data.length); // 输入数据
@@ -411,16 +403,186 @@
 			$('#btnMuted').hide()
 
 			form.id = parameters['id'];
-			form.username = parameters['username'];
 			form.ip = parameters['ip'];
 			form.userCardId = parameters['userCardId'];
 		} else {
-			form.username = parameters['username'];
+			form.id = parameters['id'];
 			form.userCardId = parameters['userCardId'];
 		}
+		var cutList = [];
+		function showShearPlate() {
+			$('.box-shear-plate').empty();
+			$.ajax({
+				url: baseUrl + "/api/user/v1/shear/content",
+				data: {},
+				headers: {
+					'Authorization': form.id  //id
+				},
+				type: 'get',
+				dataType: 'json',
+				success: function (res) {
+					if (res.status === 0) {
+						if (res.data.length) {
+							cutList = res.data
+							var str = '<div class="title">剪贴板<div onclick="handleClear()" class="btn-clear">清空</div></div><div class="slide-wrapper-content">'
+							res.data.forEach(function (item) {
+								str += "<div class='slide-wrapper'><div class='slide-scroll animate-slide-start'><div class='slide-content'><div onclick='handleCopy(\""+ item.content + "\")'>" + item.content + "</div></div><div class='slide-content-button'><button onclick='handleDelete(" + item.id + ")'>删除</button></div></div></div>"
+							})
+							str += '</div>'
+							$('.box-shear-plate').append(str);
+						} else {
+							$('.box-shear-plate').append('<img class="empty" src="img/jianqieban_pic@2x.png" alt="" /><div class="empty-txt">剪切板为空</div>')
 
-		var orientation = 0; //0 竖屏,1横屏
+						}
+						$('.mask').show();
+						initSlider();
+					} else {
+						$('.mask').show();
+						initSlider();
+					}
+				}
+			})
+		}
+		// 清空剪切板
+		function handleClear() {
+			var ids = '';
+			cutList.forEach(function (item) {
+				ids += 'ids=' + item.id + '&'
+			});
+			ids = ids.substring(0, ids.lastIndexOf('&'));
+			$.confirm("确定清空剪切板?", function () {
+				$.ajax({
+					url: baseUrl + "/api/user/v1/shear/content?" + ids,
+					headers: {
+						'Authorization': form.id  //id
+					},
+					type: 'DELETE',
+					dataType: 'json',
+					success: function (res) {
+						if (res.status === 0) {
+							showShearPlate();
+						} else {
+							$.toast(res.msg, "text");
+						}
+					}
+				})
+			});
+		}
 
+		function handleCopy(content) {
+			$.ajax({
+				url: baseUrl + "/api/wsi/v1/config/cut",
+				data: JSON.stringify({
+					str: content,
+					sn: form.sn
+				}),
+				headers: {
+					'Authorization': form.id  //id
+				},
+				contentType: "application/json;charset=UTF-8",
+				type: 'post',
+				dataType: 'json',
+				success: function (res) {
+					if (res.status === 0) {
+						$.toast('复制成功', "text");
+					} else {
+						$.toast(res.msg, "text");
+					}
+				}
+			})
+		}
+
+		// 删除剪切板
+		function handleDelete(id) {
+			$.ajax({
+				url: baseUrl + "/api/user/v1/shear/content?ids=" + id,
+				headers: {
+					'Authorization': form.id  //id
+				},
+				type: 'DELETE',
+				dataType: 'json',
+				success: function (res) {
+					if (res.status === 0) {
+						showShearPlate();
+					} else {
+						$.toast(res.msg, "text");
+					}
+				}
+			})
+		}
+
+		function initSlider() {
+			//手指滑动多少距离就认为是滑成功
+			//这个值不能太大,否则影响斜着滑动时,垂直滑动的流畅性,也不能太小,太灵敏也不好
+			var diffXDistance = 50;
+			//当前滑动的对象
+			var currentObject;
+			//上一次滑动的对象
+			var lastObject;
+			//是否可以左右滑动,在上下滑的时候禁止左右滑
+			var canSlide = true;
+			//用于记录按下的点
+			var startPoint;
+			$(".slide-content").css({
+				width: $(".slide-wrapper").width()
+			});
+			$(".slide-scroll").css({
+				width: $(".slide-wrapper").width() + $(".slide-content-button").width()
+			})
+				.on('touchstart', function (e) {
+					currentObject = this;
+
+					startPoint = {
+						x: e.originalEvent.changedTouches[0].pageX,
+						y: e.originalEvent.changedTouches[0].pageY
+					};
+				})
+				.on('touchmove', function (e) {
+					//如果是左右滑动,就禁止上下的滑动
+					//如果是上下的滑动,就禁止左右滑动
+					if (Math.abs(e.originalEvent.changedTouches[0].pageX - startPoint.x) > Math.abs(e.originalEvent.changedTouches[0].pageY - startPoint.y)) {
+						event.preventDefault();
+					} else {
+						canSlide = false;
+					}
+				})
+				.on('touchend', function (e) {
+					//如果是上下滑动,这里就直接返回了
+					if (!canSlide) {
+						canSlide = true;
+						return true;
+					}
+
+					//点击除当前左滑对象之外的任意其他位置
+					if (lastObject && currentObject != lastObject) {
+						//右滑→
+						$(lastObject).removeClass("animate-slide");
+
+						//清空上一个左滑的对象
+						lastObject = undefined;
+					}
+					var diffX = e.originalEvent.changedTouches[0].pageX - startPoint.x;
+					if (diffX < -diffXDistance) {
+						//左滑←
+						$(currentObject).addClass("animate-slide");
+						if (lastObject && lastObject != currentObject) {
+							//右滑→
+							$(lastObject).removeClass("animate-slide");
+						}
+						//记录上一个左滑的对象
+						lastObject = currentObject;
+					} else if (diffX >= diffXDistance) {
+						if (currentObject == lastObject) {
+							//右滑→
+							$(currentObject).removeClass("animate-slide");
+							//清空上一个左滑的对象
+							lastObject = undefined;
+						}
+					}
+				});
+		}
+
+		var orientation = 0; //0 竖屏,1横屏
 		document.body.addEventListener('touchmove', function (e) {
 			e.preventDefault()
 		}, {

+ 157 - 6
screenAndroid/css/WXtrialInterface.css

@@ -63,7 +63,6 @@ body:before {
 	z-index: 0;
 }
 
-
 canvas {
 	display: block;
 	width: 100%;
@@ -72,6 +71,7 @@ canvas {
 }
 
 /*主屏*/
+
 .control {
 	width: 900px;
 	overflow: hidden;
@@ -91,7 +91,6 @@ canvas {
 }
 
 #mainScreen-main {
-	/* overflow: hidden; */
 	user-select: none;
 	-webkit-user-drag: none;
 	position: relative;
@@ -145,9 +144,7 @@ canvas {
 	right: .46296rem;
 	top: .46296rem;
 	z-index: 9999999;
-	/*background: #000;*/
 	border-radius: 50%;
-	/* opacity: 0.5;*/
 }
 
 .muted {
@@ -164,7 +161,6 @@ html {
 	width: 42px;
 	height: 42px;
 	margin: 0 auto;
-	/* margin: 1rem; */
 	margin-top: 0.6rem;
 }
 
@@ -178,9 +174,9 @@ html {
 	height: 100%;
 	background: #333333;
 	position: fixed;
-	z-index: 2;
 	right: 0rem;
 	top: 0;
+	z-index: 2;
 	transition: all 0.2s ease-in;
 }
 
@@ -337,4 +333,159 @@ html {
 	justify-content: center;
 	background: url(../img/homebg.png) no-repeat;
 	background-size: 100% 100%;
+}
+
+.mask {
+	width: 100vw;
+	height: 100vh;
+	background: rgba(0, 0, 0, 0.3);
+	position: fixed;
+	top: 0;
+	left: 0;
+	z-index: 4;
+	display: none;
+}
+
+.box-shear-plate {
+	width: 16.25em;
+	height: 16.875em;
+	background: rgba(0, 0, 0, 0.6);
+	border-radius: 1.25em;
+	position: absolute;
+	top: 8.375em;
+	left: 3.625em;
+}
+
+.close {
+	width: 1.875rem;
+	height: 1.875rem;
+	position: absolute;
+	top: 25.6875em;
+	left: 10.8125em;
+}
+
+.empty {
+	width: 8em;
+	height: 10em;
+	margin-top: 2.5em;
+	margin-left: 4.125em;
+}
+
+.empty-txt {
+	font-size: 0.9375em;
+	font-weight: 400;
+	color: #FFFFFF;
+	line-height: 1.3125em;
+	margin-top: 0.625em;
+	text-align: center;
+}
+
+.title {
+	height: 3em;
+	line-height: 3em;
+	text-align: center;
+	font-size: 1em;
+	font-weight: 500;
+	color: #FFFFFF;
+	position: relative;
+}
+
+.btn-clear {
+	width: 3em;
+	height: 1.5em;
+	line-height: 1.5em;
+	text-align: center;
+	background: #3666F2;
+	border-radius: 0.25em;
+	position: absolute;
+	right: 1.125em;
+	top: 1.125em;
+	font-size: 0.75em;
+	color: #FFFFFF;
+}
+
+ul, li {
+	padding: 0;
+	margin: 0;
+}
+
+ul, li {
+	list-style: none;
+}
+
+.slide-wrapper-content {
+	height: 13.875em;
+	overflow: hidden;
+	overflow-y: scroll;
+}
+
+.animate-slide-start {
+	-webkit-transition: all 0.2s ease-in-out;
+	-moz-transition: all 0.2s ease-in-out;
+	transition: all 0.2s ease-in-out;
+}
+
+.animate-slide {
+	-webkit-transform: translate3d(-2.125em, 0, 0);
+	-moz-transform: translate3d(-2.125em, 0, 0);
+	transform: translate3d(-2.125em, 0, 0);
+}
+
+.slide-wrapper {
+	margin: 0 1.125em 0.5em 0.625em;
+	height: 2em;
+	background: #fff;
+	border-radius: 0.3125em;
+	overflow: hidden;
+}
+
+.slide-scroll {
+	height: 2em;
+	overflow: hidden;
+	white-space: nowrap;
+}
+
+.slide-content-button {
+	width: 2.125em;
+	height: 2em;
+	border-radius: 0 0.3125em 0.3125em 0;
+	display: flex;
+}
+
+.slide-content-button button {
+	width: 100%;
+	height: 100%;
+	border: none;
+	background: #F04646;
+	color: #fff;
+	font-size: 0.75em;
+	text-align: center;
+}
+
+.slide-content {
+	float: left;
+	display: inline-block;
+	color: #666;
+	height: 2em;
+	line-height: 2em;
+}
+
+.slide-content div {
+	font-size: 0.8125em;
+	margin-left: 0.625em;
+	margin-right: 0.875em;
+	text-align: center;
+	overflow: hidden;
+	text-overflow:ellipsis;
+	white-space: nowrap;
+}
+
+.mask {
+	width: 100vw;
+	height: 100vh;
+	background: rgba(0, 0, 0, 0.3);
+	position: fixed;
+	top: 0;
+	left: 0;
+	z-index: 4;
 }

BIN
screenAndroid/img/guanbi_icon@2x.png


BIN
screenAndroid/img/jianqieban_pic@2x.png


+ 262 - 21
screenIos/WXtrialInterface.html

@@ -33,8 +33,8 @@
 	<!-- windows phone 点击无高 -->
 	<meta name="msapplication-tap-highlight" content="no">
 	<link rel="stylesheet" type="text/css" href="css/WXtrialInterface.css" />
-	<link rel="stylesheet" href="https://cdn.bootcss.com/weui/1.1.3/style/weui.min.css">
-	<link rel="stylesheet" href="https://cdn.bootcss.com/jquery-weui/1.2.1/css/jquery-weui.min.css">
+	<link rel="stylesheet" href="https://cdn.bootcss.com/weui/1.1.3/style/weui.min.css" />
+	<link rel="stylesheet" href="https://cdn.bootcss.com/jquery-weui/1.2.1/css/jquery-weui.min.css" />
 </head>
 
 <body class="scroll h-player" style="overscroll-behavior: contain;">
@@ -61,7 +61,7 @@
 					<img src="../static/img/wx/shangchuan_icon.png">
 					<div>上传</div>
 				</div>
-				<div class="upload" onclick="cp(document.getElementById('user_ref_id'));" data-text="Shearplate">
+				<div class="upload" onclick="showShearPlate()" data-text="Shearplate">
 					<img src="../static/img/wx/jianqieban_icon.png">
 					<div>剪切板</div>
 				</div>
@@ -88,29 +88,17 @@
 				</div>
 			</div>
 		</div>
-		<div class="mainbox" style="display: none;">
-			<div class="boxTitle">提示</div>
-			<div class="boxText">
-				<div>由于小程序的功能限制,此功能暂时</div>
-				<div>无法使用,请下载APP使用更多功能</div>
-			</div>
-			<div class="boxbt" onclick="cp(document.getElementById('user_ref_id'));">立即前往下载</div>
-			<div class="boximg"><img src="../static/img/wx/guanbi_icon.png"></div>
-		</div>
-		<div class="sbox" style="display: none;">
-			<div class="sboxText">下载地址已复制到剪切板</div>
-			<div class="sboxbu">确定</div>
-		</div>
 		<div class="loading"></div>
 	</div>
+	<div class="mask">
+		<div class="box-shear-plate"></div>
+		<img class="close" onclick="handleClose()" src="img/guanbi_icon@2x.png" alt="">
+	</div>
 	<div class="weui-mask_transparent"></div>
 	<div class="weui-toast weui_loading_toast weui-toast--visible">
 		<div class="weui_loading"><i class="weui-loading weui-icon_toast"></i></div>
 		<p class="weui-toast_content">数据加载中</p>
 	</div>
-	<div id="copy-txt" style="position: absolute;opacity: 0;">
-		<span id="user_ref_id">www.androidsCloud.com</span>
-	</div>
 	<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
 	<script type="text/javascript" src="jquery-1.11.0.min.js"></script>
 	<!-- ffm软解 -->
@@ -120,7 +108,84 @@
 	<script type="text/javascript" src="webgl.js"></script>
 	<script type="text/javascript" src="https://cdn.bootcss.com/vConsole/3.2.0/vconsole.min.js"></script>
 	<script type="text/javascript" src="WXdraw.js?id=105"></script>
+	<script type="text/javascript">
+		$(function () {
+			//手指滑动多少距离就认为是滑成功
+			//这个值不能太大,否则影响斜着滑动时,垂直滑动的流畅性,也不能太小,太灵敏也不好
+			var diffXDistance = 50;
 
+			//当前滑动的对象
+			var currentObject;
+			//上一次滑动的对象
+			var lastObject;
+
+			//是否可以左右滑动,在上下滑的时候禁止左右滑
+			var canSlide = true;
+			//用于记录按下的点
+			var startPoint;
+
+
+			$(".slide-content").css({
+				width: $(".slide-wrapper").width()
+			});
+
+			$(".slide-scroll").css({
+				width: $(".slide-wrapper").width() + $(".slide-content-button").width()
+			})
+				.on('touchstart', function (e) {
+					currentObject = this;
+
+					startPoint = {
+						x: e.originalEvent.changedTouches[0].pageX,
+						y: e.originalEvent.changedTouches[0].pageY
+					};
+				})
+				.on('touchmove', function (e) {
+					//如果是左右滑动,就禁止上下的滑动
+					//如果是上下的滑动,就禁止左右滑动
+					if (Math.abs(e.originalEvent.changedTouches[0].pageX - startPoint.x) > Math.abs(e.originalEvent.changedTouches[0].pageY - startPoint.y)) {
+						event.preventDefault();
+					} else {
+						canSlide = false;
+					}
+				})
+				.on('touchend', function (e) {
+					//如果是上下滑动,这里就直接返回了
+					if (!canSlide) {
+						canSlide = true;
+						return true;
+					}
+
+					//点击除当前左滑对象之外的任意其他位置
+					if (lastObject && currentObject != lastObject) {
+						//右滑→
+						$(lastObject).removeClass("animate-slide");
+
+						//清空上一个左滑的对象
+						lastObject = undefined;
+					}
+
+					var diffX = e.originalEvent.changedTouches[0].pageX - startPoint.x;
+					if (diffX < -diffXDistance) {
+						//左滑←
+						$(currentObject).addClass("animate-slide");
+						if (lastObject && lastObject != currentObject) {
+							//右滑→
+							$(lastObject).removeClass("animate-slide");
+						}
+						//记录上一个左滑的对象
+						lastObject = currentObject;
+					} else if (diffX >= diffXDistance) {
+						if (currentObject == lastObject) {
+							//右滑→
+							$(currentObject).removeClass("animate-slide");
+							//清空上一个左滑的对象
+							lastObject = undefined;
+						}
+					}
+				});
+		});
+	</script>
 	<script>
 		var topwinHeight = window.screen.height - window.innerHeight + 30; //计算title top 头部
 		var renderCount = 0
@@ -180,11 +245,10 @@
 			$('#btnMuted').hide()
 
 			form.id = parameters['id'];
-			form.username = parameters['username'];
 			form.ip = parameters['ip'];
 			form.userCardId = parameters['userCardId'];
 		} else {
-			form.username = parameters['username'];
+			form.id = parameters['id'];
 			form.userCardId = parameters['userCardId'];
 		}
 
@@ -196,6 +260,179 @@
 			passive: false
 		})
 
+		var cutList = [];
+		function showShearPlate() {
+			$('.box-shear-plate').empty();
+			$.ajax({
+				url: baseUrl + "/api/user/v1/shear/content",
+				data: {},
+				headers: {
+					'Authorization': form.id  //id
+				},
+				type: 'get',
+				dataType: 'json',
+				success: function (res) {
+					if (res.status === 0) {
+						if (res.data.length) {
+							cutList = res.data
+							var str = '<div class="title">剪贴板<div onclick="handleClear()" class="btn-clear">清空</div></div><div class="slide-wrapper-content">'
+							res.data.forEach(function (item) {
+								str += "<div class='slide-wrapper'><div class='slide-scroll animate-slide-start'><div class='slide-content'><div onclick='handleCopy(\"" + item.content + "\")'>" + item.content + "</div></div><div class='slide-content-button'><button onclick='handleDelete(" + item.id + ")'>删除</button></div></div></div>"
+							})
+							str += '</div>'
+							$('.box-shear-plate').append(str);
+						} else {
+							$('.box-shear-plate').append('<img class="empty" src="img/jianqieban_pic@2x.png" alt="" /><div class="empty-txt">剪切板为空</div>')
+
+						}
+						$('.mask').show();
+						initSlider();
+					} else {
+						$('.mask').show();
+						initSlider();
+					}
+				}
+			})
+		}
+		// 清空剪切板
+		function handleClear() {
+			var ids = '';
+			cutList.forEach(function (item) {
+				ids += 'ids=' + item.id + '&'
+			});
+			ids = ids.substring(0, ids.lastIndexOf('&'));
+			$.confirm("确定清空剪切板?", function () {
+				$.ajax({
+					url: baseUrl + "/api/user/v1/shear/content?" + ids,
+					headers: {
+						'Authorization': form.id  //id
+					},
+					type: 'DELETE',
+					dataType: 'json',
+					success: function (res) {
+						if (res.status === 0) {
+							showShearPlate();
+						} else {
+							$.toast(res.msg, "text");
+						}
+					}
+				})
+			});
+		}
+
+		function handleCopy(content) {
+			$.ajax({
+				url: baseUrl + "/api/wsi/v1/config/cut",
+				data: JSON.stringify({
+					str: content,
+					sn: form.sn
+				}),
+				headers: {
+					'Authorization': form.id  //id
+				},
+				contentType: "application/json;charset=UTF-8",
+				type: 'post',
+				dataType: 'json',
+				success: function (res) {
+					if (res.status === 0) {
+						$.toast('复制成功', "text");
+					} else {
+						$.toast(res.msg, "text");
+					}
+				}
+			})
+		}
+
+		// 删除剪切板
+		function handleDelete(id) {
+			$.ajax({
+				url: baseUrl + "/api/user/v1/shear/content?ids=" + id,
+				headers: {
+					'Authorization': form.id  //id
+				},
+				type: 'DELETE',
+				dataType: 'json',
+				success: function (res) {
+					if (res.status === 0) {
+						showShearPlate();
+					} else {
+						$.toast(res.msg, "text");
+					}
+				}
+			})
+		}
+
+		function initSlider() {
+			//手指滑动多少距离就认为是滑成功
+			//这个值不能太大,否则影响斜着滑动时,垂直滑动的流畅性,也不能太小,太灵敏也不好
+			var diffXDistance = 50;
+			//当前滑动的对象
+			var currentObject;
+			//上一次滑动的对象
+			var lastObject;
+			//是否可以左右滑动,在上下滑的时候禁止左右滑
+			var canSlide = true;
+			//用于记录按下的点
+			var startPoint;
+			$(".slide-content").css({
+				width: $(".slide-wrapper").width()
+			});
+			$(".slide-scroll").css({
+				width: $(".slide-wrapper").width() + $(".slide-content-button").width()
+			})
+				.on('touchstart', function (e) {
+					currentObject = this;
+
+					startPoint = {
+						x: e.originalEvent.changedTouches[0].pageX,
+						y: e.originalEvent.changedTouches[0].pageY
+					};
+				})
+				.on('touchmove', function (e) {
+					//如果是左右滑动,就禁止上下的滑动
+					//如果是上下的滑动,就禁止左右滑动
+					if (Math.abs(e.originalEvent.changedTouches[0].pageX - startPoint.x) > Math.abs(e.originalEvent.changedTouches[0].pageY - startPoint.y)) {
+						event.preventDefault();
+					} else {
+						canSlide = false;
+					}
+				})
+				.on('touchend', function (e) {
+					//如果是上下滑动,这里就直接返回了
+					if (!canSlide) {
+						canSlide = true;
+						return true;
+					}
+
+					//点击除当前左滑对象之外的任意其他位置
+					if (lastObject && currentObject != lastObject) {
+						//右滑→
+						$(lastObject).removeClass("animate-slide");
+
+						//清空上一个左滑的对象
+						lastObject = undefined;
+					}
+					var diffX = e.originalEvent.changedTouches[0].pageX - startPoint.x;
+					if (diffX < -diffXDistance) {
+						//左滑←
+						$(currentObject).addClass("animate-slide");
+						if (lastObject && lastObject != currentObject) {
+							//右滑→
+							$(lastObject).removeClass("animate-slide");
+						}
+						//记录上一个左滑的对象
+						lastObject = currentObject;
+					} else if (diffX >= diffXDistance) {
+						if (currentObject == lastObject) {
+							//右滑→
+							$(currentObject).removeClass("animate-slide");
+							//清空上一个左滑的对象
+							lastObject = undefined;
+						}
+					}
+				});
+		}
+
 		// 初始化一下就可以了,
 		var vConsole = new VConsole();
 
@@ -376,6 +613,10 @@
 			}
 		}
 
+		function handleClose() {
+			$('.mask').hide();
+		}
+
 		function cp(x) {
 			$(".mainbox").css({
 				"display": "none"

+ 155 - 4
screenIos/css/WXtrialInterface.css

@@ -91,7 +91,6 @@ canvas {
 }
 
 #mainScreen-main {
-	/* overflow: hidden; */
 	user-select: none;
 	-webkit-user-drag: none;
 	position: relative;
@@ -99,9 +98,6 @@ canvas {
 	width: 100%;
 	height: 100%;
 	top: 0px;
-	/* left: 652.667px; */
-	/* left: 270PX; */
-	/* transform-origin: 0% 0%; */
 	background: #000;
 }
 
@@ -337,4 +333,159 @@ html {
 	justify-content: center;
 	background: url(../img/homebg.png) no-repeat;
 	background-size: 100% 100%;
+}
+
+.mask {
+	width: 100vw;
+	height: 100vh;
+	background: rgba(0, 0, 0, 0.3);
+	position: fixed;
+	top: 0;
+	left: 0;
+	z-index: 4;
+	display: none;
+}
+
+.box-shear-plate {
+	width: 16.25em;
+	height: 16.875em;
+	background: rgba(0, 0, 0, 0.6);
+	border-radius: 1.25em;
+	position: absolute;
+	top: 8.375em;
+	left: 3.625em;
+}
+
+.close {
+	width: 1.875rem;
+	height: 1.875rem;
+	position: absolute;
+	top: 25.6875em;
+	left: 10.8125em;
+}
+
+.empty {
+	width: 8em;
+	height: 10em;
+	margin-top: 2.5em;
+	margin-left: 4.125em;
+}
+
+.empty-txt {
+	font-size: 0.9375em;
+	font-weight: 400;
+	color: #FFFFFF;
+	line-height: 1.3125em;
+	margin-top: 0.625em;
+	text-align: center;
+}
+
+.title {
+	height: 3em;
+	line-height: 3em;
+	text-align: center;
+	font-size: 1em;
+	font-weight: 500;
+	color: #FFFFFF;
+	position: relative;
+}
+
+.btn-clear {
+	width: 3em;
+	height: 1.5em;
+	line-height: 1.5em;
+	text-align: center;
+	background: #3666F2;
+	border-radius: 0.25em;
+	position: absolute;
+	right: 1.125em;
+	top: 1.125em;
+	font-size: 0.75em;
+	color: #FFFFFF;
+}
+
+ul, li {
+	padding: 0;
+	margin: 0;
+}
+
+ul, li {
+	list-style: none;
+}
+
+.slide-wrapper-content {
+	height: 13.875em;
+	overflow: hidden;
+	overflow-y: scroll;
+}
+
+.animate-slide-start {
+	-webkit-transition: all 0.2s ease-in-out;
+	-moz-transition: all 0.2s ease-in-out;
+	transition: all 0.2s ease-in-out;
+}
+
+.animate-slide {
+	-webkit-transform: translate3d(-2.125em, 0, 0);
+	-moz-transform: translate3d(-2.125em, 0, 0);
+	transform: translate3d(-2.125em, 0, 0);
+}
+
+.slide-wrapper {
+	margin: 0 1.125em 0.5em 0.625em;
+	height: 2em;
+	background: #fff;
+	border-radius: 0.3125em;
+	overflow: hidden;
+}
+
+.slide-scroll {
+	height: 2em;
+	overflow: hidden;
+	white-space: nowrap;
+}
+
+.slide-content-button {
+	width: 2.125em;
+	height: 2em;
+	border-radius: 0 0.3125em 0.3125em 0;
+	display: flex;
+}
+
+.slide-content-button button {
+	width: 100%;
+	height: 100%;
+	border: none;
+	background: #F04646;
+	color: #fff;
+	font-size: 0.75em;
+	text-align: center;
+}
+
+.slide-content {
+	float: left;
+	display: inline-block;
+	color: #666;
+	height: 2em;
+	line-height: 2em;
+}
+
+.slide-content div {
+	font-size: 0.8125em;
+	margin-left: 0.625em;
+	margin-right: 0.875em;
+	text-align: center;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	white-space: nowrap;
+}
+
+.mask {
+	width: 100vw;
+	height: 100vh;
+	background: rgba(0, 0, 0, 0.3);
+	position: fixed;
+	top: 0;
+	left: 0;
+	z-index: 4;
 }

BIN
screenIos/img/guanbi_icon@2x.png


BIN
screenIos/img/jianqieban_pic@2x.png