From 5e3f064530fe71987e2a5920fe59967ef348cbd7 Mon Sep 17 00:00:00 2001 From: WXL (wul) <wl_5969728@163.com> Date: 星期二, 19 八月 2025 14:14:28 +0800 Subject: [PATCH] 统计页面展示优化 --- src/views/index.vue | 640 ++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 404 insertions(+), 236 deletions(-) diff --git a/src/views/index.vue b/src/views/index.vue index 2fe2587..ac2876e 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -7,49 +7,48 @@ <!-- 灏辫瘖缁熻鐩掑瓙 --> <div class="grid-content bg-purple headerBox bgc1"> <div class="title"> - 鎮h�呯粺璁�<span + 闂ㄨ瘖鏈嶅姟<span style=" font-size: 25px; font-weight: 600; text-shadow: 2px 4px 7px rgb(85 132 255 / 50%); color: black; " - >12322 (浜�)</span - > + ></span> <span>{{ endatd }} ~ {{ statd }}</span> </div> <el-row :gutter="20"> - <el-col :span="8"> + <el-col :span="10"> <div class="home-user-task-stats"> - <p>{{ 11231 }}</p> + <p>{{ OutpatientData.rc }}</p> <div class="text-color2"> - <p>闂ㄨ瘖鎬绘暟锛堜汉锛�</p> + <p>闂ㄨ瘖灏辫瘖閲忥紙浜烘锛�</p> </div> </div> </el-col> - <el-col :span="7"> + <el-col :span="10"> <div class="home-user-task-stats"> - <p>{{ 9207 }}</p> + <p>{{ OutpatientData.rs }}</p> <div class="text-color2"> - <p>浣忛櫌鎬绘暟锛堜汉锛�</p> + <p>闂ㄨ瘖鏈嶅姟閲忥紙浜烘锛�</p> </div> </div> </el-col> - <el-col :span="7"> + <!-- <el-col :span="7"> <div class="home-user-task-stats"> <p>{{ 1209 }}</p> <div class="text-color2"> <p>浣撴鎬绘暟锛堜汉锛�</p> </div> </div> - </el-col> + </el-col> --> </el-row> </div> </el-col> <el-col :span="9"> <div class="grid-content bg-purple headerBox bgc2"> <div class="title"> - 闂ㄨ瘖鏈嶅姟鎬绘暟 + 鍑洪櫌鏈嶅姟 <span style=" font-size: 25px; @@ -57,24 +56,23 @@ font-weight: 600; color: red; " - >12322 (浜�)</span - > + ></span> <span>{{ endatd }} ~ {{ statd }}</span> </div> <el-row :gutter="20"> - <el-col :span="12"> + <el-col :span="10"> <div class="home-user-task-stats"> - <p style="color: red">{{ 3453 }}</p> + <p style="color: red">{{ DischargeData.rc }}</p> </div> <div class="text-color2"> - <p>浣忛櫌鏈嶅姟浜烘暟</p> + <p>鍑洪櫌灏辫瘖閲忥紙浜烘锛�</p> </div> </el-col> - <el-col :span="12"> + <el-col :span="10"> <div class="home-user-task-stats"> - <p style="color: red">{{ 4213 }}</p> + <p style="color: red">{{ DischargeData.rs }}</p> <div class="text-color2"> - <p>浣撴鏈嶅姟浜烘暟</p> + <p>鍑洪櫌鏈嶅姟閲忥紙浜烘锛�</p> </div> </div> </el-col> @@ -88,7 +86,7 @@ <!-- echars鏁版嵁鍙鍖� --> <div class="grid-content bg-purple" style="min-height: 365px"> <div class="title"> - 灏辫瘖缁熻 + 鏈嶅姟缁熻 <span>{{ endatd }} ~ {{ statd }}</span> <el-radio-group v-model="radio1" @@ -96,32 +94,52 @@ style="margin-left: 390px" @change="changes" > - <el-radio-button label="鍛�" @click="dyat = 7"></el-radio-button> <el-radio-button - label="鏈�" - @click="dyat = 30" + label="杩戜竴鍛�" + @click="dyat = 7" ></el-radio-button> <el-radio-button - label="骞�" - @click="dyat = 360" + label="杩戜竴鏈�" + @click="dyat = 31" ></el-radio-button> + <el-radio-button + label="杩戜竴骞�" + @click="dyat = 365" + ></el-radio-button> + <el-radio-button label="鑷畾涔�"> + <el-date-picker + v-if="radio1 === '鑷畾涔�'" + v-model="customDateRange" + type="daterange" + range-separator="鑷�" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + value-format="yyyy-MM-dd" + @change="handleCustomDateChange" + ></el-date-picker> + </el-radio-button> </el-radio-group> </div> - <!-- 涓棿echars --> + <!-- 涓儴绾挎�ф煴鐘跺浘 --> <div class="boxEchars"> <div class="echars1" id="echars"></div> </div> </div> </el-col> - <!-- 涓棿鍜屽彸杈� --> + <!-- 鍙宠竟鍒楄〃 --> <el-col :span="4" class="aside"> - <div class="grid-content bg-purple" style="margin-top: -180px"> + <div class="grid-contentsa bg-purple" style="margin-top: -180px"> <div class="title"> - 鍋ュ悍瀹f暀 + 绉戝鏈嶅姟閲� <span>{{ endatd }} ~ {{ statd }}</span> </div> - <div style="max-height: 690px; width: 100%; overflow: auto"> - <el-table style="width: 100%" :data="SkuTop"> + <div class="dept-table-container"> + <el-table + v-if="SkuTop.length > 0" + style="width: 100%" + :data="SkuTop" + :height="tableHeight" + > <template v-for="(item, index) in SkuTop"></template> <el-table-column prop="order" @@ -130,35 +148,36 @@ type="index" ></el-table-column> <el-table-column - prop="skuName" - width="88" + prop="deptname" + width="120" class-name="name" ></el-table-column> - <el-table-column prop="count" class-name="count"> - <template slot-scope="scope"> - {{ scope.row.count }}娆� - </template> + + <el-table-column prop="rc" class-name="rc"> + <template slot-scope="scope"> {{ scope.row.rc }}娆� </template> </el-table-column> </el-table> + <div v-else class="empty-tip"> + <el-empty description="鏆傛棤绉戝鏈嶅姟鏁版嵁"></el-empty> + </div> </div> </div> </el-col> </el-row> <!-- 搴曢儴涓�涓� --> <el-row :gutter="20" style="margin-bottom: 20px"> - <el-col :span="15"> + <!-- <el-col :span="24"> <div class="grid-content bg-purple" style="min-height: 300px"> <div class="title"> 瀹f暀缁熻 <span class="el-icon-s-unfold moreIcon"></span> </div> <div class="cooperate"> - <!-- 鍚堜綔鍖哄煙 --> <div class="pieChart" id="pieCharts"></div> </div> </div> - </el-col> - <el-col :span="9"> + </el-col> --> + <!-- <el-col :span="9"> <div class="grid-content bg-purple" style="min-height: 300px"> <div class="title"> 鍚勯」鏈嶅姟缁熻 @@ -167,7 +186,7 @@ <div class="empenty"> <el-row> <el-col :span="3" - ><div class="grid-contents bg-purples" >鍑洪櫌锛�</div></el-col + ><div class="grid-contents bg-purples">鍑洪櫌锛�</div></el-col > <el-col :span="7"> <div style="display: flex"> @@ -187,13 +206,13 @@ <div class="subtitle">澶嶈瘖閫氱煡</div> <div class="grid-contents bg-purple-light">0娆�</div> </div> - </el-col> </el-row - > + </el-col> + </el-row> <el-row> <el-col :span="3" - ><div class="grid-contents bg-purples" ></div></el-col - > - <el-col :span="7" > + ><div class="grid-contents bg-purples"></div + ></el-col> + <el-col :span="7"> <div style="display: flex"> <div class="subtitle">鍑洪櫌璇勪及</div> <div class="grid-contents bg-purple-light">0娆�</div> @@ -212,16 +231,15 @@ <div class="grid-contents bg-purple-light">0娆�</div> </div> </el-col> - </el-row - > + </el-row> <el-row> <el-col :span="3" - ><div class="grid-contents bg-purples" >闂ㄨ瘖锛�</div></el-col + ><div class="grid-contents bg-purples">闂ㄨ瘖锛�</div></el-col > <el-col :span="7"> <div style="display: flex"> - <div class="subtitle">闂ㄨ瘖闅忚</div> + <div class="subtitle">褰卞儚闅忚</div> <div class="grid-contents bg-purple-light">0娆�</div> </div> </el-col> @@ -237,71 +255,66 @@ <div class="subtitle">澶嶈瘖閫氱煡</div> <div class="grid-contents bg-purple-light">0娆�</div> </div> - </el-col> </el-row - > + </el-col> + </el-row> <el-row> <el-col :span="3" - ><div class="grid-contents bg-purples" ></div></el-col - > + ><div class="grid-contents bg-purples"></div + ></el-col> <el-col :span="7"> <div style="display: flex"> - <div class="subtitle">鍑洪櫌闅忚</div> + <div class="subtitle">婊℃剰搴﹁皟鏌�</div> <div class="grid-contents bg-purple-light">0娆�</div> </div> </el-col> <el-col :span="7"> <div style="display: flex"> - <div class="subtitle">鍑洪櫌瀹f暀</div> + <div class="subtitle">鍏朵粬閫氱煡</div> + <div class="grid-contents bg-purple-light">0娆�</div> + </div> + </el-col> + </el-row> + <el-row> + <el-col :span="3" + ><div class="grid-contents bg-purples">鍦ㄩ櫌锛�</div></el-col + > + <el-col :span="7"> + <div style="display: flex"> + <div class="subtitle">鍦ㄩ櫌瀹f暀</div> + <div class="grid-contents bg-purple-light">0娆�</div> + </div> + </el-col> + <el-col :span="7"> + <div style="display: flex"> + <div class="subtitle">鍦ㄩ櫌璇勪及</div> <div class="grid-contents bg-purple-light">0娆�</div> </div> </el-col> <el-col :span="7"> <div style="display: flex"> - <div class="subtitle">澶嶈瘖閫氱煡</div> - <div class="grid-contents bg-purple-light">0娆�</div> - </div> - </el-col> </el-row - > - <el-row> - <el-col :span="3" - ><div class="grid-contents bg-purples" >鍦ㄩ櫌锛�</div></el-col - > - <el-col :span="7"> - <div style="display: flex"> - <div class="subtitle">鍑洪櫌闅忚</div> + <div class="subtitle">鍏朵粬閫氱煡</div> <div class="grid-contents bg-purple-light">0娆�</div> </div> </el-col> - <el-col :span="7"> - <div style="display: flex"> - <div class="subtitle">鍑洪櫌瀹f暀</div> - <div class="grid-contents bg-purple-light">0娆�</div> - </div> - </el-col> - - <el-col :span="7"> - <div style="display: flex"> - <div class="subtitle">澶嶈瘖閫氱煡</div> - <div class="grid-contents bg-purple-light">0娆�</div> - </div> - </el-col> </el-row - > + </el-row> </div> </div> - </el-col> + </el-col> --> </el-row> </div> </div> </template> <script> -// import { -// getUserWork, -// getregionCollect, -// getregionOrderCount, - -// } from "@/api/home"; +import { + getEChartsPatMedOuthospCount, + getechartsListCountdata, + getechartsMedOuthospList, + getechartsMedInhospList, + getServiceStatistics, + getDeptRanking, +} from "@/api/AiCentre/index"; import dayjs from "dayjs"; export default { @@ -315,8 +328,21 @@ mypPieCharts: null, lastWidth: window.innerWidth, lastHeight: window.innerHeight, - radio1: "鍛�", + radio1: "杩戜竴骞�", ticketStatistics: {}, + timeTypeMap: { + 鍛�: "day", + 鏈�: "month", + 骞�: "year", + }, + DischargeData: { + rs: "", + rc: "", + }, + OutpatientData: { + rs: "", + rc: "", + }, order: "", Count: "", datatni: [], @@ -326,7 +352,8 @@ SkuTop: [], cylinderSeries: [], cylinderXAxis: [], - dyat: 30, + customDateRange: [], // 鑷畾涔夋棩鏈熻寖鍥� + dyat: 365, intervalId: null, }; }, @@ -340,20 +367,34 @@ return dayjs().subtract(this.dyat, "day").format("YYYY-MM-DD HH:mm:ss"); }, statd() { + if (this.radio1 === "鑷畾涔�" && this.customDateRange.length > 0) { + return this.customDateRange[1]; + } return dayjs().format("YYYY-MM-DD"); }, endatd() { + if (this.radio1 === "鑷畾涔�" && this.customDateRange.length > 0) { + return this.customDateRange[0]; + } return dayjs().subtract(this.dyat, "day").format("YYYY-MM-DD"); + }, + tableHeight() { + // 鏍规嵁鏁版嵁閲忓姩鎬佽绠楅珮搴� + const rowHeight = 40; // 姣忚澶х害楂樺害 + const headerHeight = 40; // 琛ㄥご楂樺害 + const minHeight = 500; // 鏈�灏忛珮搴� + const maxHeight = 600; // 鏈�澶ч珮搴� + + const calculatedHeight = this.SkuTop.length * rowHeight + headerHeight; + return Math.min(Math.max(calculatedHeight, minHeight), maxHeight); }, }, created() { + this.getTopdata(); + this.getgraphdata(); + // this.getranking(); this.$nextTick(function () { - this.getregionAmountCollect(); - this.getUserWorks(); - this.getregionCollect(); - this.getregionOrderCount(); - this.getNodeCount(); - this.getPrtnerCount(); + this.myEcharts2(); this.getnodeCollect(); this.getSkuTop(); }); @@ -370,100 +411,272 @@ methods: { // 鏀瑰彉鏃堕棿浜嬩欢 changes() { - if (this.radio1 == "鍛�") { - this.dyat = 7; - } else if (this.radio1 == "鏈�") { - this.dyat = 30; - } else { - this.dyat = 360; + switch (this.radio1) { + case "杩戜竴鍛�": + this.dyat = 7; + break; + case "杩戜竴鏈�": + this.dyat = 30; + break; + case "杩戜竴骞�": + this.dyat = 365; + break; + case "鑷畾涔�": + // 鑷畾涔夋棩鏈熷鐞嗗湪handleCustomDateChange鏂规硶涓� + return; } - this.getregionAmountCollect(); - this.getUserWorks(); - this.getregionCollect(); - this.getregionOrderCount(); - this.getNodeCount(); - this.getPrtnerCount(); + this.refreshData(); + }, + + // 澶勭悊鑷畾涔夋棩鏈熷彉鍖� + handleCustomDateChange(range) { + if (!range || range.length !== 2) return; + + this.customDateRange = range; + this.refreshData(); + }, + + // 缁熶竴鍒锋柊鏁版嵁鐨勬柟娉� + refreshData() { + this.getgraphdata(); + // this.getranking(); + this.getTopdata(); + this.myEcharts2(); this.getnodeCollect(); this.getSkuTop(); }, - // 鑾峰彇鐐逛綅鎬绘暟 - async getNodeCount() { - // const res = await getNodeCount(); - // this.NodeCount = res.data; - }, - // 鑾峰彇鍚堜綔鍟嗘�绘暟 - async getPrtnerCount() { - // const res = await getPrtnerCount(); - // this.PrtnerCount = res.data; - }, // 鍚堜綔鍟嗙偣浣嶆眹鎬荤粺璁¢ゼ鐘跺浘 async getnodeCollect() { // const res = await getnodeCollect(); // this.nodeCollect = res.data; this.nodeCollect = [ - { name: "闂ㄨ瘖闅忚", value: 1232 }, + { name: "褰卞儚闅忚", value: 1232 }, { name: "鍑洪櫌闅忚", value: 342 }, ]; this.myPieChart(); }, // top鎺掕 async getSkuTop() { - // const res = await getSkuTop(10, this.endatd, this.statd); - // this.SkuTop = res.data; - this.SkuTop = [ - { amount: 0, count: 123, skuId: "0", skuName: "蹇冭偤绉�" }, - { amount: 0, count: 122, skuId: "0", skuName: "鑲捐剰绉�" }, - { amount: 0, count: 112, skuId: "0", skuName: "娉屽翱绉�" }, - { amount: 0, count: 111, skuId: "0", skuName: "鐢风" }, - { amount: 0, count: 102, skuId: "0", skuName: "濡囦骇绉�" }, - { amount: 0, count: 98, skuId: "0", skuName: "澶栫" }, - { amount: 0, count: 89, skuId: "0", skuName: "鎬ヨ瘖" }, - { amount: 0, count: 88, skuId: "0", skuName: "鍣ㄦ绉�" }, - { amount: 0, count: 87, skuId: "0", skuName: "楠ㄧ" }, - { amount: 0, count: 67, skuId: "0", skuName: "鏀惧皠绉�" }, - { amount: 0, count: 89, skuId: "0", skuName: "鎬ヨ瘖" }, - { amount: 0, count: 88, skuId: "0", skuName: "鍣ㄦ绉�" }, - { amount: 0, count: 87, skuId: "0", skuName: "楠ㄧ" }, - { amount: 0, count: 67, skuId: "0", skuName: "鏀惧皠绉�" }, - ]; + let Rankingdata = { + startDate: this.endatd, + endDate: this.statd, + cy: 1, + }; + await getDeptRanking(Rankingdata).then((res) => { + if (res.code == 200) { + this.SkuTop = res.rows.sort((a, b) => b.rc - a.rc); + console.log(this.SkuTop, "this.SkuTop"); + } + }); + + // this.SkuTop = [ + // { amount: 0, count: 123, skuId: "0", skuName: "蹇冭偤绉�" }, + // { amount: 0, count: 122, skuId: "0", skuName: "鑲捐剰绉�" }, + // { amount: 0, count: 112, skuId: "0", skuName: "娉屽翱绉�" }, + // { amount: 0, count: 111, skuId: "0", skuName: "鐢风" }, + // { amount: 0, count: 102, skuId: "0", skuName: "濡囦骇绉�" }, + // { amount: 0, count: 98, skuId: "0", skuName: "澶栫" }, + // { amount: 0, count: 89, skuId: "0", skuName: "鎬ヨ瘖" }, + // { amount: 0, count: 88, skuId: "0", skuName: "鍣ㄦ绉�" }, + // { amount: 0, count: 87, skuId: "0", skuName: "楠ㄧ" }, + // { amount: 0, count: 67, skuId: "0", skuName: "鏀惧皠绉�" }, + // { amount: 0, count: 89, skuId: "0", skuName: "鎬ヨ瘖" }, + // { amount: 0, count: 88, skuId: "0", skuName: "鍣ㄦ绉�" }, + // { amount: 0, count: 87, skuId: "0", skuName: "楠ㄧ" }, + // { amount: 0, count: 67, skuId: "0", skuName: "鏀惧皠绉�1" }, + // { amount: 0, count: 67, skuId: "0", skuName: "鏀惧皠绉�2" }, + // ]; }, - // 鑾峰彇宸ュ崟鏁伴噺 - async getUserWorks() { - // const res = await getUserWork(this.atd, this.td); - // this.ticketStatistics = res.data[0]; + // 鑾峰彇澶撮儴鏁版嵁 + getTopdata() { + let hospCountdata = { + startDate: this.endatd, + endDate: this.statd, + cy: 1, + }; + let Countdata = { + startDate: this.endatd, + endDate: this.statd, + cy: 1, + }; + // 鏌ヨ闂ㄨ瘖鐪嬬梾浜烘鍜屼汉鏁� + getEChartsPatMedOuthospCount(hospCountdata).then((res) => { + if (res.code == 200) { + this.OutpatientData = res.data; + } + }); + // 鏌ヨ鍑恒�佸叆闄㈢湅鐥呬汉娆″拰浜烘暟 + getechartsListCountdata(Countdata).then((res) => { + if (res.code == 200) { + this.DischargeData = res.data; + } + }); }, - // 鑾峰彇灏辫瘖鏁伴噺 - async getregionOrderCount() { - // const res = await getregionOrderCount({ - // start: this.atd, - // end: this.td, - // }); - // this.order = res.data; - }, - // 鑾峰彇鎬婚噺鏁伴噺 - async getregionCollect() { - // const res = await getregionCollect({ - // start: this.atd, - // end: this.td, - // }); - // this.Count = (res.data / 1000000).toFixed(2); + // 鑾峰彇涓儴绾挎煴鍥炬暟鎹� + getranking() {}, + + async getgraphdata() { + let params = { + startDate: this.endatd, + endDate: this.statd, + timeType: this.getTimeType(), + }; + + try { + const res = await getServiceStatistics(params); + if (res.code === 200) { + this.processChartData(res.data); + } + } catch (error) { + console.error("鑾峰彇鍥捐〃鏁版嵁澶辫触:", error); + } }, + // 鑾峰彇鏃堕棿绫诲瀷 + getTimeType() { + if (this.radio1 === "杩戜竴鍛�" || this.radio1 === "杩戜竴鏈�") { + return "day"; + } + + if (this.radio1 === "杩戜竴骞�") { + return "month"; + } + + // 鑷畾涔夋棩鏈熻寖鍥� + if (this.radio1 === "鑷畾涔�" && this.customDateRange.length === 2) { + const start = dayjs(this.customDateRange[0]); + const end = dayjs(this.customDateRange[1]); + const diffDays = end.diff(start, "day"); + + return diffDays > 60 ? "month" : "day"; + } + + return "day"; // 榛樿杩斿洖day绫诲瀷 + }, + processChartData(data) { + // 鎸夋椂闂存帓搴忕‘淇濇暟鎹『搴忔纭� + const sortedData = [...data].sort( + (a, b) => new Date(a.timePeriod) - new Date(b.timePeriod) + ); + + const xAxisData = []; + const dischargeFollowData = []; + const outpatientFollowData = []; + const pmiData = []; + const pmoData = []; + + sortedData.forEach((item) => { + // 鏍规嵁鏃堕棿绫诲瀷鏍煎紡鍖栨樉绀� + const timeType = this.getTimeType(); + const timeLabel = + timeType === "day" + ? dayjs(item.timePeriod).format("MM-DD") + : dayjs(item.timePeriod).format("YYYY-MM"); + + xAxisData.push(timeLabel); + dischargeFollowData.push(item.dischargeFollowCount); + outpatientFollowData.push(item.outpatientFollowCount); + pmiData.push(item.pmiCount); + pmoData.push(item.pmoCount); + }); + + // 鏇存柊鍥捐〃 + this.updateChart( + xAxisData, + dischargeFollowData, + outpatientFollowData, + pmiData, + pmoData + ); + }, + updateChart( + xAxisData, + dischargeFollowData, + outpatientFollowData, + pmiData, + pmoData + ) { + if (!this.myChart2) { + this.myEcharts2(); + return; + } + + // 璁$畻闅忚閲忕殑鏈�澶у�� + const maxFollow = Math.max( + ...dischargeFollowData, + ...outpatientFollowData + ); + // 璁$畻鏈嶅姟浜烘鐨勬渶澶у�� + const maxService = Math.max(...pmiData, ...pmoData); + + // 鍔ㄦ�佽绠梚nterval鍊� + const followInterval = this.calculateOptimalInterval(maxFollow); + const serviceInterval = this.calculateOptimalInterval(maxService); + + const option = { + xAxis: { + data: xAxisData, + }, + yAxis: [ + { + interval: followInterval, + max: Math.ceil(maxFollow / followInterval) * followInterval, + }, + { + interval: serviceInterval, + max: Math.ceil(maxService / serviceInterval) * serviceInterval, + }, + ], + series: [ + { data: dischargeFollowData }, + { data: outpatientFollowData }, + { data: pmiData }, + { data: pmoData }, + ], + }; + + this.myChart2.setOption(option); + }, + + // 璁$畻鏈�浼樼殑interval鍊� + calculateOptimalInterval(maxValue) { + if (maxValue <= 0) return 50; // 榛樿鍊� + + // 鏍规嵁鏈�澶у�艰绠楀悎閫傜殑闂撮殧 + const magnitude = Math.pow(10, Math.floor(Math.log10(maxValue))); + const stepRatio = maxValue / magnitude; + + let interval; + if (stepRatio > 5) { + interval = magnitude; + } else if (stepRatio > 2) { + interval = magnitude / 2; + } else { + interval = magnitude / 5; + } + + // 纭繚interval鏄暣鏁� + interval = Math.round(interval); + + // 闄愬埗鏈�灏忛棿闅� + return Math.max(interval, 50); + }, // 鑾峰彇绾跨姸鍥炬椂闂� async getregionAmountCollect() { - // const res = await getregionAmountCollect(1, this.endatd, this.statd); + //getregionAmountCollect(1, this.endatd, this.statd); // this.xAxis = res.data.xAxis; // this.series = res.data.series; this.xAxis = ["1鏈�", "2鏈�", "3鏈�", "4鏈�", "5鏈�", "6鏈�", "7鏈�", "8鏈�"]; this.series = [123, 123, 223, 212, 432, 123, 442, 234]; this.myEcharts2(); }, - // 绾挎�у浘 + // 绾挎�у浘鍙婃煴鐘跺浘 myEcharts2() { var echarts = require("echarts"); var myChart2 = echarts.init(document.getElementById("echars")); this.myChart2 = myChart2; + var option2 = { tooltip: { trigger: "axis", @@ -483,30 +696,12 @@ }, }, legend: { - data: [ - "鍑洪櫌闅忚閲�", - "闂ㄨ瘖闅忚閲�", - "鍦ㄩ櫌闅忚閲�", - "闂ㄨ瘖澶嶈瘖閫氱煡", - "鍑洪櫌澶嶈瘖閫氱煡", - "鍦ㄩ櫌璇勪及閲�", - ], + data: ["鍑洪櫌鏈嶅姟閲�", "闂ㄨ瘖鏈嶅姟閲�", "鍑洪櫌灏辫瘖浜烘", "闂ㄨ瘖灏辫瘖浜烘"], }, xAxis: [ { type: "category", - data: [ - "涓�鏈�", - "浜屾湀", - "涓夋湀", - "鍥涙湀", - "浜旀湀", - "鍏湀", - "涓冩湀", - "鍏湀", - "涔濇湀", - "鍗佹湀", - ], + data: [], // 鍒濆涓虹┖锛屽皢閫氳繃API鏁版嵁濉厖 axisPointer: { type: "shadow", }, @@ -517,18 +712,14 @@ type: "value", name: "闅忚閲�", min: 0, - max: 250, - interval: 50, axisLabel: { formatter: "{value} 浜�", }, }, { type: "value", - name: "澶嶈瘖/璇勪及娆℃暟", + name: "鏈嶅姟浜烘", min: 0, - max: 250, - interval: 50, axisLabel: { formatter: "{value} 娆�", }, @@ -537,38 +728,27 @@ grid: { top: "35%" }, series: [ { - name: "鍑洪櫌闅忚閲�", + name: "鍑洪櫌鏈嶅姟閲�", type: "bar", tooltip: { valueFormatter: function (value) { return value + " 浜�"; }, }, - data: [120, 150, 165, 90, 140, 200, 130, 85, 175, 95, 110, 160], + data: [], // 鍒濆涓虹┖锛屽皢閫氳繃API鏁版嵁濉厖 }, { - name: "闂ㄨ瘖闅忚閲�", + name: "闂ㄨ瘖鏈嶅姟閲�", type: "bar", tooltip: { valueFormatter: function (value) { return value + " 浜�"; }, }, - data: [102, 190, 135, 88, 175, 160, 83, 145, 200, 110, 97, 180], + data: [], // 鍒濆涓虹┖锛屽皢閫氳繃API鏁版嵁濉厖 }, { - name: "鍦ㄩ櫌闅忚閲�", - type: "bar", - tooltip: { - valueFormatter: function (value) { - return value + " 浜�"; - }, - }, - data: [145, 92, 178, 134, 167, 85, 199, 112, 156, 88, 120, 145], - }, - - { - name: "鍑洪櫌澶嶈瘖閫氱煡", + name: "鍑洪櫌灏辫瘖浜烘", type: "line", smooth: 0.3, yAxisIndex: 1, @@ -577,10 +757,10 @@ return value + " 娆�"; }, }, - data: [45, 123, 78, 156, 89, 34, 199, 112, 67, 145, 88, 175], + data: [], // 鍒濆涓虹┖锛屽皢閫氳繃API鏁版嵁濉厖 }, { - name: "闂ㄨ瘖澶嶈瘖閫氱煡", + name: "闂ㄨ瘖灏辫瘖浜烘", type: "line", smooth: 0.3, yAxisIndex: 1, @@ -589,41 +769,15 @@ return value + " 娆�"; }, }, - data: [102, 190, 135, 88, 175, 160, 83, 145, 200, 110, 97, 180], - }, - { - name: "鍦ㄩ櫌璇勪及閲�", - type: "line", - smooth: 0.3, - yAxisIndex: 1, - tooltip: { - valueFormatter: function (value) { - return value + " 娆�"; - }, - }, - data: [120, 150, 165, 90, 140, 200, 130, 85, 175, 95, 110, 160], + data: [], // 鍒濆涓虹┖锛屽皢閫氳繃API鏁版嵁濉厖 }, ], }; - myChart2.on("updateAxisPointer", function (event) { - const xAxisInfo = event.axesInfo[0]; - if (xAxisInfo) { - const dimension = xAxisInfo.value + 1; - myChart2.setOption({ - series: { - id: "pie", - label: { - formatter: "{b}: {@[" + dimension + "]} ", - }, - encode: { - value: dimension, - tooltip: dimension, - }, - }, - }); - } - }); + myChart2.setOption(option2); + + // 鍒濆鍔犺浇鏁版嵁 + this.getgraphdata(); }, // 楗肩姸鍥� myPieChart() { @@ -755,6 +909,12 @@ .echars1 { flex: 1; } +} +.dept-table-container { + flex: 1; + display: flex; + flex-direction: column; + min-height: 0; /* 閲嶈锛氬厑璁稿唴瀹规敹缂� */ } ::v-deep .el-table { td:first-child { @@ -1003,7 +1163,7 @@ line-height: 36px; width: 6vw; } -.subtitle{ +.subtitle { text-align: center; align-items: center; } @@ -1011,7 +1171,15 @@ min-height: 36px; border-radius: 20px; padding: 0 10px; + text-align: center; } +.grid-contentsa { + min-height: 600px; + border-radius: 20px; + padding: 0 10px; + text-align: center; +} + .grid-contents { min-height: 36px; border-radius: 20px; -- Gitblit v1.9.3