|  |  | 
 |  |  |   <template> | 
 |  |  | <template> | 
 |  |  |    <view class="zai-box"> | 
 |  |  | 		 | 
 |  |  |         <scroll-view scroll-y class="page"> | 
 |  |  | 			 | 
 |  |  |             <view class="text-center" :style="[{animation: 'show ' + 0.4+ 's 1'}]"> | 
 |  |  |             <image src="../../static/logo.png" mode='aspectFit' class="zai-logo "></image> | 
 |  |  |             <view class="zai-title text-shadow ">Zoneyung</view> | 
 |  |  |  | 
 |  |  |       <scroll-view scroll-y class="page"> | 
 |  |  |  | 
 |  |  |          <view class="text-center" :style="[{animation: 'show ' + 0.4+ 's 1'}]"> | 
 |  |  |             <image src="../../static/logo.png" mode='aspectFit' class="zai-logo" @longtap='longpressImg'></image> | 
 |  |  |          </view> | 
 |  |  |             <view class="box padding-lr-xl login-paddingtop" :style="[{animation: 'show ' + 0.6+ 's 1'}]"> | 
 |  |  |          <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"><text class="cuIcon-people margin-right-xs"></text>账号:</view> | 
 |  |  |                   <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"><text class="cuIcon-lock margin-right-xs"></text>密码:</view> | 
 |  |  |                   <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> | 
 |  |  |                      <text :class="[showPassword ? 'cuIcon-attention' : 'cuIcon-attentionforbid']" | 
 |  |  |                         @click="changePassword"></text> | 
 |  |  |                   </view> | 
 |  |  |                </view> | 
 |  |  |                <view class="changeBox"> | 
 |  |  |                <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="padding text-center margin-top"> | 
 |  |  |                   <button class="cu-btn bg-blue lg margin-right shadow" :loading="loading" :class="[shape=='round'?'round':'']" | 
 |  |  |                      @tap="onLogin"><text space="emsp">{{loading ? "登录中...":" 登录 "}}</text> | 
 |  |  |                <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> | 
 |  |  |                   </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> | 
 |  |  |       </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="wms" | 
 |  |  |                      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> --> | 
 |  |  | 
 |  |  |          <view class="gray-text">登录中...</view> | 
 |  |  |       </view> | 
 |  |  |       <view> | 
 |  |  |          <!-- 输入框示例 --> | 
 |  |  |          <uni-popup ref="inputDialog" type="dialog"> | 
 |  |  |             <uni-popup-dialog ref="inputClose" mode="input" title="请输入IP" v-model="IP" | 
 |  |  |                placeholder="请输入IP" @confirm="dialogInputConfirm"> | 
 |  |  |             <uni-popup-dialog ref="inputClose" mode="input" title="设置IP" v-model="IP" placeholder="请输入服务器IP" | 
 |  |  |                @confirm="dialogInputConfirm"> | 
 |  |  |             </uni-popup-dialog> | 
 |  |  |          </uni-popup> | 
 |  |  |       </view> | 
 |  |  |     </view> | 
 |  |  |       <view style="margin-top: 10rpx;"> | 
 |  |  |          <uni-popup ref="serverPort" type="dialog"> | 
 |  |  |             <uni-popup-dialog ref="inputClose" mode="input" title="设置端口" v-model="PORT" placeholder="请输入服务器端口号" | 
 |  |  |                @confirm="serverPortConfirm"> | 
 |  |  |             </uni-popup-dialog> | 
 |  |  |          </uni-popup> | 
 |  |  |       </view> | 
 |  |  |    </view> | 
 |  |  |  | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script> | 
 |  |  |    // import { ACCESS_TOKEN,USER_NAME,USER_INFO } from "@/common/util/constants" | 
 |  |  |    import { mapActions } from "vuex" | 
 |  |  |    import { | 
 |  |  |       mapActions | 
 |  |  |    } from "vuex" | 
 |  |  |    import md5 from '../../common/md5.js' | 
 |  |  |     // import configService from '@/common/service/config.service.js'; | 
 |  |  | 	 | 
 |  |  |     export default { | 
 |  |  |         data() { | 
 |  |  |             return { | 
 |  |  |             shape:'',//round 圆形 | 
 |  |  |    // import configService from '@/common/service/config.service.js'; | 
 |  |  |  | 
 |  |  |    export default { | 
 |  |  |       data() { | 
 |  |  |          return { | 
 |  |  |             shape: '', //round 圆形 | 
 |  |  |             loading: false, | 
 |  |  |             phoneNo: '', | 
 |  |  |             smsCode: '', | 
 |  |  | 
 |  |  |             smsCountDown: 0, | 
 |  |  |             smsCountInterval: null, | 
 |  |  |             toggleDelay: false, | 
 |  |  |             version:'', | 
 |  |  |             version: '', | 
 |  |  |             //第三方登录相关信息 | 
 |  |  |             thirdType:"", | 
 |  |  |             thirdLoginInfo:"", | 
 |  |  |             thirdLoginState:false, | 
 |  |  |             bindingPhoneModal:false, | 
 |  |  |             thirdUserUuid:'', | 
 |  |  |             thirdType: "", | 
 |  |  |             thirdLoginInfo: "", | 
 |  |  |             thirdLoginState: false, | 
 |  |  |             bindingPhoneModal: false, | 
 |  |  |             thirdUserUuid: '', | 
 |  |  |             url: { | 
 |  |  |                bindingThirdPhone: '/sys/thirdLogin/bindingThirdPhone' | 
 |  |  |             }, | 
 |  |  |             baseIP:'', | 
 |  |  |             type:'', | 
 |  |  |             userName:'', | 
 |  |  |             password:'', | 
 |  |  |             rember:true, | 
 |  |  |             IP:'', | 
 |  |  |             }; | 
 |  |  |         }, | 
 |  |  |             type: '', | 
 |  |  |             userName: '', | 
 |  |  |             password: '', | 
 |  |  |             rember: true, | 
 |  |  |             IP: '10.20.192.200', | 
 |  |  |             PORT: '', // 默认端口号 | 
 |  |  |             PROJECT: '' | 
 |  |  |          }; | 
 |  |  |       }, | 
 |  |  |       mounted() { | 
 |  |  |          let that = this; | 
 |  |  |          //缓存的账号 | 
 |  |  | 
 |  |  |          const HCpassw = uni.getStorageSync('HCpassw'); | 
 |  |  |          //有缓存就赋值给文本没有就清空 | 
 |  |  |          if (HCuname && HCpassw) { | 
 |  |  |              that.userName = HCuname; | 
 |  |  |              that.password = HCpassw; | 
 |  |  |             that.userName = HCuname; | 
 |  |  |             that.password = HCpassw; | 
 |  |  |          } else { | 
 |  |  |              that.userName = ''; | 
 |  |  |              that.password = ''; | 
 |  |  |             that.userName = ''; | 
 |  |  |             that.password = ''; | 
 |  |  |          } | 
 |  |  |          const UIP = uni.getStorageSync('UIP'); | 
 |  |  |             if (UIP) { | 
 |  |  |              that.IP = UIP; | 
 |  |  |             } else { | 
 |  |  |              that.IP = ''; | 
 |  |  |             } | 
 |  |  |          if (UIP) { | 
 |  |  |             that.IP = UIP; | 
 |  |  |             that.baseIP = UIP; | 
 |  |  |          } else { | 
 |  |  |             that.IP = ''; | 
 |  |  |          } | 
 |  |  |  | 
 |  |  |          const UPORT = uni.getStorageSync('UPORT'); | 
 |  |  |          if (UPORT) { | 
 |  |  |             that.PORT = UPORT; | 
 |  |  |             that.basePORT = UPORT; | 
 |  |  |          } else { | 
 |  |  |             that.PORT = ''; | 
 |  |  |          } | 
 |  |  |          const PROJ = uni.getStorageSync('UPROJ'); | 
 |  |  |          this.PROJECT = PROJ; | 
 |  |  |          this.baseUrl = PROJ | 
 |  |  |       }, | 
 |  |  |       onLoad:function(){ | 
 |  |  |       onLoad: function() { | 
 |  |  |          // #ifdef APP-PLUS | 
 |  |  |          var that=this | 
 |  |  |          plus.runtime.getProperty( plus.runtime.appid, function ( wgtinfo ) { | 
 |  |  |             that.version=wgtinfo.version | 
 |  |  |          var that = this | 
 |  |  |          plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) { | 
 |  |  |             that.version = wgtinfo.version | 
 |  |  |          }); | 
 |  |  |          // #endif | 
 |  |  |          // this.getVersion() | 
 |  |  |          // this.downWgt() | 
 |  |  |       }, | 
 |  |  |       computed: { | 
 |  |  |             isSendSMSEnable() { | 
 |  |  |               return this.smsCountDown <= 0 && this.phoneNo.length > 4; | 
 |  |  |             }, | 
 |  |  |             getSendBtnText() { | 
 |  |  |               if (this.smsCountDown > 0) { | 
 |  |  |                 return this.smsCountDown + '秒后发送'; | 
 |  |  |               } else { | 
 |  |  |                 return '发送验证码'; | 
 |  |  |               } | 
 |  |  |             }, | 
 |  |  |             canSMSLogin() { | 
 |  |  |               return this.userName.length > 4 && this.smsCode.length > 4; | 
 |  |  |             }, | 
 |  |  |             canPwdLogin() { | 
 |  |  |               return this.userName.length > 4 && this.password.length > 4; | 
 |  |  |             }, | 
 |  |  |          isSendSMSEnable() { | 
 |  |  |             return this.smsCountDown <= 0 && this.phoneNo.length > 4; | 
 |  |  |          }, | 
 |  |  |          getSendBtnText() { | 
 |  |  |             if (this.smsCountDown > 0) { | 
 |  |  |                return this.smsCountDown + '秒后发送'; | 
 |  |  |             } else { | 
 |  |  |                return '发送验证码'; | 
 |  |  |             } | 
 |  |  |          }, | 
 |  |  |          canSMSLogin() { | 
 |  |  |             return this.userName.length > 4 && this.smsCode.length > 4; | 
 |  |  |          }, | 
 |  |  |          canPwdLogin() { | 
 |  |  |             return this.userName.length > 4 && this.password.length > 4; | 
 |  |  |          }, | 
 |  |  |       }, | 
 |  |  |         methods: { | 
 |  |  |          changeIP(){ | 
 |  |  |       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) | 
 |  |  |             var baseUrl = this.baseHttp + this.baseIP + ':' + this.basePORT + "/" + this.baseUrl | 
 |  |  |             uni.setStorageSync("baseUrl", baseUrl) | 
 |  |  |             this.$refs.popup.close() | 
 |  |  |          }, | 
 |  |  |          longpressImg() { // 长按图片 | 
 |  |  |             this.$refs.serverPort.open() | 
 |  |  |          }, | 
 |  |  |          serverPortConfirm(type) { | 
 |  |  |             this.basePORT = type | 
 |  |  |             // 存入本地缓存 | 
 |  |  |             this.PORT = type | 
 |  |  |             uni.setStorageSync('UPORT', this.basePORT) | 
 |  |  |          }, | 
 |  |  |          changeIP() { | 
 |  |  |             this.$refs.inputDialog.open() | 
 |  |  |          }, | 
 |  |  |          dialogInputConfirm(type){ | 
 |  |  |             this.baseUrl=type | 
 |  |  |             this.IP = type | 
 |  |  |             this.UIP = type | 
 |  |  |             uni.setStorageSync('UIP',type) | 
 |  |  |          dialogInputConfirm(type) { | 
 |  |  |             this.baseIP = type | 
 |  |  |             // 存入本地缓存 | 
 |  |  |             this.IP = type; | 
 |  |  |             uni.setStorageSync('UIP', this.baseIP) | 
 |  |  |          }, | 
 |  |  |          checkboxChange: function(e) { | 
 |  |  |              if (e.detail.value.length == 1) { | 
 |  |  | 			 | 
 |  |  |                  //获取缓存的账号 | 
 |  |  |                   uni.getStorageSync('HCuname',this.userName); | 
 |  |  |                   uni.getStorageSync('HCpassw',this.password); | 
 |  |  |              } else { | 
 |  |  |                    uni.removeStorageSync('HCuname'); | 
 |  |  |                    uni.removeStorageSync('HCpassw');               | 
 |  |  |              } | 
 |  |  |             if (e.detail.value.length == 1) { | 
 |  |  |  | 
 |  |  |                //获取缓存的账号 | 
 |  |  |                uni.getStorageSync('HCuname', this.userName); | 
 |  |  |                uni.getStorageSync('HCpassw', this.password); | 
 |  |  |             } else { | 
 |  |  |                uni.removeStorageSync('HCuname'); | 
 |  |  |                uni.removeStorageSync('HCpassw'); | 
 |  |  |             } | 
 |  |  |          }, | 
 |  |  |          onLogin: function (){ | 
 |  |  |             if(!this.userName || this.userName.length==0){ | 
 |  |  |                uni.showToast({title: '请填写账号',icon: "none"}) | 
 |  |  |          onLogin: function() { | 
 |  |  |             if (!this.userName || this.userName.length == 0) { | 
 |  |  |                uni.showToast({ | 
 |  |  |                   title: '请填写账号', | 
 |  |  |                   icon: "none" | 
 |  |  |                }) | 
 |  |  |                return; | 
 |  |  |             } | 
 |  |  |             if(!this.password || this.password.length==0){ | 
 |  |  |                uni.showToast({title: '请填写密码',icon: "none"}) | 
 |  |  |             if (!this.password || this.password.length == 0) { | 
 |  |  |                uni.showToast({ | 
 |  |  |                   title: '请填写密码', | 
 |  |  |                   icon: "none" | 
 |  |  |                }) | 
 |  |  |                return; | 
 |  |  |             } | 
 |  |  |             if (this.baseIP == undefined || this.baseIP == '') { | 
 |  |  |                uni.showToast({ | 
 |  |  |                   title: '请先设置IP', | 
 |  |  |                   icon: 'none' | 
 |  |  |                }) | 
 |  |  |                return; | 
 |  |  |             } | 
 |  |  |             if (this.basePORT == undefined) { | 
 |  |  |                uni.showToast({ | 
 |  |  |                   title: '长按图片输入端口号', | 
 |  |  |                   icon: 'none' | 
 |  |  |                }) | 
 |  |  |                return; | 
 |  |  |             } | 
 |  |  |             uni.showLoading(); | 
 |  |  |             setTimeout(function() { | 
 |  |  |                uni.hideLoading(); | 
 |  |  |                uni.showToast({ | 
 |  |  |                   title: '登录超时', | 
 |  |  |                   position: 'bottom', | 
 |  |  |                   duration: 1000 | 
 |  |  |                }); | 
 |  |  |             }, 6000) | 
 |  |  |             uni.request({ | 
 |  |  |                 url: 'http://'+ this.baseUrl + ':8082/xgmwms' + '/login.action', | 
 |  |  |                 data: { | 
 |  |  |                   mobile:this.userName, | 
 |  |  |                   password:md5.hex_md5(this.password)  | 
 |  |  |                 }, | 
 |  |  |                 header: { | 
 |  |  |                url: this.baseHttp + this.baseIP + ':' + this.basePORT + "/" + this.baseUrl + | 
 |  |  |                   '/login.action', | 
 |  |  |                data: { | 
 |  |  |                   username: this.userName, | 
 |  |  |                   password: md5.hex_md5(this.password) | 
 |  |  |                }, | 
 |  |  |                header: { | 
 |  |  |                   "content-type": "application/json" | 
 |  |  |                 }, | 
 |  |  |                 success: (result) => { | 
 |  |  |                }, | 
 |  |  |                success: (result) => { | 
 |  |  |                   let res = result.data; | 
 |  |  |                   uni.hideLoading(); | 
 |  |  |                   if (res.code == 200) { | 
 |  |  | 
 |  |  |                         position: 'bottom', | 
 |  |  |                         duration: 1000 | 
 |  |  |                      }); | 
 |  |  |                      if(this.rember){ | 
 |  |  |                      if (this.rember) { | 
 |  |  |                         uni.setStorageSync('HCuname', this.userName); | 
 |  |  |                         uni.setStorageSync('HCpassw', this.password); | 
 |  |  |                      }else{ | 
 |  |  |                      } else { | 
 |  |  |                         uni.removeStorageSync('HCuname'); | 
 |  |  |                         uni.removeStorageSync('HCpassw'); | 
 |  |  |                      } | 
 |  |  |                      uni.setStorageSync('token', res.data.token); | 
 |  |  |                      setTimeout(() => { | 
 |  |  |                         uni.navigateBack();      //   小程序用这个  把首页路由放第一个 | 
 |  |  |                         // uni.navigateBack();      //   小程序用这个  把首页路由放第一个 | 
 |  |  |                         uni.reLaunch({ | 
 |  |  |                            url: '../index/index' | 
 |  |  |                            url: '../index/index2' | 
 |  |  |                         }); | 
 |  |  |                      }, 1000); | 
 |  |  |                   } else { | 
 |  |  | 
 |  |  |                         position: 'top' | 
 |  |  |                      }) | 
 |  |  |                   } | 
 |  |  | 						 | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                } | 
 |  |  |             }); | 
 |  |  |          }, | 
 |  |  |          saveClientId(){ | 
 |  |  |          saveClientId() { | 
 |  |  |             var info = plus.push.getClientInfo(); | 
 |  |  |             var cid = info.clientid; | 
 |  |  |             this.$http.get("/sys/user/saveClientId",{params:{clientId:cid}}).then(res=>{ | 
 |  |  |             this.$http.get("/sys/user/saveClientId", { | 
 |  |  |                params: { | 
 |  |  |                   clientId: cid | 
 |  |  |                } | 
 |  |  |             }).then(res => { | 
 |  |  |                this.$tip.success('登录成功!') | 
 |  |  |                this.$Router.replaceAll({name:'index'}) | 
 |  |  |                this.$Router.replaceAll({ | 
 |  |  |                   name: 'index' | 
 |  |  |                }) | 
 |  |  |             }) | 
 |  |  |          }, | 
 |  |  |          changePassword() { | 
 |  |  |             this.showPassword = !this.showPassword; | 
 |  |  |          }, | 
 |  |  |          loginSuccess() { | 
 |  |  |            // 登陆成功,重定向到主页 | 
 |  |  |            this.$Router.replace({name:'index'}) | 
 |  |  |             // 登陆成功,重定向到主页 | 
 |  |  |             this.$Router.replace({ | 
 |  |  |                name: 'index' | 
 |  |  |             }) | 
 |  |  |          }, | 
 |  |  |          requestFailed(err) { | 
 |  |  |            this.$message.warning("登录失败") | 
 |  |  |             this.$message.warning("登录失败") | 
 |  |  |          }, | 
 |  |  |         }, | 
 |  |  |       beforeDestroy() { | 
 |  |  |           if (this.smsCountInterval) { | 
 |  |  |               clearInterval(this.smsCountInterval); | 
 |  |  |           } | 
 |  |  |       }, | 
 |  |  | 		 | 
 |  |  | 		 | 
 |  |  |     } | 
 |  |  |       beforeDestroy() { | 
 |  |  |          if (this.smsCountInterval) { | 
 |  |  |             clearInterval(this.smsCountInterval); | 
 |  |  |          } | 
 |  |  |       }, | 
 |  |  |  | 
 |  |  |  | 
 |  |  |    } | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style> | 
 |  |  |    @import "../../colorui/main.css"; | 
 |  |  |    @import "../../colorui/icon.css"; | 
 |  |  |    @import "../../colorui/animation.css"; | 
 |  |  | 	 | 
 |  |  |     .login-paddingtop { | 
 |  |  |         padding-top: 50upx; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     .zai-box { | 
 |  |  |         padding: 0 20upx; | 
 |  |  |         padding-top: 100upx; | 
 |  |  |         position: relative; | 
 |  |  |     } | 
 |  |  |    .config { | 
 |  |  |       width: 500rpx; | 
 |  |  |       height: 500rpx; | 
 |  |  |       background-color: #fff; | 
 |  |  |       border-radius: 20px; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |     .zai-logo { | 
 |  |  |         width: 200upx; | 
 |  |  |         height: 150px; | 
 |  |  |     } | 
 |  |  |    .config-title { | 
 |  |  |       height: 100rpx; | 
 |  |  |       font-size: 32rpx; | 
 |  |  |       text-align: center; | 
 |  |  |       line-height: 100rpx; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |     .zai-title { | 
 |  |  |        font-size: 58upx; | 
 |  |  |        color: #000000; | 
 |  |  |        text-align: center; | 
 |  |  |     } | 
 |  |  |    .config-item { | 
 |  |  |       height: 100rpx; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |     .input-placeholder, .zai-input { | 
 |  |  |         color: #94afce; | 
 |  |  |     } | 
 |  |  |    .config-item text { | 
 |  |  |       display: inline-block; | 
 |  |  |       float: left; | 
 |  |  |       text-indent: 1em; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |     .zai-label { | 
 |  |  |         padding: 60upx 0; | 
 |  |  |         text-align: center; | 
 |  |  |         font-size: 30upx; | 
 |  |  |         color: #a7b6d0; | 
 |  |  |     } | 
 |  |  |    .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; | 
 |  |  |  | 
 |  |  |     .zai-btn { | 
 |  |  |         background: #ff65a3; | 
 |  |  |         color: #fff; | 
 |  |  |         border: 0; | 
 |  |  |         border-radius: 100upx; | 
 |  |  |         font-size: 36upx; | 
 |  |  |     } | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |     .zai-btn:after { | 
 |  |  |         border: 0; | 
 |  |  |     } | 
 |  |  |    .login-paddingtop { | 
 |  |  |       padding-top: 50upx; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |     /*按钮点击效果*/ | 
 |  |  |     .zai-btn.button-hover { | 
 |  |  |         transform: translate(1upx, 1upx); | 
 |  |  |     } | 
 |  |  |    .zai-box { | 
 |  |  |       padding: 0 20upx; | 
 |  |  |       padding-top: 100upx; | 
 |  |  |       position: relative; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    .zai-logo { | 
 |  |  |       width: 600upx; | 
 |  |  |       height: 150px; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    .zai-title { | 
 |  |  |       font-size: 58upx; | 
 |  |  |       color: #000000; | 
 |  |  |       text-align: center; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    .input-placeholder, | 
 |  |  |    .zai-input { | 
 |  |  |       color: #94afce; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    .zai-label { | 
 |  |  |       padding: 60upx 0; | 
 |  |  |       text-align: center; | 
 |  |  |       font-size: 30upx; | 
 |  |  |       color: #a7b6d0; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    .zai-btn { | 
 |  |  |       background: #ff65a3; | 
 |  |  |       color: #fff; | 
 |  |  |       border: 0; | 
 |  |  |       border-radius: 100upx; | 
 |  |  |       font-size: 36upx; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    .zai-btn:after { | 
 |  |  |       border: 0; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    /*按钮点击效果*/ | 
 |  |  |    .zai-btn.button-hover { | 
 |  |  |       transform: translate(1upx, 1upx); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    .changeBox { | 
 |  |  |       margin-top: 20upx; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    .rember { | 
 |  |  |       display: inline-block; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    .changeIP { | 
 |  |  |       float: right; | 
 |  |  |       margin-right: 15upx; |