地图高级数据停站时间
This commit is contained in:
parent
c13624b60a
commit
ed26ff34d9
@ -536,4 +536,42 @@ export function getFlankProtectionList(mapId, params) {
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
/** 创建车站区段停站时间 */
|
||||
export function createStationParkTime(data) {
|
||||
return request({
|
||||
url: `/api/mapBuild/stationParkTime`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 删除车站区段停站时间 */
|
||||
export function deleteStationParkTime(stationParkTimeId) {
|
||||
return request({
|
||||
url: `/api/mapBuild/stationParkTime/${stationParkTimeId}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
/** 获取车站区段停站时间 */
|
||||
export function getStationParkTime(stationParkTimeId, params) {
|
||||
return request({
|
||||
url: `/api/mapBuild/stationParkTime/${stationParkTimeId}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 更新车站区段停站时间 */
|
||||
export function updateStationParkTime(data) {
|
||||
return request({
|
||||
url: `/api/mapBuild/stationParkTime/${data.id}`,
|
||||
method: 'get',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 分页获取车站区段停站时间 */
|
||||
export function getStationParkTimeList(mapId, params) {
|
||||
return request({
|
||||
url: `/api/mapBuild/${mapId}/stationParkTime`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
@ -234,5 +234,9 @@ export default {
|
||||
mapSortSuccessfully: 'Map sort successfully!',
|
||||
mapSortFailed: 'Map sort failed',
|
||||
enterTrainingRoomFailed: 'Failed to enter the comprehensive drill, please consult the administrator is still in the room!',
|
||||
failedToAddNewRoom: 'Failed to add new room'
|
||||
failedToAddNewRoom: 'Failed to add new room',
|
||||
dwellTimeSuccessful: 'Create dwell time successful!',
|
||||
dwellTimeFailed: 'Failed to create dwell time!',
|
||||
updateDwellTimeSuccessful: 'Update dwell time successful!',
|
||||
updateDwellTimeFailed: 'Failed to update dwell time!'
|
||||
};
|
||||
|
@ -234,5 +234,9 @@ export default {
|
||||
mapSortSuccessfully: '地图排序成功!',
|
||||
mapSortFailed: '地图排序失败!',
|
||||
enterTrainingRoomFailed: '进入综合演练失败,请咨询管理员是否还在房间内!',
|
||||
failedToAddNewRoom: '加入新房间失败'
|
||||
failedToAddNewRoom: '加入新房间失败',
|
||||
dwellTimeSuccessful: '创建停站时间成功!',
|
||||
dwellTimeFailed: '创建停站时间失败!',
|
||||
updateDwellTimeSuccessful: '更新停站时间成功!',
|
||||
updateDwellTimeFailed: '更新停站时间失败!'
|
||||
};
|
||||
|
@ -2,11 +2,11 @@ export function getBaseUrl() {
|
||||
let BASE_API;
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
// BASE_API = 'https://joylink.club/jlcloud';
|
||||
BASE_API = 'https://test.joylink.club/jlcloud';
|
||||
// BASE_API = 'https://test.joylink.club/jlcloud';
|
||||
// BASE_API = 'http://192.168.3.5:9000'; // 袁琪
|
||||
// BASE_API = 'http://192.168.3.6:9000'; // 旭强
|
||||
// BASE_API = 'http://192.168.3.41:9000'; // 张赛
|
||||
// BASE_API = 'http://192.168.3.82:9000'; // 杜康
|
||||
BASE_API = 'http://192.168.3.82:9000'; // 杜康
|
||||
// BASE_API = 'http://192.168.3.41:9000'; // 张赛
|
||||
// BASE_API = 'http://b29z135112.zicp.vip';
|
||||
// BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康
|
||||
|
@ -0,0 +1,201 @@
|
||||
<template>
|
||||
<el-dialog v-dialogDrag class="autoSignal" :title="$t('map.automaticSignalList')" :visible.sync="show" width="85%" :before-do-close="doClose">
|
||||
<div>
|
||||
<QueryListPage
|
||||
ref="queryListPage"
|
||||
:pager-config="pagerConfig"
|
||||
:query-form="queryForm"
|
||||
:query-list="queryList"
|
||||
/>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { listMap } from '@/api/jmap/mapdraft';
|
||||
import { getStationParkTimeList, deleteStationParkTime, getStationParkTime } from '@/api/jmap/mapdraft';
|
||||
|
||||
export default {
|
||||
name: 'RouteDetail',
|
||||
props: {
|
||||
mapInfo: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
mapList: [],
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '120px',
|
||||
queryObject: {
|
||||
code: {
|
||||
type: 'text',
|
||||
label: this.$t('map.autoSignalCode'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
signalCode: {
|
||||
type: 'select',
|
||||
label: this.$t('map.signal'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: this.queryFunction,
|
||||
afterQuery: this.afterQuery,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: '停站车站',
|
||||
prop: 'stationCode',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.formatName(row.stationCode); },
|
||||
tagType: (row) => { return ''; }
|
||||
},
|
||||
{
|
||||
title: '停站时间',
|
||||
prop: 'parkingTimeVOList',
|
||||
type: 'tagMore',
|
||||
columnValue: (row) => { return this.handelParkingTime(row.parkingTimeVOList); },
|
||||
tagType: (row) => { return ''; }
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('map.operation'),
|
||||
width: '200',
|
||||
buttons: [
|
||||
{
|
||||
name: this.$t('map.compile'),
|
||||
handleClick: this.editObj
|
||||
},
|
||||
{
|
||||
name: this.$t('map.deleteObj'),
|
||||
handleClick: this.deleteObj,
|
||||
type: 'danger'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'sectionList',
|
||||
'signalList',
|
||||
'stationStandList'
|
||||
])
|
||||
},
|
||||
watch: {
|
||||
signalList: function (val, old) {
|
||||
const list = [];
|
||||
if (val && val.length) {
|
||||
for (let i = 0; i < val.length; i++) {
|
||||
list.push({ label: val[i].uniqueName, value: val[i].code });
|
||||
}
|
||||
this.queryForm.queryObject.signalCode.config.data = list;
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.acquireMapList();
|
||||
},
|
||||
methods: {
|
||||
doShow() {
|
||||
this.show = true;
|
||||
this.reloadTable();
|
||||
},
|
||||
handelParkingTime(parkingTimeVOList) {
|
||||
const nameList = [];
|
||||
parkingTimeVOList.forEach(item => {
|
||||
nameList.push(`${this.formatName(item.sectionCode)}(${item.parkingTime}s)`);
|
||||
});
|
||||
return nameList;
|
||||
},
|
||||
doClose() {
|
||||
this.show = false;
|
||||
},
|
||||
formatName(code) {
|
||||
let name = '';
|
||||
const device = this.$store.getters['map/getDeviceByCode'](code);
|
||||
if (device) {
|
||||
name = device.uniqueName || device.name;
|
||||
}
|
||||
console.log(code, name, device);
|
||||
return name;
|
||||
},
|
||||
queryFunction(params) {
|
||||
if (this.mapInfo && this.mapInfo.id) {
|
||||
return getStationParkTimeList(this.mapInfo.id, params);
|
||||
}
|
||||
},
|
||||
acquireMapList() {
|
||||
// 地图名称列表
|
||||
listMap({ drawWay:true}).then(response => {
|
||||
this.mapList = response.data;
|
||||
});
|
||||
},
|
||||
afterQuery(data) {
|
||||
if (data && data.list) {
|
||||
const that = this;
|
||||
const list = data.list;
|
||||
if (list) {
|
||||
list.map(elem => {
|
||||
that.$convertSpecifiedField(elem, that.mapList, 'id', 'name', ['mapId']);
|
||||
elem.code = elem.signalCode;
|
||||
elem.signalCode = that.formatName(elem.signalCode);
|
||||
});
|
||||
}
|
||||
}
|
||||
return data;
|
||||
},
|
||||
editObj(index, row) {
|
||||
getStationParkTime(row.id).then(response => {
|
||||
const data = response.data;
|
||||
this.$emit('autoMaticoSelected', data);
|
||||
this.doClose();
|
||||
});
|
||||
},
|
||||
deleteObj(index, row) {
|
||||
if (this.mapInfo && this.mapInfo.id && row) {
|
||||
// 删除
|
||||
deleteStationParkTime(row.id).then(response => {
|
||||
this.$message.success(this.$t('map.successfullyDelete'));
|
||||
this.reloadTable();
|
||||
}).catch(() => {
|
||||
this.$messageBox(this.$t('map.failDelete'));
|
||||
});
|
||||
}
|
||||
},
|
||||
reloadTable() {
|
||||
if (this.queryList && this.queryList.reload) {
|
||||
this.queryList.reload();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.autoSignal .el-dialog__body {
|
||||
padding: 0px 20px 10px 20px;
|
||||
color: #606266;
|
||||
font-size: 14px;
|
||||
}
|
||||
.autoSignal .el-dialog{
|
||||
margin-top: 5vh !important;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,259 @@
|
||||
<template>
|
||||
<div style="height: 100%;">
|
||||
<el-scrollbar wrap-class="scrollbar-wrapper">
|
||||
<el-form ref="form" :model="addModel" :rules="rules" label-width="80px" size="mini">
|
||||
<div class="definition">
|
||||
<el-form-item label="停站车站" prop="stationCode">
|
||||
<el-select v-model="addModel.stationCode" clearable :filterable="true">
|
||||
<el-option
|
||||
v-for="item in stationList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<el-button
|
||||
:type=" field === 'parkStationCode' ? 'danger' : 'primary'"
|
||||
@click="hover('parkStationCode')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="停站时间:" prop="parkingTimeVOList">
|
||||
<div style="margin-left: 10px; margin-top: 15px;">
|
||||
<span style="text-align:right;vertical-align:middle;font-size:14px;color:#606266;font-weight: 700;">停站区段:</span>
|
||||
<el-select v-model="sectionCode" clearable :filterable="true" :placeholder="$t('map.pleaseSelect')">
|
||||
<el-option
|
||||
v-for="item in sectionList"
|
||||
:key="item.code"
|
||||
:label="`${item.name}(${item.code})`"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<el-button
|
||||
:type=" field === 'parkSection' ? 'danger' : 'primary'"
|
||||
@click="hover('parkSection')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
</div>
|
||||
<div style="margin-left: 10px; margin-top: 15px; margin-bottom: 15px;">
|
||||
<span style="text-align:right;vertical-align:middle;font-size:14px;color:#606266;font-weight: 700;">停站时间:</span>
|
||||
<el-input-number v-model="parkingTime" controls-position="right" :min="0" /><span>(s)</span>
|
||||
<el-button
|
||||
type="primary"
|
||||
style="position: absolute; right: 10px;"
|
||||
@click="pushSection(addModel.parkingTimeVOList, {sectionCode: sectionCode, parkingTime:parkingTime})"
|
||||
>
|
||||
{{ $t('map.add') }}
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table :data="addModel.parkingTimeVOList" border style="width: 97%">
|
||||
<el-table-column prop="sectionCode" label="停车区段">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ formatName(scope.row.sectionCode) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="parkingTime" label="停车时间">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.parkingTime }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" :label="$t('map.operation')" width="50">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click.native.prevent="deleteSection(addModel.routingSectionList, scope.$index)"
|
||||
>
|
||||
{{ $t('map.remove') }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button-group>
|
||||
<el-button v-if="isSave" type="primary" size="small" :loading="loading" @click="save">{{ $t('map.save') }}
|
||||
</el-button>
|
||||
<el-button v-else type="warning" size="small" :loading="loading" @click="update">{{ $t('map.updata') }}
|
||||
</el-button>
|
||||
</el-button-group>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import { setUID } from '@/jmapNew/utils/Uid';
|
||||
import { createStationParkTime, updateStationParkTime } from '@/api/jmap/mapdraft';
|
||||
import { ViewMode } from '@/scripts/ConstDic';
|
||||
import { formatName } from '@/utils/runPlan';
|
||||
|
||||
export default {
|
||||
name: 'RouteOperation',
|
||||
props: {
|
||||
selected: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
mapInfo: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
routeData: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
ViewMode: ViewMode,
|
||||
field: '',
|
||||
isSave: true,
|
||||
loading: false,
|
||||
sectionCode: '',
|
||||
parkingTime: 0,
|
||||
addModel: {
|
||||
id: '',
|
||||
code: '',
|
||||
mapId: '',
|
||||
stationCode: '',
|
||||
parkingTimeVOList: []
|
||||
},
|
||||
editShow: false,
|
||||
rules: {
|
||||
signalCode: [
|
||||
{ required: true, message: this.$t('map.pleaseSelectSignal'), trigger: 'change' }
|
||||
]
|
||||
// sectionList: [
|
||||
// { required: true, message: this.$t('map.triggerSegmentData'), trigger: 'change' }
|
||||
// ]
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'sectionList',
|
||||
'stationList'
|
||||
]),
|
||||
filtersectionList() {
|
||||
return this.sectionList.filter(section=>{
|
||||
return section.type == '01' || section.type == '03';
|
||||
});
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
mapInfo(val) {
|
||||
if (val) {
|
||||
this.addModel.mapId = val.id;
|
||||
}
|
||||
},
|
||||
routeData(val, old) {
|
||||
if (val) {
|
||||
this.addModel = val;
|
||||
if (val.parkingTimeVOList.length) {
|
||||
this.sectionCode = val.parkingTimeVOList[0].sectionCode;
|
||||
this.parkingTime = val.parkingTimeVOList[0].parkingTime;
|
||||
}
|
||||
this.editShow = true;
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
hover(field) {
|
||||
this.field = field === this.field ? '' : field;
|
||||
},
|
||||
formatName(code) {
|
||||
return formatName(code);
|
||||
},
|
||||
pushSection(list, data) {
|
||||
list.push(data);
|
||||
},
|
||||
setSelected(selected) {
|
||||
if (selected) {
|
||||
if (selected._type.toUpperCase() === 'Station'.toUpperCase() && this.field.toUpperCase() === 'parkStationCode'.toUpperCase()) {
|
||||
this.addModel.stationCode = selected.code;
|
||||
} else if (selected._type.toUpperCase() === 'Section'.toUpperCase() && this.field.toUpperCase() === 'parkSection'.toUpperCase()) {
|
||||
this.sectionCode = selected.code;
|
||||
}
|
||||
}
|
||||
},
|
||||
buildModel(code) {
|
||||
const model = Object.assign({}, this.addModel);
|
||||
if (code) { model['code'] = code; }
|
||||
model['mapId'] = this.mapInfo.id;
|
||||
model['id'] = this.addModel.id;
|
||||
return model;
|
||||
},
|
||||
save() {
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
this.loading = true;
|
||||
createStationParkTime(this.buildModel(setUID('dwellTime'))).then(resp => {
|
||||
this.$message.success(this.$t('tip.dwellTimeSuccessful'));
|
||||
this.loading = false;
|
||||
this.clear();
|
||||
}).catch(() => {
|
||||
this.$messageBox(this.$t('tip.dwellTimeFailed'));
|
||||
this.loading = false;
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
update() {
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
this.loading = true;
|
||||
updateStationParkTime(this.buildModel()).then(resp => {
|
||||
this.$message.success(this.$t('tip.updateDwellTimeSuccessful'));
|
||||
this.loading = false;
|
||||
this.clear();
|
||||
}).catch(() => {
|
||||
this.$messageBox(this.$t('tip.updateDwellTimeFailed'));
|
||||
this.loading = false;
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
clear() {
|
||||
if (this.$refs && this.$refs.form && this.mapInfo) {
|
||||
delete this.addModel.id;
|
||||
this.$refs.form.resetFields();
|
||||
this.addModel.mapId = this.mapInfo.id;
|
||||
this.addModel.stationCode = '';
|
||||
this.addModel.parkingTimeVOList = [];
|
||||
this.sectionCode = '';
|
||||
this.parkingTime = 0;
|
||||
this.addModel.code = '';
|
||||
this.isSave = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
/deep/ .el-radio {
|
||||
margin-right: 10px;
|
||||
}
|
||||
/deep/ {
|
||||
.el-select .el-tag {
|
||||
height: auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding-right: 15px;
|
||||
box-sizing: border-box;
|
||||
white-space: normal;
|
||||
}
|
||||
.el-input__suffix{
|
||||
right: 2px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,87 @@
|
||||
<template>
|
||||
<div style="height: 100%;">
|
||||
<dwell-time-draft
|
||||
ref="routeEdit"
|
||||
:selected="selected"
|
||||
:map-info="mapInfo"
|
||||
:route-data="routeData"
|
||||
/>
|
||||
<dwell-time-detail ref="routeDetail" :map-info="mapInfo" @autoMaticoSelected="autoMaticoSelected" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import DwellTimeDraft from './dwellTime';
|
||||
import DwellTimeDetail from './detail';
|
||||
|
||||
export default {
|
||||
name: 'DwellTimeOperate',
|
||||
components: {
|
||||
DwellTimeDraft,
|
||||
DwellTimeDetail
|
||||
},
|
||||
props: {
|
||||
mapInfo: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
selected: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
enabledTab: 'Route',
|
||||
routeData: null
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
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;
|
||||
});
|
||||
}
|
||||
},
|
||||
autoMaticoSelected: function (data) {
|
||||
this.routeData = data;
|
||||
if (this.$refs && this.$refs.routeEdit) {
|
||||
this.$refs.routeEdit.isSave = false;
|
||||
}
|
||||
},
|
||||
previewRouteEvent: function () {
|
||||
if (this.$refs && this.$refs.routeDetail) {
|
||||
this.$refs.routeDetail.doShow();
|
||||
}
|
||||
},
|
||||
deleteSection(list, index) {
|
||||
list.splice(index, 1);
|
||||
},
|
||||
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);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -69,6 +69,14 @@
|
||||
@setCenter="setCenter"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="停站时间" class="tab_pane_box" name="dwellTime">
|
||||
<dwell-time-operate
|
||||
ref="dwellTimeOperate"
|
||||
:map-info="mapInfo"
|
||||
:selected="selected"
|
||||
@setCenter="setCenter"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</div>
|
||||
@ -84,6 +92,7 @@ import RunLevelOperate from './runLeveloperate/index';
|
||||
import SignalOperate from './signaloperate/index';
|
||||
import TurnedOperate from './turnedoperate/index';
|
||||
import FlankProtectOperate from './flankProtectOperate/index';
|
||||
import DwellTimeOperate from './dwellTimeOperate/index';
|
||||
|
||||
export default {
|
||||
name: 'DataRelation',
|
||||
@ -95,7 +104,8 @@ export default {
|
||||
FlankProtectOperate,
|
||||
// PathOperate,
|
||||
SignalOperate,
|
||||
TurnedOperate
|
||||
TurnedOperate,
|
||||
DwellTimeOperate
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
@ -120,7 +130,8 @@ export default {
|
||||
signal: 'signalOperate',
|
||||
runLevel: 'runLevelOperate',
|
||||
turned: 'turnedOperate',
|
||||
flankProtect: 'flankProtectOperate'
|
||||
flankProtect: 'flankProtectOperate',
|
||||
dwellTime: 'dwellTimeOperate'
|
||||
}
|
||||
};
|
||||
},
|
||||
|
@ -87,10 +87,10 @@ export default {
|
||||
},
|
||||
{
|
||||
title: this.$t('map.routingDirection'),
|
||||
prop: 'directionCode',
|
||||
prop: 'right',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.directionCode, 'DirectionCodeList'); },
|
||||
tagType: (row) => { if (row.directionCode === '0') { return 'primary'; } else { return 'success'; } }
|
||||
columnValue: (row) => { if (row.right) { return '右行'; } else { return '左行'; } },
|
||||
tagType: (row) => { if (row.right) { return 'primary'; } else { return 'success'; } }
|
||||
},
|
||||
{
|
||||
title: this.$t('map.destination'),
|
||||
@ -98,17 +98,14 @@ export default {
|
||||
},
|
||||
{
|
||||
title: this.$t('map.remarks'),
|
||||
prop: 'remarks'
|
||||
prop: 'description'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('map.sectionData'),
|
||||
buttons: [
|
||||
{
|
||||
name: this.$t('map.preview'),
|
||||
handleClick: this.sectionDetail
|
||||
}
|
||||
]
|
||||
prop: 'parkSectionCodeList',
|
||||
type: 'tagMore',
|
||||
columnValue: (row) => { return this.handlerParkSectionCodeList(row.parkSectionCodeList); },
|
||||
tagType: 'primary'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
@ -159,6 +156,15 @@ export default {
|
||||
doClose() {
|
||||
this.show = false;
|
||||
},
|
||||
handlerParkSectionCodeList(parkSectionCodeList) {
|
||||
const nameList = [];
|
||||
this.sectionList.forEach(item => {
|
||||
if (parkSectionCodeList.includes(item.code)) {
|
||||
nameList.push(item.name);
|
||||
}
|
||||
});
|
||||
return nameList;
|
||||
},
|
||||
formatName(code) {
|
||||
let name = '';
|
||||
const device = this.$store.getters['map/getDeviceByCode'](code);
|
||||
@ -223,10 +229,10 @@ export default {
|
||||
const fieldList = {
|
||||
id: row.id,
|
||||
mapId: this.$route.params.mapId,
|
||||
title: '区段列表',
|
||||
title: '',
|
||||
name: row.name,
|
||||
model: {
|
||||
field: 'routingSectionList',
|
||||
field: 'parkSectionCodeList',
|
||||
items: [
|
||||
{ prop: 'stationCode', label: this.$t('map.stationCodeClomn'), type: 'text' },
|
||||
{
|
||||
|
@ -66,7 +66,7 @@
|
||||
<el-input v-model="addModel.destinationCode" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('map.routingDirection')" prop="directionCode">
|
||||
<el-select v-model="addModel.directionCode" clearable :filterable="true" :placeholder="$t('map.pleaseSelect')">
|
||||
<el-select v-model="addModel.right" clearable :filterable="true" :placeholder="$t('map.pleaseSelect')">
|
||||
<el-option
|
||||
v-for="item in DirectionCodeList"
|
||||
:key="item.value"
|
||||
@ -75,26 +75,11 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('map.remarksColon')" prop="remarks">
|
||||
<el-input v-model="addModel.remarks" type="textarea" :rows="4" :placeholder="$t('map.pleaseSelect')" />
|
||||
<el-form-item :label="$t('map.remarksColon')" prop="description">
|
||||
<el-input v-model="addModel.description" type="textarea" :rows="4" :placeholder="$t('map.pleaseSelect')" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('map.trafficSegmentData')" prop="routingSectionList">
|
||||
<div>
|
||||
<el-select v-model="stationCode" clearable :filterable="true" :placeholder="$t('map.pleaseSelect')">
|
||||
<el-option
|
||||
v-for="item in filterStationList"
|
||||
:key="item.code"
|
||||
:label="`${item.name}(${item.code})`"
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<el-button
|
||||
:type="field === 'routingStation' ? 'danger' : 'primary'"
|
||||
@click="hover('routingStation')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
</div>
|
||||
<div>
|
||||
<el-select v-model="sectionCode" clearable :filterable="true" :placeholder="$t('map.pleaseSelect')">
|
||||
<el-form-item :label="$t('map.trafficSegmentData')" prop="parkSectionCodeList">
|
||||
<el-select v-model="addModel.parkSectionCodeList" multiple>
|
||||
<el-option
|
||||
v-for="item in sectionList"
|
||||
:key="item.code"
|
||||
@ -102,41 +87,67 @@
|
||||
:value="item.code"
|
||||
/>
|
||||
</el-select>
|
||||
<el-button
|
||||
:type=" field === 'routingSection' ? 'danger' : 'primary'"
|
||||
@click="hover('routingSection')"
|
||||
>{{ $t('map.activate') }}</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="pushSection(addModel.routingSectionList, {stationCode: stationCode, sectionCode: sectionCode})"
|
||||
>
|
||||
{{ $t('map.add') }}
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table :data="addModel.routingSectionList" border style="width: 97%">
|
||||
<el-table-column prop="sectionCode" :label="$t('map.stationName')">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ formatName(scope.row.stationCode) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sectionCode" :label="$t('map.sectionName')">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ formatName(scope.row.sectionCode) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" :label="$t('map.operation')" width="50">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click.native.prevent="deleteSection(addModel.routingSectionList, scope.$index)"
|
||||
>
|
||||
{{ $t('map.remove') }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-button :type=" field === 'routingSection' ? 'danger' : 'primary'" @click="hover('routingSection')">{{ $t('map.activate') }}</el-button>
|
||||
</el-form-item>
|
||||
<!--<el-form-item :label="$t('map.trafficSegmentData')" prop="routingSectionList">-->
|
||||
<!--<div>-->
|
||||
<!--<el-select v-model="stationCode" clearable :filterable="true" :placeholder="$t('map.pleaseSelect')">-->
|
||||
<!--<el-option-->
|
||||
<!--v-for="item in filterStationList"-->
|
||||
<!--:key="item.code"-->
|
||||
<!--:label="`${item.name}(${item.code})`"-->
|
||||
<!--:value="item.code"-->
|
||||
<!--/>-->
|
||||
<!--</el-select>-->
|
||||
<!--<el-button-->
|
||||
<!--:type="field === 'routingStation' ? 'danger' : 'primary'"-->
|
||||
<!--@click="hover('routingStation')"-->
|
||||
<!-->{{ $t('map.activate') }}</el-button>-->
|
||||
<!--</div>-->
|
||||
<!--<div>-->
|
||||
<!--<el-select v-model="sectionCode" clearable :filterable="true" :placeholder="$t('map.pleaseSelect')">-->
|
||||
<!--<el-option-->
|
||||
<!--v-for="item in sectionList"-->
|
||||
<!--:key="item.code"-->
|
||||
<!--:label="`${item.name}(${item.code})`"-->
|
||||
<!--:value="item.code"-->
|
||||
<!--/>-->
|
||||
<!--</el-select>-->
|
||||
<!--<el-button-->
|
||||
<!--:type=" field === 'routingSection' ? 'danger' : 'primary'"-->
|
||||
<!--@click="hover('routingSection')"-->
|
||||
<!-->{{ $t('map.activate') }}</el-button>-->
|
||||
<!--<el-button-->
|
||||
<!--type="primary"-->
|
||||
<!--@click="pushSection(addModel.routingSectionList, {stationCode: stationCode, sectionCode: sectionCode})"-->
|
||||
<!-->-->
|
||||
<!--{{ $t('map.add') }}-->
|
||||
<!--</el-button>-->
|
||||
<!--</div>-->
|
||||
<!--<el-table :data="addModel.routingSectionList" border style="width: 97%">-->
|
||||
<!--<el-table-column prop="sectionCode" :label="$t('map.stationName')">-->
|
||||
<!--<template slot-scope="scope">-->
|
||||
<!--<span>{{ formatName(scope.row.stationCode) }}</span>-->
|
||||
<!--</template>-->
|
||||
<!--</el-table-column>-->
|
||||
<!--<el-table-column prop="sectionCode" :label="$t('map.sectionName')">-->
|
||||
<!--<template slot-scope="scope">-->
|
||||
<!--<span>{{ formatName(scope.row.sectionCode) }}</span>-->
|
||||
<!--</template>-->
|
||||
<!--</el-table-column>-->
|
||||
<!--<el-table-column fixed="right" :label="$t('map.operation')" width="50">-->
|
||||
<!--<template slot-scope="scope">-->
|
||||
<!--<el-button-->
|
||||
<!--type="text"-->
|
||||
<!--size="small"-->
|
||||
<!--@click.native.prevent="deleteSection(addModel.routingSectionList, scope.$index)"-->
|
||||
<!-->-->
|
||||
<!--{{ $t('map.remove') }}-->
|
||||
<!--</el-button>-->
|
||||
<!--</template>-->
|
||||
<!--</el-table-column>-->
|
||||
<!--</el-table>-->
|
||||
<!--</el-form-item>-->
|
||||
<el-form-item>
|
||||
<el-button-group>
|
||||
<el-button v-if="isSave" type="primary" size="small" :loading="loading" @click="save">{{ $t('map.save') }}
|
||||
@ -188,19 +199,19 @@ export default {
|
||||
sectionCode: '',
|
||||
isSave: true,
|
||||
loading: false,
|
||||
DirectionCodeList: this.$ConstSelect.DirectionCodeList,
|
||||
DirectionCodeList: [{label: '右行', value: true}, {label: '左行', value: false}],
|
||||
addModel: {
|
||||
name: '',
|
||||
mapId: '',
|
||||
code: '',
|
||||
directionCode: '',
|
||||
right: true,
|
||||
destinationCode: '',
|
||||
startStationCode: '',
|
||||
startSectionCode: '',
|
||||
endStationCode: '',
|
||||
endSectionCode: '',
|
||||
remarks: '',
|
||||
routingSectionList: []
|
||||
description: '',
|
||||
parkSectionCodeList: []
|
||||
},
|
||||
editShow: false,
|
||||
rules: {
|
||||
@ -293,7 +304,7 @@ export default {
|
||||
this.addModel.endSectionCode = selected.code;
|
||||
this.addModel.destinationCode = selected.destinationCode || '';
|
||||
} else if (selected._type.toUpperCase() === 'Section'.toUpperCase() && this.field.toUpperCase() == 'routingSection'.toUpperCase()) {
|
||||
this.sectionCode = selected.code;
|
||||
this.addModel.parkSectionCodeList.push(selected.code);
|
||||
} else if (selected._type.toUpperCase() === 'Station'.toUpperCase() && this.field.toUpperCase() == 'routingStation'.toUpperCase()) {
|
||||
this.stationCode = selected.code;
|
||||
}
|
||||
@ -313,9 +324,9 @@ export default {
|
||||
list.splice(index, 1);
|
||||
},
|
||||
buildModel(code) {
|
||||
this.addModel.routingSectionList.forEach((elem, index) => {
|
||||
elem['orderNum'] = index + 1;
|
||||
});
|
||||
// this.addModel.routingSectionList.forEach((elem, index) => {
|
||||
// elem['orderNum'] = index + 1;
|
||||
// });
|
||||
|
||||
const model = Object.assign({}, this.addModel);
|
||||
model['mapId'] = this.mapInfo.id;
|
||||
@ -360,7 +371,7 @@ export default {
|
||||
delete this.addModel.id;
|
||||
this.$refs.form.resetFields();
|
||||
this.addModel.mapId = this.mapInfo.id;
|
||||
this.addModel.routingSectionList = [];
|
||||
this.addModel.parkSectionCodeList = [];
|
||||
this.addModel.code = '';
|
||||
this.stationCode = '';
|
||||
this.sectionCode = '';
|
||||
|
Loading…
Reference in New Issue
Block a user