This commit is contained in:
sunzhenyu 2020-06-17 13:32:29 +08:00
commit 3ec20a75c6
16 changed files with 398 additions and 385 deletions

View File

@ -139,9 +139,10 @@
:key="idx"
size="mini"
style="margin-top: 5px;"
:loading="scope.row['loading'+idx]"
:type="button.type ? button.type : 'primary'"
:disabled="isTableBtnDisabled(button, scope.$index, scope.row)"
@click="button.handleClick(scope.$index, scope.row) "
@click="button.handleClick(scope.$index, scope.row, idx) "
>{{ getTableBtnName(button.name, scope.$index, scope.row) }}</el-button>
</template>
</template>

View File

@ -121,7 +121,7 @@ class SkinCode extends defaultStyle {
};
this[deviceType.Signal] = {
distance: 4, // 设备距离区段的距离
distance: 3, // 设备距离区段的距离
post: {
standardLength: 6, // 高柱长度
standardHeight: 6, // 灯柱高度
@ -544,12 +544,12 @@ class SkinCode extends defaultStyle {
changeTrainWidth: true, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度
specialTrainType: [
{
type: '03',
type: 'MANUAL',
serviceNumber: 'MM',
nameFormat: 'serviceNumber:groupNumber'
},
{
type: '02',
type: 'HEAD',
nameFormat: 'targetCode:groupNumber'
}
], // 特殊列车类型需设置显示格式
@ -558,6 +558,14 @@ class SkinCode extends defaultStyle {
trainBodyFillColor: '#000000', // 列车车身填充颜色
trainNameFormat: 'targetCode:serviceNumber:tripNumber'// 列车显示格式
},
soonerOrLater: {
level: 3,
serviceNumber: true,
destinationCode: true, // 目的地号颜色改变
earlyColor: '#00FF00',
lateColor: '#800000',
normalColor: '#FFF'
},
directionArrow: {
},
hsda: {
@ -583,7 +591,9 @@ class SkinCode extends defaultStyle {
trainTargetNumber: {
groupNumberPrefix: '000', // 车组号前缀
defaultGroupNumber: 'EEE', // 默认车组号
trainTargetNumberOffset: {x: -1, y: 1}// 车组号偏移量
trainTargetNumberOffset: {x: -1, y: 1}, // 车组号偏移量
headTypeColor: '#FFFF00', // 头码车车组号显示颜色
manualTypeColor: '#FFFF00' // 人工车车组号显示颜色
},
trainHead: {
trainHeadRectHeight: 15, // 列车车头矩形高度

View File

@ -84,15 +84,11 @@ export default class Line2 extends Group {
setState(model) {
if (!this.isShowShape) return;
/** 设置屏蔽门开关*/
// if (model.name == 'Psd44') {
// console.log(model, model.screenDoorOpenStatus, '1 为关门 0 为开门');
// }
model.screenDoorOpenStatus == 0 && this.openDoor(); /** 开门*/
model.screenDoorOpenStatus != 0 && this.closeDoor(); /** 关门*/
model.alarmStatus && this.alarm(); /** 收到警报(西安二号线样式) */
model.emergencyDepart && this.emergencyDepart(); /** 紧急出发按钮激活(西安二号线样式) */
// /** 设置屏蔽门状态*/
// switch (model.screenDoorStatus) {
// case '01':

View File

@ -12,14 +12,27 @@ class EMouse extends Group {
this.create();
}
create() {
let destinationText = '';
switch (this.device.model.destinationStatus) {
case '01': destinationText = LangStorage.getLang() == 'en' ? 'on time' : '准点'; break;
case '02': destinationText = LangStorage.getLang() == 'en' ? 'early' : '早点'; break;
case '03': destinationText = LangStorage.getLang() == 'en' ? 'early seriously' : '严重早点'; break;
case '04': destinationText = LangStorage.getLang() == 'en' ? 'late' : '晚点'; break;
case '05': destinationText = LangStorage.getLang() == 'en' ? 'late seriously ' : '严重晚点'; break;
default: destinationText = LangStorage.getLang() == 'en' ? 'unknown' : '未知'; break;
let destinationText = LangStorage.getLang() == 'en' ? 'unknown' : '未知';
if (this.device.style.Train.soonerOrLater && this.device.style.Train.soonerOrLater.level === 5) {
if (this.device.model.dt > 120) {
destinationText = LangStorage.getLang() == 'en' ? 'early seriously' : '严重早点';
} else if (this.device.mode.dt >= 15 && this.device.mode.dt <= 120) {
destinationText = LangStorage.getLang() == 'en' ? 'early' : '早点';
} else if (this.device.mode.dt >= -120 && this.device.mode.dt <= -15) {
destinationText = LangStorage.getLang() == 'en' ? 'late' : '晚点';
} else if (this.device.mode.dt < -120) {
destinationText = LangStorage.getLang() == 'en' ? 'late seriously ' : '严重晚点';
} else {
destinationText = LangStorage.getLang() == 'en' ? 'on time' : '准点';
}
} else if (this.device.style.Train.soonerOrLater && this.device.style.Train.soonerOrLater.level === 3) {
if (this.device.model.dt > 120) {
destinationText = LangStorage.getLang() == 'en' ? 'early' : '早点';
} else if (this.device.model.dt < -120) {
destinationText = LangStorage.getLang() == 'en' ? 'late' : '晚点';
} else {
destinationText = LangStorage.getLang() == 'en' ? 'on time' : '准点';
}
}
let trainType = '';
switch (this.device.model.type) {

View File

@ -381,13 +381,16 @@ export default class TrainBody extends Group {
} else if (this.style.Train.soonerOrLater && this.style.Train.soonerOrLater.level === 3) {
if (dt > 120) {
this.style.Train.soonerOrLater.serviceNumber && this.textTrainServer && this.textTrainServer.setStyle({textFill: this.style.Train.soonerOrLater.earlyColor});
this.style.Train.soonerOrLater.destinationCode && this.textTrainNumber && this.textTrainNumber.setStyle({textFill: this.style.Train.soonerOrLater.earlyColor});
this.style.Train.soonerOrLater.trainBody && this.trainBodyBox && this.trainBodyBox.setColor({stroke: this.style.Train.soonerOrLater.earlyColor});
} else if (dt < -120) {
this.style.Train.soonerOrLater.serviceNumber && this.textTrainServer && this.textTrainServer.setStyle({textFill: this.style.Train.soonerOrLater.lateColor});
this.style.Train.soonerOrLater.destinationCode && this.textTrainNumber && this.textTrainNumber.setStyle({textFill: this.style.Train.soonerOrLater.lateColor});
this.style.Train.soonerOrLater.trainBody && this.trainBodyBox && this.trainBodyBox.setColor({stroke: this.style.Train.soonerOrLater.lateColor});
} else {
this.style.Train.soonerOrLater.serviceNumber && this.textTrainServer && this.textTrainServer.setStyle({textFill: this.style.Train.soonerOrLater.normalColor});
this.style.Train.soonerOrLater.trainBody && this.trainBodyBox && this.trainBodyBox.setColor({stroke: this.style.Train.soonerOrLater.normalColor});
this.style.Train.soonerOrLater.destinationCode && this.textTrainNumber && this.textTrainNumber.setStyle({textFill: this.style.Train.soonerOrLater.normalColor});
}
}
}

View File

@ -170,7 +170,7 @@ export default {
});
},
methods: {
loadInitData(selected, opts) {
loadInitData(selected) {
this.tempData = [];
const index = this.stationList.findIndex(n => n.code == selected.stationCode);
@ -188,15 +188,10 @@ export default {
station = this.$store.getters['map/getDeviceByCode'](stationStand.stationCode);
}
}
/** 01: 未设置扣车 02: 车站扣车 03: 中心扣车 04: 中心+车站扣车*/
// this.tempData.push({ item: '', status: opts.holdStatus == '02' || opts.holdStatus == '04' ? '' : '' });
// this.tempData.push({ item: '', status: opts.holdStatus == '03' || opts.holdStatus == '04' ? '' : '' });
//
this.treeData[1].children[0].value = selected.centerHoldTrain ? '已设置' : '未设置';
//
this.treeData[1].children[1].value = selected.stationHoldTrain ? '已设置' : '未设置';
// this.tempData.push({ item: '', status: opts.parkingTime != -1 ? opts.parkingTime : '' });
//
this.treeData[0].children[2].value = selected.parkingTime != -1 ? selected.parkingTime : '自动';
//
@ -213,7 +208,7 @@ export default {
//
// this.tempData.push({ item: '', status: this.strategyMap[selected.reentryStrategy] ? this.strategyMap[selected.reentryStrategy] : '' });
},
doShow(operate, selected, opts) {
doShow(operate, selected) {
this.selected = selected;
if (!this.dialogShow) {
// this.standName = '';
@ -229,7 +224,7 @@ export default {
// this.treeData[0].children[1].value = station.runPlanName
}
}
this.loadInitData(selected, opts);
this.loadInitData(selected);
}
this.dialogShow = true;
this.$nextTick(function () {

View File

@ -276,7 +276,7 @@ export default {
detail() {
commitOperate(menuOperate.StationStand.detail, {standCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.standDetail.doShow(operate, this.selected, []);
this.$refs.standDetail.doShow(operate, this.selected);
}
});
}

View File

@ -23,21 +23,6 @@
<el-input v-model="signalName" size="small" disabled />
</el-col>
</el-row>
<!-- <div class="table">
<span>信号按钮列表</span>
<el-table
ref="table"
:data="tempData"
border
style="width: 100%"
size="mini"
highlight-current-row
:height="140"
>
<el-table-column prop="name" label="按钮名称" />
<el-table-column prop="status" label="按钮状态" />
</el-table>
</div> -->
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
@ -67,7 +52,6 @@ export default {
dialogShow: false,
loading: false,
selected: null,
// tempData: [],
operate: null,
stationName: '',
signalName: ''
@ -111,16 +95,6 @@ export default {
this.stationName = station.name;
}
}
/** status 04:封锁*/
// const signal = (selected || {}).state;
// this.tempData = [{ code: selected.code, name: selected.name, status: !selected.blockade ? '' : '' }];
// const timer = setInterval(() => {
// if (this.$refs.table) {
// this.$refs.table.setCurrentRow(this.tempData[0]);
// clearInterval(timer);
// }
// }, 300);
}
this.dialogShow = true;

View File

@ -1,228 +0,0 @@
<template>
<el-dialog
v-dialogDrag
class="ningbo-01__systerm stand-run-level"
:title="title"
:visible.sync="show"
width="320px"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
>
<div style="font-size: 16px; margin-bottom: 5px;">变通节点</div>
<div style="margin-bottom: 5px;">
<el-input v-model="stationName" size="mini" disabled />
</div>
<div style="font-size: 16px; margin-bottom: 5px;">当前变通策略</div>
<div style="margin-bottom: 5px;">
<el-input v-model="stationStrategy" size="mini" disabled />
</div>
<div style="font-size: 16px; margin-bottom: 5px;">变通策略选项</div>
<el-table
ref="table"
:data="strategyList"
border
:cell-style="tableStyle"
style="width: 100%; margin-top:10px"
size="mini"
height="120"
highlight-current-row
:show-header="false"
@row-click="clickEvent"
>
<el-table-column :id="domIdChoose" prop="label" style="margin-left:30px" />
</el-table>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!isConfirm" @click="commit">
确定</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
</el-col>
</el-row>
<confirm-control ref="confirmControl" />
<notice-info ref="noticeInfo" />
</el-dialog>
</template>
<script>
import ConfirmControl from './childDialog/confirmControl';
import NoticeInfo from './childDialog/childDialog/noticeInfo';
import { MapDeviceType, OperationEvent } from '@/scripts/ConstDic';
import { mapGetters } from 'vuex';
export default {
name: 'StandBackStrategy',
components: {
ConfirmControl,
NoticeInfo
},
data() {
return {
dialogShow: false,
loading: false,
tempData: [],
strategyList: [
{
value: '01',
label: '无折返'
},
{
value: '02',
label: '无人折返'
},
{
value: '03',
label: '自动换端'
},
{
value: '04',
label: '关闭'
}
],
stationName: '',
stationStrategy: '',
selection: [],
isConfirm: false,
strategy: '',
tableStyle: {
'border-bottom': 'none'
}
};
},
computed: {
...mapGetters('map', [
'stationList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.StationStand.setBackStrategy.menu.domId : '';
},
domIdChoose() {
return this.dialogShow ? OperationEvent.StationStand.setBackStrategy.choose.domId : '';
},
title() {
return '变通策略管理';
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
});
},
methods: {
loadInitData(selected, opts) {
this.tempData = [];
const station = this.stationList.find(n => n.code == selected.stationCode);
this.tempData.push({ name: station.name, station: selected.name, strategy: opts.reentryStrategy });
this.$nextTick(() => {
this.$refs.table.setCurrentRow(null);
});
},
doShow(operate, selected, opts) {
this.selected = selected;
if (!this.dialogShow) {
this.stationName = '';
this.stationStrategy = '';
if (selected && selected._type.toUpperCase() === 'StationStand'.toUpperCase()) {
const station = this.$store.getters['map/getDeviceByCode'](selected.stationCode);
if (station) {
this.stationName = station.name;
this.strategyList.forEach(item => {
if (item.value == opts.reentryStrategy) {
this.stationStrategy = item.label;
}
});
}
}
this.loadInitData(selected, opts);
}
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
clickEvent(row, column, event) {
const operate = {
type: MapDeviceType.StationStand.type,
operation: OperationEvent.StationStand.setBackStrategy.choose.operation,
val: `${row.value}`
};
this.strategy = row.value;
this.isConfirm = true;
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
});
},
checkTableDataSelction(data) {
const selection = [];
if (data && data.length > 0) {
data.forEach(row => {
if (row.check && !row.disabled) {
selection.push(row);
}
});
}
this.disabledSend = !selection.length;
if (JSON.stringify(selection) !== JSON.stringify(this.selection)) {
this.selection = selection;
}
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
this.mouseCancelState(this.selected);
},
commit() {
if (this.isConfirm) {
const operate = {
send: true,
type: MapDeviceType.StationStand.type,
operation: OperationEvent.StationStand.setBackStrategy.menu.operation,
val: `${this.strategy}`
};
this.loading = true;
this.$store.dispatch('training/next', operate).then(({ valid }) => {
this.loading = false;
if (valid) {
this.doClose();
}
}).catch(() => {
this.loading = false;
this.doClose();
this.$refs.noticeInfo.doShow();
});
} else {
this.doClose();
}
},
cancel() {
const operate = {
type: MapDeviceType.StationStand.type,
operation: OperationEvent.Command.cancel.menu.operation
};
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(() => {
this.doClose();
});
}
}
};
</script>

View File

@ -6,7 +6,6 @@
<stand-detail ref="standDetail" />
<stand-run-level ref="standRunLevel" />
<stand-stop-time ref="standStopTime" />
<stand-back-strategy ref="standBackStrategy" />
<StandBulkBuckleTrain ref="standBulkBuckleTrain" />
<notice-info ref="noticeInfo" />
</div>
@ -16,7 +15,6 @@
import PopMenu from '@/components/PopMenu';
import StandControl from '@/jmapNew/theme/components/menus/dialog/standControl';
import StandJumpStopControl from '@/jmapNew/theme/components/menus/dialog/standJumpStopControl';
import StandBackStrategy from './dialog/standBackStrategy';
import StandDetail from './dialog/standDetail';
import StandRunLevel from './dialog/standRunLevel';
import StandStopTime from './dialog/standStopTime';
@ -24,7 +22,6 @@ import StandBulkBuckleTrain from './dialog/standBulkBuckleTrain';
import NoticeInfo from './dialog/childDialog/childDialog/noticeInfo';
import {menuOperate, commitOperate} from './utils/menuOperate';
import { mapGetters } from 'vuex';
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
import CMD from '@/scripts/cmdPlugin/CommandEnum';
import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
@ -39,7 +36,6 @@ export default {
StandDetail,
StandRunLevel,
NoticeInfo,
StandBackStrategy,
StandStopTime
},
props: {

View File

@ -5,31 +5,36 @@
<div class="cctv-box-top-left">
<div class="cctv-box-top-lefttop">选择显示终端</div>
<div class="cctv-box-top-left1">
<div class="each-cctv-box-top-btn">单画面</div>
<div class="each-cctv-box-top-btn">站厅<br>默认画面</div>
<div class="each-cctv-box-top-btn active">四画面</div>
<div class="each-cctv-box-top-btn">站台<br>默认画面</div>
<div class="each-cctv-box-top-btn">大屏</div>
</div>
<div class="cctv-box-top-right1">
<div class="cctv-box-top-right1-line">
<div class="each-cctv-box-top-right1">
<div class="each-cctv-box-top-r1btn active">4-1</div>
<div class="each-cctv-box-top-r1text">01031#</div>
</div>
<div class="each-cctv-box-top-right1">
<div class="each-cctv-box-top-r1btn">4-2</div>
<div class="each-cctv-box-top-r1text">01001#</div>
<div style="width: 80px;overflow: hidden;float: left;">
<div v-for="(item, index) in framesList" :key="index" class="each-cctv-box-top-btn" :class="{'active' : item.selected}" @click="handleFrames(item)">
{{ item.label }}
</div>
</div>
<div class="cctv-box-top-right1-line">
<div class="each-cctv-box-top-right1">
<div class="each-cctv-box-top-r1btn">4-3</div>
<div class="each-cctv-box-top-r1text">01001#</div>
<div style="width: 80px;overflow: hidden;float: left;">
<div v-for="(item, index) in childrenList" :key="index" class="each-cctv-box-top-btn" :class="{'active' : item.selected}" @click="handleChildrenFrames(item)">
<span v-html="item.label" />
</div>
<div class="each-cctv-box-top-right1">
<div class="each-cctv-box-top-r1btn">4-4</div>
<div class="each-cctv-box-top-r1text">01005#</div>
</div>
</div>
<div v-if="selectedFlag == 'one'" class="cctv-box-top-right2">
<div class="each-cctv-box-top-r1btn active">监视器</div>
<div class="each-cctv-box-top-r1text">
<el-input v-model="framesValue" placeholder="" />
</div>
</div>
<div v-if="selectedFlag == 'four'" class="cctv-box-top-right1">
<div v-for="(item, index) in fourFramesChirenList" :key="index" class="each-cctv-box-top-right1">
<div class="each-cctv-box-top-r1btn" :class="{'active': item.selected}" @click="handleFramesSelect(item, fourFramesChirenList)">{{ item.label }}</div>
<div class="each-cctv-box-top-r1text">
<el-input v-model="item.value" placeholder="" />
</div>
</div>
</div>
<div v-if="selectedFlag == 'screen'" class="cctv-box-top-right3">
<div v-for="(item, index) in screenFramesChirenList" :key="index" class="each-cctv-box-top-right1">
<div class="each-cctv-box-top-r1btn" :class="{'active': item.selected}" @click="handleFramesSelect(item, screenFramesChirenList)">{{ item.label }}</div>
<div class="each-cctv-box-top-r1text">
<el-input v-model="item.value" placeholder="" />
</div>
</div>
</div>
@ -134,7 +139,48 @@ export default {
width: 1490,
height: 330,
left: '-22px',
top: '-20px'
top: '-20px',
framesValue: '01003#',
selectedFlag: 'screen',
framesList: [
{ label: '单画面', value: 'one', selected: false },
{ label: '四画面', value: 'four', selected: false },
{ label: '大屏', value: 'screen', selected: true }
],
oneFramesList: [
{ label: '站厅<br/>默认画面', value: 'one', selected: true },
{ label: '站台<br/>默认画面', value: 'four', selected: false }
],
fourFramesList: [
{ label: '站厅<br/>默认画面', value: 'one', selected: true },
{ label: '站台<br/>默认画面', value: 'four', selected: false }
],
fourFramesChirenList: [
{ label: '4-1', value: '01031#', selected: true },
{ label: '4-2', value: '01001#', selected: false },
{ label: '4-3', value: '01001#', selected: false },
{ label: '4-4', value: '01005#', selected: false }
],
screenFramesChirenList: [
{ label: 'VCP1', value: '01002#', selected: true },
{ label: 'VCP3', value: '01040#', selected: false },
{ label: 'VCP5', value: '01030#', selected: false },
{ label: 'VCP7', value: '01007#', selected: false },
{ label: 'VCP2', value: '01040#', selected: false },
{ label: 'VCP4', value: '01050#', selected: false },
{ label: 'VCP6', value: '01046#', selected: false },
{ label: 'VCP8', value: '01026#', selected: false }
],
screenFramesList: [
{ label: '模式1', value: 'one', selected: false },
{ label: '模式2', value: 'four', selected: false },
{ label: '模式3', value: 'one', selected: false },
{ label: '模式4', value: 'four', selected: true }
],
childrenList: [
{ label: '站厅<br/>默认画面', value: 'one', selected: true },
{ label: '站台<br/>默认画面', value: 'four', selected: false }
]
};
},
mounted() {
@ -158,6 +204,36 @@ export default {
this.top = '-20px';
}
this.$refs.iscsPlate.iscsLoadData(id);
},
handleFrames(item) {
this.selectedFlag = item.value;
this.framesList.forEach(item => {
item.selected = false;
});
item.selected = true;
switch (item.value) {
case 'one':
this.childrenList = this.oneFramesList;
break;
case 'four':
this.childrenList = this.fourFramesList;
break;
case 'screen':
this.childrenList = this.screenFramesList;
break;
}
},
handleChildrenFrames(item) {
this.childrenList.forEach(item => {
item.selected = false;
});
item.selected = true;
},
handleFramesSelect(item, list) {
list.forEach(item => {
item.selected = false;
});
item.selected = true;
}
}
};
@ -226,11 +302,35 @@ justify-content:center;text-align:center;
border-top:2px #000077 solid;
border-left:2px #000077 solid;
}
.cctv-box-top-right1-line{width:240px;display:flex;
.cctv-box-top-right2{
width:242px;display:inline-block;
margin-left: 60px;margin-top:32px;
.each-cctv-box-top-r1btn{
width: 120px;
height:120px;
}
}
.cctv-box-top-right3{
width: 342px;
display: inline-block;
margin-left: 28px;
margin-top: 36px;
border-top: 2px #000077 solid;
border-left: 2px #000077 solid;
.each-cctv-box-top-right1{
height: 93px;
width: 25%;
}
.each-cctv-box-top-r1btn{
width: 50px;
height: 37px;
}
}
.cctv-box-top-right1-line{width:240px;display:flex;}
.each-cctv-box-top-right1{
width: 120px;
height:120px;
float: left;
border-right:2px #000077 solid;
border-bottom:2px #000077 solid;
}
@ -362,9 +462,16 @@ justify-content:center;text-align:center;
.each-cctv-box-top-r1text{
font-size: 12px;
width: 70px;
padding: 2px 5px;
background: #fff;
margin: 0 auto;
margin-top:5px;
/deep/{
.el-input__inner{
padding: 0;
height: 100%;
font-size: 12px;
border: none;
}
}
}
</style>

View File

@ -1,7 +1,5 @@
<template>
<div>
车站设备状态
</div>
<div />
</template>
<script>
export default {

View File

@ -3,36 +3,39 @@
<div class="title-name">车站时序</div>
<div class="time-cctv-top">
<div class="time-cctv-top-inner">
<div class="time-cctv-top-lefttop">选择显示终端</div>
<div class="time-cctv-top-left1">
<div style="display: inline-block;">
<div class="each-time-cctv-top-btn">单画面</div>
<div class="each-time-cctv-top-btn">站厅<br/>默认画面</div>
<div class="each-time-cctv-top-btn active">四画面</div>
<div class="each-time-cctv-top-btn">站台<br/>默认画面</div>
<div class="each-time-cctv-top-btn">大屏</div>
<div class="cctv-box-top-lefttop">选择显示终端</div>
<div class="cctv-box-top-left1">
<div style="width: 80px;overflow: hidden;float: left;">
<div v-for="(item, index) in framesList" :key="index" class="each-cctv-box-top-btn" :class="{'active' : item.selected}" @click="handleFrames(item)">
{{ item.label }}
</div>
<div class="each-cctv-box-top-btn stop">停止时序</div>
</div>
<div style="width: 80px;overflow: hidden;float: left;">
<div v-for="(item, index) in childrenList" :key="index" class="each-cctv-box-top-btn" :class="{'active' : item.selected}" @click="handleChildrenFrames(item)">
<span v-html="item.label" />
</div>
</div>
<div class="each-time-cctv-top-btn1">停止时序</div>
</div>
<div class="time-cctv-top-right1">
<div class="time-cctv-top-right1-line">
<div class="each-time-cctv-top-right1">
<div class="each-time-cctv-top-r1btn active">4-1</div>
<div class="each-time-cctv-top-r1text">01031#</div>
</div>
<div class="each-time-cctv-top-right1">
<div class="each-time-cctv-top-r1btn">4-2</div>
<div class="each-time-cctv-top-r1text">01001#</div>
<div v-if="selectedFlag == 'one'" class="cctv-box-top-right2">
<div class="each-cctv-box-top-r1btn active">监视器</div>
<div class="each-cctv-box-top-r1text">
<el-input v-model="framesValue" placeholder="" />
</div>
</div>
<div v-if="selectedFlag == 'four'" class="cctv-box-top-right1">
<div v-for="(item, index) in fourFramesChirenList" :key="index" class="each-cctv-box-top-right1">
<div class="each-cctv-box-top-r1btn" :class="{'active': item.selected}" @click="handleFramesSelect(item, fourFramesChirenList)">{{ item.label }}</div>
<div class="each-cctv-box-top-r1text">
<el-input v-model="item.value" placeholder="" />
</div>
</div>
<div class="time-cctv-top-right1-line">
<div class="each-time-cctv-top-right1">
<div class="each-time-cctv-top-r1btn">4-3</div>
<div class="each-time-cctv-top-r1text">01001#</div>
</div>
<div class="each-time-cctv-top-right1">
<div class="each-time-cctv-top-r1btn">4-4</div>
<div class="each-time-cctv-top-r1text">01005#</div>
</div>
<div v-if="selectedFlag == 'screen'" class="cctv-box-top-right3">
<div v-for="(item, index) in screenFramesChirenList" :key="index" class="each-cctv-box-top-right1">
<div class="each-cctv-box-top-r1btn" :class="{'active': item.selected}" @click="handleFramesSelect(item, screenFramesChirenList)">{{ item.label }}</div>
<div class="each-cctv-box-top-r1text">
<el-input v-model="item.value" placeholder="" />
</div>
</div>
</div>
@ -150,12 +153,83 @@ export default {
tableData:[
{describe:''},
{describe:''}
],
framesValue: '01003#',
selectedFlag: 'screen',
framesList: [
{ label: '单画面', value: 'one', selected: false },
{ label: '四画面', value: 'four', selected: false },
{ label: '大屏', value: 'screen', selected: true }
],
oneFramesList: [
{ label: '站厅<br/>默认画面', value: 'one', selected: true },
{ label: '站台<br/>默认画面', value: 'four', selected: false }
],
fourFramesList: [
{ label: '站厅<br/>默认画面', value: 'one', selected: true },
{ label: '站台<br/>默认画面', value: 'four', selected: false }
],
fourFramesChirenList: [
{ label: '4-1', value: '01031#', selected: true },
{ label: '4-2', value: '01001#', selected: false },
{ label: '4-3', value: '01001#', selected: false },
{ label: '4-4', value: '01005#', selected: false }
],
screenFramesChirenList: [
{ label: 'VCP1', value: '01002#', selected: true },
{ label: 'VCP3', value: '01040#', selected: false },
{ label: 'VCP5', value: '01030#', selected: false },
{ label: 'VCP7', value: '01007#', selected: false },
{ label: 'VCP2', value: '01040#', selected: false },
{ label: 'VCP4', value: '01050#', selected: false },
{ label: 'VCP6', value: '01046#', selected: false },
{ label: 'VCP8', value: '01026#', selected: false }
],
screenFramesList: [
{ label: '模式1', value: 'one', selected: false },
{ label: '模式2', value: 'four', selected: false },
{ label: '模式3', value: 'one', selected: false },
{ label: '模式4', value: 'four', selected: true }
],
childrenList: [
{ label: '站厅<br/>默认画面', value: 'one', selected: true },
{ label: '站台<br/>默认画面', value: 'four', selected: false }
]
};
},
methods:{
indexMethod(index) {
return index + 1;
},
handleFrames(item) {
this.selectedFlag = item.value;
this.framesList.forEach(item => {
item.selected = false;
});
item.selected = true;
switch (item.value) {
case 'one':
this.childrenList = this.oneFramesList;
break;
case 'four':
this.childrenList = this.fourFramesList;
break;
case 'screen':
this.childrenList = this.screenFramesList;
break;
}
},
handleChildrenFrames(item) {
this.childrenList.forEach(item => {
item.selected = false;
});
item.selected = true;
},
handleFramesSelect(item, list) {
list.forEach(item => {
item.selected = false;
});
item.selected = true;
}
}
};
@ -174,6 +248,110 @@ export default {
color: #56E5DE;
}
}
.cctv-box-top-lefttop{width:592px;background:#000077;text-align:center;color:#fff;padding:5px 0px;font-size:13px;}
.cctv-box-top-left1{width:180px;display:inline-block;vertical-align:top;}
.each-cctv-box-top-btn{margin-left:10px;display:flex;align-items:center;width:65px;
height:40px;font-size:12px;float:left;background:#ccc;margin-top:10px;
justify-content:center;text-align:center;
border-top: 2px solid #f9f9f9;
border-left: 2px solid #f6f8f8;
border-right: 2px solid #9e9e9e;
border-bottom: 2px solid #636667;
cursor: pointer;
font-weight:bold;
&.active{
background: #EBB570;
border-top: 2px solid #795B31;
border-left: 2px solid #795B31;
border-right: 2px solid #fff;
border-bottom: 2px solid #fff;
}
&.stop{
background: #FF8A33;
}
}
.cctv-box-top-right1{width:242px;display:inline-block;
margin-left: 60px;margin-top:10px;
border-top:2px #000077 solid;
border-left:2px #000077 solid;
}
.cctv-box-top-right2{
width:242px;display:inline-block;
margin-left: 60px;margin-top:32px;
.each-cctv-box-top-r1btn{
width: 120px;
height:120px;
}
}
.cctv-box-top-right3{
width: 342px;
display: inline-block;
margin-left: 28px;
margin-top: 36px;
border-top: 2px #000077 solid;
border-left: 2px #000077 solid;
.each-cctv-box-top-right1{
height: 93px;
width: 25%;
}
.each-cctv-box-top-r1btn{
width: 50px;
height: 37px;
}
}
.each-cctv-box-top-right1{
width: 120px;
height:120px;
float: left;
border-right:2px #000077 solid;
border-bottom:2px #000077 solid;
}
.each-cctv-box-top-r1btn{
border-top: 2px solid #f9f9f9;
border-left: 2px solid #f6f8f8;
border-right: 2px solid #9e9e9e;
border-bottom: 2px solid #636667;
background:#ccc;
text-align:center;
width:70px;
height:60px;
display:flex;
align-items: center;
justify-content:center;
margin:0 auto;
font-size:12px;
margin-top:20px;
font-weight: bold;
cursor: pointer;
&.active{
background: #EBB570;
border-top: 2px solid #795B31;
border-left: 2px solid #795B31;
border-right: 2px solid #fff;
border-bottom: 2px solid #fff;
}
}
.each-cctv-box-top-r1text{
font-size: 12px;
width: 70px;
background: #fff;
margin: 0 auto;
margin-top:5px;
/deep/{
.el-input__inner{
padding: 0;
height: 100%;
font-size: 12px;
border: none;
}
}
}
.time-cctv-bottom{width: 1300px;margin:30px auto;display:flex;}
.time-cctv-bottom-left{display:flex;align-items:center;}
.time-cctv-bottom-text{color: #56E5DE;width:80px;font-size:14px;}
@ -234,26 +412,7 @@ justify-content:center;text-align:center;
border-right: 2px solid #fff;
border-bottom: 2px solid #fff;
}
.each-time-cctv-top-r1btn.active{
background: #EBB570;
border-top: 2px solid #795B31;
border-left: 2px solid #795B31;
border-right: 2px solid #fff;
border-bottom: 2px solid #fff;
}
.time-cctv-top-right1{width:242px;display:inline-block;
margin-left: 60px;margin-top:10px;
border-top:2px #000077 solid;
border-left:2px #000077 solid;
}
.time-cctv-top-right1-line{width:240px;display:flex;
}
.each-time-cctv-top-right1{
width: 120px;
height:120px;
border-right:2px #000077 solid;
border-bottom:2px #000077 solid;
}
.time-cctv-top-middle{width:300px;height:300px;
border-top: 2px solid #8c8a89;
border-left: 2px solid #8c8a89;
@ -268,24 +427,7 @@ justify-content:center;text-align:center;
border-bottom: 2px solid #fff;
margin-left:4px;
}
.each-time-cctv-top-r1btn{
border-top: 2px solid #f9f9f9;
border-left: 2px solid #f6f8f8;
border-right: 2px solid #9e9e9e;
border-bottom: 2px solid #636667;
background:#ccc;
text-align:center;
width:70px;
height:60px;
display:flex;
align-items: center;
justify-content:center;
margin:0 auto;
font-size:12px;
margin-top:20px;
font-weight: bold;
cursor: pointer;
}
.each-time-cctv-top-r1text{
font-size: 12px;
width: 70px;

View File

@ -130,7 +130,7 @@ export default {
},
{
name: '车站网络',
type: 'stationNetwork',
type: 'stationNet',
showType: ['center', 'local']
}
]
@ -259,7 +259,8 @@ export default {
children: [
{
name: '网络状态',
type: 'standFAS'
type: 'netState',
showType: ['center', 'local']
}
]
}

View File

@ -53,7 +53,9 @@
<script>
import Cookies from 'js-cookie';
import ConstConfig from '@/scripts/ConstConfig';
import {getScriptPageListOnlineNew, getScriptByIdNew, getDraftScriptByGroupNew } from '@/api/script';
// getDraftScriptByGroupNew
// import {getScriptMemberDataNew } from '@/api/simulation';
import {getScriptPageListOnlineNew, getDraftScriptByGroupNew, getScriptByIdNew } from '@/api/script';
//
export default {
@ -178,10 +180,10 @@ export default {
const res = this.$route.fullPath.includes('design/displayNew/demon') ? await getDraftScriptByGroupNew(row.group) : await getScriptByIdNew(row.id);
let newMemberList = [];
if (res.code == 200) {
if (res.data.playerList && res.data.playerList.length > 0) {
const lastData = JSON.stringify(res.data.playerList);
const playerList = this.covert(lastData, ConstConfig.ConstSelect.roleTypeNew);
newMemberList = playerList.filter(item => item.hasPlay === true);
if (res.data.memberList && res.data.memberList.length > 0) {
const lastData = JSON.stringify(res.data.memberList);
newMemberList = this.covert(lastData, ConstConfig.ConstSelect.roleTypeNew);
// newMemberList = playerList.filter(item => item.hasPlay === true);
}
if (res.data.mapLocation) {
this.mapLocation = res.data.mapLocation;

View File

@ -256,12 +256,14 @@ export default {
},
// json
async handleExportMap(index, row) {
async handleExportMap(index, row, idx) {
this.$confirm('您是否导出地图数据?', this.$t('global.tips'), {
confirmButtonText: this.$t('global.confirm'),
cancelButtonText: this.$t('global.cancel'),
type: 'warning'
}).then(async () => {
this.$set(row, 'loading' + idx, true);
console.log(row);
const res = await getPublishMapExport(row.id);
const resultData = res.data;
if (resultData === false) {
@ -283,7 +285,8 @@ export default {
el.download = `${resultData.name}.json`;
el.click();
urlObject.revokeObjectURL(url);
}).catch(() => { });
this.$set(row, 'loading' + idx, false);
}).catch(() => { this.$set(row, 'loading' + idx, false); });
},
// exls