Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/jl-client into test
This commit is contained in:
commit
402eb691d1
25
src/api/disStation.js
Normal file
25
src/api/disStation.js
Normal file
@ -0,0 +1,25 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 创建调度台逻辑数据
|
||||
export function createDisStation(mapId, data) {
|
||||
return request({
|
||||
url: `/api/draftMap/${mapId}/disStation`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
// 更新调度台逻辑数据
|
||||
export function updateDisStation(mapId, data) {
|
||||
return request({
|
||||
url: `/api/draftMap/${mapId}/disStation`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
// 删除调度台逻辑数据
|
||||
export function deleteDisStation(mapId, code) {
|
||||
return request({
|
||||
url: `/api/draftMap/${mapId}/disStation/${code}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
@ -204,6 +204,7 @@ const map = {
|
||||
namespaced: true,
|
||||
|
||||
state: {
|
||||
disStationList: [], // 调度台list
|
||||
routeData: {}, // 进路数据
|
||||
routeList: [], // 进路list
|
||||
mapStationDirectionData:{}, // 大铁项目 车站方向数据
|
||||
@ -258,6 +259,13 @@ const map = {
|
||||
},
|
||||
|
||||
getters: {
|
||||
disStationList: state => {
|
||||
if (state.map) {
|
||||
return state.disStationList;
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
trainWindowSectionCode: state => {
|
||||
return state.trainWindowSectionCode;
|
||||
},
|
||||
@ -745,6 +753,10 @@ const map = {
|
||||
},
|
||||
|
||||
mutations: {
|
||||
// 设置调度台列表
|
||||
setDisStationList: (state, list) => {
|
||||
state.disStationList = list;
|
||||
},
|
||||
// 改变地图数据索引
|
||||
flushMapRef: state => {
|
||||
if (state.map) {
|
||||
@ -1121,6 +1133,7 @@ const map = {
|
||||
});
|
||||
mapData.graphDataNew.overlapList = overlapData;
|
||||
|
||||
commit('setDisStationList', mapData.logicDataNew.disStationList || []);
|
||||
commit('setMapName', mapData.name);
|
||||
commit('setMapData', mapData.graphDataNew);
|
||||
commit('setRouteData', mapData.logicDataNew.routeList);
|
||||
|
@ -0,0 +1,103 @@
|
||||
<template>
|
||||
<div style="height: 100%;">
|
||||
<DisStationDraft
|
||||
ref="routeEdit"
|
||||
:selected="selected"
|
||||
:map-info="mapInfo"
|
||||
:route-data="routeData"
|
||||
@setCenter="setCenter"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import DisStationDraft from './route';
|
||||
|
||||
export default {
|
||||
name: 'DisStationOperate',
|
||||
components: {
|
||||
DisStationDraft
|
||||
},
|
||||
props: {
|
||||
mapInfo: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
selected: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
enabledTab: 'Route',
|
||||
routeData: null,
|
||||
routeList:[]
|
||||
};
|
||||
},
|
||||
created() {
|
||||
// filterRouteList() {
|
||||
// return this.routeList.filter(route=>{ return !route.multiRoute; });
|
||||
// } 'routeList',
|
||||
},
|
||||
methods: {
|
||||
setEditRouteDate(data) {
|
||||
this.routeData = data;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.routeEdit.setEditData();
|
||||
});
|
||||
},
|
||||
clickEvent(e, model) {
|
||||
this.onSelect(model);
|
||||
},
|
||||
onSelect(model) {
|
||||
if (model) {
|
||||
this.selected = model;
|
||||
} else {
|
||||
this.selected = null;
|
||||
}
|
||||
},
|
||||
setDelayUnlockStatus(data, status) {
|
||||
if (data && data.delayShowList) {
|
||||
data.delayShowList.forEach(elem => {
|
||||
elem.status = status;
|
||||
});
|
||||
}
|
||||
},
|
||||
routeSelected: function (data) {
|
||||
this.routeData = data;
|
||||
if (this.$refs && this.$refs.routeEdit) {
|
||||
this.$refs.routeEdit.isModify = data.id;
|
||||
}
|
||||
},
|
||||
previewRouteEvent: function () {
|
||||
if (this.$refs && this.$refs.routeDetail) {
|
||||
this.$refs.routeDetail.doShow();
|
||||
}
|
||||
},
|
||||
initLoad() {
|
||||
this.$refs.routeEdit && this.$refs.routeEdit.initLoad();
|
||||
},
|
||||
createRouteEvent: function () {
|
||||
if (this.$refs && this.$refs.routeEdit) {
|
||||
this.$refs.routeEdit.clear();
|
||||
}
|
||||
},
|
||||
setSelected(selected) {
|
||||
this.$refs.routeEdit.setSelected(selected);
|
||||
},
|
||||
setCenter(code) {
|
||||
this.$emit('setCenter', code);
|
||||
},
|
||||
batchSectionListFocus(flag) {
|
||||
this.$refs.routeEdit.batchSectionListFocus(flag);
|
||||
},
|
||||
refresh() {
|
||||
this.$refs.routeEdit.initPage();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -0,0 +1,162 @@
|
||||
<template>
|
||||
<div class="BigRouteInfo">
|
||||
<el-form ref="form" :model="editModel" :rules="rules" label-width="140px" size="mini" class="bigDefinition">
|
||||
<el-form-item label="编号:">
|
||||
<el-select v-model="editModel.code" clearable filterable :placeholder="$t('map.pleaseSelect')" @change="deviceChange">
|
||||
<el-option
|
||||
v-for="item in disStationList"
|
||||
:key="item.code"
|
||||
:label="`${item.name}(${item.code})`"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="调度台名称:" prop="name">
|
||||
<el-input v-model="editModel.name" style="width: 180px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="下辖车站:" prop="stationList">
|
||||
<el-select v-model="editModel.stationList" multiple clearable filterable :placeholder="$t('map.pleaseSelect')">
|
||||
<el-option
|
||||
v-for="item in stationList"
|
||||
:key="item.code"
|
||||
:label="`${item.name}(${item.code})`"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="button_box">
|
||||
<el-button-group class="button-group">
|
||||
<el-button :disabled="!!editModel.code" type="success" size="small" @click="create">{{ $t('map.create') }}</el-button>
|
||||
<el-button :disabled="!editModel.code" type="primary" size="small" @click="edit">{{ $t('map.updateObj') }}</el-button>
|
||||
<el-button :disabled="!editModel.code" type="danger" size="small" @click="deleteObj">{{ $t('map.deleteObj') }}</el-button>
|
||||
</el-button-group>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { getUID } from '@/jmapNew/utils/Uid';
|
||||
import { deepAssign } from '@/utils/index';
|
||||
import { createDisStation, updateDisStation, deleteDisStation } from '@/api/disStation.js';
|
||||
|
||||
export default {
|
||||
name:'DisStationDraft',
|
||||
props: {
|
||||
selected: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
editModel: {
|
||||
code: '',
|
||||
name: '',
|
||||
stationList: [] // 关联车站code列表
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'disStationList',
|
||||
'stationList'
|
||||
]),
|
||||
mapId() {
|
||||
return this.$route.params.mapId || '';
|
||||
},
|
||||
rules() {
|
||||
const rules = {
|
||||
code: [
|
||||
{ required: true, message: this.$t('rules.pleaseSelect'), trigger: 'change' }
|
||||
],
|
||||
name: [
|
||||
{ required: true, message: this.$t('rules.pleaseInputName'), trigger: 'change' }
|
||||
],
|
||||
stationList: [
|
||||
{ required: true, message: this.$t('rules.selectStation'), trigger: 'change' }
|
||||
]
|
||||
};
|
||||
return rules;
|
||||
}
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
deviceChange(code) {
|
||||
let obj = {};
|
||||
const findObj = this.disStationList.find(item => {
|
||||
return item.code == code;
|
||||
});
|
||||
if (findObj) {
|
||||
obj = deepAssign({}, findObj);
|
||||
}
|
||||
this.editModel = deepAssign(this.editModel, obj);
|
||||
},
|
||||
edit() {
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
const model = deepAssign({}, this.editModel);
|
||||
console.log('model', model);
|
||||
updateDisStation(this.mapId, model).then(res => {
|
||||
this.$message.success('修改成功!');
|
||||
}).catch(err => {
|
||||
console.log('修改失败!', err);
|
||||
this.$message.error('修改失败!');
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
deleteObj() {
|
||||
this.$confirm(this.$t('tip.confirmDeletion'), this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
cancelButtonText: this.$t('tip.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
deleteDisStation(this.mapId, this.editModel.code).then(res => {
|
||||
this.$refs.form && this.$refs.form.resetFields();
|
||||
}).catch(err => {
|
||||
console.log('删除失败!', err);
|
||||
this.$message.error('删除失败!');
|
||||
});
|
||||
}).catch(() => {
|
||||
this.$message.info(this.$t('tip.cancelledDelete'));
|
||||
});
|
||||
},
|
||||
create() {
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
const uid = getUID('DisStation', this.disStationList);
|
||||
const model = {
|
||||
mapId: this.mapId,
|
||||
code: uid,
|
||||
name: this.editModel.name,
|
||||
stationList: this.editModel.stationList
|
||||
};
|
||||
console.log('model', model);
|
||||
createDisStation(this.mapId, model).then(res => {
|
||||
this.$refs.form.resetFields();
|
||||
this.$message.success('创建成功!');
|
||||
}).catch(err => {
|
||||
console.log('创建失败!', err);
|
||||
this.$message.error('创建失败!');
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.button_box{
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
background: #fff;
|
||||
box-shadow: 4px 5px 10px #565656;
|
||||
width: 100%;
|
||||
padding: 8px 10px;
|
||||
}
|
||||
.button-group{float: right;}
|
||||
</style>
|
@ -33,6 +33,7 @@ import RouteOperate from './routeoperate/index';
|
||||
import RoutingOperate from './routingoperate/index';
|
||||
import BigRoutingOperate from './bigroutingoperate/index';
|
||||
import IndicatorAssociatedInfo from './indicatorAssociatedInfo/index';
|
||||
import DisStationOperate from './disStationOperate/index';
|
||||
import AutomaticOperate from './automaticoperate/index';
|
||||
// import PathOperate from './pathoperate/index';
|
||||
import RunLevelOperate from './runLeveloperate/index';
|
||||
@ -58,6 +59,7 @@ export default {
|
||||
TurnedOperate,
|
||||
DwellTimeOperate,
|
||||
ContinueProtectOperate,
|
||||
DisStationOperate,
|
||||
IndicatorAssociatedInfo
|
||||
// DestinationOperate
|
||||
},
|
||||
@ -102,6 +104,9 @@ export default {
|
||||
{label: '出入口', name: 'indicatorAssociatedInfo', menus: IndicatorAssociatedInfo}
|
||||
// {label: this.$t('map.routing'), name:'routing', menus:RoutingOperate}
|
||||
];
|
||||
if (this.$route.query.lineCode == '16') {
|
||||
this.tabList.push({label: '调度台', name: 'DisStationOperate', menus: DisStationOperate});
|
||||
}
|
||||
this.enabledTab = 'bigRoutingOperate';
|
||||
} else {
|
||||
this.tabList = [
|
||||
|
Loading…
Reference in New Issue
Block a user