From 2aba5be94bcbb03bb5ec13d121fe945c2f8dce38 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期二, 13 六月 2023 14:01:32 +0800 Subject: [PATCH] 发布管理,数据统计 --- src/views/datamanage/dataStatistics.vue | 301 ++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 228 insertions(+), 73 deletions(-) diff --git a/src/views/datamanage/dataStatistics.vue b/src/views/datamanage/dataStatistics.vue index bbf3498..852dc7b 100644 --- a/src/views/datamanage/dataStatistics.vue +++ b/src/views/datamanage/dataStatistics.vue @@ -1,5 +1,5 @@ <template> - <div class="dataStatistics"> + <div class="box_div dataStatistics"> <My-bread :list="[ `${$t('dataManage.dataManage')}`, `${$t('dataManage.dataStatistics')}`, @@ -25,28 +25,66 @@ style="border: 1px solid #dcdfe6;" > <div - class="iquery subpage_Div" + class=" subpage_Div iquery" style="padding-bottom: 14px" > <div> - <el-button - icon="el-icon-c-scale-to-original" - size="small" - type="warning" - @click="setCountFlagChange(1)" - >{{ $t("shuJuGuanLi.butten.Report") }}</el-button> - <el-button - icon="el-icon-pie-chart" - size="small" - type="primary" - @click="setCountFlagChange(2)" - >{{ $t("shuJuGuanLi.butten.Histogram") }}</el-button> - <el-button - icon="el-icon-download" - size="small" - type="success" - @click="setCountFlagChange(3)" - >{{ $t("shuJuGuanLi.butten.Download") }}</el-button> + + <el-form + :inline="true" + :model="tjlxData" + class="demo-form-inline" + > + <el-form-item + label="缁熻绫诲瀷" + v-show="!setCountFlag && tjlxData.flag" + > + <el-select + v-model="tjlxData.region" + size="small" + @change="setTjlxDataChange" + > + + <el-option + label="鏁版嵁瀛樺偍閲�" + value="sjccl" + > + </el-option> + <el-option + label="鏁版嵁鏉℃暟" + value="sjts" + > + + </el-option> + + </el-select> + </el-form-item> + <el-form-item> + <el-button + icon="el-icon-c-scale-to-original" + size="small" + type="warning" + @click="setCountFlagChange(1)" + >{{ $t("shuJuGuanLi.butten.Report") }}</el-button> + </el-form-item> + <el-form-item> + <el-button + icon="el-icon-pie-chart" + size="small" + type="primary" + @click="setCountFlagChange(2)" + >{{ $t("shuJuGuanLi.butten.Histogram") }}</el-button> + </el-form-item> + <el-form-item> + <el-button + icon="el-icon-download" + size="small" + type="success" + @click="setCountFlagChange(3)" + >{{ $t("shuJuGuanLi.butten.Download") }}</el-button> + </el-form-item> + </el-form> + </div> </div> <div class="dividing-line"></div> @@ -86,14 +124,21 @@ </el-table-column> <el-table-column v-if="queryData.value == 'countSizes'" - prop="count" + prop="sizes" key="4" align="center" :label="$t('dataManage.dataStaticObj.type4')" :formatter="formatterColumn" > </el-table-column> - + <el-table-column + v-if="queryData.value == 'countSizes'" + prop="count" + key="4" + align="center" + :label="$t('dataManage.dataStaticObj.type8')" + > + </el-table-column> <el-table-column v-if="queryData.value == 'countOperates'" prop="m1" @@ -110,27 +155,59 @@ :label="$t('dataManage.dataStaticObj.type7')" > </el-table-column> - - <!-- <el-table-column - v-if="queryData.value == 'countOperates'" - prop="m2" + <el-table-column + v-if="queryData.value == 'countSizesByType'" + prop="m1" + key="3" align="center" - :label="$t('dataManage.dataStaticObj.type6')" + :label="$t('common.fileType')" > - </el-table-column> --> + </el-table-column> + <el-table-column + v-if="queryData.value == 'countSizesByType'" + prop="sizes" + key="4" + align="center" + :label="$t('dataManage.dataStaticObj.type4')" + :formatter="formatterColumn" + > + </el-table-column> + <el-table-column + v-if="queryData.value == 'countSizesByType'" + prop="count" + key="4" + align="center" + :label="$t('dataManage.dataStaticObj.type8')" + > + </el-table-column> + + <el-table-column + v-if="queryData.value == 'countSizesByPrj'" + prop="m1" + key="3" + align="center" + :label="$t('dataManage.projectObj.projname')" + > + </el-table-column> + <el-table-column + v-if="queryData.value == 'countSizesByPrj'" + prop="sizes" + key="4" + align="center" + :label="$t('dataManage.dataStaticObj.type4')" + :formatter="formatterColumn" + > + </el-table-column> + <el-table-column + v-if="queryData.value == 'countSizesByPrj'" + prop="count" + key="4" + align="center" + :label="$t('dataManage.dataStaticObj.type8')" + > + </el-table-column> </el-table> - <!-- <div class="pagination_box"> - <el-pagination - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - :current-page="listData.pageIndex" - :page-sizes="[10, 20, 50, 100]" - :page-size="listData.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="listData.count" - > - </el-pagination> - </div> --> + </div> <div id="contentEchart subpage_Div" @@ -209,6 +286,8 @@ dataCount_selectCountServices, dataCount_selectCountSizes, dataCount_downloadReport, + dataCount_countSizesByType, + dataCount_countSizesByPrj } from "../../api/api.js"; export default { name: "DataStatistics", @@ -217,15 +296,19 @@ return { treeData: [ { - id: 1, - label: "鏈嶅姟璋冪敤閲忕粺璁�", - value: "countServices", + id: 5, + label: "椤圭洰缁熻鏁版嵁", + value: "countSizesByPrj", children: [], - }, - { + }, { id: 2, - label: "鏁版嵁閲忕粺璁�", + label: "鍗曚綅鏁版嵁缁熻", value: "countSizes", + children: [], + }, { + id: 4, + label: "鏁版嵁鏍煎紡缁熻", + value: "countSizesByType", children: [], }, { @@ -233,9 +316,18 @@ label: "鐢ㄦ埛娴侀噺缁熻", value: "countOperates", children: [], + }, { + id: 1, + label: "鏈嶅姟璋冪敤閲忕粺璁�", + value: "countServices", + children: [], }, - ], + ], + tjlxData: { + region: 'sjccl', + flag: false, + }, defaultProps: { children: "children", label: "label", @@ -250,17 +342,22 @@ tableData: [], modelData: [], queryData: null, - setCountFlag: true, + setCountFlag: false, option: null, showDownLoadFlag: false, + }; }, mounted() { this.setStartDataCount(); }, methods: { + setTjlxDataChange() { + this.showCountEchart() + }, formatterColumn(row, column, cellValue, index) { - return row.count + "MB"; + + return (row.sizes / 1024).toFixed(6) + "GB" }, setDownLoadRow(rows) { var url = @@ -336,8 +433,8 @@ dom.removeAttribute("_echarts_instance_"); // 绉婚櫎瀹瑰櫒涓婄殑 _echarts_instance } var resizeMainContainer = function () { - dom.style.width = window.innerWidth * 0.65 + "px"; - dom.style.height = window.innerHeight * 0.6 + "px"; + dom.style.width = window.innerWidth * 0.75 + "px"; + dom.style.height = window.innerHeight * 0.75 + "px"; }; //璁剧疆div瀹瑰櫒楂樺 resizeMainContainer(); @@ -348,24 +445,41 @@ var app = {}; let dataAxis = []; + let yMax = 0; + this.option = {} let data = []; - let yMax = 0; - for (var i in this.tableData) { - if (this.tableData[i].count > yMax) { - yMax = this.tableData[i].count; + window.sjName = this.queryData.value + window.sjType = this.tjlxData.region + if (sjName == 'countServices' || sjName == 'countOperates') { + for (var i in this.tableData) { + if (this.tableData[i].count > yMax) { + yMax = this.tableData[i].count; + } + data.push(this.tableData[i].count); + var m1 = this.tableData[i].m1; + dataAxis.push(m1); } + debugger + } else { + for (var i in this.tableData) { + if (this.tableData[i].count > yMax) { + yMax = this.tableData[i].count; + } + if (sjType == 'sjts') { + data.push(this.tableData[i].count); + } else if (sjType == 'sjccl') { + data.push((this.tableData[i].sizes / 1024).toFixed(6)); - data.push(this.tableData[i].count); - var m1 = this.tableData[i].m1; - if (this.tableData[i].m2 != null) { - m1 += "_" + this.tableData[i].m2; + } + var m1 = this.tableData[i].m1; + dataAxis.push(m1); } - dataAxis.push(m1); } yMax = yMax + 10; let dataShadow = []; + for (let i = 0; i < data.length; i++) { dataShadow.push(yMax); } @@ -385,7 +499,21 @@ type: "line", // 榛樿涓虹洿绾匡紝鍙�変负锛�'line' | 'shadow' }, - formatter: " {b} : <br/>缁熻閲� : {c}", + formatter: function (params) { + var p_name = params[0].axisValue; + var p_val; + if (sjName == 'countServices' || sjName == 'countOperates') { + p_val = p_name + '<br/>璁块棶娆℃暟 锛�' + params[0].data + '娆�' + + } else { + if (sjType == 'sjts') { + p_val = p_name + '<br/>鏁版嵁鏉℃暟:' + params[0].data + '鏉�' + } else { + p_val = p_name + '<br/>鏁版嵁瀛樺偍閲�:' + params[0].data + 'GB' + } + } + return p_val; + }, }, xAxis: { data: dataAxis, @@ -402,6 +530,7 @@ z: 10, }, yAxis: { + name: name, axisLine: { show: false, }, @@ -441,6 +570,9 @@ }, ], }; + + + // Enable data zoom when user click bar. const zoomSize = 6; myChart.on("click", function (params) { @@ -470,18 +602,23 @@ }); this.listData.code = this.queryData.value; this.setQueryCountData(); + }, //鏍戠偣鍑讳簨浠� handleNodeClick(data, node, prop) { - this.setCountFlag = true; + this.setCountFlag = false; this.queryData = data; this.listData.code = data.value; this.listData.pageIndex = 1; this.listData.pageSize = 10; this.setQueryCountData(); }, + handleIsopenSelect() { + this.$forceUpdate() + }, //鏌ヨ缁熻淇℃伅 async setQueryCountData() { + this.tjlxData.region = 'sjccl'; var data, val; if (this.queryData.value == "countServices") { data = await dataCount_selectCountServices(); @@ -490,16 +627,29 @@ data = await dataCount_selectCountSizes(); } else if (this.queryData.value == "countOperates") { data = await dataCount_selectCountOperates(); + } else if (this.queryData.value == "countSizesByType") { + data = await dataCount_countSizesByType(); + } else if (this.queryData.value == "countSizesByPrj") { + data = await dataCount_countSizesByPrj(); } + + if (this.queryData.value == 'countServices' || this.queryData.value == 'countOperates') { + this.tjlxData.flag = false; + debugger + } else { + this.tjlxData.flag = true; + } + + if (data.code != 200) { return; } - if (this.queryData.value == "countSizes") { - for (var i in data.result) { - data.result[i].count = data.result[i].sizes; - } - } + // if (this.queryData.value == "countSizes") { + // // for (var i in data.result) { + // // data.result[i].count = data.result[i].sizes; + // // } + // } if (this.queryData.value == "countOperates") { for (var i in data.result) { @@ -511,6 +661,7 @@ } this.tableData = data.result; + this.showCountEchart(); this.$nextTick(() => { this.$refs.table.doLayout(); }); @@ -522,23 +673,26 @@ <style lang="less" scoped> .dataStatistics { - height: 98%; - width: 98%; - padding: 1%; + width: calc(100% - 20px); + height: calc(100% - 20px); + padding: 10px; + position: relative; + overflow: hidden; .contentBox { padding-top: 10px; - height: calc(98% - 63px); + + height: calc(100% - 50px); width: 100%; display: flex; justify-content: space-around; .content_Left { - width: 18%; + width: 15%; height: calc(95% - 2px); border-radius: 5px; padding: 1%; } .content_Right { - width: 77%; + width: 80%; height: calc(95% - 2px); border-radius: 5px; padding: 1%; @@ -547,6 +701,7 @@ border-radius: 5px; display: flex; justify-content: flex-end; + padding: 0px !important; } .contentTable { width: 98%; -- Gitblit v1.9.3