From d8e6f395fea1419c73f6b6f0a2ddd75eac3eed84 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期五, 01 十二月 2023 08:15:17 +0800
Subject: [PATCH] #
---
pages/LoginDemo/LoginDemo.vue | 299 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 268 insertions(+), 31 deletions(-)
diff --git a/pages/LoginDemo/LoginDemo.vue b/pages/LoginDemo/LoginDemo.vue
index 829f950..e399630 100644
--- a/pages/LoginDemo/LoginDemo.vue
+++ b/pages/LoginDemo/LoginDemo.vue
@@ -1,7 +1,7 @@
<template>
<view class="main">
<!-- 璁剧疆鎸夐挳 -->
- <uni-icons type="gear" size="30" color="#b1b3b8" class="setting"></uni-icons>
+ <uni-icons type="gear" size="30" color="#b1b3b8" class="setting" @click="settings"></uni-icons>
<view class="left">
<!-- logo -->
<view class="logo-box">
@@ -10,17 +10,45 @@
</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">
- 鐧诲綍
- </view>
+ <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" 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>
+ </view>
+ </scroll-view>
+ <view class="operate">
+ <view class="operate-cancel" @click="cancel">
+ 鍙栨秷
+ </view>
+ <view class="operate-confirm" @click="confirm">
+ 纭
+ </view>
+ </view>
+ </view>
+ </uni-popup>
+
<!-- 鐗堟湰鍙� -->
<!-- #ifdef APP-PLUS -->
<view class="version">
@@ -31,12 +59,45 @@
</template>
<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
+ remberPassword: true,
+ 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,
+ btnText: '鐧诲綍'
+ },
}
+ },
+ computed: mapState({
+ project: state => state.project
+ }),
+ onShow() {
+
},
mounted() {
uni.getSystemInfo({
@@ -44,18 +105,83 @@
// 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() {
+ this.$refs.settings.close()
+ },
+ confirm() {
+ uni.setStorageSync('Network', this.network);
+ this.$refs.settings.close()
+ },
+ 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: 'none',
+ title: '杩炴帴澶辫触锛岃妫�鏌ョ綉缁�'
+ })
+ } else {
+ this.load.loading = false;
+ this.load.btnText = '鐧诲綍';
+ uni.showToast({
+ icon: 'none',
+ title: `${this.user.username} ${res.msg}`
+ })
+ }
+ },
+ // end
}
}
</script>
@@ -63,13 +189,14 @@
<style lang="scss" scoped>
.setting {
position: absolute;
- top: 16rpx;
- right: 16rpx;
- border-radius: 40rpx;
- box-shadow: inset 4rpx 4rpx 4rpx rgba(0,0,0,.3),
- inset -4rpx -4rpx 4rpx rgba(255,255,255,.7),
- -4rpx -4rpx 4rpx rgba(0,0,0,.4);
+ 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);
}
+
.main {
height: 100%;
width: 100%;
@@ -77,95 +204,122 @@
background-color: #ECF0F1;
position: absolute;
}
+
.left {
display: flex;
align-items: center;
justify-content: center;
}
+
.logo-box {
- background-color: #ECF0F1;
- border-radius: 40rpx;
- 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);
+ 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);
}
+
image {
height: 100%;
width: 100%;
}
+
.right {
display: flex;
flex-direction: column;
justify-content: space-around;
}
+
.input-box {
width: 100%;
}
+
.my-input {
width: 80%;
- margin: 32rpx 10% 32rpx 10%;
+ 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;
- height: 100rpx;
+ height: 50px;
text-align: center;
- line-height: 100rpx;
+ line-height: 50px;
font-size: 20px;
- background-color: #409EFF;
+ background-color: #409EFF;
color: #ECF0F1;
- border-radius: 14rpx;
- box-shadow: inset 8rpx 8rpx 8rpx rgba(0,0,0,.3),
- inset -8rpx -8rpx 8rpx rgba(255,255,255,.4),
- -8rpx -8rpx 10rpx rgba(0,0,0,.4);
+ 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);
}
+
+ .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);
+ }
+
@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%;
@@ -174,4 +328,87 @@
font-size: 10px;
color: #909399;
}
+
+ .popup {
+ width: 90vw;
+ height: 40vh;
+ background-color: #fff;
+ border-radius: 16px;
+ }
+
+ .title {
+ height: 10vh;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ 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: 5;
+ margin: 2px;
+ padding: 4px;
+ border-radius: 4px;
+ }
+
+ .settings-input2 {
+ border: 1px solid #dcdfe6;
+ flex: 3;
+ margin: 2px;
+ padding: 4px;
+ border-radius: 4px;
+ }
+
+ .settings-input3 {
+ border: 1px solid #dcdfe6;
+ flex: 3;
+ margin: 2px;
+ padding: 4px;
+ border-radius: 4px;
+
+ }
+
+ .operate {
+ height: 7vh;
+ display: flex;
+ text-align: center;
+ border-top: 1px solid #dcdfe6;
+ font-size: 16px;
+ }
+
+ .operate-cancel {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #606266;
+ }
+
+ .operate-confirm {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-left: 1px solid #dcdfe6;
+ color: #00aeec;
+ }
</style>
\ No newline at end of file
--
Gitblit v1.9.1