setting.html 3.29 KB
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
		<title></title>
		<script src="./js/common.js"></script>
		<style>
			* {
				box-sizing: border-box;
			}

			html,
			body {
				margin: 0;
				padding: 0;
				color: #666;
				font-size: 14px;
			}
			
			header{
				background-color: #f2f2f2;
				padding: 15px 10px;
				font-weight: bold;
				font-size: 16px;
			}

			main {
				margin: 10px;
			}

			h3 {
				font-size: 14px;
				margin: 20px 0 5px 0;
				font-weight: normal;
			}

			select,
			input {
				border: none;
				border-bottom: 1px solid #eee;
				width: 100%;
				outline: none;
				padding: 10px 0;
				transition: all 0.3s;
				color: #666;
				border-radius: 0;
			}

			input:focus {
				border-bottom: 1px solid #aaa;
			}

			button {
				background-color: #f2f2f2;
				color: #1d498d;
				border: none;
				width: 100%;
				padding: 8px;
				border-radius: 8px;
				outline: none;
				transition: all 0.3s;
			}

			button:active {
				background-color: #d9dede;
			}

			.ControlGroup {
				display: flex;
			}

			.ControlGroup>*:not(:last-child) {
				margin-right: 10px;
			}

			.BottomFixed {
				position: fixed;
				bottom: 10px;
				left: 10px;
				right: 10px;
			}
		</style>
		<script type="text/javascript">
			let settingData;

			document.addEventListener('plusready', function() {
				settingData = getUrlData() || getDefaultUrlData();
				updateDisplay();
				addListeners();
			});

			function updateDisplay() {
				const data = settingData;
				document.getElementById('stProtocol').value = data.protocol;
				document.getElementById('tbIp').value = data.url;
				document.getElementById('tbPort').value = data.port;
			}

			function close() {
				plus.webview.currentWebview().close();
			}

			function addListeners() {
				document.getElementById('stProtocol').addEventListener('change', (event) => {
					settingData.protocol = event.target.value;
				});
				document.getElementById('tbIp').addEventListener('change', (event) => {
					settingData.url = event.target.value;
				});
				document.getElementById('tbPort').addEventListener('change', (event) => {
					settingData.port = event.target.value;
				});

				document.getElementById('btnSave').addEventListener('click', () => {
					let error = '';
					if (!settingData.url) {
						error = '请填写url';
					} else if (!settingData.port) {
						error = '请填写端口号';
					} else if (isNaN(settingData.port)) {
						error = '请输入正确的端口号'
					}

					if (error) {
						plus.nativeUI.toast(error);
						return;
					}
					setUrlData(settingData.protocol, settingData.url, settingData.port);
					plus.runtime.restart();
				});

				document.getElementById('btnCancel').addEventListener('click', (event) => {
					plus.runtime.restart();
				});
			}
		</script>
	</head>
	<body>
		<header>服务器设置</header>
		<main>
			<h3>协议</h3>
			<select id='stProtocol'>
				<option value="http">http</option>
				<option value="https">https</option>
			</select>

			<h3>IP地址</h3>
			<input id="tbIp" />
			<h3>端口号</h3>
			<input id="tbPort" />
			<div class="ControlGroup BottomFixed">
				<button id='btnCancel'>取消</button>
				<button id='btnSave'>保存</button>
			</div>
		</main>
	</body>
</html>