From b4fa6fafc2db40fba48676e38f4340ce14e99179 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 17 三月 2025 11:51:34 +0800
Subject: [PATCH] Merge branch 'dev'
---
src/views/index.vue | 325 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 281 insertions(+), 44 deletions(-)
diff --git a/src/views/index.vue b/src/views/index.vue
index 614cabe..00052f0 100644
--- a/src/views/index.vue
+++ b/src/views/index.vue
@@ -65,54 +65,160 @@
</el-form>
</div>
</div>
+
<!-- 缁熻鎯呭喌 -->
<ProjectOverview
:calculation="calculation"
:countExceptionProjectData="countExceptionProjectData"
/>
</div>
- <!-- 浠e姙浜嬮」 -->
+<!-- <el-card>-->
+<!-- <div style="display: flex;min-height: 300px">-->
+<!-- <div style="flex: 2;display: flex;flex-direction: column; justify-content: center;align-items: flex-start">-->
+<!-- <div class="flex justify-between mb-[15px]" style="align-items: center;margin-bottom: 5px">-->
+<!-- <div class="block mb-3 font-semibold fonts">娴佺▼鎺ㄨ繘鎯呭喌鎬昏</div>-->
+<!-- </div>-->
+<!-- <el-table-->
+<!-- :data="projectProcessData"-->
+<!-- :header-cell-style="{-->
+<!-- background: '#F5F7FC',-->
+<!-- color: '#454B5E',-->
+<!-- fontSize: '12px'-->
+<!-- }"-->
+<!-- min-height="280"-->
+<!-- max-height="280"-->
+<!-- >-->
+<!-- <el-table-column-->
+<!-- label="椤圭洰鍚嶇О"-->
+<!-- prop="name"-->
+<!-- :show-overflow-tooltip="true"-->
+<!-- >-->
+<!-- </el-table-column>-->
+<!-- <el-table-column-->
+<!-- label="褰撳墠/鎬昏"-->
+<!-- width="100px"-->
+<!-- prop="num"-->
+<!-- >-->
+<!-- </el-table-column>-->
+<!-- </el-table>-->
+<!-- </div>-->
+<!-- <div style="flex: 1.5;display: flex;justify-content: center;align-items: center">-->
+<!-- <div ref="pie" style="width: 85%; height: 100%;"></div>-->
+<!-- </div>-->
+<!-- <div style="flex: 2;display: flex;flex-direction: column; justify-content: center;align-items: flex-start">-->
+<!-- <div style="display: flex;align-items: center;margin-bottom: 5px;width: 100%">-->
+<!-- <div class="block font-semibold fonts" style="width: 100%">-->
+<!-- <div style="display: flex; font-size: 12px; justify-content: flex-end;width: 100%">-->
+<!-- <div-->
+<!-- :class="{ active: true }"-->
+<!-- class="tab"-->
+<!-- >-->
+<!-- 鍑嗘椂鐜�-->
+<!-- </div>-->
+<!-- <div-->
+<!-- :class="{ active: false }"-->
+<!-- class="tab"-->
+<!-- >-->
+<!-- 寮傚父鐜�-->
+<!-- </div>-->
+<!-- <div-->
+<!-- :class="{ active: false }"-->
+<!-- class="tab"-->
+<!-- >-->
+<!-- 鍔炵粨鐜�-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <el-table-->
+<!-- :data="projectProcessData1"-->
+<!-- :header-cell-style="{-->
+<!-- background: '#F5F7FC',-->
+<!-- color: '#454B5E',-->
+<!-- fontSize: '12px'-->
+<!-- }"-->
+<!-- min-height="280"-->
+<!-- max-height="280"-->
+<!-- >-->
+<!-- <el-table-column-->
+<!-- label="鍙戝竷鍗曚綅"-->
+<!-- width="150"-->
+<!-- prop="name"-->
+<!-- >-->
+<!-- </el-table-column>-->
+<!-- <el-table-column-->
+<!-- label="鍐呭"-->
+<!-- prop="content"-->
+<!-- width="250"-->
+<!-- :show-overflow-tooltip="true"-->
+<!-- >-->
+<!-- </el-table-column>-->
+<!-- <el-table-column-->
+<!-- label="鏃堕棿"-->
+<!-- prop="time"-->
+<!-- >-->
+<!-- </el-table-column>-->
+<!-- <el-table-column-->
+<!-- fixed="right"-->
+<!-- align="center"-->
+<!-- label="鎿嶄綔"-->
+<!-- >-->
+<!-- <template slot-scope="scope">-->
+<!-- <el-button type="text" size="small">鏌ョ湅</el-button>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+<!-- </el-table>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </el-card>-->
+
+ <!-- 寰呭姙浜嬮」 -->
<div class="flex">
<div class="flex_card">
<el-card>
- <NoticeTable style="height: 360px" />
+ <NoticeTable style="height: 340px" />
</el-card>
</div>
<!-- 娑堟伅閫氱煡 -->
<div class="flex_card">
<el-card>
- <TidingsTable style="height: 360px" />
+ <TidingsTable style="height: 340px" />
</el-card>
</div>
<!-- 鍦板浘 -->
</div>
- <div class="mt-[10px] min-w-[1600px]">
+ <div style="margin-top: 10px">
<el-card>
<div>
<div class="search-form">
- <el-form :model="searchForm" inline>
- <el-form-item label=" ">
+ <el-form :model="searchForm" inline size="small">
+ <el-form-item label="">
<el-input
v-model="searchForm.name"
clearable
placeholder="璇疯緭鍏ラ」鐩悕绉版垨椤圭洰浠g爜"
- style="width: 180px"
+ style="width: 240px"
/>
</el-form-item>
<el-form-item style="margin-right: 0px">
- <el-button icon="Search" type="primary" @click="searchList"
+ <el-button
+ clearable
+ @clear="searchList"
+ icon="Search"
+ type="primary"
+ @click="searchList"
>鎼滅储</el-button
>
<el-button icon="Refresh" @click="mapQuery">閲嶇疆</el-button>
</el-form-item>
</el-form>
</div>
- <div class="flex w-full h-[500px] border border-[#DBDEEA]">
+ <div class="map_div">
<Map
id="DangerSourceId"
ref="mapRef"
:is-show-control="true"
- :list-type="true"
+ :list-type="false"
:map-list="tableDatas"
:map-type="true"
class="w-full h-full border-r border-[#DBDEEA]"
@@ -133,31 +239,75 @@
import NoticeTable from "./components/noticeTable.vue";
import TidingsTable from "./components/tidingsTable.vue";
import Map from "./components/Map/index.vue";
+import { getCalculatioln, getAbnormalData } from "@/api/login";
+import { searchByKey } from "@/api/projectEngineering/projectInfo";
+import * as echarts from 'echarts';
+
export default {
name: "Index",
data() {
return {
+ pie: null,
+ pieData: {},
+ projectProcessData: [
+ // {
+ // name: '浜ら�氱被椤圭洰瀹℃壒娴佺▼(绠�鏄撶▼搴�)',
+ // num: '11/45'
+ // },
+ // {
+ // name: '浜ら�氱被椤圭洰瀹℃壒娴佺▼(涓�鑸啘鏉戝叕璺�)',
+ // num: '12/15'
+ // },
+ // {
+ // name: '浜ら�氱被椤圭洰瀹℃壒娴佺▼(閲嶈鍐滄潙鍏矾)',
+ // num: '16/30'
+ // },
+ // {
+ // name: '浜ら�氱被椤圭洰瀹℃壒娴佺▼(鍥界渷閬�)',
+ // num: '2/18'
+ // },
+ // {
+ // name: '绀句細鎶曡祫椤圭洰瀹℃壒娴佺▼',
+ // num: '9/16'
+ // },
+ ],
+ projectProcessData1: [
+ // {
+ // name: '灏勬椽甯備汉姘戞斂搴�',
+ // content: '灏勬椽缁忓紑鍖虹豢鐒跺垢绂忓皬鍖烘梺宸ュ湴闀挎湡澶滈棿',
+ // time: '2025-01-06'
+ // },
+ // {
+ // name: '灏勬椽甯備汉姘戞斂搴�',
+ // content: '鍏充簬鍝ㄦゼ鏉戞媶杩� 鏂规鍜� 鎷嗚縼鍗忚鐨勭枒闂�',
+ // time: '2025-01-02'
+ // },
+ // {
+ // name: '灏勬椽甯備汉姘戞斂搴�',
+ // content: '灏勬椽鏁存不涓�涓嬪煄鍖烘苯杞﹂殢鎰忎贡楦g瑳琛屼负',
+ // time: '2025-01-02'
+ // },
+ // {
+ // name: '灏勬椽甯備汉姘戞斂搴�',
+ // content: '缁村崱鍥介檯鍏寮�鍙戝晢鏈寜鏃跺姙鐞嗘埧浜ц瘉',
+ // time: '2025-01-01'
+ // }
+ ],
queryParams: {},
timeMerge: [],
sys_administrative_divisions: [],
- calculation: [],
countExceptionProjectData: {},
searchForm: {},
- tableDatas: [
- {
- name: "灏勬椽甯�",
- value: 105.37281,
- lat: 30.87145,
- lon: 105.37281,
- id: "222222222",
- },
- {
- name: "xxxx",
- value: 105.22332,
- lat: 31.52421,
- lon: 106.22332,
- id: "11112",
- },
+ tableDatas: [],
+ calculation: [
+ { text: "鍌�", mun: 0, statistics: "", statisticsMun: "0" },
+ { text: "寤�", mun: 0, statistics: "", statisticsMun: "0" },
+ { text: "鐪�", mun: 0, statistics: "", statisticsMun: "0" },
+ { text: "甯�", mun: 0, statistics: "", statisticsMun: "0" },
+ { text: "鏂�", mun: 0, statistics: "", statisticsMun: "0" },
+ { text: "绔�", mun: 0, statistics: "", statisticsMun: "0" },
+ { text: "鍘�", mun: 0, statistics: "", statisticsMun: "0" },
+ { text: "鏅�", mun: 0, statistics: "", statisticsMun: "0" },
],
};
},
@@ -168,7 +318,61 @@
TidingsTable,
Map,
},
+ mounted() {
+ this.$nextTick(() => {
+ this.pie = echarts.init(this.$refs.pie)
+ this.pie.setOption(this.getPieOption())
+ })
+
+ this.handleQuery();
+ this.searchList();
+ },
methods: {
+ getPieOption() {
+ return {
+ title: {
+ left: 'center'
+ },
+ tooltip: {
+ trigger: 'item',
+ formatter: '{a} <br/>{b}: {c} ({d}%)'
+ },
+ legend: {
+ orient: 'horizontal',
+ left: 'center',
+ bottom: 1,
+ data: ['瓒呮椂', '鍑嗘椂', '寤舵椂', '鐫e姙']
+ },
+ series: [
+ {
+ name: '楗煎浘鍚嶇О',
+ type: 'pie',
+ radius: ['50%', '70%'],
+ avoidLabelOverlap: false,
+ label: {
+ show: false,
+ position: 'center'
+ },
+ emphasis: {
+ label: {
+ show: true,
+ fontSize: '30',
+ fontWeight: 'bold'
+ }
+ },
+ labelLine: {
+ show: false
+ },
+ data: [
+ {value: 335, name: '瓒呮椂'},
+ {value: 310, name: '鍑嗘椂'},
+ {value: 234, name: '寤舵椂'},
+ {value: 135, name: '鐫e姙'},
+ ]
+ }
+ ]
+ }
+ },
dataPickerChange(val) {
if (!val) {
this.queryParams.startTime = "";
@@ -176,20 +380,19 @@
return;
}
- this.queryParams.startTime = timeMerge[0];
- this.queryParams.endTime = timeMerge[1];
+ this.queryParams.startTime = this.timeMerge[0];
+ this.queryParams.endTime = this.timeMerge[1];
},
handleQuery() {
- console.log(queryParams);
const obj = {
- startDate: queryParams.startTime,
- endDate: queryParams.endTime,
- areaCode: queryParams.area,
- minInvestment: queryParams.start,
- maxInvestment: queryParams.end,
+ startDate: this.queryParams.startTime,
+ endDate: this.queryParams.endTime,
+ areaCode: this.queryParams.area,
+ minInvestment: this.queryParams.start,
+ maxInvestment: this.queryParams.end,
};
- this.getCalculatioln(obj).then((res) => {
+ getCalculatioln(obj).then((res) => {
const arr = res.data.proPhaseCountVO?.concat(res.data.impTypeCountVO);
const newArr = arr.map((item) => ({
text: item.text,
@@ -197,7 +400,6 @@
statistics: item.type,
statisticsMun: item.amount,
}));
-
// 鍒涘缓涓�涓璞★紝浠ヤ究鏍规嵁 text 灞炴�у揩閫熸煡鎵� newArr 涓殑瀵硅薄
const newArrLookup = newArr.reduce((lookup, item) => {
lookup[item.text] = item;
@@ -205,15 +407,34 @@
}, {});
// 鏇存柊 calculation 鏁扮粍锛屼繚鎸佸叾鍘熷椤哄簭
- calculation.value = calculation.value.map((item) => {
+ this.calculation = this.calculation.map((item) => {
const newItem = newArrLookup[item.text];
return newItem ? newItem : item; // 濡傛灉 newItem 瀛樺湪锛屽垯杩斿洖 newItem锛屽惁鍒欒繑鍥炲師濮� item
});
});
- abnormalData(obj);
+ this.abnormalData(obj);
},
+ // 鍦板浘鎼滅储
+ searchList() {
+ var _this = this;
+ searchByKey({ wordKey: this.searchForm.name }).then((res) => {
+ if (res.code == 200) {
+ if (res.data.length > 0) {
+ // this.$refs["mapRef"].showProjectInfo(res.data);
+ // _this.tableDatas = res.data;
+ setTimeout(() => {
+ _this.$refs["mapRef"].makeAllMask(res.data);
+ }, 2000);
+ } else {
+ // _this.$message.error("鏈煡璇㈠埌瀵瑰簲椤圭洰");
+ }
+ } else {
+ _this.$message.error(res.msg);
+ }
+ });
+ },
// 鑾峰彇寮傚父鏁版嵁
async abnormalData(obj) {
const res = await getAbnormalData(obj);
@@ -244,12 +465,6 @@
};
this.timeMerge = [];
this.handleQuery();
- },
-
- // 鍦板浘鎼滅储
- async searchList() {
- // await search()
- this.mapRef.moveTo(105.37281, 30.87145);
},
mapQuery() {},
},
@@ -286,6 +501,9 @@
}
.search-form {
+ padding: 5px;
+ position: absolute;
+ z-index: 999;
display: flex;
justify-content: flex-end;
}
@@ -344,5 +562,24 @@
gap: 10px;
font-size: 12px;
}
+.map_div {
+ display: flex;
+ width: 100%;
+ height: 500px;
+ border: #dbdeea;
+}
+.tab {
+ padding: 6px;
+ border: 1px solid #dbdeea;
+ cursor: pointer;
+ width: 72px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.active {
+ border: 1px solid #3369ff;
+ color: #3369ff;
+}
</style>
--
Gitblit v1.8.0