|
@@ -1,9 +1,5 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <div
|
|
|
|
|
- id="signup"
|
|
|
|
|
- v-loading="loading"
|
|
|
|
|
- element-loading-background="rgba(43, 48, 67, 0.65)"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <div id="signup" v-loading="loading" element-loading-background="rgba(43, 48, 67, 0.65)">
|
|
|
<div class="logo">
|
|
<div class="logo">
|
|
|
<!-- <img width="160px" :src="img_logo" /> -->
|
|
<!-- <img width="160px" :src="img_logo" /> -->
|
|
|
</div>
|
|
</div>
|
|
@@ -104,10 +100,11 @@
|
|
|
@click="handleGetCode"
|
|
@click="handleGetCode"
|
|
|
class="getCode"
|
|
class="getCode"
|
|
|
:class="{
|
|
:class="{
|
|
|
- disabled: !isAgeValid || !params.birthDate || isCodeSending
|
|
|
|
|
|
|
+ disabled: !isAgeValid || !params.birthDate || isCodeSending,
|
|
|
}"
|
|
}"
|
|
|
- v-text="getCodeString"
|
|
|
|
|
- ></span>
|
|
|
|
|
|
|
+ >
|
|
|
|
|
+ {{getCodeString}}
|
|
|
|
|
+ </span>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -145,6 +142,7 @@
|
|
|
v-model.trim="params.agentId"
|
|
v-model.trim="params.agentId"
|
|
|
:placeholder="$t('newSignup.item15')"
|
|
:placeholder="$t('newSignup.item15')"
|
|
|
type="number"
|
|
type="number"
|
|
|
|
|
+ :controls="false"
|
|
|
:disabled="!isAgeValid || !params.birthDate"
|
|
:disabled="!isAgeValid || !params.birthDate"
|
|
|
@input="limitAgentIdLength"
|
|
@input="limitAgentIdLength"
|
|
|
>
|
|
>
|
|
@@ -177,7 +175,7 @@
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
<a
|
|
<a
|
|
|
class="rbt-btn btn-gradient hover-icon-reverse btn-sm w-100"
|
|
class="rbt-btn btn-gradient hover-icon-reverse btn-sm w-100"
|
|
|
- href="javascript:void(0)"
|
|
|
|
|
|
|
+ href="javascript:void(0)"
|
|
|
@click="register"
|
|
@click="register"
|
|
|
>
|
|
>
|
|
|
<div class="icon-reverse-wrapper">
|
|
<div class="icon-reverse-wrapper">
|
|
@@ -204,24 +202,15 @@
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
<div class="des">
|
|
<div class="des">
|
|
|
<span>{{ $t('signup.agreemnet1') }}</span>
|
|
<span>{{ $t('signup.agreemnet1') }}</span>
|
|
|
- <a
|
|
|
|
|
- href="pdf/Client_Agreement.pdf"
|
|
|
|
|
- target="_blank"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <a href="pdf/Client_Agreement.pdf" target="_blank">
|
|
|
{{ $t('signup.agreemnet2') }}
|
|
{{ $t('signup.agreemnet2') }}
|
|
|
</a>
|
|
</a>
|
|
|
<span>{{ $t('signup.agreemnet3') }}</span>
|
|
<span>{{ $t('signup.agreemnet3') }}</span>
|
|
|
- <a
|
|
|
|
|
- href="pdf/Terms&Conditions.pdf"
|
|
|
|
|
- target="_blank"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <a href="pdf/Terms&Conditions.pdf" target="_blank">
|
|
|
{{ $t('signup.agreemnet4') }}
|
|
{{ $t('signup.agreemnet4') }}
|
|
|
</a>
|
|
</a>
|
|
|
<span>{{ $t('signup.agreemnet5') }}</span>
|
|
<span>{{ $t('signup.agreemnet5') }}</span>
|
|
|
- <a
|
|
|
|
|
- href="pdf/Privacy_Policy.pdf"
|
|
|
|
|
- target="_blank"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <a href="pdf/Privacy_Policy.pdf" target="_blank">
|
|
|
{{ $t('signup.agreemnet6') }}
|
|
{{ $t('signup.agreemnet6') }}
|
|
|
</a>
|
|
</a>
|
|
|
<span>{{ $t('signup.agreemnet7') }}</span>
|
|
<span>{{ $t('signup.agreemnet7') }}</span>
|
|
@@ -240,841 +229,865 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
-import { ref, reactive, computed, onMounted, onUnmounted } from 'vue'
|
|
|
|
|
-import { useRouter, useRoute } from 'vue-router'
|
|
|
|
|
-import { useI18n } from 'vue-i18n'
|
|
|
|
|
-import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
|
|
-import { Right, } from '@element-plus/icons-vue'
|
|
|
|
|
-import axios from 'axios'
|
|
|
|
|
-// import ImportModel from "@/components/importModel.vue"
|
|
|
|
|
-import Service from '@/service/login'
|
|
|
|
|
-import Service1 from '@/service/country'
|
|
|
|
|
-import Config from '@/config/index'
|
|
|
|
|
-
|
|
|
|
|
-// Composition API
|
|
|
|
|
-const { t, locale } = useI18n()
|
|
|
|
|
-const router = useRouter()
|
|
|
|
|
-const route = useRoute()
|
|
|
|
|
-const { Code, Pattern } = Config
|
|
|
|
|
-
|
|
|
|
|
-// 响应式数据
|
|
|
|
|
-const loading = ref(false)
|
|
|
|
|
-const showImportModel = ref(false)
|
|
|
|
|
-const countryCode = ref('')
|
|
|
|
|
-const formRef = ref(null)
|
|
|
|
|
-const importModelRef = ref(null)
|
|
|
|
|
-const timer = ref(59)
|
|
|
|
|
-const interval = ref(null)
|
|
|
|
|
-const getCodeString = ref('')
|
|
|
|
|
-const isCodeSending = ref(false)
|
|
|
|
|
-
|
|
|
|
|
-// 禁止注册的国家列表
|
|
|
|
|
-const notCountry = ref([
|
|
|
|
|
- 'AF', 'AI', 'AG', 'BM', 'BS', 'BY', 'BE', 'BZ', 'BA', 'BI',
|
|
|
|
|
- 'CF', 'CD', 'CU', 'ET', 'FJ', 'PS', 'GN', 'GW', 'HT', 'ID',
|
|
|
|
|
- 'IR', 'IQ', 'LB', 'LY', 'MY', 'ML', 'MM', 'NI', 'KP', 'PW',
|
|
|
|
|
- 'RU', 'SO', 'SS', 'SD', 'SY', 'UA', 'US', 'VE', 'YE', 'ZW',
|
|
|
|
|
- 'MY', 'ID', 'IL',
|
|
|
|
|
-])
|
|
|
|
|
-
|
|
|
|
|
-// 国家选项
|
|
|
|
|
-const countryOptions = ref([
|
|
|
|
|
- { label: 'china', value: 'cn' },
|
|
|
|
|
- { label: 'england', value: 'en' },
|
|
|
|
|
-])
|
|
|
|
|
-
|
|
|
|
|
-// 表单数据
|
|
|
|
|
-const params = reactive({
|
|
|
|
|
- agentId: null,
|
|
|
|
|
- comPoint: null,
|
|
|
|
|
- sourceCode: null,
|
|
|
|
|
- subId: '',
|
|
|
|
|
- email: '',
|
|
|
|
|
- password: '',
|
|
|
|
|
- phone: '',
|
|
|
|
|
- country: '',
|
|
|
|
|
- emailCode: '',
|
|
|
|
|
- birthDate: null,
|
|
|
|
|
- w: '',
|
|
|
|
|
- oc: '',
|
|
|
|
|
- agree: false,
|
|
|
|
|
- isSubscribeEmail: false,
|
|
|
|
|
- ibInvalid: 0,
|
|
|
|
|
- linkValue: null,
|
|
|
|
|
-})
|
|
|
|
|
-
|
|
|
|
|
-// 计算属性
|
|
|
|
|
-const rule1 = computed(() => {
|
|
|
|
|
- if (!params.password) return false
|
|
|
|
|
- return /^.{8,16}$/.test(params.password)
|
|
|
|
|
-})
|
|
|
|
|
-
|
|
|
|
|
-const rule2 = computed(() => {
|
|
|
|
|
- return /^(?=.*?[a-z])(?=.*?[A-Z]).*$/.test(params.password)
|
|
|
|
|
-})
|
|
|
|
|
-
|
|
|
|
|
-const rule3 = computed(() => {
|
|
|
|
|
- return /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?!.*([~!@&%$^\\(\\)#_]).*\\1.*\\1)[A-Za-z0-9~!@&%$^\\(\\)#_]{8,16}$/.test(params.password)
|
|
|
|
|
-})
|
|
|
|
|
-
|
|
|
|
|
-const isAgeValid = computed(() => {
|
|
|
|
|
- if (!params.birthDate) return false
|
|
|
|
|
- const today = new Date()
|
|
|
|
|
- const birthDate = new Date(params.birthDate)
|
|
|
|
|
- let age = today.getFullYear() - birthDate.getFullYear()
|
|
|
|
|
- const monthDiff = today.getMonth() - birthDate.getMonth()
|
|
|
|
|
- if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {
|
|
|
|
|
- age--
|
|
|
|
|
- }
|
|
|
|
|
- return age >= 18
|
|
|
|
|
-})
|
|
|
|
|
-
|
|
|
|
|
-const subscribeEmailValue = computed(() => {
|
|
|
|
|
- return params.isSubscribeEmail ? 0 : 1
|
|
|
|
|
-})
|
|
|
|
|
-
|
|
|
|
|
-// 验证规则
|
|
|
|
|
-const rules = {
|
|
|
|
|
- country: [
|
|
|
|
|
- {
|
|
|
|
|
- validator: (rule, value, callback) => {
|
|
|
|
|
- if (value && value.trim()) {
|
|
|
|
|
- callback()
|
|
|
|
|
- } else {
|
|
|
|
|
- callback(new Error(t('vaildate.country.empty')))
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ import { ref, reactive, computed, onMounted, onUnmounted, inject } from 'vue'
|
|
|
|
|
+ import { useRouter, useRoute } from 'vue-router'
|
|
|
|
|
+ import { useI18n } from 'vue-i18n'
|
|
|
|
|
+ import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
|
|
+ import { Right } from '@element-plus/icons-vue'
|
|
|
|
|
+ import axios from 'axios'
|
|
|
|
|
+ // import ImportModel from "@/components/importModel.vue"
|
|
|
|
|
+ import Service from '@/service/login'
|
|
|
|
|
+ import Service1 from '@/service/country'
|
|
|
|
|
+ import Config from '@/config/index'
|
|
|
|
|
+ import { useStore } from 'vuex'
|
|
|
|
|
+
|
|
|
|
|
+ // Composition API
|
|
|
|
|
+ const { t, locale } = useI18n()
|
|
|
|
|
+ const router = useRouter()
|
|
|
|
|
+ const route = useRoute()
|
|
|
|
|
+ const { Code, Pattern } = Config
|
|
|
|
|
+ const pigeon = inject('pigeon')
|
|
|
|
|
+ const Session = inject('session')
|
|
|
|
|
+ const store = useStore()
|
|
|
|
|
+
|
|
|
|
|
+ // 响应式数据
|
|
|
|
|
+ const loading = ref(false)
|
|
|
|
|
+ const showImportModel = ref(false)
|
|
|
|
|
+ const countryCode = ref('')
|
|
|
|
|
+ const formRef = ref(null)
|
|
|
|
|
+ const importModelRef = ref(null)
|
|
|
|
|
+ const timer = ref(59)
|
|
|
|
|
+ const interval = ref(null)
|
|
|
|
|
+ const getCodeString = ref('')
|
|
|
|
|
+ const isCodeSending = ref(false)
|
|
|
|
|
+
|
|
|
|
|
+ // 禁止注册的国家列表
|
|
|
|
|
+ const notCountry = ref([
|
|
|
|
|
+ 'AF',
|
|
|
|
|
+ 'AI',
|
|
|
|
|
+ 'AG',
|
|
|
|
|
+ 'BM',
|
|
|
|
|
+ 'BS',
|
|
|
|
|
+ 'BY',
|
|
|
|
|
+ 'BE',
|
|
|
|
|
+ 'BZ',
|
|
|
|
|
+ 'BA',
|
|
|
|
|
+ 'BI',
|
|
|
|
|
+ 'CF',
|
|
|
|
|
+ 'CD',
|
|
|
|
|
+ 'CU',
|
|
|
|
|
+ 'ET',
|
|
|
|
|
+ 'FJ',
|
|
|
|
|
+ 'PS',
|
|
|
|
|
+ 'GN',
|
|
|
|
|
+ 'GW',
|
|
|
|
|
+ 'HT',
|
|
|
|
|
+ 'ID',
|
|
|
|
|
+ 'IR',
|
|
|
|
|
+ 'IQ',
|
|
|
|
|
+ 'LB',
|
|
|
|
|
+ 'LY',
|
|
|
|
|
+ 'MY',
|
|
|
|
|
+ 'ML',
|
|
|
|
|
+ 'MM',
|
|
|
|
|
+ 'NI',
|
|
|
|
|
+ 'KP',
|
|
|
|
|
+ 'PW',
|
|
|
|
|
+ 'RU',
|
|
|
|
|
+ 'SO',
|
|
|
|
|
+ 'SS',
|
|
|
|
|
+ 'SD',
|
|
|
|
|
+ 'SY',
|
|
|
|
|
+ 'UA',
|
|
|
|
|
+ 'US',
|
|
|
|
|
+ 'VE',
|
|
|
|
|
+ 'YE',
|
|
|
|
|
+ 'ZW',
|
|
|
|
|
+ 'MY',
|
|
|
|
|
+ 'ID',
|
|
|
|
|
+ 'IL',
|
|
|
|
|
+ ])
|
|
|
|
|
+
|
|
|
|
|
+ // 国家选项
|
|
|
|
|
+ const countryOptions = ref([
|
|
|
|
|
+ { label: 'china', value: 'cn' },
|
|
|
|
|
+ { label: 'england', value: 'en' },
|
|
|
|
|
+ ])
|
|
|
|
|
+
|
|
|
|
|
+ // 表单数据
|
|
|
|
|
+ const params = reactive({
|
|
|
|
|
+ agentId: null,
|
|
|
|
|
+ comPoint: null,
|
|
|
|
|
+ sourceCode: null,
|
|
|
|
|
+ subId: '',
|
|
|
|
|
+ email: '',
|
|
|
|
|
+ password: '',
|
|
|
|
|
+ phone: '',
|
|
|
|
|
+ country: '',
|
|
|
|
|
+ emailCode: '',
|
|
|
|
|
+ birthDate: null,
|
|
|
|
|
+ w: '',
|
|
|
|
|
+ oc: '',
|
|
|
|
|
+ agree: false,
|
|
|
|
|
+ isSubscribeEmail: false,
|
|
|
|
|
+ ibInvalid: 0,
|
|
|
|
|
+ linkValue: null,
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ // 计算属性
|
|
|
|
|
+ const rule1 = computed(() => {
|
|
|
|
|
+ if (!params.password) return false
|
|
|
|
|
+ return /^.{8,16}$/.test(params.password)
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ const rule2 = computed(() => {
|
|
|
|
|
+ return /^(?=.*?[a-z])(?=.*?[A-Z]).*$/.test(params.password)
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ const rule3 = computed(() => {
|
|
|
|
|
+ return /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?!.*([~!@&%$^\\(\\)#_]).*\\1.*\\1)[A-Za-z0-9~!@&%$^\\(\\)#_]{8,16}$/.test(
|
|
|
|
|
+ params.password
|
|
|
|
|
+ )
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ const isAgeValid = computed(() => {
|
|
|
|
|
+ if (!params.birthDate) return false
|
|
|
|
|
+ const today = new Date()
|
|
|
|
|
+ const birthDate = new Date(params.birthDate)
|
|
|
|
|
+ let age = today.getFullYear() - birthDate.getFullYear()
|
|
|
|
|
+ const monthDiff = today.getMonth() - birthDate.getMonth()
|
|
|
|
|
+ if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {
|
|
|
|
|
+ age--
|
|
|
|
|
+ }
|
|
|
|
|
+ return age >= 18
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ const subscribeEmailValue = computed(() => {
|
|
|
|
|
+ return params.isSubscribeEmail ? 0 : 1
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ // 验证规则
|
|
|
|
|
+ const rules = {
|
|
|
|
|
+ country: [
|
|
|
|
|
+ {
|
|
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
|
|
+ if (value && value.trim()) {
|
|
|
|
|
+ callback()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ callback(new Error(t('vaildate.country.empty')))
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ trigger: 'blur',
|
|
|
},
|
|
},
|
|
|
- trigger: 'blur',
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- email: [
|
|
|
|
|
- {
|
|
|
|
|
- validator: (rule, value, callback) => {
|
|
|
|
|
- if (Pattern.Email.test(value)) {
|
|
|
|
|
- callback()
|
|
|
|
|
- } else {
|
|
|
|
|
- callback(new Error(t('vaildate.email.format')))
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ],
|
|
|
|
|
+ email: [
|
|
|
|
|
+ {
|
|
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
|
|
+ if (Pattern.Email.test(value)) {
|
|
|
|
|
+ callback()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ callback(new Error(t('vaildate.email.format')))
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ trigger: 'blur',
|
|
|
},
|
|
},
|
|
|
- trigger: 'blur',
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- code: [
|
|
|
|
|
- {
|
|
|
|
|
- validator: (rule, value, callback) => {
|
|
|
|
|
- if (value && value.trim()) {
|
|
|
|
|
- callback()
|
|
|
|
|
- } else {
|
|
|
|
|
- callback(new Error(t('vaildate.code.empty')))
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ],
|
|
|
|
|
+ code: [
|
|
|
|
|
+ {
|
|
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
|
|
+ if (value && value.trim()) {
|
|
|
|
|
+ callback()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ callback(new Error(t('vaildate.code.empty')))
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ trigger: 'blur',
|
|
|
},
|
|
},
|
|
|
- trigger: 'blur',
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- password: [
|
|
|
|
|
- {
|
|
|
|
|
- validator: (rule, value, callback) => {
|
|
|
|
|
- if (Pattern.Password.test(value)) {
|
|
|
|
|
- callback()
|
|
|
|
|
- } else {
|
|
|
|
|
- callback(new Error(t('vaildate.password.format')))
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ],
|
|
|
|
|
+ password: [
|
|
|
|
|
+ {
|
|
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
|
|
+ if (Pattern.Password.test(value)) {
|
|
|
|
|
+ callback()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ callback(new Error(t('vaildate.password.format')))
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ trigger: 'blur',
|
|
|
},
|
|
},
|
|
|
- trigger: 'blur',
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- agree: [
|
|
|
|
|
- {
|
|
|
|
|
- validator: (rule, value, callback) => {
|
|
|
|
|
- if (value) {
|
|
|
|
|
- callback()
|
|
|
|
|
- } else {
|
|
|
|
|
- callback(new Error(t('vaildate.agree.empty')))
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ],
|
|
|
|
|
+ agree: [
|
|
|
|
|
+ {
|
|
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
|
|
+ if (value) {
|
|
|
|
|
+ callback()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ callback(new Error(t('vaildate.agree.empty')))
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ trigger: 'change',
|
|
|
},
|
|
},
|
|
|
- trigger: 'change',
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- phone: [
|
|
|
|
|
- {
|
|
|
|
|
- validator: (rule, value, callback) => {
|
|
|
|
|
- if (Pattern.Number.test(value)) {
|
|
|
|
|
- callback()
|
|
|
|
|
- } else {
|
|
|
|
|
- callback(new Error(t('vaildate.phone.format')))
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ],
|
|
|
|
|
+ phone: [
|
|
|
|
|
+ {
|
|
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
|
|
+ if (Pattern.Number.test(value)) {
|
|
|
|
|
+ callback()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ callback(new Error(t('vaildate.phone.format')))
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ trigger: 'blur',
|
|
|
},
|
|
},
|
|
|
- trigger: 'blur',
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- birthDate: [
|
|
|
|
|
- {
|
|
|
|
|
- validator: (rule, value, callback) => {
|
|
|
|
|
- if (!value) {
|
|
|
|
|
- callback(new Error(t('vaildate.birthDate.empty')))
|
|
|
|
|
- } else {
|
|
|
|
|
- callback()
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ],
|
|
|
|
|
+ birthDate: [
|
|
|
|
|
+ {
|
|
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
|
|
+ if (!value) {
|
|
|
|
|
+ callback(new Error(t('vaildate.birthDate.empty')))
|
|
|
|
|
+ } else {
|
|
|
|
|
+ callback()
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ trigger: 'change',
|
|
|
},
|
|
},
|
|
|
- trigger: 'change',
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-// 方法
|
|
|
|
|
-const getCountry = async () => {
|
|
|
|
|
- try {
|
|
|
|
|
- const res = await Service1.Country({})
|
|
|
|
|
- if (res.code === Code.StatusOK) {
|
|
|
|
|
- countryOptions.value = res.data
|
|
|
|
|
- } else {
|
|
|
|
|
- ElMessage.error(res.msg)
|
|
|
|
|
- }
|
|
|
|
|
- } catch (error) {
|
|
|
|
|
- console.error('获取国家列表失败:', error)
|
|
|
|
|
|
|
+ ],
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-const getCountryCode = async () => {
|
|
|
|
|
- try {
|
|
|
|
|
- const res = await Service.CodeById({})
|
|
|
|
|
- if (res.code === Code.StatusOK) {
|
|
|
|
|
- let countryCodeValue = res.msg
|
|
|
|
|
-
|
|
|
|
|
- // 特殊地区代码转换
|
|
|
|
|
- if (countryCodeValue === 'HK') {
|
|
|
|
|
- countryCodeValue = 'CNX'
|
|
|
|
|
- } else if (countryCodeValue === 'MC') {
|
|
|
|
|
- countryCodeValue = 'CNA'
|
|
|
|
|
- } else if (countryCodeValue === 'TW') {
|
|
|
|
|
- countryCodeValue = 'CNT'
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- // 如果不在禁止列表中,则设置默认国家
|
|
|
|
|
- if (!notCountry.value.includes(countryCodeValue)) {
|
|
|
|
|
- params.country = countryCodeValue
|
|
|
|
|
|
|
+ // 方法
|
|
|
|
|
+ const getCountry = async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await Service1.Country({})
|
|
|
|
|
+ if (res.code === Code.StatusOK) {
|
|
|
|
|
+ countryOptions.value = res.data
|
|
|
|
|
+ } else {
|
|
|
|
|
+ pigeon.error(res.msg)
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- // 处理语言和会话存储
|
|
|
|
|
- handleSessionStorage(countryCodeValue)
|
|
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('获取国家列表失败:', error)
|
|
|
}
|
|
}
|
|
|
- } catch (error) {
|
|
|
|
|
- console.error('获取国家代码失败:', error)
|
|
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-const handleSessionStorage = (countryCode) => {
|
|
|
|
|
- const rememberList = localStorage.getItem('rememberList')
|
|
|
|
|
- let lang = localStorage.getItem('lang') || (countryCode === 'CN' ? 'cn' : 'en')
|
|
|
|
|
|
|
|
|
|
- if (localStorage.getItem('isPopup') === 'true') {
|
|
|
|
|
- sessionStorage.clear()
|
|
|
|
|
- localStorage.setItem('isPopup', 'true')
|
|
|
|
|
- } else {
|
|
|
|
|
- sessionStorage.clear()
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- localStorage.setItem('lang', lang)
|
|
|
|
|
|
|
+ const getCountryCode = async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await Service.CodeById({})
|
|
|
|
|
+ if (res.code === Code.StatusOK) {
|
|
|
|
|
+ let countryCodeValue = res.msg
|
|
|
|
|
+ // 如果不在禁止列表中,则设置默认国家
|
|
|
|
|
+ if (!notCountry.value.includes(countryCodeValue)) {
|
|
|
|
|
+ Object.assign(params, {
|
|
|
|
|
+ country: countryCodeValue,
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- const savedTimer = localStorage.getItem('timer')
|
|
|
|
|
- if (savedTimer) {
|
|
|
|
|
- localStorage.setItem('timer', savedTimer)
|
|
|
|
|
|
|
+ // 处理语言和会话存储
|
|
|
|
|
+ handleSessionStorage(countryCodeValue)
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('获取国家代码失败:', error)
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (rememberList) {
|
|
|
|
|
- localStorage.setItem('rememberList', rememberList)
|
|
|
|
|
- localStorage.setItem('remember', '1')
|
|
|
|
|
|
|
+ const handleSessionStorage = (countryCode) => {
|
|
|
|
|
+ let rememberList = '' //Session.Get('rememberList')
|
|
|
|
|
+ if (Session.Get('remember') == 1 && Session.Get('rememberList')) {
|
|
|
|
|
+ rememberList = Session.Get('rememberList')
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!Session.Get('timer')) {
|
|
|
|
|
+ let lang = Session.Get('lang') ? Session.Get('lang') : params.country == 'CN' ? 'cn' : 'en'
|
|
|
|
|
+ if (Session.Get('isPopup') && Session.Get('isPopup') == 'true') {
|
|
|
|
|
+ sessionStorage.clear()
|
|
|
|
|
+ Session.Set('isPopup', true)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ sessionStorage.clear()
|
|
|
|
|
+ }
|
|
|
|
|
+ Session.Set('lang', lang)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ let timer = Session.Get('timer')
|
|
|
|
|
+ let lang = Session.Get('lang') ? Session.Get('lang') : params.country == 'CN' ? 'cn' : 'en'
|
|
|
|
|
+ if (Session.Get('isPopup') && Session.Get('isPopup') == 'true') {
|
|
|
|
|
+ sessionStorage.clear()
|
|
|
|
|
+ Session.Set('isPopup', true)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ sessionStorage.clear()
|
|
|
|
|
+ }
|
|
|
|
|
+ Session.Set('lang', lang)
|
|
|
|
|
+ Session.Set('timer', timer)
|
|
|
|
|
+ }
|
|
|
|
|
+ if (rememberList) {
|
|
|
|
|
+ Session.Set('rememberList', rememberList)
|
|
|
|
|
+ Session.Set('remember', '1')
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-const getCountryMsg = async () => {
|
|
|
|
|
- try {
|
|
|
|
|
- const res = await Service1.CountryGet({})
|
|
|
|
|
- if (res.code === Code.StatusOK) {
|
|
|
|
|
- countryCode.value = res.msg
|
|
|
|
|
- if (countryCode.value === 'MY' || countryCode.value === 'ID') {
|
|
|
|
|
- showImportModel.value = true
|
|
|
|
|
|
|
+ const getCountryMsg = async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await Service1.CountryGet({})
|
|
|
|
|
+ if (res.code === Code.StatusOK) {
|
|
|
|
|
+ countryCode.value = res.msg
|
|
|
}
|
|
}
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('获取国家信息失败:', error)
|
|
|
}
|
|
}
|
|
|
- } catch (error) {
|
|
|
|
|
- console.error('获取国家信息失败:', error)
|
|
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-const register = async () => {
|
|
|
|
|
- if (!formRef.value) return
|
|
|
|
|
|
|
+ const register = async () => {
|
|
|
|
|
+ if (!formRef.value) return
|
|
|
|
|
|
|
|
- try {
|
|
|
|
|
- const valid = await formRef.value.validate()
|
|
|
|
|
- if (!valid) return
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ const valid = await formRef.value.validate()
|
|
|
|
|
+ if (!valid) return
|
|
|
|
|
|
|
|
- if (countryCode.value === 'MY' || countryCode.value === 'ID') {
|
|
|
|
|
- showImportModel.value = true
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (countryCode.value === 'MY' || countryCode.value === 'ID') {
|
|
|
|
|
+ showImportModel.value = true
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- loading.value = true
|
|
|
|
|
- const formData = {
|
|
|
|
|
- ...params,
|
|
|
|
|
- isSubscribeEmail: subscribeEmailValue.value,
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ loading.value = true
|
|
|
|
|
+ const formData = {
|
|
|
|
|
+ ...params,
|
|
|
|
|
+ isSubscribeEmail: subscribeEmailValue.value,
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- const res = await Service.Register(formData)
|
|
|
|
|
- if (res.code === Code.StatusOK) {
|
|
|
|
|
- ElMessage.success(t('Msg.registerSuc'))
|
|
|
|
|
- await login()
|
|
|
|
|
- } else {
|
|
|
|
|
- ElMessage.error(res.msg)
|
|
|
|
|
|
|
+ const res = await Service.Register(formData)
|
|
|
|
|
+ if (res.code === Code.StatusOK) {
|
|
|
|
|
+ pigeon.success(t('Msg.registerSuc'))
|
|
|
|
|
+ await login()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ pigeon.error(res.msg)
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('注册失败:', error)
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ loading.value = false
|
|
|
}
|
|
}
|
|
|
- } catch (error) {
|
|
|
|
|
- console.error('注册失败:', error)
|
|
|
|
|
- ElMessage.error(t('Msg.SystemError'))
|
|
|
|
|
- } finally {
|
|
|
|
|
- loading.value = false
|
|
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-const login = async () => {
|
|
|
|
|
- try {
|
|
|
|
|
- const res = await Service.Login({
|
|
|
|
|
- loginName: params.email,
|
|
|
|
|
- password: params.password,
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ const login = async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await Service.Login({
|
|
|
|
|
+ loginName: params.email,
|
|
|
|
|
+ password: params.password,
|
|
|
|
|
+ })
|
|
|
|
|
|
|
|
- if (res.code === Code.StatusOK) {
|
|
|
|
|
- sessionStorage.setItem('access_token', res.data)
|
|
|
|
|
- axios.defaults.headers.common['Access-Token'] = res.data
|
|
|
|
|
- await getLoginInfo()
|
|
|
|
|
- } else {
|
|
|
|
|
- ElMessage.error(res.msg)
|
|
|
|
|
|
|
+ if (res.code === Code.StatusOK) {
|
|
|
|
|
+ sessionStorage.setItem('access_token', res.data)
|
|
|
|
|
+ axios.defaults.headers.common['Access-Token'] = res.data
|
|
|
|
|
+ await getLoginInfo()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ pigeon.error(res.msg)
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('登录失败:', error)
|
|
|
}
|
|
}
|
|
|
- } catch (error) {
|
|
|
|
|
- console.error('登录失败:', error)
|
|
|
|
|
- ElMessage.error(t('Msg.SystemError'))
|
|
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-const getLoginInfo = async () => {
|
|
|
|
|
- try {
|
|
|
|
|
- const res = await Service.CustomLoginInfo()
|
|
|
|
|
- if (res.code === Code.StatusOK) {
|
|
|
|
|
- // 如果有store,可以这样使用:
|
|
|
|
|
- // useStore().commit('InitInfo', res.data)
|
|
|
|
|
- ElMessage.success(t('Msg.LoginSuccess'))
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- // router.push('/')
|
|
|
|
|
- // useStore().commit('isActiveTab', '0')
|
|
|
|
|
- }, 1000)
|
|
|
|
|
- } else {
|
|
|
|
|
- ElMessage.error(t('Msg.SystemError'))
|
|
|
|
|
|
|
+
|
|
|
|
|
+ const getLoginInfo = async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await Service.CustomLoginInfo()
|
|
|
|
|
+ if (res.code === Code.StatusOK) {
|
|
|
|
|
+ store.commit('InitInfo', res.data)
|
|
|
|
|
+ ElMessage.success(t('Msg.LoginSuccess'))
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ router.push('/').catch((arr) => arr)
|
|
|
|
|
+ store.commit('isActiveTab', '0')
|
|
|
|
|
+ }, 1000)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ pigeon.error(t('Msg.SystemError'))
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('获取登录信息失败:', error)
|
|
|
|
|
+ pigeon.error(t('Msg.SystemError'))
|
|
|
}
|
|
}
|
|
|
- } catch (error) {
|
|
|
|
|
- console.error('获取登录信息失败:', error)
|
|
|
|
|
- ElMessage.error(t('Msg.SystemError'))
|
|
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-const handleGetCode = async () => {
|
|
|
|
|
- if (isCodeSending.value) return
|
|
|
|
|
|
|
+ const handleGetCode = async () => {
|
|
|
|
|
+ if (isCodeSending.value) return
|
|
|
|
|
|
|
|
- if (!params.birthDate) {
|
|
|
|
|
- ElMessage.warning(t('vaildate.birthDate.empty'))
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (!params.birthDate) {
|
|
|
|
|
+ pigeon.warning(t('vaildate.birthDate.empty'))
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if (!isAgeValid.value) {
|
|
|
|
|
- ElMessage.error(t('signup.ageRestriction'))
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (!isAgeValid.value) {
|
|
|
|
|
+ pigeon.error(t('signup.ageRestriction'))
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if (!params.country) {
|
|
|
|
|
- ElMessage.warning(t('vaildate.country.empty'))
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (!params.country) {
|
|
|
|
|
+ pigeon.warning(t('vaildate.country.empty'))
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if (!params.email) {
|
|
|
|
|
- ElMessage.warning(t('vaildate.email.empty'))
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (!params.email) {
|
|
|
|
|
+ pigeon.warning(t('vaildate.email.empty'))
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if (!Pattern.Email.test(params.email)) {
|
|
|
|
|
- ElMessage.warning(t('vaildate.email.format'))
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (!Pattern.Email.test(params.email)) {
|
|
|
|
|
+ pigeon.warning(t('vaildate.email.format'))
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- isCodeSending.value = true
|
|
|
|
|
- await getCode(1)
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ isCodeSending.value = true
|
|
|
|
|
+ await getCode(1)
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
-const getCode = async (val) => {
|
|
|
|
|
- if (val) {
|
|
|
|
|
- try {
|
|
|
|
|
- const res = await Service.Code(params)
|
|
|
|
|
- if (res.code === Code.StatusOK) {
|
|
|
|
|
- ElMessage.success(t('Msg.CodeSuccess'))
|
|
|
|
|
- startCountdown()
|
|
|
|
|
- } else {
|
|
|
|
|
- const errorMsg = res.msg === '邮箱已存在' || res.msg === 'Mailbox already exists'
|
|
|
|
|
- ? t('signup.agreemnet8')
|
|
|
|
|
- : res.msg
|
|
|
|
|
- ElMessage.error(errorMsg)
|
|
|
|
|
|
|
+ const getCode = async (val) => {
|
|
|
|
|
+ if (val) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ if (interval.value) {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ const res = await Service.Code(params)
|
|
|
|
|
+ if (res.code === Code.StatusOK) {
|
|
|
|
|
+ pigeon.success(t('Msg.CodeSuccess'))
|
|
|
|
|
+ startCountdown()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ const errorMsg =
|
|
|
|
|
+ res.msg === '邮箱已存在' || res.msg === 'Mailbox already exists'
|
|
|
|
|
+ ? t('signup.agreemnet8')
|
|
|
|
|
+ : res.msg
|
|
|
|
|
+ pigeon.error(errorMsg)
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('获取验证码失败:', error)
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ isCodeSending.value = false
|
|
|
}
|
|
}
|
|
|
- } catch (error) {
|
|
|
|
|
- console.error('获取验证码失败:', error)
|
|
|
|
|
- ElMessage.error(t('Msg.SystemError'))
|
|
|
|
|
- } finally {
|
|
|
|
|
- isCodeSending.value = false
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-const startCountdown = () => {
|
|
|
|
|
- getCodeString.value = t('signup.form.waitCode1') + timer.value + t('signup.form.waitCode2')
|
|
|
|
|
|
|
+ const startCountdown = () => {
|
|
|
|
|
+ getCodeString.value = t('signup.form.waitCode1') + timer.value + t('signup.form.waitCode2')
|
|
|
|
|
|
|
|
- if (interval.value) {
|
|
|
|
|
- clearInterval(interval.value)
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- interval.value = setInterval(() => {
|
|
|
|
|
- timer.value--
|
|
|
|
|
- localStorage.setItem('timer', timer.value)
|
|
|
|
|
- getCodeString.value = t('signup.form.waitCode1') + timer.value + t('signup.form.waitCode2')
|
|
|
|
|
|
|
|
|
|
- if (timer.value <= 0) {
|
|
|
|
|
- clearInterval(interval.value)
|
|
|
|
|
- interval.value = null
|
|
|
|
|
- timer.value = 59
|
|
|
|
|
|
|
+ interval.value = setInterval(() => {
|
|
|
|
|
+ timer.value--
|
|
|
|
|
+ Session.Set('timer', timer.value)
|
|
|
|
|
+ getCodeString.value = t('signup.form.waitCode1') + timer.value + t('signup.form.waitCode2')
|
|
|
|
|
+
|
|
|
|
|
+ if (timer.value <= 0) {
|
|
|
|
|
+ clearInterval(interval.value)
|
|
|
|
|
+ interval.value = null
|
|
|
|
|
+ timer.value = 59
|
|
|
|
|
+ getCodeString.value = t('newSignup.item11')
|
|
|
|
|
+ Session.Set('timer', timer.value)
|
|
|
|
|
+ }
|
|
|
|
|
+ }, 1000)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const initTimer = () => {
|
|
|
|
|
+ const savedTimer = Session.Get('timer') || timer.value
|
|
|
|
|
+ if (savedTimer == 59) {
|
|
|
getCodeString.value = t('newSignup.item11')
|
|
getCodeString.value = t('newSignup.item11')
|
|
|
- localStorage.setItem('timer', timer.value)
|
|
|
|
|
|
|
+ } else {
|
|
|
|
|
+ timer.value = Session.Get('timer')
|
|
|
|
|
+ startCountdown()
|
|
|
}
|
|
}
|
|
|
- }, 1000)
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-const initTimer = () => {
|
|
|
|
|
- const savedTimer = localStorage.getItem('timer') || timer.value
|
|
|
|
|
- if (savedTimer == 59) {
|
|
|
|
|
- getCodeString.value = t('newSignup.item11')
|
|
|
|
|
- } else {
|
|
|
|
|
- timer.value = parseInt(savedTimer)
|
|
|
|
|
- startCountdown()
|
|
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-const limitAgentIdLength = (value) => {
|
|
|
|
|
- if (value && value.toString().length > 10) {
|
|
|
|
|
- params.agentId = value.toString().slice(0, 10)
|
|
|
|
|
|
|
+ const limitAgentIdLength = (value) => {
|
|
|
|
|
+ if (value && value.toString().length > 10) {
|
|
|
|
|
+ Object.assign(params, {
|
|
|
|
|
+ agentId: value.toString().slice(0, 10),
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-const checkAge = () => {
|
|
|
|
|
- if (params.birthDate && !isAgeValid.value) {
|
|
|
|
|
- ElMessageBox.alert(
|
|
|
|
|
- t('signup.ageRestriction'),
|
|
|
|
|
- t('Msg.SystemPrompt'),
|
|
|
|
|
- {
|
|
|
|
|
|
|
+ const checkAge = () => {
|
|
|
|
|
+ if (params.birthDate && !isAgeValid.value) {
|
|
|
|
|
+ ElMessageBox.alert(t('signup.ageRestriction'), t('Msg.SystemPrompt'), {
|
|
|
confirmButtonText: t('Btn.Confirm'),
|
|
confirmButtonText: t('Btn.Confirm'),
|
|
|
type: 'warning',
|
|
type: 'warning',
|
|
|
- },
|
|
|
|
|
- )
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-const disabledDate = (time) => {
|
|
|
|
|
- return time.getTime() > Date.now()
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-const getCountryFlag = (code) => {
|
|
|
|
|
- // 这里可以根据国家代码返回对应的国旗图片路径
|
|
|
|
|
- // 例如:return `/src/assets/images/flags/${code}.png`
|
|
|
|
|
- return null
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-const handlePasswordInput = () => {
|
|
|
|
|
- // 密码输入时的处理逻辑
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-// 生命周期
|
|
|
|
|
-onMounted(() => {
|
|
|
|
|
- getCountryCode()
|
|
|
|
|
- getCountry()
|
|
|
|
|
- getCountryMsg()
|
|
|
|
|
- initTimer()
|
|
|
|
|
-
|
|
|
|
|
- // 处理URL参数
|
|
|
|
|
- params.sourceCode = route.query.ex || null
|
|
|
|
|
- params.w = route.query.w || ''
|
|
|
|
|
- params.subId = route.query.SUBID || ''
|
|
|
|
|
- params.oc = route.query.oc || ''
|
|
|
|
|
- params.email = route.query.emailAdvertisement || ''
|
|
|
|
|
-
|
|
|
|
|
- if (route.params.id) {
|
|
|
|
|
- params.agentId = Number(route.params.id)
|
|
|
|
|
- params.linkValue = route.params.commission
|
|
|
|
|
- params.ibInvalid = route.params.ibInvalid === 'B1' ? 1 : 0
|
|
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
-})
|
|
|
|
|
|
|
|
|
|
-onUnmounted(() => {
|
|
|
|
|
- if (interval.value) {
|
|
|
|
|
- clearInterval(interval.value)
|
|
|
|
|
|
|
+ const disabledDate = (time) => {
|
|
|
|
|
+ return time.getTime() > Date.now()
|
|
|
}
|
|
}
|
|
|
-})
|
|
|
|
|
-</script>
|
|
|
|
|
|
|
|
|
|
-<style lang="scss" scoped>
|
|
|
|
|
-#signup {
|
|
|
|
|
- width: 100%;
|
|
|
|
|
- max-width: 640px;
|
|
|
|
|
- height: auto;
|
|
|
|
|
- box-sizing: border-box;
|
|
|
|
|
- background-color: #fff;
|
|
|
|
|
-
|
|
|
|
|
- .title {
|
|
|
|
|
- margin: 32px 35px 0;
|
|
|
|
|
- font-size: 24px;
|
|
|
|
|
- font-weight: bolder;
|
|
|
|
|
- color: #e4e4e4;
|
|
|
|
|
- text-align: start;
|
|
|
|
|
-
|
|
|
|
|
- i {
|
|
|
|
|
- margin-right: 10px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // 生命周期
|
|
|
|
|
+ onMounted(() => {
|
|
|
|
|
+ getCountryCode()
|
|
|
|
|
+ getCountry()
|
|
|
|
|
+ getCountryMsg()
|
|
|
|
|
+ // initTimer()
|
|
|
|
|
+
|
|
|
|
|
+ // 处理URL参数
|
|
|
|
|
+ Object.assign(params, {
|
|
|
|
|
+ sourceCode: route.query.ex || null,
|
|
|
|
|
+ w:route.query.w || '',
|
|
|
|
|
+ subId: route.query.SUBID || '',
|
|
|
|
|
+ oc : route.query.oc || '',
|
|
|
|
|
+ email: route.query.emailAdvertisement || ''
|
|
|
|
|
+ })
|
|
|
|
|
|
|
|
- .tit1 {
|
|
|
|
|
- font-size: 34px;
|
|
|
|
|
- line-height: 1.14;
|
|
|
|
|
- font-weight: bold;
|
|
|
|
|
- color: #000000;
|
|
|
|
|
|
|
+ if (route.params.id) {
|
|
|
|
|
+ Object.assign(params, {
|
|
|
|
|
+ agentId: Number(route.params.id),
|
|
|
|
|
+ linkValue:route.params.commission,
|
|
|
|
|
+ ibInvalid: route.params.ibInvalid === 'B1' ? 1 : 0
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
|
|
+ initTimer()
|
|
|
|
|
+ })
|
|
|
|
|
|
|
|
- .tit2 {
|
|
|
|
|
- font-size: 20px;
|
|
|
|
|
- line-height: 1.5;
|
|
|
|
|
- color: #000000;
|
|
|
|
|
- font-weight: 500;
|
|
|
|
|
|
|
+ onUnmounted(() => {
|
|
|
|
|
+ if (interval.value) {
|
|
|
|
|
+ clearInterval(interval.value)
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
+ })
|
|
|
|
|
+</script>
|
|
|
|
|
|
|
|
- .form {
|
|
|
|
|
- padding: 20px 35px 35px;
|
|
|
|
|
-
|
|
|
|
|
- .getCode {
|
|
|
|
|
- margin-top: 15px;
|
|
|
|
|
- padding: 6px 10px;
|
|
|
|
|
- border: 1px solid;
|
|
|
|
|
- border-radius: 50px;
|
|
|
|
|
- cursor: pointer;
|
|
|
|
|
- user-select: none;
|
|
|
|
|
- white-space: nowrap;
|
|
|
|
|
- background-color: #e61f1e;
|
|
|
|
|
- color: #fff;
|
|
|
|
|
-
|
|
|
|
|
- &:hover {
|
|
|
|
|
- color: #fff;
|
|
|
|
|
- background-color: #ff0000;
|
|
|
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
|
+ #signup {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ max-width: 640px;
|
|
|
|
|
+ height: auto;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ background-color: #fff;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ .title {
|
|
|
|
|
+ margin: 32px 35px 0;
|
|
|
|
|
+ font-size: 24px;
|
|
|
|
|
+ font-weight: bolder;
|
|
|
|
|
+ color: #e4e4e4;
|
|
|
|
|
+ text-align: start;
|
|
|
|
|
+
|
|
|
|
|
+ i {
|
|
|
|
|
+ margin-right: 10px;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- &.disabled {
|
|
|
|
|
- opacity: 0.5;
|
|
|
|
|
- cursor: not-allowed;
|
|
|
|
|
- pointer-events: none;
|
|
|
|
|
|
|
+ .tit1 {
|
|
|
|
|
+ font-size: 34px;
|
|
|
|
|
+ line-height: 1.14;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ color: #000000;
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- .country {
|
|
|
|
|
- width: 100%;
|
|
|
|
|
- height: 40px;
|
|
|
|
|
|
|
+ .tit2 {
|
|
|
|
|
+ font-size: 20px;
|
|
|
|
|
+ line-height: 1.5;
|
|
|
|
|
+ color: #000000;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .country-option {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- gap: 8px;
|
|
|
|
|
|
|
+ .form {
|
|
|
|
|
+ padding: 20px 35px 35px;
|
|
|
|
|
|
|
|
- .flag-icon {
|
|
|
|
|
- width: 20px;
|
|
|
|
|
- height: 15px;
|
|
|
|
|
- object-fit: cover;
|
|
|
|
|
- border-radius: 2px;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .getCode {
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ margin-top: 15px;
|
|
|
|
|
+ padding: 0 10px;
|
|
|
|
|
+ border: 1px solid;
|
|
|
|
|
+ border-radius: 50px;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ user-select: none;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ background-color: #e61f1e;
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ line-height: 38px;
|
|
|
|
|
|
|
|
- .pwd {
|
|
|
|
|
- text-align: left;
|
|
|
|
|
- padding-left: 20px;
|
|
|
|
|
|
|
+ &:hover {
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ background-color: #ff0000;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- li {
|
|
|
|
|
- list-style-type: disc;
|
|
|
|
|
- line-height: 20px;
|
|
|
|
|
- color: #979797;
|
|
|
|
|
|
|
+ &.disabled {
|
|
|
|
|
+ opacity: 0.5;
|
|
|
|
|
+ cursor: not-allowed;
|
|
|
|
|
+ pointer-events: none;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .fit {
|
|
|
|
|
- color: #67c23a; /* 绿色表示符合规则 */
|
|
|
|
|
|
|
+ .country {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 40px;
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- .agree {
|
|
|
|
|
- position: relative;
|
|
|
|
|
|
|
+ .country-option {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
|
|
|
- .el-checkbox {
|
|
|
|
|
- position: absolute;
|
|
|
|
|
- top: 0;
|
|
|
|
|
- left: 0;
|
|
|
|
|
|
|
+ .flag-icon {
|
|
|
|
|
+ width: 20px;
|
|
|
|
|
+ height: 15px;
|
|
|
|
|
+ object-fit: cover;
|
|
|
|
|
+ border-radius: 2px;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- p {
|
|
|
|
|
- padding-left: 30px;
|
|
|
|
|
|
|
+ .pwd {
|
|
|
text-align: left;
|
|
text-align: left;
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ padding-left: 20px;
|
|
|
|
|
|
|
|
- .myCode {
|
|
|
|
|
- position: relative;
|
|
|
|
|
|
|
+ li {
|
|
|
|
|
+ list-style-type: disc;
|
|
|
|
|
+ line-height: 20px;
|
|
|
|
|
+ color: #979797;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .getCode {
|
|
|
|
|
- position: absolute;
|
|
|
|
|
- top: 5px;
|
|
|
|
|
- right: 3px;
|
|
|
|
|
- margin: 0;
|
|
|
|
|
- max-width: 100px;
|
|
|
|
|
- overflow: hidden;
|
|
|
|
|
- z-index: 1;
|
|
|
|
|
|
|
+ .fit {
|
|
|
|
|
+ color: #67c23a; /* 绿色表示符合规则 */
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .el-input {
|
|
|
|
|
- padding-right: 110px;
|
|
|
|
|
|
|
+ .agree {
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+
|
|
|
|
|
+ .el-checkbox {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: 0;
|
|
|
|
|
+ left: 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ p {
|
|
|
|
|
+ padding-left: 30px;
|
|
|
|
|
+ text-align: left;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- .words {
|
|
|
|
|
- text-align: start;
|
|
|
|
|
- line-height: 24px;
|
|
|
|
|
- color: #000;
|
|
|
|
|
- font-size: 16px;
|
|
|
|
|
- line-height: 1.6;
|
|
|
|
|
|
|
+ .myCode {
|
|
|
|
|
+ position: relative;
|
|
|
|
|
|
|
|
- a {
|
|
|
|
|
- color: #e61f1e;
|
|
|
|
|
|
|
+ .getCode {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: 0;
|
|
|
|
|
+ right: 3px;
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ max-width: 100px;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ z-index: 1;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .el-input__wrapper {
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ padding-right: 110px;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- .signin {
|
|
|
|
|
- text-align: start;
|
|
|
|
|
|
|
+ .words {
|
|
|
|
|
+ text-align: start;
|
|
|
|
|
+ line-height: 24px;
|
|
|
|
|
+ color: #000;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ line-height: 1.6;
|
|
|
|
|
|
|
|
- a {
|
|
|
|
|
- color: #e61f1e;
|
|
|
|
|
|
|
+ a {
|
|
|
|
|
+ color: #e61f1e;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- .des {
|
|
|
|
|
- text-align: start;
|
|
|
|
|
- line-height: 20px;
|
|
|
|
|
- color: #000;
|
|
|
|
|
- font-size: 12px;
|
|
|
|
|
|
|
+ .signin {
|
|
|
|
|
+ text-align: start;
|
|
|
|
|
|
|
|
- a {
|
|
|
|
|
- color: #e61f1e;
|
|
|
|
|
|
|
+ a {
|
|
|
|
|
+ color: #e61f1e;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- .agreemnet9 {
|
|
|
|
|
- text-align: initial;
|
|
|
|
|
- color: #e61f1e;
|
|
|
|
|
- font-size: 12px;
|
|
|
|
|
- margin: 0;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .des {
|
|
|
|
|
+ text-align: start;
|
|
|
|
|
+ line-height: 20px;
|
|
|
|
|
+ color: #000;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
|
|
|
- .rbt-btn {
|
|
|
|
|
- width: 100%;
|
|
|
|
|
- padding: 0 22px;
|
|
|
|
|
- background: #e61f1e;
|
|
|
|
|
- height: 45px;
|
|
|
|
|
- line-height: 43px;
|
|
|
|
|
- color: #ffffff;
|
|
|
|
|
- font-size: 16px;
|
|
|
|
|
- letter-spacing: 0.5px;
|
|
|
|
|
- font-weight: 500;
|
|
|
|
|
- display: inline-block;
|
|
|
|
|
- position: relative;
|
|
|
|
|
- z-index: 1;
|
|
|
|
|
- transition: all 0.4s ease-in-out;
|
|
|
|
|
- border-radius: 6px;
|
|
|
|
|
- border: 0 none;
|
|
|
|
|
- outline: none;
|
|
|
|
|
- background-size: 300% 100%;
|
|
|
|
|
- background-image: linear-gradient(
|
|
|
|
|
- to right,
|
|
|
|
|
- #0e2453,
|
|
|
|
|
- #0d2862,
|
|
|
|
|
- #0e2453,
|
|
|
|
|
- #0d2862
|
|
|
|
|
- );
|
|
|
|
|
- box-sizing: border-box;
|
|
|
|
|
-
|
|
|
|
|
- .icon-reverse-wrapper {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- justify-content: center;
|
|
|
|
|
|
|
+ a {
|
|
|
|
|
+ color: #e61f1e;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- .btn-text {
|
|
|
|
|
- display: inline-block;
|
|
|
|
|
- transition: transform 0.6s 0.125s cubic-bezier(0.1, 0.75, 0.25, 1);
|
|
|
|
|
- margin-inline-start: -23px;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ .agreemnet9 {
|
|
|
|
|
+ text-align: initial;
|
|
|
|
|
+ color: #e61f1e;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ margin: 0;
|
|
|
}
|
|
}
|
|
|
- i {
|
|
|
|
|
- padding-left: 6px;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ .rbt-btn {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ padding: 0 22px;
|
|
|
|
|
+ background: #e61f1e;
|
|
|
|
|
+ height: 45px;
|
|
|
|
|
+ line-height: 43px;
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ letter-spacing: 0.5px;
|
|
|
|
|
+ font-weight: 500;
|
|
|
display: inline-block;
|
|
display: inline-block;
|
|
|
- top: 2px;
|
|
|
|
|
position: relative;
|
|
position: relative;
|
|
|
- font-size: 17px;
|
|
|
|
|
|
|
+ z-index: 1;
|
|
|
|
|
+ transition: all 0.4s ease-in-out;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ border: 0 none;
|
|
|
|
|
+ outline: none;
|
|
|
|
|
+ background-size: 300% 100%;
|
|
|
|
|
+ background-image: linear-gradient(to right, #0e2453, #0d2862, #0e2453, #0d2862);
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+
|
|
|
|
|
+ .icon-reverse-wrapper {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ }
|
|
|
|
|
+ .btn-text {
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ transition: transform 0.6s 0.125s cubic-bezier(0.1, 0.75, 0.25, 1);
|
|
|
|
|
+ margin-inline-start: -23px;
|
|
|
|
|
+ }
|
|
|
|
|
+ i {
|
|
|
|
|
+ padding-left: 6px;
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ top: 2px;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ font-size: 17px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .btn-icon + .btn-icon {
|
|
|
|
|
+ margin-inline-end: 0;
|
|
|
|
|
+ margin-inline-start: 8px;
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ margin-inline-start: 0;
|
|
|
|
|
+ margin-inline-end: 0;
|
|
|
|
|
+ opacity: 0;
|
|
|
|
|
+ transform: translateX(-10px);
|
|
|
|
|
+ transition-delay: 0s;
|
|
|
|
|
+ order: -2;
|
|
|
|
|
+ }
|
|
|
|
|
+ .rbt-btn.hover-icon-reverse .btn-icon {
|
|
|
|
|
+ // display: inline-block;
|
|
|
|
|
+ transition: opacity 0.4s 0.25s, transform 0.6s 0.25s;
|
|
|
|
|
+ transition-timing-function: cubic-bezier(0.1, 0.75, 0.25, 1);
|
|
|
|
|
+ }
|
|
|
|
|
+ &:hover {
|
|
|
|
|
+ background-color: inherit;
|
|
|
|
|
+ background-position: 102% 0;
|
|
|
|
|
+ transition: all 0.4s ease-in-out;
|
|
|
|
|
+ background-image: linear-gradient(to right, #e61f1e, #fe5924, #fe5924, #e61f1e);
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ transform: translate3d(0, -2px, 0);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- .btn-icon + .btn-icon {
|
|
|
|
|
- margin-inline-end: 0;
|
|
|
|
|
- margin-inline-start: 8px;
|
|
|
|
|
- display: inline-block;
|
|
|
|
|
- margin-inline-start: 0;
|
|
|
|
|
- margin-inline-end: 0;
|
|
|
|
|
|
|
+ .rbt-btn:hover.hover-icon-reverse .btn-icon + .btn-icon {
|
|
|
|
|
+ opacity: 1;
|
|
|
|
|
+ transform: translateX(0);
|
|
|
|
|
+ transition-delay: 0.225s;
|
|
|
|
|
+ }
|
|
|
|
|
+ .rbt-btn:hover.hover-icon-reverse .btn-icon {
|
|
|
opacity: 0;
|
|
opacity: 0;
|
|
|
- transform: translateX(-10px);
|
|
|
|
|
transition-delay: 0s;
|
|
transition-delay: 0s;
|
|
|
- order: -2;
|
|
|
|
|
|
|
+ transform: translateX(10px);
|
|
|
}
|
|
}
|
|
|
- .rbt-btn.hover-icon-reverse .btn-icon {
|
|
|
|
|
- // display: inline-block;
|
|
|
|
|
- transition: opacity 0.4s 0.25s, transform 0.6s 0.25s;
|
|
|
|
|
- transition-timing-function: cubic-bezier(0.1, 0.75, 0.25, 1);
|
|
|
|
|
|
|
+ .rbt-btn.hover-icon-reverse .btn-text {
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ transition: transform 0.6s 0.125s cubic-bezier(0.1, 0.75, 0.25, 1);
|
|
|
|
|
+ margin-inline-start: -23px;
|
|
|
}
|
|
}
|
|
|
- &:hover {
|
|
|
|
|
- background-color: inherit;
|
|
|
|
|
- background-position: 102% 0;
|
|
|
|
|
- transition: all 0.4s ease-in-out;
|
|
|
|
|
- background-image: linear-gradient(
|
|
|
|
|
- to right,
|
|
|
|
|
- #e61f1e,
|
|
|
|
|
- #fe5924,
|
|
|
|
|
- #fe5924,
|
|
|
|
|
- #e61f1e
|
|
|
|
|
- );
|
|
|
|
|
- color: #ffffff;
|
|
|
|
|
- transform: translate3d(0, -2px, 0);
|
|
|
|
|
|
|
+ .rbt-btn:hover.hover-icon-reverse .btn-text {
|
|
|
|
|
+ transition-delay: 0.1s;
|
|
|
|
|
+ transform: translateX(23px);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- .rbt-btn:hover.hover-icon-reverse .btn-icon + .btn-icon {
|
|
|
|
|
- opacity: 1;
|
|
|
|
|
- transform: translateX(0);
|
|
|
|
|
- transition-delay: 0.225s;
|
|
|
|
|
- }
|
|
|
|
|
- .rbt-btn:hover.hover-icon-reverse .btn-icon {
|
|
|
|
|
- opacity: 0;
|
|
|
|
|
- transition-delay: 0s;
|
|
|
|
|
- transform: translateX(10px);
|
|
|
|
|
- }
|
|
|
|
|
- .rbt-btn.hover-icon-reverse .btn-text {
|
|
|
|
|
- display: inline-block;
|
|
|
|
|
- transition: transform 0.6s 0.125s cubic-bezier(0.1, 0.75, 0.25, 1);
|
|
|
|
|
- margin-inline-start: -23px;
|
|
|
|
|
- }
|
|
|
|
|
- .rbt-btn:hover.hover-icon-reverse .btn-text {
|
|
|
|
|
- transition-delay: 0.1s;
|
|
|
|
|
- transform: translateX(23px);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- .el-icon {
|
|
|
|
|
- margin-right: 8px;
|
|
|
|
|
|
|
+ .el-icon {
|
|
|
|
|
+ margin-right: 8px;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
|
|
|
|
|
-@media screen and (max-width: 768px) {
|
|
|
|
|
- #signup {
|
|
|
|
|
- height: auto;
|
|
|
|
|
- overflow: hidden;
|
|
|
|
|
|
|
+ @media screen and (max-width: 768px) {
|
|
|
|
|
+ #signup {
|
|
|
|
|
+ height: auto;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
|
|
|
- .title {
|
|
|
|
|
- margin: 32px 20px;
|
|
|
|
|
- font-size: 24px;
|
|
|
|
|
- font-weight: bolder;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .title {
|
|
|
|
|
+ margin: 32px 20px;
|
|
|
|
|
+ font-size: 24px;
|
|
|
|
|
+ font-weight: bolder;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .form {
|
|
|
|
|
- padding: 10px 20px 30px;
|
|
|
|
|
|
|
+ .form {
|
|
|
|
|
+ padding: 10px 20px 30px;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
</style>
|
|
</style>
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
<style lang="scss">
|
|
|
-#signup {
|
|
|
|
|
- .el-input__inner {
|
|
|
|
|
- border-radius: 4px;
|
|
|
|
|
- color: #606266;
|
|
|
|
|
|
|
+ #signup {
|
|
|
|
|
+ .el-input__inner {
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ color: #606266;
|
|
|
|
|
|
|
|
- &::placeholder {
|
|
|
|
|
- color: #c0c4cc;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ &::placeholder {
|
|
|
|
|
+ color: #c0c4cc;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- &:disabled {
|
|
|
|
|
- border-color: #f5f7fa!important;
|
|
|
|
|
- color: #c0c4cc !important;
|
|
|
|
|
- cursor: not-allowed !important;
|
|
|
|
|
|
|
+ &:disabled {
|
|
|
|
|
+ border-color: #f5f7fa !important;
|
|
|
|
|
+ color: #c0c4cc !important;
|
|
|
|
|
+ cursor: not-allowed !important;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .m-input {
|
|
|
|
|
+ height: 40px;
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- .m-input{
|
|
|
|
|
- height: 40px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- .el-form-item {
|
|
|
|
|
- margin-bottom: 20px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .el-form-item {
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .el-form-item__content {
|
|
|
|
|
- //line-height: initial !important;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .el-form-item__content {
|
|
|
|
|
+ //line-height: initial !important;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .el-input__prefix,
|
|
|
|
|
- .el-input__suffix {
|
|
|
|
|
- color: #c0c4cc;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .el-input__prefix,
|
|
|
|
|
+ .el-input__suffix {
|
|
|
|
|
+ color: #c0c4cc;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .el-select {
|
|
|
|
|
- width: 100%;
|
|
|
|
|
|
|
+ .el-select {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
|
|
|
- &.is-disabled .el-input__inner {
|
|
|
|
|
- background-color: #f5f7fa !important;
|
|
|
|
|
- //border-color: #e4e7ed !important;
|
|
|
|
|
- color: #c0c4cc !important;
|
|
|
|
|
- cursor: not-allowed !important;
|
|
|
|
|
|
|
+ &.is-disabled .el-input__inner {
|
|
|
|
|
+ background-color: #f5f7fa !important;
|
|
|
|
|
+ //border-color: #e4e7ed !important;
|
|
|
|
|
+ color: #c0c4cc !important;
|
|
|
|
|
+ cursor: not-allowed !important;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- .el-date-editor.el-input {
|
|
|
|
|
- width: 100%;
|
|
|
|
|
|
|
+ .el-date-editor.el-input {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
|
|
|
- &.is-disabled .el-input__inner,
|
|
|
|
|
- .el-input__inner:disabled {
|
|
|
|
|
- background-color: #f5f7fa !important;
|
|
|
|
|
- //border-color: #e4e7ed !important;
|
|
|
|
|
- color: #c0c4cc !important;
|
|
|
|
|
- cursor: not-allowed !important;
|
|
|
|
|
|
|
+ &.is-disabled .el-input__inner,
|
|
|
|
|
+ .el-input__inner:disabled {
|
|
|
|
|
+ background-color: #f5f7fa !important;
|
|
|
|
|
+ //border-color: #e4e7ed !important;
|
|
|
|
|
+ color: #c0c4cc !important;
|
|
|
|
|
+ cursor: not-allowed !important;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- .el-form-item__label {
|
|
|
|
|
- float: none;
|
|
|
|
|
- font-size: 16px;
|
|
|
|
|
- line-height: 28px;
|
|
|
|
|
- color: #000;
|
|
|
|
|
- padding: 0;
|
|
|
|
|
- margin-bottom: 8px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .el-form-item__label {
|
|
|
|
|
+ float: none;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ line-height: 28px;
|
|
|
|
|
+ color: #000;
|
|
|
|
|
+ padding: 0;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .code .el-input__inner {
|
|
|
|
|
- padding-right: 110px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .code .el-input__inner {
|
|
|
|
|
+ padding-right: 110px;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .el-checkbox__label {
|
|
|
|
|
- color: #606266;
|
|
|
|
|
|
|
+ .el-checkbox__label {
|
|
|
|
|
+ color: #606266;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
</style>
|
|
</style>
|