Commit ea092dae authored by co_dengxiongwen's avatar co_dengxiongwen

tj

parent 52e50df8
var CONFIG = {}
// 页面 title 前缀
CONFIG.TITLE = '轨道交通后台管理系统'
// 网络请求公用地址
CONFIG.requestPath = 'http://localhost:8046'
// CONFIG.requestPath = 'http://10.20.72.33:8046'
// 文件上传
CONFIG.urlPath = 'http://10.20.72.33/'
// BIM
CONFIG.bimPath = 'http://10.20.2.98:8066/'
......@@ -11,6 +11,14 @@
<!-- <script src = "https://cdn.jsdelivr.net/npm/proxy-polyfill@0.3.0/proxy.min.js"></script> -->
<title>城市轨道交通安防系统</title>
<script>
//禁用所有控制台输出
var console={};
console.log=function(){};
console.warn=function(){};
console.error=function(){};
</script>
<script src="./config.js"></script>
<style>
html, body, #app {
height: 100%;
......@@ -18,7 +26,7 @@
padding: 0px;
}
#app{
/* background: url('./image/bg@2x.png') no-repeat fixed center; */
/* background: url('./image/bg2x.png') no-repeat fixed center; */
background-color: #ccc;
}
.d2-app-loading-group {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -4,6 +4,17 @@ $theme-name: 'd2';
$theme-bg-color: #ebf1f6;
// 主题背景图片遮罩
$theme-bg-mask: rgba(#000, 0);
// 主题头部背景颜色
$theme-bg-color-header: #32a5ea;
// 主题底部背景颜色
$theme-bg-color-mfooter: #2d3a4b;
$theme-font-color-mfooter: #FFFFFF;
//主体el-button背景色
$theme-bg-color-el-button: #32a5ea;
$theme-font-color-el-button: #FFFFFF;
//主体el-button选中背景色
$theme-bg-color-el-button-active: #32a5ea;
$theme-font-color-el-button-active: #FFFFFF;
// container组件
$theme-container-background-color: rgba(#FFF, 1);
......@@ -25,17 +36,17 @@ $theme-menu-item-color-hover: #293849;
$theme-menu-item-background-color-hover: #ecf5ff;
// 顶栏上的文字颜色
$theme-header-item-color: $color-text-normal;
$theme-header-item-color: rgba(#fff,.7);
$theme-header-item-background-color: transparent;
// 顶栏上的项目在 hover 时
$theme-header-item-color-hover: #2f74ff;
$theme-header-item-background-color-hover: rgba(#FFF, .5);
$theme-header-item-color-hover: rgba(#fff,.7);
$theme-header-item-background-color-hover:transparent;
// 顶栏上的项目在 focus 时
$theme-header-item-color-focus: #2f74ff;
$theme-header-item-background-color-focus: rgba(#FFF, .5);
$theme-header-item-color-focus: rgba(#fff,.7);
$theme-header-item-background-color-focus: transparent;
// 顶栏上的项目在 active 时
$theme-header-item-color-active: #2f74ff;
$theme-header-item-background-color-active: rgba(#FFF, .5);
$theme-header-item-color-active: rgba(#fff,.9);
$theme-header-item-background-color-active: transparent;
// 侧边栏上的文字颜色
$theme-aside-item-color: $color-text-normal;
......
......@@ -4,6 +4,17 @@ $theme-name: 'line';
$theme-bg-color: #f8f8f9;
// 主题背景图片遮罩
$theme-bg-mask: rgba(#000, 0);
// 主题头部背景颜色
$theme-bg-color-header: $color-text-normal;
// 主题底部背景颜色
$theme-bg-color-mfooter: $color-text-normal;
$theme-font-color-mfooter: #FFFFFF;
//主体el-button背景色
$theme-bg-color-el-button: $color-text-normal;
$theme-font-color-el-button: #FFFFFF;
//主体el-button选中背景色
$theme-bg-color-el-button-active: $color-text-normal;
$theme-font-color-el-button-active: #FFFFFF;
// container组件
$theme-container-background-color: rgba(#FFF, .8);
......
......@@ -2,10 +2,10 @@
@import '~@/assets/style/theme/theme-base.scss';
@import '~@/assets/style/theme/tx1/index.scss';
@import '~@/assets/style/theme/tx2/index.scss';
// @import '~@/assets/style/theme/tx1/index.scss';
// @import '~@/assets/style/theme/tx2/index.scss';
@import '~@/assets/style/theme/d2/index.scss';
@import '~@/assets/style/theme/line/index.scss';
// @import '~@/assets/style/theme/line/index.scss';
@import '~@/assets/style/theme/star/index.scss';
@import '~@/assets/style/theme/tomorrow-night-blue/index.scss';
@import '~@/assets/style/theme/violet/index.scss';
\ No newline at end of file
......@@ -4,6 +4,17 @@ $theme-name: 'star';
$theme-bg-color: #EFF4F8;
// 主题背景图片遮罩
$theme-bg-mask: rgba(#000, .3);
// 主题头部背景颜色
$theme-bg-color-header: $color-text-normal;
// 主题底部背景颜色
$theme-bg-color-mfooter: #606266;
$theme-font-color-mfooter: #FFFFFF;
//主体el-button背景色
$theme-bg-color-el-button: $color-text-normal;
$theme-font-color-el-button: #FFFFFF;
//主体el-button选中背景色
$theme-bg-color-el-button-active: #606266;
$theme-font-color-el-button-active: #FFFFFF;
// container组件
$theme-container-background-color: rgba(#FFF, .9);
......@@ -25,17 +36,17 @@ $theme-menu-item-color-hover: #293849;
$theme-menu-item-background-color-hover: #ecf5ff;
// 顶栏上的文字颜色
$theme-header-item-color: #FFF;
$theme-header-item-color: rgba(#606266,.8);
$theme-header-item-background-color: transparent;
// 顶栏上的项目在 hover 时
$theme-header-item-color-hover: #FFF;
$theme-header-item-background-color-hover: rgba(rgb(78, 97, 204), .2);
$theme-header-item-color-hover: rgba(#FFF,.7);
$theme-header-item-background-color-hover: transparent;
// 顶栏上的项目在 focus 时
$theme-header-item-color-focus: #FFF;
$theme-header-item-background-color-focus: rgba(rgb(78, 97, 204), .2);
$theme-header-item-color-focus: rgba(#FFF,.7);
$theme-header-item-background-color-focus: transparent;
// 顶栏上的项目在 active 时
$theme-header-item-color-active: #FFF;
$theme-header-item-background-color-active: rgba(rgb(78, 97, 204), .2);
$theme-header-item-color-active: rgba(#FFF,.7);
$theme-header-item-background-color-active: transparent;
// 侧边栏上的文字颜色
$theme-aside-item-color: #FFF;
......
This diff is collapsed.
// 主题名称
$theme-name: 'tomorrow-night-blue';
// 主题背景颜色
$theme-bg-color: #002253;
$theme-bg-color: #FF929A;
// 主题背景图片遮罩
$theme-bg-mask: rgba(#000, 0);
// 主题头部背景颜色
$theme-bg-color-header: #FF929A;
// 主题底部背景颜色
$theme-bg-color-mfooter: #FF929A;
$theme-font-color-mfooter: #b52222;
//主体el-button背景色
$theme-bg-color-el-button: #FF929A;
$theme-font-color-el-button: #b52222;
//主体el-button选中背景色
$theme-bg-color-el-button-active: #FF929A;
$theme-font-color-el-button-active: #b52222;
// container组件
$theme-container-background-color: rgba(#FFF, 1);
......@@ -28,14 +39,14 @@ $theme-menu-item-background-color-hover: #ecf5ff;
$theme-header-item-color: #FF929A;
$theme-header-item-background-color: transparent;
// 顶栏上的项目在 hover 时
$theme-header-item-color-hover: #FFEBA4;
$theme-header-item-background-color-hover: rgba(#FFF, .05);
$theme-header-item-color-hover: #FFB870;
$theme-header-item-background-color-hover: transparent;
// 顶栏上的项目在 focus 时
$theme-header-item-color-focus: #FFB870;
$theme-header-item-background-color-focus: rgba(#FFF, .05);
$theme-header-item-background-color-focus:transparent;
// 顶栏上的项目在 active 时
$theme-header-item-color-active: #FFB870;
$theme-header-item-background-color-active: rgba(#FFF, .05);
$theme-header-item-color-active: #FFB870 ;
$theme-header-item-background-color-active: transparent;
// 侧边栏上的文字颜色
$theme-aside-item-color: #FF929A;
......
......@@ -4,6 +4,17 @@ $theme-name: 'tx1';
$theme-bg-color: #ebf1f6;
// 主题背景图片遮罩
$theme-bg-mask: rgba(#000, 0);
// 主题头部背景颜色
$theme-bg-color-header: #2f74ff;
// 主题底部背景颜色
$theme-bg-color-mfooter: #2f74ff;
$theme-font-color-mfooter: #FFFFFF;
//主体el-button背景色
$theme-bg-color-el-button: #2f74ff;
$theme-font-color-el-button: #FFFFFF;
//主体el-button选中背景色
$theme-bg-color-el-button-active: #2f74ff;
$theme-font-color-el-button-active: #FFFFFF;
// container组件
$theme-container-background-color: rgba(#FFF, 1);
......
......@@ -4,6 +4,17 @@ $theme-name: 'tx2';
$theme-bg-color: #ebf1f6;
// 主题背景图片遮罩
$theme-bg-mask: rgba(#000, 0);
// 主题头部背景颜色
$theme-bg-color-header: #2f74ff;
// 主题底部背景颜色
$theme-bg-color-mfooter: #2f74ff;
$theme-font-color-mfooter: #FFFFFF;
//主体el-button背景色
$theme-bg-color-el-button: #2f74ff;
$theme-font-color-el-button: #FFFFFF;
//主体el-button选中背景色
$theme-bg-color-el-button-active: #2f74ff;
$theme-font-color-el-button-active: #FFFFFF;
// container组件
$theme-container-background-color: rgba(#FFF, 1);
......
......@@ -4,6 +4,17 @@ $theme-name: 'violet';
$theme-bg-color: #000;
// 主题背景图片遮罩
$theme-bg-mask: rgba(#000, 0);
// 主题头部背景颜色
$theme-bg-color-header: #8C40E2;
// 主题底部背景颜色
$theme-bg-color-mfooter: #8C40E2;
$theme-font-color-mfooter: #FFFFFF;
//主体el-button背景色
$theme-bg-color-el-button: #8C40E2;
$theme-font-color-el-button: #FFFFFF;
//主体el-button选中背景色
$theme-bg-color-el-button-active: #8C40E2;
$theme-font-color-el-button-active: #FFFFFF;
// container组件
$theme-container-background-color: #FFF;
......@@ -25,17 +36,17 @@ $theme-menu-item-color-hover: #293849;
$theme-menu-item-background-color-hover: #ecf5ff;
// 顶栏上的文字颜色
$theme-header-item-color: #FFF;
$theme-header-item-color: rgba(#8C40E2,.7);
$theme-header-item-background-color: transparent;
// 顶栏上的项目在 hover 时
$theme-header-item-color-hover: #FFF;
$theme-header-item-background-color-hover: linear-gradient(-180deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.12) 100%);
$theme-header-item-color-hover: rgba(#8C40E2,.7);
$theme-header-item-background-color-hover: transparent;
// 顶栏上的项目在 focus 时
$theme-header-item-color-focus: #FFF;
$theme-header-item-background-color-focus: linear-gradient(-180deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.12) 100%);
$theme-header-item-color-focus: rgba(#8C40E2,.7);
$theme-header-item-background-color-focus: transparent;
// 顶栏上的项目在 active 时
$theme-header-item-color-active: #FFF;
$theme-header-item-background-color-active: linear-gradient(-180deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.12) 100%);
$theme-header-item-color-active: rgba(#8C40E2,1);
$theme-header-item-background-color-active: transparent;
// 侧边栏上的文字颜色
$theme-aside-item-color: #FFF;
......
/*
Date: 24 Fev 2015
Author: Pedro Oliveira <kanytu@gmail . com>
Author: Pedro Oliveira
*/
.hljs {
......
/*
Date: 17.V.2011
Author: pumbur <pumbur@pumbur.net>
Author: pumbur
*/
.hljs {
......
......@@ -9,8 +9,8 @@ Copyright 2015, All rights reserved
Code licensed under the MIT license
http://zenorocha.mit-license.org
@author Éverton Ribeiro <nuxlli@gmail.com>
@author Zeno Rocha <hi@zenorocha.com>
@author Éverton Ribeiro
@author Zeno Rocha
*/
......
/*
Description: Foundation 4 docs style for highlight.js
Author: Dan Allen <dan.j.allen@gmail.com>
Author: Dan Allen
Website: http://foundation.zurb.com/docs/
Version: 1.0
Date: 2013-04-02
......
/*
Description: Magula style for highligh.js
Author: Ruslan Keba <rukeba@gmail.com>
Author: Ruslan Keba
Website: http://rukeba.com/
Version: 1.0
Date: 2009-01-03
......
......@@ -2,7 +2,7 @@
PureBASIC native IDE style ( version 1.0 - April 2016 )
by Tristano Ajmone <tajmone@gmail.com>
by Tristano Ajmone
Public Domain
......
/*
School Book style from goldblog.com.ua (c) Zaripov Yura <yur4ik7@ukr.net>
School Book style from goldblog.com.ua (c) Zaripov Yura
*/
......
/*
Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmail.com>
Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull
*/
......
/*
Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmail.com>
Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull
*/
......
/*
* Visual Studio 2015 dark style
* Author: Nicolas LLOBERA <nllobera@gmail.com>
* Author: Nicolas LLOBERA
*/
.hljs {
......
/*
XCode style (c) Angel Garcia <angelgarcia.mail@gmail.com>
XCode style (c) Angel Garcia
*/
......
......@@ -9,7 +9,7 @@
<!--<a target="blank" href="https://github.com/d2-projects/d2-admin">-->
<!--<img-->
<!--style="position: absolute; top: 0; right: 0; border: 0; width: 150px;"-->
<!--src="./image/darkblue@2x.png"-->
<!--src="./image/darkblue2x.png"-->
<!--alt="Fork me on GitHub">-->
<!--</a>-->
</div>
......
<template>
<div v-if='isShow' class="map_right">
<iframe :src="src" ref="iframe"></iframe>
</div>
</template>
<script>
import { mapState, mapGetters, mapActions } from 'vuex'
export default {
data() {
return {
code:'',
src: window.CONFIG.bimPath,
}
},
computed: {
...mapState('d2admin/bjCode', ['resourceCode']),
...mapState('d2admin/bim', ['isShow'])
},
watch: {
resourceCode(val) {
console.log('resourceCode:', val)
if (this.transformationSta == 2) {
this.sendBjMessage(val.substring(0, val.indexOf('+')))
}
}
},
mounted() {
this.code = this.resourceCode
console.log(this.isShow,'111111111111')
// this.sendMessage()
},
methods: {
sendMessage(code) {
console.log(111)
setTimeout(() => {
if (!this.$refs.iframe) {
return
}
this.$refs.iframe.contentWindow.postMessage(
{
func: 'locateByCode',
data: {
code: code
}
},
this.src
)
}, 1000)
},
sendBjMessage(code) {
console.log('********' + code)
setTimeout(() => {
if (!this.$refs.iframe) {
return
}
this.$refs.iframe.contentWindow.postMessage({
func: 'alarm',
data: {
code: code
}
}, this.src)
}, 1000)
},
},
}
</script>
<style lang="scss" scoped>
iframe {
width: 1580px;
height: 770px;
position:absolute;
top:50px;
right:0;
z-index:99;
}
</style>
\ No newline at end of file
......@@ -5,7 +5,8 @@
<div
slot-scope="scope"
class="theme-preview"
:style="{'backgroundImage': `url(${$baseUrl}${scope.row.preview})`}">
:style="{'background': `${scope.row.preview}`}">
<!-- :style="{'backgroundImage': `url(${$baseUrl}${scope.row.preview})`}"> -->
</div>
</el-table-column>
<el-table-column prop="address" align="center">
......
......@@ -9,6 +9,9 @@
<img src="../../imgs/star.png" />
</div>
<el-dialog title="主题" width="600px" :visible.sync="dialogVisible" :append-to-body="true">
<div slot='title'>
<span class="title-bold">主题</span>
</div>
<d2-theme-list style="margin-top: -25px;"/>
</el-dialog>
</div>
......
......@@ -109,7 +109,7 @@ export default {
})
},
inputMe(e) {
return e.replace(/[<>!?:":?@!,.;']/g, '')
return e.replace(/[<>#?:":?@,.;']/g, '')
},
editPasword() {
this.editPaswDialog = true
......@@ -140,7 +140,7 @@ export default {
this.editPaswDialog = false
}
})
} else { this.$message.error(data.msg) }
}
})
}
})
......
......@@ -3,7 +3,7 @@
<div v-if="true" class="d2-theme-header-menu" ref="page" flex="cross:center">
<div class="d2-theme-header-menu__content m-theme-header-menu__content" ref="content" flex-box="1" >
<div class="d2-theme-header-menu__scroll" ref="scroll" flex-box="0" :style="'transform: translateX(' + currentTranslateX + 'px);'">
<el-menu mode="horizontal" :default-active="active" @select="handleMenuSelect" active-text-color='#cccccc'>
<el-menu mode="horizontal" :default-active="active" @select="handleMenuSelect" active-text-color=''>
<template v-for="(menu, menuIndex) in header">
<d2-layout-header-aside-menu-item class="menu-item" :menu="menu" :key="menuIndex"/>
<!-- <d2-layout-header-aside-menu-sub v-else :menu="menu" :key="menuIndex"/> -->
......
This diff is collapsed.
......@@ -106,7 +106,7 @@ new Vue({
// this.$store.commit('d2admin/menu/headerSet', menuHeader)
// // 初始化菜单搜索功能
// this.$store.commit('d2admin/search/init', menuHeader)
const pattern = /[_`~^*|{}<>¥……*|&‘”“/#()【】《》()——\\[\]$%+=]/ //这些字段不允许输入
const pattern = /[_`~^*|{}<>¥……*|&‘”“/#()【】《》\\[\]$%+=]/ //这些字段不允许输入
const testMark = function (s) {
return pattern.test(s)
}
......
......@@ -10,32 +10,10 @@ import demoElement from './modules/demo-element'
// import demoPlayground from './modules/demo-playground'
// 示例
// import demoBusiness from './modules/demo-business'
// 角色与权限
import sysUser from './modules/sys-user'
// 系统设置
import sysSetting from './modules/sys-setting'
// 系统管理
import sysManage from './modules/sys-manage'
// 运营管理
import oprManage from './modules/opr-manage'
// 财务管理
import fnManage from './modules/fn-manage'
// 退款管理
import refundManage from './modules/fn-refundManage'
// 会员管理
import mbManage from './modules/mb-manage'
// 竞赛管理
import ctManage from './modules/ct-manage'
import clubManage from './modules/ct-clubManage'
// CRUD
import demoD2Crud from './modules/demo-d2-crud'
// 第三方网页
import demoFrame from './modules/demo-frame'
//import { newExpression } from 'babel-types'
import newsManage from './modules/news-manage'
import msgManage from './modules/msg-manage'
// 菜单 侧边栏
export const menuAside = [
......@@ -46,29 +24,12 @@ export const menuAside = [
// demoPlayground,// 功能
// demoBusiness,// 事例
demoD2Crud,
demoFrame,
mbManage, // 会员管理
ctManage, //竞赛管理
clubManage, //俱乐部管理
fnManage, //财务管理
msgManage, //消息中心
refundManage, //退款管理
oprManage, //运营管理
sysManage, // 系统管理
// sysUser,
sysSetting,
newsManage
demoFrame
]
// 菜单 顶栏
export const menuHeader = [
{ title: '首页', path: '/index' },
{ title: '竞赛管理', path: '/ct/competition/level' },
{ title: '会员管理', path: '/mb/member' },
{ title: '运营管理', path: '/operation/place' },
{ title: '资讯管理', path: '/news/list' },
{ title: '财务管理', path: '/finance/competitionOrder/classification' },
{ title: '消息中心', path: '/msg/manage' },
{ title: '系统管理', path: '/sys/org' }
// { path: '/sys/setting/code', title: '代码生成', icon: 'globe' }
]
......@@ -18,7 +18,7 @@
<el-card>
<div class="tableCard">
<el-form ref="form" :inline="true" :model="dataForm" size="mini">
<el-form-item label="姓名:">
<el-form-item label="">
<el-input v-model="dataForm.name" placeholder="请输入姓名、卡序列号" clearable></el-input>
</el-form-item>
<!-- <el-form-item label="卡序列号:">
......@@ -39,7 +39,7 @@
<drag-table :data="dataList" :header="checkList" :option="tableOption" @getDataList="getDataList"
v-loading="dataListLoading" :operationNum="1" :isShowOperate="false">
<el-table-column slot="fixed" fixed prop="" label="序号" width="150" header-align="center" align="center">
<el-table-column slot="fixed" fixed prop="" label="序号" width="80" header-align="center" align="center">
<template slot-scope="scope">
{{scope.$index+(pageIndex - 1) * pageSize + 1}}
</template>
......@@ -125,6 +125,16 @@ export default {
// return ''
// }
// },
watch: {
totalPage() { //注意这个函数的名字必须和你监听data中的属性的名字一样,这样才能当你data中的属性发生变化时,触发这个函数
let pages = Math.ceil(this.totalPage / this.pageSize)//新数据总页数
//总页数小于当前页数则重新加载列表数据
if (pages < this.pageIndex) {
this.pageIndex = pages || 1
this.getDataList()//获取表格数据的方法
}
}
},
created() {
this.pageIndex = 1
this.getDataList()
......
......@@ -30,53 +30,36 @@
</el-form>
<drag-table :data="dataList" :header="checkList" :option="tableOption" @getDataList="getDataList" v-loading="dataListLoading" :operationNum="1" :isShowOperate="true">
<el-table-column slot="fixed" fixed prop="" label="序号" width="150" header-align="center" align="center" >
<el-table-column slot="fixed" fixed prop="" label="序号" width="80" header-align="center" align="center" >
<template slot-scope="scope">
{{scope.$index+(pageIndex - 1) * pageSize + 1}}
</template>
</el-table-column>
<template slot='instruction' slot-scope="scope">
<font :title="scope.row.instruction">{{scope.row.instruction}}</font>
</template>
<template slot='status' slot-scope="scope">
<div>{{scope.row.status==1?'正常':'不可用'}}</div>
</template>
<div>{{scope.row.status==1?'正常':'不可用'}}</div>
</template>
<template slot='result' slot-scope="scope">
<div>{{scope.row.result==1?'成功':'失败'}}</div>
</template>
</template>
<template slot='instruction' slot-scope="scope">
<font :title="scope.row.instruction"> {{scope.row.instruction}} </font>
</template>
<template slot='lineStationName' slot-scope="scope">
<font :title="scope.row.lineStationName"> {{scope.row.lineStationName}} </font>
</template>
<template slot-scope="scope">
<el-button type="text" size="mini" @click="tabRowClick(scope.row)">详情</el-button>
</template>
</drag-table>
<!-- <el-table :data="dataList" @sort-change='sortChange' v-loading="dataListLoading" :stripe="true" :header-cell-style="{background:'#EEF8FF',color:'#333333'}" style="width: 100%;">
<el-table-column type="index" header-align="center" align="center" width='80' label="序号">
<template scope="scope"><span>{{scope.$index+(pageIndex - 1) * pageSize + 1}} </span></template>
</el-table-column>
<el-table-column prop="instruction" width=220 sortable="custom" header-align="center" align="center" label="指令ID"></el-table-column>
<el-table-column prop="resourceName" width=250 column-key="resource_id" sortable="custom" header-align="center" align="center" label="资源点名称"></el-table-column>
<el-table-column prop="type" sortable="custom" header-align="center" align="center" label="资源点类型"></el-table-column>
<el-table-column header-align="center" sortable="custom" column-key='status' align="center" label="资源点状态">
<template slot-scope="scope">
<div>{{scope.row.status==1?'正常':'不可用'}}</div>
</template>
</el-table-column>
<el-table-column prop="actionName" column-key="action_name" sortable="custom" header-align="center" align="center" label="资源点动作"></el-table-column>
<el-table-column prop="lineStationName" width=250 column-key="line_station_name" sortable="custom" header-align="center" align="center" label="线路站点"></el-table-column>
<el-table-column prop="createUser" column-key="create_user" sortable="custom" header-align="center" align="center" label="执行人"></el-table-column>
<el-table-column prop="createTime" column-key="create_time" sortable="custom" header-align="center" align="center" label="执行完成时间"></el-table-column>
<el-table-column header-align="center" sortable="custom" column-key='result' align="center" label="执行结果">
<template slot-scope="scope">
<div>{{scope.row.result==1?'成功':'失败'}}</div>
</template>
</el-table-column>
<el-table-column header-align="center" align="center" label="详情">
<template slot-scope="scope">
<el-button type="text" size="mini" @click="tabRowClick(scope.row)">详情</el-button>
</template>
</el-table-column>
</el-table> -->
</el-card>
</el-main>
<el-footer class="box_footer">
......@@ -93,17 +76,17 @@ import dragTable from '../../components/tab'
export default {
data() {
return {
checkList:[], //筛选数据
tableHeader:[
{label:'指令ID',prop:'instruction'},
{label:'资源点名称',prop:'resourceName'},
{label:'资源点类型',prop:'type'},
{label:'资源点状态',prop:'status',slot:true},
{label:'资源点动作',prop:'actionName'},
{label:'线路站点',prop:'lineStationName'},
{label:'执行人',prop:'createUser'},
{label:'执行完成时间',prop:'createTime'},
{label:'执行结果',prop:'result',slot:true}
checkList: [], //筛选数据
tableHeader: [
{ label: '指令ID', prop: 'instruction', slot: true, width: 260 },
{ label: '资源点名称', prop: 'resourceName' },
{ label: '资源点类型', prop: 'type' },
{ label: '资源点状态', prop: 'status', slot: true },
{ label: '资源点动作', prop: 'actionName' },
// { label: '线路站点', prop: 'lineStationName', slot: true, width: 260 },
{ label: '执行人', prop: 'createUser' },
{ label: '执行完成时间', prop: 'createTime' },
{ label: '执行结果', prop: 'result', slot: true }
],
tableOption: {
border: false, //是否边框
......@@ -135,6 +118,16 @@ export default {
components: {
QueryDetail, dragTable
},
watch: {
totalPage() { //注意这个函数的名字必须和你监听data中的属性的名字一样,这样才能当你data中的属性发生变化时,触发这个函数
let pages = Math.ceil(this.totalPage / this.pageSize)//新数据总页数
//总页数小于当前页数则重新加载列表数据
if (pages < this.pageIndex) {
this.pageIndex = pages || 1
this.getDataList()//获取表格数据的方法
}
}
},
created() {
this.pageIndex = 1
this.getStationList()
......@@ -151,7 +144,10 @@ export default {
startTime: '',
endTime: ''
}
this.restaurants = []
this.pageIndex = 1
this.getDataList()
this.getStationList()
},
tabRowClick(res) {
this.$refs.queryDetail.init(JSON.parse(JSON.stringify(res)))
......
......@@ -7,16 +7,16 @@
<div class="header_title">基本信息</div>
<el-form :model='dataForm' ref='dataForm' :inline='true' label-width="100px">
<el-form-item label='指令ID:' prop='port'>
<el-input size="medium" v-model='dataForm.instruction' readonly></el-input>
<el-input size="medium" :title='dataForm.instruction' v-model='dataForm.instruction' readonly></el-input>
</el-form-item>
<el-form-item label='资源点名称:' prop='port'>
<el-input size="medium" v-model='dataForm.resourceName' readonly></el-input>
<el-input size="medium" :title='dataForm.resourceName' v-model='dataForm.resourceName' readonly></el-input>
</el-form-item>
<el-form-item label='资源点编码:' prop='port'>
<el-input size="medium" v-model='dataForm.code' readonly></el-input>
</el-form-item>
<el-form-item label='资源点类型:' prop='port'>
<el-input size="medium" v-model='dataForm.type' readonly></el-input>
<el-input size="medium" v-model='dataForm.type' readonly></el-input>
</el-form-item>
<el-form-item label='资源点状态:' prop='port'>
<el-input size="medium" v-model='dataForm.status' readonly></el-input>
......@@ -25,7 +25,7 @@
<el-input size="medium" v-model='dataForm.addressCode+":"+dataForm.port' readonly></el-input>
</el-form-item>
<el-form-item label='线路站点:' prop='port'>
<el-input size="medium" v-model='dataForm.lineStationName' readonly></el-input>
<el-input size="medium" :title='dataForm.lineStationName' v-model='dataForm.lineStationName' readonly></el-input>
</el-form-item>
</el-form>
</div>
......@@ -63,10 +63,10 @@
<el-input v-if="dataForm.source==3" value="预案执行" size="medium" readonly></el-input>
</el-form-item>
<el-form-item label='部署位置:' prop='port'>
<el-input size="medium" v-model='dataForm.deployLocation' readonly></el-input>
<el-input size="medium" :title='dataForm.deployLocation' v-model='dataForm.deployLocation' readonly></el-input>
</el-form-item>
<el-form-item label='附属信息:' prop='port'>
<el-input size="medium" v-model='dataForm.attachedInfo' readonly></el-input>
<el-input size="medium" :title='dataForm.attachedInfo' v-model='dataForm.attachedInfo' readonly></el-input>
</el-form-item>
<el-form-item label='动作编号:' prop='port'>
<el-input size="medium" v-model='dataForm.xx' readonly></el-input>
......@@ -117,7 +117,8 @@ export default {
method: 'get',
params: { id: res.id,
source: res.source,
stationId: res.stationId
stationId: res.stationId,
byx3: res.byx3
}
}).then(data => {
if (data && data.code === 0) {
......
This diff is collapsed.
......@@ -85,6 +85,8 @@
<el-button v-if="isAuth('access:point:history')" type="primary" @click="dialogList2">历史指令查询</el-button>
</div>
<el-dialog :title="dataForm.name" width="1200px" :close-on-click-modal='false' :visible.sync='visible1' :modal-append-to-body='false'>
div(slot='title')
span.title-bold {{dataForm.name}}
<div class="instuctions_content">
<el-form :inline="true" :model="formData1" size="mini" style="margin:20px 0 20px 17px ">
<el-form-item label="人员姓名:">
......@@ -123,14 +125,16 @@
</div>
</el-dialog>
<el-dialog :title="dataForm.name" width="1200px" :close-on-click-modal='false' :visible.sync='visible2' :modal-append-to-body='false'>
<el-dialog width="1200px" :close-on-click-modal='false' :visible.sync='visible2' :modal-append-to-body='false'>
div(slot='title')
span.title-bold 历史指令
<div class="instuctions_content">
<el-form :inline="true" :model="formData2" size="mini" style="margin:20px 0 20px 17px ">
<el-form-item label="操作ID:">
<el-input v-model="formData2.instruction" placeholder="请输入内容"></el-input>
<el-input v-model="formData2.instruction" placeholder="请输入内容" clearable></el-input>
</el-form-item>
<el-form-item label="门禁设备:">
<el-select v-model="formData2.id" placeholder="请选择">
<el-select v-model="formData2.resourceId" placeholder="请选择" >
<el-option v-for="(item, index) in options" :key="index" :label="item.name" :value="item.id" placeholder="请选择"> </el-option>
</el-select>
//- <el-autocomplete class="inline-input" v-model="formData1.username" :fetch-suggestions="querySearch1" placeholder="请输入内容"></el-autocomplete>
......@@ -147,13 +151,21 @@
<el-table-column type="index" header-align="center" align="center" width='80' label="序号">
<template scope="scope"><span>{{scope.$index+(pageIndex2 - 1) * pageSize2 + 1}} </span></template>
</el-table-column>
<el-table-column prop="instruction" sortable="custom" header-align="center" align="center" label="操作ID"></el-table-column>
<el-table-column prop="resourceName" sortable="custom" column-key='resource_name' header-align="center" align="center" label="资源点名称"></el-table-column>
<el-table-column prop="type" sortable="custom" header-align="center" align="center" label="部署位置"></el-table-column>
<el-table-column prop="instruction" width='200' sortable="custom" header-align="center" align="center" label="指令ID">
<template slot-scope="scope">
<font :title="scope.row.instruction">{{scope.row.instruction}}</font>
</template>
</el-table-column>
<el-table-column prop="resourceName" sortable="custom" width='150' column-key='resource_name' header-align="center" align="center" label="资源点名称"></el-table-column>
<el-table-column prop="deployLocation" sortable="custom" width='150' header-align="center" align="center" label="部署位置"></el-table-column>
<el-table-column prop="actionName" sortable="custom" column-key='action_name' header-align="center" align="center" label="动作"></el-table-column>
<el-table-column prop="createUser" sortable="custom" column-key='create_user' header-align="center" align="center" label="操作人"></el-table-column>
<el-table-column prop="createTime" sortable="custom" column-key='create_time' header-align="center" align="center" label="操作时间"></el-table-column>
<el-table-column sortable="custom" column-key='result' header-align="center" align="center" label="执行结果">
<el-table-column prop="createTime" sortable="custom" width='200' column-key='create_time' header-align="center" align="center" label="操作时间">
<template slot-scope="scope">
<font :title="scope.row.createTime">{{scope.row.createTime}}</font>
</template>
</el-table-column>
<el-table-column sortable="custom" column-key='result' width='100' header-align="center" align="center" label="执行结果">
<template slot-scope="scope">
<div>{{scope.row.result==1?'成功':'失败'}}</div>
</template>
......@@ -229,21 +241,38 @@ export default {
dataForm: { id: 0, name: '', type: 1, lineId: '', lineName: '', stationId: '', stationName: '', tierId: '', subSystem: '', code: '', subCode: '', addressCode: '', port: '', username: '', password: '', remark: '', status: 1 }
}
},
watch: {
totalPage1() { //注意这个函数的名字必须和你监听data中的属性的名字一样,这样才能当你data中的属性发生变化时,触发这个函数
let pages = Math.ceil(this.totalPage1 / this.pageSize1)//新数据总页数
//总页数小于当前页数则重新加载列表数据
if (pages < this.pageIndex1) {
this.pageIndex1 = pages || 1
this.getDataList()//获取表格数据的方法
}
},
totalPage2() { //注意这个函数的名字必须和你监听data中的属性的名字一样,这样才能当你data中的属性发生变化时,触发这个函数
let pages = Math.ceil(this.totalPage2 / this.pageSize2)//新数据总页数
//总页数小于当前页数则重新加载列表数据
if (pages < this.pageIndex2) {
this.pageIndex2 = pages || 1
this.getDataList2()//获取表格数据的方法
}
}
},
created() {
},
methods: {
init (id, stationId) {
this.stationId = stationId
this.getAllEq()
this.clickFlag = false
this.dataForm.id = id
this.formData1.id = id
this.formData2.id = id
this.cameraCur = {}
this.camera = ''
this.initResource()
this.dataForm.operatorName = this.info.name
this.getAllEq()
},
//门禁查询
getDataList1() {
......@@ -267,7 +296,7 @@ export default {
startTime: this.formData2.startTime,
endTime: this.formData2.endTime,
instruction: this.formData2.instruction,
resourceId: this.formData2.id,
resourceId: this.formData2.resourceId,
sort: this.sort2,
order: this.order2
}
......@@ -326,27 +355,8 @@ export default {
})
this.$nextTick(function () {
this.flvPlayer.attachMediaElement(this.$refs.video)
try {
this.flvPlayer.load()
this.flvPlayer.play()
} catch (error) {
console.log(error)
}
this.flvPlayer.load()
})
//避免时间长时间积累缓冲导致延迟越来越高
setInterval(() => {
// console.log('避免时间长时间积累缓冲导致延迟越来越高')
if (!this.flvPlayer.buffered.length) {
return
}
let end = this.flvPlayer.buffered.end(0)
if (this.flvPlaye && this.flvPlaye.currentTime) {
let diff = end - this.flvPlaye.currentTime
if (diff >= 1.5) {
this.flvPlayer.currentTime = end - 0.1
}
}
}, 3 * 10 * 1000)
}
}
})
......@@ -402,6 +412,7 @@ export default {
},
dialogList2() {
this.visible2 = true
this.$set(this.formData2, 'resourceId', this.dataForm.id)
this.getDataList2()
},
//排序
......@@ -480,7 +491,7 @@ export default {
password: this.cameraCur.password, //密码
channel: this.cameraCur.byx1, //通道
stream: 'main', //主码流
dwPTZCommand: ptz, //云台控制命令
dwPtzCommand: ptz, //云台控制命令
dwStop: dwStop //云台控制0开始和1结束
}
}).then(data => {
......@@ -515,7 +526,6 @@ export default {
})
},
cameraChange (id) {
console.log(id)
if (id) {
this.camera = id
this.dataForm.list.forEach(res => {
......@@ -523,7 +533,13 @@ export default {
this.cameraCur = res
}
})
if (this.flvPlayer) {
this.flvPlayer.pause()
this.flvPlayer.unload()
this.flvPlayer.detachMediaElement()
this.flvPlayer.destroy()
this.flvPlayer = null
}
this.$http({
url: this.$http.adornUrlEq('/camera/camerasPlay'),
method: 'post',
......@@ -559,20 +575,6 @@ export default {
console.log(error)
}
})
//避免时间长时间积累缓冲导致延迟越来越高
setInterval(() => {
// console.log('避免时间长时间积累缓冲导致延迟越来越高')
if (!this.flvPlayer.buffered.length) {
return
}
let end = this.flvPlayer.buffered.end(0)
if (this.flvPlaye && this.flvPlaye.currentTime) {
let diff = end - this.flvPlaye.currentTime
if (diff >= 1.5) {
this.flvPlayer.currentTime = end - 0.1
}
}
}, 3 * 10 * 1000)
}
})
}
......
......@@ -19,29 +19,9 @@
el-form-item( label="至")
el-date-picker( type="datetime" value-format="yyyy-MM-dd HH:mm:ss" style="width:175px;" v-model="dataForm.endTime" placeholder="选择结束时间" clearable)
el-button(@click="getDataList()" size='mini' icon="el-icon-search" type="primary") 查询
//- el-table(:data="dataList" width="100%" @sort-change='sortChange' v-loading="dataListLoading" :stripe="true" :header-cell-style="{background:'#EEF8FF',color:'#333333'}")
el-table-column( type='index' header-align='center', align='center', label='序号')
template(scope="scope")
span {{scope.$index+(pageIndex - 1) * pageSize + 1}}
el-table-column( prop="eventNumber" header-align="center" align="center" label="报警编号" sortable='custom' width=250)
el-table-column( prop="instruction" header-align="center" align="center" label="指令ID" sortable='custom' width=260)
el-table-column( prop="resourceName" header-align="center" align="center" label="资源点名称" sortable='custom' width=200)
el-table-column( prop="resourceType" header-align="center" align="center" label="资源点类型" sortable='custom')
el-table-column( prop="resourceStatus" header-align="center" align="center" label="资源点状态" sortable='custom')
el-table-column( prop="actionName" header-align="center" align="center" label="资源点动作" sortable='custom')
el-table-column( prop="createUser" header-align="center" align="center" label="执行人" sortable='custom')
el-table-column( prop="createTime" header-align="center" align="center" label="执行完成时间" sortable='custom' width=160)
el-table-column( prop="resultName" header-align="center" align="center" label="执行结果" sortable='custom')
template(slot-scope="scope")
font(v-if="scope.row.result === 1" color='#67C23A') 成功
font(v-if="scope.row.result === 2" color='#F56C6C') 失败
font(v-if="scope.row.result === 3" color='#F56C6C') 中止
el-table-column( prop header-align="center" align="center" label="操作")
template(slot-scope="scope")
el-button(size='mini' type='text' @click="queryHandle(scope.row)" v-if="isAuth('alarms:instruct:info')") 详情
drag-table( :data="dataList" :header="checkList" :isToLine='true' :option="tableOption" @getDataList="getDataList" v-loading="dataListLoading" :operationNum="1" :isShowOperate="true")
//- -- 插槽
el-table-column(slot="fixed" fixed prop="" label="序号" header-align="center" align="center")
el-table-column(slot="fixed" fixed prop="" label="序号" width="80" header-align="center" align="center")
template( slot-scope="scope")
span {{scope.$index+(pageIndex - 1) * pageSize + 1}}
......@@ -49,10 +29,14 @@
font(v-if="scope.row.result === 1" color='#67C23A') 成功
font(v-if="scope.row.result === 2" color='#F56C6C') 失败
font(v-if="scope.row.result === 3" color='#F56C6C') 中止
template( slot='eventNumber' slot-scope="scope")
font(:title="scope.row.eventNumber") {{scope.row.eventNumber}}
template( slot='instruction' slot-scope="scope")
font(:title="scope.row.instruction") {{scope.row.instruction}}
//- 操作项
template.operation( slot-scope="scope")
el-button(size='mini' type='text' @click="queryHandle(scope.row)" v-if="isAuth('alarms:instruct:info')") 详情
el-button(size='mini' type='text' @click="queryHandle(scope.row)") 详情
el-footer.box_footer
el-pagination(@size-change="sizeChangeHandle" background @current-change="currentChangeHandle" :current-page="pageIndex" :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" :total="totalPage" layout="total, sizes, prev, pager, next, jumper")
quert-detail(v-if="queryDetailVisible" ref="quertDetail" @refreshdatalist="getDataList")
......@@ -89,8 +73,8 @@ export default {
queryDetailVisible: false,
checkList: [], //筛选数据
tableHeader: [
{ label: '报警编号', prop: 'eventNumber' },
{ label: '指令ID', prop: 'instruction' },
{ label: '报警编号', prop: 'eventNumber', slot: true, width: 260 },
{ label: '指令ID', prop: 'instruction', slot: true, width: 260 },
{ label: '资源点名称', prop: 'resourceName' },
{ label: '资源点类型', prop: 'resourceType' },
{ label: '资源点状态', prop: 'resourceStatus' },
......@@ -109,6 +93,16 @@ export default {
quertDetail,
dragTable
},
watch: {
totalPage() { //注意这个函数的名字必须和你监听data中的属性的名字一样,这样才能当你data中的属性发生变化时,触发这个函数
let pages = Math.ceil(this.totalPage / this.pageSize)//新数据总页数
//总页数小于当前页数则重新加载列表数据
if (pages < this.pageIndex) {
this.pageIndex = pages || 1
this.getDataList()//获取表格数据的方法
}
}
},
created () {
this.checkList = [...this.tableHeader]
this.getDataList()
......
......@@ -9,13 +9,13 @@
el-form( ref="dataForm1" :model="dataForm" size="mini" label-position="right" label-width="90px" )
el-col(:span='24')
el-form-item(label="报警编号" prop="eventNumber")
el-input(readonly v-model='dataForm.eventNumber' )
el-input(readonly :title='dataForm.eventNumber' v-model='dataForm.eventNumber' )
el-col(:span='24')
el-form-item(label="指令ID" prop="instruction")
el-input(readonly v-model='dataForm.instruction' )
el-input(readonly :title='dataForm.instruction' v-model='dataForm.instruction' )
el-col(:span='24')
el-form-item(label="资源点名称" prop="resourceName")
el-input(readonly v-model='dataForm.resourceName' )
el-input(readonly :title='dataForm.resourceName' v-model='dataForm.resourceName' )
el-col(:span='24')
el-form-item(label="资源点编码" prop="resourceCode")
el-input(readonly v-model='dataForm.resourceCode' )
......@@ -30,7 +30,7 @@
el-input(readonly v-model='dataForm.IPPORT' )
el-col(:span='24')
el-form-item(label="线路站点" prop="lineStation" )
el-input(readonly v-model='dataForm.lineStation')
el-input(readonly :title='dataForm.lineStation' v-model='dataForm.lineStation')
el-col(:span='15')
el-card(:body-style="{ height: '370px' }")
div(slot='header') 运行信息
......@@ -62,10 +62,10 @@
el-row
el-col(:span='12')
el-form-item(label="部署位置" prop="deployLocation")
el-input(readonly v-model='dataForm.deployLocation' )
el-input(readonly :title='dataForm.deployLocation' v-model='dataForm.deployLocation' )
el-col(:span='12')
el-form-item(label="附属信息" prop="attachedInfo")
el-input(readonly v-model='dataForm.attachedInfo' )
el-input(readonly :title='dataForm.attachedInfo' v-model='dataForm.attachedInfo' )
el-row
el-col(:span='12')
el-form-item(label="动作编号" prop="actionCode")
......@@ -100,89 +100,35 @@
// console.log(val)
},
init(row) {
this.dataForm = {}
this.visible = true
// console.log(row)
this.dataForm = row
// this.initData(row)
this.initData(row)
},
//初始化数据--获取详细信息
initData(row) {
// console.log('row', row)
this.$http({
url: this.$http.adornUrlAlarm(`/linkLogsAction/getList`),
method: 'post',
data: this.$http.adornData({
logs_id: row.id
})
}).then(data => {
// console.log(data, '---')
if (data && data.code === 0) {
this.stepList = data.list
} else {
this.$message.error(data.msg)
}
})
},
//获取附件
getAttachment(linkLogsActionId) {
this.innerVisible = true
this.dataListLoading = true
this.$http({
url: this.$http.adornUrlAlarm(`/linkAttachment/getAttachment`),
url: this.$http.adornUrlAlarm('/alarmsLog/getByOrId'),
method: 'get',
params: this.$http.adornParams({
linkLogsActionId: linkLogsActionId
})
params: { id: row.id,
source: row.source }
}).then(data => {
// console.log(data)
if (data && data.code === 0) {
this.attachmentList = data.list
} else {
this.$message.error(data.msg)
}
this.dataListLoading = false
})
},
//下载文件
downloadFile(id) {
this.$http({
url: this.$http.adornUrlAlarm('/linkAttachment/downloadAllFile'),
method: 'get',
params: { id: id },
responseType: 'arraybuffer'
}).then(data => {
let dd = localStorage.getItem('headers')
let headers = JSON.parse(dd)
let type = headers['content-type'].trim().split(';')[0]
let filename = decodeURI(
headers['content-disposition']
.trim()
.split(';')[1]
.split('=')[1]
)
const blob = new Blob([data], { type: type })
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename)
} else {
const link = document.createElement('a')
link.download = filename
link.style.display = 'none'
link.href = URL.createObjectURL(blob)
document.body.appendChild(link)
link.click()
URL.revokeObjectURL(link.href)
document.body.removeChild(link)
this.dataForm = data.alarmLog
let da = data.alarmLog
let par1
let par2
if (da.paramsName1 && da.paramsValue1) {
par1 = da.paramsName1 + da.paramsValue1
}
if (da.paramsName2 && da.paramsValue2) {
par2 = da.paramsName2 + da.paramsValue2
}
let dd = []
if (par1) dd.push(par1)
if (par2) dd.push(par2)
this.dataForm.params = dd.join(',') || ''
}
})
},
//判断格式
isVideo(type) {
let reg = 'ogg,webm,mp4'
if (reg.indexOf(type) > 0) {
return true
}
return false
}
}
}
......
......@@ -10,7 +10,7 @@
el-form-item.el_form_item(label="报警编码")
el-input(v-model="this.dataForm.eventNumber" size="mini" readonly)
el-form-item.el_form_item(label="报警名称")
el-input(v-model="this.dataForm.eventName" size="mini" readonly)
el-input(v-model="this.dataForm.eventName" :title='dataForm.eventName' size="mini" readonly)
el-form-item.el_form_item(label="资源点名称")
el-input(v-model="this.dataForm.resourceName" size="mini" readonly)
el-form-item.el_form_item(label="报警类型")
......@@ -65,14 +65,20 @@
el-tabs(v-model="activeName" type='border-card')
el-tab-pane(v-if="dataForm.type === null || dataForm.type === 1" label="处理报警" name="first")
<div class="instruct-list-dialog" style="width:100%; height:230px">
<div style="margin:20px;">
<div style="margin:20px;" :style="{'width':`${opinionList.length}`*200+'px'}">
el-steps(:space="300" :active="opinionActive")
el-step(v-for="item in opinionList" :key='item.id' icon='el-icon-stepsIcon' :title="item.name +' '+item.opinionTime" :description="item.content")
el-step(v-for="item in opinionList" :key='item.id' icon='el-icon-stepsIcon' )
template(slot="description")
div 处理人: {{item.name }}
div 处理时间: {{item.opinionTime}}
div 处理意见:
font(:title="item.content") {{item.content,82|substr}}
</div>
</div>
el-tab-pane(v-if="dataForm.type === null || dataForm.type === 2" label="应急预案" name="second" )
div.instruct-list-dialog(v-if="planStepList.length > 0" style="width:100%; height:230px" v-loading="loading")
div(style="margin:20px;")
div(style="margin:20px;" :style="{'width':`${planStepList.length}`*200+'px'}")
el-steps(:space="300" :active="stepActive")
el-step(v-for="(item,index) in planStepList" :key='index' icon='el-icon-stepsIcon')
template(slot="description")
......@@ -84,18 +90,44 @@
el-col(:span="24" v-if="item.runMode === 1") 执行单位:{{item.exeName}}
el-col(:span="24" v-if="item.runMode === 2") 资源点:{{item.resName}}
el-row
el-col(:span="24" v-if="item.runMode === 1") 动作:{{item.content}}
el-col(:span="24" v-if="item.runMode == 1")
div 动作:
font(:title="item.content" ) {{item.content,25|substr}}
el-col(:span="24" v-if="item.runMode === 2") 动作:{{item.actionName}}
el-row(v-if="item.runMode == 2 && item.status === 2")
el-col(:span="24" )
div 执行结果:
span(v-if="item.byx1 === '1'")
font(color='#67C23A') 成功
font.action_font(class="el-icon-picture" v-if="item.actionName === '抓图'" @click="queryActionHandle(item.id,1)") 抓图详情
font.action_font(class="el-icon-picture" v-if="item.actionName === '录像下载'" @click="queryActionHandle(item.id,2)") 录像下载详情
font(color='#F56C6C' v-if="item.byx1 === '2'") 失败
font(color='#F56C6C' v-if="item.byx1 === '3'") 中止
el-row
el-col(:span="24") 开始执行:{{item.updateTime}}
el-row
el-col(:span="24") 执行完成:{{item.endTime}}
el-col(:span="24") 执行完成:{{item.byx1 === '1' ? item.endTime: item.runMode == 1 ? item.endTime : ''}}
el-row(v-if="stepActive === index && item.runMode === 1")
el-col(:span="24")
el-button(mini="size" type="primary" @click="nextHandle(item)") 下一步
span.dialog-footer(slot="footer")
el-button(size='medium' type='primary' @click="visible = false") 关闭
el-dialog(:modal="false" width="35%" :modal-append-to-body="false" class="dialogActionClass" :close-on-press-escape="false" :visible.sync="actionVisible")
div(slot="title")
span.title-bold {{actionType == 0 ? '' : actionType==1 ? '抓图详情' : '录像下载详情'}}
div(v-loading="actionLoading")
img(v-if="actionList.length === 0" height="360px" width="100%" src="../../../assets/images/videoImg.png" alt="")
el-carousel(v-if="actionList.length > 0" height="360px" arrow="always")
el-carousel-item(v-for="(item,index) in actionList")
img(v-if="item.fileType === 'jpg' && item.path && item.path != 'null'" :src="urlPath+item.path" height="320px" width="100%")
video(v-else-if="item.fileType === 'mp4' && item.path && item.path != 'null'" height="320px" width="100%" :src="urlPath+item.path" autoplay loop controls muted="true")
img(v-else height="360px" width="100%" src="../../../assets/images/videoImg.png" alt="")
div.action_div
span.action_span(style="") {{index+1}}</span>{{'/'+actionList.length}}
//span.dialog-footer(slot="footer" style="padding:0 20px 0px 20px;")
el-button(size='medium' type='primary' @click="actionVisible = false") 关闭
</template>
<script>
export default {
......@@ -103,9 +135,13 @@
return {
visible: false,
loading: false,
actionVisible: false,
actionLoading: false,
actionList: [],
actionType: 0,
dataForm: {}, //基本信息
disposeForm: {}, //处理报警
urlPath: process.env.VUE_APP_urlPath,
urlPath: window.CONFIG.urlPath,
planForm: {},
planList: [], //应急预案
opinionList: [], //处理报警步骤集合
......@@ -118,7 +154,32 @@
videoList: []
}
},
filters: {
substr (val, len) {
if (!val) return ''
if (val.length > len) {
return val.slice(1, len) + '...'
}
return val
}
},
methods: {
//指令步骤抓图和录像下载查询
queryActionHandle(id, type) {
this.actionType = type
this.actionList = []
this.actionVisible = true
this.actionLoading = true
this.$http({
url: this.$http.adornUrlAlarm(`/orAttachment/queryByAlarmStepId/` + id),
method: 'get'
}).then(data => {
this.actionLoading = false
if (data && data.code === 0) {
this.actionList = data.list
}
})
},
init(bean) {
this.activeName = 'first'
this.visible = true
......@@ -235,6 +296,31 @@
}
</script>
<style lang="scss" scoped>
.action_font{
cursor:pointer;
line-height: 20px;
padding-left:10px;
}
.action_div{
float:left;
width:100%;
height:40px;
background: #F6F7FB;
line-height: 40px;
bottom: 0;
}
.action_span{
float:left;
text-indent: 1rem;
font-size:18px;
font-weight:bold;
color:rgba(33,172,252,1)
}
.dialogActionClass{
/deep/ .el-dialog__body{
padding: 10px;
}
}
.el_form_item{
margin-bottom: 0px !important;
}
......
......@@ -56,7 +56,9 @@
},
methods: {
groupInit() {
let myCharts = this.$echarts.init(document.getElementById('myCharts'))
let dom = document.getElementById('myCharts')
if (!dom) return
let myCharts = this.$echarts.init(dom)
let option = {
tooltip: {
trigger: 'item',
......
......@@ -26,31 +26,9 @@
el-col( :span="24")
el-checkbox( v-for="(item,index) in tableHeader" :label="item" :key="index" )
span {{item.label}}
//el-table(:data="dataList" style="width:100%;" @sort-change="sortChange" v-loading="dataListLoading" :stripe="true" :header-cell-style="{background:'#EEF8FF', color:'#000'}")
el-table-column( type='index' header-align='center', align='center', label='序号')
template(scope="scope")
span {{scope.$index+(pageIndex - 1) * pageSize + 1}}
el-table-column( prop="eventNumber" column-key='event_number' header-align="center" align="center" label="报警编号" sortable='number' width=250)
el-table-column( prop="eventName" column-key='event_name' header-align="center" align="center" label="报警名称" sortable='name')
el-table-column( prop="eventTypeName" column-key='event_type' header-align="center" align="center" label="报警类型" sortable='type')
el-table-column( prop="eventLevel" column-key='event_level' header-align="center" align="left" width="100" label="报警等级" sortable='level')
template(slot-scope="scope")
<div v-if='scope.row.eventLevel==1'><el-badge is-dot class="item1"></el-badge>特别重大</div>
<div v-if='scope.row.eventLevel==2'><el-badge is-dot class="item2"></el-badge>重大</div>
<div v-if='scope.row.eventLevel==3'><el-badge is-dot class="item3"></el-badge>一般</div>
el-table-column( prop="resourceName" column-key='resource_name' header-align="center" align="center" label="资源点名称" sortable='resourceName')
el-table-column( prop="occurrenceTime" column-key='occurrence_time' header-align="center" align="center" label="发生时间" sortable='occurrenceTime')
el-table-column( prop="occurrenceSite" column-key='occurrence_site' header-align="center" align="center" label="发生地点" sortable='occurrenceAddress')
el-table-column( prop="status" header-align="center" align="center" label="处理状态" sortable='status')
template(slot-scope="scope")
<div v-if='scope.row.status==3'><el-badge is-dot class="item1"></el-badge>已处理</div>
el-table-column( header-align="center" align="center" label="操作")
template(slot-scope="scope")
el-button(type="text" @click="disposeHandle(scope.row)" style="font-weight:400;font-family:Microsoft YaHei;font-size:14px;" v-if="isAuth('alarms:processed:info')") 详情
el-button(v-if="scope.row.systemId =='3a64b86b1a5dead8ff9d2ad913744e50' && scope.row.resourceType =='303310efddb34a2e9bf269bdff8a7dc5' && isAuth('alarms:processed:video')" size="text" type="success" @click="openHistoryVideo(scope.row)") 历史视频
drag-table( :data="dataList" :header="checkList" :option="tableOption" @getDataList="getDataList" v-loading="dataListLoading" :operationNum="2" :isShowOperate="true")
//- -- 插槽
el-table-column(slot="fixed" fixed prop="" label="序号" header-align="center" align="center" width=50)
el-table-column(slot="fixed" fixed prop="" label="序号" width="80" header-align="center" align="center" )
template( slot-scope="scope")
span {{scope.$index+(pageIndex - 1) * pageSize + 1}}
......@@ -59,10 +37,16 @@
<div v-if='scope.row.eventLevel==2'><el-badge is-dot class="item2"></el-badge>重大</div>
<div v-if='scope.row.eventLevel==3'><el-badge is-dot class="item3"></el-badge>一般</div>
template( slot='status' slot-scope="scope")
<div v-if='scope.row.status==3'><el-badge is-dot class="item1"></el-badge>已处理</div>
<div v-if='scope.row.status==3'><el-badge is-dot class="item4"></el-badge>已处理</div>
template( slot='eventNumber' slot-scope="scope")
font(:title="scope.row.eventNumber") {{scope.row.eventNumber}}
template( slot='eventName' slot-scope="scope")
font(:title="scope.row.eventName") {{scope.row.eventName}}
template( slot='occurrenceTime' slot-scope="scope")
font(:title="scope.row.occurrenceTime") {{scope.row.occurrenceTime}}
//- 操作项
template( slot-scope="scope" )
el-button(type="text" @click="disposeHandle(scope.row)" style="font-weight:400;font-family:Microsoft YaHei;font-size:14px;" v-if="isAuth('alarms:processed:info')") 详情
el-button(type="text" @click="disposeHandle(scope.row)" style="font-weight:400;font-family:Microsoft YaHei;font-size:14px;") 详情
el-button(v-if="scope.row.systemId =='3a64b86b1a5dead8ff9d2ad913744e50' && scope.row.resourceType =='303310efddb34a2e9bf269bdff8a7dc5' && isAuth('alarms:processed:video')" size="text" type="success" @click="openHistoryVideo(scope.row)") 历史视频
el-footer.box_footer
......@@ -92,12 +76,12 @@
order: '',
checkList: [],
tableHeader: [
{ label: '报警编号', prop: 'eventNumber', width: 220 },
{ label: '报警名称', prop: 'eventName' },
{ label: '报警编号', prop: 'eventNumber', width: 220, slot: true },
{ label: '报警名称', prop: 'eventName', width: 220, slot: true },
{ label: '报警类型', prop: 'eventTypeName' },
{ label: '报警等级', prop: 'eventLevel', slot: true, width: 120 },
{ label: '资源点名称', prop: 'resourceName' },
{ label: '发生时间', prop: 'occurrenceTime' },
{ label: '发生时间', prop: 'occurrenceTime', slot: true },
{ label: '发生地点', prop: 'occurrenceSite' },
{ label: '处理状态', prop: 'status', slot: true, width: 120 }
],
......@@ -112,6 +96,16 @@
HistoryVideoInfo,
dragTable
},
watch: {
totalPage() { //注意这个函数的名字必须和你监听data中的属性的名字一样,这样才能当你data中的属性发生变化时,触发这个函数
let pages = Math.ceil(this.totalPage / this.pageSize)//新数据总页数
//总页数小于当前页数则重新加载列表数据
if (pages < this.pageIndex) {
this.pageIndex = pages || 1
this.getDataList()//获取表格数据的方法
}
}
},
created() {
this.checkList = [...this.tableHeader]
this.initEventType()
......@@ -222,7 +216,7 @@
margin-top: 10px;
margin-right: 5px;
.el-badge__content.is-dot {
/deep/ .el-badge__content.is-dot {
background-color: #FF3823 !important;
}
}
......@@ -231,7 +225,7 @@
margin-top: 10px;
margin-right: 5px;
.el-badge__content.is-dot {
/deep/ .el-badge__content.is-dot {
background-color: #E2A80C !important;
}
}
......@@ -240,8 +234,16 @@
margin-top: 10px;
margin-right: 5px;
.el-badge__content.is-dot {
/deep/ .el-badge__content.is-dot {
background-color: #21ACFC !important;
}
}
.item4 {
margin-top: 10px;
margin-right: 5px;
/deep/ .el-badge__content.is-dot {
background-color: #21fc2c !important;
}
}
</style>
This diff is collapsed.
......@@ -20,7 +20,7 @@
el-header.left_header 等级分布
div(id="myCharts" style="height:232px;background:#ffffff")
//ve-pie.untreated_canvas(:data="chartData" :extend="chartExtend" legend-position="bottom" width="260px" height="350px" )
el-main(style="padding:0px;z-index:1001;height:77vh" class="alarms-untreated-main")
el-main(style="padding:0px;z-index:1001;height:78vh" class="alarms-untreated-main")
el-tabs(v-model="activeName" type="border-card" @tab-click="handleClick")
el-tab-pane(label="全部" name="0")
query-list(v-if="activeName == 0" ref="queryList")
......@@ -56,7 +56,9 @@
},
methods: {
groupInit() {
let myCharts = this.$echarts.init(document.getElementById('myCharts'))
let dom = document.getElementById('myCharts')
if (!dom) return
let myCharts = this.$echarts.init(dom)
let option = {
tooltip: {
trigger: 'item',
......
This diff is collapsed.
......@@ -76,8 +76,8 @@
</style>
<style>
.theme-tx1 .el-menu--horizontal .menu_item:not(.is-disabled):hover {
/* .theme-tx1 .el-menu--horizontal .menu_item:not(.is-disabled):hover {
color: #fff;
background: #2999dd;
}
} */
</style>
This diff is collapsed.
......@@ -17,7 +17,11 @@
height: 40px;
line-height: 40px;
}
.theme-tx1 .el-submenu__title:hover {
/* .theme-tx1 .el-submenu__title:hover {
color: #293849;
background: #f5f7fa !important;
} */
.el-submenu__title:hover {
color: #293849;
background: #f5f7fa !important;
}
......
......@@ -13,7 +13,7 @@ export default {
return {
env: process.env.NODE_ENV,
baseUrl: process.env.BASE_URL,
title: process.env.VUE_APP_TITLE
title: window.CONFIG.TITLE
}
}
}
......
This diff is collapsed.
......@@ -53,16 +53,25 @@ export default {
dataListLoading: false,
visible: false,
dataForm: {},
typeList: []
typeList: [
{ id: '1', name: '通讯器材类' },
{ id: '2', name: '防疫类' },
{ id: '3', name: '消防器材' }
]
}
},
created () {
this.getType()
// this.getType()
},
methods: {
init (row) {
this.visible = true
this.dataForm = row
this.typeList.forEach(e => {
if (e.id === this.dataForm.type) {
this.dataForm.typeName = e.name
}
})
},
//获取物资类型
getType () {
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment