|
|
|
@ -11,19 +11,34 @@ |
|
|
|
|
|
|
|
<a-form class="mx-auto mt-10" :model="formData" :rules="formRules" ref="formRef"> |
|
|
|
<a-form-item name="account"> |
|
|
|
<a-input size="large" v-model:value="formData.account" placeholder="vben" /> |
|
|
|
<a-input size="large" v-model:value="formData.account" placeholder="Username: vben" /> |
|
|
|
</a-form-item> |
|
|
|
<a-form-item name="password"> |
|
|
|
<a-input-password |
|
|
|
size="large" |
|
|
|
visibilityToggle |
|
|
|
v-model:value="formData.password" |
|
|
|
placeholder="123456" |
|
|
|
placeholder="Password: 123456" |
|
|
|
/> |
|
|
|
</a-form-item> |
|
|
|
<a-form-item name="verify" v-if="openLoginVerify"> |
|
|
|
|
|
|
|
<!-- <a-form-item name="verify" v-if="openLoginVerify"> |
|
|
|
<BasicDragVerify v-model:value="formData.verify" ref="verifyRef" /> |
|
|
|
</a-form-item> |
|
|
|
</a-form-item> --> |
|
|
|
<a-row> |
|
|
|
<a-col :span="12"> |
|
|
|
<a-form-item> |
|
|
|
<!-- 未做逻辑,需要自行处理 --> |
|
|
|
<a-checkbox v-model:checked="autoLogin" size="small">自动登录</a-checkbox> |
|
|
|
</a-form-item> |
|
|
|
</a-col> |
|
|
|
<a-col :span="12"> |
|
|
|
<a-form-item :style="{ 'text-align': 'right' }"> |
|
|
|
<!-- 未做逻辑,需要自行处理 --> |
|
|
|
<a-button type="link" size="small">忘记密码</a-button> |
|
|
|
</a-form-item> |
|
|
|
</a-col> |
|
|
|
</a-row> |
|
|
|
<a-form-item> |
|
|
|
<a-button |
|
|
|
type="primary" |
|
|
|
@ -42,28 +57,44 @@ |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<script lang="ts"> |
|
|
|
import { defineComponent, reactive, ref, unref, toRaw, computed } from 'vue'; |
|
|
|
import { BasicDragVerify, DragVerifyActionType } from '/@/components/Verify/index'; |
|
|
|
import { |
|
|
|
defineComponent, |
|
|
|
reactive, |
|
|
|
ref, |
|
|
|
unref, |
|
|
|
toRaw, |
|
|
|
// computed |
|
|
|
} from 'vue'; |
|
|
|
import { Checkbox } from 'ant-design-vue'; |
|
|
|
|
|
|
|
import Button from '/@/components/Button/index.vue'; |
|
|
|
// import { BasicDragVerify, DragVerifyActionType } from '/@/components/Verify/index'; |
|
|
|
|
|
|
|
import { userStore } from '/@/store/modules/user'; |
|
|
|
import { appStore } from '/@/store/modules/app'; |
|
|
|
// import { appStore } from '/@/store/modules/app'; |
|
|
|
import { useMessage } from '/@/hooks/web/useMessage'; |
|
|
|
import { useSetting } from '/@/hooks/core/useSetting'; |
|
|
|
import Button from '/@/components/Button/index.vue'; |
|
|
|
|
|
|
|
export default defineComponent({ |
|
|
|
components: { BasicDragVerify, AButton: Button }, |
|
|
|
components: { |
|
|
|
// BasicDragVerify, |
|
|
|
AButton: Button, |
|
|
|
ACheckbox: Checkbox, |
|
|
|
}, |
|
|
|
setup() { |
|
|
|
const formRef = ref<any>(null); |
|
|
|
const autoLoginRef = ref(false); |
|
|
|
// const verifyRef = ref<RefInstanceType<DragVerifyActionType>>(null); |
|
|
|
|
|
|
|
const { globSetting } = useSetting(); |
|
|
|
const { notification } = useMessage(); |
|
|
|
const formRef = ref<any>(null); |
|
|
|
const verifyRef = ref<RefInstanceType<DragVerifyActionType>>(null); |
|
|
|
|
|
|
|
const openLoginVerifyRef = computed(() => appStore.getProjectConfig.openLoginVerify); |
|
|
|
// const openLoginVerifyRef = computed(() => appStore.getProjectConfig.openLoginVerify); |
|
|
|
|
|
|
|
const formData = reactive({ |
|
|
|
account: 'vben', |
|
|
|
password: '123456', |
|
|
|
verify: undefined, |
|
|
|
// verify: undefined, |
|
|
|
}); |
|
|
|
const formState = reactive({ |
|
|
|
loading: false, |
|
|
|
@ -72,15 +103,15 @@ |
|
|
|
const formRules = reactive({ |
|
|
|
account: [{ required: true, message: '请输入账号', trigger: 'blur' }], |
|
|
|
password: [{ required: true, message: '请输入密码', trigger: 'blur' }], |
|
|
|
verify: unref(openLoginVerifyRef) ? [{ required: true, message: '请通过验证码校验' }] : [], |
|
|
|
// verify: unref(openLoginVerifyRef) ? [{ required: true, message: '请通过验证码校验' }] : [], |
|
|
|
}); |
|
|
|
|
|
|
|
function resetVerify() { |
|
|
|
const verify = unref(verifyRef); |
|
|
|
if (!verify) return; |
|
|
|
formData.verify && verify.$.resume(); |
|
|
|
formData.verify = undefined; |
|
|
|
} |
|
|
|
// function resetVerify() { |
|
|
|
// const verify = unref(verifyRef); |
|
|
|
// if (!verify) return; |
|
|
|
// formData.verify && verify.$.resume(); |
|
|
|
// formData.verify = undefined; |
|
|
|
// } |
|
|
|
|
|
|
|
async function handleLogin() { |
|
|
|
const form = unref(formRef); |
|
|
|
@ -103,19 +134,20 @@ |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
} finally { |
|
|
|
resetVerify(); |
|
|
|
// resetVerify(); |
|
|
|
formState.loading = false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return { |
|
|
|
formRef, |
|
|
|
verifyRef, |
|
|
|
// verifyRef, |
|
|
|
formData, |
|
|
|
formState, |
|
|
|
formRules, |
|
|
|
login: handleLogin, |
|
|
|
openLoginVerify: openLoginVerifyRef, |
|
|
|
autoLogin: autoLoginRef, |
|
|
|
// openLoginVerify: openLoginVerifyRef, |
|
|
|
title: globSetting && globSetting.title, |
|
|
|
}; |
|
|
|
}, |
|
|
|
@ -141,13 +173,13 @@ |
|
|
|
} |
|
|
|
|
|
|
|
&-form { |
|
|
|
width: 100%; |
|
|
|
width: 520px; |
|
|
|
background: @white; |
|
|
|
border: 10px solid rgba(255, 255, 255, 0.5); |
|
|
|
border-width: 8px; |
|
|
|
border-radius: 4px; |
|
|
|
background-clip: padding-box; |
|
|
|
.respond-to(xlarge, { margin: 0 56px}); |
|
|
|
.respond-to(xlarge, { margin: 0 120px 0 50px}); |
|
|
|
|
|
|
|
&-wrap { |
|
|
|
position: absolute; |
|
|
|
@ -155,14 +187,14 @@ |
|
|
|
right: 0; |
|
|
|
display: flex; |
|
|
|
width: 100%; |
|
|
|
height: 100%; |
|
|
|
height: 90%; |
|
|
|
justify-content: center; |
|
|
|
align-items: center; |
|
|
|
.respond-to(large, { |
|
|
|
width: 520px; |
|
|
|
right: calc(50% - 260px); |
|
|
|
width: 600px; |
|
|
|
right: calc(50% - 300px); |
|
|
|
}); |
|
|
|
.respond-to(xlarge, { width: 520px; right:0}); |
|
|
|
.respond-to(xlarge, { width: 600px; right:0}); |
|
|
|
} |
|
|
|
|
|
|
|
&__content { |
|
|
|
@ -178,13 +210,13 @@ |
|
|
|
|
|
|
|
img { |
|
|
|
display: inline-block; |
|
|
|
width: 64px; |
|
|
|
width: 48px; |
|
|
|
} |
|
|
|
|
|
|
|
h1 { |
|
|
|
margin-bottom: 0; |
|
|
|
font-size: 24px; |
|
|
|
color: @primary-color; |
|
|
|
// color: @primary-color; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
} |
|
|
|
|