Commit 0a4c0665 authored by co_dengxiongwen's avatar co_dengxiongwen

场景维护,阈值维护页面

parent ea092dae
......@@ -106,7 +106,9 @@ new Vue({
// this.$store.commit('d2admin/menu/headerSet', menuHeader)
// // 初始化菜单搜索功能
// this.$store.commit('d2admin/search/init', menuHeader)
const pattern = /[_`~^*|{}<>¥……*|&‘”“/#()【】《》\\[\]$%+=]/ //这些字段不允许输入
// const pattern = /[_`~^*|{}<>¥……*|&‘”“/#()【】《》\\[\]$%+=]/ //这些字段不允许输入
const pattern = /[`~^*|{}<>¥……*|&‘”“/#()【】《》\\[\]$%+=]/ //这些字段不允许输入
const testMark = function (s) {
return pattern.test(s)
}
......@@ -122,7 +124,7 @@ new Vue({
}
return rs
}
const timeReplaceMark = function (obj) {
if (testMark(obj.value)) {
obj.value = replaceMark(obj.value, true)
......@@ -143,15 +145,15 @@ new Vue({
if (ev.target.type === 'text' || ev.target.type === 'textarea') {
timeReplaceMark(ev.target)
}
},true)
}, true)
},
beforeDestroy(){
beforeDestroy() {
window.removeEventListener('input', function (ev) {
// console.log(ev);
if (ev.target.type === 'text' || ev.target.type === 'textarea') {
timeReplaceMark(ev.target)
}
},true)
}, true)
},
mounted () {
// 展示系统信息
......
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 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>
......@@ -183,10 +183,10 @@
//span.dialog-footer(slot="footer" style="padding:0 20px 0px 20px;")
el-button(size='medium' type='primary' @click="actionVisible = false") 关闭
//预案详情页面
query-detail(v-if="queryDetailVisible" ref="queryView")
//- query-detail(v-if="queryDetailVisible" ref="queryView")
</template>
<script>
import queryDetail from '../../plan/planRegister/query-detail'
// import queryDetail from '../../plan/planRegister/query-detail'
import { mapState, mapGetters, mapActions } from 'vuex'
let t
export default {
......@@ -248,7 +248,7 @@
window.addEventListener('beforeunload', e => this.beforeunloadFn(e))
},
components: {
queryDetail
// queryDetail
},
computed: {
...mapState('d2admin/alramfj', ['alarmId'])
......
<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 === '/inspect') {
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(`/orSafetyCheck/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.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<template lang='pug'>
el-dialog( :visible.sync='visible' :append-to-body='true' width='72%' :before-close='handleClose' :destroy-on-close='true')
div( slot="title")
span.title-bold 配置动作
div( class="div_my_body" v-loading="diaLoading")
el-transfer(
ref='my_transfer'
id='my_transfer'
v-model="dataIds"
filterable
filter-placeholder="请输入动作名称"
:titles="['动作列表', '已选中动作']"
:format="{noChecked: '${total}',hasChecked: '${checked}/${total}'}"
:filter-method="filterMethod"
:props="transferProps"
@change="handleChange"
:data="actionData")
template(slot-scope='{option}')
el-row(type="flex" justify="start")
el-col(:span="8" style="margin-right:0")
span {{option.actionInfo}}
el-col(:span="8" style="margin-right:0")
span {{option.paramsName1}}
el-col(:span="8" style="margin-right:0")
span {{option.paramsName2}}
//div()
// div(style='width:33%;float:left') {{option.actionInfo}}
div(style='width:33%;float:left') {{option.paramsName1}}
div(style='width:33%;float:left') {{option.paramsName2}}
//span(:title="option.actionInfo + '\t' + option.paramsName1 + option.paramsName2") {{option.actionInfo}} &emsp; {{option.paramsName1}} &emsp; {{option.paramsName1}}
span.dialog-footer(slot='footer')
el-button(type='primary' size='medium' @click='cancel') 取消
el-button(type='primary' size='medium' @click='saveAction' v-prevent-re-click) 保存
</template>
<script>
export default {
data() {
return {
diaLoading: false,
selResourceType: '',
dataIds: [],
visible: false,
actionData: [],
transferProps: {
key: 'id',
label: 'actionInfo'
}
}
},
methods: {
init(row) {
this.selResourceType = row.id
// console.log('row', row)
this.visible = true
this.getAction()
this.$http({
url: this.$http.adornUrlAlarm(`/linkResourceAction/getActionByResourceType`),
method: 'get',
params: this.$http.adornParams({
resourceType: row.id
})
}).then(data => {
// console.log('data', data)
this.dataIds = data.list.map(item => {
return item.action_id
})
// console.log(this.dataIds)
})
},
handleChange(value, direction, movedKeys) {
// console.log('dataIds', this.dataIds)
// console.log('value=', value)
// console.log('direction=', direction)
// console.log('movedKeys=', movedKeys)
},
getAction() {
this.$http({
url: this.$http.adornUrlAlarm(`/linkAction/actionList`),
method: 'post',
data: {}
}).then(data => {
// console.log('actionData', data)
if (data && data.code === 0) {
this.actionData = data.list
}
})
},
//条件过滤
filterMethod(query, item) {
return item.actionInfo.indexOf(query) > -1 || item.paramsName1.indexOf(query) > -1 || item.paramsName2.indexOf(query) > -1
},
//配置动作
saveAction() {
if (!this.selResourceType) {
this.$message.error('请先选择资源点类型!')
return
}
this.diaLoading = true
this.$http({
url: this.$http.adornUrlAlarm(`/linkResourceAction/updateResourceAction`),
method: 'post',
data: this.$http.adornData({
resource_type: this.selResourceType,
actions: this.dataIds
})
}).then(data => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500
})
} else {
this.$message.error(data.msg)
}
this.diaLoading = false
this.visible = false
})
},
//关闭前
handleClose() {
this.visible = false
// this.$refs.my_transfer.clearQuery('left')
// this.$refs.my_transfer.clearQuery('right')
},
//取消
cancel() {
this.$confirm('确认取消?', '配置动作', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.handleClose()
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消退出'
})
})
}
}
}
</script>
<style lang="scss">
.div_my_body {
margin: 0 auto;
display: flex;
.el-checkbox {
margin-right: 0;
}
}
#my_transfer {
justify-content: center;
margin: 0 auto;
display: table-cell;
.el-transfer-panel {
width: 600px;
height: 500px;
border: 1px solid #EBEEF5;
border-radius: 4px;
overflow: hidden;
background: #FFF;
display: inline-block;
vertical-align: middle;
max-height: 100%;
-webkit-box-sizing: border-box;
box-sizing: border-box;
position: relative;
}
.el-transfer__buttons button {
margin: 0 auto;
margin-bottom: 20px;
width: 50px;
height: 50px;
border-radius: 50%;
display: block;
padding: 0px;
}
}
/*.right-box-one {*/
/* margin: 20px 0;*/
/* width: 40%;*/
/*}*/
/*.left-box {*/
/* width: 90%;*/
/* border: 1px solid #ebeef5;*/
/* height: 500px;*/
/* padding: 20px;*/
/* .search-box {*/
/* margin-bottom: 20px;*/
/* }*/
/*}*/
</style>
<template lang='pug'>
el-dialog( :visible.sync='visible' :append-to-body='true' :before-close='handleClose' :destroy-on-close='true' width="50%")
div( slot="title" class="clearfix")
span.title-bold 配置事件
div( class="div_my_body" v-loading="diaLoading")
el-transfer(
ref='my_transfer'
id='my_transfer1'
v-model="dataIds"
filterable
filter-placeholder="请输入事件名称"
:titles="['事件列表', '已选中事件']"
:format="{noChecked: '${total}',hasChecked: '${checked}/${total}'}"
:props="transferProps"
@change="handleChange"
:data="eventData")
span.dialog-footer(slot='footer')
el-button(type='danger' size='medium' @click='handleClose') 取消
el-button(type='primary' size='medium' @click='saveEvent' v-prevent-re-click) 保存
</template>
<script>
export default {
data() {
return {
diaLoading: false,
selResourceType: '',
dataIds: [],
visible: false,
eventData: [],
transferProps: {
key: 'id',
label: 'eventName'
}
}
},
methods: {
init(row) {
// console.log('row', row, 'eventData', eventData)
this.visible = true
this.selResourceType = row.id
this.getEvent()
this.$http({
url: this.$http.adornUrlAlarm(`/linkResourceEvent/getEventByResourceType`),
method: 'get',
params: this.$http.adornParams({
resourceType: row.id
})
}).then(data => {
this.dataIds = data.list.map(item => {
return item.event_id
})
})
},
handleChange(value, direction, movedKeys) {
// console.log('dataIds', this.dataIds)
// console.log('value=', value)
// console.log('direction=', direction)
// console.log('movedKeys=', movedKeys)
},
getEvent() {
this.$http({
url: this.$http.adornUrlAlarm(`/linkEvent/eventList`),
method: 'post',
data: {}
}).then(data => {
// console.log('eventData', data)
if (data && data.code === 0) {
this.eventData = data.list
}
})
},
saveEvent() {
if (!this.selResourceType) {
this.$message.error('请先选择资源类型!')
return
}
this.diaLoading = true
this.$http({
url: this.$http.adornUrlAlarm(`/linkResourceEvent/updateResourceEvent`),
method: 'post',
data: this.$http.adornData({
resource_type: this.selResourceType,
events: this.dataIds
})
}).then(data => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500
})
} else {
this.$message.error(data.msg)
}
this.diaLoading = false
this.visible = false
})
},
//关闭前
handleClose() {
this.visible = false
// this.$refs.my_transfer.clearQuery('left')
// this.$refs.my_transfer.clearQuery('right')
}
}
}
</script>
<style lang="scss" >
#my_transfer1 {
justify-content: center;
margin: 0 auto;
display: table-cell;
.el-transfer-panel {
width: 380px;
height: 500px;
border: 1px solid #EBEEF5;
border-radius: 4px;
overflow: hidden;
background: #FFF;
display: inline-block;
vertical-align: middle;
max-height: 100%;
-webkit-box-sizing: border-box;
box-sizing: border-box;
position: relative;
}
.el-transfer__buttons button {
margin: 0 auto;
margin-bottom: 20px;
width: 50px;
height: 50px;
border-radius: 50%;
display: block;
padding: 0px;
}
}
</style>
<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 === '/linkage') {
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.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
import Mock from 'mockjs'
const mockData = Mock.mock({
'data|3-6': [{
'name': '@NAME',
'creatDate': '@DATE',
'address': '@CITY',
'zip': '@ZIP'
}]
})
export default {
data: null,
columns: [
{
label: '姓名',
prop: 'name'
},
{
label: '会员账号',
prop: 'mobile'
},
{
label: '身份证',
prop: 'idCard'
},
{
label: '会员类别',
prop: 'type'
},
{
label: '性别',
prop: 'gender'
},
{
label: '级别',
prop: 'level'
},
{
label: '总积分',
prop: 'scoreNum'
},
{
label: '年度积分',
prop: 'yearScore'
},
{
label: '参赛次数',
prop: 'gameNum'
},
{
label: '争议次数',
prop: 'argueNum'
},
{
label: '状态',
prop: 'byx1'
}
]
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<template lang="pug">
el-dialog(title="附件查看", :close-on-click-modal='false', :visible.sync='visible' append-to-body @close="closeForm")
.title-bold(slot='title') 附件查看
el-form(:model='dataForm', ref='dataForm', label-width='120px')
el-image(width="100%" :src='dataForm.xx' alt="" fit="cover")
div(slot="placeholder" class="image-slot")
font() 加载中 ...
span.dialog-footer(slot='footer')
el-button(type="primary" @click='closeForm') 关闭
</template>
<script>
export default {
data () {
return {
dataForm: {},
urlPath: window.CONFIG.urlPath,
visible: false
}
},
methods: {
init (row) {
this.visible = true
this.dataForm.xx = this.urlPath + row.path
},
closeForm () {
this.dataForm = {}
this.visible = false
}
}
}
</script>
<style>
.el-table__header {
width: 100% !important;
}
.el-table__body {
width: 100% !important;
}
</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.
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