| | |
| | | <div class="products"> |
| | | <div class="title">统计分析</div> |
| | | <div class="productList"> |
| | | <p class="p-statis" style=" vertical-align: top"> |
| | | <p class="p-statis" style="vertical-align: top"> |
| | | <span>时间:</span> |
| | | <el-date-picker |
| | | size="mini" |
| | |
| | | <span>部门:</span> |
| | | <el-cascader |
| | | size="mini" |
| | | style="width:400px" |
| | | style="width: 400px" |
| | | v-model="searchTree" |
| | | :options="menuTree" |
| | | :props="{ value: 'id', label: 'name', checkStrictly: true }" |
| | |
| | | clearable |
| | | collapse-tags |
| | | size="mini" |
| | | style="width:140px" |
| | | style="width: 140px" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | |
| | | <div class="equipmentCard"> |
| | | <div class="label">处理率</div> |
| | | <div class="number"> |
| | | {{ warningManage }} |
| | | {{ disposeRate }} |
| | | <div class="downIcon iconfont"></div> |
| | | </div> |
| | | |
| | |
| | | |
| | | <div class="hashRate"> |
| | | <div class="left"> |
| | | <div class="title">预警数据占比:</div> |
| | | <div class="title">整改数据详情</div> |
| | | <div class="info"> |
| | | <div class="equipmentInfo" style="margin-top:25px"> |
| | | <div class="equipmentInfo" style="margin-top: 25px"> |
| | | <div class="equipmentCard"> |
| | | <div class="label">整改总量</div> |
| | | <div class="number"> |
| | |
| | | |
| | | <el-table-column prop="count" align="center" label="整改数量" show-overflow-tooltip></el-table-column> |
| | | </el-table> |
| | | <el-pagination |
| | | <!-- <el-pagination |
| | | @current-change="refrash" |
| | | @size-change="handleSizeChange" |
| | | :current-page="page" |
| | |
| | | :page-sizes="[5, 10, 15, 20, 25]" |
| | | :total="solvedTotal" |
| | | background |
| | | ></el-pagination> |
| | | ></el-pagination> --> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | } |
| | | return parseInt(this.solvedTotal / this.tableDataList.length) |
| | | }, |
| | | warningManage() { |
| | | if (this.warningChecked == 0 || this.warningTotal == 0) { |
| | | disposeRate() { |
| | | if (this.solvedTotal == 0 || this.warningTotal == 0) { |
| | | return 0 |
| | | } |
| | | return parseInt((this.warningChecked / this.warningTotal) * 100) + "%" |
| | | return parseInt((this.solvedTotal / this.warningTotal) * 100) + "%" |
| | | }, |
| | | permissionMenuList() { |
| | | let user = JSON.parse(sessionStorage.getItem("userInfo")) |
| | |
| | | }, |
| | | |
| | | { |
| | | name: "推送管理", |
| | | name: "用户管理", |
| | | icon: "/images/manageCenter/push.png", |
| | | openPath: "/report", |
| | | path: "/report", |
| | | permission: "dataPushMng" |
| | | openPath: "/subAccount", |
| | | path: "/subAccount", |
| | | permission: "accountMng" |
| | | }, |
| | | |
| | | { |
| | | name: "数据上传", |
| | | icon: "/images/manageCenter/push.png", |
| | | openPath: "/dataPush", |
| | | path: "/dataPush", |
| | | permission: "reportMng" |
| | | }, |
| | | |
| | | { |
| | | name: "数据报表", |
| | | icon: "/images/manageCenter/push.png", |
| | | openPath: "/dataReport", |
| | | path: "/dataReport", |
| | | permission: "" |
| | | }, |
| | | |
| | | { |
| | |
| | | openPath: "/video", |
| | | path: "/video", |
| | | permission: "videoMng" |
| | | }, |
| | | { |
| | | name: "点位变更", |
| | | icon: "/images/manageCenter/cam.png", |
| | | openPath: "/invalidCamera", |
| | | path: "/invalidCamera", |
| | | permission: "positionMng" |
| | | } |
| | | ], |
| | | cameraTree: [], |
| | |
| | | "rgb(255, 124, 31)", |
| | | "rgb(165, 96, 255)" |
| | | ], |
| | | tooltip: { |
| | | trigger: "item", |
| | | formatter: "{b} {d}%" //只要百分比 |
| | | }, |
| | | series: [ |
| | | { |
| | | name: "Nightingale Chart", |
| | |
| | | }, |
| | | label: { |
| | | show: false |
| | | //formatter: '{b} : {c} ({d}%)' //带当前图例名 + 百分比 |
| | | }, |
| | | |
| | | data: [] |
| | | } |
| | | ] |
| | |
| | | if (decodeString != "") { |
| | | let decodeResult = JSON.parse(decodeString) |
| | | if (decodeResult) { |
| | | console.log("warningStatics", decodeResult) |
| | | // console.log("warningStatics", decodeResult) |
| | | decodeResult.forEach((element) => { |
| | | this.solvedTotal = this.solvedTotal + element.doc_count |
| | | this.tableDataList.push({ date: element.key_as_string, count: element.doc_count }) |
| | | this.tableDataList.push({ |
| | | date: element.key_as_string, |
| | | count: element.doc_count |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | |
| | | let decodeResult = JSON.parse(decodeString) |
| | | if (decodeResult) { |
| | | decodeResult.forEach((element) => { |
| | | this.pieOption.series[0].data.push({ value: element.doc_count, name: element.key }) |
| | | this.pieOption.series[0].data.push({ |
| | | value: element.doc_count, |
| | | name: element.key |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | |
| | | //key 1=误报数据,2=已整改,3=未整改,4=已排查 doc_count=数量 total=总量 |
| | | decodeWarningRate(b64data) { |
| | | if (b64data) { |
| | | this.warningTotal = 0 |
| | | this.warningSolved = 0 |
| | | this.warningChecked = 0 |
| | | this.warningTotal = 0 // 总量 |
| | | this.warningSolved = 0 // 已整改 |
| | | this.warningChecked = 0 //已排查 |
| | | let falseAlarm = 0 // 误报 |
| | | |
| | | let decodeString = Base64.decode(b64data) |
| | | if (decodeString != "") { |
| | | let decodeResult = JSON.parse(decodeString) |
| | | if (decodeResult && decodeResult.total > 0) { |
| | | this.warningTotal = decodeResult.total |
| | | decodeResult.buckets.forEach((element) => { |
| | | switch (element.key) { |
| | | case 1: |
| | | falseAlarm += element.doc_count |
| | | break |
| | | case 2: |
| | | this.warningSolved += element.doc_count |
| | | break |
| | |
| | | break |
| | | } |
| | | }) |
| | | |
| | | // 2023/4/12 修改, 预警总量不统计误报 |
| | | // this.warningTotal = decodeResult.total - falseAlarm |
| | | this.warningTotal = decodeResult.total |
| | | } |
| | | // console.log("WarningRate:", decodeResult) |
| | | } |
| | |
| | | this.pieChart.setOption(this.pieOption) |
| | | }, |
| | | jump(route) { |
| | | const userInfo = JSON.parse(sessionStorage.getItem("userInfo")) |
| | | |
| | | const val = userInfo.permissions.find((item) => { |
| | | return item == route.permission |
| | | const { href } = this.$router.resolve({ |
| | | path: route.path |
| | | }) |
| | | if (val) { |
| | | if (route.path === "/search" || route.path === "/dataView") { |
| | | const { href } = this.$router.resolve({ |
| | | path: route.path |
| | | }) |
| | | window.open(href, "_blank") |
| | | return |
| | | } |
| | | this.$router.push(route.path) |
| | | } else if (!userInfo.parentId) { |
| | | this.$router.push(route.openPath) |
| | | } |
| | | window.open(href, "_blank") |
| | | }, |
| | | refrash() {}, |
| | | handleSizeChange() {}, |
| | |
| | | display: flex; |
| | | |
| | | .productItem { |
| | | margin-right: 20px; |
| | | margin: 0px 10px; |
| | | width: 190px; |
| | | height: 90px; |
| | | display: flex; |