From 69a1b3bf45738f048361ee4ccb6bdc64fce35720 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 12 三月 2025 11:31:46 +0800
Subject: [PATCH] 更新

---
 pda/pages/index/login.vue |  221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 221 insertions(+), 0 deletions(-)

diff --git a/pda/pages/index/login.vue b/pda/pages/index/login.vue
new file mode 100644
index 0000000..e07389e
--- /dev/null
+++ b/pda/pages/index/login.vue
@@ -0,0 +1,221 @@
+<template>
+  <view class="login">
+    <image class="login_bg" src="@/static/login_bg@2x.png" />
+    <image class="login_logo" src="@/static/logo@2x.png" mode="widthFix" />
+    <view class="login_title" style="marginTop: 40rpx;">瀹夋嘲鐗╂祦鏅烘収鍥尯</view>
+    <view class="login_title" style="marginBottom: 60rpx;">鏁板瓧鍖栨湀鍙拌皟搴﹀钩鍙�</view>
+    <view class="login_list">
+      <view class="login_list_item">
+        <image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
+        <input v-model="form.username" maxlength="18" placeholder="鎵嬫満鍙�" />
+      </view>
+      <view class="login_list_item">
+        <image src="@/static/login_ic_password@2x.png" mode="widthFix" />
+        <input v-model="form.password" type="password" placeholder="瀵嗙爜" />
+      </view>
+      <!-- <view class="login_list_item">
+        <image src="@/static/ic_captcha.png" mode="widthFix"></image>
+        <input v-model="form.code" placeholder="楠岃瘉鐮�" type="text" />
+        <image
+          @click="initCaptcha"
+          :src="captcha.image"
+          class="captcha"
+          mode="widthFix"
+        />
+      </view> -->
+    </view>
+    <view class="login_btn">
+      <view class="login_btn_n" @click="onLogin">绔嬪嵆鐧诲綍</view>
+      <!-- <view @click="$jump('/pages/staffLogin/forgetPsd')" class="for_psd"
+        >蹇樿瀵嗙爜</view
+      > -->
+    </view>
+  </view>
+</template>
+
+<script>
+import { loginPost, loginCaptcha, getUserInfo, getSystemDictData } from '@/api'
+import { mapState, mapMutations } from 'vuex'
+export default {
+  name: 'login',
+
+  data() {
+    return {
+      form: {
+        username: '',
+        password: '',
+      },
+			err: '',
+      isShowProtocol: false,
+      ProtocolFlag: false,
+      captcha: {},
+      htmlText: ''
+    }
+  },
+
+  onLoad() {
+    this.initCaptcha()
+  },
+
+  methods: {
+    ...mapMutations(["setToken", "setUserInfo"]),
+    changeFalg() {
+      this.ProtocolFlag = !this.ProtocolFlag
+    },
+		onLogin() {
+		  const { form, ProtocolFlag } = this
+		  if (!form.username) return uni.showToast({
+		    title: '璐﹀彿涓嶈兘涓虹┖',
+		    icon: 'none'
+		  })
+		  if (!form.password) return uni.showToast({
+		    title: '瀵嗙爜涓嶈兘涓虹┖',
+		    icon: 'none'
+		  })
+		  loginPost({
+		    ...form,
+				code: 1,
+		    uuid: this.captcha.uuid,
+		    openId: this.$store.state.openId
+		  }).then(res => {
+		    if (res.code === 200) {
+		      this.setToken(res.data)
+		      getUserInfo().then(ress => {
+		        this.setUserInfo(ress.data)
+		        uni.redirectTo({
+		          url: "/pages/index/index"
+		        })
+		      })
+		    }
+		  }, err => {
+				// this.err = JSON.stringify(err)
+			})
+		},
+    getContent() {
+      getSystemDictData({
+        dictCode: 'SYSTEM',
+        label: 'USER_PROTOCOL'
+      }).then(res => {
+        this.htmlText = res.data.code
+        this.isShowProtocol = true
+      })
+    },
+    showContent() {
+      this.getContent()
+    },
+    initCaptcha() {
+      loginCaptcha().then(res => {
+        this.captcha = res.data
+      })
+    },
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.login {
+  width: 100%;
+  display: flex;
+  padding-top: 100rpx;
+  box-sizing: border-box;
+  align-items: center;
+  flex-direction: column;
+  background: linear-gradient(
+    180deg,
+    rgba(39, 155, 170, 0.2) 0%,
+    rgba(39, 155, 170, 0) 100%
+  );
+  .login_logo {
+    width: 180rpx;
+    height: 180rpx;
+  }
+  .login_bg {
+    position: absolute;
+    top: 0;
+    width: 750rpx;
+  }
+  .login_title {
+    font-size: 44rpx;
+    font-weight: 600;
+    color: #333333;
+  }
+  .login_list {
+    width: 100%;
+    padding: 0 60rpx;
+    box-sizing: border-box;
+    .login_list_item {
+      width: 100%;
+      border-radius: 50rpx;
+      height: 98rpx;
+      padding: 0 40rpx;
+      box-sizing: border-box;
+      background: #ffffff;
+      margin-bottom: 40rpx;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      &:last-child {
+        margin-bottom: 0 !important;
+      }
+      image {
+        flex-shrink: 0;
+        width: 40rpx;
+        height: 40rpx;
+      }
+      .captcha {
+        width: 200rpx;
+      }
+      input {
+        flex: 1;
+        height: 100%;
+        color: #666666;
+        margin-left: 24rpx;
+        border: none;
+      }
+    }
+  }
+  .login_btn {
+    width: 100%;
+    padding: 0 60rpx;
+    box-sizing: border-box;
+    margin-top: 60rpx;
+    .login_btn_n {
+      width: 100%;
+      height: 98rpx;
+      background: $uni-color-primary;
+      box-shadow: 0rpx 12rpx 24rpx 0rpx rgba(39, 155, 170, 0.2);
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      font-weight: 500;
+      font-size: 32rpx;
+      color: #ffffff;
+      border-radius: 50rpx;
+    }
+  }
+  .deal_wrap {
+    position: absolute;
+    width: 100%;
+    left: 0;
+    text-align: center;
+    bottom: 108rpx;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    .deal {
+      color: $uni-color-primary;
+    }
+    .checked{
+      width: 48rpx;
+      margin-right: 12rpx;
+    }
+  }
+}
+.modal {
+  width: 690rpx;
+  min-height: 920rpx;
+  max-height: 720px;
+  border-radius: 24rpx;
+  padding: 32rpx;
+}
+</style>

--
Gitblit v1.9.3