Я беру шаблон из CoreUI, бесплатный Admin Templete, но я не могу проверить слоты CInput. Я использую v-модель для проверки, но она недоступна и не может работать, как я могу проверить свою форму входа. Я устанавливаю Vuelidate и импортирую, но он все еще не работает, вместо Vuelidate я использую "import {mapState, mapActions} from 'vuex'", но все еще та же проблема, что и для подтверждения в моей форме входа в систему, я использую vuejs версия 3.1, как можно валидация Логин. vue
<template>
<div id="login">
<CContainer class="d-flex content-center min-vh-100">
<CRow>
<CCol>
<CCardGroup>
<CCard class="p-4">
<CCardBody>
<CForm>
<h1>Login</h1>
<p class="text-muted">Sign In to your account</p>
<CInput
type="text" v-model="data.username" @blur="$v.username.$touch()"
placeholder="Username"
>
<template #prepend-content><CIcon name="cil-user"/></template>
</CInput>
<CInput
placeholder="Password"
type="password" v-model="data.password" @blur="$v.password.$touch()"
>
<template #prepend-content><CIcon name="cil-lock-locked"/></template>
</CInput>
<CRow>
<CCol col="6" class="text-left">
<CButton color="primary" class="px-4" @click="direDisplay">Login</CButton>
</CCol>
<CCol col="6" class="text-right">
<CButton color="link" class="px-0">Forgot password?</CButton>
<CButton color="link" class="d-md-none">Register now!</CButton>
</CCol>
</CRow>
</CForm>
</CCardBody>
</CCard>
<CCard
color="primary"
text-color="white"
class="text-center py-5 d-sm-down-none"
body-wrapper
>
<h2>Sign up</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<CButton
color="primary"
class="active mt-3"
>
Register Now!
</CButton>
</CCard>
</CCardGroup>
</CCol>
</CRow>
</CContainer>
</div>
</template>
<script>
import Dashboard from '../Dashboard.vue';
import { username, required } from 'vuelidate/lib/validators'
import { mapState, mapActions } from 'vuex'
export default {
name: 'Login',
validations: {
username: {
username,
required
},
password:{
password,
requires
},
methods:{
direDisplay(){
this.$router.push('/Dashboard')
}
}
}
</script>