| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | <template>  <div class="login">    <div>      <div class="avatar-box">        <img src="../assets/img/icon/u44.png" alt="" />      </div>      <van-form @submit="onSubmit">        <van-field          border          v-model="formData.username"          name="用户名"          placeholder="请输入用户名"          :rules="[{ required: true, message: '请输入用户名' }]"        />        <van-field          border          v-model="formData.password"          type="password"          name="密码"          placeholder="请输入密码"          :rules="[{ required: true, message: '请输入密码' }]"        />        <van-cell value="忘记密码">          <!-- 使用 title 插槽来自定义标题 -->          <template #title>            <div style="display: flex;align-items: center;">              <van-checkbox class="custom-title" icon-size="15" v-model="checked" shape="square">记住密码</van-checkbox>            </div>          </template>        </van-cell><!--        <div>--><!--          <van-checkbox v-model="checked" shape="square">记住密码</van-checkbox>--><!--          <a href=""> 忘记密码 </a>--><!--        </div>-->        <div style="margin: 16px;">          <van-button block type="info" native-type="submit">登录</van-button>        </div>      </van-form>    </div>  </div></template><script>2// 请求接口import {login} from '@/api/public.js'import { mapGetters } from 'vuex'export default {  data() {    return {      wechat: `${this.$cdn}/wx/640.gif`,      formData:{        username:'admin',        password:'Admin1234',      },      pattern: /\d{6}/,      checked:false    }  },  computed: {    ...mapGetters(['userName'])  },  mounted() {  },  methods: {    onSubmit(){      login(this.formData).then(res => {        console.log(res,'res')        sessionStorage.setItem('access_token',res.data.access_token);        this.$router.replace('/home');      })    },  }}</script><style scoped lang="scss">.login {  height: 100vh;  background: url("../assets/img/登录背景2_app.png") top left no-repeat #edfcff;  background-size: 100% auto;  display: flex;  justify-content: center;  align-items: center;  > div {    width: 450px;    padding: 30px 0;    display: flex;    flex-direction: column;    align-items: center;    background-color: #fff;    border-radius: 10px;    .avatar-box {      display: flex;      justify-content: center;      align-items: center;      width: 150px;      height: 150px;      border-radius: 100%;      border: 1px solid #ccc;    }  }  h2 {    letter-spacing: 10px;    text-align: center;  }}</style>
 |