Commit 69e3a8be authored by co_dengxiongwen's avatar co_dengxiongwen

初始化

parent 77b1c8fe
......@@ -5,9 +5,9 @@ CONFIG.TITLE = '轨道交通后台管理系统'
// 网络请求公用地址
// CONFIG.requestPath = 'http://localhost:8046'
CONFIG.requestPath = 'http://localhost:8046'
CONFIG.requestPath = 'http://10.20.72.33:8046'
// CONFIG.requestPath = 'http://10.20.72.33:8046'
// 文件上传
CONFIG.urlPath = 'http://10.20.72.33/'
......
This diff is collapsed.
......@@ -17,28 +17,39 @@
<!-- 顶栏右侧 -->
<div>
<div class="d2-header-right">
<div class="time-container">
<!-- 当前时间 -->
<div class="current-time">{{ time | formatDate }}</div>
<div class="current-date">{{ time | formatDate2 }}</div>
</div>
<div class="subway-container" >
<div class="subway-info" >
<span :class="station.length<6?'lineFeed':''">{{station}}</span>
<div class="subway-container">
<div class="subway-info">
<span :class="station.length < 6 ? 'lineFeed' : ''">{{
station
}}</span>
<!-- <div class="out-img">
</div> -->
</div>
<div class="user-img"><img src="./imgs/subway.png" /></div>
</div>
<d2-header-theme /> <!-- 主题 -->
<el-badge class="msg-img" :value="countNum == 0 ? '' : countNum > 99 ? '99+' : countNum" type="danger" >
<d2-header-theme />
<!-- 主题 -->
<el-badge
class="msg-img"
:value="countNum == 0 ? '' : countNum > 99 ? '99+' : countNum"
type="danger"
>
<div title="报警中心" style="cursor: pointer" @click="toAlarms">
<img src="./imgs/msg.png" />
</div>
</el-badge>
<d2-header-user />
<div title="退出" class="msg-img" style="cursor: pointer;" @click="logOff">
<div
title="退出"
class="msg-img"
style="cursor: pointer;"
@click="logOff"
>
<img src="./imgs/out.png" />
</div>
<!-- <div class="subway-container" @click="logOff">
......@@ -94,11 +105,11 @@
<linkage v-if="$route.matched[0].name == 'linkage'"></linkage>
<alarms v-if="$route.matched[0].name == 'alarms'"></alarms>
<!-- 线路级 -->
<rEme v-if="$route.matched[0].name == 'routes-em'" ></rEme>
<rSys v-if="$route.matched[0].name == 'routes-sys'" ></rSys>
<rPlan v-if="$route.matched[0].name == 'routes-plan'" ></rPlan>
<rEq v-if="$route.matched[0].name == 'routes-eq'" ></rEq>
<rAna v-if="$route.matched[0].name == 'routes-analysis'" ></rAna>
<rEme v-if="$route.matched[0].name == 'routes-em'"></rEme>
<rSys v-if="$route.matched[0].name == 'routes-sys'"></rSys>
<rPlan v-if="$route.matched[0].name == 'routes-plan'"></rPlan>
<rEq v-if="$route.matched[0].name == 'routes-eq'"></rEq>
<rAna v-if="$route.matched[0].name == 'routes-analysis'"></rAna>
<!-- 页面 -->
<div
class="d2-theme-container-main-body"
......@@ -148,24 +159,17 @@ export default {
'd2-header-theme': () => import('./components/header-theme'),
'd2-header-user': () => import('./components/header-user'),
sys: () => import('../../pages/sys/index.vue'),
monitor: () => import('../../pages/monitor/index.vue'),
access: () => import('../../pages/access/index.vue'),
police: () => import('../../pages/police/index.vue'),
inspect: () => import('../../pages/inspect/index.vue'),
patrol: () => import('../../pages/patrol/index.vue'),
eme: () => import('../../pages/em/index.vue'),
eq: () => import('../../pages/eq/index.vue'),
plan: () => import('../../pages/plan/index.vue'),
linkage: () => import('../../pages/linkage/index.vue'),
alarms: () => import('../../pages/alarms/index.vue'),
// 线路级
rEme: () => import('../../pages/routes/em/index.vue'),
rSys: () => import('../../pages/routes/sys/index.vue'),
rPlan: () => import('../../pages/routes/plan/index.vue'),
rEq: () => import('../../pages/routes/eq/index.vue'),
rAna: () => import('../../pages/routes/analysis/index.vue'),
bim: () => import('./components/bim')
// monitor: () => import('../../pages/monitor/index.vue'),
// access: () => import('../../pages/access/index.vue'),
// police: () => import('../../pages/police/index.vue'),
// inspect: () => import('../../pages/inspect/index.vue'),
// patrol: () => import('../../pages/patrol/index.vue'),
// eme: () => import('../../pages/em/index.vue'),
// eq: () => import('../../pages/eq/index.vue'),
// plan: () => import('../../pages/plan/index.vue'),
// linkage: () => import('../../pages/linkage/index.vue'),
// alarms: () => import('../../pages/alarms/index.vue'),
bim: () => import('./components/bim'),
},
data() {
return {
......@@ -178,7 +182,7 @@ export default {
timer: null,
logTimeout: null,
countNum: 0,
station: ''
station: '',
}
},
mounted() {
......@@ -209,7 +213,7 @@ export default {
let getWeek = '星期' + weeks[week]
// return `${y}/${MM}/${d} ${getWeek} `
return `${MM}/${d} ${getWeek} `
}
},
},
computed: {
......@@ -217,12 +221,12 @@ export default {
keepAlive: (state) => state.page.keepAlive,
grayActive: (state) => state.gray.active,
transitionActive: (state) => state.transition.active,
asideCollapse: (state) => state.menu.asideCollapse
asideCollapse: (state) => state.menu.asideCollapse,
}),
...mapState('d2admin/menu', ['header']),
...mapState('d2admin/toast', ['size']),
...mapGetters('d2admin', {
themeActiveSetting: 'theme/activeSetting'
themeActiveSetting: 'theme/activeSetting',
}),
/**
* @description 最外层容器的背景图片样式
......@@ -235,12 +239,12 @@ export default {
// }
// : {})
}
}
},
},
watch: {
size(val) {
this.countNum = val
}
},
},
methods: {
...mapActions('d2admin/account', ['logout']),
......@@ -250,7 +254,7 @@ export default {
logOff() {
this.logout({
vm: this,
confirm: true
confirm: true,
})
},
getDate() {
......@@ -275,24 +279,24 @@ export default {
if (!this.station || this.station == 'undefined') {
setTimeout(this.getStation, 3000)
}
}
}
},
},
}
</script>
<style lang="scss">
.lineFeed{
line-height:36px;
padding-top:0px !important;
.lineFeed {
line-height: 36px;
padding-top: 0px !important;
}
.time-container {
width: 93px;
text-align: right;
// border:1px solid red;
padding:2px;
padding: 2px;
.current-time {
font-size: 18px;
font-weight:500;
font-weight: 500;
color: rgba(255, 255, 255, 0.75);
}
......@@ -303,7 +307,7 @@ export default {
}
.msg-img {
margin-right:10px;
margin-right: 10px;
img {
width: 37px;
height: 36px;
......@@ -314,7 +318,7 @@ export default {
.subway-container {
display: flex;
align-items: center;
margin-right:10px;
margin-right: 10px;
.user-img {
img {
......@@ -330,12 +334,12 @@ export default {
background: url(./imgs/subwayBg.png);
background-size: 100% 100%;
transform: translateX(12px);
text-align:right;
text-align: right;
span {
display:inline-block;
display: inline-block;
height: 36px;
padding-top:2px;
padding-right:16px;
padding-top: 2px;
padding-right: 16px;
font-size: 12px;
font-family: Microsoft YaHei;
font-weight: 400;
......@@ -403,7 +407,7 @@ export default {
// }
// 注册主题
@import "~@/assets/style/theme/register.scss";
@import '~@/assets/style/theme/register.scss';
// 左上角logo
.d2-layout-header-aside-group
.d2-layout-header-aside-content
......
This diff is collapsed.
<template>
<div>
<menu-component class="monitor_menu" :menuList="list" :active="active"></menu-component>
</div>
</template>
<script>
import menuComponent from '../components/menu-component'
import { mapState } from 'vuex'
export default {
data() {
return {
list: [],
active: ''
}
},
components: {
menuComponent
},
computed: {
...mapState('d2admin/menu', [
'header'
])
},
watch: {
'$route.matched': {
handler (val) {
this.$nextTick(()=>{
this.active=''
this.active = val[1].path
})
},
immediate: true
}
},
created () {
this.header.forEach(res => {
if (res.path === '/access') {
this.list = res.list;
this.active=this.$route.path
// this.active = res.list[0].path;
// this.$router.push({
// path: res.list[0].path,
// })
}
})
}
}
</script>
This diff is collapsed.
<template lang="pug">
<div class='m_i_dialog'>
<el-dialog title="详情" width="1100px" :close-on-click-modal='false' :visible.sync='visible' :modal-append-to-body='false'>
.title-bold(slot='title') 指令详情
<div style="height:430px;">
<div class="m_i_dialog_lift">
<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" :title='dataForm.instruction' v-model='dataForm.instruction' readonly></el-input>
</el-form-item>
<el-form-item label='资源点名称:' prop='port'>
<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-form-item>
<el-form-item label='资源点状态:' prop='port'>
<el-input size="medium" v-model='dataForm.status' readonly></el-input>
</el-form-item>
<el-form-item label='IP-PORT:' prop='port'>
<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" :title='dataForm.lineStationName' v-model='dataForm.lineStationName' readonly></el-input>
</el-form-item>
</el-form>
</div>
<div class="m_i_dialog_right">
<div class="header_title">运行信息</div>
<el-form :model='dataForm' ref='dataForm' :inline='true' label-width="100px" style='padding-left: 20px;'>
<el-form-item label='子系统:' prop='port'>
<el-input size="medium" v-model='dataForm.subSystem' readonly></el-input>
</el-form-item>
<el-form-item label='执行人:' prop='port'>
<el-input size="medium" v-model='dataForm.createUser' readonly></el-input>
</el-form-item>
<el-form-item label='执行完成时间:' prop='port'>
<el-input size="medium" v-model='dataForm.createTime' readonly></el-input>
</el-form-item>
<el-form-item label='执行结果:' prop='port'>
<el-input size="medium" v-model='dataForm.result' readonly></el-input>
</el-form-item>
<el-form-item label='告警等级:' prop='port'>
<el-input v-if="!dataForm.eventLevel" value="" size="medium" readonly></el-input>
<el-input v-if="dataForm.eventLevel==1" value="特别重大" size="medium" readonly></el-input>
<el-input v-if="dataForm.eventLevel==2" value="重大" size="medium" readonly></el-input>
<el-input v-if="dataForm.eventLevel==3" value="一般" size="medium" readonly></el-input>
</el-form-item>
<el-form-item label='故障等级:' prop='port'>
<el-input size="medium" v-model='dataForm.xx' readonly></el-input>
</el-form-item>
<el-form-item label='触发方式:' prop='port'>
<el-input v-if="dataForm.createUser!='系统'" value="手动" size="medium" readonly></el-input>
<el-input v-if="dataForm.createUser=='系统'" value="自动" size="medium" readonly></el-input>
</el-form-item>
<el-form-item label='指令来源:' prop='port'>
<el-input v-if="!dataForm.source || dataForm.source==1" value="手动操作" size="medium" readonly></el-input>
<el-input v-if="dataForm.source==2" value="系统联动" size="medium" readonly></el-input>
<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" :title='dataForm.deployLocation' v-model='dataForm.deployLocation' readonly></el-input>
</el-form-item>
<el-form-item label='附属信息:' prop='port'>
<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>
</el-form-item>
<el-form-item label='动作名称:' prop='port'>
<el-input size="medium" v-model='dataForm.actionName' readonly></el-input>
</el-form-item>
<el-form-item label='动作参数:' prop='port'>
<el-input type="textarea" resize="none" readonly v-model="paramStr"></el-input>
</el-form-item>
</el-form>
</div>
</div>
<span class="dialog-footer" slot='footer'>
<el-button type="primary" @click='visible = false'>关闭</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
computed: {
...mapState('d2admin/user', [
'info'
])
},
data () {
return {
visible: false,
paramStr: '',
dataForm: {
}
}
},
created() {
this.dataForm = {
}
},
methods: {
init (res) {
// console.log(res)
this.visible = true
this.$http({
url: this.$http.adornUrlEq(`/orGate/getId`),
method: 'get',
params: { id: res.id,
source: res.source,
stationId: res.stationId,
byx3: res.byx3
}
}).then(data => {
if (data && data.code === 0) {
this.dataForm = data.bean
this.dataForm.status == 1 ? this.dataForm.status = '正常' : this.dataForm.status = '不可用'
this.dataForm.result == 1 ? this.dataForm.result = '成功' : this.dataForm.result = '失败'
this.paramStr = ''.concat((this.dataForm.paramsName1 ? this.dataForm.paramsName1 : ''), (this.dataForm.paramsValue1 ? this.dataForm.paramsValue1 : ''), (this.dataForm.paramsName2 ? ',' + this.dataForm.paramsName2 : ''), (this.dataForm.paramsValue2 ? this.dataForm.paramsValue2 : ''))
}
})
}
}
}
</script>
<style lang='scss' scoped>
.m_i_dialog_lift{
width:364px;
height:450px;
background:rgba(255,255,255,1);
border:1px solid rgba(23, 41, 71, 0.08);
float: left;
box-shadow:0px 2px 8px 0px rgba(0, 0, 0, 0.2);
.header_title{
height: 40px; width: 344px; background: #EEF8FF; line-height: 40px; padding-left: 20px; font-family:Microsoft YaHei; font-weight:bold; margin-bottom: 10px;
}
.el-form-item{
margin: 10px 0 0 0 ;
}
}
.m_i_dialog_right{
width:670px;
height:450px;
float: left;
background:rgba(255,255,255,1);
border:1px solid rgba(23, 41, 71, 0.08);
margin-left: 20px;
box-shadow:0px 2px 8px 0px rgba(0, 0, 0, 0.2);
.header_title{
height: 40px; width: 650px; background: #EEF8FF; line-height: 40px; padding-left: 20px; font-family:Microsoft YaHei; font-weight:bold; margin-bottom: 10px;
}
.el-form-item{
margin: 10px 0 0 0 ;
}
.el-textarea{
width: 267%;
}
}
</style>
This diff is collapsed.
This diff is collapsed.
<template>
<div>
<menu-component class="monitor_menu" :menuList="list" :active="active"></menu-component>
</div>
</template>
<script>
import menuComponent from '../components/menu-component'
import { mapState } from 'vuex'
export default {
data() {
return {
list: [],
active: ''
}
},
components: {
menuComponent
},
computed: {
...mapState('d2admin/menu', [
'header'
])
},
created () {
this.header.forEach(res => {
if (res.path === '/alarms') {
this.list = res.list
this.active = res.list[0].path
this.$router.push({
path: res.list[0].path
})
}
})
}
}
</script>
<template lang='pug'>
el-container(style="padding:0px;height:77.6vh;")
el-header(style='height:42px;line-height:42px;border: 1px solid rgba(195, 195, 195, 1);background: #f4f4f4;')
span.title-bold.title-left-color() 历史指令
el-popover( placement="bottom" width="150")
el-button( slot="reference" size='mini' type="primary" icon="el-icon-s-tools" style='float:right;transform:translateY(6px)') 筛选
el-checkbox-group( v-model="checkList")
el-col( :span="24")
el-checkbox( v-for="(item,index) in tableHeader" :label="item" :key="index" )
span {{item.label}}
el-main.box_main
el-card()
div(style="width:100%;")
el-form( :inline="true" :model="dataForm" size="mini" @keyup.enter.native="getDataList()")
el-form-item(label="搜索:")
el-input( v-model="dataForm.par" placeholder="请输入指令ID/报警编号搜索" clearable)
el-form-item( label="执行时间:")
el-date-picker(type="datetime" value-format="yyyy-MM-dd HH:mm:ss" style="width:175px;" v-model="dataForm.startTime" placeholder="选择开始时间" clearable)
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") 查询
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="序号" width="80" header-align="center" align="center")
template( slot-scope="scope")
span {{scope.$index+(pageIndex - 1) * pageSize + 1}}
template(slot="result" 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') 中止
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)") 详情
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")
</template>
<script>
import quertDetail from './query-detail'
import dragTable from '../../components/tab'
export default {
name: 'sys-user',
filters: {
ellipsis (value) {
if (!value) return ''
if (value.length > 20) {
return value.slice(0, 20) + '...'
}
return value
}
},
data () {
return {
data: [],
isCollapse: true,
dataForm: {},
orgInfo: {},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false,
queryDetailVisible: false,
checkList: [], //筛选数据
tableHeader: [
{ label: '报警编号', prop: 'eventNumber', slot: true, width: 260 },
{ label: '指令ID', prop: 'instruction', slot: true, width: 260 },
{ label: '资源点名称', prop: 'resourceName' },
{ label: '资源点类型', prop: 'resourceType' },
{ label: '资源点状态', prop: 'resourceStatus' },
{ label: '资源点动作', prop: 'actionName' },
{ label: '执行人', prop: 'createUser' },
{ label: '执行完成时间', prop: 'createTime' },
{ label: '执行结果', prop: 'result', slot: true }
],
tableOption: {
border: false, //是否边框
maxHeight: 500 //高度
}
}
},
components: {
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()
},
methods: {
// 获取数据列表
getDataList (sort, order) {
if (sort === 'resource_name') {
sort = 'lr.name'
}
if (sort === 'resource_type') {
sort = 'sd.name'
}
if (sort === 'resource_status') {
sort = 'lr.status'
}
if (sort === 'create_time') {
sort = 'aa.create_time'
}
if (sort === 'result') {
sort = 'aa.result'
}
console.log(this.sort, this.order)
this.dataListLoading = true
this.$http({
url: this.$http.adornUrlAlarm('/alarmsLog/instructList'),
method: 'get',
params: {
stationId: localStorage.getItem('stationId'),
par: this.dataForm.par,
startTime: this.dataForm.startTime,
endTime: this.dataForm.endTime,
page: this.pageIndex,
size: this.pageSize,
sort: sort,
order: order
}
}).then(data => {
if (data && data.code === 0) {
// console.log(data)
this.dataList = data.page.records
this.totalPage = data.page.total
} else {
this.dataList = []
this.totalPage = 0
}
this.dataListLoading = false
})
},
//排序
sortChange (column) {
if (column.order === 'descending') {
this.order = 'desc'
} else {
this.order = 'asc'
}
if (column.column.columnKey) {
this.sort = column.column.columnKey
} else {
this.sort = column.prop
}
this.getDataList()
},
// 每页数
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
// 当前页
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
indexMethod(index) {
return (this.pageIndex - 1) * this.pageSize + index + 1
},
// 详情
queryHandle (row) {
this.queryDetailVisible = true
this.$nextTick(() => {
this.$refs.quertDetail.init(row)
})
},
// 删除
deleteHandle (id) {
this.$confirm(`确认删除该指令?`, '删除指令', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
closeOnClickModal: false
}).then(() => {
this.$http({
url: this.$http.adornUrlAlarm('/linkLinkageRule/delete'),
method: 'post',
data: this.$http.adornData(id, false)
}).then(data => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList()
}
})
} else {
this.$message.error(data.msg)
}
})
})
.catch(() => {
})
}
}
}
</script>
<style lang='scss' scoped>
</style>
<template lang="pug">
el-dialog( :close-on-click-modal='false', :visible.sync='visible' append-to-body :modal-append-to-body="false" width='60%')
div.title-bold(slot='title') 详情
el-row(:gutter="10")
el-col(:span='9')
el-card(:body-style="{ height: '370px' }")
div(slot='header') 基本信息
el-row()
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 :title='dataForm.eventNumber' v-model='dataForm.eventNumber' )
el-col(:span='24')
el-form-item(label="指令ID" prop="instruction")
el-input(readonly :title='dataForm.instruction' v-model='dataForm.instruction' )
el-col(:span='24')
el-form-item(label="资源点名称" prop="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' )
el-col(:span='24')
el-form-item(label="资源点类型" prop="resourceType")
el-input(readonly v-model='dataForm.resourceType' )
el-col(:span='24')
el-form-item(label="资源点状态" prop="resourceStatus")
el-input(readonly v-model='dataForm.resourceStatus' )
el-col(:span='24')
el-form-item(label="IP:PORT" prop="IPPORT")
el-input(readonly v-model='dataForm.IPPORT' )
el-col(:span='24')
el-form-item(label="线路站点" prop="lineStation" )
el-input(readonly :title='dataForm.lineStation' v-model='dataForm.lineStation')
el-col(:span='15')
el-card(:body-style="{ height: '370px' }")
div(slot='header') 运行信息
el-form( ref="dataForm2" :model="dataForm" size="mini" label-position="right" label-width="100px" )
el-row
el-col(:span='12')
el-form-item(label="子系统" prop="subSystem")
el-input(readonly v-model='dataForm.subSystem' )
el-col(:span='12')
el-form-item(label="执行人" prop="createUser")
el-input(readonly v-model='dataForm.createUser' )
el-row
el-col(:span='12')
el-form-item(label="执行完成时间" prop="createTime")
el-input(readonly v-model='dataForm.createTime' )
el-col(:span='12')
el-form-item(label="执行结果" prop="resultName")
el-input(readonly v-model='dataForm.resultName' )
//- el-col(:span='12')
el-form-item(label="故障等级" prop="eventLevelName")
el-input(readonly v-model='dataForm.eventLevelName' )
el-row
el-col(:span='12')
el-form-item(label="触发方式" prop="triggerMode")
el-input(readonly v-model='dataForm.triggerMode' )
el-col(:span='12')
el-form-item(label="指令来源" prop="sourceName")
el-input(readonly v-model='dataForm.sourceName' )
el-row
el-col(:span='12')
el-form-item(label="部署位置" prop="deployLocation")
el-input(readonly :title='dataForm.deployLocation' v-model='dataForm.deployLocation' )
el-col(:span='12')
el-form-item(label="附属信息" prop="attachedInfo")
el-input(readonly :title='dataForm.attachedInfo' v-model='dataForm.attachedInfo' )
el-row
el-col(:span='12')
el-form-item(label="动作编号" prop="actionCode")
el-input(readonly v-model='dataForm.actionCode' )
el-col(:span='12')
el-form-item(label="动作名称" prop="actionName")
el-input(readonly v-model='dataForm.actionName' )
el-row
el-col(:span='24')
el-form-item(label="动作参数" prop="params")
el-input.mywidth(readonly v-model='dataForm.params' type="textarea" resize="none" :rows="3" )
span.dialog-footer(slot='footer')
el-button(size='medium' type="primary" @click='visible = false') 关闭
</template>
<script>
// require('script-loader!file-saver')
export default {
data() {
return {
dataForm: {},
dataListLoading: false,
innerVisible: false,
dataList: [],
visible: false,
stepList: [],
attachmentList: []
}
},
methods: {
handleChange(val) {
// console.log(val)
},
init(row) {
this.dataForm = {}
this.visible = true
this.initData(row)
},
//初始化数据--获取详细信息
initData(row) {
this.$http({
url: this.$http.adornUrlAlarm('/alarmsLog/getByOrId'),
method: 'get',
params: { id: row.id,
source: row.source }
}).then(data => {
if (data && data.code === 0) {
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(',') || ''
}
})
}
}
}
</script>
<style lang='scss' scoped>
.col {
margin-right: 15px;
}
</style>
This diff is collapsed.
<template lang="pug">
el-dialog.my_dialog(:close-on-click-modal='false' :visible.sync='visible' append-to-body width='60%' :before-close='handleClose' :destroy-on-close='true')
div.title-bold(slot='title') 历史视频
el-row()
div(v-if='videoList.length === 0' style='height:500px;display:flex')
font(style='margin:auto;font-size:27px') 暂无视频
el-col(v-else :span="(index === 0 && videoList.length === 1) || index ===2 ? 24 : 12" v-for="(item, index) in videoList" :key="index")
el-card(:body-style="{ padding: '0px' }")
div(slot="header" align='center' class='my_dialog_header')
font() {{item.name}}
video( style="width:100%" :src="item.path" :id="item.id" autoplay loop controls muted="true")
</template>
<script>
export default {
name: 'history-video-info',
data() {
return {
visible: false,
videoList: [
// {
// id: 1,
// src: 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4',
// name: 'ceshi1'
// },
// {
// id: 2,
// src: 'http://mirror.aarnet.edu.au/pub/TED-talks/911Mothers_2010W-480p.mp4',
// name: 'ceshi2'
// },
// {
// id: 3,
// src: 'https://media.w3.org/2010/05/sintel/trailer.mp4',
// name: 'ceshi3'
// }
]
}
},
methods: {
init(row) {
this.visible = true
// console.log(row)
this.initData(row.id)
},
initData(id) {
console.log(id)
this.$http({
url: this.$http.adornUrlAlarm('/alarmsInfo/getHistoryVideInfo'),
method: 'get',
params: { id: id }
}).then(data => {
if (data && data.code === 0) {
this.videoList = data.list
}
})
},
//关闭页面前调用
handleClose() {
this.visible = false
//关闭视频
this.videoList.map(item => {
var vide = document.getElementById(item.id)
if (vide.paused) {
// vide.play()
} else if (vide.play()) {
vide.pause()
}
})
this.videoList = []
}
}
}
</script>
<style scoped>
.title-bold {
font-weight: bold;
font-size: 17px;
}
.my_dialog >>> .el-dialog__body {
padding: 0px;
}
.my_dialog >>> .el-card__header {
padding: 8px 0px;
}
</style>
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.
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