parent
4286e7d097
commit
0ef20d829c
@ -0,0 +1,64 @@
|
|||||||
|
import request from "@/utils/request";
|
||||||
|
|
||||||
|
export function sendSms (params,isLoading = false) {
|
||||||
|
return request({
|
||||||
|
method: 'get',
|
||||||
|
url: '/api/admin/other/send_sms',
|
||||||
|
params,
|
||||||
|
isLoading
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function login (params,isLoading = false) {
|
||||||
|
return request({
|
||||||
|
method: 'get',
|
||||||
|
url: '/api/admin/other/login',
|
||||||
|
params,
|
||||||
|
isLoading
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function register (data,isLoading = false) {
|
||||||
|
return request({
|
||||||
|
method: 'post',
|
||||||
|
url: '/api/admin/other/register',
|
||||||
|
data,
|
||||||
|
isLoading
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function meetingList (params,isLoading = false) {
|
||||||
|
return request({
|
||||||
|
method: 'get',
|
||||||
|
url: '/api/admin/other/meeting',
|
||||||
|
params,
|
||||||
|
isLoading
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function exhibitorList (params,isLoading = false) {
|
||||||
|
return request({
|
||||||
|
method: 'get',
|
||||||
|
url: '/api/admin/other/exhibitor_files',
|
||||||
|
params,
|
||||||
|
isLoading
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function exhibitorSave (data,isLoading = false) {
|
||||||
|
return request({
|
||||||
|
method: 'post',
|
||||||
|
url: '/api/admin/other/exhibitor_files_save',
|
||||||
|
data,
|
||||||
|
isLoading
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function exhibitorDelete (params,isLoading = false) {
|
||||||
|
return request({
|
||||||
|
method: 'get',
|
||||||
|
url: '/api/admin/other/exhibitor_files_delete',
|
||||||
|
params,
|
||||||
|
isLoading
|
||||||
|
})
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 280 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 5.4 KiB |
@ -1,15 +1,18 @@
|
|||||||
import Cookies from 'js-cookie'
|
import Cookies from 'js-cookie'
|
||||||
|
|
||||||
const TokenKey = 'dongtuo_token'
|
const TokenKey = 'dongtuo_token'
|
||||||
|
const TokenKey_h5 = 'dongtuo_token_h5'
|
||||||
export function getToken() {
|
export function getToken() {
|
||||||
return Cookies.get(TokenKey)
|
let flag = /\/h5.*/.test(window.location.href)
|
||||||
|
return Cookies.get(flag ? TokenKey_h5 : TokenKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setToken(token) {
|
export function setToken(token) {
|
||||||
return Cookies.set(TokenKey, token)
|
let flag = /\/h5.*/.test(window.location.href)
|
||||||
|
return Cookies.set(flag ? TokenKey_h5 : TokenKey, token)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function removeToken() {
|
export function removeToken() {
|
||||||
return Cookies.remove(TokenKey)
|
let flag = /\/h5.*/.test(window.location.href)
|
||||||
|
return Cookies.remove(flag ? TokenKey_h5 : TokenKey)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,104 @@
|
|||||||
|
<template>
|
||||||
|
<div style="position: relative;">
|
||||||
|
<Spin style="position:absolute;left: 50%;top: 50%;transform: translate(-50%,-50%);z-index: 2;" v-show="isLoading"></Spin>
|
||||||
|
<Card v-for="item in exhibitors">
|
||||||
|
<template #title>
|
||||||
|
<p>
|
||||||
|
<Icon type="md-calendar" />
|
||||||
|
{{ item.meeting_id_meetings_id_relation ? item.meeting_id_meetings_id_relation.name : '' }}
|
||||||
|
</p>
|
||||||
|
</template>
|
||||||
|
<Tag :color="tagColor(item.status)">{{ status(item.status) }}</Tag>
|
||||||
|
<div class="item">
|
||||||
|
<div class="item__title">附件</div>
|
||||||
|
<div class="item__value">
|
||||||
|
<a href="">111</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Card>
|
||||||
|
|
||||||
|
<div style="display: flex; justify-content: center;margin-top: 20px;">
|
||||||
|
<Page
|
||||||
|
:total="exhibitorTotal"
|
||||||
|
:page-size="exhibitorSelect.page_size"
|
||||||
|
show-total
|
||||||
|
@on-change="
|
||||||
|
(e) => {
|
||||||
|
exhibitorSelect.page = e;
|
||||||
|
getExhibitors();
|
||||||
|
}
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { exhibitorList } from "@/api/h5";
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
isLoading: false,
|
||||||
|
exhibitorTotal: 0,
|
||||||
|
exhibitors: [],
|
||||||
|
exhibitorSelect: {
|
||||||
|
table_name: 'exhibitor_files',
|
||||||
|
page: 1,
|
||||||
|
page_size: 10,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getExhibitors(isRefresh = false) {
|
||||||
|
try {
|
||||||
|
this.isLoading = true
|
||||||
|
if (isRefresh) {
|
||||||
|
this.exhibitorSelect.page = 1;
|
||||||
|
}
|
||||||
|
const res = await exhibitorList(this.exhibitorSelect);
|
||||||
|
this.exhibitorTotal = res.total;
|
||||||
|
this.exhibitors = res.data;
|
||||||
|
|
||||||
|
this.isLoading = false;
|
||||||
|
}catch (e) {
|
||||||
|
this.isLoading = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
status() {
|
||||||
|
return function (status) {
|
||||||
|
let map = new Map([
|
||||||
|
[1, "待审核"],
|
||||||
|
[2, "已通过"],
|
||||||
|
[3, "未通过"],
|
||||||
|
]);
|
||||||
|
return map.get(status);
|
||||||
|
};
|
||||||
|
},
|
||||||
|
tagColor() {
|
||||||
|
return function (status) {
|
||||||
|
let map = new Map([
|
||||||
|
[1, "warning"],
|
||||||
|
[2, "success"],
|
||||||
|
[3, "error"],
|
||||||
|
]);
|
||||||
|
return map.get(status);
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
//this.getExhibitors();
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.item {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
&__title {
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,79 @@
|
|||||||
|
<template>
|
||||||
|
<div class="page">
|
||||||
|
<Tabs type="card" :animated="false" @on-click="tabClick">
|
||||||
|
<TabPane label="资料上传">
|
||||||
|
<div class="tabpane-container">
|
||||||
|
<subForm @success="$refs['myExhibitor'].getExhibitors(true)"></subForm>
|
||||||
|
</div>
|
||||||
|
</TabPane>
|
||||||
|
<TabPane label="我的资料">
|
||||||
|
<div class="tabpane-container">
|
||||||
|
<myExhibitor ref="myExhibitor"></myExhibitor>
|
||||||
|
</div>
|
||||||
|
</TabPane>
|
||||||
|
</Tabs>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
import myExhibitor from '@/views/h5/exhibitor/myExhibitor.vue';
|
||||||
|
import subForm from '@/views/h5/exhibitor/form.vue';
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
subForm,
|
||||||
|
myExhibitor
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
tabClick (index) {
|
||||||
|
if (index === 1) {
|
||||||
|
this.$refs['myExhibitor'].getExhibitors(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
},
|
||||||
|
destroyed() {
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.page {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: #eee;
|
||||||
|
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
::v-deep .ivu-tabs-ink-bar {
|
||||||
|
transition: none;
|
||||||
|
}
|
||||||
|
::v-deep .ivu-tabs-tab-active {
|
||||||
|
border-color: $primaryColor !important;
|
||||||
|
}
|
||||||
|
::v-deep .ivu-tabs-bar {
|
||||||
|
border-color: $primaryColor !important;
|
||||||
|
margin-bottom: 0!important;
|
||||||
|
}
|
||||||
|
.tabpane-container {
|
||||||
|
background: #fff;
|
||||||
|
border: 1px solid $primaryColor;
|
||||||
|
border-top: none;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 0 0 4px 4px;
|
||||||
|
}
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.page {
|
||||||
|
padding: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,128 @@
|
|||||||
|
<template>
|
||||||
|
<div class="form">
|
||||||
|
<el-form ref="elForm" hide-required-asterisk :model="form" :rules="rules" label-position="top" size="small">
|
||||||
|
<el-form-item v-for="(value,key) in form" :prop="key" :label="formLabel[key]">
|
||||||
|
<el-input v-model="form[key]"
|
||||||
|
clearable
|
||||||
|
:placeholder="'请输入'+formLabel[key]">
|
||||||
|
<template #append v-if="key === 'mobile'">
|
||||||
|
<el-button :disabled="isVerify" @click="sendVerify">
|
||||||
|
{{ time ? time+'秒重新获取' : '发送验证码'}}
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item style="padding-top: 10px;">
|
||||||
|
<div style="display: flex;">
|
||||||
|
<Button long type="primary" ghost @click="$emit('toRegister')">注 册</Button>
|
||||||
|
<Button :loading="isLoading" long type="primary" @click="login">登 录</Button>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { login, sendSms } from "@/api/h5";
|
||||||
|
import { setToken } from "@/utils/auth";
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: {
|
||||||
|
mobile: '',
|
||||||
|
code: '',
|
||||||
|
},
|
||||||
|
formLabel: {
|
||||||
|
mobile: '手机号码',
|
||||||
|
code: '验证码'
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
mobile: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入手机号',
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
validator:(rule, value, callback) => {
|
||||||
|
const reg = /^1[3456789]\d{9}$/;
|
||||||
|
if (reg.test(value)) {
|
||||||
|
callback()
|
||||||
|
} else {
|
||||||
|
callback(new Error('手机号格式错误'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
code: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入验证码',
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
isLoading: false,
|
||||||
|
isVerify: false,
|
||||||
|
timer: null,
|
||||||
|
time: 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
sendVerify () {
|
||||||
|
if (this.isVerify) return
|
||||||
|
this.$refs['elForm'].validateField('mobile',(res) => {
|
||||||
|
if (!res) {
|
||||||
|
sendSms({
|
||||||
|
mobile: this.form.mobile,
|
||||||
|
type: 4
|
||||||
|
}).then(res => {
|
||||||
|
this.time = 60;
|
||||||
|
this.isVerify = true;
|
||||||
|
|
||||||
|
this.timer = setInterval(() => {
|
||||||
|
this.time > 0 ? (this.time--) : (clearInterval(this.timer),this.isVerify = false)
|
||||||
|
},1000)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
login () {
|
||||||
|
this.$refs['elForm'].validate(res => {
|
||||||
|
if (res) {
|
||||||
|
this.isLoading = true;
|
||||||
|
|
||||||
|
login(this.form).then(res => {
|
||||||
|
this.isLoading = false;
|
||||||
|
|
||||||
|
setToken(res.token);
|
||||||
|
this.$router.push('/h5')
|
||||||
|
}).catch(_ => this.isLoading = false)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
::v-deep .el-form--label-top .el-form-item__label {
|
||||||
|
line-height: 20px;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
::v-deep .el-input-group__append > button {
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
color: #fff;
|
||||||
|
transition: all .2s;
|
||||||
|
|
||||||
|
&:not([disabled^=disabled]) {
|
||||||
|
background: #de6d48;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
::v-deep .el-button.is-disabled {
|
||||||
|
background: #999;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,127 @@
|
|||||||
|
<template>
|
||||||
|
<div class="panel">
|
||||||
|
<div class="logo">
|
||||||
|
<img :src="require('@/assets/logo.png')" alt="">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="title">
|
||||||
|
<h2>展商{{ isLogin ? '登录' : '注册'}}</h2>
|
||||||
|
|
||||||
|
<h5>请输入{{ isLogin ? '登录' : '注册'}}信息</h5>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<transition name="panel">
|
||||||
|
<template v-if="isLogin">
|
||||||
|
<login @toRegister="isLogin = false"></login>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<register @toLogin="isLogin = true"></register>
|
||||||
|
</template>
|
||||||
|
</transition>
|
||||||
|
|
||||||
|
<div class="footer">2023 © 盐城东拓国际会展服务有限公司</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import register from "./register.vue";
|
||||||
|
import login from "./login.vue";
|
||||||
|
//import { sendSms,login } from "@/api/h5";
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
register,
|
||||||
|
login
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
isLogin: true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.panel {
|
||||||
|
background: #fff;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.logo {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: left;
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
top: 40px;
|
||||||
|
left: 40px;
|
||||||
|
& > img {
|
||||||
|
height: 30px;
|
||||||
|
object-fit: contain;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
color: $primaryColor;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
margin-bottom: 4vh;
|
||||||
|
& > h5 {
|
||||||
|
color: #999;
|
||||||
|
|
||||||
|
padding-top: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.footer {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #9ba6ac;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
word-break: keep-all;
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
bottom: 40px;
|
||||||
|
left: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.panel {
|
||||||
|
|
||||||
|
padding: 0 20px;
|
||||||
|
}
|
||||||
|
.logo {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.panel {
|
||||||
|
|
||||||
|
padding: 0 40px;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-enter-active {
|
||||||
|
animation: fade-in-fwd 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
|
||||||
|
}
|
||||||
|
@keyframes fade-in-fwd {
|
||||||
|
0% {
|
||||||
|
transform: translateZ(-80px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: translateZ(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-leave-active {
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,169 @@
|
|||||||
|
<template>
|
||||||
|
<div class="form">
|
||||||
|
<el-form ref="elForm" hide-required-asterisk :model="form" :rules="rules" label-position="top" size="small">
|
||||||
|
<el-form-item v-for="(value,key) in form" :prop="key" :label="formLabel[key]">
|
||||||
|
<el-input v-model="form[key]"
|
||||||
|
clearable
|
||||||
|
:placeholder="'请输入'+formLabel[key]">
|
||||||
|
<template #append v-if="key === 'mobile'">
|
||||||
|
<el-button :disabled="isVerify" @click="sendVerify">
|
||||||
|
{{ time ? time+'秒重新获取' : '发送验证码'}}
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item style="padding-top: 10px;">
|
||||||
|
<div style="display: flex;">
|
||||||
|
<Button long type="primary" ghost @click="$emit('toLogin')">返回登录</Button>
|
||||||
|
<Button :loading="isLoading" long type="primary" @click="register">确认注册</Button>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { sendSms, register } from "@/api/h5";
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: {
|
||||||
|
name: '',
|
||||||
|
lianxiren: '',
|
||||||
|
lianxidianhua: '',
|
||||||
|
mobile: '',
|
||||||
|
code: '',
|
||||||
|
},
|
||||||
|
formLabel: {
|
||||||
|
name: '公司名称',
|
||||||
|
lianxiren: '联系人',
|
||||||
|
lianxidianhua: '联系电话',
|
||||||
|
mobile: '手机号',
|
||||||
|
code: '验证码'
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
name: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入公司名称',
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
lianxiren: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入联系人',
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
lianxidianhua: [
|
||||||
|
// {
|
||||||
|
// required: true,
|
||||||
|
// message: '请输入联系电话',
|
||||||
|
// trigger: 'blur'
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
validator:(rule, value, callback) => {
|
||||||
|
const mobile = /^1[3456789]\d{9}$/;
|
||||||
|
const phone = /^((0\d{2,3})-)?(\d{7,8})$/;
|
||||||
|
if (mobile.test(value) || phone.test(value)) {
|
||||||
|
callback()
|
||||||
|
} else {
|
||||||
|
callback(new Error('联系电话格式错误'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
mobile: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入手机号',
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
validator:(rule, value, callback) => {
|
||||||
|
const reg = /^1[3456789]\d{9}$/;
|
||||||
|
if (reg.test(value)) {
|
||||||
|
callback()
|
||||||
|
} else {
|
||||||
|
callback(new Error('手机号格式错误'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
code: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入验证码',
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
isLoading: false,
|
||||||
|
isVerify: false,
|
||||||
|
timer: null,
|
||||||
|
time: 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
sendVerify () {
|
||||||
|
if (this.isVerify) return
|
||||||
|
this.$refs['elForm'].validateField('mobile',(res) => {
|
||||||
|
if (!res) {
|
||||||
|
sendSms({
|
||||||
|
mobile: this.form.mobile,
|
||||||
|
type: 5
|
||||||
|
}).then(res => {
|
||||||
|
this.time = 60;
|
||||||
|
this.isVerify = true;
|
||||||
|
|
||||||
|
this.timer = setInterval(() => {
|
||||||
|
this.time > 0 ? (this.time--) : (clearInterval(this.timer),this.isVerify = false)
|
||||||
|
},1000)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
register () {
|
||||||
|
//this.$emit('toLogin');
|
||||||
|
this.$refs['elForm'].validate((res) => {
|
||||||
|
if (res) {
|
||||||
|
this.isLoading = true;
|
||||||
|
|
||||||
|
register(this.form).then(res => {
|
||||||
|
this.isLoading = false;
|
||||||
|
|
||||||
|
this.$Message.success({
|
||||||
|
content: '注册成功'
|
||||||
|
});
|
||||||
|
setTimeout(() => this.$emit('toLogin'),1500);
|
||||||
|
}).catch(err => this.isLoading = false)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
::v-deep .el-form--label-top .el-form-item__label {
|
||||||
|
line-height: 20px;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
::v-deep .el-input-group__append > button {
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
color: #fff;
|
||||||
|
transition: all .2s;
|
||||||
|
|
||||||
|
&:not([disabled^=disabled]) {
|
||||||
|
background: #de6d48;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
::v-deep .el-button.is-disabled {
|
||||||
|
background: #999;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,102 @@
|
|||||||
|
<template>
|
||||||
|
<div class="body">
|
||||||
|
<loginPanel class="login-panel"></loginPanel>
|
||||||
|
|
||||||
|
<div class="bkg">
|
||||||
|
<div class="words">
|
||||||
|
<h2>欢迎使用本平台</h2>
|
||||||
|
<div>
|
||||||
|
<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" ><path d="M470.9888 261.77536l0 98.54976c0 13.3632-10.83392 24.19712-24.19712 24.19712-47.68768 0-73.6256 48.90624-77.21984 145.43872l77.21984 0c13.3632 0 24.19712 10.84416 24.19712 24.19712l0 208.0768c0 13.3632-10.83392 24.19712-24.19712 24.19712L240.90624 786.432c-13.37344 0-24.19712-10.84416-24.19712-24.19712l0-208.0768c0-46.27456 4.6592-88.73984 13.84448-126.22848 9.4208-38.44096 23.87968-72.04864 42.96704-99.90144 19.64032-28.6208 44.20608-51.07712 73.02144-66.72384 29.00992-15.73888 62.74048-23.72608 100.25984-23.72608C460.15488 237.57824 470.9888 248.41216 470.9888 261.77536zM783.09376 384.52224c13.3632 0 24.19712-10.84416 24.19712-24.19712l0-98.54976c0-13.3632-10.83392-24.19712-24.19712-24.19712-37.50912 0-71.23968 7.9872-100.2496 23.72608-28.81536 15.64672-53.39136 38.10304-73.03168 66.72384-19.08736 27.8528-33.54624 61.46048-42.96704 99.91168-9.17504 37.49888-13.83424 79.96416-13.83424 126.21824l0 208.0768c0 13.3632 10.83392 24.19712 24.19712 24.19712l205.8752 0c13.3632 0 24.19712-10.84416 24.19712-24.19712l0-208.0768c0-13.3632-10.83392-24.19712-24.19712-24.19712L706.9696 529.96096C710.51264 433.42848 736.07168 384.52224 783.09376 384.52224z" fill="#ffffff"></path></svg>
|
||||||
|
<span>本平台为展商提供资料上传</span>
|
||||||
|
<svg viewBox="0 0 1024 1024" ><path d="M553.0112 762.23488l0-98.54976c0-13.3632 10.84416-24.19712 24.19712-24.19712 47.68768 0 73.6256-48.896 77.21984-145.42848l-77.21984 0c-13.3632 0-24.19712-10.84416-24.19712-24.19712l0-208.0768c0-13.3632 10.84416-24.19712 24.19712-24.19712l205.88544 0c13.3632 0 24.19712 10.84416 24.19712 24.19712l0 208.0768c0 46.27456-4.66944 88.7296-13.83424 126.22848-9.4208 38.44096-23.87968 72.04864-42.97728 99.90144-19.63008 28.6208-44.20608 51.07712-73.0112 66.72384-29.02016 15.73888-62.75072 23.72608-100.27008 23.72608C563.84512 786.432 553.0112 775.58784 553.0112 762.23488zM240.90624 639.47776c-13.3632 0-24.19712 10.84416-24.19712 24.19712l0 98.54976c0 13.3632 10.83392 24.19712 24.19712 24.19712 37.49888 0 71.24992-7.9872 100.2496-23.72608 28.81536-15.64672 53.39136-38.0928 73.02144-66.72384 19.0976-27.8528 33.55648-61.46048 42.97728-99.92192 9.17504-37.49888 13.83424-79.95392 13.83424-126.208l0-208.0768c0-13.3632-10.84416-24.19712-24.19712-24.19712L240.90624 237.568c-13.3632 0-24.19712 10.84416-24.19712 24.19712l0 208.0768c0 13.3632 10.83392 24.19712 24.19712 24.19712l76.1344 0C313.48736 590.58176 287.91808 639.47776 240.90624 639.47776z" fill="#ffffff"></path></svg>
|
||||||
|
</div>
|
||||||
|
<h5>-盐城国际会议展览中心-</h5>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import loginPanel from "./component/loginPanel.vue";
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
loginPanel
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {},
|
||||||
|
computed: {},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.body {
|
||||||
|
height: 100vh;
|
||||||
|
width: 100vw;
|
||||||
|
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.login-panel {
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.login-panel {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.bkg {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.words {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.login-panel {
|
||||||
|
width: 34vw;
|
||||||
|
box-shadow: 1px 0 10px 8px rgba(0,0,0,.04);
|
||||||
|
}
|
||||||
|
.bkg {
|
||||||
|
height: 100%;
|
||||||
|
width: 66vw;
|
||||||
|
float: right;
|
||||||
|
background: url("../../../assets/h5bkg.jpeg") no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.words {
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
bottom: 80px;
|
||||||
|
left: 50%;
|
||||||
|
|
||||||
|
& > div {
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 16px;
|
||||||
|
word-break: keep-all;
|
||||||
|
align-items: center;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
padding: 4px 0;
|
||||||
|
& > span {
|
||||||
|
|
||||||
|
padding: 0 8px;
|
||||||
|
}
|
||||||
|
& > svg {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
Reference in new issue