|  | @@ -16,64 +16,121 @@
 | 
	
		
			
				|  |  |  				<div class="swl-content-login-right">
 | 
	
		
			
				|  |  |  					<div class="swlclr-login">
 | 
	
		
			
				|  |  |  						<div class="swlclr-login-div">
 | 
	
		
			
				|  |  | -							<div class="swlclr-login-div-title">{{ $t('login.signInTitle') }}</div>
 | 
	
		
			
				|  |  | -							<a-form class="login-form" ref="loginForm" :model="ruleForm" :rules="rules">
 | 
	
		
			
				|  |  | -								<a-form-item name="account">
 | 
	
		
			
				|  |  | -									<a-input
 | 
	
		
			
				|  |  | -										v-model:value="ruleForm.account"
 | 
	
		
			
				|  |  | -										:placeholder="$t('login.accountPlaceholder')"
 | 
	
		
			
				|  |  | -										size="large"
 | 
	
		
			
				|  |  | -										@keyup.enter="login"
 | 
	
		
			
				|  |  | -									>
 | 
	
		
			
				|  |  | -										<template #prefix>
 | 
	
		
			
				|  |  | -											<UserOutlined class="login-icon-gray" />
 | 
	
		
			
				|  |  | -										</template>
 | 
	
		
			
				|  |  | -									</a-input>
 | 
	
		
			
				|  |  | -								</a-form-item>
 | 
	
		
			
				|  |  | -								<a-form-item name="password">
 | 
	
		
			
				|  |  | -									<a-input-password
 | 
	
		
			
				|  |  | -										v-model:value="ruleForm.password"
 | 
	
		
			
				|  |  | -										:placeholder="$t('login.PWPlaceholder')"
 | 
	
		
			
				|  |  | -										size="large"
 | 
	
		
			
				|  |  | -										autocomplete="off"
 | 
	
		
			
				|  |  | -										@keyup.enter="login"
 | 
	
		
			
				|  |  | -									>
 | 
	
		
			
				|  |  | -										<template #prefix>
 | 
	
		
			
				|  |  | -											<LockOutlined class="login-icon-gray" />
 | 
	
		
			
				|  |  | -										</template>
 | 
	
		
			
				|  |  | -									</a-input-password>
 | 
	
		
			
				|  |  | -								</a-form-item>
 | 
	
		
			
				|  |  | -								<a-form-item name="validCode" v-if="captchaOpen === 'true'">
 | 
	
		
			
				|  |  | -									<a-row :gutter="8">
 | 
	
		
			
				|  |  | -										<a-col :span="17">
 | 
	
		
			
				|  |  | -											<a-input
 | 
	
		
			
				|  |  | -												v-model:value="ruleForm.validCode"
 | 
	
		
			
				|  |  | -												:placeholder="$t('login.validLaceholder')"
 | 
	
		
			
				|  |  | -												size="large"
 | 
	
		
			
				|  |  | -												@keyup.enter="login"
 | 
	
		
			
				|  |  | -											>
 | 
	
		
			
				|  |  | -												<template #prefix>
 | 
	
		
			
				|  |  | -													<verified-outlined class="login-icon-gray" />
 | 
	
		
			
				|  |  | +							<div class="swlclr-login-div-title">
 | 
	
		
			
				|  |  | +								<div class="swlclr-login-div-title-1 __hover" :class="{active: loginMode === 'account'}" @click="loginMode = 'account'">{{ $t('login.signInTitle') }}</div>
 | 
	
		
			
				|  |  | +								<template v-if="config.lang === 'zh-cn'">
 | 
	
		
			
				|  |  | +									<div class="swlclr-login-div-title-line"/>
 | 
	
		
			
				|  |  | +									<div class="swlclr-login-div-title-2 __hover" :class="{active: loginMode === 'card'}" @click="loginMode = 'card'">卡介质登录</div>
 | 
	
		
			
				|  |  | +								</template>
 | 
	
		
			
				|  |  | +							</div>
 | 
	
		
			
				|  |  | +							<template v-if="loginMode === 'account'">
 | 
	
		
			
				|  |  | +								<a-form class="login-form" ref="loginForm" :model="ruleForm" :rules="rules">
 | 
	
		
			
				|  |  | +									<a-form-item name="account">
 | 
	
		
			
				|  |  | +										<a-input
 | 
	
		
			
				|  |  | +											v-model:value="ruleForm.account"
 | 
	
		
			
				|  |  | +											:placeholder="$t('login.accountPlaceholder')"
 | 
	
		
			
				|  |  | +											size="large"
 | 
	
		
			
				|  |  | +											@keyup.enter="login"
 | 
	
		
			
				|  |  | +										>
 | 
	
		
			
				|  |  | +											<template #prefix>
 | 
	
		
			
				|  |  | +												<UserOutlined class="login-icon-gray" />
 | 
	
		
			
				|  |  | +											</template>
 | 
	
		
			
				|  |  | +											<template #addonAfter v-if="config.lang === 'zh-cn'">
 | 
	
		
			
				|  |  | +												<a class="__hover" href="https://app.singlewindow.cn/userserver/user/findusername/choseFindUserNameType" target="_blank">忘记用户名</a>
 | 
	
		
			
				|  |  | +											</template>
 | 
	
		
			
				|  |  | +										</a-input>
 | 
	
		
			
				|  |  | +									</a-form-item>
 | 
	
		
			
				|  |  | +									<a-form-item name="password">
 | 
	
		
			
				|  |  | +										<a-input-password
 | 
	
		
			
				|  |  | +											v-model:value="ruleForm.password"
 | 
	
		
			
				|  |  | +											:placeholder="$t('login.PWPlaceholder')"
 | 
	
		
			
				|  |  | +											size="large"
 | 
	
		
			
				|  |  | +											autocomplete="off"
 | 
	
		
			
				|  |  | +											@keyup.enter="login"
 | 
	
		
			
				|  |  | +										>
 | 
	
		
			
				|  |  | +											<template #prefix>
 | 
	
		
			
				|  |  | +												<LockOutlined class="login-icon-gray" />
 | 
	
		
			
				|  |  | +											</template>
 | 
	
		
			
				|  |  | +											<template #addonAfter>
 | 
	
		
			
				|  |  | +												<template v-if="config.lang === 'zh-cn'">
 | 
	
		
			
				|  |  | +													<a class="__hover" href="https://app.singlewindow.cn/nuserwebserver/static/#/resetPwd?projectFlag=0" target="_blank">忘记密码</a>
 | 
	
		
			
				|  |  | +												</template>
 | 
	
		
			
				|  |  | +												<template v-else>
 | 
	
		
			
				|  |  | +													<a class="__hover" href="https://app.singlewindow.cn/userserver/rest/userNra/find/findPWIndex" target="_blank">Forgot Password</a>
 | 
	
		
			
				|  |  |  												</template>
 | 
	
		
			
				|  |  | -											</a-input>
 | 
	
		
			
				|  |  | -										</a-col>
 | 
	
		
			
				|  |  | -										<a-col :span="7">
 | 
	
		
			
				|  |  | -											<img :src="validCodeBase64" class="login-validCode-img" @click="loginCaptcha" />
 | 
	
		
			
				|  |  | -										</a-col>
 | 
	
		
			
				|  |  | -									</a-row>
 | 
	
		
			
				|  |  | -								</a-form-item>
 | 
	
		
			
				|  |  | -								<div class="agree" v-if="config.lang === 'zh-cn'">
 | 
	
		
			
				|  |  | -									<a-checkbox v-model:checked="loginAgree"/>
 | 
	
		
			
				|  |  | -									<span style="color:#222222">已阅读并同意</span>
 | 
	
		
			
				|  |  | -									<span style="color: #096ac6;text-decoration:underline dotted; cursor:pointer;" @click="agreeTipsYhfwxy = true">《用户服务协议》</span>
 | 
	
		
			
				|  |  | -									<span>和</span>
 | 
	
		
			
				|  |  | -									<span style="color: #096ac6;text-decoration:underline dotted; cursor:pointer;"  @click="agreeTipsYhyszc = true">《用户隐私政策》</span>
 | 
	
		
			
				|  |  | -								</div>
 | 
	
		
			
				|  |  | -								<a-button type="primary" class="w-full mt-4" :loading="loading" round size="large" @click="login">
 | 
	
		
			
				|  |  | -									{{ $t('login.signIn') }}
 | 
	
		
			
				|  |  | -								</a-button>
 | 
	
		
			
				|  |  | -								<div class="zhuce">{{ $t('login.noAccount') }}<span>{{ $t('login.registerAccount') }}</span></div>
 | 
	
		
			
				|  |  | -							</a-form>
 | 
	
		
			
				|  |  | +											</template>
 | 
	
		
			
				|  |  | +										</a-input-password>
 | 
	
		
			
				|  |  | +									</a-form-item>
 | 
	
		
			
				|  |  | +									<a-form-item name="validCode" v-if="captchaOpen === 'true'">
 | 
	
		
			
				|  |  | +										<a-row :gutter="8">
 | 
	
		
			
				|  |  | +											<a-col :span="17">
 | 
	
		
			
				|  |  | +												<a-input
 | 
	
		
			
				|  |  | +													v-model:value="ruleForm.validCode"
 | 
	
		
			
				|  |  | +													:placeholder="$t('login.validLaceholder')"
 | 
	
		
			
				|  |  | +													size="large"
 | 
	
		
			
				|  |  | +													@keyup.enter="login"
 | 
	
		
			
				|  |  | +												>
 | 
	
		
			
				|  |  | +													<template #prefix>
 | 
	
		
			
				|  |  | +														<verified-outlined class="login-icon-gray" />
 | 
	
		
			
				|  |  | +													</template>
 | 
	
		
			
				|  |  | +												</a-input>
 | 
	
		
			
				|  |  | +											</a-col>
 | 
	
		
			
				|  |  | +											<a-col :span="7">
 | 
	
		
			
				|  |  | +												<img :src="validCodeBase64" class="login-validCode-img" @click="loginCaptcha" />
 | 
	
		
			
				|  |  | +											</a-col>
 | 
	
		
			
				|  |  | +										</a-row>
 | 
	
		
			
				|  |  | +									</a-form-item>
 | 
	
		
			
				|  |  | +								</a-form>
 | 
	
		
			
				|  |  | +							</template>
 | 
	
		
			
				|  |  | +							<template v-else-if="loginMode === 'card'">
 | 
	
		
			
				|  |  | +								<a-form class="login-form" ref="cardForm" :model="cardRuleForm">
 | 
	
		
			
				|  |  | +									<a-form-item name="password">
 | 
	
		
			
				|  |  | +										<a-input-password
 | 
	
		
			
				|  |  | +											v-model:value="cardRuleForm.password"
 | 
	
		
			
				|  |  | +											placeholder="卡介质密码"
 | 
	
		
			
				|  |  | +											size="large"
 | 
	
		
			
				|  |  | +											autocomplete="off"
 | 
	
		
			
				|  |  | +											@keyup.enter="cardLogin"
 | 
	
		
			
				|  |  | +										>
 | 
	
		
			
				|  |  | +											<template #prefix>
 | 
	
		
			
				|  |  | +												<LockOutlined class="login-icon-gray" />
 | 
	
		
			
				|  |  | +											</template>
 | 
	
		
			
				|  |  | +											<template #addonAfter>
 | 
	
		
			
				|  |  | +												<a class="__hover" href="https://www.singlewindow.cn/#/detail?breadNum=bc9&articleId=0000000000002256" target="_blank">忘记卡密码?</a>
 | 
	
		
			
				|  |  | +											</template>
 | 
	
		
			
				|  |  | +										</a-input-password>
 | 
	
		
			
				|  |  | +									</a-form-item>
 | 
	
		
			
				|  |  | +								</a-form>
 | 
	
		
			
				|  |  | +							</template>
 | 
	
		
			
				|  |  | +							<div class="agree" v-if="config.lang === 'zh-cn'">
 | 
	
		
			
				|  |  | +								<a-checkbox v-model:checked="loginAgree"/>
 | 
	
		
			
				|  |  | +								<span style="color:#222222">已阅读并同意</span>
 | 
	
		
			
				|  |  | +								<span style="color: #096ac6;text-decoration:underline dotted; cursor:pointer;" @click="agreeTipsYhfwxy = true">《用户服务协议》</span>
 | 
	
		
			
				|  |  | +								<span>和</span>
 | 
	
		
			
				|  |  | +								<span style="color: #096ac6;text-decoration:underline dotted; cursor:pointer;"  @click="agreeTipsYhyszc = true">《用户隐私政策》</span>
 | 
	
		
			
				|  |  | +							</div>
 | 
	
		
			
				|  |  | +							<a-button type="primary" class="w-full mt-4" style="background-color: #00599c;border-radius: 4px;" :loading="loading" round size="large" @click="loginMode === 'account' ? login() : cardLogin()">
 | 
	
		
			
				|  |  | +								{{ $t('login.signIn') }}
 | 
	
		
			
				|  |  | +							</a-button>
 | 
	
		
			
				|  |  | +							<div class="card-tips" v-if="loginMode === 'card'">
 | 
	
		
			
				|  |  | +								<div>请按照以下步骤进行:</div>
 | 
	
		
			
				|  |  | +								<div><div class="index">1</div>请确认已下载并启动了 <a class="__hover" href="https://update.singlewindow.cn/downloads/EportClientSetup_V1.5.50.exe" target="_blank">客户端控件</a></div>
 | 
	
		
			
				|  |  | +								<div><div class="index">2</div>插入中国电子口岸卡介质</div>
 | 
	
		
			
				|  |  | +								<div><div class="index">3</div>输入卡介质密码</div>
 | 
	
		
			
				|  |  | +							</div>
 | 
	
		
			
				|  |  | +							<div class="tips">
 | 
	
		
			
				|  |  | +								<template v-if="config.lang === 'zh-cn'">
 | 
	
		
			
				|  |  | +									<template v-if="loginMode === 'account'">
 | 
	
		
			
				|  |  | +										<div class="zhuce">卡介质丢失/损坏?<a class="__hover" href="https://app.singlewindow.cn/nuserwebserver/static/#/corp/accountActive?projectFlag=0" target="_blank">账号激活</a></div>
 | 
	
		
			
				|  |  | +									</template>
 | 
	
		
			
				|  |  | +									<template v-else-if="loginMode === 'card'">
 | 
	
		
			
				|  |  | +										<div class="zhuce">卡介质有问题?<a class="__hover" href="https://www.singlewindow.cn/#/detail?breadNum=bc9&articleId=0000000000002287" target="_blank">制卡电话</a></div>
 | 
	
		
			
				|  |  | +									</template>
 | 
	
		
			
				|  |  | +								</template>
 | 
	
		
			
				|  |  | +								<div class="zhuce">
 | 
	
		
			
				|  |  | +									{{ $t('login.noAccount') }}
 | 
	
		
			
				|  |  | +									<a class="__hover" :href="config.lang === 'zh-cn' ? 'https://app.singlewindow.cn/nuserwebserver/static/#/corp/accountActive?projectFlag=0' : 'https://app.singlewindow.cn/userserver/user/abroad/index'" target="_blank">{{ $t('login.registerAccount') }}</a></div>
 | 
	
		
			
				|  |  | +							</div>
 | 
	
		
			
				|  |  |  						</div>
 | 
	
		
			
				|  |  |  					</div>
 | 
	
		
			
				|  |  |  				</div>
 | 
	
	
		
			
				|  | @@ -181,6 +238,7 @@
 | 
	
		
			
				|  |  |  	const loginAgree = ref(false)
 | 
	
		
			
				|  |  |  	const agreeTipsYhfwxy = ref(false)
 | 
	
		
			
				|  |  |  	const agreeTipsYhyszc = ref(false)
 | 
	
		
			
				|  |  | +	const loginMode = ref('account')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	const ruleForm = reactive({
 | 
	
		
			
				|  |  |  		account: '', // superAdmin
 | 
	
	
		
			
				|  | @@ -189,6 +247,9 @@
 | 
	
		
			
				|  |  |  		validCodeReqNo: '',
 | 
	
		
			
				|  |  |  		autologin: false
 | 
	
		
			
				|  |  |  	})
 | 
	
		
			
				|  |  | +	const cardRuleForm = reactive({
 | 
	
		
			
				|  |  | +		password: '',
 | 
	
		
			
				|  |  | +	})
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	const rules = reactive({
 | 
	
		
			
				|  |  |  		account: [required(proxy.$t('login.accountError'), 'blur')],
 | 
	
	
		
			
				|  | @@ -279,6 +340,7 @@
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	//登陆
 | 
	
		
			
				|  |  |  	const loginForm = ref()
 | 
	
		
			
				|  |  | +	const cardForm = ref()
 | 
	
		
			
				|  |  |  	const login = async () => {
 | 
	
		
			
				|  |  |  		if (loginAgree.value || config.value.lang === 'en') {
 | 
	
		
			
				|  |  |  			loginForm.value
 | 
	
	
		
			
				|  | @@ -292,15 +354,6 @@
 | 
	
		
			
				|  |  |  					validCode: ruleForm.validCode,
 | 
	
		
			
				|  |  |  					validCodeReqNo: ruleForm.validCodeReqNo
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -				// 获取token
 | 
	
		
			
				|  |  | -				// loginApi.login(loginData).then((loginToken) => {
 | 
	
		
			
				|  |  | -				// 	afterLogin(loginToken)
 | 
	
		
			
				|  |  | -				// }).catch(() => {
 | 
	
		
			
				|  |  | -				// 	loading.value = false
 | 
	
		
			
				|  |  | -				// 	loginCaptcha()
 | 
	
		
			
				|  |  | -				// })
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  				// 获取token
 | 
	
		
			
				|  |  |  				try {
 | 
	
		
			
				|  |  |  					const loginToken = await loginApi.login(loginData)
 | 
	
	
		
			
				|  | @@ -324,8 +377,44 @@
 | 
	
		
			
				|  |  |  			})
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +	const cardLogin = async () => {
 | 
	
		
			
				|  |  | +		if (loginAgree.value) {
 | 
	
		
			
				|  |  | +			if (!cardRuleForm.password) {
 | 
	
		
			
				|  |  | +				alert('IC卡/Key密码不允许为空')
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				loading.value = true
 | 
	
		
			
				|  |  | +				const loginData = {
 | 
	
		
			
				|  |  | +					account: 'yqyc',
 | 
	
		
			
				|  |  | +					// 密码进行SM2加密,传输过程中看到的只有密文,后端存储使用hash
 | 
	
		
			
				|  |  | +					password: smCrypto.doSm2Encrypt(cardRuleForm.password),
 | 
	
		
			
				|  |  | +					validCode: 'szzf',
 | 
	
		
			
				|  |  | +					validCodeReqNo: 'szzf'
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				// 获取token
 | 
	
		
			
				|  |  | +				try {
 | 
	
		
			
				|  |  | +					const loginToken = await loginApi.login(loginData)
 | 
	
		
			
				|  |  | +					const loginAfter = afterLogin(loginToken)
 | 
	
		
			
				|  |  | +				} catch (err) {
 | 
	
		
			
				|  |  | +					loading.value = false
 | 
	
		
			
				|  |  | +					// loginCaptcha()
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			Modal.confirm({
 | 
	
		
			
				|  |  | +				title: '提示',
 | 
	
		
			
				|  |  | +				content: '请阅读并勾选《用户服务协议》和《用户隐私政策》!',
 | 
	
		
			
				|  |  | +				centered: true,
 | 
	
		
			
				|  |  | +				width: 420,
 | 
	
		
			
				|  |  | +				icon: createVNode(ExclamationCircleOutlined),
 | 
	
		
			
				|  |  | +				maskClosable: false,
 | 
	
		
			
				|  |  | +				onOk() {},
 | 
	
		
			
				|  |  | +				onCancel() {}
 | 
	
		
			
				|  |  | +			})
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  |  	const configLang = (key) => {
 | 
	
		
			
				|  |  |  		config.value.lang = key
 | 
	
		
			
				|  |  | +		loginMode.value = 'account'
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  <style lang="less" scoped>
 | 
	
	
		
			
				|  | @@ -406,12 +495,25 @@
 | 
	
		
			
				|  |  |  						box-sizing: border-box;
 | 
	
		
			
				|  |  |  						position: relative;
 | 
	
		
			
				|  |  |  						.swlclr-login-div-title {
 | 
	
		
			
				|  |  | -							font-weight: 700;
 | 
	
		
			
				|  |  | -							color: #00599c;
 | 
	
		
			
				|  |  | +							font-weight: 400;
 | 
	
		
			
				|  |  | +							color: #999999;
 | 
	
		
			
				|  |  |  							font-size: 18px;
 | 
	
		
			
				|  |  |  							margin-top: 18px;
 | 
	
		
			
				|  |  |  							margin-bottom: 28px;
 | 
	
		
			
				|  |  |  							text-align: center;
 | 
	
		
			
				|  |  | +							display: flex;
 | 
	
		
			
				|  |  | +							align-items: center;
 | 
	
		
			
				|  |  | +							justify-content: center;
 | 
	
		
			
				|  |  | +							gap: 20px;
 | 
	
		
			
				|  |  | +							.swlclr-login-div-title-line {
 | 
	
		
			
				|  |  | +								width: 1px;
 | 
	
		
			
				|  |  | +								height: 16px;
 | 
	
		
			
				|  |  | +								background-color: #c4c4c4;
 | 
	
		
			
				|  |  | +							}
 | 
	
		
			
				|  |  | +							.active {
 | 
	
		
			
				|  |  | +								color: #00599c;
 | 
	
		
			
				|  |  | +								font-weight: 700;
 | 
	
		
			
				|  |  | +							}
 | 
	
		
			
				|  |  |  						}
 | 
	
		
			
				|  |  |  						:deep(.login-form) {
 | 
	
		
			
				|  |  |  							.ant-form-item-control-input-content {
 | 
	
	
		
			
				|  | @@ -420,20 +522,66 @@
 | 
	
		
			
				|  |  |  									border: none;
 | 
	
		
			
				|  |  |  									box-shadow: none;
 | 
	
		
			
				|  |  |  								}
 | 
	
		
			
				|  |  | +								.ant-input-group-addon {
 | 
	
		
			
				|  |  | +									background-color: transparent;
 | 
	
		
			
				|  |  | +									border: none;
 | 
	
		
			
				|  |  | +									color: #096AC6;
 | 
	
		
			
				|  |  | +									font-size: 13px;
 | 
	
		
			
				|  |  | +									font-weight: 400;
 | 
	
		
			
				|  |  | +								}
 | 
	
		
			
				|  |  |  							}
 | 
	
		
			
				|  |  |  						}
 | 
	
		
			
				|  |  |  						.agree {
 | 
	
		
			
				|  |  |  							font-size: 12px;
 | 
	
		
			
				|  |  |  						}
 | 
	
		
			
				|  |  | -						.zhuce {
 | 
	
		
			
				|  |  | +						.card-tips {
 | 
	
		
			
				|  |  | +							margin-top: 12px;
 | 
	
		
			
				|  |  | +							width: 330px;
 | 
	
		
			
				|  |  | +							height: 120px;
 | 
	
		
			
				|  |  | +							background: rgba(222, 235, 247, 0.60);
 | 
	
		
			
				|  |  | +							border-radius: 3px;
 | 
	
		
			
				|  |  | +							padding-left: 20px;
 | 
	
		
			
				|  |  | +							padding-top: 12px;
 | 
	
		
			
				|  |  | +							cursor: default;
 | 
	
		
			
				|  |  | +							font-size: 13px;
 | 
	
		
			
				|  |  | +							color: #333333;
 | 
	
		
			
				|  |  | +							line-height: 25px;
 | 
	
		
			
				|  |  | +							>div {
 | 
	
		
			
				|  |  | +								display: flex;
 | 
	
		
			
				|  |  | +								align-items: center;
 | 
	
		
			
				|  |  | +								.index {
 | 
	
		
			
				|  |  | +									display: flex;
 | 
	
		
			
				|  |  | +									justify-content: center;
 | 
	
		
			
				|  |  | +									align-items: center;
 | 
	
		
			
				|  |  | +									width: 15px;
 | 
	
		
			
				|  |  | +									height: 15px;
 | 
	
		
			
				|  |  | +									border-radius: 50%;
 | 
	
		
			
				|  |  | +									color: #ffffff;
 | 
	
		
			
				|  |  | +									line-height: 15px;
 | 
	
		
			
				|  |  | +									margin-right: 8px;
 | 
	
		
			
				|  |  | +									background-color: #00599C;
 | 
	
		
			
				|  |  | +									font-size: 12px;
 | 
	
		
			
				|  |  | +								}
 | 
	
		
			
				|  |  | +								>a {
 | 
	
		
			
				|  |  | +									color: #096AC6;
 | 
	
		
			
				|  |  | +									font-weight: 700;
 | 
	
		
			
				|  |  | +								}
 | 
	
		
			
				|  |  | +							}
 | 
	
		
			
				|  |  | +						}
 | 
	
		
			
				|  |  | +						.tips {
 | 
	
		
			
				|  |  |  							margin-top: 40px;
 | 
	
		
			
				|  |  |  							width: 100%;
 | 
	
		
			
				|  |  | -							text-align: right;
 | 
	
		
			
				|  |  | -							font-size: 13px;
 | 
	
		
			
				|  |  | -							color: #999999;
 | 
	
		
			
				|  |  | -							>span {
 | 
	
		
			
				|  |  | -								color: #096AC6;
 | 
	
		
			
				|  |  | -								font-weight: 700;
 | 
	
		
			
				|  |  | +							display: flex;
 | 
	
		
			
				|  |  | +							.zhuce {
 | 
	
		
			
				|  |  | +								font-size: 13px;
 | 
	
		
			
				|  |  | +								color: #999999;
 | 
	
		
			
				|  |  | +								>a {
 | 
	
		
			
				|  |  | +									color: #096AC6;
 | 
	
		
			
				|  |  | +									font-weight: 700;
 | 
	
		
			
				|  |  | +								}
 | 
	
		
			
				|  |  | +								&:last-child {
 | 
	
		
			
				|  |  | +									margin-left: auto;
 | 
	
		
			
				|  |  | +								}
 | 
	
		
			
				|  |  |  							}
 | 
	
		
			
				|  |  |  						}
 | 
	
		
			
				|  |  |  					}
 |