pang.jiabao
2025-04-11 162b3abda98bf6c33d60e0846b54febade343274
pages/login/login.vue
@@ -9,12 +9,12 @@
            <view class="box padding-lr-xl login-paddingtop" :style="[{animation: 'show ' + 0.6+ 's 1'}]">
            <block v-if="loginWay==1">
               <view class="cu-form-group margin-top  shadow-warp" :class="[shape=='round'?'round':'']">
                  <view class="title-login"><text class="cuIcon-people margin-right-xs"></text>账号:</view>
                  <input placeholder="请输入账号" name="input" v-model="userName"></input>
                  <view class="title-login"><text class="cuIcon-people margin-right-xs"></text></view>
                  <input placeholder="Пожалуйста, введите имя пользователя" name="input" v-model="userName"></input>
               </view>
               <view class="cu-form-group margin-top shadow-warp" :class="[shape=='round'?'round':'']">
                  <view class="title-login"><text class="cuIcon-lock margin-right-xs"></text>密码:</view>
                  <input class="uni-input" placeholder="请输入密码" :password="!showPassword" v-model="password" />
                  <view class="title-login"><text class="cuIcon-lock margin-right-xs"></text></view>
                  <input class="uni-input" placeholder="Пожалуйста, введите пароль" :password="!showPassword" v-model="password" />
                  <view class="action text-lg">
                      <text :class="[showPassword ? 'cuIcon-attention' : 'cuIcon-attentionforbid']" @click="changePassword"></text>
                  </view>
@@ -22,26 +22,54 @@
               <view class="flex margin-xs justify-between">
                  <checkbox-group class="rember">
                     <label>
                        <checkbox value="cb" :checked="rember"  @tap="rember = !rember" style="transform:scale(0.7)" /><text>记住密码</text>
                        <checkbox value="cb" :checked="rember"  @tap="rember = !rember" style="transform:scale(0.7)" /><text>Запомнить пароль</text>
                     </label>
                  </checkbox-group>
                  <text class="changeIP" @click="changeIP()">设置IP</text>
                  <!-- <text class="changeIP" @click="changeIP()">设置IP</text> -->
                  <text class="changeIP" @click="config()">Запомнить пароль</text>
               </view>
               <view class="flex padding justify-center margin-top">
                  <button class="cu-btn bg-blue lg  shadow" :loading="loading" :class="[shape=='round'?'round':'']"
                     @tap="onLogin"><text space="emsp">{{loading ? "登录中...":" 登录 "}}</text>
                     @tap="onLogin"><text space="emsp">{{loading ? "登录中...":" Вход "}}</text>
                  </button>
               </view>
            </block>
   
            <!-- #ifdef APP-PLUS -->
            <view class="padding flex flex-direction  text-center">
            <view class="padding flex flex-direction  text-center" style="position: fixed;width: 80%;bottom: 0;text-align: center;">
               当前版本:{{version}}
            </view>
            <!-- #endif -->
            
            </view>
        </scroll-view>
      <view>
         <uni-popup ref="popup" type="right">
            <view class="config">
               <view class="config-title"><text >Конфигурация</text></view>
               <view class="config-item">
                  <text>IP-адрес:</text>
                  <input v-model="IP" type="text" placeholder="192.168.1.1" placeholder-style="font-size:16rpx;text-indent: 10rpx;">
               </view>
               <view class="config-item">
                  <text>Номер порта:</text>
                  <input v-model="PORT" type="text" placeholder="8080" placeholder-style="font-size:16rpx;text-indent: 10rpx;">
               </view>
               <view class="config-item">
                  <text>项目:</text>
                  <input v-model="PROJECT" type="text" placeholder="elswms" placeholder-style="font-size:16rpx;text-indent: 10rpx;">
               </view>
               <view class="flex justify-around">
                  <button class="cu-btn bg-blue lg" @click="configConfirm">Сохранить</button>
               </view>
            </view>
         </uni-popup>
      </view>
      <!-- 登录加载弹窗 -->
      <view class="cu-load load-modal" v-if="loading">
         <!-- <view class="cuIcon-emojifill text-orange"></view> -->
@@ -98,8 +126,9 @@
            userName:'',
            password:'',
            rember:true,
            IP:'',
            PORT:'8080',// 默认端口号
            IP:'10.20.192.200',
            PORT:'',// 默认端口号
            PROJECT:''
            };
        },
      mounted() {
@@ -116,7 +145,6 @@
             that.userName = '';
             that.password = '';
         }
         const UIP = uni.getStorageSync('UIP');
         if (UIP) {
             that.IP = UIP;
@@ -130,8 +158,11 @@
             that.PORT = UPORT;
            that.basePORT = UPORT;
         } else {
             that.PORT = '8080';
             that.PORT = '';
         }
         const PROJ = uni.getStorageSync('UPROJ');
         this.PROJECT = PROJ;
         this.baseUrl = PROJ
      },
      onLoad:function(){
         // #ifdef APP-PLUS
@@ -161,6 +192,20 @@
            },
      },
        methods: {
         // 配置 URL PORT 项目(jkwms)
         config() {
            this.$refs.popup.open("center")
         },
         // 确认配置
         configConfirm() {
            this.baseIP = this.IP
            uni.setStorageSync('UIP',this.baseIP)
            this.basePORT = this.PORT
            uni.setStorageSync('UPORT',this.basePORT)
            this.baseUrl = this.PROJECT
            uni.setStorageSync('UPROJ',this.baseUrl)
            this.$refs.popup.close()
         },
         longpressImg() { // 长按图片
            this.$refs.serverPort.open()
         },
@@ -192,11 +237,11 @@
         },
         onLogin: function (){
            if(!this.userName || this.userName.length==0){
               uni.showToast({title: '请填写账号',icon: "none"})
               uni.showToast({title: 'Пожалуйста, введите имя пользователя',icon: "none"})
               return;
            }
            if(!this.password || this.password.length==0){
               uni.showToast({title: '请填写密码',icon: "none"})
               uni.showToast({title: 'Пожалуйста, введите пароль',icon: "none"})
               return;
            }
            if(this.baseIP == undefined || this.baseIP == '' ) {
@@ -214,9 +259,16 @@
               return;
            }
            uni.showLoading();
            setTimeout(function(){
               uni.hideLoading();
               // uni.showToast({
               //    title: '登录超时',
               //    position: 'bottom',
               //    duration: 1000
               // });
            },6000)
            uni.request({
                url: this.baseHttp + this.baseIP + ':' +this.basePORT + this.baseUrl + '/login.action',
                url: this.baseHttp + this.baseIP + ':' +this.basePORT +"/" +this.baseUrl + '/login.action',
                data: {
                  username:this.userName,
                  password:md5.hex_md5(this.password) 
@@ -242,7 +294,7 @@
                     }
                     uni.setStorageSync('token', res.data.token);
                     setTimeout(() => {
                        uni.navigateBack();      //   小程序用这个  把首页路由放第一个
                        // uni.navigateBack();      //   小程序用这个  把首页路由放第一个
                        uni.reLaunch({
                           url: '../index/index'
                        });
@@ -292,6 +344,37 @@
   @import "../../colorui/icon.css";
   @import "../../colorui/animation.css";
   
   .config {
      width: 500rpx;
      height: 500rpx;
      background-color: #fff;
   }
   .config-title {
      height: 100rpx;
      font-size: 32rpx;
      text-align: center;
      line-height: 100rpx;
   }
   .config-item {
      height: 100rpx;
   }
   .config-item text {
      display: inline-block;
      float: left;
      text-indent: 1em;
   }
   .config-item input {
      display: inline-block;
      float: right;
      margin-right: 50rpx;
      width: 300rpx;
      height: 50rpx;
      border: 1px solid #aaaaaa;
      border-radius: 10rpx;
      font-size: 16rpx;
      text-indent: 10rpx;
   }
    .login-paddingtop {
        padding-top: 50upx;
    }