You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
305 lines
7.7 KiB
305 lines
7.7 KiB
<template>
|
|
<div class="page">
|
|
<div class="select">
|
|
<el-form :model="queryParams">
|
|
<el-form-item label="行政区划" prop="adcd" label-width="68px">
|
|
<el-cascader
|
|
:options="areasOptions"
|
|
v-model="queryParams.adcd"
|
|
:props="areasOptionProps"
|
|
placeholder="请选择行政区划"
|
|
clearable
|
|
size="small"
|
|
style="width: 100%"
|
|
>
|
|
</el-cascader>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
<div class="main">
|
|
<div class="main_head">
|
|
<div class="head_title">
|
|
<div class="iconSpan">
|
|
<span class="first"></span>
|
|
<span class="second"></span>
|
|
</div>
|
|
<span class="text">
|
|
工程分布一张图
|
|
<em> (数据更新时间:2023/05/25) </em>
|
|
</span>
|
|
</div>
|
|
<div class="head_btn">进入</div>
|
|
</div>
|
|
<div class="main_content">
|
|
<div class="con_head">
|
|
<div class="head_btn">
|
|
<span
|
|
:class="{ activeSpan1: activeName == '1' }"
|
|
@click="chooseName('1')"
|
|
>业务概况图</span
|
|
>
|
|
<span
|
|
:class="{ activeSpan1: activeName == '2' }"
|
|
@click="chooseName('2')"
|
|
>机构地图</span
|
|
>
|
|
</div>
|
|
</div>
|
|
<div class="con_info">
|
|
<div class="info_left">
|
|
<div class="infoItem">
|
|
<span>总项目数</span>
|
|
<span>12688</span>
|
|
</div>
|
|
<div class="infoItem">
|
|
<span>初步批复</span>
|
|
<span>8688</span>
|
|
</div>
|
|
<div class="infoItem">
|
|
<span>施工中</span>
|
|
<span>6588</span>
|
|
</div>
|
|
<div class="infoItem">
|
|
<span>已完工</span>
|
|
<span>8688</span>
|
|
</div>
|
|
</div>
|
|
<div class="info_right">
|
|
<img src="@/assets/image/SMap.png" alt="" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import { returnToken } from "@/api/login";
|
|
import { setToken, removeToken } from "@/utils/auth";
|
|
import { getAreasData } from "@/api/areas/index";
|
|
export default {
|
|
data() {
|
|
return {
|
|
activeName: "1",
|
|
areasOptionProps: {
|
|
emitPath: false, //value返回最后一级的
|
|
checkStrictly: true, //选择任意一级
|
|
// lazy: true,
|
|
// lazyLoad: function qylazyLoad(node) {
|
|
// // node.level = 5;
|
|
// console.log("node", node.level);
|
|
// },
|
|
},
|
|
areasOptions: [],
|
|
queryParams: {
|
|
adcd: null,
|
|
},
|
|
parmas: {
|
|
token: null,
|
|
},
|
|
};
|
|
},
|
|
|
|
created() {
|
|
console.log("this.$route", this.$route);
|
|
this.parmas.token = this.$route.query.token;
|
|
returnToken(this.parmas).then((res) => {
|
|
console.log("有效token", res);
|
|
let token = res.token;
|
|
setToken(token);
|
|
this.getTreeData();
|
|
});
|
|
},
|
|
methods: {
|
|
chooseName(key) {
|
|
this.activeName = key;
|
|
},
|
|
getTreeData() {
|
|
getAreasData().then((items) => {
|
|
// console.log("getAreasData", items.data);
|
|
let res = [];
|
|
let getChildren = (res, pid) => {
|
|
for (const i of items.data) {
|
|
if (i.parentid === pid) {
|
|
const newItem = {
|
|
label: i.name,
|
|
value: i.id,
|
|
};
|
|
if (i.layer != 3) newItem.children = [];
|
|
res.push(newItem);
|
|
getChildren(newItem.children, newItem.value);
|
|
}
|
|
}
|
|
};
|
|
getChildren(res, items.data[0].parentid);
|
|
this.areasOptions = res;
|
|
// 当不是admin时,默认行政区域
|
|
// if (this.$userProfile.createUid != "admin") {
|
|
// this.queryParams.data.adcd = this.areasOptions[0].value;
|
|
// }
|
|
// return res;
|
|
});
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
.page {
|
|
// width: 1200px;
|
|
width: 100%;
|
|
background: #fff;
|
|
display: flex;
|
|
flex-direction: column;
|
|
// border: 1px solid red;
|
|
.select {
|
|
height: 64px;
|
|
display: flex;
|
|
align-items: center;
|
|
padding-left: 24px;
|
|
margin-bottom: 20px;
|
|
/deep/ .el-form-item {
|
|
margin-bottom: 0;
|
|
.el-input__inner {
|
|
width: 320px;
|
|
}
|
|
}
|
|
}
|
|
.main {
|
|
height: 800px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
.main_head {
|
|
height: 58px;
|
|
background: #f3feff;
|
|
padding: 16px 24px;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
.head_title {
|
|
height: 26px;
|
|
display: flex;
|
|
.iconSpan {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-evenly;
|
|
margin-right: 8px;
|
|
.first {
|
|
width: 6px;
|
|
height: 6px;
|
|
background: #f86220;
|
|
}
|
|
.second {
|
|
width: 6px;
|
|
height: 6px;
|
|
background: #36b29e;
|
|
}
|
|
}
|
|
.text {
|
|
font-size: 18px;
|
|
line-height: 26px;
|
|
& > em {
|
|
font-size: 14px;
|
|
color: #8c8c8c;
|
|
font-style: normal;
|
|
}
|
|
}
|
|
}
|
|
.head_btn {
|
|
font-size: 14px;
|
|
color: #36b29e;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
.main_content {
|
|
flex: 1;
|
|
padding: 20px 50px;
|
|
// background: skyblue;
|
|
display: flex;
|
|
flex-direction: column;
|
|
.con_head {
|
|
height: 32px;
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
margin-bottom: 20px;
|
|
.head_btn {
|
|
// border: 1px solid #d9d9d9;
|
|
// border-radius: 4px;
|
|
& > span {
|
|
display: inline-block;
|
|
padding: 5px 16px;
|
|
font-size: 14px;
|
|
color: #262626;
|
|
cursor: pointer;
|
|
border: 1px solid #d9d9d9;
|
|
}
|
|
& > span:nth-child(1) {
|
|
border-radius: 4px 0 0 4px;
|
|
}
|
|
& > span:nth-child(2) {
|
|
border-radius: 0 4px 4px 0;
|
|
}
|
|
.activeSpan1 {
|
|
border: 1px solid #36b29e;
|
|
color: #36b29e;
|
|
}
|
|
.activeSpan2 {
|
|
border: 1px solid #36b29e;
|
|
color: #36b29e;
|
|
}
|
|
}
|
|
}
|
|
.con_info {
|
|
flex: 1;
|
|
// border: 1px solid red;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
.info_left {
|
|
// width: 240px;
|
|
width: 22%;
|
|
height: 464px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
// border: 1px solid red;
|
|
.infoItem {
|
|
height: 104px;
|
|
padding: 16px;
|
|
background: linear-gradient(
|
|
to bottom,
|
|
#cff3f6 0%,
|
|
rgba(207, 243, 246, 0.3) 100%
|
|
);
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
& > span:nth-child(1) {
|
|
color: #262626;
|
|
font-size: 16px;
|
|
}
|
|
& > span:nth-child(2) {
|
|
color: #36b29e;
|
|
font-size: 40px;
|
|
}
|
|
}
|
|
& > .infoItem:nth-last-child(1) {
|
|
background: linear-gradient(
|
|
to bottom,
|
|
#c7f3e3 0%,
|
|
rgba(199, 243, 227, 0.2) 100%
|
|
);
|
|
}
|
|
}
|
|
.info_right {
|
|
// width: 800px;
|
|
width: 70%;
|
|
// height: 600px;
|
|
// border: 1px solid red;
|
|
& > img {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|
|
|