| | |
| | | $panGreen: #30B08F; |
| | | |
| | | // 默认菜单主题风格 |
| | | $base-menu-color:#bfcbd9; |
| | | $base-menu-color-active:#f4f4f5; |
| | | $base-menu-background:#304156; |
| | | $base-logo-title-color: #ffffff; |
| | | $base-menu-color:#1890FF; |
| | | $base-menu-color-active:#1890FF; |
| | | $base-menu-background:#ffffff; |
| | | $base-logo-title-color: #1890FF; |
| | | |
| | | $base-menu-light-color:rgba(0,0,0,.70); |
| | | $base-menu-light-color:rgba(101, 178, 233, 0.7); |
| | | $base-menu-light-background:#ffffff; |
| | | $base-logo-light-title-color: #001529; |
| | | $base-logo-light-title-color: #4f94d5; |
| | | |
| | | $base-sub-menu-background:#1f2d3d; |
| | | $base-sub-menu-hover:#001528; |
| | | $base-sub-menu-background:#ffffff; |
| | | $base-sub-menu-hover:#abceef; |
| | | |
| | | // 自定义暗色菜单风格 |
| | | /** |
| | |
| | | |
| | | </div> |
| | | <div class="button-container"> |
| | | <el-button type="primary" @click="toScreen">可视化大屏</el-button> |
| | | <el-button type="primary" @click="toScreen" size="small">可视化大屏</el-button> |
| | | </div> |
| | | <div class="button-container"> |
| | | <el-button type="primary" @click="toSystemB">跳转B系统</el-button> |
| | | <el-button type="primary" @click="toSystemB" size="small">跳转B系统</el-button> |
| | | </div> |
| | | <div class="button-container"> |
| | | <el-button type="primary" @click="toSystemA">跳转A系统</el-button> |
| | | <el-button type="primary" @click="toSystemA" size="small">跳转A系统</el-button> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | <template> |
| | | <div v-if="!item.hidden"> |
| | | <template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow"> |
| | | <app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path, onlyOneChild.query)"> |
| | | <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}"> |
| | | <item :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="onlyOneChild.meta.title" /> |
| | | <template |
| | | v-if=" |
| | | hasOneShowingChild(item.children, item) && |
| | | (!onlyOneChild.children || onlyOneChild.noShowingChildren) && |
| | | !item.alwaysShow |
| | | " |
| | | > |
| | | <app-link |
| | | v-if="onlyOneChild.meta" |
| | | :to="resolvePath(onlyOneChild.path, onlyOneChild.query)" |
| | | > |
| | | <el-menu-item |
| | | :index="resolvePath(onlyOneChild.path)" |
| | | :class="{ 'submenu-title-noDropdown': !isNest }" |
| | | > |
| | | <item |
| | | :icon="onlyOneChild.meta.icon || (item.meta && item.meta.icon)" |
| | | :title="onlyOneChild.meta.title" |
| | | /> |
| | | </el-menu-item> |
| | | </app-link> |
| | | </template> |
| | | |
| | | <el-submenu v-else ref="subMenu" :index="resolvePath(item.path)" popper-append-to-body> |
| | | <el-submenu |
| | | v-else |
| | | ref="subMenu" |
| | | :index="resolvePath(item.path)" |
| | | popper-append-to-body |
| | | > |
| | | <template slot="title"> |
| | | <item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" /> |
| | | <item |
| | | v-if="item.meta" |
| | | :icon="item.meta && item.meta.icon" |
| | | :title="item.meta.title" |
| | | /> |
| | | </template> |
| | | <sidebar-item |
| | | v-for="(child, index) in item.children" |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import path from 'path' |
| | | import { isExternal } from '@/utils/validate' |
| | | import Item from './Item' |
| | | import AppLink from './Link' |
| | | import FixiOSBug from './FixiOSBug' |
| | | import path from "path"; |
| | | import { isExternal } from "@/utils/validate"; |
| | | import Item from "./Item"; |
| | | import AppLink from "./Link"; |
| | | import FixiOSBug from "./FixiOSBug"; |
| | | |
| | | export default { |
| | | name: 'SidebarItem', |
| | | name: "SidebarItem", |
| | | components: { Item, AppLink }, |
| | | mixins: [FixiOSBug], |
| | | props: { |
| | | // route object |
| | | item: { |
| | | type: Object, |
| | | required: true |
| | | required: true, |
| | | }, |
| | | isNest: { |
| | | type: Boolean, |
| | | default: false |
| | | default: false, |
| | | }, |
| | | basePath: { |
| | | type: String, |
| | | default: '' |
| | | } |
| | | default: "", |
| | | }, |
| | | }, |
| | | data() { |
| | | this.onlyOneChild = null |
| | | return {} |
| | | this.onlyOneChild = null; |
| | | return {}; |
| | | }, |
| | | methods: { |
| | | hasOneShowingChild(children = [], parent) { |
| | | if (!children) { |
| | | children = []; |
| | | } |
| | | const showingChildren = children.filter(item => { |
| | | const showingChildren = children.filter((item) => { |
| | | if (item.hidden) { |
| | | return false |
| | | return false; |
| | | } else { |
| | | // Temp set(will be used if only has one showing child) |
| | | this.onlyOneChild = item |
| | | return true |
| | | this.onlyOneChild = item; |
| | | return true; |
| | | } |
| | | }) |
| | | }); |
| | | |
| | | // When there is only one child router, the child router is displayed by default |
| | | if (showingChildren.length === 1) { |
| | | return true |
| | | return true; |
| | | } |
| | | |
| | | // Show parent if there are no child router to display |
| | | if (showingChildren.length === 0) { |
| | | this.onlyOneChild = { ... parent, path: '', noShowingChildren: true } |
| | | return true |
| | | this.onlyOneChild = { ...parent, path: "", noShowingChildren: true }; |
| | | return true; |
| | | } |
| | | |
| | | return false |
| | | return false; |
| | | }, |
| | | resolvePath(routePath, routeQuery) { |
| | | if (isExternal(routePath)) { |
| | | return routePath |
| | | return routePath; |
| | | } |
| | | if (isExternal(this.basePath)) { |
| | | return this.basePath |
| | | return this.basePath; |
| | | } |
| | | if (routeQuery) { |
| | | let query = JSON.parse(routeQuery); |
| | | return { path: path.resolve(this.basePath, routePath), query: query } |
| | | return { path: path.resolve(this.basePath, routePath), query: query }; |
| | | } |
| | | return path.resolve(this.basePath, routePath) |
| | | } |
| | | } |
| | | } |
| | | return path.resolve(this.basePath, routePath); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | <template> |
| | | <div :class="{'has-logo':showLogo}" :style="{ backgroundColor: settings.sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }"> |
| | | <div |
| | | :class="{ 'has-logo': showLogo }" |
| | | :style="{ |
| | | backgroundColor: |
| | | settings.sideTheme === 'theme-dark' |
| | | ? variables.menuBackground |
| | | : variables.menuLightBackground, |
| | | }" |
| | | > |
| | | <logo v-if="showLogo" :collapse="isCollapse" /> |
| | | <el-scrollbar :class="settings.sideTheme" wrap-class="scrollbar-wrapper"> |
| | | <el-menu |
| | | :default-active="activeMenu" |
| | | :collapse="isCollapse" |
| | | :background-color="settings.sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground" |
| | | :text-color="settings.sideTheme === 'theme-dark' ? variables.menuColor : variables.menuLightColor" |
| | | :unique-opened="true" |
| | | :active-text-color="settings.theme" |
| | | :collapse-transition="false" |
| | | mode="vertical" |
| | | > |
| | |
| | | }, |
| | | isCollapse() { |
| | | return !this.sidebar.opened; |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | <template> |
| | | <div class="select-container"> |
| | | <div class="type-select"> |
| | | <div class="tabs-box"> |
| | | <el-tabs v-model="activeName" @tab-click="handleClick"> |
| | | <el-tab-pane |
| | | v-for="item in testData1" |
| | | :label="item.name" |
| | | :name="item.value" |
| | | ></el-tab-pane> |
| | | </el-tabs> |
| | | <!-- <div> |
| | | <el-button> |
| | | |
| | | </el-button> |
| | | </div> --> |
| | | </div> |
| | | |
| | | <!-- <div class="type-select"> |
| | | <div class="select-label">数据源</div> |
| | | <el-select v-model="typeValue" popper-class="type-select" class="select-style" @change="setConfig"> |
| | | <el-option v-for="item in testData1" :key="item.name" :label="item.name" :value="item.value" /> |
| | | <el-select |
| | | v-model="typeValue" |
| | | popper-class="type-select" |
| | | class="select-style" |
| | | @change="setConfig" |
| | | > |
| | | <el-option |
| | | v-for="item in testData1" |
| | | :key="item.name" |
| | | :label="item.name" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </div> |
| | | |
| | | <div class="local-select"> |
| | | </div> --> |
| | | <!-- <div class="local-select"> |
| | | <div class="select-label">地区</div> |
| | | <el-select v-model="localValue" popper-class="type-select" class="select-style" @change="setConfig"> |
| | | <el-option v-for="item in testData2" :key="item.name" :label="item.name" :value="item.value" /> |
| | | <el-select |
| | | v-model="localValue" |
| | | popper-class="type-select" |
| | | class="select-style" |
| | | @change="setConfig" |
| | | > |
| | | <el-option |
| | | v-for="item in testData2" |
| | | :key="item.name" |
| | | :label="item.name" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </div> |
| | | |
| | | </div> --> |
| | | <div class="date-select"> |
| | | <div class="select-label">日期</div> |
| | | <el-date-picker v-model="dateValue" type="daterange" range-separator="至" start-placeholder="开始日期" |
| | | end-placeholder="结束日期" value-format="yyyy-MM-dd" @change="setConfig" /> |
| | | <el-date-picker |
| | | v-model="dateValue" |
| | | type="daterange" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | value-format="yyyy-MM-dd" |
| | | @change="setConfig" |
| | | /> |
| | | </div> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | typeValue: 1, |
| | | localValue: 1, |
| | | dateValue: new Date(), |
| | | activeName: 1, |
| | | |
| | | testData1: [ |
| | | { |
| | | name: '省厅数据', |
| | | value: 1 |
| | | }, |
| | | { |
| | | name: '市局数据', |
| | | value: 2 |
| | | }, |
| | | { |
| | | name: '公安部数据', |
| | | value: 3 |
| | | } |
| | | ], |
| | | testData2: [ |
| | | { |
| | | name: '富顺县', |
| | | name: "省厅数据", |
| | | value: 1, |
| | | }, |
| | | { |
| | | name: '荣县', |
| | | name: "市局数据", |
| | | value: 2, |
| | | }, |
| | | { |
| | | name: '高新区', |
| | | name: "公安部数据", |
| | | value: 3, |
| | | }, |
| | | ], |
| | | testData2: [ |
| | | { |
| | | name: "富顺县", |
| | | value: 1, |
| | | }, |
| | | { |
| | | name: "荣县", |
| | | value: 2, |
| | | }, |
| | | { |
| | | name: "高新区", |
| | | value: 3, |
| | | }, |
| | | { |
| | | name: '自流井区', |
| | | name: "自流井区", |
| | | value: 4, |
| | | }, |
| | | { |
| | | name: '贡井区', |
| | | name: "贡井区", |
| | | value: 5, |
| | | }, |
| | | { |
| | | name: '大安区', |
| | | name: "大安区", |
| | | value: 6, |
| | | }, |
| | | { |
| | | name: '沿滩区', |
| | | name: "沿滩区", |
| | | value: 7, |
| | | }, |
| | | ] |
| | | } |
| | | ], |
| | | }; |
| | | }, |
| | | methods: { |
| | | setConfig() { |
| | | |
| | | } |
| | | } |
| | | } |
| | | setConfig() {}, |
| | | handleClick() {}, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .select-container { |
| | | position: absolute; |
| | | top: 10px; |
| | | top: 0px; |
| | | left: 20px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | justify-content: space-between; |
| | | width: 90%; |
| | | .select-label { |
| | | font-size: 20px; |
| | | margin-right: 10px; |
| | |
| | | width: 320px; |
| | | } |
| | | } |
| | | ::v-deep .tabs-box { |
| | | width: 40%; |
| | | .el-tabs__item { |
| | | color: #ffffff !important; |
| | | } |
| | | .is-active{ |
| | | color: #4481dd !important; |
| | | } |
| | | } |
| | | ::v-deep .el-input__inner { |
| | | background: rgba(67, 102, 155, 0.4) !important; |
| | | color: #4481DD; |
| | | border-color: #4481DD !important; |
| | | color: #4481dd; |
| | | border-color: #4481dd !important; |
| | | } |
| | | |
| | | ::v-deep .date-select .el-range-input { |
| | | background-color: transparent !important; |
| | | color: #4481DD; |
| | | color: #4481dd; |
| | | } |
| | | ::v-deep .date-select .el-date-editor .el-range-separator { |
| | | color: #4481DD !important; |
| | | color: #4481dd !important; |
| | | } |
| | | |
| | | |
| | | </style> |
| | |
| | | }, |
| | | created() { |
| | | //考核成绩详情跳转参数接收 |
| | | console.log(this.$route.query.index) |
| | | if (this.$route.query.index) { |
| | | this.queryParams.deptId = this.$route.query.index |
| | | this.queryParamsList.deptId = this.$route.query.index |
| | |
| | | <template> |
| | | <div> |
| | | |
| | | <div class="container"> |
| | | <el-row type="flex" justify="start"> |
| | | <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="start" v-for="(items, index) in groupData(videoData)"> |
| | | <el-col :span="4" v-for="item in items" :key="item.id"> |
| | | <el-card style="width:150px;height: 150px;text-align: center;border-bottom-width: 3px;"> |
| | | <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i> |
| | | <div style="font-size:12px; text-align: center; height: 25px;">{{ item.ruleName }} </div> |
| | | <el-row :gutter="20"> |
| | | <el-col |
| | | :xl="4" |
| | | :lg="4" |
| | | :md="6" |
| | | :sm="6" |
| | | :xs="12" |
| | | v-for="item in videoData" |
| | | :key="item.id" |
| | | class="col-margin" |
| | | > |
| | | <el-card |
| | | style=" |
| | | min-width: 150px; |
| | | width: 100%; |
| | | height: 150px; |
| | | text-align: center; |
| | | border-bottom-width: 3px; |
| | | " |
| | | > |
| | | <i style="font-size: 40px; padding: 15px" :class="item.icon"></i> |
| | | <div style="font-size: 12px; text-align: center; height: 25px"> |
| | | {{ item.ruleName }} |
| | | </div> |
| | | <div class="bottom clearfix"> |
| | | <el-button type="text" class="button" @click="handleUpdate(item)">修改</el-button> |
| | | <el-button type="text" class="button" @click="handleUpdate(item)" |
| | | >修改</el-button |
| | | > |
| | | </div> |
| | | </el-card> |
| | | <br/> |
| | |
| | | <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="start" v-for="(items, index) in groupData(carData)"> |
| | | <el-col :span="4" v-for="item in items" :key="item.id"> |
| | | <el-card style="width:150px;height: 150px;text-align: center;border-bottom-width: 3px;"> |
| | | <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i> |
| | | <div style="font-size:12px; text-align: center; height: 25px;">{{ item.ruleName }} </div> |
| | | <el-row :gutter="20"> |
| | | <el-col |
| | | :xl="4" |
| | | :lg="4" |
| | | :md="6" |
| | | :sm="6" |
| | | :xs="12" |
| | | v-for="item in carData" |
| | | :key="item.id" |
| | | class="col-margin" |
| | | > |
| | | <el-card |
| | | style=" |
| | | min-width: 150px; |
| | | width: 100%; |
| | | height: 150px; |
| | | text-align: center; |
| | | border-bottom-width: 3px; |
| | | " |
| | | > |
| | | <i style="font-size: 40px; padding: 15px" :class="item.icon"></i> |
| | | <div style="font-size: 12px; text-align: center; height: 25px"> |
| | | {{ item.ruleName }} |
| | | </div> |
| | | <div class="bottom clearfix"> |
| | | <el-button type="text" class="button" @click="handleUpdate(item)">修改</el-button> |
| | | <el-button type="text" class="button" @click="handleUpdate(item)" |
| | | >修改</el-button |
| | | > |
| | | </div> |
| | | </el-card> |
| | | <br/> |
| | |
| | | <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="start" v-for="(items, index) in groupData(faceData)"> |
| | | <el-col :span="4" v-for="item in items" :key="item.id"> |
| | | <el-card style="width:150px;height: 150px;text-align: center;border-bottom-width: 3px;"> |
| | | <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i> |
| | | <div style="font-size:12px; text-align: center; height: 25px;">{{ item.ruleName }} </div> |
| | | <el-row :gutter="20"> |
| | | <el-col |
| | | :xl="4" |
| | | :lg="4" |
| | | :md="6" |
| | | :sm="6" |
| | | :xs="12" |
| | | v-for="item in faceData" |
| | | :key="item.id" |
| | | class="col-margin" |
| | | > |
| | | <el-card |
| | | style=" |
| | | min-width: 150px; |
| | | width: 100%; |
| | | height: 150px; |
| | | text-align: center; |
| | | border-bottom-width: 3px; |
| | | " |
| | | > |
| | | <i style="font-size: 40px; padding: 15px" :class="item.icon"></i> |
| | | <div style="font-size: 12px; text-align: center; height: 25px"> |
| | | {{ item.ruleName }} |
| | | </div> |
| | | <div class="bottom clearfix"> |
| | | <el-button type="text" class="button" @click="handleUpdate(item)">修改</el-button> |
| | | <el-button type="text" class="button" @click="handleUpdate(item)" |
| | | >修改</el-button |
| | | > |
| | | </div> |
| | | </el-card> |
| | | <br/> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="规则描述" prop="ruleDescription"> |
| | | <el-input v-model="form.ruleDescription" type="textarea" :autosize="{ minRows: 4, maxRows: 6}" placeholder="请输入规则名称"/> |
| | | <el-input |
| | | v-model="form.ruleDescription" |
| | | type="textarea" |
| | | :autosize="{ minRows: 4, maxRows: 6 }" |
| | | placeholder="请输入规则名称" |
| | | /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | |
| | | <!-- 审核考核规则对话框 --> |
| | | <el-dialog :title="title" :visible.sync="auditOpen" width="600px" append-to-body> |
| | | <el-dialog |
| | | :title="title" |
| | | :visible.sync="auditOpen" |
| | | width="600px" |
| | | append-to-body |
| | | > |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="规则名称" prop="ruleName"> |
| | | <el-input v-model="form.ruleName" placeholder="请输入规则名称" disabled/> |
| | | <el-input |
| | | v-model="form.ruleName" |
| | | placeholder="请输入规则名称" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="考核类型" prop="examineCategory"> |
| | | <el-select v-model="form.examineCategory" placeholder="考核类型" disabled> |
| | | <el-select |
| | | v-model="form.examineCategory" |
| | | placeholder="考核类型" |
| | | disabled |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.platform_examine_category" |
| | | :key="dict.value" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="规则类型" prop="ruleCategory"> |
| | | <el-select v-model="form.ruleCategory" placeholder="考核类型" disabled> |
| | | <el-select |
| | | v-model="form.ruleCategory" |
| | | placeholder="考核类型" |
| | | disabled |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.platform_rule_category" |
| | | :key="dict.value" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="规则描述" prop="ruleDescription"> |
| | | <el-input v-model="form.ruleDescription" type="textarea" placeholder="请输入规则名称" disabled/> |
| | | <el-input |
| | | v-model="form.ruleDescription" |
| | | type="textarea" |
| | | placeholder="请输入规则名称" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | |
| | | |
| | | <el-form-item label="审核结果" prop="auditState" > |
| | | <el-radio-group v-model="form.auditState"> |
| | |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="审核说明" prop="auditDescription" > |
| | | <el-input v-model="form.auditDescription" type="textarea" show-word-limit maxlength="100" /> |
| | | <el-input |
| | | v-model="form.auditDescription" |
| | | type="textarea" |
| | | show-word-limit |
| | | maxlength="100" |
| | | /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { listCheckRule, getCheckRule, delCheckRule, addCheckRule, updateCheckRule } from "@/api/platform/check-rule"; |
| | | import { |
| | | listCheckRule, |
| | | getCheckRule, |
| | | delCheckRule, |
| | | addCheckRule, |
| | | updateCheckRule, |
| | | } from "@/api/platform/check-rule"; |
| | | export default { |
| | | name: "CheckRule", |
| | | dicts: ['platform_audit_state','platform_rule_category'], |
| | | dicts: ["platform_audit_state", "platform_rule_category"], |
| | | data() { |
| | | return { |
| | | // 遮罩层 |
| | |
| | | videoData: [], |
| | | carData: [], |
| | | faceData: [], |
| | | activeIndex: '0', |
| | | activeIndex: "0", |
| | | // 表单参数 |
| | | form: {}, |
| | | // 表单校验 |
| | | rules: { |
| | | ruleName: [ |
| | | { required: true, message: "规则名称不能为空", trigger: "blur" } |
| | | { required: true, message: "规则名称不能为空", trigger: "blur" }, |
| | | ], |
| | | } |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | groupData(data) { |
| | | // 将数据按每六个一组进行分组 |
| | | const groupedData = []; |
| | | for (let i = 0; i < data.length; i += 6) { |
| | | groupedData.push(data.slice(i, i + 6)); |
| | | } |
| | | return groupedData; |
| | | }, |
| | | |
| | | /** 查询考核规则列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) { |
| | | if (null != this.daterangeCreateTime && "" != this.daterangeCreateTime) { |
| | | this.queryParams["start"] = this.daterangeCreateTime[0]; |
| | | this.queryParams["end"] = this.daterangeCreateTime[1]; |
| | | } |
| | | listCheckRule(this.queryParams).then(response => { |
| | | listCheckRule(this.queryParams).then((response) => { |
| | | this.videoData = response.data.videoRules; |
| | | this.faceData = response.data.faceRules; |
| | | this.carData = response.data.carRules; |
| | |
| | | faceCheckpointNum: null, |
| | | createTime: null, |
| | | updateTime: null, |
| | | deleted: null |
| | | deleted: null, |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | |
| | | }, |
| | | getStatusColor(status) { |
| | | switch (status) { |
| | | case 'pending': |
| | | return '#ffffff'; // '#00a1d6'蓝色,表示待审核 |
| | | case 'approved': |
| | | return '#ffffff'; // '#00e297'绿色,表示已审核 |
| | | case 'rejected': |
| | | return '#f56c6c'; // 红色,表示审核未通过 |
| | | case "pending": |
| | | return "#ffffff"; // '#00a1d6'蓝色,表示待审核 |
| | | case "approved": |
| | | return "#ffffff"; // '#00e297'绿色,表示已审核 |
| | | case "rejected": |
| | | return "#f56c6c"; // 红色,表示审核未通过 |
| | | default: |
| | | return '#ffffff'; // 白色,默认状态 |
| | | return "#ffffff"; // 白色,默认状态 |
| | | } |
| | | }, |
| | | |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | this.single = selection.length!==1 |
| | | this.multiple = !selection.length |
| | | this.ids = selection.map((item) => item.id); |
| | | this.single = selection.length !== 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(item) { |
| | | this.reset(); |
| | | const id = item.id || this.ids |
| | | const id = item.id || this.ids; |
| | | this.form = item; |
| | | this.open = true; |
| | | this.title = "修改考核规则"; |
| | |
| | | /** 审核按钮操作 */ |
| | | handleAudit(row) { |
| | | this.reset(); |
| | | const id = row.id || this.ids |
| | | getCheckRule(id).then(response => { |
| | | const id = row.id || this.ids; |
| | | getCheckRule(id).then((response) => { |
| | | this.form = response.data; |
| | | this.auditOpen = true; |
| | | this.title = "审核考核规则"; |
| | |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm() { |
| | | this.$refs["form"].validate(valid => { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.form.id != null) { |
| | | updateCheckRule(this.form).then(response => { |
| | | updateCheckRule(this.form).then((response) => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.auditOpen = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addCheckRule(this.form).then(response => { |
| | | addCheckRule(this.form).then((response) => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.auditOpen = false; |
| | |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | | this.$modal.confirm('是否确认删除考核规则编号为"' + ids + '"的数据项?').then(function() { |
| | | this.$modal |
| | | .confirm('是否确认删除考核规则编号为"' + ids + '"的数据项?') |
| | | .then(function () { |
| | | return delCheckRule(ids); |
| | | }).then(() => { |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).catch(() => {}); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | this.download('system/checkRule/export', { |
| | | ...this.queryParams |
| | | }, `checkRule_${new Date().getTime()}.xlsx`) |
| | | } |
| | | } |
| | | this.download( |
| | | "system/checkRule/export", |
| | | { |
| | | ...this.queryParams, |
| | | }, |
| | | `checkRule_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | .el-menu{ |
| | | margin: 10px auto; |
| | | } |
| | | |
| | | .col-margin { |
| | | padding-right: 20px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="100px" |
| | | > |
| | | <el-form-item label="考核对象" prop="unitId"> |
| | | <el-select v-model="queryParams.unitId" @change="handleQuery" clearable placeholder="考核对象"> |
| | | <el-option v-for="item in unitList" :key="item.id" :label="item.value" :value="item.id"> |
| | | <el-select |
| | | v-model="queryParams.unitId" |
| | | @change="handleQuery" |
| | | clearable |
| | | placeholder="考核对象" |
| | | > |
| | | <el-option |
| | | v-for="item in unitList" |
| | | :key="item.id" |
| | | :label="item.value" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="发布状态" prop="unitId"> |
| | | <el-select v-model="queryParams.publish" @change="handleQuery" clearable placeholder="发布状态"> |
| | | <el-select |
| | | v-model="queryParams.publish" |
| | | @change="handleQuery" |
| | | clearable |
| | | placeholder="发布状态" |
| | | > |
| | | <el-option label="未发布" :value="0" /> |
| | | <el-option label="已发布" :value="1" /> |
| | | </el-select> |
| | |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="mini" |
| | | @click="handleQuery" |
| | | >搜索</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" |
| | | >重置</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | |
| | | :disabled="multiple" |
| | | v-hasPermi="['system:result:remove']" |
| | | @click="handleDelete" |
| | | >删除</el-button> |
| | | >删除</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | size="mini" |
| | | v-hasPermi="['system:result:export']" |
| | | @click="handleExport" |
| | | >导出</el-button> |
| | | >导出</el-button |
| | | > |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | <right-toolbar |
| | | :showSearch.sync="showSearch" |
| | | @queryTable="getList" |
| | | ></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-row v-loading="loading"> |
| | | <el-col :span="8" v-for="(item, index) in checkResultList" :key="index"> |
| | | <el-col |
| | | :xl="8" |
| | | :lg="8" |
| | | :md="12" |
| | | :sm="12" |
| | | :xs="12" |
| | | v-for="(item, index) in checkResultList" |
| | | :key="index" |
| | | > |
| | | <el-card class="box-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <span>{{ item.contractName }}</span> |
| | | <el-button style="float: right; padding: 3px 6px" type="text" @click="handleDetail(item)">详情</el-button> |
| | | <el-button |
| | | style="float: right; padding: 3px 6px" |
| | | type="text" |
| | | @click="handleDetail(item)" |
| | | >详情</el-button |
| | | > |
| | | </div> |
| | | <div class="text item">考核对象<span class="time">{{ item.unitName }}</span></div> |
| | | <div class="text item">考核分数<span class="time">{{ item.score }}</span></div> |
| | | <div class="text item">考核时间 |
| | | <div class="text item"> |
| | | 考核对象<span class="time">{{ item.unitName }}</span> |
| | | </div> |
| | | <div class="text item"> |
| | | 考核分数<span class="time">{{ item.score }}</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" v-hasPermi="['result:contract:publish']">确认发布</el-button> |
| | | <el-button size="small" round style="float: right;" disabled 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 |
| | | > |
| | | <el-button |
| | | size="small" |
| | | round |
| | | style="float: right" |
| | | disabled |
| | | v-show="item.publish == 1" |
| | | v-hasPermi="['result:contract:publish']" |
| | | >已发布</el-button |
| | | > |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | |
| | | <pagination |
| | | v-show="total>0" |
| | |
| | | @pagination="getList" |
| | | /> |
| | | |
| | | <el-dialog :title="manualScoreTitle" :visible.sync="manualScoreOpen" width="500px" append-to-body> |
| | | <el-input v-model="manualScoreForm.manualScore" type="number" placeholder="请为该单位打分"/> |
| | | <el-dialog |
| | | :title="manualScoreTitle" |
| | | :visible.sync="manualScoreOpen" |
| | | width="500px" |
| | | append-to-body |
| | | > |
| | | <el-input |
| | | v-model="manualScoreForm.manualScore" |
| | | type="number" |
| | | placeholder="请为该单位打分" |
| | | /> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitManualScore">确 定</el-button> |
| | | <el-button @click="cancelManualScore">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :title="detailTitle" :visible.sync="detailOpen" width="700px" append-to-body> |
| | | <el-dialog |
| | | :title="detailTitle" |
| | | :visible.sync="detailOpen" |
| | | width="700px" |
| | | append-to-body |
| | | > |
| | | <el-descriptions class="margin-top" :column="3" border> |
| | | <el-descriptions-item> |
| | | <template slot="label"> |
| | |
| | | <el-tag type="danger" size="small">{{detail.score}}</el-tag> |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | <el-table |
| | | :data="tableData" |
| | | show-summary |
| | | style="width: 100%"> |
| | | <el-table :data="tableData" show-summary style="width: 100%"> |
| | | <el-table-column |
| | | prop="ruleName" |
| | | label="规则名" |
| | | :show-overflow-tooltip="true" |
| | | width="300"> |
| | | width="300" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="扣减方式" |
| | | align="center" |
| | | prop="deductCategory" |
| | | width="180px"> |
| | | width="180px" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="num" |
| | | label="指标"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="score" |
| | | label="扣分"> |
| | | </el-table-column> |
| | | <el-table-column prop="num" label="指标"> </el-table-column> |
| | | <el-table-column prop="score" label="扣分"> </el-table-column> |
| | | </el-table> |
| | | </el-dialog> |
| | | |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { resultRecord, listCheckResult, getCheckResult, delCheckResult, addCheckResult, updateCheckResult,manualScore, publishCheckResult } from "@/api/platform/contract-result"; |
| | | import { |
| | | resultRecord, |
| | | listCheckResult, |
| | | getCheckResult, |
| | | delCheckResult, |
| | | addCheckResult, |
| | | updateCheckResult, |
| | | manualScore, |
| | | publishCheckResult, |
| | | } from "@/api/platform/contract-result"; |
| | | import { unitSelect } from "@/api/platform/unit"; |
| | | |
| | | export default { |
| | | name: "CheckResult", |
| | | data() { |
| | | return { |
| | | detailTitle: '', |
| | | detailTitle: "", |
| | | detailOpen: false, |
| | | detail:{ |
| | | |
| | | }, |
| | | detail: {}, |
| | | tableData: [], |
| | | manualScoreOpen: false, |
| | | manualScoreForm: {}, |
| | | manualScoreTitle: '', |
| | | manualScoreTitle: "", |
| | | // 遮罩层 |
| | | loading: true, |
| | | // 选中数组 |
| | |
| | | // 表单参数 |
| | | form: {}, |
| | | // 表单校验 |
| | | rules: { |
| | | }, |
| | | unitList: [] |
| | | rules: {}, |
| | | unitList: [], |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | // 运维单位下拉列表 |
| | | unitSelect().then((res) => { |
| | | this.unitList = res.data; |
| | | }) |
| | | }); |
| | | }, |
| | | /** 查询考核结果列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | if (null != this.daterangeCheckTime && '' != this.daterangeCheckTime) { |
| | | if (null != this.daterangeCheckTime && "" != this.daterangeCheckTime) { |
| | | this.queryParams["createStartTime"] = this.daterangeCheckTime[0]; |
| | | this.queryParams["createEndTime"] = this.daterangeCheckTime[1]; |
| | | } |
| | | console.log("this.queryParams", this.queryParams) |
| | | listCheckResult(this.queryParams).then(response => { |
| | | console.log("this.queryParams", this.queryParams); |
| | | listCheckResult(this.queryParams).then((response) => { |
| | | this.checkResultList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | |
| | | checkTime: null, |
| | | createTime: null, |
| | | updateTime: null, |
| | | deleted: null |
| | | deleted: null, |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | |
| | | submitManualScore() { |
| | | if (! this.manualScoreForm.manualScore) { |
| | | this.$modal.msgWarning("请填写分数"); |
| | | return |
| | | return; |
| | | } |
| | | manualScore(this.manualScoreForm).then(res => { |
| | | manualScore(this.manualScoreForm).then((res) => { |
| | | this.$modal.msgSuccess("操作成功"); |
| | | this.cancelManualScore(); |
| | | this.getList(); |
| | | }) |
| | | }); |
| | | }, |
| | | handleSetManualScore(row) { |
| | | this.manualScoreForm.id = row.id; |
| | | this.manualScoreForm.manualScore = parseInt(row.manualScore); |
| | | this.manualScoreTitle = row.checkUnitName + '人工打分' |
| | | this.manualScoreTitle = row.checkUnitName + "人工打分"; |
| | | this.manualScoreOpen = true; |
| | | }, |
| | | handleDetail(row) { |
| | | resultRecord(row.id).then(res => { |
| | | resultRecord(row.id).then((res) => { |
| | | this.tableData = res.rows; |
| | | }) |
| | | }); |
| | | this.detail = row; |
| | | this.detailTitle = '考核结果详情'; |
| | | this.detailTitle = "考核结果详情"; |
| | | this.detailOpen = true; |
| | | }, |
| | | handlePublish(row) { |
| | | let text = row.publish == 1 ? '取消发布' : '发布'; |
| | | let text = row.publish == 1 ? "取消发布" : "发布"; |
| | | const ids = row.id || this.ids; |
| | | this.$modal.confirm('是否确认' + text + '考核结果编号为"' + ids + '"的数据项?').then(function() { |
| | | this.$modal |
| | | .confirm("是否确认" + text + '考核结果编号为"' + ids + '"的数据项?') |
| | | .then(function () { |
| | | return publishCheckResult(ids); |
| | | }).then(() => { |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess(text + "成功"); |
| | | }).catch(() => {}); |
| | | |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | this.single = selection.length!==1 |
| | | this.multiple = !selection.length |
| | | this.ids = selection.map((item) => item.id); |
| | | this.single = selection.length !== 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.reset(); |
| | | const id = row.id || this.ids |
| | | getCheckResult(id).then(response => { |
| | | const id = row.id || this.ids; |
| | | getCheckResult(id).then((response) => { |
| | | this.form = response.data; |
| | | this.open = true; |
| | | this.title = "修改考核结果"; |
| | |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm() { |
| | | this.$refs["form"].validate(valid => { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.form.id != null) { |
| | | updateCheckResult(this.form).then(response => { |
| | | updateCheckResult(this.form).then((response) => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addCheckResult(this.form).then(response => { |
| | | addCheckResult(this.form).then((response) => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | | this.$modal.confirm('是否确认删除考核结果编号为"' + ids + '"的数据项?').then(function() { |
| | | this.$modal |
| | | .confirm('是否确认删除考核结果编号为"' + ids + '"的数据项?') |
| | | .then(function () { |
| | | return delCheckResult(ids); |
| | | }).then(() => { |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).catch(() => {}); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | this.download('check/result/export', { |
| | | ...this.queryParams |
| | | }, `合同考核结果_${new Date().getTime()}.xlsx`) |
| | | this.download( |
| | | "check/result/export", |
| | | { |
| | | ...this.queryParams, |
| | | }, |
| | | |
| | | } |
| | | `合同考核结果_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style> |
| | |
| | | content: ""; |
| | | } |
| | | .clearfix:after { |
| | | clear: both |
| | | clear: both; |
| | | } |
| | | .box-card { |
| | | width: 400px; |
| | |
| | | <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 :gutter="20"> |
| | | <el-col :xl="4" :lg="4" :md="6" :sm="6" :xs="12" v-for="(item, index) in videoData" :key="index" |
| | | :style="item.name == '' ? 'display:none' : ''" class="col-margin"> |
| | | <el-link @click="handleDetail(item, index)"> |
| | | <el-card style="width:150px;height: 150px;text-align: center;"> |
| | | <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i> |
| | | <el-col |
| | | :xl="4" |
| | | :lg="4" |
| | | :md="6" |
| | | :sm="6" |
| | | :xs="12" |
| | | v-for="(item, index) in videoData" |
| | | :key="index" |
| | | :style="item.name == '' ? 'display:none' : ''" |
| | | class="col-margin" |
| | | > |
| | | <el-link @click="handleDetail(item, index)" style="width: 100%"> |
| | | <el-card |
| | | style="min-width: 150px;width:100%; height: 150px; text-align: center" |
| | | > |
| | | <i style="font-size: 40px; padding: 15px" :class="item.icon"></i> |
| | | <div>{{ item.name }}</div> |
| | | </el-card> |
| | | </el-link> |
| | |
| | | <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 :gutter="20"> |
| | | <el-col :xl="4" :lg="4" :md="6" :sm="6" :xs="12" v-for="(item, index) in carData" :key="index" |
| | | :style="item.name == '' ? 'display:none' : ''" class="col-margin"> |
| | | <el-link @click="handleDetail(item, index)"> |
| | | <el-card style="width:150px;height: 150px;text-align: center;"> |
| | | <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i> |
| | | <el-col |
| | | :xl="4" |
| | | :lg="4" |
| | | :md="6" |
| | | :sm="6" |
| | | :xs="12" |
| | | v-for="(item, index) in carData" |
| | | :key="index" |
| | | :style="item.name == '' ? 'display:none' : ''" |
| | | class="col-margin" |
| | | > |
| | | <el-link @click="handleDetail(item, index)" style="width: 100%"> |
| | | <el-card style="min-width: 150px;width:100%; height: 150px; text-align: center"> |
| | | <i style="font-size: 40px; padding: 15px" :class="item.icon"></i> |
| | | <div>{{ item.name }}</div> |
| | | </el-card> |
| | | </el-link> |
| | |
| | | <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 :gutter="20"> |
| | | <el-col :xl="4" :lg="4" :md="6" :sm="6" :xs="12" v-for="(item, index) in faceData" :key="index" |
| | | :style="item.name == '' ? 'display:none' : ''" class="col-margin"> |
| | | <el-link @click="handleDetail(item, index)"> |
| | | <el-card style="width:150px;height: 150px;text-align: center;"> |
| | | <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i> |
| | | <el-col |
| | | :xl="4" |
| | | :lg="4" |
| | | :md="6" |
| | | :sm="6" |
| | | :xs="12" |
| | | v-for="(item, index) in faceData" |
| | | :key="index" |
| | | :style="item.name == '' ? 'display:none' : ''" |
| | | class="col-margin" |
| | | > |
| | | <el-link @click="handleDetail(item, index)" style="width: 100%"> |
| | | <el-card style="min-width: 150px;width:100%; height: 150px; text-align: center"> |
| | | <i style="font-size: 40px; padding: 15px" :class="item.icon"></i> |
| | | <div>{{ item.name }}</div> |
| | | </el-card> |
| | | </el-link> |
| | |
| | | <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 :gutter="20"> |
| | | <el-col :xl="4" :lg="4" :md="6" :sm="6" :xs="12" v-for="(item, index) in equipment" :key="index" |
| | | :style="item.name == '' ? 'display:none' : ''" class="col-margin"> |
| | | <el-link @click="handleDetail(item, index)"> |
| | | <el-card style="width:150px;height: 150px;text-align: center;"> |
| | | <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i> |
| | | <el-col |
| | | :xl="4" |
| | | :lg="4" |
| | | :md="6" |
| | | :sm="6" |
| | | :xs="12" |
| | | v-for="(item, index) in equipment" |
| | | :key="index" |
| | | :style="item.name == '' ? 'display:none' : ''" |
| | | class="col-margin" |
| | | > |
| | | <el-link @click="handleDetail(item, index)" style="width: 100%"> |
| | | <el-card style="min-width: 150px;width:100%; height: 150px; text-align: center"> |
| | | <i style="font-size: 40px; padding: 15px" :class="item.icon"></i> |
| | | <div>{{ item.name }}</div> |
| | | </el-card> |
| | | </el-link> |
| | |
| | | data() { |
| | | return { |
| | | videoData: [ |
| | | { name: '平台在线', icon: 'el-icon-connection', description: '描述信息', type: '1' }, |
| | | { name: '一机一档', icon: 'el-icon-folder', description: '描述信息', type: '1' }, |
| | | { name: '点位在线', icon: 'el-icon-search', description: '描述信息', type: '1' }, |
| | | { name: '录像可用', icon: 'el-icon-turn-off', description: '描述信息', type: '1' }, |
| | | { name: '视频标注', icon: 'el-icon-place', description: '描述信息', type: '1' }, |
| | | { name: '重点指挥图像在线率', icon: 'el-icon-film', description: '描述信息', type: '1' }, |
| | | { name: '视频图像资源安全管理', icon: 'el-icon-house', description: '描述信息', type: '1' }, |
| | | { name: '视频图像质量', icon: 'el-icon-set-up', description: '描述信息', type: '1' }, |
| | | { name: '', icon: 'el-icon-connection', description: '描述信息', type: '1' }, |
| | | { name: '', icon: 'el-icon-connection', description: '描述信息', type: '1' }, |
| | | { name: '', icon: 'el-icon-connection', description: '描述信息', type: '1' }, |
| | | { name: '', icon: 'el-icon-connection', description: '描述信息', type: '1' } |
| | | { |
| | | name: "平台在线", |
| | | icon: "el-icon-connection", |
| | | description: "描述信息", |
| | | type: "1", |
| | | }, |
| | | { |
| | | name: "一机一档", |
| | | icon: "el-icon-folder", |
| | | description: "描述信息", |
| | | type: "1", |
| | | }, |
| | | { |
| | | name: "点位在线", |
| | | icon: "el-icon-search", |
| | | description: "描述信息", |
| | | type: "1", |
| | | }, |
| | | { |
| | | name: "录像可用", |
| | | icon: "el-icon-turn-off", |
| | | description: "描述信息", |
| | | type: "1", |
| | | }, |
| | | { |
| | | name: "视频标注", |
| | | icon: "el-icon-place", |
| | | description: "描述信息", |
| | | type: "1", |
| | | }, |
| | | { |
| | | name: "重点指挥图像在线率", |
| | | icon: "el-icon-film", |
| | | description: "描述信息", |
| | | type: "1", |
| | | }, |
| | | { |
| | | name: "视频图像资源安全管理", |
| | | icon: "el-icon-house", |
| | | description: "描述信息", |
| | | type: "1", |
| | | }, |
| | | { |
| | | name: "视频图像质量", |
| | | icon: "el-icon-set-up", |
| | | description: "描述信息", |
| | | type: "1", |
| | | }, |
| | | { |
| | | name: "", |
| | | icon: "el-icon-connection", |
| | | description: "描述信息", |
| | | type: "1", |
| | | }, |
| | | { |
| | | name: "", |
| | | icon: "el-icon-connection", |
| | | description: "描述信息", |
| | | type: "1", |
| | | }, |
| | | { |
| | | name: "", |
| | | icon: "el-icon-connection", |
| | | description: "描述信息", |
| | | type: "1", |
| | | }, |
| | | { |
| | | name: "", |
| | | icon: "el-icon-connection", |
| | | description: "描述信息", |
| | | type: "1", |
| | | }, |
| | | ], |
| | | carData: [ |
| | | { name: '视图库对接稳定性', icon: 'el-icon-truck', description: '描述信息', type: '2' }, |
| | | { name: '点位在线率', icon: 'el-icon-truck', description: '描述信息', type: '2' }, |
| | | { name: '联网卡口设备目录一致率', icon: 'el-icon-truck', description: '描述信息', type: '2' }, |
| | | { name: '车辆卡口信息采集准确率', icon: 'el-icon-truck', description: '描述信息', type: '2' }, |
| | | { name: '车辆卡口设备抓拍数据完整性', icon: 'el-icon-truck', description: '描述信息', type: '2' }, |
| | | { name: '车辆卡口设备抓拍数据准确性', icon: 'el-icon-truck', description: '描述信息', type: '2' }, |
| | | { name: '车辆卡口设备时钟准确性', icon: 'el-icon-truck', description: '描述信息', type: '2' }, |
| | | { name: '车辆卡口设备抓拍数据上传及时性', icon: 'el-icon-truck', description: '描述信息', type: '2' }, |
| | | { name: '车辆卡口设备url可用性', icon: 'el-icon-truck', description: '描述信息', type: '2' }, |
| | | { name: '车辆卡口设备抓拍数据大图可用性', icon: 'el-icon-truck', description: '描述信息', type: '2' }, |
| | | { name: '', icon: 'el-icon-truck', description: '描述信息', type: '2' }, |
| | | { name: '', icon: 'el-icon-truck', description: '描述信息', type: '2' } |
| | | { |
| | | name: "视图库对接稳定性", |
| | | icon: "el-icon-truck", |
| | | description: "描述信息", |
| | | type: "2", |
| | | }, |
| | | { |
| | | name: "点位在线率", |
| | | icon: "el-icon-truck", |
| | | description: "描述信息", |
| | | type: "2", |
| | | }, |
| | | { |
| | | name: "联网卡口设备目录一致率", |
| | | icon: "el-icon-truck", |
| | | description: "描述信息", |
| | | type: "2", |
| | | }, |
| | | { |
| | | name: "车辆卡口信息采集准确率", |
| | | icon: "el-icon-truck", |
| | | description: "描述信息", |
| | | type: "2", |
| | | }, |
| | | { |
| | | name: "车辆卡口设备抓拍数据完整性", |
| | | icon: "el-icon-truck", |
| | | description: "描述信息", |
| | | type: "2", |
| | | }, |
| | | { |
| | | name: "车辆卡口设备抓拍数据准确性", |
| | | icon: "el-icon-truck", |
| | | description: "描述信息", |
| | | type: "2", |
| | | }, |
| | | { |
| | | name: "车辆卡口设备时钟准确性", |
| | | icon: "el-icon-truck", |
| | | description: "描述信息", |
| | | type: "2", |
| | | }, |
| | | { |
| | | name: "车辆卡口设备抓拍数据上传及时性", |
| | | icon: "el-icon-truck", |
| | | description: "描述信息", |
| | | type: "2", |
| | | }, |
| | | { |
| | | name: "车辆卡口设备url可用性", |
| | | icon: "el-icon-truck", |
| | | description: "描述信息", |
| | | type: "2", |
| | | }, |
| | | { |
| | | name: "车辆卡口设备抓拍数据大图可用性", |
| | | icon: "el-icon-truck", |
| | | description: "描述信息", |
| | | type: "2", |
| | | }, |
| | | { name: "", icon: "el-icon-truck", description: "描述信息", type: "2" }, |
| | | { name: "", icon: "el-icon-truck", description: "描述信息", type: "2" }, |
| | | ], |
| | | faceData: [ |
| | | { name: '视图库对接稳定性', icon: 'el-icon-alarm-clock', description: '描述信息', type: '3' }, |
| | | { name: '点位在线率', icon: 'el-icon-user', description: '描述信息', type: '3' }, |
| | | { name: '目录一致率', icon: 'el-icon-data-line', description: '描述信息', type: '3' }, |
| | | { name: '人脸卡口信息采集准确率', icon: 'el-icon-timer', description: '描述信息', type: '3' }, |
| | | { name: '设备抓拍图片合格性', icon: 'el-icon-money', description: '描述信息', type: '3' }, |
| | | { name: '设备抓拍图片时钟准确性', icon: 'el-icon-data-analysis', description: '描述信息', type: '3' }, |
| | | { name: '抓拍人脸数据上传及时性', icon: 'el-icon-thumb', description: '描述信息', type: '3' }, |
| | | { name: '人脸卡口设备抓拍数据大图可用性', icon: 'el-icon-pie-chart', description: '描述信息', type: '3' }, |
| | | { name: '', icon: 'el-icon-data-line', description: '描述信息', type: '3' }, |
| | | { name: '', icon: 'el-icon-timer', description: '描述信息', type: '3' }, |
| | | { name: '', icon: 'el-icon-money', description: '描述信息', type: '3' }, |
| | | { name: '', icon: 'el-icon-data-analysis', description: '描述信息', type: '3' }, |
| | | { |
| | | name: "视图库对接稳定性", |
| | | icon: "el-icon-alarm-clock", |
| | | description: "描述信息", |
| | | type: "3", |
| | | }, |
| | | { |
| | | name: "点位在线率", |
| | | icon: "el-icon-user", |
| | | description: "描述信息", |
| | | type: "3", |
| | | }, |
| | | { |
| | | name: "目录一致率", |
| | | icon: "el-icon-data-line", |
| | | description: "描述信息", |
| | | type: "3", |
| | | }, |
| | | { |
| | | name: "人脸卡口信息采集准确率", |
| | | icon: "el-icon-timer", |
| | | description: "描述信息", |
| | | type: "3", |
| | | }, |
| | | { |
| | | name: "设备抓拍图片合格性", |
| | | icon: "el-icon-money", |
| | | description: "描述信息", |
| | | type: "3", |
| | | }, |
| | | { |
| | | name: "设备抓拍图片时钟准确性", |
| | | icon: "el-icon-data-analysis", |
| | | description: "描述信息", |
| | | type: "3", |
| | | }, |
| | | { |
| | | name: "抓拍人脸数据上传及时性", |
| | | icon: "el-icon-thumb", |
| | | description: "描述信息", |
| | | type: "3", |
| | | }, |
| | | { |
| | | name: "人脸卡口设备抓拍数据大图可用性", |
| | | icon: "el-icon-pie-chart", |
| | | description: "描述信息", |
| | | type: "3", |
| | | }, |
| | | { |
| | | name: "", |
| | | icon: "el-icon-data-line", |
| | | description: "描述信息", |
| | | type: "3", |
| | | }, |
| | | { name: "", icon: "el-icon-timer", description: "描述信息", type: "3" }, |
| | | { name: "", icon: "el-icon-money", description: "描述信息", type: "3" }, |
| | | { |
| | | name: "", |
| | | icon: "el-icon-data-analysis", |
| | | description: "描述信息", |
| | | type: "3", |
| | | }, |
| | | ], |
| | | equipment: [ |
| | | { name: '资产管理', icon: 'el-icon-wallet', description: '描述信息', type: '4' }, |
| | | { name: '', icon: 'el-icon-pie-chart', description: '描述信息', type: '4' }, |
| | | { name: '', icon: 'el-icon-data-line', description: '描述信息', type: '4' }, |
| | | { name: '', icon: 'el-icon-timer', description: '描述信息', type: '4' }, |
| | | { name: '', icon: 'el-icon-money', description: '描述信息', type: '4' }, |
| | | { name: '', icon: 'el-icon-data-analysis', description: '描述信息', type: '4' }, |
| | | ] |
| | | { |
| | | name: "资产管理", |
| | | icon: "el-icon-wallet", |
| | | description: "描述信息", |
| | | type: "4", |
| | | }, |
| | | { |
| | | name: "", |
| | | icon: "el-icon-pie-chart", |
| | | description: "描述信息", |
| | | type: "4", |
| | | }, |
| | | { |
| | | name: "", |
| | | icon: "el-icon-data-line", |
| | | description: "描述信息", |
| | | type: "4", |
| | | }, |
| | | { name: "", icon: "el-icon-timer", description: "描述信息", type: "4" }, |
| | | { name: "", icon: "el-icon-money", description: "描述信息", type: "4" }, |
| | | { |
| | | name: "", |
| | | icon: "el-icon-data-analysis", |
| | | description: "描述信息", |
| | | type: "4", |
| | | }, |
| | | ], |
| | | }; |
| | | }, |
| | | methods: { |
| | |
| | | this.$router.push({ |
| | | path: `/data-manage/data-detail/index/1/1?type=${item.type}&index=${index}`, |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | .col-margin { |
| | | margin-bottom: 20px; |
| | | } |
| | | ::v-deep .el-link--inner{ |
| | | width: 100% !important; |
| | | } |
| | | </style> |
| | |
| | | |
| | | <el-table v-loading="loading" :data="monitorList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" align="center" /> |
| | | <el-table-column label="设备名称" align="center" prop="name" width="280" fixed/> |
| | | <el-table-column label="设备名称" align="center" prop="name" width="280" fixed show-overflow-tooltip/> |
| | | <el-table-column label="设备编码" align="center" prop="serialNumber" width="180"/> |
| | | <el-table-column label="标签" align="center" prop="publicSecurity" width="180" v-if="columns[0].visible"/> |
| | | <el-table-column label="区域" align="center" prop="address" width="180" v-if="columns[1].visible"/> |
| | |
| | | |
| | | <el-table v-loading="loading" :data="monitorList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" align="center" /> |
| | | <el-table-column label="设备名称" align="center" prop="name" width="280" fixed/> |
| | | <el-table-column label="设备名称" align="center" prop="name" width="280" fixed show-overflow-tooltip/> |
| | | <el-table-column label="设备编码" align="center" prop="serialNumber" width="180"/> |
| | | <el-table-column label="标签" align="center" prop="publicSecurity" width="180" v-if="columns[0].visible"/> |
| | | <el-table-column label="区域" align="center" prop="address" width="180" v-if="columns[1].visible"/> |
| | |
| | | |
| | | <el-table v-loading="loading" :data="monitorList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" align="center" /> |
| | | <el-table-column label="设备名称" align="center" prop="name" width="280" fixed/> |
| | | <el-table-column label="设备编码" align="center" prop="serialNumber" width="180"/> |
| | | <el-table-column label="设备名称" align="center" prop="name" width="280" fixed show-overflow-tooltip/> |
| | | <el-table-column label="设备编码" align="center" prop="serialNumber" width="180" show-overflow-tooltip/> |
| | | <el-table-column label="标签" align="center" prop="publicSecurity" width="180" v-if="columns[0].visible"> |
| | | <template slot-scope="scope"> |
| | | <div>{{"省厅"}}</div> |
| | |
| | | |
| | | <el-table v-loading="loading" :data="pointList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="点位名称" prop="pointName" width="200" /> |
| | | <el-table-column label="标签" align="center" width="90"> |
| | | <el-table-column label="点位名称" prop="pointName" width="200" show-overflow-tooltip/> |
| | | <el-table-column label="标签" align="center" width="90" show-overflow-tooltip> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.point_tag" :value="scope.row.pointTags" /> |
| | | </template> |
| | |
| | | <el-table-column label="单位联系人" align="center" prop="unitContact" /> |
| | | <el-table-column label="单位联系人电话" align="center" prop="unitContactPhone" /> |
| | | <el-table-column label="单位管理员账号" align="center" prop="unitAdminAccount" /> |
| | | <el-table-column label="备注" align="center" prop="remark" /> |
| | | <el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip/> |
| | | <el-table-column label="添加时间" align="center" prop="createTime" /> |
| | | <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | |
| | | <el-table-column label="运维人员账号" align="center" prop="ywPersonAccount" /> |
| | | <el-table-column label="所属运维单位" align="center" prop="belongUnitName" /> |
| | | <el-table-column label="联系电话" align="center" prop="phone" /> |
| | | <el-table-column label="备注" align="center" prop="remark" /> |
| | | <el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip/> |
| | | <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | |
| | | align="center" |
| | | prop="tableName" |
| | | :show-overflow-tooltip="true" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="表描述" |
| | | align="center" |
| | | prop="tableComment" |
| | | :show-overflow-tooltip="true" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="实体" |
| | | align="center" |
| | | prop="className" |
| | | :show-overflow-tooltip="true" |
| | | width="120" |
| | | /> |
| | | <el-table-column label="创建时间" align="center" prop="createTime" width="160" /> |
| | | <el-table-column label="更新时间" align="center" prop="updateTime" width="160" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <el-table-column label="操作" align="center" width="360"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="text" |