|
|
@@ -8,8 +8,10 @@ import {PreviewOpen, PreviewCloseOne} from '@icon-park/vue-next';
|
|
|
import {useToggle} from '@vueuse/core';
|
|
|
import {RouterLink} from 'vue-router';
|
|
|
import {useFieldItem} from './hooks';
|
|
|
+import {useI18n} from 'vue-i18n';
|
|
|
|
|
|
defineOptions({name: 'LoginInfo'});
|
|
|
+
|
|
|
const active = ref(0);
|
|
|
function onTabClick(value: number) {
|
|
|
active.value = value;
|
|
|
@@ -17,28 +19,40 @@ function onTabClick(value: number) {
|
|
|
|
|
|
const [isPassword, togglePassword] = useToggle(true);
|
|
|
const [remberPassword, toggleRemberPassword] = useToggle();
|
|
|
+
|
|
|
const {value: nameValue, errorMessage: nameErrorMessage} = useFieldItem('name');
|
|
|
const {value: passwordValue, errorMessage: passwordErrorMessage} =
|
|
|
useFieldItem('password');
|
|
|
const {value: companyValue, errorMessage: companyErrorMessage} =
|
|
|
useFieldItem('company');
|
|
|
+
|
|
|
+const {t} = useI18n();
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
<h2 class="login-title">Login</h2>
|
|
|
<div class="tab">
|
|
|
- <span :class="{'tab-item-active': active === 0}" @click="onTabClick(0)">
|
|
|
- 供应商管理
|
|
|
- </span>
|
|
|
- <span :class="{'tab-item-active': active === 1}" @click="onTabClick(1)">
|
|
|
- 企业管理
|
|
|
- </span>
|
|
|
+ <span
|
|
|
+ v-t="'login.tabs[0]'"
|
|
|
+ :class="{'tab-item-active': active === 0}"
|
|
|
+ @click="onTabClick(0)"
|
|
|
+ />
|
|
|
+
|
|
|
+ <span
|
|
|
+ v-t="'login.tabs[1]'"
|
|
|
+ :class="{'tab-item-active': active === 1}"
|
|
|
+ @click="onTabClick(1)"
|
|
|
+ />
|
|
|
|
|
|
<i class="tab-indicator"></i>
|
|
|
</div>
|
|
|
|
|
|
<div class="info">
|
|
|
- <ElInput v-model="nameValue" name="userName" placeholder="用户名">
|
|
|
+ <ElInput
|
|
|
+ v-model="nameValue"
|
|
|
+ name="userName"
|
|
|
+ :placeholder="t('login.placeholder.userName')"
|
|
|
+ >
|
|
|
<template #prefix>
|
|
|
<img :src="userIcon" class="input-icon" />
|
|
|
</template>
|
|
|
@@ -50,7 +64,7 @@ const {value: companyValue, errorMessage: companyErrorMessage} =
|
|
|
<ElInput
|
|
|
v-model="passwordValue"
|
|
|
name="password"
|
|
|
- placeholder="密码"
|
|
|
+ :placeholder="t('login.placeholder.password')"
|
|
|
:type="isPassword ? 'password' : 'text'"
|
|
|
>
|
|
|
<template #prefix>
|
|
|
@@ -71,7 +85,11 @@ const {value: companyValue, errorMessage: companyErrorMessage} =
|
|
|
{{ passwordErrorMessage }}
|
|
|
</p>
|
|
|
|
|
|
- <ElInput v-model="companyValue" name="userName" placeholder="企业名称">
|
|
|
+ <ElInput
|
|
|
+ v-model="companyValue"
|
|
|
+ name="userName"
|
|
|
+ :placeholder="t('login.placeholder.company')"
|
|
|
+ >
|
|
|
<template #prefix>
|
|
|
<img :src="enterpriseIcon" class="input-icon" />
|
|
|
</template>
|
|
|
@@ -85,15 +103,17 @@ const {value: companyValue, errorMessage: companyErrorMessage} =
|
|
|
:class="{'rember-password': remberPassword}"
|
|
|
@click="toggleRemberPassword(!remberPassword)"
|
|
|
>
|
|
|
- 记住密码
|
|
|
+ {{ t('login.remberPassword') }}
|
|
|
</span>
|
|
|
- <span>忘记密码</span>
|
|
|
+ <span>{{ t('login.forgetPassword') }}</span>
|
|
|
</div>
|
|
|
|
|
|
- <ElButton native-type="submit" class="login-btn">登录</ElButton>
|
|
|
+ <ElButton native-type="submit" class="login-btn">
|
|
|
+ {{ t('login.loginBtnText') }}
|
|
|
+ </ElButton>
|
|
|
</div>
|
|
|
|
|
|
- <RouterLink to="/" class="regist">申请成为供应商</RouterLink>
|
|
|
+ <RouterLink to="/" class="regist">{{ t('login.regist') }}</RouterLink>
|
|
|
</template>
|
|
|
|
|
|
<style scoped lang="css">
|