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 | 165 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 143 insertions(+), 22 deletions(-) diff --git a/pages/login/index.vue b/pages/login/index.vue index de2efe3..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> @@ -13,7 +13,6 @@ <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"> @@ -64,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"> @@ -87,7 +98,9 @@ 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], @@ -105,6 +118,11 @@ downloadUrl: "", //瀹夊崜app涓嬭浇閾炬帴 percentage: 0, //涓嬭浇杩涘害 showBtns: true, + selectedClasses: "", + classesLst: [], + largeMode: false, + + } }, onShow() { @@ -272,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 + } } }) @@ -305,6 +326,7 @@ // }, 3000) // }, 3000) }, + rememberPwd(e) { //璁颁綇瀵嗙爜 console.log(e.target); utils.session.setValue('account', ''); @@ -388,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() @@ -414,6 +448,82 @@ 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}`) else return t; @@ -429,7 +539,8 @@ 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; @@ -561,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 { @@ -597,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