Merge branch 'test_dispaly' of https://git.code.tencent.com/lian-cbtc/jl-client into test_dispaly1

This commit is contained in:
fan 2022-12-01 10:58:34 +08:00
commit fc67b87883
8 changed files with 191 additions and 60 deletions

View File

@ -314,6 +314,44 @@ export default {
{ label: '半自动闭塞', value: 'StationDirectionSemi' }
],
paperStateArr: ['正在编辑', '封存', '已使用'], // 试卷定义状态
paperStateQueryArr: ['所有', '正在编辑', '可生成试卷', '封存', '已被使用'] // 试卷定义查询状态
paperStateQueryArr: ['所有', '正在编辑', '可生成试卷', '封存', '已被使用'], // 试卷定义查询状态
projectList:[
{label:'西铁院', value: 'XTY'},
{label: '贵州装备', value:'GZB'},
{label: '哈尔滨', value:'HEB'},
{label: '苏电院', value:'SDY'},
{label: '中航锐创(实训室)', value: 'RICHOR_JOINT'},
{label: '上饶沙盘', value: 'SR_SANDBOX'},
{label: '江西工贸', value: 'JXGM'},
{label: '扬州工业', value: 'RICHOR_YGY'},
{label: '红河财经', value: 'RICHOR_HHCJ'},
{label: '苏安院', value: 'SAY'},
{label: '众合-陕铁院', value: 'UNITTEC_STY'},
{label: '教学通用', value: 'TEACHING'},
{label: '长兴技校', value: 'RICHOR_CXJS'},
{label: '京津冀联盟', value: 'JJJLM'}
],
clientList: [
{ label: '中心ATS工作站', value: 'dispatchWork' },
{ label: '中心ATS大屏', value: 'bigScreen' },
{ label: '现地ATS工作站', value: 'localWork' },
{ label: 'ISCS', value: 'iscsView' },
{ label: 'IBP', value: 'ibp' },
{ label: 'PSL', value: 'psl' },
{ label: '列车驾驶', value: 'drivingPlan' },
{ label: 'CCTV', value: 'cctvView' },
{ label: '设备视图', value: 'jl3dModle' },
{ label: '数字沙盘', value: 'digitalStand' },
{ label: '车务终端', value: 'trafficTerminal' },
{ label: '车务管理终端', value: 'trafficManageTerminal' },
{ label: '调度命令', value: 'dispatchingCommand' },
{ label: '调度计划', value: 'schedulingPlan' },
{ label: '大客流策略', value: 'largePassengerStrategy' },
{ label: '大客流视图', value: 'largePassengerView' },
{ label: '行调台', value: 'dispatcherManage' },
{ label: '派班工作站', value: 'scheduleWork' },
{ label: '应急调度', value: 'emergency' }
]
}
};

View File

@ -289,14 +289,10 @@ export default {
group: group,
mapId: mapId,
simType:paramVO.type,
project: this.project
project: this.project,
singleClient:true,
client:this.$route.query.client
};
if (paramVO && paramVO.domConfig && paramVO.domConfig.client) {
query.client = paramVO.domConfig.client;
}
if (paramVO && paramVO.domConfig && paramVO.domConfig.singleClient) {
query.singleClient = paramVO.domConfig.singleClient;
}
this.$router.push({ path: `/display/demon`, query: query });
});
},

View File

@ -116,6 +116,7 @@ export default {
console.log(tipPosition, this.trainingType, '-------');
this.$emit('backDesignPane');
this.tagIndex = 0;
this.editMode = false;
},
covertString(data) {
if (data.userOperationType) {

View File

@ -890,6 +890,7 @@ export default {
this.getUserRole();
}
this.commonMessageList = messages.sort(this.sortByMessageTime);
this.messageList = [...this.commonMessageList];
this.initCommonMemberList();
});
},
@ -994,15 +995,15 @@ export default {
this.filterNode();
});
},
clearAllData() {
this.recordSending = false;
this.inter = null;
this.recorders = null;
this.microphone = null;
this.treeData = [];
this.conversitionMemberList = [];
this.messageList = [];
},
// clearAllData() {
// this.recordSending = false;
// this.inter = null;
// this.recorders = null;
// this.microphone = null;
// this.treeData = [];
// this.conversitionMemberList = [];
// this.messageList = [];
// },
//
resetCoversition() {
this.commonMessageList = [];

View File

@ -13,12 +13,6 @@ import { createDevice, deviceIsExist} from '@/api/project';
import ConstConfig from '@/scripts/ConstConfig';
export default {
name: 'DeviceAdd',
props: {
projectCode: {
type: String,
required: true
}
},
data() {
return {
dialogVisible: false,
@ -40,7 +34,8 @@ export default {
labelWidth: '120px',
items: [
{ prop: 'code', label: this.$t('system.deviceCode'), type: 'text', required: true, placeholder: this.$t('rules.enterDeviceCode') },
{ prop: 'type', label: this.$t('system.deviceType1'), type: 'select', required: true, options: this.deviceTypeList, placeholder: this.$t('rules.selectDeviceType') }
{ prop: 'type', label: this.$t('system.deviceType1'), type: 'select', required: true, options: this.deviceTypeList, placeholder: this.$t('rules.selectDeviceType') },
{prop: 'projectCode', label:'所属项目', type: 'select', required: true, options:ConstConfig.ConstSelect.projectList }
]
};
return form;
@ -52,6 +47,9 @@ export default {
],
type: [
{ required: true, message: this.$t('rules.selectDeviceType'), trigger: 'change' }
],
projectCode: [
{ required: true, message: '请选择所属项目', trigger: 'change' }
]
};
return crules;
@ -65,7 +63,6 @@ export default {
methods: {
show(data) {
this.dialogVisible = true;
this.formModel.projectCode = this.projectCode;
},
doSave() {
const self = this;

View File

@ -22,6 +22,28 @@
</el-select>
</el-form-item>
</el-form>
<el-form v-show="['IM','CW'].includes(data.type)" ref="formIm" :model="formIm" label-width="100px" :rules="rulesIm">
<el-form-item label="关联角色:" prop="roleCode">
<el-select v-model="formIm.roleCode" placeholder="请选择" size="small">
<el-option
v-for="item in roleList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="关联客户端:" prop="client">
<el-select v-model="formIm.client" placeholder="请选择" size="small">
<el-option
v-for="item in clientList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-form>
<el-form v-show="data.type === 'LW'" ref="formLw" :model="formLw" label-width="100px" :rules="rulesLw">
<el-form-item label="关联地图:" prop="mapId">
<el-select v-model="formLw.mapId" placeholder="请选择" size="small" @change="mapIdChange">
@ -53,6 +75,16 @@
/>
</el-select>
</el-form-item>
<el-form-item label="关联客户端:" prop="client">
<el-select v-model="formLw.client" placeholder="请选择" size="small">
<el-option
v-for="item in clientList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-form>
<el-form v-show="data.type === 'ISCS_LW' || data.type === 'ISCS_CW'" ref="formIscs" :model="formIscs" label-width="100px" :rules="rulesIscs">
<el-form-item :label="data.type === 'ISCS_LW'?'现地工作站:': '行调工作站'" prop="deviceCode">
@ -98,7 +130,7 @@ import { getDeviceDetail, getDevicesByType, setDeviceConfig } from '@/api/projec
import { getAllMapOnline, querySimulationMemberByMapId, querySimulationStationsByMapId } from '@/api/jmap/map';
import { getBackProjectConfigByCode } from '@/api/projectConfig';
import { getMapFunctioById } from '@/api/trainingPlatform';
import { } from '@/api/jmap/map';
import ConstConfig from '@/scripts/ConstConfig';
export default {
name: 'EditConfig',
data() {
@ -108,6 +140,10 @@ export default {
mapList: [],
roleList:[],
lwList: [],
formIm:{
roleCode:'',
client:''
},
formIbp: {
part: '',
deviceCode: ''
@ -115,17 +151,27 @@ export default {
formLw: {
mapId: '',
stationCode: '',
roleCode:''
roleCode:'',
client:''
},
formIscs: {
deviceCode: '',
picture: '',
stationCode: ''
},
clientList: ConstConfig.ConstSelect.clientList,
pictureList: [
{ label: '广播系统', value: 'paMain' },
{ label: '乘客信息', value: 'pidsMain' }
],
rulesIm:{
roleCode: [
{ required: true, message: '请选择关联角色', trigger: 'change'}
],
client: [
{ required: true, message: '请选择关联客户端', trigger: 'change'}
]
},
rulesIbp: {
part: [
{ required: true, message: '请选择显示位置', trigger: 'change' }
@ -140,6 +186,9 @@ export default {
],
roleCode: [
{ required: true, message: '请选择关联角色', trigger: 'change'}
],
client: [
{ required: true, message: '请选择关联客户端', trigger: 'change'}
]
},
rulesIscs: {
@ -164,6 +213,9 @@ export default {
} else if (resp.data.config && resp.data.type === 'LW') {
const form = JSON.parse(resp.data.config);
this.formLw = Object.assign(this.formLw, form);
} else if (resp.data.config && ['IM', 'CW'].includes(resp.data.type)) {
const form = JSON.parse(resp.data.config);
this.formIm = Object.assign(this.formIm, form);
} else if (resp.data.config && (resp.data.type === 'ISCS_LW' || resp.data.type === 'ISCS_CW')) {
this.formIscs = JSON.parse(resp.data.config);
}
@ -228,6 +280,21 @@ export default {
self.$message.error(this.$t('tip.modifyTheFailure') + error.message);
});
});
} else if (['IM', 'CW'].includes(this.data.type)) {
this.$refs.formIm.validate(() => {
const data = {id: this.data.id, project: this.data.project, code: this.data.code, type: this.data.type, config: JSON.stringify(this.formIm) };
setDeviceConfig(data).then(response => {
if (self.data.type == 'IM') {
self.$message.success('设置教员机配置成功');
} else {
self.$message.success('设置行调工作站配置成功');
}
self.handleClose();
self.$emit('reloadTable');
}).catch(error => {
self.$message.error(this.$t('tip.modifyTheFailure') + error.message);
});
});
} else if (this.data.type === 'ISCS_LW') {
this.$refs.formIscs.validate(() => {
const data = {id: this.data.id, project: this.data.project, code: this.data.code, type: this.data.type, config: JSON.stringify(this.formIscs) };

View File

@ -11,13 +11,14 @@
<script>
import { getDevicesByType, getDeviceDetail, setDeviceConfig } from '@/api/project';
import { getAllMapOnline, getStationListNeedAttendant, getPsdListByStandCode, getStandListByStationCode } from '@/api/jmap/map';
import ConstConfig from '@/scripts/ConstConfig';
export default {
name: 'EditConfigScreen',
data() {
return {
dialogVisible: false,
data: {},
clientList: ConstConfig.ConstSelect.clientList,
screenList: [
{ label: '第一屏', value: 1 },
{ label: '第二屏', value: 2 },
@ -36,7 +37,9 @@ export default {
psdCode: '',
mapId: '',
stationCode: '',
standCode: ''
standCode: '',
roleCode:'',
client:''
},
rules: {
addr: [
@ -53,18 +56,26 @@ export default {
],
psdCode: [
{ required: true, message: '请选择关联屏蔽门', trigger: 'change'}
],
roleCode: [
{ required: true, message: '请选择关联角色', trigger: 'change'}
],
client: [
{ required: true, message: '请选择关联客户端', trigger: 'change'}
]
},
mapList: [],
stationList: [],
standList: [],
psdList: []
psdList: [],
roleList:[]
};
},
computed: {
title() {
return '编辑设备配置';
},
// 'LSW', 'CCTV', 'VR_PSD', 'PLC_GATEWAY', 'SANDBOX', 'ILW'
formItem() {
let form = {labelWidth: '150px', item: []};
if (this.data.type === 'PLC_GATEWAY') {
@ -83,7 +94,9 @@ export default {
{ prop: 'mapId', label: '关联地图:', type: 'select', options: this.mapList, optionLabel: 'name', optionValue: 'id', deviceChange: this.mapIdChange},
{ prop: 'stationCode', label: '关联车站:', type: 'select', options: this.stationList, optionLabel: 'name', optionValue: 'code', deviceChange: this.stationCodeChange},
{ prop: 'standCode', label: '关联站台:', type: 'select', options: this.standList, optionLabel: 'name', optionValue: 'code', deviceChange: this.standCodeChange},
{ prop: 'psdCode', label: '关联屏蔽门:', type: 'select', options: this.psdList, optionLabel: 'code', optionValue: 'code' }
{ prop: 'psdCode', label: '关联屏蔽门:', type: 'select', options: this.psdList, optionLabel: 'code', optionValue: 'code' },
{ prop: 'roleCode', label: '关联角色:', type: 'select', options: this.roleList, optionLabel: 'label', optionValue: 'value' },
{ prop: 'client', label: '关联客户端:', type: 'select', options: this.clientList, optionLabel: 'label', optionValue: 'value' }
]
};
} else if (this.data.type === 'LSW') {
@ -91,21 +104,27 @@ export default {
labelWidth: '150px',
items: [
{ prop: 'deviceCode', label: '教研机:', type: 'select', options: this.deviceList, optionLabel: 'code', optionValue: 'code' },
{ prop: 'quadrant', label: '屏幕配置:', type: 'select', options: this.screenList, optionLabel: 'label', optionValue: 'value'}
{ prop: 'quadrant', label: '屏幕配置:', type: 'select', options: this.screenList, optionLabel: 'label', optionValue: 'value'},
{ prop: 'roleCode', label: '关联角色:', type: 'select', options: this.roleList, optionLabel: 'label', optionValue: 'value' },
{ prop: 'client', label: '关联客户端:', type: 'select', options: this.clientList, optionLabel: 'label', optionValue: 'value' }
]
};
} else if (this.data.type === 'CCTV') {
form = {
labelWidth: '150px',
items: [
{ prop: 'deviceCode', label: '教研机:', type: 'select', options: this.deviceList, optionLabel: 'code', optionValue: 'code' }
{ prop: 'deviceCode', label: '教研机:', type: 'select', options: this.deviceList, optionLabel: 'code', optionValue: 'code' },
{ prop: 'roleCode', label: '关联角色:', type: 'select', options: this.roleList, optionLabel: 'label', optionValue: 'value' },
{ prop: 'client', label: '关联客户端:', type: 'select', options: this.clientList, optionLabel: 'label', optionValue: 'value' }
]
};
} else if ( this.data.type === 'SANDBOX') {
form = {
labelWidth: '150px',
items: [
{ prop: 'deviceCode', label: '教研机', type: 'select', options: this.deviceList, optionLabel: 'code', optionValue: 'code'}
{ prop: 'deviceCode', label: '教研机', type: 'select', options: this.deviceList, optionLabel: 'code', optionValue: 'code'},
{ prop: 'roleCode', label: '关联角色:', type: 'select', options: this.roleList, optionLabel: 'label', optionValue: 'value' },
{ prop: 'client', label: '关联客户端:', type: 'select', options: this.clientList, optionLabel: 'label', optionValue: 'value' }
]
};
} else if (this.data.type === 'ILW') {
@ -195,7 +214,9 @@ export default {
this.$refs.dataForm.validateForm(() => {
const param = {
deviceCode: this.formData.deviceCode,
quadrant: this.formData.quadrant
quadrant: this.formData.quadrant,
roleCode: this.formData.roleCode,
client: this.formData.client
};
const data = {id: this.data.id, project: this.data.project, code: this.data.code, type: this.data.type, config: JSON.stringify(param) };
setDeviceConfig(data).then(() => {
@ -209,7 +230,9 @@ export default {
} else if (this.data.type == 'CCTV') {
this.$refs.dataForm.validateForm(() => {
const param = {
deviceCode: this.formData.deviceCode
deviceCode: this.formData.deviceCode,
roleCode: this.formData.roleCode,
client: this.formData.client
};
const data = {id: this.data.id, project: this.data.project, code: this.data.code, type: this.data.type, config: JSON.stringify(param) };
setDeviceConfig(data).then(() => {
@ -224,7 +247,9 @@ export default {
this.$refs.dataForm.validateForm(() => {
const param = {
deviceCode: this.formData.deviceCode,
psdCode: this.formData.psdCode
psdCode: this.formData.psdCode,
roleCode: this.formData.roleCode,
client: this.formData.client
};
const data = {id: this.data.id, project: this.data.project, code: this.data.code, type: this.data.type, config: JSON.stringify(param) };
setDeviceConfig(data).then(() => {
@ -253,7 +278,9 @@ export default {
} else if (this.data.type === 'SANDBOX') {
this.$refs.dataForm.validateForm(() => {
const param = {
deviceCode: this.formData.deviceCode
deviceCode: this.formData.deviceCode,
roleCode: this.formData.roleCode,
client: this.formData.client
};
const data = {id: this.data.id, project: this.data.project, code: this.data.code, type: this.data.type, config: JSON.stringify(param) };
setDeviceConfig(data).then(() => {
@ -288,6 +315,7 @@ export default {
this.standList = [];
this.psdList = [];
this.mapId = '';
this.roleList = [];
this.stationCode = '';
this.standCode = '';
this.deviceList = [];

View File

@ -1,7 +1,7 @@
<template>
<div>
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
<device-add ref="add" :project-code="projectCode" @reloadTable="reloadTable" />
<device-add ref="add" @reloadTable="reloadTable" />
<edit-config-gateway ref="editConfigGateway" @reloadTable="reloadTable" />
<edit-config ref="editConfig" @reloadTable="reloadTable" />
<edit-config-screen ref="editConfigScreen" @reloadTable="reloadTable" />
@ -37,24 +37,9 @@ export default {
pageSize: 'pageSize',
pageIndex: 'pageNum'
},
projectCode:'',
// projectCode:'',
deviceTypeList:ConstConfig.ConstSelect.projectDeviceTypeList,
projectList: [
{label:'西铁院', value: 'XTY'},
{label: '贵州装备', value:'GZB'},
{label: '哈尔滨', value:'HEB'},
{label: '苏电院', value:'SDY'},
{label: '中航锐创(实训室)', value: 'RICHOR_JOINT'},
{label: '上饶沙盘', value: 'SR_SANDBOX'},
{label: '江西工贸', value: 'JXGM'},
{label: '扬州工业', value: 'RICHOR_YGY'},
{label: '红河财经', value: 'RICHOR_HHCJ'},
{label: '苏安院', value: 'SAY'},
{label: '众合-陕铁院', value: 'UNITTEC_STY'},
{label: '教学通用', value: 'TEACHING'},
{label: '长兴技校', value: 'RICHOR_CXJS'},
{label: '京津冀联盟', value: 'JJJLM'}
],
projectList: ConstConfig.ConstSelect.projectList,
queryForm: {
labelWidth: '120px',
reset: true,
@ -70,6 +55,13 @@ export default {
config: {
data: ConstConfig.ConstSelect.projectDeviceTypeList
}
},
projectCode:{
type: 'select',
label: '所属项目',
config: {
data: ConstConfig.ConstSelect.projectList
}
}
}
@ -134,11 +126,11 @@ export default {
};
},
created() {
this.projectCode = getSessionStorage('project') || '';
// this.projectCode = getSessionStorage('project') || '';
},
methods: {
beforeQuery(params) {
params.projectCode = this.projectCode;
// params.projectCode = this.projectCode;
return params;
},
createProjectDevice() {
@ -187,11 +179,11 @@ export default {
},
editConfig(index, row) {
const configGatewayList = ['SWITCH', 'SIGNAL', 'PSD', 'PSL', 'PSC', 'UDP_LOW', 'SECTION', 'TRAIN', 'UDP_CLIENT', 'PIS_STAND', 'PIS_TRAIN'];
if (['LW', 'VR_IBP', 'ISCS_LW', 'ISCS_CW'].includes(row.type)) {
if (['LW', 'VR_IBP', 'ISCS_LW', 'ISCS_CW', 'IM', 'CW'].includes(row.type)) {
this.$refs.editConfig.doShow(row);
} else if (configGatewayList.includes(row.type)) {
this.$refs.editConfigGateway.doShow(row);
} else if (row.type == 'LSW' || row.type == 'CCTV' || row.type == 'VR_PSD' || row.type === 'PLC_GATEWAY' || row.type === 'SANDBOX' || row.type === 'ILW') {
} else if (['LSW', 'CCTV', 'VR_PSD', 'PLC_GATEWAY', 'SANDBOX', 'ILW'].includes(row.type)) {
this.$refs.editConfigScreen.doShow(row);
} else if (row.type === 'IBP') {
this.$refs.editConfigIbp.doShow(row);
@ -210,11 +202,17 @@ export default {
const config = JSON.parse(res.data.config);
roleCode = config.roleCode;
}
let client = '';
if (res.data.config) {
const config = JSON.parse(res.data.config);
client = config.client;
}
let url = '';
url = `${window.location.protocol}//${window.location.host}/cbtc/login?project=${row.project.toLowerCase().replace(/_/, '')}&projectDevice=${row.code}&type=${row.type}`;
if (roleCode) {
url += '&roleCode=' + roleCode;
}
if (client) { url += '&client=' + client; }
this.url = url;
this.$messageBox();
this.$confirm(`登录路径:${url}`, '登录路径', {
@ -233,3 +231,8 @@ export default {
}
};
</script>
<style lang="scss">
.el-message-box__message p {
word-break: break-word;
}
</style>