From 07925905f1a596e20e980de6d42db217abb753b0 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 12 十二月 2025 18:06:11 +0800
Subject: [PATCH] plugin
---
pages/login/index.vue | 269 +++++++++++++++++++++++++++++++++--------------------
1 files changed, 167 insertions(+), 102 deletions(-)
diff --git a/pages/login/index.vue b/pages/login/index.vue
index de15e2d..a2810b5 100644
--- a/pages/login/index.vue
+++ b/pages/login/index.vue
@@ -1,25 +1,22 @@
<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>
<div class="mui-content">
<form id='login-form' class="mui-input-group">
- <a href="javascript:;" class="SetServer" @click="inputDialogToggle">{{translateSys('set')}}</a>
- <a href="javascript:;" class="SetServer" @click="clickSetLanguage">{{translateSys('language')}}</a>
+ <a href="javascript:;" class="set-server" @click="inputDialogToggle">{{translateSys('set')}}</a>
+ <navigator class="set-language" url="./language">
+ <a href="javascript:;">{{translateSys('language')}}</a>
+ </navigator>
- <!-- <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 +32,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 +67,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">
@@ -82,7 +92,8 @@
import cmdProgress from "@/components/cmd-progress/cmd-progress.vue"
import {
showModal,
- showToast,
+ showInfo,
+ showError,
showLoading,
hideLoading
} from "@/js/Page.js"
@@ -91,9 +102,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 +123,11 @@
downloadUrl: "", //瀹夊崜app涓嬭浇閾炬帴
percentage: 0, //涓嬭浇杩涘害
showBtns: true,
+ selectedClasses: "",
+ classesLst: [],
+ largeMode: false,
+
+
}
},
onShow() {
@@ -144,12 +164,9 @@
async check(version) {
try {
if (!this.userServer) {
- uni.showModal({
- title: this.translateSys("tip"),
- content: this.translate("tip_no_web_server"),
- showCancel: false,
- confirmText: this.translateSys('cancel')
- });
+
+ showInfo(this.translate('tip_no_web_server'));
+
return;
}
// var ser = this.userServer.toLowerCase().split('/');
@@ -166,16 +183,8 @@
} catch (ex) {
// console.log(ex);
- let exStr = JSON.stringify(ex)
- if (exStr == "{}")
- exStr = ex
- let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr
- uni.showModal({
- title: this.translateSys("error"),
- content: tip,
- showCancel: false,
- confirmText: this.translateSys("cancel")
- });
+ showError(ex, this.translateSys("error"));
+
}
@@ -239,18 +248,12 @@
//涓嬭浇鎴愬姛,d.filename鏄枃浠跺湪淇濆瓨鍦ㄦ湰鍦扮殑鐩稿璺緞锛屼娇鐢ㄤ笅闈㈢殑API鍙浆涓哄钩鍙扮粷瀵硅矾寰� var fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
plus.runtime.openFile(d.filename); //閫夋嫨杞欢鎵撳紑鏂囦欢
- uni.showToast({
- icon: 'none',
- title: this.translate('update_success')
- });
+ showInfo(this.translate('update_success'));
_this.$refs.promotion.close();
} else {
//涓嬭浇澶辫触
plus.downloader.clear(); //娓呴櫎涓嬭浇浠诲姟
- uni.showToast({
- icon: 'none',
- title: this.translate('update_fail')
- });
+ showInfo(this.translate('update_fail'));
_this.showBtns = false;
}
})
@@ -275,20 +278,18 @@
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
+
}
}
})
- },
- clickSetLanguage() {
- uni.navigateTo({
- url: './language'
- });
},
dialogInputConfirm(val) {
@@ -308,11 +309,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,40 +338,34 @@
// ((expiredays==null)?'':';expires='+exdate.toGMTString());
// },
+ onClickLogin() {
+ this.handleButtonClick((done) => {
+ this.logind()
+ setTimeout(() => {
+ done(); // 閲嶇疆鐘舵�
+ }, 1000);
+ });
+ },
async logind() {
try {
if (!this.userServer) {
- uni.showModal({
- title: this.translateSys('tip'),
- content: this.translate('tip_no_web_server'),
- showCancel: false,
- confirmText: this.translateSys('cancel')
- });
+ showInfo(this.translate('tip_no_web_server'));
return;
}
if (!this.userName) {
- uni.showModal({
- title: this.translateSys('tip'),
- content: this.translate('tip_no_user_account'),
- showCancel: false,
- confirmText: this.translateSys('cancel')
- });
+ showInfo(this.translate('tip_no_user_account'))
return;
}
if (!this.userPwd) {
- uni.showModal({
- title: this.translateSys('tip'),
- content: this.translate('tip_no_user_password'),
- showCancel: false,
- confirmText: this.translateSys('cancel')
- });
+ showInfo(this.translate('tip_no_user_password'));
+
return;
}
var rootUrl = 'http://' + this.userServer
if (this.userServer.includes("://")) {
rootUrl = this.userServer
}
- showLoading("loading......")
+ showLoading("loading...")
const res = await login(rootUrl, this.userName, this.userPwd)
//璁剧疆鍏ㄥ眬鍙傛暟锛歶ser-鐢ㄦ埛淇℃伅
utils.session.setValue('server', rootUrl);
@@ -383,33 +379,98 @@
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()
- let exStr = JSON.stringify(ex)
- if (exStr == "{}")
- exStr = ex
- let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr
- uni.showModal({
- title: this.translateSys("error"),
- content: tip,
- showCancel: false,
- confirmText: this.translateSys("cancel")
- });
+ showError(ex, this.translateSys("error"));
}
},
- 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) {
+ showInfo(this.translate("page.please_login_after_admin_add_classes"));
+ 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) {
+ showError(ex, this.translateSys("error"));
+
+ 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;
@@ -421,18 +482,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 +520,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;
});
}
}
@@ -487,7 +542,8 @@
background-repeat: no-repeat !important; */
}
- .SetServer {
+ .set-language,
+ .set-server {
float: left;
margin-left: 20rpx;
}
@@ -564,32 +620,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 +638,32 @@
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