From df481aebfb7a19eea5d6c02f93c6f5776b0fdc19 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 23 五月 2025 18:30:41 +0800
Subject: [PATCH] 界面大模式

---
 pages/login/index.vue |  212 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 165 insertions(+), 47 deletions(-)

diff --git a/pages/login/index.vue b/pages/login/index.vue
index de15e2d..0406e93 100644
--- a/pages/login/index.vue
+++ b/pages/login/index.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-login" style="width: 100vw;height: 64vh;">
+	<view class="uni-page-login " :class="largeMode?'large-mode':''" style="width: 100vw;height: 64vh;">
 		<div id="headr" class="mui-bar mui-bar-nav">
 			<image class="logo" src="../../images/login/mobox_log_200.png"></image>
 		</div>
@@ -8,18 +8,11 @@
 
 				<a href="javascript:;" class="SetServer" @click="inputDialogToggle">{{translateSys('set')}}</a>
 				<a href="javascript:;" class="SetServer" @click="clickSetLanguage">{{translateSys('language')}}</a>
-
-				<!-- <div class="mui-input-row">
-					<label class="la_icon"><image class="logo_input" src="../../images/login/svr_30.png"></image></label>
-					<input type="text" class="mui-input" v-model="userServer" placeholder="鏈嶅姟鍣ㄥ湴鍧�>
-					<label class="mui-navigate-right" id="sersel"><image class="logo_icon" src="../../images/login/sel_left.png" ></image></label>
-				</div> -->
 				<div class="mui-input-row">
 					<label class="la_icon">
 						<image class="logo_input" src="../../images/login/person_30.png"></image>
 					</label>
 					<input type="text" class="mui-input" v-model="userName" :placeholder="translateSys('input_login')">
-					<!-- <label class="mui-navigate-right" id="namsel"><image class="logo_icon" src="../../images/login/user-photo.png</image></label> -->
 				</div>
 				<div class="mui-input-row">
 					<label class="la_icon">
@@ -35,7 +28,8 @@
 					</label>
 				</checkbox-group>
 			</form>
-			<button id='login' type="default" @tap="logind" class="btn_login">{{translateSys("start_login")}}</button>
+			<button id='login' :disabled="btnLoading" type="default" @tap="onClickLogin"
+				class="btn_login">{{translateSys("start_login")}}</button>
 			<p style="float:right; margin: 10px 10px;color:#c8c7cc">
 				<span>{{translateSys('version')}}锛�/span>
 				<span>{{version}}</span>
@@ -69,6 +63,18 @@
 				</view>
 			</uni-popup>
 			<!-- 鐗堟湰鍗囩骇寮圭獥缁撴潫 -->
+			<uni-popup ref="refClassDialog" type="dialog">
+				<uni-popup-dialog mode="info" :title="$t('page.bind_classes')" @confirm="dialogClassConfirm">
+					<view class="popup-class">
+						<view class="popup-class-item" :style="{color:item.text == selectedClasses ? '#27A6E1' :''}"
+							v-for="(item,index) in classesLst" :key="index" @click="clickSelectClass(item)">
+							<view class="ico"><uni-icons v-if="item.text == selectedClasses" type="checkmarkempty"
+									:color="item.text == selectedClasses ? '#27A6E1' :''" size="24"></uni-icons></view>
+							{{item.text}}
+						</view>
+					</view>
+				</uni-popup-dialog>
+			</uni-popup>
 		</view>
 		<!-- <button @click="onClickWms">鐧诲綍wms</button>
 		<view class="webview">
@@ -91,9 +97,13 @@
 		login,
 		getApkVersionInfo
 	} from "@/api/index.js"
-
+	import buttonClickMixin from '@/mixins/button-click.js';
+	import {
+		dictGetInfo
+	} from "@/api/mobox.js"
 	import utils from "@/js/utils.js"
 	export default {
+		mixins: [buttonClickMixin],
 		components: {
 			cmdProgress
 		},
@@ -108,6 +118,11 @@
 				downloadUrl: "", //瀹夊崜app涓嬭浇閾炬帴
 				percentage: 0, //涓嬭浇杩涘害
 				showBtns: true,
+				selectedClasses: "",
+				classesLst: [],
+				largeMode: false,
+
+
 			}
 		},
 		onShow() {
@@ -148,7 +163,7 @@
 							title: this.translateSys("tip"),
 							content: this.translate("tip_no_web_server"),
 							showCancel: false,
-							confirmText: this.translateSys('cancel')
+							confirmText: this.translateSys('close')
 						});
 						return;
 					}
@@ -174,7 +189,7 @@
 						title: this.translateSys("error"),
 						content: tip,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				}
 
@@ -275,12 +290,15 @@
 			inputDialogToggle() {
 				// this.$refs.inputDialog.open()
 				const $this = this
+				
 				uni.navigateTo({
 					url: "./set",
 					events: {
 						exitSetEvent(val) {
 							$this.userServer = val;
 							$this.query(); //鐗堟湰鍗囩骇
+							$this.largeMode = 	getApp().globalData.largeMode 
+					
 						}
 					}
 				})
@@ -308,11 +326,12 @@
 				// }, 3000)
 				// }, 3000)
 			},
+
 			rememberPwd(e) { //璁颁綇瀵嗙爜
 				console.log(e.target);
 				utils.session.setValue('account', '');
 				utils.session.setValue('password', '');
-				if (e.target.value[0] == '1') {
+				if (e.detail.value[0] == '1') {
 					utils.session.setValue('account', this.userName);
 					utils.session.setValue('password', this.userPwd);
 				}
@@ -336,6 +355,14 @@
 			// 	((expiredays==null)?'':';expires='+exdate.toGMTString());
 
 			// },
+			onClickLogin() {
+				this.handleButtonClick((done) => {
+					this.logind()
+					setTimeout(() => {
+						done(); // 閲嶇疆鐘舵�
+					}, 1000);
+				});
+			},
 			async logind() {
 				try {
 					if (!this.userServer) {
@@ -343,7 +370,7 @@
 							title: this.translateSys('tip'),
 							content: this.translate('tip_no_web_server'),
 							showCancel: false,
-							confirmText: this.translateSys('cancel')
+							confirmText: this.translateSys('close')
 						});
 						return;
 					}
@@ -352,7 +379,7 @@
 							title: this.translateSys('tip'),
 							content: this.translate('tip_no_user_account'),
 							showCancel: false,
-							confirmText: this.translateSys('cancel')
+							confirmText: this.translateSys('close')
 						});
 						return;
 					}
@@ -361,7 +388,7 @@
 							title: this.translateSys('tip'),
 							content: this.translate('tip_no_user_password'),
 							showCancel: false,
-							confirmText: this.translateSys('cancel')
+							confirmText: this.translateSys('close')
 						});
 						return;
 					}
@@ -383,10 +410,22 @@
 						pwd: this.userPwd
 					}
 					hideLoading()
+					const bindInfo = utils.session.getValue('bind_classes')
+					app.globalData.bindClasses = bindInfo?.checked || false
+					if (app.globalData.bindClasses) {
+						this.selectedClasses = bindInfo?.classes || ""
+						await this.loadClassesList()
+						if (this.classesLst.length > 0) {
+							this.$refs.refClassDialog.open()
 
+						}
+						return
+					}
 					uni.navigateTo({
 						url: '../index/index?args=9999999999'
 					})
+
+
 
 				} catch (ex) {
 					hideLoading()
@@ -398,17 +437,92 @@
 						title: this.translateSys("error"),
 						content: tip,
 						showCancel: false,
-						confirmText: this.translateSys("cancel")
+						confirmText: this.translateSys('close')
 					});
 				}
 
 			},
-			onClickWms()
-			{
+			onClickWms() {
 				let otherAppSchemeURL = "testapp://pages/index/index"; // 鏇挎崲涓虹洰鏍嘺pp鐨剆cheme URL
 				plus.runtime.openURL(otherAppSchemeURL, function(error) {
 					console.error('鎵撳紑搴旂敤澶辫触: ', error);
 				}, "uni.TeatApp");
+			},
+			async loadClassesList() {
+				try {
+					var $this = this;
+					var dataInfo = {
+						dict_id: "",
+						dict_name: "WMS_CLASSES"
+					};
+					const res = await dictGetInfo(dataInfo)
+					var list = [];
+					(res.dict_item_list || []).forEach((item) => {
+						list.push({
+							text: item.value ? item.value : item.name,
+							value: item.name,
+						});
+					});
+
+					if (list.length == 0) {
+						uni.showModal({
+							title: this.translate("get_classes_fail"),
+							content: this.translate("page.please_login_after_admin_add_classes"),
+							showCancel: false,
+							confirmText: this.translateSys('close')
+						});
+						this.selectedClasses = ""
+					} else {
+						if (this.selectedClasses) {
+							const curIndex = list.findIndex((a) => {
+								return a.text == this.selectedClasses
+							})
+							if (curIndex < 0) {
+								this.selectedClasses = list[0].text
+							}
+						} else {
+							this.selectedClasses = list[0].text
+						}
+					}
+					this.classesLst = list
+
+
+				} catch (ex) {
+					let exStr = JSON.stringify(ex)
+					if (exStr == "{}")
+						exStr = ex
+					let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr
+					uni.showModal({
+						title: this.translate("get_classes_fail"),
+						content: tip,
+						showCancel: false,
+						confirmText: this.translateSys('close')
+					});
+
+					this.selectedClasses = ""
+					this.classesLst = []
+					// {
+					// 	text: "娴嬭瘯",
+					// 	value: "test"
+					// }, {
+					// 	text: "娴嬭瘯3",
+					// 	value: "test3"
+					// }
+				}
+			},
+			dialogClassConfirm() {
+
+				utils.session.setValue('bind_classes', {
+					checked: true,
+					classes: this.selectedClasses
+				})
+				getApp().globalData.classes = this.selectedClasses
+				uni.navigateTo({
+					url: '../index/index?args=9999999999'
+				})
+			},
+			clickSelectClass(item) {
+				this.selectedClasses = item.text
 			},
 			translate(t) {
 				if (typeof this.$t == "function") return this.$t(`page.${t}`)
@@ -421,18 +535,12 @@
 		},
 		onLoad(options) {
 			//鑾峰彇mac鍦板潃
-			let tip=`login:account:${options.account || ""},password:${options.password || ""}`
-			// console.log(options);
-			uni.showModal({
-				title: "鍙傛暟",
-				content: tip,
-				showCancel: false,
-				confirmText:"cancel"
-			});
+
 			var url = utils.session.getValue('server');
 			var username = utils.session.getValue('account');
 			var userpwd = utils.session.getValue('password');
-
+			this.largeMode = utils.session.getValue('large_mode') ? true : false
+			getApp().globalData.largeMode = this.largeMode
 			var ischecked = false;
 			if (!this.userServer)
 				this.userServer = url;
@@ -465,7 +573,7 @@
 			console.log('Android璁惧鐨刣eviceId:', deviceId);
 			plus.runtime.getProperty(plus.runtime.appid, (info) => {
 				// console.log(info);
-				this.$data.version = info.version;
+				this.version = info.version;
 			});
 		}
 	}
@@ -564,32 +672,14 @@
 
 		.mui-input-row input {
 			font-family: 'Helvetica Neue', Helvetica, sans-serif;
-			font-size: 15px;
 			width: 480rpx;
-			/* float: right; */
 			margin-bottom: 0;
 			padding-left: 20rpx;
-			/* padding-right: 10rpx; */
-			/* line-height: 30rpx; */
-			height: 85rpx;
-			/* padding: 7px 40px 7px 0px; */
 			-webkit-user-select: text;
-			/* border: 0; */
-			/* border-radius: 0; */
 			box-shadow: none;
 			outline: 0;
 			background: 0 0;
 			-webkit-appearance: none;
-		}
-
-		.mui-input-group label.mui-navigate-right {
-			font-size: 25px;
-			float: right;
-			padding: 0;
-			width: 80rpx;
-			margin-right: 5rpx;
-			margin-top: -88rpx;
-			display: inline-block;
 		}
 
 		button.btn_login {
@@ -600,5 +690,33 @@
 			border: none;
 			color: #fff;
 		}
+
+		.popup-class {
+			display: flex;
+			flex-direction: column;
+			width: 100%;
+
+			.popup-class-item {
+				padding: 20rpx 0;
+				border-bottom: 1px solid #eee;
+				display: flex;
+				flex-direction: row;
+
+				.ico {
+					width: 20px;
+					margin: 0 20rpx;
+
+				}
+			}
+
+		}
 	}
+	
+	.uni-page-login.large-mode{
+		.logo_input {
+			height: 54rpx;
+			width: 54rpx;
+		}
+	}
+	
 </style>
\ No newline at end of file

--
Gitblit v1.9.1