| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <template>
- <app-statusbar class="login">
- <app-navback class="login-navback" />
- <div class="login-logo"></div>
- <Form class="login-form" @submit="formSubmit">
- <CellGroup>
- <Field v-model="formData.LoginID" name="account" label="用户名" size="large" placeholder="请输入用户名"
- :rules="[{ required: true, message: '请输入用户名' }]" />
- <Field v-model="formData.LoginPWD" name="password" type="password" label="密码" size="large" placeholder="请输入密码"
- :rules="[{ required: true, message: '请输入密码' }]" autocomplete="off" />
- </CellGroup>
- <div class="button-link">
- <span @click="navigationTo('UserRegister')">用户注册</span>
- <span @click="navigationTo('UserForget')">忘记密码</span>
- </div>
- <div class="button-submit">
- <Button type="primary" native-type="submit" round block>登录</Button>
- </div>
- </Form>
- <div class="login-footer">
- <div class="login-footer__trem">
- <Checkbox shape="square" icon-size=".32rem" v-model="checked">我已阅读并同意</Checkbox>
- <span @click="routerTo('rules-zcxy')" style="color:#E92020">《用户注册协议》</span>
- <span>、</span>
- <span @click="routerTo('rules-yhkhfxgzs')" style="color:#E92020">《用户开户风险告知书》</span>
- <span>、</span>
- <span @click="routerTo('rules-yszc')" style="color:#E92020">《隐私政策》</span>
- </div>
- <div class="login-footer__version" v-if="plus.getSystemInfo('os') !== 'Web'">
- <span>v{{ appVersion }}</span>
- </div>
- </div>
- </app-statusbar>
- </template>
- <script lang="ts" setup>
- import { shallowRef } from 'vue'
- import { Button, Field, CellGroup, Form, Checkbox, showFailToast, showSuccessToast, showToast } from 'vant'
- import { fullloading } from '@/utils/vant'
- import { ClientType } from '@/constants/client'
- import { useLogin } from '@/business/login'
- import { useNavigation } from '@/hooks/navigation'
- import service from '@/services'
- import plus from '@/utils/h5plus'
- const { routerBack, routerTo } = useNavigation()
- const { formData, userLogin } = useLogin()
- const checked = shallowRef(false) // 是否同意协议管理
- const appVersion = plus.getSystemInfo('version') // 应用版本号
- // 导航跳转
- const navigationTo = (name: string) => {
- fullloading((hideLoading) => {
- service.onReady().then(() => {
- hideLoading()
- routerTo(name)
- }).catch(() => {
- showFailToast('初始化失败')
- })
- }, '加载中...')
- }
- // 获取终端类型
- const getClientType = () => {
- const os = plus.getSystemInfo('os')
- switch (os) {
- case 'Android': {
- return ClientType.Android
- }
- case 'iOS': {
- return ClientType.IOS
- }
- default: {
- return ClientType.Web
- }
- }
- }
- const formSubmit = () => {
- if (checked.value) {
- fullloading((hideLoading) => {
- formData.ClientType = getClientType()
- userLogin().then(() => {
- hideLoading()
- routerBack()
- showSuccessToast('登录成功')
- }).catch((err) => {
- showFailToast(err)
- })
- }, '登录中...')
- } else {
- showToast('请先同意使用条款')
- }
- }
- </script>
- <style lang="less">
- @import './index.less';
- </style>
|