From 2af5f043b60c1f7ac38ecccc8f5bf44743134325 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 12 十二月 2025 18:08:00 +0800
Subject: [PATCH] test
---
pages/login/index.vue | 367 ++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 313 insertions(+), 54 deletions(-)
diff --git a/pages/login/index.vue b/pages/login/index.vue
index 108311f..b47187d 100644
--- a/pages/login/index.vue
+++ b/pages/login/index.vue
@@ -7,18 +7,18 @@
<!-- <image class="title-img" src="/images/earth.svg" alt=" 鍥剧墖" /> -->
</view>
- <text class="title">璇风櫥褰�/text>
+ <text class="title">{{translate('start_login')}}</text>
<view class="login-form">
<view class="login-form-item line">
- <text class="label">鐢ㄦ埛鍚�/text>
+ <text class="label">{{translate('account')}}</text>
<input class="input" :focus="formData.accountFocus" comfirm-type="done" type="text"
- v-model="form.account" placeholder="鎵嬫満鍙风爜" />
+ v-model="form.account" :placeholder="translate('input_login')" />
</view>
<view class="login-form-item line">
- <text class="label">瀵嗙爜</text>
+ <text class="label">{{translate('password')}}</text>
<input class="input" :focus="formData.passwordFocus" :password="hidePassContent"
- comfirm-type="done" v-model="form.password" placeholder="鐧诲綍瀵嗙爜" />
+ comfirm-type="done" v-model="form.password" :placeholder="translate('input_password')" />
<uni-icons :type="hidePassContent?'eye-slash':'eye'" size="28"
@click="clickHidePassContent"></uni-icons>
</view>
@@ -26,7 +26,7 @@
<checkbox-group @change="handleSavePwdChange">
<label>
<checkbox value="1" :checked="savePsw" />
- <text>璁颁綇瀵嗙爜</text>
+ <text>{{translate('remember_password')}}</text>
</label>
</checkbox-group>
@@ -34,7 +34,8 @@
<!-- <a @click="clickForgotPassword">蹇樿瀵嗙爜</a> -->
</view>
<view class="button-group">
- <a-button :disabled="disabledOk" type="primary" class="button" @click="clickLogin">鐧诲綍</a-button>
+ <a-button :disabled="disabledOk" type="primary" class="button"
+ @click="clickLogin">{{translate('login')}}</a-button>
<!-- <a-button class="button" type="ghost" @click="clickNewAccount">鍒涘缓璐﹀彿</a-button> -->
</view>
</view>
@@ -42,26 +43,67 @@
</view>
</view>
<view class="bottom">
+ <a class="language" @click="clickLanguage">{{translate("language")}}</a>
<view class="version">
- 鐗堟湰锛歿{version}}
+ {{translate("version")}}锛歿{version.date}}_{{version.ver}}
</view>
</view>
+ <!-- 鐗堟湰鍗囩骇寮圭獥寮� -->
+ <uni-popup ref="promotion" type="center">
+ <view class="promotion" style="width: 700rpx;padding:20rpx 40rpx; background: white;font-size: 36rpx;">
+
+ <view class="operates">
+ <view v-if="showUpdateBtns" style="text-align: center;padding:20rpx;font-weight: 700;">
+ {{translate('ask_update') }}
+ </view>
+ <view style="text-align: center;padding-top:20rpx;">
+ {{carUpdateFlag ? translate('tip_car_update') : translate('tip_app_update') }}锛歿{newVersion.date}}_{{newVersion.ver}}
+ </view>
+ <view v-if="newVersion.info" style="padding:20rpx;font-weight: 600;">
+ {{translate("version_info")}}锛歿{newVersion.info}}
+ </view>
+
+ <template v-if="showUpdateBtns">
+ <text @click="onCancel"
+ style="margin-top:30rpx; display: inline-block;color: #7cd0f8;width: 50%; text-align: center;">{{translate('cancel')}}</text>
+ <text @click="onUpdate"
+ style="margin-top:30rpx;display: inline-block;color: #7cd0f8;width: 50%; text-align: center;">{{translate('confirm')}}</text>
+ </template>
+ </view>
+ <view class="operates" v-if=" !showUpdateBtns">
+ <cmdProgress :percent="percentage" stroke-color="linear-gradient(to right, #ef32d9, #89fffd)">
+ </cmdProgress>
+ </view>
+ </view>
+ </uni-popup>
</view>
</template>
<script>
+ import cmdProgress from "@/components/cmd-progress/index.vue"
import {
session,
showToast,
- showModal
+ showModal,
+ showError
} from "@/comm/utils.js"
+ import TaskInit from "@/comm/extend.js"
import {
Button
} from 'antd-mobile-vue-next'
+ import {
+ getAppVersion,
+ getServerVersion,
+ downloadUpdatePackage
+ } from "@/api/version.js"
+
+
+
export default {
name: "PagesLogin",
components: {
- 'a-button': Button
+ 'a-button': Button,
+ cmdProgress
},
data() {
@@ -76,7 +118,19 @@
},
hidePassContent: true,
savePsw: false,
- version: "1.0.0",
+ version: {
+ date: "",
+ ver: ""
+ },
+ newVersion: {
+ date: "",
+ ver: "",
+ info:""
+ },
+ carUpdateFlag: false,
+ vesironFileName: "", //瀹夊崜app涓嬭浇閾炬帴
+ percentage: 0, //涓嬭浇杩涘害
+ showUpdateBtns: true,
}
},
computed: {
@@ -92,7 +146,11 @@
return false
}
},
- onLoad() {
+ onLoad(option) {
+ const _this = this
+ uni.setNavigationBarTitle({
+ title: this.translate('login')
+ })
uni.getSystemInfo({
success(e) {
@@ -105,7 +163,7 @@
})
const info = session.getValue("login_info")
- console.log(info)
+
this.setData({
form: {
account: info?.id || '',
@@ -117,7 +175,22 @@
// #ifdef APP-PLUS
plus.runtime.getProperty(plus.runtime.appid, (info) => {
// console.log(info);
- this.version = info.version;
+ const verStr = info.version || "";
+ const arVer = verStr.split("_")
+ if (arVer.length > 1) {
+ _this.version = {
+ date: arVer[0],
+ ver: arVer[1]
+ }
+ } else if (arVer.length == 1) {
+ _this.version = {
+ date: "",
+ ver: arVer[0]
+ }
+ }
+ if (!option.flag)
+ _this.checkAppVersion(_this.version)
+
});
//#endif
@@ -144,6 +217,13 @@
});
});
},
+
+ clickLanguage() {
+ uni.navigateTo({
+ url: "/pages/my/language"
+ })
+
+ },
clickHidePassContent() {
this.hidePassContent = !this.hidePassContent
},
@@ -156,45 +236,211 @@
}
},
- clickLogin() {
- let account = this.form.account.trim()
- if (!account) {
- showToast("璇疯緭鍏ユ墜鏈哄彿")
- return
- }
- let password = this.form.password.trim()
- if (!password) {
- showToast("璇疯緭鍏ュ瘑鐮�)
- return
- }
- if (account != "sa") {
- showToast("鎵嬫満鍙蜂笉瀛樺湪")
- return
- }
- if (password != "0000") {
- showToast("瀵嗙爜閿欒")
- return
- }
- if (this.savePsw) {
+ onUpdate() {
+ this.showUpdateBtns = false;
- session.setValue("login_info", {
- id: account,
- password,
- savePsw: true,
- })
- } else {
- session.setValue("login_info", {
- id: account,
- password: ""
- })
+
+ this.updateAPP(this.vesironFileName, this.newVersion)
+ },
+ onCancel() {
+ this.$refs.promotion.close();
+ if (!this.carUpdateFlag) {
+ setTimeout(() => {
+ this.checkServerVersion()
+ }, 500)
}
- getApp().globalData.withLog = session.getValue("write_log") ? true:false
- uni.reLaunch({
- url: "/pages/index/index"
+
+ },
+ updateAPP(fileName, verInfo) {
+ let _this = this;
+ let sys = uni.getSystemInfoSync().platform //妫�煡绯荤粺
+
+ downloadUpdatePackage(fileName, (path) => {
+ if (_this.carUpdateFlag) {
+ var pathArr = fileName.split(".")
+ const fileExt = pathArr.pop()
+ const fileName2 = `EasyGO_${verInfo.date}_${verInfo.ver}.${fileExt}`
+ TaskInit.fileUtils.clearSavedFiles("car_version")
+ TaskInit.fileUtils.moveToLocal(path, "car_version", fileName2).then((
+ res) => {
+ console.log("淇濆瓨鎴愬姛锛�, res)
+ showToast(this.translate('download_success'));
+ }).catch((err) => {
+ console.log("淇濆瓨澶辫触锛�, err)
+ showToast(_this.translate("failed_save_file"))
+ })
+ } else {
+ plus.runtime.openFile(path); //閫夋嫨杞欢鎵撳紑鏂囦欢
+ showToast(this.translate('update_success'));
+ }
+ _this.$refs.promotion.close();
+
+ }, (res) => {
+ console.log('涓嬭浇杩涘害' + res.progress);
+ _this.percentage = res.progress
+ if (_this.percentage == 100) {
+ _this.$refs.promotion.close();
+ }
+ }, (err) => {
+ _this.$refs.promotion.close();
+ showToast(`${_this.translate('update_fail') },${err}`);
})
- // uni.navigateTo({
- // url: `/pages/index/connect?ip=192.168.1.2&sid=HH&password=HH888888`
- // })
+
+ },
+ async checkAppVersion(version) {
+ try {
+ const listVer = await getAppVersion() || []
+ const appVer = listVer[0] || {}
+ this.vesironFileName = appVer.file_name || ""
+ if (this.vesironFileName) {
+ var isver = this.compareVersion({
+ date: appVer.file_time,
+ ver: appVer.version
+ }, version);
+
+ if (isver) {
+ this.carUpdateFlag = false
+ this.newVersion = {
+ date: appVer.file_time,
+ ver: appVer.version,
+ info: appVer.info,
+ }
+ this.$refs.promotion.open();
+ } else {
+ this.checkServerVersion()
+ }
+ } else {
+ this.checkServerVersion()
+ }
+ } catch (ex) {
+ console.log(ex)
+ }
+
+ },
+ getVersionFromFileName(fileName) {
+ if (!fileName.trim()) {
+ return {
+ date: "",
+ ver: ""
+ }
+ }
+ let versionInfos = fileName.trim().split('_');
+ let date = versionInfos[1]
+ let version2 = versionInfos[2]
+ let versionInfos2 = version2.split('.');
+ versionInfos2.pop()
+ return {
+ date,
+ ver: versionInfos2.join(".")
+ }
+ },
+ compareVersion(curV, reqV) {
+
+ if (curV.date == reqV.date) {
+ return curV.ver > reqV.ver
+ }
+ return curV.date > reqV.date
+ },
+ async checkServerVersion() {
+ try {
+ const listVer = await getServerVersion() || []
+ const svrVer = listVer[0] || {}
+ this.vesironFileName = svrVer.file_name || ""
+ if (this.vesironFileName) {
+ var oldVerName = ""
+ var fileList = []
+ try {
+ fileList = await TaskInit.fileUtils.listSavedFiles('car_version')
+ } catch (ex) {
+ console.log(ex)
+ }
+ fileList.forEach((ele) => {
+ if (oldVerName) {
+ if (oldVerName < ele.name) {
+ oldVerName = ele.name
+ }
+ } else {
+ oldVerName = ele.name
+ }
+ })
+ console.log(oldVerName)
+ if (oldVerName) {
+ const oldVer = this.getVersionFromFileName(oldVerName)
+ const isVer = this.compareVersion({
+ date: svrVer.file_time,
+ ver: svrVer.version
+ }, oldVer);
+ if (isVer || !oldVer) {
+ this.carUpdateFlag = true
+ this.newVersion = {
+ date: svrVer.file_time,
+ ver: svrVer.version,
+ info: svrVer.info,
+ }
+ this.$refs.promotion.open();
+ }
+ } else {
+ this.carUpdateFlag = true
+ this.newVersion = {
+ date: svrVer.file_time,
+ ver: svrVer.version,
+ info: svrVer.info,
+ }
+ this.$refs.promotion.open();
+ }
+
+ }
+ } catch (ex) {
+
+ console.log(ex)
+ }
+
+ },
+
+ async clickLogin() {
+
+ try {
+ let account = this.form.account.trim()
+ if (!account) {
+ showToast(this.translate("input_login"))
+ return
+ }
+ let password = this.form.password.trim()
+ if (!password) {
+ showToast(this.translate("input_password"))
+ return
+ }
+ if (account != "sa") {
+ showToast(this.translate("account_not_exist"))
+ return
+ }
+ if (password != "0000") {
+ showToast(this.translate("password_error"))
+ return
+ }
+ if (this.savePsw) {
+
+ session.setValue("login_info", {
+ id: account,
+ password,
+ savePsw: true,
+ })
+ } else {
+ session.setValue("login_info", {
+ id: account,
+ password: ""
+ })
+ }
+ getApp().globalData.withLog = session.getValue("write_log") ? true : false
+ uni.reLaunch({
+ url: "/pages/index/index"
+ })
+ // uni.navigateTo({
+ // url: `/pages/index/connect?ip=192.168.1.2&sid=HH&password=HH888888`
+ // })
+ } catch (ex) {
+ showError(ex)
+ }
},
clickNewAccount() {
uni.navigateTo({
@@ -205,8 +451,13 @@
uni.navigateTo({
url: "/pages/login/forgot-password"
})
- }
- }
+ },
+ translate(t) {
+ if (typeof this.$t == "function") return this.$t(`page.${t}`)
+ else return t;
+ },
+ },
+
}
</script>
@@ -233,6 +484,13 @@
color: #888;
flex-direction: row;
display: flex;
+ }
+
+ .language {
+ float: left;
+ display: flex;
+ text-decoration: underline;
+ /* 涓嬪垝绾�*/
}
}
@@ -275,7 +533,7 @@
margin: 20rpx 10rpx;
font-size: 28rpx !important;
flex-direction: row;
-
+
.label {
text-align: right;
@@ -289,7 +547,8 @@
}
}
- .line{
+
+ .line {
border-bottom: 2rpx solid #ddd;
}
--
Gitblit v1.9.1