左侧更改
|
|
@ -85,16 +85,14 @@ body {
|
|||
padding: 0;
|
||||
margin: 0;
|
||||
.header-left {
|
||||
width: 20%;
|
||||
height: 35px;
|
||||
margin-left: 41px;
|
||||
margin-top: 13px;
|
||||
.header-logo {
|
||||
width: 290px;
|
||||
height: 100%;
|
||||
background: url(../img/logo.png);
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
line-height: 35px;
|
||||
color: #fff;
|
||||
letter-spacing: 2px;
|
||||
span {
|
||||
margin-left: 3%;
|
||||
}
|
||||
}
|
||||
.header-main {
|
||||
|
|
@ -232,42 +230,43 @@ body {
|
|||
pointer-events: auto;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background: url(../img/botom-left.png);
|
||||
background-size: 100% 105%;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
padding: 0 40px;
|
||||
.stats {
|
||||
width: 80%;
|
||||
height: 280px;
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
margin-top: 15%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
color: #fff;
|
||||
color: #0144ef;
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
.stat-item {
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
width: 45%;
|
||||
height: 100%;
|
||||
background: url(../img/bottom-waring.png);
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
// 禁止换行
|
||||
white-space: nowrap;
|
||||
margin-left: 2%;
|
||||
margin-right: 3%;
|
||||
.stat-name {
|
||||
width: 100%;
|
||||
height: 50%;
|
||||
line-height: 70px;
|
||||
line-height: 42px;
|
||||
text-align: center;
|
||||
span {
|
||||
font-size: 3vw;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.drone-list {
|
||||
width: 80%;
|
||||
height: calc(100% - 280px);
|
||||
width: 100%;
|
||||
height: calc(100% - 200px);
|
||||
margin-top: 25px;
|
||||
.title {
|
||||
width: 100%;
|
||||
|
|
@ -281,53 +280,216 @@ body {
|
|||
overflow: auto;
|
||||
margin-top: 10px;
|
||||
li {
|
||||
width: 100%;
|
||||
height: 83px;
|
||||
width: 90%;
|
||||
height: 60px;
|
||||
border-bottom: 1px dashed #ccc;
|
||||
.top {
|
||||
background: url(../img/uavBackfff.png);
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
padding: 5px;
|
||||
color: #0144ef;
|
||||
margin-left: 2%;
|
||||
.details-one {
|
||||
width: 100%;
|
||||
height: 30%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 5px;
|
||||
.left {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background: url(../img/index.png);
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
text-align: center;
|
||||
line-height: 20px;
|
||||
font-size: 10px;
|
||||
color: #fff;
|
||||
}
|
||||
.text {
|
||||
width: calc(100% - 20px);
|
||||
height: 100%;
|
||||
margin-left: 10px;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #d1f2ff;
|
||||
text-align: left;
|
||||
line-height: 20px;
|
||||
}
|
||||
}
|
||||
.main {
|
||||
width: calc(100% - 30px);
|
||||
height: 65%;
|
||||
margin-left: 30px;
|
||||
.top_main {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.top {
|
||||
width: 98%;
|
||||
height: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
text-align: left;
|
||||
align-items: baseline;
|
||||
margin-left: 5%;
|
||||
position: relative;
|
||||
.left {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background: url(../img/index.png);
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
text-align: center;
|
||||
font-size: 10px;
|
||||
position: absolute;
|
||||
top: 60%;
|
||||
transform: translateY(-50%);
|
||||
line-height: 20px;
|
||||
}
|
||||
.text {
|
||||
width: 50%;
|
||||
width: 68%;
|
||||
height: 100%;
|
||||
margin-left: 15%;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
text-align: left;
|
||||
line-height: 35px;
|
||||
}
|
||||
}
|
||||
.main {
|
||||
width: calc(100% - 30px);
|
||||
height: 50%;
|
||||
margin-left: 20px;
|
||||
.top_main {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-weight: 400;
|
||||
text-align: left;
|
||||
.text {
|
||||
width: 50%;
|
||||
.color-ef {
|
||||
color: #0144ef;
|
||||
font-size: 14px;
|
||||
}
|
||||
.text-fff {
|
||||
color: #000;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.details-all {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.top {
|
||||
width: 98%;
|
||||
height: 10%;
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
margin-left: 5%;
|
||||
position: relative;
|
||||
.left {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background: url(../img/index.png);
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
text-align: center;
|
||||
font-size: 10px;
|
||||
position: absolute;
|
||||
top: 55%;
|
||||
transform: translateY(-50%);
|
||||
line-height: 20px;
|
||||
}
|
||||
.text {
|
||||
width: 68%;
|
||||
height: 100%;
|
||||
margin-left: 15%;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
text-align: left;
|
||||
line-height: 35px;
|
||||
}
|
||||
}
|
||||
.content-main {
|
||||
width: calc(100% - 20px);
|
||||
height: 92%;
|
||||
margin-left: 20px;
|
||||
.color-ef {
|
||||
color: #0144ef;
|
||||
font-size: 14px;
|
||||
}
|
||||
.text-fff {
|
||||
color: #000;
|
||||
font-size: 12px;
|
||||
}
|
||||
.content-top {
|
||||
width: calc(100% - 10px);
|
||||
height: 8%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-weight: 400;
|
||||
text-align: left;
|
||||
.top-left {
|
||||
width: 50%;
|
||||
}
|
||||
.top-right {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
.content-serial {
|
||||
width: 100%;
|
||||
height: 8%;
|
||||
text-align: left;
|
||||
.text-fff {
|
||||
// 超出隐藏
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.color-ef-fw {
|
||||
color: #0144ef;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.content-potions {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
p {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.content-potions-lon {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
.text {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
.characters {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
.content-potions-bottom {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
text-align: left;
|
||||
align-items: center;
|
||||
.content-text {
|
||||
width: 30%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
text-align: left;
|
||||
align-items: center;
|
||||
.text {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
.characters {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
.content-text1 {
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
text-align: left;
|
||||
p {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.text {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
.characters {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 208 B |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 971 B |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
|
@ -0,0 +1,18 @@
|
|||
<svg width="260" height="350" viewBox="0 0 260 350" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g filter="url(#filter0_d_218_536)">
|
||||
<path d="M10 18C10 13.5817 13.5817 10 18 10H242C246.418 10 250 13.5817 250 18V332C250 336.418 246.418 340 242 340H18C13.5817 340 10 336.418 10 332V18Z" fill="white"/>
|
||||
<path d="M18 11H242C245.866 11 249 14.134 249 18V332C249 335.866 245.866 339 242 339H18C14.134 339 11 335.866 11 332V18C11 14.134 14.134 11 18 11Z" stroke="#0144EF" stroke-width="2"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_218_536" x="0" y="0" width="260" height="350" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset/>
|
||||
<feGaussianBlur stdDeviation="5"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.00392157 0 0 0 0 0.266667 0 0 0 0 0.937255 0 0 0 1 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_218_536"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_218_536" result="shape"/>
|
||||
</filter>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 862 B |
|
After Width: | Height: | Size: 19 KiB |
|
|
@ -9,23 +9,22 @@ const routes = [
|
|||
name: "home",
|
||||
component: index,
|
||||
beforeEnter: (to, from, next) => {
|
||||
next(); // 继续导航到/dashboard
|
||||
// const expires = localStorage.getItem("expires");
|
||||
// const expiresTimestamp = new Date(expires).getTime();
|
||||
// const now = new Date().getTime();
|
||||
// if (expiresTimestamp && now > expiresTimestamp) {
|
||||
// // 登录已过期,执行自动退出操作
|
||||
// localStorage.removeItem("setToken");
|
||||
// localStorage.removeItem("expires");
|
||||
// next("/login");
|
||||
// }
|
||||
// const token = localStorage.getItem("setToken");
|
||||
// // 在导航到/dashboard路由之前执行的操作
|
||||
// if (!token) {
|
||||
// next("/login"); // 如果非管理员用户访问/dashboard,则重定向到登录页面
|
||||
// } else {
|
||||
// next(); // 继续导航到/dashboard
|
||||
// }
|
||||
const expires = localStorage.getItem("expires");
|
||||
const expiresTimestamp = new Date(expires).getTime();
|
||||
const now = new Date().getTime();
|
||||
if (expiresTimestamp && now > expiresTimestamp) {
|
||||
// 登录已过期,执行自动退出操作
|
||||
localStorage.removeItem("setToken");
|
||||
localStorage.removeItem("expires");
|
||||
next("/login");
|
||||
}
|
||||
const token = localStorage.getItem("setToken");
|
||||
// 在导航到/dashboard路由之前执行的操作
|
||||
if (!token) {
|
||||
next("/login"); // 如果非管理员用户访问/dashboard,则重定向到登录页面
|
||||
} else {
|
||||
next(); // 继续导航到/dashboard
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,48 +3,132 @@
|
|||
<div class="stats">
|
||||
<div class="stat-item" v-for="(item, index) in warningDay" :key="index">
|
||||
<div class="stat-name">{{ item.name }}</div>
|
||||
<div class="stat-name">{{ item.value }} 次</div>
|
||||
<div class="stat-name">
|
||||
<span>{{ item.value }}</span> 次
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="drone-list">
|
||||
<div class="title">
|
||||
<img src="@/assets/img/uavTitle.png" alt="" />
|
||||
</div>
|
||||
<ul>
|
||||
<li
|
||||
v-for="(drone, index) in drones"
|
||||
:key="index"
|
||||
@click="handleDroneClick(drone)"
|
||||
:style="{
|
||||
height: drone.detailsShow ? '60px' : '330px',
|
||||
backgroundImage: drone.detailsShow
|
||||
? `url(${require('@/assets/img/uavBackfff.png')})`
|
||||
: `url(${require('@/assets/img/uavBackfff-big.png')})`,
|
||||
padding: 0
|
||||
}"
|
||||
>
|
||||
<div class="top">
|
||||
<div class="left">
|
||||
{{ index < 9 ? "0" + (index + 1) : index + 1 }}
|
||||
<div class="details-one" v-if="drone.detailsShow">
|
||||
<div class="top">
|
||||
<div class="left">
|
||||
{{ index < 9 ? "0" + (index + 1) : index + 1 }}
|
||||
</div>
|
||||
<div class="text">{{ drone.serial_number }}</div>
|
||||
<div class="img-vector">
|
||||
<img src="@/assets/img/Vector.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="main">
|
||||
<div class="top_main">
|
||||
<div class="text">
|
||||
<span class="color-ef">距离:</span>
|
||||
<span class="text-fff">{{ drone.currTime || 0 }}米</span>
|
||||
</div>
|
||||
<div class="text">
|
||||
<span class="color-ef">高度:</span>
|
||||
<span class="text-fff">{{ drone.height }}米</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text">{{ drone.serial_number }}</div>
|
||||
</div>
|
||||
<div class="main">
|
||||
<div class="top_main">
|
||||
<div class="text">时间:{{ drone.times }}</div>
|
||||
<div class="text">来源:{{ drone.DeviceName }}</div>
|
||||
<div class="details-all" v-else>
|
||||
<div class="top">
|
||||
<div class="left">
|
||||
{{ index < 9 ? "0" + (index + 1) : index + 1 }}
|
||||
</div>
|
||||
<div class="text">{{ drone.serial_number }}</div>
|
||||
<div class="img-vector">
|
||||
<img src="@/assets/img/Vector.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="top_main">
|
||||
<div class="text">频段:{{ drone.freq }}</div>
|
||||
<el-tooltip
|
||||
class="item"
|
||||
effect="dark"
|
||||
:content="drone.device_type"
|
||||
placement="top"
|
||||
>
|
||||
<div class="text">型号:{{ drone.device_type }}</div>
|
||||
</el-tooltip>
|
||||
<div class="content-main">
|
||||
<div class="content-top">
|
||||
<div class="top-left">
|
||||
<span class="color-ef"> 距离:</span>
|
||||
<span class="text-fff">{{ drone.currTime || 0 }}米</span>
|
||||
</div>
|
||||
<div class="top-right">
|
||||
<span class="color-ef"> 高度:</span>
|
||||
<span class="text-fff">{{ drone.height || 0 }}米</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-serial">
|
||||
<span class="color-ef"> 序列号:</span>
|
||||
<span class="text-fff">11VJF4D00201LE</span>
|
||||
</div>
|
||||
<div class="content-serial">
|
||||
<span class="color-ef"> 型号:</span>
|
||||
<span class="text-fff">DJI Air 2S</span>
|
||||
</div>
|
||||
<div class="content-serial">
|
||||
<span class="color-ef"> 更新时间:</span>
|
||||
<span class="text-fff">2025.6.15 21:12:43</span>
|
||||
</div>
|
||||
<div class="content-serial">
|
||||
<span class="color-ef-fw">无人机方位</span>
|
||||
</div>
|
||||
<div class="content-serial" style="height: 25%">
|
||||
<div class="content-potions">
|
||||
<div class="content-potions-lon">
|
||||
<p class="text">经纬度:</p>
|
||||
<p class="characters">
|
||||
{{ drone.drone_lon }}, {{ drone.drone_lat }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="content-potions-bottom">
|
||||
<div class="content-text content-potions-lat">
|
||||
<p class="text">高度:</p>
|
||||
<p class="characters">{{ drone.height || 0 }}M</p>
|
||||
</div>
|
||||
<div class="content-text content-potions-speed">
|
||||
<p class="text">速度:</p>
|
||||
<p class="characters">{{ drone.height }}M/h</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-serial">
|
||||
<span class="color-ef-fw">飞手方位</span>
|
||||
</div>
|
||||
<div class="content-serial" style="height: 25%">
|
||||
<div class="content-potions">
|
||||
<div class="content-text1 content-potions-lon">
|
||||
<p class="text">经纬度</p>
|
||||
<p class="characters">
|
||||
{{ drone.drone_lon }}, {{ drone.drone_lat }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="content-text1 content-potions-lat">
|
||||
<p class="text">高度</p>
|
||||
<p class="characters">{{ drone.height || 0 }}m</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-serial">
|
||||
<div class="btns">
|
||||
<div class="btn-trust"></div>
|
||||
<div class="btn-navigation"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="left-contract" @click="handleContractClick">
|
||||
<img :src="isContracted ? rightContract : leftContract" alt="" />
|
||||
</div>
|
||||
<audio
|
||||
controls
|
||||
loop
|
||||
|
|
@ -91,19 +175,26 @@ export default {
|
|||
id: "2",
|
||||
name: "累计预警",
|
||||
value: 20
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
name: "今日反制",
|
||||
value: 0
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
name: "累计反制",
|
||||
value: 0
|
||||
}
|
||||
],
|
||||
drones: [],
|
||||
drones: [
|
||||
{
|
||||
id: "1",
|
||||
serial_number: "123456789",
|
||||
DeviceName: "设备名称",
|
||||
freq: "123.456GHz",
|
||||
device_type: "UAV",
|
||||
drone_lat: 30.592852,
|
||||
drone_lon: 104.060059,
|
||||
height: 100,
|
||||
alarmLevel: 1,
|
||||
times: "2021-01-01 12:00:00",
|
||||
BatchId: "123456789",
|
||||
DeviceId: "123456789",
|
||||
currTime: 15,
|
||||
detailsShow: false
|
||||
}
|
||||
],
|
||||
isContracted: false,
|
||||
homeView: {},
|
||||
droneTimers: new Map(),
|
||||
|
|
@ -276,6 +367,7 @@ export default {
|
|||
this.isContracted = !this.isContracted; // 切换状态
|
||||
},
|
||||
handleDroneClick(value) {
|
||||
value.detailsShow = !value.detailsShow;
|
||||
if (value.drone_lon == 0 || value.drone_lat == 0) {
|
||||
} else {
|
||||
window.marsMap.setCameraView({
|
||||
|
|
|
|||
|
|
@ -1,14 +1,17 @@
|
|||
<template>
|
||||
<div class="header">
|
||||
<div class="header-left">
|
||||
<div class="header-logo"></div>
|
||||
<!-- <div class="header-logo"></div> -->
|
||||
<div class="time_date">
|
||||
{{ currentDate }} <span>{{ currentTime }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="header-main">
|
||||
<div class="textTile">
|
||||
<img src="@/assets/img/title.svg" alt="" />
|
||||
<!-- <img src="@/assets/img/title.svg" alt="" /> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="header-menu">
|
||||
<!-- <div class="header-menu">
|
||||
<div class="menuItem" v-if="isAdmins">
|
||||
<div
|
||||
class="menuFor"
|
||||
|
|
@ -73,7 +76,7 @@
|
|||
</div>
|
||||
<div class="date">{{ currentDate }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<el-dialog
|
||||
:title="title"
|
||||
:visible.sync="showDialog"
|
||||
|
|
|
|||
|
|
@ -71,31 +71,30 @@ export default {
|
|||
}
|
||||
},
|
||||
loginClick() {
|
||||
this.$router.push("/"); // Vue 2 中使用 this.$router
|
||||
// let params = {};
|
||||
// params.username = this.state.username;
|
||||
// localStorage.setItem("userName", params.username);
|
||||
// params.password = this.state.password;
|
||||
let params = {};
|
||||
params.username = this.state.username;
|
||||
localStorage.setItem("userName", params.username);
|
||||
params.password = this.state.password;
|
||||
|
||||
// if (!this.state.username || !this.state.password) {
|
||||
// return;
|
||||
// } else {
|
||||
// login(params).then((res) => {
|
||||
// if (res.code === 1 && res.data) {
|
||||
// localStorage.setItem("setToken", res.data.token);
|
||||
// localStorage.setItem("expires", res.data.expires); // 登录到期时间
|
||||
// localStorage.setItem("userId", res.data.userid); // 登录id
|
||||
// localStorage.setItem("isAdmin", res.data.isAdmin); // 权限
|
||||
if (!this.state.username || !this.state.password) {
|
||||
return;
|
||||
} else {
|
||||
login(params).then((res) => {
|
||||
if (res.code === 1 && res.data) {
|
||||
localStorage.setItem("setToken", res.data.token);
|
||||
localStorage.setItem("expires", res.data.expires); // 登录到期时间
|
||||
localStorage.setItem("userId", res.data.userid); // 登录id
|
||||
localStorage.setItem("isAdmin", res.data.isAdmin); // 权限
|
||||
|
||||
// // 注意:Vue 2 中 Pinia 的用法需要调整
|
||||
// 注意:Vue 2 中 Pinia 的用法需要调整
|
||||
|
||||
// this.$router.push("/"); // Vue 2 中使用 this.$router
|
||||
// } else {
|
||||
// this.state.password = this.state.password;
|
||||
// this.$message.error(res.msg);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
this.$router.push("/"); // Vue 2 中使用 this.$router
|
||||
} else {
|
||||
this.state.password = this.state.password;
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
|||