Merge remote-tracking branch 'origin/master'
| | |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 切换角色 |
| | | export function exchangeRole(roleId) { |
| | | return request({ |
| | | url: '/system/role/exchange/'+ roleId, |
| | | method: 'get', |
| | | }) |
| | | } |
| | | // 删除角色 |
| | | export function delRole(roleId) { |
| | | return request({ |
| | |
| | | <template> |
| | | <div class="navbar"> |
| | | <hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" /> |
| | | <hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" |
| | | @toggleClick="toggleSideBar" /> |
| | | |
| | | <breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav"/> |
| | | <top-nav id="topmenu-container" class="topmenu-container" v-if="topNav"/> |
| | | <breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav" /> |
| | | <top-nav id="topmenu-container" class="topmenu-container" v-if="topNav" /> |
| | | |
| | | <div class="right-menu"> |
| | | <template v-if="device!=='mobile'"> |
| | | |
| | | |
| | | |
| | | |
| | | <template v-if="device !== 'mobile'"> |
| | | <screenfull id="screenfull" class="right-menu-item hover-effect" /> |
| | | <el-tooltip content="布局大小" effect="dark" placement="bottom"> |
| | | <size-select id="size-select" class="right-menu-item hover-effect" /> |
| | |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | |
| | | </div> |
| | | <div class="test-container"> |
| | | <el-button-group style="vertical-align: text-bottom;"> |
| | | <el-button @click="exchange(100)">省厅角色</el-button> |
| | | <el-button @click="exchange(103)">区县角色</el-button> |
| | | <el-button @click="exchange(2)">运维角色</el-button> |
| | | </el-button-group> |
| | | </div> |
| | | <div class="button-container"> |
| | | <el-button type="primary" @click="toScreen">可视化大屏</el-button> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | import Search from '@/components/HeaderSearch' |
| | | import RuoYiGit from '@/components/RuoYi/Git' |
| | | import RuoYiDoc from '@/components/RuoYi/Doc' |
| | | |
| | | import { exchangeRole } from "@/api/system/role"; |
| | | export default { |
| | | components: { |
| | | Breadcrumb, |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | exchange(roleId) { |
| | | exchangeRole(roleId).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | }).catch(() => { }); |
| | | }, |
| | | toggleSideBar() { |
| | | this.$store.dispatch('app/toggleSideBar') |
| | | }, |
| | |
| | | this.$store.dispatch('LogOut').then(() => { |
| | | location.href = '/index'; |
| | | }) |
| | | }).catch(() => {}); |
| | | }).catch(() => { }); |
| | | }, |
| | | |
| | | toScreen() { |
| | | this.$router.push({ |
| | | path: '/screen' |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | overflow: hidden; |
| | | position: relative; |
| | | background: #fff; |
| | | box-shadow: 0 1px 4px rgba(0,21,41,.08); |
| | | box-shadow: 0 1px 4px rgba(0, 21, 41, .08); |
| | | |
| | | .hamburger-container { |
| | | line-height: 46px; |
| | |
| | | float: left; |
| | | cursor: pointer; |
| | | transition: background .3s; |
| | | -webkit-tap-highlight-color:transparent; |
| | | -webkit-tap-highlight-color: transparent; |
| | | |
| | | &:hover { |
| | | background: rgba(0, 0, 0, .025) |
| | |
| | | } |
| | | } |
| | | } |
| | | .test-container { |
| | | margin: 0 20px; |
| | | height: 100%; |
| | | float: right; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .button-container { |
| | | margin: 0 20px; |
| | | height: 100%; |
| | | float: right; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | </style> |
| | |
| | | component: Layout, |
| | | hidden: true, |
| | | children: [ |
| | | { |
| | | path: 'index', |
| | | name: 'vehicle-data-monitor', |
| | | component: () => import('@/views/system/vehicle-data-monitor/index'), |
| | | meta: { title: '车辆过卡口数据一致性', activeMenu: '/system/vehicle-data-monitor' } |
| | | } |
| | | ] |
| | | { |
| | | path: 'index', |
| | | name: 'vehicle-data-monitor', |
| | | component: () => import('@/views/system/vehicle-data-monitor/index'), |
| | | meta: { title: '车辆过卡口数据一致性', activeMenu: '/system/vehicle-data-monitor' } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/register', |
| | |
| | | { |
| | | path: '', |
| | | component: Layout, |
| | | redirect: 'index', |
| | | redirect: 'screen', |
| | | children: [ |
| | | { |
| | | path: 'index', |
| | |
| | | } |
| | | ] |
| | | }, |
| | | |
| | | // { |
| | | // path: '', |
| | | // component: Layout, |
| | | // redirect: 'index', |
| | | // children: [ |
| | | // { |
| | | // path: 'index', |
| | | // component: () => import('@/views/index'), |
| | | // name: 'Index', |
| | | // meta: { title: '首页', icon: 'dashboard', affix: true } |
| | | // } |
| | | // ] |
| | | // }, |
| | | { |
| | | path: '/screen', |
| | | hidden: true, |
| | |
| | | |
| | | <el-card class="map-wrapper"> |
| | | <el-row> |
| | | <el-col :offset="21" :span="3"> |
| | | <el-select v-model="selectOption" placeholder="请选择"> |
| | | <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-col :span="5"> |
| | | <div class="select-container"> |
| | | <div class="select-label"> |
| | | 数据源 |
| | | </div> |
| | | <el-select v-model="selectOption" placeholder="请选择"> |
| | | <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | |
| | | </el-col> |
| | | <el-col :offset="17" :span="2"> |
| | | <el-button type="primary" @click="toScreen">可视化大屏</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="40" class="data-plane" style="height: 100%;"> |
| | |
| | | value: 2, |
| | | label: '市局数据' |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: '公安部数据' |
| | | }, |
| | | ], |
| | | selectOption: 1 |
| | | } |
| | |
| | | }); |
| | | data.name = '自贡市'; |
| | | this.activeData = data; |
| | | }, |
| | | |
| | | toScreen() { |
| | | this.$router.push({ |
| | | path: '/screen' |
| | | }) |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | aspect-ratio: 6/2; |
| | | } |
| | | |
| | | .select-container { |
| | | display: flex; |
| | | align-items: center; |
| | | .select-label { |
| | | color: #666; |
| | | margin-right: 20px; |
| | | font-size: 16px; |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1200px) { |
| | | .el-col-md-6 { |
| | | width: 20%; |
| | |
| | | <template> |
| | | <div class="app-container home"> |
| | | <data-view></data-view> |
| | | <!-- <data-view></data-view> --> |
| | | <data-wrapper></data-wrapper> |
| | | </div> |
| | | </template> |
| | |
| | | watch: { |
| | | $route: { |
| | | handler: function(route) { |
| | | console.log(route); |
| | | this.redirect = route.query && route.query.redirect; |
| | | }, |
| | | immediate: true |
| | |
| | | this.loginInfo = loginInfo.user |
| | | //如果返回为1正常跳转 |
| | | if(this.loginInfo.firstLogin == 1){ |
| | | this.$router.push({ path: "/" }).catch(()=>{}); |
| | | return; |
| | | this.$router.push({ path: this.redirect || "/" }).catch(()=>{}); |
| | | } else { |
| | | localStorage.setItem('firstLogin',0) |
| | |
| | | waveHeight: 5 |
| | | }, |
| | | config2: { |
| | | data: [99.77], |
| | | data: [70.77], |
| | | shape: 'round', |
| | | waveHeight: 5 |
| | | }, |
| | | config3: { |
| | | data: [95.39], |
| | | data: [60.39], |
| | | shape: 'round', |
| | | waveHeight: 5 |
| | | }, |
| | |
| | | <div class="rank-chart"> |
| | | <div class="hola-item" v-for="item in dataList" :key="item.id"> |
| | | <examine-hola :startColor="'#02C77E'" :endColor="'#017770'" :centerValue="item.value" |
| | | :bottomTitle="item.name"></examine-hola> |
| | | :bottomTitle="item.name" :routerPath="item.routerUrl" ></examine-hola> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | data() { |
| | | return { |
| | | dataList: [ |
| | | {id: 1,name: '平台在线率', value: 60}, |
| | | {id: 2,name: '一机一档合格率', value: 20}, |
| | | {id: 3,name: '档案考核比', value: 60}, |
| | | {id: 4,name: '点位在线率', value: 40}, |
| | | {id: 5,name: '录像可用率', value: 80}, |
| | | {id: 6,name: '重点点位录像可用率', value: 20}, |
| | | {id: 7,name: '信息采集准确率', value: 60}, |
| | | {id: 8,name: '卡门过车数据一致性', value: 40}, |
| | | |
| | | {id: 1,name: '平台在线率', value: 60,routerUrl: '/car/vehicle-data-monitor/index'}, |
| | | {id: 2,name: '一机一档合格率', value: 20,routerUrl: '/car/vehicle-data-monitor/index'}, |
| | | {id: 3,name: '档案考核比', value: 60,routerUrl: '/car/vehicle-data-monitor/index'}, |
| | | {id: 4,name: '点位在线率', value: 40,routerUrl: '/car/vehicle-data-monitor/index'}, |
| | | {id: 5,name: '录像可用率', value: 80,routerUrl: '/car/vehicle-data-monitor/index'}, |
| | | {id: 6,name: '重点点位录像可用率', value: 20,routerUrl: '/car/vehicle-data-monitor/index'}, |
| | | {id: 7,name: '信息采集准确率', value: 60,routerUrl: '/car/vehicle-data-monitor/index'}, |
| | | {id: 8,name: '车辆过卡口数据一致性', value: 40,routerUrl: '/car/vehicle-data-monitor/index'}, |
| | | |
| | | ] |
| | | } |
| | | }, |
| | |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | <!-- 进度条类型组件 --> |
| | | <div class="progressChart"> |
| | | <div class="chart" id="progressChart" ref="chartRef"></div> |
| | | <label class="bottom le-0-font">{{ bottomTitle }}</label> |
| | | <el-link class="bottom le-0-font" :underline="false" @click="handleDetail(routerPath)"> |
| | | <label >{{ bottomTitle }}</label> |
| | | </el-link> |
| | | </div> |
| | | </template> |
| | | <script> |
| | |
| | | type: [Number, String], |
| | | default: 0 |
| | | }, |
| | | routerPath: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | bottomTitle: { |
| | | type: String, |
| | | default: '' |
| | | } |
| | | }, |
| | | methods: {}, |
| | | methods: { |
| | | handleDetail(routerUrl) { |
| | | this.$router.push({ |
| | | path: routerUrl, |
| | | }) |
| | | } |
| | | }, |
| | | created() { }, |
| | | mounted() { |
| | | let myChart = echarts.init(this.$refs['chartRef']) // 使用Id无法实现 |
| | |
| | | margin-top: 10px; |
| | | } |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | import WrapperTitle from '../wrapper-title/index'; |
| | | |
| | | echarts.registerMap('zigong', mapData); |
| | | console.log(mapData); |
| | | let mapChart = null; |
| | | let tempName = ''; |
| | | let observer = null; |
| | | const mapConfig = { |
| | | series: [{ |
| | | map: "zigong", //注册地图的名字 |
| | | type: "map3D", |
| | | geo3D: { |
| | | map: 'zigong', |
| | | show: true, |
| | | bottom: 0, |
| | | left: 0, |
| | | top: 0, |
| | | right: 0, |
| | | zlevel: 1, |
| | | itemStyle: { |
| | | color: "#4189f2", // 背景 |
| | | opacity: 1, //透明度 |
| | |
| | | // 控制器 |
| | | viewControl: { |
| | | beta: -30, |
| | | alpha: 90, |
| | | distance: 100, |
| | | alpha: 50, |
| | | distance: 105, |
| | | maxBeta: 180, |
| | | panSensitivity: 0 |
| | | panSensitivity: 0, |
| | | zoomSensitivity: 1, |
| | | rotateSensitivity: 0, |
| | | }, |
| | | // 鼠标移入时样式 |
| | | emphasis: { |
| | | itemStyle: { |
| | | color: "#F63545" |
| | | color: "#F63545", |
| | | } |
| | | }, |
| | | // regions: mapData.features.map((item) => { |
| | | // return { |
| | | // name: item.properties.name, |
| | | // itemStyle: { |
| | | // color: "#4189f2" |
| | | // } |
| | | // } |
| | | // }) |
| | | }, |
| | | series: [ |
| | | { |
| | | map: "zigong", //注册地图的名字 |
| | | type: "map3D", |
| | | bottom: 0, |
| | | left: 0, |
| | | top: 0, |
| | | right: 0, |
| | | zlevel: 2, |
| | | itemStyle: { |
| | | color: "#4189f2", // 背景 |
| | | opacity: 0, //透明度 |
| | | borderWidth: 0, // 边框宽度 |
| | | borderColor: "#fff", // 边框颜色 |
| | | fontSize: 18, // |
| | | }, |
| | | |
| | | // 数据 |
| | | data: mapData.features.map((item) => { |
| | | return { |
| | | name: item.properties.name, |
| | | itemStyle: { |
| | | color: "#4189f2" |
| | | // 标签 |
| | | label: { |
| | | show: false, |
| | | color: "#fff", //地图初始化区域字体颜色 |
| | | fontSize: 18, |
| | | }, |
| | | // 控制器 |
| | | viewControl: { |
| | | beta: -30, |
| | | alpha: 50, |
| | | distance: 105, |
| | | maxBeta: 180, |
| | | panSensitivity: 0, |
| | | zoomSensitivity: 1, |
| | | rotateSensitivity: 0, |
| | | }, |
| | | |
| | | // 数据 |
| | | data: mapData.features.map((item) => { |
| | | return { |
| | | name: item.properties.name, |
| | | itemStyle: { |
| | | color: "#4189f2" |
| | | } |
| | | } |
| | | } |
| | | }), |
| | | } |
| | | }), |
| | | |
| | | }, |
| | | { |
| | | type: 'lines3D', |
| | | coordinateSystem: 'geo3D', |
| | | zlevel: 15, |
| | | |
| | | effect: { |
| | | show: true, |
| | | period: 5, |
| | | trailLength: 0.2, |
| | | color: '#01AAED', |
| | | }, |
| | | lineStyle: { |
| | | width: 3, |
| | | opacity: 0.6, |
| | | color: '#FFB800' |
| | | }, |
| | | data: [ |
| | | [ |
| | | [104.343914,29.470778], |
| | | [104.766432,29.328016] |
| | | ], |
| | | [ |
| | | [104.603116,29.347364], |
| | | [104.766432,29.328016] |
| | | ], |
| | | [ |
| | | [104.873139,29.30861], |
| | | [104.766432,29.328016] |
| | | ], |
| | | [ |
| | | [105.058792,29.1521], |
| | | [104.766432,29.328016] |
| | | ], |
| | | [ |
| | | [104.848535,29.410526], |
| | | [104.766432,29.328016] |
| | | ], |
| | | ] |
| | | } |
| | | ] |
| | | |
| | | }; |
| | |
| | | methods: { |
| | | filterData(name) { |
| | | this.initConfig(); |
| | | let temp = mapConfig.series[0].data.find(item => item.name === name); |
| | | let temp = mapConfig.geo3D.regions.find(item => item.name === name); |
| | | |
| | | // mapConfig.geo3D.regions.push({ |
| | | // name: name, |
| | | // itemStyle: { |
| | | // color: '#F63545' |
| | | // } |
| | | // }); |
| | | temp.itemStyle.color = '#F63545'; |
| | | mapChart.setOption(mapConfig, true); |
| | | this.$emit('filterData', name); |
| | | }, |
| | | initConfig() { |
| | | mapConfig.series[0].data.forEach(item => { |
| | | // mapConfig.geo3D.regions = []; |
| | | mapConfig.geo3D.regions.forEach(item => { |
| | | item.itemStyle.color = '#4189f2'; |
| | | }); |
| | | }, |
| | |
| | | mapChart = echarts.init(this.$refs.map); |
| | | mapChart.setOption(mapConfig, true); |
| | | mapChart.on('click', (params) => { |
| | | return; |
| | | if (tempName === params.name) { |
| | | tempName = ''; |
| | | this.initConfig(); |
| | |
| | | .map-content { |
| | | flex: 1; |
| | | background: rgba(67, 102, 155, 0.3); |
| | | border: 1px solid rgba(47, 91, 157, 0.8); |
| | | border: 1px solid rgba(47, 91, 157, 0.8); |
| | | } |
| | | |
| | | .map-style { |
| | | width: 100%; |
| | | height: 100%; |
| | |
| | | <div class="wrapper-container"> |
| | | <select-item></select-item> |
| | | <div class="return-button"> |
| | | <el-button type="primary" @click="returnPath">返回</el-button> |
| | | <el-button type="primary" @click="returnPath">管理系统</el-button> |
| | | </div> |
| | | <div class="wrapper-content"> |
| | | <div class="left-container wrapper"> |
| | |
| | | }, |
| | | methods: { |
| | | returnPath() { |
| | | this.$router.go(-1); |
| | | this.$router.push('/index'); |
| | | } |
| | | } |
| | | } |
| | |
| | | dateValue: new Date(), |
| | | testData1: [ |
| | | { |
| | | name: '省厅', |
| | | name: '省厅数据', |
| | | value: 1 |
| | | }, |
| | | { |
| | | name: '市厅', |
| | | name: '市局数据', |
| | | value: 2 |
| | | }, |
| | | { |
| | | name: '公安部', |
| | | name: '公安部数据', |
| | | value: 3 |
| | | } |
| | | ] |
| | |
| | | <div class="text item">考核频率<span class="time">{{ "季度" }}</span></div> |
| | | <div class="text item">考核时间 |
| | | <span class="time">{{ item.checkTime }}</span> |
| | | <el-button size="small" round style="float: right;" @click="handlePublish(item)" v-show="item.publish != 1">确认发布</el-button> |
| | | <el-button size="small" round style="float: right;" v-show="item.publish == 1" disabled="true">已发布</el-button> |
| | | <el-button size="small" round style="float: right;" @click="handlePublish(item)" v-show="item.publish != 1" v-hasPermi="['result:city:publish']">确认发布</el-button> |
| | | <el-button size="small" round style="float: right;" v-show="item.publish == 1" disabled="true" v-hasPermi="['result:city:publish']">已发布</el-button> |
| | | </div> |
| | | </el-card> |
| | | |
| | |
| | | <div class="text item">考核分数<span class="time">{{ item.checkScore }}</span></div> |
| | | <div class="text item">考核时间 |
| | | <span class="time">{{ item.checkTime }}</span> |
| | | <el-button size="small" round style="float: right;" @click="handlePublish(item)" v-show="item.publish != 1">确认发布</el-button> |
| | | <el-button size="small" round style="float: right;" @click="handlePublish(item)" v-show="item.publish == 1">已发布</el-button> |
| | | <el-button size="small" round style="float: right;" @click="handlePublish(item)" v-show="item.publish != 1" v-hasPermi="['result:contract:publish']">确认发布</el-button> |
| | | <el-button size="small" round style="float: right;" @click="handlePublish(item)" v-show="item.publish == 1" v-hasPermi="['result:contract:publish']">已发布</el-button> |
| | | </div> |
| | | </el-card> |
| | | |
| | |
| | | <el-input v-model="form.templateName" placeholder="请输入模板名称" /> |
| | | </el-form-item> |
| | | <el-form-item label="考核对象" prop="unitName"> |
| | | <el-select v-model="form.unitName" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in unitList" |
| | | :key="item.id" |
| | | :label="item.value" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | <div class="block"> |
| | | <span class="demonstration"></span> |
| | | <el-cascader |
| | | v-model="value" |
| | | :options="options" |
| | | :props = "props" |
| | | @change="handleChange"></el-cascader> |
| | | </div> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="考核规则" prop="tempRuleFormList"> |
| | | <div class="row-warp"> |
| | |
| | | name: "CheckTemplate", |
| | | data() { |
| | | return { |
| | | props: { multiple: true }, |
| | | value: [], |
| | | options: [{ |
| | | value: 'city', |
| | | label: '区县', |
| | | children: [{ |
| | | value: 'fushun', |
| | | label: '富顺县', |
| | | }, { |
| | | value: 'rong', |
| | | label: '荣县', |
| | | },{ |
| | | value: 'gaoxin', |
| | | label: '高新区', |
| | | },{ |
| | | value: 'ziliujing', |
| | | label: '自流井区', |
| | | },{ |
| | | value: 'gongjing', |
| | | label: '贡井区', |
| | | },{ |
| | | value: 'daan', |
| | | label: '大安区', |
| | | },{ |
| | | value: 'yantan', |
| | | label: '沿滩区', |
| | | }, |
| | | ] |
| | | }, { |
| | | value: 'company', |
| | | label: '公司', |
| | | children: [{ |
| | | value: 'yunwei', |
| | | label: '成都x运维', |
| | | }, { |
| | | value: 'yunwei2', |
| | | label: '自贡x运维', |
| | | }, ] |
| | | }, |
| | | ], |
| | | ruleList: [], |
| | | unitList: [], |
| | | // 临时规则表单 |
| | |
| | | this.selectUnit(); |
| | | }, |
| | | methods: { |
| | | handleChange(value) { |
| | | console.log(value); |
| | | }, |
| | | removeRule(form) { |
| | | console.log(form) |
| | | this.ruleFormList = this.ruleFormList.filter(item => item !== form); |
| | |
| | | <div class="container"> |
| | | <el-row type="flex" justify="center"> |
| | | <el-col :span="24"> |
| | | <h3 style="color: rgb(104,104,103);padding-top: 20px;padding-bottom: 20px;">人脸数据异常检测</h3> |
| | | <h3 style="color: rgb(104,104,103);padding-top: 20px;padding-bottom: 20px;">视频运行监控</h3> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row type="flex" justify="center"> |
| | | <el-col :span="6" v-for="(item, index) in faceData" :key="index"> |
| | | <el-col :span="6" v-for="(item, index) in videoData" :key="index"> |
| | | <el-link @click="handleDetail(item)"> |
| | | <el-card style="width:150px;height: 150px;text-align: center;"> |
| | | <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i> |
| | | <div>{{ item.name }}</div> |
| | | </el-card> |
| | | </el-link> |
| | | </el-col> |
| | | </el-row> |
| | | <br/> |
| | | <el-row type="flex" justify="center"> |
| | | <el-col :span="6" v-for="(item, index) in videoData2" :key="index"> |
| | | <el-link @click="handleDetail(item)" :style="item.name == '' ? 'display:none' : ''"> |
| | | <el-card style="width:150px;height: 150px;text-align: center;"> |
| | | <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i> |
| | | <div>{{ item.name }}</div> |
| | |
| | | <div class="container"> |
| | | <el-row type="flex" justify="center"> |
| | | <el-col :span="24"> |
| | | <h3 style="color: rgb(104,104,103);padding-top: 20px;padding-bottom: 20px;">车俩数据异常检测</h3> |
| | | <h3 style="color: rgb(104,104,103);padding-top: 20px;padding-bottom: 20px;">车辆运行监控</h3> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | |
| | | </el-link> |
| | | </el-col> |
| | | </el-row> |
| | | <br/> |
| | | <el-row type="flex" justify="center"> |
| | | <el-col :span="6" v-for="(item, index) in carData2" :key="index"> |
| | | <el-link @click="handleDetail(item)" :style="item.name == '' ? 'display:none' : ''"> |
| | | <el-card style="width:150px;height: 150px;text-align: center;"> |
| | | <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i> |
| | | <div>{{ item.name }}</div> |
| | | </el-card> |
| | | </el-link> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | |
| | | <div class="container"> |
| | | <el-row type="flex" justify="center"> |
| | | <el-col :span="24"> |
| | | <h3 style="color: rgb(104,104,103);padding-top: 20px;padding-bottom: 20px;">人脸运行监控</h3> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row type="flex" justify="center"> |
| | | <el-col :span="6" v-for="(item, index) in faceData" :key="index"> |
| | | <el-link @click="handleDetail(item)"> |
| | | <el-card style="width:150px;height: 150px;text-align: center;"> |
| | | <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i> |
| | | <div>{{ item.name }}</div> |
| | | </el-card> |
| | | </el-link> |
| | | </el-col> |
| | | </el-row> |
| | | <br/> |
| | | <el-row type="flex" justify="center"> |
| | | <el-col :span="6" v-for="(item, index) in faceData2" :key="index"> |
| | | <el-link @click="handleDetail(item)" :style="item.name == '' ? 'display:none' : ''"> |
| | | <el-card style="width:150px;height: 150px;text-align: center;"> |
| | | <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i> |
| | | <div>{{ item.name }}</div> |
| | | </el-card> |
| | | </el-link> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <br/><br/><br/><br/> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | faceData: [ |
| | | { name: '人脸识别时钟准确性', icon: 'el-icon-alarm-clock', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '人脸抓拍数据监测', icon: 'el-icon-user', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '人脸数据趋势分析', icon: 'el-icon-data-line', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '人脸抓拍设备活跃性', icon: 'el-icon-timer', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '人脸抓拍上传及时性', icon: 'el-icon-money', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '人脸抓拍大图可用性', icon: 'el-icon-data-analysis', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | videoData: [ |
| | | { name: '平台在线', icon: 'el-icon-connection', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '一机一档', icon: 'el-icon-folder', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '点位在线', icon: 'el-icon-search', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '录像可用', icon: 'el-icon-turn-off', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '视频标注', icon: 'el-icon-place', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '重点指挥图像在线率', icon: 'el-icon-film', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | ], |
| | | videoData2: [ |
| | | { name: '视频图像资源安全管理', icon: 'el-icon-house', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '视频图像质量', icon: 'el-icon-set-up', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '', icon: 'el-icon-connection', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '', icon: 'el-icon-connection', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '', icon: 'el-icon-connection', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '', icon: 'el-icon-connection', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' } |
| | | ], |
| | | carData: [ |
| | | { name: '卡口过车数据一致性', icon: 'el-icon-truck', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' } |
| | | { name: '视图库对接稳定性×1', icon: 'el-icon-truck', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '点位在线率', icon: 'el-icon-truck', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '联网卡口设备目录一致率', icon: 'el-icon-truck', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '车辆卡口信息采集准确率', icon: 'el-icon-truck', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '车辆卡口设备抓拍数据完整性', icon: 'el-icon-truck', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '车辆卡口设备抓拍数据准确性', icon: 'el-icon-truck', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' } |
| | | ], |
| | | carData2: [ |
| | | { name: '车辆卡口设备时钟准确性', icon: 'el-icon-truck', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '车辆卡口设备抓拍数据上传及时性', icon: 'el-icon-truck', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '车辆卡口设备url可用性×0.5', icon: 'el-icon-truck', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '车辆卡口设备抓拍数据大图可用性', icon: 'el-icon-truck', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '', icon: 'el-icon-truck', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '', icon: 'el-icon-truck', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' } |
| | | ], |
| | | faceData: [ |
| | | { name: '视图库对接稳定性', icon: 'el-icon-alarm-clock', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '点位在线率', icon: 'el-icon-user', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '目录一致率', icon: 'el-icon-data-line', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '人脸卡口信息采集准确率', icon: 'el-icon-timer', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '设备抓拍图片合格性', icon: 'el-icon-money', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '设备抓拍图片时钟准确性', icon: 'el-icon-data-analysis', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | ], |
| | | faceData2: [ |
| | | { name: '抓拍人脸数据上传及时性', icon: 'el-icon-thumb', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '人脸卡口设备抓拍数据大图可用性', icon: 'el-icon-pie-chart', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '', icon: 'el-icon-data-line', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '', icon: 'el-icon-timer', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '', icon: 'el-icon-money', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | { name: '', icon: 'el-icon-data-analysis', description: '描述信息', routerUrl: '/car/vehicle-data-monitor/index' }, |
| | | ] |
| | | } |
| | | }, |
| | |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleAuditing(scope.row)" |
| | | v-hasPermi="['system:report:auditing']" |
| | | v-hasPermi="['system:report:audit']" |
| | | >审核</el-button> |
| | | <el-button |
| | | size="mini" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <!-- <div class="top"> |
| | | <el-row type="flex" justify="space-between" style="width: 60%;"> |
| | | <el-col :span="6"> |
| | | <el-card class="card"> |
| | | <i style="font-size: 40px;padding: 15px;" class="el-icon-wind-power"></i> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-col :span="6" class="mod"> |
| | | <div class="number">{{ totalKiosks }}</div> |
| | | <div>卡口总数</div> |
| | | </el-col> |
| | | |
| | | <el-col :span="6" class="mod"> |
| | | <div class="numberTwo">{{ uniqueKiosks }}</div> |
| | | <div>不唯一卡口数</div> |
| | | </el-col> |
| | | |
| | | <div style="width: 1px;height: 60px;border: 1px solid #D7EBFA;margin: 40px;"></div> |
| | | |
| | | |
| | | <el-col :span="6"> |
| | | <el-card class="card"> |
| | | <i style="font-size: 40px;padding: 15px;" class="el-icon-truck"></i> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="6" class="mod"> |
| | | <div class="number">{{ totalCarData }}</div> |
| | | <div>过车数据总量</div> |
| | | </el-col> |
| | | |
| | | <el-col :span="6" class="mod"> |
| | | <div class="numberTwo">{{ uniqueCarData }}</div> |
| | | <div>不唯一数据量</div> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | </div> --> |
| | | |
| | | |
| | | <el-card class="box-card"> |
| | | <el-row type="flex" align="middle" justify="space-between"> |
| | | <el-col :xl="8" :lg="8" :md="10" :sm="8" :xs="6"> |
| | | <div class="icon-container" style="background-color: #5599F7;font-size: 50px;color: #FFF;"> |
| | | <el-col :span="2"> |
| | | <div class="icon-container"> |
| | | <i class="el-icon-wind-power"></i> |
| | | </div> |
| | | </el-col> |
| | | <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16"> |
| | | <div class="dashboard"> |
| | | <el-col :span="2"> |
| | | <div> |
| | | <div class="dashboard-item"> |
| | | <h3 style="color: #5C9BF8">{{ totalKiosks }}</h3> |
| | | <p>卡口总数</p> |
| | | </div> |
| | | <div class="dashboard-item"> |
| | | <h3>{{ uniqueKiosks }}</h3> |
| | | <p>不唯一卡口数</p> |
| | | </div> |
| | | <div class="dashboard-item"> |
| | | <div style="width: 1px;height: 55px;border: 1px solid #D7EBFA;"></div> |
| | | </div> |
| | | <div class="dashboard-item"> |
| | | <h3 style="color: #5C9BF8">{{ totalCarData }}</h3> |
| | | <p>过车数据总量</p> |
| | | </div> |
| | | <div class="dashboard-item"> |
| | | <h3>{{ uniqueCarData }}</h3> |
| | | <p>不唯一数据量</p> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <div class="dashboard-item"> |
| | | <h3>{{ uniqueKiosks }}</h3> |
| | | <p>不唯一卡口数</p> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1"> |
| | | <div class="dashboard-item"> |
| | | <div style="width: 1px;height: 55px;border: 1px solid #D7EBFA;margin: 20px;"></div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <div class="icon-container"> |
| | | <i class="el-icon-truck"></i> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <div class="dashboard-item"> |
| | | <h3 style="color: #5C9BF8">{{ totalCarData }}</h3> |
| | | <p>过车数据总量</p> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <div class="dashboard-item"> |
| | | <h3>{{ uniqueCarData }}</h3> |
| | | <p>不唯一数据量</p> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"></el-col> |
| | | </el-row> |
| | | </el-card> |
| | | |
| | | |
| | | |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="卡口编号" prop="bayonetNumber"> |
| | |
| | | return { |
| | | totalKiosks: 1157, |
| | | uniqueKiosks: 580, |
| | | totalCarData: 77422, |
| | | totalCarData: 1477422, |
| | | uniqueCarData: 431163, |
| | | // 遮罩层 |
| | | loading: true, |
| | |
| | | width: 20%; |
| | | height: 80px; |
| | | margin-left: 5%; |
| | | background-color: #5599F7; |
| | | font-size: 50px; |
| | | color: #FFF; |
| | | width: 85px; |
| | | } |
| | | |
| | | .el-icon-refresh-left { |
| | | font-size: 50px; |
| | | color: #FFFFFF; |
| | | } |
| | | |
| | | .dashboard { |
| | | display: flex; |
| | | gap: 10%; |
| | | align-items: center; |
| | | margin-left: -50%; |
| | | } |
| | | |
| | | .dashboard-item { |
| | |
| | | type="text" |
| | | @click="handleYwCondition(scope.row)" |
| | | >运维情况</el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | @click="handleYwResult(scope.row)" |
| | | >运维结果</el-button> |
| | | <!-- <el-button--> |
| | | <!-- size="mini"--> |
| | | <!-- type="text"--> |
| | | <!-- @click="handleYwResult(scope.row)"--> |
| | | <!-- >运维结果</el-button>--> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | @click="handleCheckResult(scope.row)" |
| | | v-hasPermi="['work:order:result']" |
| | | >检测结果</el-button> |
| | | <el-button |
| | | size="mini" |
| | |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitYwResult">确 定</el-button> |
| | | <el-button @click="cancelYwResult">取 消</el-button> |
| | | <el-button @click="cancelCheckResult">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |