After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 137 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 203 KiB |
After Width: | Height: | Size: 203 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.4 KiB |
@ -0,0 +1,115 @@ |
|||
@import "~@/assets/scss/c/config.scss"; |
|||
@import "~@/assets/scss/c/function.scss"; |
|||
|
|||
.g-bd { |
|||
&::before, |
|||
&::after { |
|||
position: absolute; |
|||
top: 0; |
|||
right: 0; |
|||
bottom: 0; |
|||
left: 0; |
|||
z-index: -1; |
|||
content: ""; |
|||
} |
|||
&::before { |
|||
background-image: url(~@/assets/img/index/bg.png); |
|||
background-size: cover; |
|||
} |
|||
&::after { |
|||
// background-color: rgba(38, 50, 56, 0.1); |
|||
} |
|||
} |
|||
.m-list { |
|||
position: fixed; |
|||
top: 50%; |
|||
left: 0; |
|||
right: 0; |
|||
margin: auto; |
|||
transform: translateY(-50%); |
|||
|
|||
.list { |
|||
display: flex; |
|||
justify-content: space-around; |
|||
width: 100%; |
|||
|
|||
.item { |
|||
width: 612px; |
|||
max-width: 612px; |
|||
text-align: center; |
|||
cursor: pointer; |
|||
|
|||
&.z-on { |
|||
.name { |
|||
color: #ffffff; |
|||
background-color: transparent; |
|||
border-color: #ffffff; |
|||
&::before { |
|||
background-color: #ffffff; |
|||
} |
|||
} |
|||
} |
|||
.logo { |
|||
width: 100%; |
|||
} |
|||
.name { |
|||
position: relative; |
|||
width: auto; |
|||
display: inline-block; |
|||
text-align: center; |
|||
margin: 8px auto; |
|||
padding-left: 48px; |
|||
padding-right: 20px; |
|||
height: 42px; |
|||
line-height: 40px; |
|||
background: #ffffff; |
|||
border: 1px solid #b9b9b9; |
|||
border-radius: 21px; |
|||
font-size: 22px; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #002fec; |
|||
|
|||
&::before { |
|||
content: ""; |
|||
position: absolute; |
|||
display: block; |
|||
top: 0; |
|||
bottom: 0; |
|||
left: 20px; |
|||
margin: auto; |
|||
width: 14px; |
|||
height: 14px; |
|||
background: #0065f6; |
|||
border-radius: 50%; |
|||
} |
|||
} |
|||
|
|||
.tip { |
|||
display: block; |
|||
margin: 0 auto; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.m-footer { |
|||
position: absolute; |
|||
bottom: 0; |
|||
left: 0; |
|||
right: 0; |
|||
padding: 20px; |
|||
color: rgba(255, 255, 255, 0.6); |
|||
text-align: center; |
|||
p { |
|||
margin: 10px 0; |
|||
} |
|||
a { |
|||
padding: 0 5px; |
|||
color: rgba(255, 255, 255, 0.6); |
|||
&:focus, |
|||
&:hover { |
|||
color: #fff; |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,210 @@ |
|||
@import "~@/assets/scss/c/config.scss"; |
|||
@import "~@/assets/scss/c/function.scss"; |
|||
|
|||
.g-bd { |
|||
&::before, |
|||
&::after { |
|||
position: absolute; |
|||
top: 0; |
|||
right: 0; |
|||
bottom: 0; |
|||
left: 0; |
|||
z-index: -1; |
|||
content: ""; |
|||
} |
|||
&::before { |
|||
background-image: url(~@/assets/img/yantai/login/bg.png); |
|||
background-size: cover; |
|||
} |
|||
&::after { |
|||
// background-color: rgba(38, 50, 56, 0.1); |
|||
} |
|||
} |
|||
|
|||
.m-snow-box { |
|||
position: absolute; |
|||
top: 20vh; |
|||
width: 35vw; |
|||
height: 50vh; |
|||
left: 13vw; |
|||
border-radius: 40%; |
|||
// overflow: hidden; |
|||
} |
|||
|
|||
.m-fm { |
|||
position: absolute; |
|||
top: 0; |
|||
bottom: 0; |
|||
right: 13%; |
|||
margin: auto; |
|||
width: 484px; |
|||
height: 429px; |
|||
background: rgba(#fff, 1); |
|||
box-shadow: 0px 0px 20px 8px rgba(213, 225, 238, 0.7); |
|||
border-radius: 12px 12px 12px 12px; |
|||
|
|||
&:hover { |
|||
opacity: 1; |
|||
background: rgba(#fff, 1); |
|||
} |
|||
|
|||
.wrap { |
|||
padding-top: 5px; |
|||
|
|||
.title { |
|||
margin: 0 auto; |
|||
width: 400px; |
|||
line-height: 80px; |
|||
border-bottom: 1px solid #d4d4d4; |
|||
font-size: 34px; |
|||
font-family: PingFang SC; |
|||
font-weight: bold; |
|||
color: #000000; |
|||
text-align: center; |
|||
} |
|||
.fm { |
|||
padding: 15px 30px; |
|||
|
|||
.fm-item { |
|||
box-sizing: border-box; |
|||
margin: 0 auto; |
|||
margin-top: 16px; |
|||
width: 400px; |
|||
height: 46px; |
|||
line-height: 46px; |
|||
border: 1px solid #c6c6c6; |
|||
border-radius: 4px; |
|||
display: flex; |
|||
align-items: center; |
|||
|
|||
.input { |
|||
width: 85%; |
|||
|
|||
input { |
|||
display: block; |
|||
padding-left: 15px; |
|||
line-height: 44px; |
|||
height: 44px; |
|||
width: 100%; |
|||
border: none; |
|||
} |
|||
} |
|||
|
|||
.ico { |
|||
position: relative; |
|||
width: 35px; |
|||
height: 46px; |
|||
|
|||
img { |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
right: 0; |
|||
bottom: 0; |
|||
margin: auto; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.fm-captcha { |
|||
box-sizing: border-box; |
|||
margin: 0 auto; |
|||
margin-top: 16px; |
|||
width: 400px; |
|||
display: flex; |
|||
align-items: center; |
|||
|
|||
.fm-item { |
|||
margin: 0; |
|||
width: 200px; |
|||
} |
|||
|
|||
.captcha { |
|||
position: relative; |
|||
margin-left: auto; |
|||
width: 180px; |
|||
height: 46px; |
|||
|
|||
img { |
|||
display: block; |
|||
width: 100%; |
|||
height: 100%; |
|||
background-color: #eee; |
|||
border: none; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.fm-btn { |
|||
box-sizing: border-box; |
|||
margin: 0 auto; |
|||
margin-top: 40px; |
|||
width: 400px; |
|||
height: 56px; |
|||
line-height: 56px; |
|||
background: linear-gradient(90deg, #1a5afd, #26c4ff); |
|||
border-radius: 4px; |
|||
font-size: 23px; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
color: #ffffff; |
|||
text-align: center; |
|||
cursor: pointer; |
|||
} |
|||
} |
|||
.hint { |
|||
display: none; |
|||
padding-left: 40px; |
|||
color: rgb(255, 80, 80); |
|||
} |
|||
} |
|||
} |
|||
|
|||
.m-footer { |
|||
position: absolute; |
|||
bottom: 0; |
|||
left: 0; |
|||
right: 0; |
|||
padding: 20px; |
|||
color: rgba(255, 255, 255, 0.6); |
|||
text-align: center; |
|||
p { |
|||
margin: 10px 0; |
|||
} |
|||
a { |
|||
padding: 0 5px; |
|||
color: rgba(255, 255, 255, 0.6); |
|||
&:focus, |
|||
&:hover { |
|||
color: #fff; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.m-pop { |
|||
height: auto; |
|||
|
|||
.div_row { |
|||
height: 50px; |
|||
text-align: center; |
|||
line-height: 50px; |
|||
|
|||
&:hover { |
|||
color: rgb(2, 119, 173); |
|||
font-weight: bold; |
|||
text-decoration: underline; |
|||
} |
|||
|
|||
.i_icon { |
|||
width: 15px; |
|||
height: 15px; |
|||
margin-right: 10px; |
|||
float: left; |
|||
} |
|||
.span_name { |
|||
font-size: 18px; |
|||
cursor: pointer; |
|||
/* color: rgb(37, 156, 235); */ |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,88 @@ |
|||
<template> |
|||
<div class="g-app"> |
|||
<div class="g-bd" v-if="true"> |
|||
<div class="m-list"> |
|||
<div class="list"> |
|||
<div class="item" @click="handleClickItem(1)"> |
|||
<img class="logo" src="@/assets/img/index/logo-1.png" alt="" /> |
|||
<!-- 党建引领基层治理互联管理平台 --> |
|||
<div class="name">数字社区管理平台</div> |
|||
<img src="@/assets/img/index/zhuangshi.png" class="tip" /> |
|||
</div> |
|||
|
|||
<div class="item z-on" @click="handleClickItem(2)"> |
|||
<img class="logo" src="@/assets/img/index/logo-2.png" alt="" /> |
|||
<!-- 数据分析可视化平台 --> |
|||
<div class="name">数字社区可视化平台</div> |
|||
<img src="@/assets/img/index/zhuangshi.png" class="tip" /> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="m-footer"> |
|||
<div class="login-footer"> |
|||
<p> |
|||
<a href="http://www.elinkchina.com.cn/" target="_blank">{{ $t('login.copyright') }}</a> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import Cookies from 'js-cookie' |
|||
import debounce from 'lodash/debounce' |
|||
import { messages } from '@/i18n' |
|||
import { getUUID } from '@/utils' |
|||
import { Loading } from 'element-ui' // 引入Loading服务 |
|||
import JSEncrypt from 'jsencrypt' //引入加密 |
|||
|
|||
let loading // 加载动画 |
|||
export default { |
|||
data() { |
|||
return { |
|||
pubKey: null, // 获取到公钥 |
|||
isShowLogin: true, |
|||
i18nMessages: messages |
|||
} |
|||
}, |
|||
components: {}, |
|||
computed: {}, |
|||
created() {}, |
|||
mounted() {}, |
|||
|
|||
methods: { |
|||
handleClickItem(k) { |
|||
if (k == 1) { |
|||
this.$router.replace({ name: 'main' }) |
|||
} else if (k == 2) { |
|||
this.$router.replace({ name: 'main-shuju' }) |
|||
} |
|||
}, |
|||
|
|||
// 平阴联动 自动登录接口 |
|||
getAutoLogin(platformToken) { |
|||
this.dataForm.thirdToken = platformToken |
|||
this.dataForm.platform = 'pyld' |
|||
this.$http |
|||
.post(`/auth/sso/oper/third/login`, this.dataForm) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
if (res.code == 8302) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
return this.$message.error(res.msg) |
|||
} |
|||
localStorage.setItem('customerId', res.data.customerId) |
|||
localStorage.setItem('userType', 'work') |
|||
localStorage.setItem('showHeader', '0') |
|||
localStorage.setItem('token', res.data.token) |
|||
this.$router.replace({ name: 'home' }) |
|||
}) |
|||
.catch(() => {}) |
|||
// epmet-ext9.elinkservice.cn/platform-admin |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" src="@/assets/scss/pages/indexWork.scss" scoped></style> |
@ -0,0 +1,435 @@ |
|||
<template> |
|||
<div class="g-app"> |
|||
<div class="g-bd" v-if="isShowLogin || true"> |
|||
<div class="m-snow-box" id="snow_box"></div> |
|||
|
|||
<div class="m-fm animate__animated animate__backInLeft"> |
|||
<div class="wrap"> |
|||
<h2 class="title">{{ $t("brand.work") }}</h2> |
|||
<div class="fm"> |
|||
<el-form |
|||
:model="dataForm" |
|||
:rules="dataRule" |
|||
ref="dataForm" |
|||
@keyup.enter.native="dataFormSubmitHandle()" |
|||
status-icon |
|||
> |
|||
<div class="fm-item"> |
|||
<div class="ico"> |
|||
<img src="@/assets/img/login/zhanghao.png" alt="" /> |
|||
</div> |
|||
<div class="input"> |
|||
<input |
|||
type="text" |
|||
v-model="dataForm.phone" |
|||
placeholder="账号" |
|||
/> |
|||
</div> |
|||
</div> |
|||
<div class="fm-item"> |
|||
<div class="ico"> |
|||
<img src="@/assets/img/login/mima.png" alt="" /> |
|||
</div> |
|||
<div class="input"> |
|||
<input |
|||
type="password" |
|||
v-model="dataForm.password" |
|||
:placeholder="$t('login.password')" |
|||
/> |
|||
</div> |
|||
</div> |
|||
<div class="fm-captcha"> |
|||
<div class="fm-item"> |
|||
<div class="input"> |
|||
<input |
|||
type="text" |
|||
v-model="dataForm.captcha" |
|||
placeholder="验证码" |
|||
/> |
|||
</div> |
|||
</div> |
|||
<div class="captcha"> |
|||
<img :src="captchaPath" @click="getCaptcha()" /> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="fm-btn" @click="dataFormSubmitHandle()"> |
|||
{{ $t("login.title") }} |
|||
</div> |
|||
<div class="hint">请使用小程序端的账号密码登录</div> |
|||
</el-form> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="m-footer"> |
|||
<div class="login-footer"> |
|||
<p> |
|||
<a href="" target="_blank">{{ $t("login.copyright") }}</a> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<c-dialog |
|||
:showFooter="false" |
|||
:title="'选择客户'" |
|||
:isNest="false" |
|||
:visible="diaVisible" |
|||
:dialogHeight="0.8" |
|||
:width="30" |
|||
:top="'120px'" |
|||
@cancel="diaCancel" |
|||
> |
|||
<div class="m-pop"> |
|||
<div v-for="(item, index) in tableData" :key="index" class="div_row"> |
|||
<span @click="selectCustomer(item)" class="span_name">{{ |
|||
item.customerName |
|||
}}</span> |
|||
</div> |
|||
</div> |
|||
</c-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import CDialog from "@c/CDialog"; |
|||
import particles_js from "particles.js/particles.js"; |
|||
import { messages } from "@/i18n"; |
|||
import { getUUID } from "@/utils"; |
|||
import { Loading } from "element-ui"; // 引入Loading服务 |
|||
import JSEncrypt from "jsencrypt"; //引入加密 |
|||
|
|||
let loading; // 加载动画 |
|||
export default { |
|||
data() { |
|||
return { |
|||
pubKey: null, // 获取到公钥 |
|||
isShowLogin: true, |
|||
i18nMessages: messages, |
|||
captchaPath: "", |
|||
dataForm: { |
|||
customerId: "", |
|||
app: "gov", |
|||
client: "web", |
|||
username: "", |
|||
phone: "", |
|||
password: "", |
|||
uuid: "", |
|||
captcha: "", |
|||
}, |
|||
// 客户列表相关 |
|||
diaVisible: false, |
|||
tableLoading: false, |
|||
tableData: [], |
|||
}; |
|||
}, |
|||
components: { |
|||
CDialog, |
|||
}, |
|||
computed: { |
|||
dataRule() { |
|||
return { |
|||
phone: [{ required: true, message: "手机号不能为空", trigger: "blur" }], |
|||
password: [ |
|||
{ required: true, message: "密码不能为空", trigger: "blur" }, |
|||
], |
|||
captcha: [ |
|||
{ required: true, message: "验证码不能为空", trigger: "blur" }, |
|||
], |
|||
}; |
|||
}, |
|||
}, |
|||
created() { |
|||
//平阴联动平台 登陆 |
|||
if (this.$route.query.platformToken) { |
|||
this.isShowLogin = false; |
|||
this.getAutoLogin(this.$route.query.platformToken); |
|||
} else { |
|||
this.getCaptcha(); |
|||
//获取公钥 |
|||
this.getPubKey(); |
|||
} |
|||
}, |
|||
mounted() { |
|||
localStorage.removeItem("showHeader"); |
|||
|
|||
particlesJS( |
|||
"snow_box", |
|||
{ |
|||
particles: { |
|||
number: { |
|||
value: 380, |
|||
density: { |
|||
enable: true, |
|||
value_area: 800, |
|||
}, |
|||
}, |
|||
color: { |
|||
value: "#ffffff", |
|||
}, |
|||
shape: { |
|||
type: "circle", |
|||
stroke: { |
|||
width: 0, |
|||
color: "#000000", |
|||
}, |
|||
polygon: { |
|||
nb_sides: 5, |
|||
}, |
|||
image: { |
|||
src: "img/github.svg", |
|||
width: 100, |
|||
height: 100, |
|||
}, |
|||
}, |
|||
opacity: { |
|||
value: 0.5, |
|||
random: false, |
|||
anim: { |
|||
enable: false, |
|||
speed: 1, |
|||
opacity_min: 0.1, |
|||
sync: false, |
|||
}, |
|||
}, |
|||
size: { |
|||
value: 3, |
|||
random: true, |
|||
anim: { |
|||
enable: false, |
|||
speed: 40, |
|||
size_min: 0.1, |
|||
sync: false, |
|||
}, |
|||
}, |
|||
line_linked: { |
|||
enable: true, |
|||
distance: 150, |
|||
color: "#ffffff", |
|||
opacity: 0, |
|||
width: 1, |
|||
}, |
|||
move: { |
|||
enable: true, |
|||
speed: 6, |
|||
direction: "none", |
|||
random: false, |
|||
straight: false, |
|||
out_mode: "out", |
|||
bounce: false, |
|||
attract: { |
|||
enable: false, |
|||
rotateX: 600, |
|||
rotateY: 1200, |
|||
}, |
|||
}, |
|||
}, |
|||
interactivity: { |
|||
detect_on: "canvas", |
|||
events: { |
|||
onhover: { |
|||
enable: true, |
|||
mode: "grab", |
|||
}, |
|||
onclick: { |
|||
enable: true, |
|||
mode: "push", |
|||
}, |
|||
resize: true, |
|||
}, |
|||
modes: { |
|||
grab: { |
|||
distance: 140, |
|||
line_linked: { |
|||
opacity: 1, |
|||
}, |
|||
}, |
|||
bubble: { |
|||
distance: 400, |
|||
size: 40, |
|||
duration: 2, |
|||
opacity: 8, |
|||
speed: 3, |
|||
}, |
|||
repulse: { |
|||
distance: 200, |
|||
duration: 0.4, |
|||
}, |
|||
push: { |
|||
particles_nb: 4, |
|||
}, |
|||
remove: { |
|||
particles_nb: 2, |
|||
}, |
|||
}, |
|||
}, |
|||
retina_detect: true, |
|||
}, |
|||
function () { |
|||
console.log("callback - particles.js config loaded"); |
|||
} |
|||
); |
|||
}, |
|||
|
|||
methods: { |
|||
// 获取公钥 |
|||
getPubKey() { |
|||
this.$http |
|||
.post("/auth/govweb/getKey") |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg); |
|||
} |
|||
|
|||
this.pubKey = res.data; // 获取到公钥; |
|||
}) |
|||
.catch(() => {}); |
|||
}, |
|||
// 获取验证码 |
|||
getCaptcha() { |
|||
this.dataForm.uuid = getUUID(); |
|||
this.captchaPath = `${window.SITE_CONFIG["apiURL"]}/auth/login/captcha?uuid=${this.dataForm.uuid}`; |
|||
}, |
|||
// 表单提交 |
|||
dataFormSubmitHandle() { |
|||
this.$refs["dataForm"].validate((valid, messageObj) => { |
|||
if (!valid) { |
|||
app.util.validateRule(messageObj); |
|||
} |
|||
this.startLoading(); |
|||
// const url = 'https://nei.netease.com/api/apimock-v2/e3b1d0eb88e905f6c7ee559b2d6bb7ad/epmetuser/customerstaff/customerlist' |
|||
const url = "/epmetuser/customerstaff/customerlist"; |
|||
const params = { |
|||
phone: this.dataForm.phone, |
|||
}; |
|||
// this.$http |
|||
// .post(url, params).then(({ data })=> { |
|||
// console.log('res--comll', data) |
|||
// if (data.data.length === 0) { |
|||
// //没有客户,提示无法登录 |
|||
// this.$message.error('账号不存在') |
|||
// this.endLoading() |
|||
// } else if (data.data.length === 1) { |
|||
// this.selectCustomer(data.data[0]) |
|||
// } else { |
|||
// this.endLoading() |
|||
// this.diaVisible = true |
|||
// this.$nextTick(() => { |
|||
// this.tableData = data.data |
|||
// }) |
|||
// } |
|||
// }).catch((err) => { |
|||
// this.endLoading() |
|||
// this.$message.error(err) |
|||
// }) |
|||
window.app.ajax.post( |
|||
url, |
|||
params, |
|||
(data, rspMsg) => { |
|||
if (data.length === 0) { |
|||
//没有客户,提示无法登录 |
|||
this.$message.error("账号不存在"); |
|||
this.endLoading(); |
|||
} else if (data.length === 1) { |
|||
this.selectCustomer(data[0]); |
|||
} else { |
|||
this.endLoading(); |
|||
this.diaVisible = true; |
|||
this.$nextTick(() => { |
|||
this.tableData = data; |
|||
}); |
|||
} |
|||
}, |
|||
(rspMsg, data) => { |
|||
this.endLoading(); |
|||
this.$message.error(rspMsg); |
|||
} |
|||
); |
|||
}); |
|||
}, |
|||
// 平阴联动 自动登录接口 |
|||
getAutoLogin(platformToken) { |
|||
this.dataForm.thirdToken = platformToken; |
|||
this.dataForm.platform = "pyld"; |
|||
this.$http |
|||
.post(`/auth/sso/oper/third/login`, this.dataForm) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
if (res.code == 8302) { |
|||
return this.$message.error(res.msg); |
|||
} |
|||
return this.$message.error(res.msg); |
|||
} |
|||
localStorage.setItem("customerId", res.data.customerId); |
|||
localStorage.setItem("userType", "work"); |
|||
localStorage.setItem("showHeader", "0"); |
|||
localStorage.setItem("token", res.data.token); |
|||
this.$router.replace({ name: "home" }); |
|||
}) |
|||
.catch(() => {}); |
|||
// epmet-ext9.elinkservice.cn/platform-admin |
|||
}, |
|||
//选择客户 |
|||
selectCustomer(row) { |
|||
localStorage.setItem("customerId", row.customerId); |
|||
localStorage.setItem("customerName", row.customerName); |
|||
this.startLoading(); |
|||
// const url = 'https://nei.netease.com/api/apimock-v2/e3b1d0eb88e905f6c7ee559b2d6bb7ad/auth/govweb/login' |
|||
const url = "/auth/govweb/login"; |
|||
this.dataForm.customerId = row.customerId; |
|||
let param = {}; |
|||
Object.assign(param, this.dataForm); |
|||
param.password = this.encryptedData(this.pubKey, this.dataForm.password); |
|||
this.$http |
|||
.post(url, param) |
|||
.then(({ data: res }) => { |
|||
this.endLoading(); |
|||
if (res.code !== 0) { |
|||
this.getCaptcha(); |
|||
return this.$message.error(res.msg); |
|||
} |
|||
this.diaVisible = false; |
|||
|
|||
localStorage.setItem("userType", "work"); |
|||
|
|||
localStorage.setItem("token", res.data.token); |
|||
this.$router.replace({ name: "index" }); |
|||
}) |
|||
.catch(() => { |
|||
this.endLoading(); |
|||
}); |
|||
}, |
|||
// 取消 |
|||
diaCancel() { |
|||
this.diaVisible = false; |
|||
}, |
|||
// 开启加载动画 |
|||
startLoading() { |
|||
loading = Loading.service({ |
|||
lock: true, // 是否锁定 |
|||
text: "正在加载……", // 加载中需要显示的文字 |
|||
background: "rgba(0,0,0,.7)", // 背景颜色 |
|||
}); |
|||
}, |
|||
// 结束加载动画 |
|||
endLoading() { |
|||
// clearTimeout(timer); |
|||
if (loading) { |
|||
loading.close(); |
|||
} |
|||
}, |
|||
// 加密 |
|||
encryptedData(key, data) { |
|||
// 新建JSEncrypt对象 |
|||
let encryptor = new JSEncrypt(); |
|||
// 设置公钥 |
|||
encryptor.setPublicKey(key); |
|||
// 加密数据 |
|||
return encryptor.encrypt(data); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss" src="@/assets/scss/pages/yantai-login.scss" scoped></style> |