2019-07-26 13:32:43 +08:00
|
|
|
<template>
|
2019-08-22 18:13:55 +08:00
|
|
|
<el-scrollbar wrapClass="scrollbar-wrapper" ref="elActionScrollbar" class="scriptBottom" :style="{width:370+'px',height:size.height+'px'}">
|
|
|
|
<el-timeline :reverse="reverse" class="el_timeline">
|
|
|
|
<el-timeline-item v-for="(actionInfo,index) in actionInfoList" :key="index">
|
|
|
|
<el-card>
|
|
|
|
<div class="actionTable">
|
|
|
|
<span class="detail" v-html="actionInfo.detail">
|
|
|
|
</span>
|
|
|
|
<span class="otherInfo" v-html="actionInfo.otherInfo"></span>
|
|
|
|
<span v-if="actionInfo.isCoversition">
|
|
|
|
<span class="roleClass">{{actionInfo.memberName}}</span>
|
|
|
|
<span>对</span>
|
|
|
|
<span class="roleClass">{{actionInfo.targetName}}</span>
|
|
|
|
<span>: </span>
|
|
|
|
<span>{{actionInfo.reply}}</span>
|
|
|
|
</span>
|
|
|
|
<span v-else>
|
|
|
|
<span class="roleClass">{{actionInfo.memberName}}</span>
|
|
|
|
<span>执行指令: </span>
|
|
|
|
<span class="commandStyle">{{actionInfo.command}}</span>
|
|
|
|
</span>
|
2019-08-21 18:45:16 +08:00
|
|
|
</div>
|
2019-08-22 18:13:55 +08:00
|
|
|
<div class="btnGroup">
|
|
|
|
<el-button type="primary" size="mini" style="margin-left:10px;" @click="modifyAction(actionInfo.row)" v-if="actionInfo.visible">修改</el-button>
|
|
|
|
<!-- <el-button type="danger" size="mini" @click="deleteAction(actionInfo.id)">删除</el-button> -->
|
|
|
|
</div>
|
|
|
|
</el-card>
|
|
|
|
</el-timeline-item>
|
|
|
|
</el-timeline>
|
|
|
|
</el-scrollbar>
|
2019-07-26 13:32:43 +08:00
|
|
|
</template>
|
|
|
|
<script>
|
|
|
|
import Vue from 'vue';
|
2019-08-21 18:45:16 +08:00
|
|
|
import {getScriptRecord,deleteScriptAction,getAvailableDeviceCommand,getScriptPlayMember,getScriptMemberData} from '@/api/simulation';
|
2019-08-16 19:33:40 +08:00
|
|
|
import ConstConfig from '@/scripts/ConstConfig';
|
2019-07-26 13:32:43 +08:00
|
|
|
export default {
|
2019-08-08 10:31:46 +08:00
|
|
|
name: 'getAction',
|
2019-07-26 13:32:43 +08:00
|
|
|
props: {
|
|
|
|
group: {
|
|
|
|
type: String,
|
|
|
|
required: true
|
|
|
|
},
|
2019-08-22 18:13:55 +08:00
|
|
|
size:{
|
|
|
|
type: Object,
|
|
|
|
required: true
|
|
|
|
}
|
2019-07-26 13:32:43 +08:00
|
|
|
},
|
|
|
|
data() {
|
|
|
|
return {
|
2019-08-16 19:33:40 +08:00
|
|
|
actionInfoList:[],
|
|
|
|
deviceCommandList:[],
|
|
|
|
reverse:true,
|
2019-08-08 10:31:46 +08:00
|
|
|
loading:true,
|
2019-08-22 18:13:55 +08:00
|
|
|
// behaviorName:"",
|
2019-08-08 10:31:46 +08:00
|
|
|
memberName:"",
|
2019-07-26 13:32:43 +08:00
|
|
|
}
|
|
|
|
},
|
|
|
|
mounted(){
|
2019-08-19 18:24:06 +08:00
|
|
|
this.loadInitData();
|
2019-07-26 13:32:43 +08:00
|
|
|
},
|
2019-08-20 18:31:48 +08:00
|
|
|
watch:{
|
|
|
|
actionInfoList: function(val){
|
|
|
|
this.$nextTick(function(){
|
|
|
|
var div = this.$refs['elActionScrollbar'].$refs['wrap'];
|
|
|
|
div.scrollTop=this.$refs['elActionScrollbar'].wrap.scrollHeight;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
},
|
2019-07-26 13:32:43 +08:00
|
|
|
methods:{
|
2019-08-19 18:24:06 +08:00
|
|
|
loadInitData() {
|
|
|
|
let group=this.$route.query.group;
|
2019-08-20 17:54:40 +08:00
|
|
|
let data={role:"Driver"};
|
|
|
|
getAvailableDeviceCommand(data).then(response=>{
|
2019-08-16 19:33:40 +08:00
|
|
|
this.deviceCommandList=response.data;
|
|
|
|
this.loadOtherData(this.$route.query);
|
|
|
|
});
|
|
|
|
},
|
|
|
|
loadOtherData(obj){
|
2019-07-26 13:32:43 +08:00
|
|
|
let group=obj.group;
|
2019-08-16 09:25:12 +08:00
|
|
|
getScriptRecord(group).then(response=>{
|
2019-08-21 14:28:34 +08:00
|
|
|
this.$store.dispatch('scriptRecord/updateBgSet', response.data.bgSet);
|
2019-08-16 19:33:40 +08:00
|
|
|
this.actionInfoList=[];
|
|
|
|
let roleTypeList=ConstConfig.ConstSelect.roleType;
|
|
|
|
let memberVOList=JSON.stringify(response.data.memberVOList);
|
|
|
|
roleTypeList.forEach(function(element){
|
|
|
|
let rolename=element.value;
|
|
|
|
memberVOList=memberVOList.replace(new RegExp(rolename,'g'),element.label);
|
|
|
|
});
|
|
|
|
memberVOList=JSON.parse(memberVOList);
|
|
|
|
let actionList=response.data.actionVOList;
|
|
|
|
actionList.forEach(element => {
|
|
|
|
let member=memberVOList.find(elem=>{return elem.id==element.memberId});
|
|
|
|
let memberName=member.name==undefined?"":" - "+member.name;
|
|
|
|
switch(element.type)
|
|
|
|
{
|
|
|
|
case "Conversation":
|
|
|
|
{
|
|
|
|
let target=memberVOList.find(elem=>{return elem.id==element.targetId});
|
|
|
|
let targetName=target.name==undefined?"":" - "+target.name;
|
2019-08-21 12:03:01 +08:00
|
|
|
this.actionInfoList.push({id:element.id,isCoversition:true,memberName:member.role+memberName,targetName:target.role+targetName,reply:element.reply,row:element,visible:true});
|
2019-08-16 19:33:40 +08:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
case "Command":
|
|
|
|
{
|
|
|
|
let deviceCommand=this.deviceCommandList.find(elem=>{return elem.deviceCommand==element.deviceCommand});
|
|
|
|
switch(element.deviceCommand)
|
|
|
|
{
|
|
|
|
case 'Train_Manual_Route_Blocking_Drive':
|
|
|
|
{
|
2019-08-21 12:03:01 +08:00
|
|
|
this.actionInfoList.push({id:element.id,isCoversition:false,memberName:member.role+memberName,command:deviceCommand.label,row:element,visible:false});
|
2019-08-16 19:33:40 +08:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 'Train_Manual_Limit_Drive':
|
|
|
|
{
|
2019-08-21 12:03:01 +08:00
|
|
|
this.actionInfoList.push({id:element.id,isCoversition:false,memberName:member.role+memberName,command:deviceCommand.label,row:element,visible:false});
|
2019-08-16 19:33:40 +08:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
default:
|
|
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
2019-08-16 09:25:12 +08:00
|
|
|
if(response.data.mapLocation)
|
|
|
|
{
|
|
|
|
let mapLocation={"offsetX":response.data.mapLocation.x,"offsetY":response.data.mapLocation.y,"scaleRate":response.data.mapLocation.scale};
|
|
|
|
this.$store.dispatch('scriptRecord/updateMapLocation', mapLocation);
|
|
|
|
}
|
2019-08-08 18:41:44 +08:00
|
|
|
this.loading=false;
|
2019-07-26 13:32:43 +08:00
|
|
|
});
|
|
|
|
},
|
|
|
|
deleteAction(row){
|
|
|
|
let group=this.$props.group;
|
2019-08-16 19:33:40 +08:00
|
|
|
deleteScriptAction(group,row).then(resp => {
|
2019-07-26 13:32:43 +08:00
|
|
|
this.reloadTable();
|
2019-08-08 10:31:46 +08:00
|
|
|
this.$message.success('删除行为动作成功');
|
2019-07-26 13:32:43 +08:00
|
|
|
}).catch(error => {
|
2019-08-08 10:31:46 +08:00
|
|
|
this.$messageBox(`删除行为动作失败: ${error.message}`);
|
2019-07-26 13:32:43 +08:00
|
|
|
});
|
|
|
|
},
|
|
|
|
reloadTable(){
|
2019-08-19 18:24:06 +08:00
|
|
|
this.loadInitData();
|
2019-07-26 13:32:43 +08:00
|
|
|
},
|
2019-08-22 18:13:55 +08:00
|
|
|
// create(data){
|
|
|
|
// this.reloadTable();
|
|
|
|
// },
|
2019-08-08 10:31:46 +08:00
|
|
|
modifyAction(row){
|
2019-08-22 18:13:55 +08:00
|
|
|
this.$emit("setAction",row);
|
2019-08-08 10:31:46 +08:00
|
|
|
}
|
2019-07-26 13:32:43 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
<style rel="stylesheet/scss" lang="scss" scoped>
|
|
|
|
@import "src/styles/mixin.scss";
|
2019-08-16 19:33:40 +08:00
|
|
|
.actionTable{
|
2019-08-21 10:24:55 +08:00
|
|
|
width:280px;
|
2019-08-19 14:09:08 +08:00
|
|
|
padding: 15px 0px 10px 15px;
|
2019-08-16 20:06:14 +08:00
|
|
|
display: inline-block;
|
|
|
|
line-height: 200%;
|
2019-08-16 19:33:40 +08:00
|
|
|
}
|
|
|
|
.btnGroup{
|
2019-08-16 20:06:14 +08:00
|
|
|
padding: 10px 10px 10px 10px;
|
|
|
|
float:right;
|
|
|
|
vertical-align: top;
|
|
|
|
display: inline-block;
|
2019-08-16 19:33:40 +08:00
|
|
|
}
|
2019-08-20 13:21:38 +08:00
|
|
|
.el_timeline{
|
2019-08-22 18:13:55 +08:00
|
|
|
width: 350px;
|
|
|
|
margin-top:20px;
|
|
|
|
padding-left: 25px;
|
2019-08-20 15:41:54 +08:00
|
|
|
}
|
2019-08-21 12:03:01 +08:00
|
|
|
.roleClass{
|
|
|
|
color:#409EFF
|
|
|
|
}
|
|
|
|
.commandStyle{
|
2019-08-21 14:08:43 +08:00
|
|
|
color:#F00;
|
2019-08-21 12:03:01 +08:00
|
|
|
}
|
2019-08-21 18:45:16 +08:00
|
|
|
.scriptPane{
|
|
|
|
height: 100%;
|
2019-08-21 20:16:47 +08:00
|
|
|
padding-top:200px;
|
2019-08-21 18:45:16 +08:00
|
|
|
}
|
|
|
|
.scriptBottom{
|
2019-08-22 18:13:55 +08:00
|
|
|
margin-left:360px;
|
|
|
|
margin-top: 20px;
|
2019-08-21 18:45:16 +08:00
|
|
|
}
|
2019-07-26 13:32:43 +08:00
|
|
|
</style>
|