| 
					
				 | 
			
			
				@@ -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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} 
			 |