From b5c0993eb8043882eae85ce9ab1d860ff8bebf17 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期四, 28 三月 2024 13:52:56 +0800
Subject: [PATCH] #

---
 pages/LoginDemo/LoginDemo.vue |  256 +++++++++++++++++++++++++++++++++------------------
 1 files changed, 165 insertions(+), 91 deletions(-)

diff --git a/pages/LoginDemo/LoginDemo.vue b/pages/LoginDemo/LoginDemo.vue
index e1dac5a..e399630 100644
--- a/pages/LoginDemo/LoginDemo.vue
+++ b/pages/LoginDemo/LoginDemo.vue
@@ -10,35 +10,34 @@
 		</view>
 		<view class="right">
 			<view class="input-box">
-				<My-input class="my-input" titleIcon="person" title="璐﹀彿" placeholder="璇疯緭鍏ヨ处鍙�" inputType="text" optIcon="bottom" />
-				<My-input class="my-input" titleIcon="locked" title="瀵嗙爜" placeholder="璇疯緭鍏ュ瘑鐮�" inputType="password" optIcon="eye" optIconShow/>
+				<My-input class="my-input" v-model="user.username" titleIcon="person" title="璐﹀彿" placeholder="璇疯緭鍏ヨ处鍙�"
+					inputType="text" optIcon="bottom" />
+				<My-input class="my-input" v-model="user.password" titleIcon="locked" title="瀵嗙爜" placeholder="璇疯緭鍏ュ瘑鐮�"
+					inputType="password" optIcon="eye" optIconShow />
 				<view class="rember-password">
 					<view class="text">璁颁綇瀵嗙爜</view>
-					<switch :checked='remberPassword' color="#FFCC33" style="zoom:.5" @change="remberChange"/>
+					<switch :checked='remberPassword' color="#FFCC33" style="zoom:.5" @change="remberChange" />
 				</view>
 			</view>
-			<!-- <view class="button" @click="login" :loading="load.loading">
-				{{load.btnText}} 
-			</view> -->
-			<button class="button" @click="onLogin()" :loading="load.loading">{{load.btnText}}</button>
+			<button class="button" @click="login()" :loading="load.loading">{{load.btnText}}</button>
 		</view>
 		<!-- 璁剧疆寮圭獥鍖哄煙 -->
 		<uni-popup ref="settings" type="dialog">
 			<view class="popup">
 				<!-- 鏍囬 -->
 				<view class="title">缃� 缁� 閰� 缃�</view>
-					<scroll-view scroll-y="true" style="height: 23vh;touch-action: none;">
-						<view style="margin: 4px; color: #606266;font-size: 12px; " v-for="net in network">
-							<text style="font-size: 14px;">{{net.name}}</text>
-							<view style="display: flex;align-items: center;">
-								<input class="settings-input1" type="text" v-model="net.ip"> 
-								<text style="font-weight: 900;">:</text>
-								<input class="settings-input2" type="text" v-model="net.port"> 
-								<text style="font-weight: 900;">/</text>
-								<input class="settings-input3" type="text" v-model="net.address">
-							</view>
+				<scroll-view scroll-y="true" class="settings-scroll">
+					<view class="scroll-item" v-for="net in network">
+						<view class="item-title" style="">{{net.name}}</view>
+						<view style="display: flex;align-items: center;">
+							<input class="settings-input1" type="text" v-model="net.ip">
+							<text style="font-weight: 900;">:</text>
+							<input class="settings-input2" type="text" v-model="net.port">
+							<text style="font-weight: 900;">/</text>
+							<input class="settings-input3" type="text" v-model="net.address">
 						</view>
-					</scroll-view>
+					</view>
+				</scroll-view>
 				<view class="operate">
 					<view class="operate-cancel" @click="cancel">
 						鍙栨秷
@@ -49,9 +48,7 @@
 				</view>
 			</view>
 		</uni-popup>
-		
-		
-		
+
 		<!-- 鐗堟湰鍙� -->
 		<!-- #ifdef APP-PLUS -->
 		<view class="version">
@@ -63,15 +60,32 @@
 
 <script>
 	// import { data } from 'jquery'
+	import {
+		mapState
+	} from 'vuex' //寮曞叆mapState
 	import md5 from '../../static/js/md5.js'
+	import common from '../api/common/common.js'
 	export default {
 		data() {
 			return {
 				version: '',
 				remberPassword: true,
-				network: [
-					{name: 'wms',ip:'192.168.1.1',port: '8080',address: 'pswms'},
-					{name: 'wcs',ip:'192.168.1.1',port: '9090',address: 'pswcs'}
+				user: {
+					username: '',
+					password: ''
+				},
+				network: [{
+						name: 'wms',
+						ip: '192.168.1.1',
+						port: '8080',
+						address: 'pswms'
+					},
+					{
+						name: 'wcs',
+						ip: '192.168.1.1',
+						port: '9090',
+						address: 'pswcs'
+					}
 				],
 				load: {
 					loading: false,
@@ -79,80 +93,95 @@
 				},
 			}
 		},
+		computed: mapState({
+			project: state => state.project
+		}),
+		onShow() {
+
+		},
 		mounted() {
 			uni.getSystemInfo({
 				success(res) {
 					// console.log(res);
 				}
 			})
+			if (uni.getStorageSync('user')) {
+				this.user = uni.getStorageSync('user')
+			}
 			// 鎵嬫満绔増鏈彿
 			// #ifdef APP-PLUS
-			var that = this
+			var _this = this
 			plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {
-				that.version = wgtinfo.version
+				_this.version = wgtinfo.version
 			});
 			// #endif
 		},
 		methods: {
 			remberChange() {
+				this.remberPassword = !this.remberPassword
 				
 			},
 			settings() {
+				if (uni.getStorageSync('Network')) {
+					this.network = uni.getStorageSync('Network')
+				}
 				this.$refs.settings.open()
 			},
 			cancel() {
-				console.log(uni.getStorageSync('Network'));
 				this.$refs.settings.close()
 			},
 			confirm() {
 				uni.setStorageSync('Network', this.network);
 				this.$refs.settings.close()
 			},
-			onLogin() {
-				let _this = this,path = 'demo',network = uni.getStorageSync('Network');
-				if(!network) {
+			async login() {
+				if (!uni.getStorageSync('Network')) {
+					uni.showToast({ icon: 'error', title: '璇烽厤缃綉缁滀俊鎭�' }) 
+					return
+				}
+				if (!this.user.username ) {
+					uni.showToast({ icon: 'none', title: '璇疯緭鍏ヨ处鍙�' }) 
+					return
+				}
+				if (!this.user.password ) {
+					uni.showToast({ icon: 'none', title: '璇疯緭鍏ュ瘑鐮�' }) 
+					return
+				}
+				this.load.loading = true;
+				this.load.btnText = '鐧诲綍涓�';
+				let res = await common.onLogin(this.user)
+				if (res.code === 200) {
+					setTimeout(() => {
+						uni.showToast({
+							title: '鐧诲綍鎴愬姛'
+						})
+						setTimeout(() => {
+							uni.reLaunch({
+								url: `/pages/home/home`,
+							});
+						}, 300)
+						if (!this.remberPassword) {
+							this.user.password = ''
+						}
+						uni.setStorageSync('user', this.user);
+					}, 700)
+				} else if (res.code === 0) {
+					this.load.loading = false;
+					this.load.btnText = '鐧诲綍';
 					uni.showToast({
-						icon: 'error',
-						title: '璇烽厤缃綉缁滀俊鎭�'
+						icon: 'none',
+						title: '杩炴帴澶辫触锛岃妫�鏌ョ綉缁�'
+					})
+				} else {
+					this.load.loading = false;
+					this.load.btnText = '鐧诲綍';
+					uni.showToast({
+						icon: 'none',
+						title: `${this.user.username} ${res.msg}`
 					})
 				}
-				path = network[0].address
-				path = path.substring(0, path.length - 3);
-				let baseUrl = `http://${network[0].ip}:${network[0].port}/${network[0].address}`
-				uni.request({
-					url: `${baseUrl}/login.action`,
-					data: {
-						username: 'super',
-						password: md5.hex_md5('xltys1995')
-					},
-					success(res) {
-						res = res.data
-						if (res.code === 200) {
-							_this.load.loading = true;
-							_this.load.btnText = '鐧诲綍涓�';
-							uni.setStorageSync('token', res.data.token);
-							_this.load.btnText = '鐧诲綍涓�';
-							setTimeout(() => {
-								uni.showToast({
-									title: '鐧诲綍鎴愬姛'
-								})
-								setTimeout(() => {
-									uni.reLaunch({
-										url: `/pages/project/${path}/home/home`,
-									});
-								}, 300)
-							}, 700)
-						}
-						// uni.navigateTo({
-						// 	url: `/pages/project/${path}/home/home`,
-						// 	fail(res) {
-						// 		console.log(`娌℃湁${path}椤圭洰,璇疯仈绯荤鐞嗗厓`);
-						// 	}
-							
-						// })
-					}
-				})
-			}
+			},
+			// end
 		}
 	}
 </script>
@@ -163,11 +192,11 @@
 		top: 8px;
 		right: 8px;
 		border-radius: 10px;
-		box-shadow: inset 2px 2px 2px rgba(0,0,0,.3),
-					inset -2px -2px 2px rgba(255,255,255,.7),
-					-2px -2px 2px rgba(0,0,0,.4);
+		box-shadow: inset 2px 2px 2px rgba(0, 0, 0, .3),
+			inset -2px -2px 2px rgba(255, 255, 255, .7),
+			-2px -2px 2px rgba(0, 0, 0, .4);
 	}
-	
+
 	.main {
 		height: 100%;
 		width: 100%;
@@ -175,45 +204,54 @@
 		background-color: #ECF0F1;
 		position: absolute;
 	}
+
 	.left {
 		display: flex;
 		align-items: center;
 		justify-content: center;
 	}
+
 	.logo-box {
-		background-color:  #ECF0F1;
+		background-color: #ECF0F1;
 		border-radius: 15px;
-		box-shadow: inset 8px 8px 8px rgba(0,0,0,.3),
-					inset -8px -8px 8px rgba(255,255,255,.7),
-					-8px -8px 10px rgba(0,0,0,.4);
+		box-shadow: inset 8px 8px 8px rgba(0, 0, 0, .3),
+			inset -8px -8px 8px rgba(255, 255, 255, .7),
+			-8px -8px 10px rgba(0, 0, 0, .4);
 	}
+
 	image {
 		height: 100%;
 		width: 100%;
 	}
+
 	.right {
 		display: flex;
 		flex-direction: column;
 		justify-content: space-around;
 	}
+
 	.input-box {
 		width: 100%;
 	}
+
 	.my-input {
 		width: 80%;
 		margin: 16px 10% 16px 10%;
 	}
+
 	.rember-password {
 		width: 78%;
 		margin: 0 11% 0 11%;
 		display: flex;
 		justify-content: space-between;
+
 		.text {
 			font-size: 12px;
 			color: #606266;
 			line-height: 1;
 		}
 	}
+
 	.button {
 		width: 40%;
 		margin: 0 auto;
@@ -221,55 +259,67 @@
 		text-align: center;
 		line-height: 50px;
 		font-size: 20px;
-		background-color:  #409EFF;
+		background-color: #409EFF;
 		color: #ECF0F1;
 		border-radius: 7px;
-		box-shadow: inset 4px 4px 4px rgba(0,0,0,.3),
-					inset -4px -4px 4px rgba(255,255,255,.4),
-					-4px -4px 5px rgba(0,0,0,.4);
+		box-shadow: inset 4px 4px 4px rgba(0, 0, 0, .3),
+			inset -4px -4px 4px rgba(255, 255, 255, .4),
+			-4px -4px 5px rgba(0, 0, 0, .4);
 	}
+
 	.button:active {
-	    transform: translateY(5px) scale(0.99, 0.99);
-	    box-shadow: inset 4px 4px 4px rgba(0, 0, 0, .3),
-	        inset -4px -4px 8px rgba(255, 255, 255, .7),
-	        -5px -5px 5px rgba(0, 0, 0, .3);
+		transform: translateY(5px) scale(0.99, 0.99);
+		box-shadow: inset 4px 4px 4px rgba(0, 0, 0, .3),
+			inset -4px -4px 8px rgba(255, 255, 255, .7),
+			-5px -5px 5px rgba(0, 0, 0, .3);
 	}
+
 	@media screen and (orientation: portrait) {
+
 		/* 绔栧睆 */
 		.main {
 			flex-direction: column;
 		}
+
 		.left {
 			height: 40%;
 			width: 100%;
 		}
+
 		.right {
-			height: 40%;
+			height: 50%;
 			width: 100%;
 		}
+
 		.logo-box {
 			height: 60%;
 			width: 80%;
 		}
 	}
+
 	@media screen and (orientation: landscape) {
+
 		/* 妯睆 */
 		.main {
 			display: flex;
 		}
+
 		.left {
 			height: 100%;
 			width: 50%;
 		}
+
 		.right {
 			height: 100%;
 			width: 50%;
 		}
+
 		.logo-box {
 			height: 60%;
 			width: 80%;
 		}
 	}
+
 	.version {
 		position: fixed;
 		width: 100%;
@@ -278,13 +328,14 @@
 		font-size: 10px;
 		color: #909399;
 	}
-	
+
 	.popup {
 		width: 90vw;
 		height: 40vh;
 		background-color: #fff;
 		border-radius: 16px;
 	}
+
 	.title {
 		height: 10vh;
 		display: flex;
@@ -293,28 +344,49 @@
 		font-size: 24px;
 		color: #a8abb2;
 	}
+
+	.settings-scroll {
+		height: 23vh;
+		touch-action: none;
+	}
+
+	.scroll-item {
+		margin: 4px 16px;
+		color: #606266;
+		font-size: 12px;
+	}
+
+	.item-title {
+		font-size: 14px;
+		width: 100%;
+		text-align: center;
+	}
+
 	.settings-input1 {
 		border: 1px solid #dcdfe6;
-		flex: 2;
+		flex: 5;
 		margin: 2px;
 		padding: 4px;
 		border-radius: 4px;
 	}
+
 	.settings-input2 {
 		border: 1px solid #dcdfe6;
-		flex: 1;
+		flex: 3;
 		margin: 2px;
 		padding: 4px;
 		border-radius: 4px;
 	}
+
 	.settings-input3 {
 		border: 1px solid #dcdfe6;
-		flex: 2;
+		flex: 3;
 		margin: 2px;
 		padding: 4px;
 		border-radius: 4px;
-		
+
 	}
+
 	.operate {
 		height: 7vh;
 		display: flex;
@@ -322,6 +394,7 @@
 		border-top: 1px solid #dcdfe6;
 		font-size: 16px;
 	}
+
 	.operate-cancel {
 		flex: 1;
 		display: flex;
@@ -329,6 +402,7 @@
 		justify-content: center;
 		color: #606266;
 	}
+
 	.operate-confirm {
 		flex: 1;
 		display: flex;

--
Gitblit v1.9.1