desc: 调整代码书写逻辑
This commit is contained in:
parent
1719292036
commit
fa3d0cb099
@ -551,5 +551,6 @@ export default {
|
||||
entryTurnout: 'Entry turnout',
|
||||
accessGate: 'Access gate',
|
||||
selectPhysicalSection: 'Please select the incoming physical sectio',
|
||||
actualLength: 'physical length'
|
||||
actualLength: 'physical length',
|
||||
verifyMapName: 'Map name repeated, you confirm that publishing this map will overwrite the public map?'
|
||||
};
|
||||
|
@ -546,6 +546,7 @@ export default {
|
||||
entryTurnout: '进路道岔数据',
|
||||
accessGate: '进路屏蔽门数据',
|
||||
selectPhysicalSection: '请选择进路物理区段数据',
|
||||
actualLength: '实际长度'
|
||||
actualLength: '实际长度',
|
||||
verifyMapName: '地图名称重复,您确认发布此地图将会覆盖公共地图?'
|
||||
|
||||
};
|
||||
|
@ -421,6 +421,7 @@ export default {
|
||||
.content{
|
||||
width: calc(100% - 80px);
|
||||
float: left;
|
||||
margin: 0;
|
||||
.el-icon-edit{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
@ -318,8 +318,11 @@ const map = {
|
||||
map: (state) => {
|
||||
return state.map;
|
||||
},
|
||||
safetyDoorList: (state) => {
|
||||
return state.map.safetyDoorList || [];
|
||||
psdList: (state) => {
|
||||
return state.map.psdList;
|
||||
},
|
||||
espList: (state) => {
|
||||
return state.map.espList;
|
||||
},
|
||||
lineCode: (state) => {
|
||||
if (state.map && state.map.skinVO) {
|
||||
|
@ -6,7 +6,7 @@ export function getBaseUrl() {
|
||||
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.41:9000'; // 张赛
|
||||
// BASE_API = 'http://192.168.3.82:9000'; // 杜康
|
||||
} else {
|
||||
BASE_API = process.env.VUE_APP_BASE_API;
|
||||
|
@ -14,119 +14,116 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { requestAnimationFrame, cancelRequestAnimFrame } from '@/utils/animation';
|
||||
// import { requestAnimationFrame, cancelRequestAnimFrame } from '@/utils/animation';
|
||||
|
||||
export default {
|
||||
name: 'ProgressBar',
|
||||
props: {
|
||||
type: {
|
||||
type: String,
|
||||
default() {
|
||||
return 'line';
|
||||
}
|
||||
},
|
||||
showText: {
|
||||
type: Boolean,
|
||||
default() {
|
||||
return true;
|
||||
}
|
||||
},
|
||||
textInside: {
|
||||
type: Boolean,
|
||||
default() {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
strokeWidth: {
|
||||
type: Number,
|
||||
default() {
|
||||
return 5;
|
||||
}
|
||||
},
|
||||
background: {
|
||||
type: String,
|
||||
default() {
|
||||
return 'rgba(0, 0, 0, 0.8)';
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
color: '#8e71c7',
|
||||
status: null,
|
||||
show: true,
|
||||
percentage: 0,
|
||||
fps: 30,
|
||||
then: null
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.percentage = this.randomNum();
|
||||
},
|
||||
methods: {
|
||||
randomNum() {
|
||||
return Math.ceil(Math.random() * 5) + 50;
|
||||
},
|
||||
run() {
|
||||
const now = +Date.now();
|
||||
const delta = now - this.then || +Date.now();
|
||||
const interval = 1000 / this.fps;
|
||||
|
||||
if (delta > interval) {
|
||||
this.then = now - (delta % interval);
|
||||
if (this.percentage < 90) {
|
||||
this.percentage = this.percentage + 5;
|
||||
} else {
|
||||
cancelRequestAnimFrame(this.run);
|
||||
}
|
||||
}
|
||||
|
||||
requestAnimationFrame(this.run);
|
||||
},
|
||||
start() {
|
||||
if (!this.show) {
|
||||
this.status = null;
|
||||
this.percentage = this.randomNum();
|
||||
this.show = true;
|
||||
this.run();
|
||||
}
|
||||
},
|
||||
end(isSuccess) {
|
||||
cancelRequestAnimFrame(this.run);
|
||||
if (this.show) {
|
||||
if (isSuccess) {
|
||||
this.success();
|
||||
} else {
|
||||
this.failed();
|
||||
}
|
||||
}
|
||||
},
|
||||
progressAt(num) {
|
||||
if (num > 0 && num < 100 && num > this.percentage) {
|
||||
this.percentage = num;
|
||||
}
|
||||
},
|
||||
success() {
|
||||
this.status = 'success';
|
||||
this.percentage = 100;
|
||||
setTimeout(() => {
|
||||
this.show = false;
|
||||
}, 1000 / this.fps);
|
||||
},
|
||||
failed() {
|
||||
this.status = 'exception';
|
||||
setTimeout(() => {
|
||||
this.show = false;
|
||||
}, 1000 / this.fps);
|
||||
}
|
||||
}
|
||||
name: 'ProgressBar',
|
||||
props: {
|
||||
type: {
|
||||
type: String,
|
||||
default() {
|
||||
return 'line';
|
||||
}
|
||||
},
|
||||
showText: {
|
||||
type: Boolean,
|
||||
default() {
|
||||
return true;
|
||||
}
|
||||
},
|
||||
textInside: {
|
||||
type: Boolean,
|
||||
default() {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
strokeWidth: {
|
||||
type: Number,
|
||||
default() {
|
||||
return 5;
|
||||
}
|
||||
},
|
||||
background: {
|
||||
type: String,
|
||||
default() {
|
||||
return 'rgba(0, 0, 0, 0.8)';
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
color: '#8e71c7',
|
||||
status: null,
|
||||
show: false,
|
||||
percentage: 0,
|
||||
fps: 30,
|
||||
then: null,
|
||||
timer: null
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.percentage = this.randomNum();
|
||||
this.start();
|
||||
},
|
||||
methods: {
|
||||
randomNum() {
|
||||
return Math.ceil(Math.random() * 5) + 20;
|
||||
},
|
||||
run() {
|
||||
this.timer = setInterval(() => {
|
||||
this.percentage = this.percentage + 3;
|
||||
// 加载到百分百完成
|
||||
if (this.percentage >= 95) {
|
||||
this.percentage = 95;
|
||||
// 关闭定时器
|
||||
clearInterval(this.timer);
|
||||
return;
|
||||
}
|
||||
}, 50);
|
||||
},
|
||||
start() {
|
||||
if (!this.show) {
|
||||
this.status = null;
|
||||
this.percentage = this.randomNum();
|
||||
this.show = true;
|
||||
this.run();
|
||||
}
|
||||
},
|
||||
end(isSuccess) {
|
||||
this.timer && clearInterval(this.timer);
|
||||
if (this.show) {
|
||||
if (isSuccess) {
|
||||
this.success();
|
||||
} else {
|
||||
this.failed();
|
||||
}
|
||||
}
|
||||
},
|
||||
progressAt(num) {
|
||||
if (num > 0 && num < 100 && num > this.percentage) {
|
||||
this.percentage = num;
|
||||
}
|
||||
},
|
||||
success() {
|
||||
this.status = 'success';
|
||||
this.percentage = 100;
|
||||
setTimeout(() => {
|
||||
this.show = false;
|
||||
}, 1000 / this.fps);
|
||||
},
|
||||
failed() {
|
||||
this.status = 'exception';
|
||||
setTimeout(() => {
|
||||
this.show = false;
|
||||
}, 1000 / this.fps);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
@import "src/styles/mixin.scss";
|
||||
|
||||
.progressShade {
|
||||
display: inline;
|
||||
z-index: 9998;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
@ -137,7 +134,6 @@ export default {
|
||||
|
||||
.progressBar {
|
||||
z-index: 9999;
|
||||
display: inline;
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
width: 50%;
|
||||
|
@ -125,7 +125,6 @@ export default {
|
||||
res = await listPublishMap({cityCode: filterSelect});
|
||||
}
|
||||
res.data && res.data.forEach(elem=>{
|
||||
// elem.children.find(n => { return n.name.includes("行调")})
|
||||
elem.children = [
|
||||
{
|
||||
id: '1',
|
||||
|
@ -59,7 +59,7 @@ export default {
|
||||
await this.initLoadData();
|
||||
},
|
||||
methods: {
|
||||
async initLoadData() {
|
||||
async initLoadData() { // 加载地图数据
|
||||
if (parseInt(this.mapId)) {
|
||||
await this.loadMapDataById(this.mapId);
|
||||
} else {
|
||||
|
@ -162,7 +162,6 @@ export default {
|
||||
});
|
||||
});
|
||||
}).catch(() => { });
|
||||
|
||||
},
|
||||
getMapOrigin() {
|
||||
const dataZoom = this.$store.state.map.dataZoom;
|
||||
|
@ -75,6 +75,21 @@ export default {
|
||||
publish() {
|
||||
this.loading = true;
|
||||
delete this.editModel.children;
|
||||
this.verifyMapName();
|
||||
},
|
||||
async verifyMapName() { // 校验地图名称是否唯一
|
||||
this.publishMap();
|
||||
},
|
||||
confirmPublish() {
|
||||
this.$confirm(this.$t('map.verifyMapName'), this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
cancelButtonText: this.$t('tip.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.publishMap();
|
||||
}).catch(() => { this.loading = false; });
|
||||
},
|
||||
publishMap() {
|
||||
publishMap(this.editModel).then(response => {
|
||||
this.loading = false;
|
||||
if (response.data && response.data.length) {
|
||||
@ -97,7 +112,7 @@ export default {
|
||||
});
|
||||
const dataList = this.formatJson(filterVal, arr);
|
||||
import('@/utils/Export2Excel').then(excel => {
|
||||
excel.export_json_to_excel([this.$t('map.datQuestion')], dataList, this.$t('map.dataList'));
|
||||
excel.export_json_to_excel([this.$t('map.datQuestion')], dataList, this.$t('map.dataList'));
|
||||
});
|
||||
},
|
||||
formatJson(filterVal, jsonData) {
|
||||
|
@ -7,7 +7,7 @@
|
||||
<el-form-item label="code" prop="code">
|
||||
<el-select v-model="editModel.code" clearable :filterable="true" @change="deviceChange">
|
||||
<el-option
|
||||
v-for="item in parkStandList"
|
||||
v-for="item in espList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
@ -80,7 +80,7 @@ export default {
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'map',
|
||||
'parkStandList',
|
||||
'espList',
|
||||
'stationStandList'
|
||||
])
|
||||
},
|
||||
@ -99,10 +99,10 @@ export default {
|
||||
this.display = true;
|
||||
const mapObject = this.map;
|
||||
if (mapObject) {
|
||||
if (mapObject.parkStandList && mapObject.parkStandList.length) {
|
||||
if (mapObject.espList && mapObject.espList.length) {
|
||||
this.display = false;
|
||||
} else {
|
||||
mapObject.parkStandList = [];
|
||||
mapObject.espList = [];
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -120,7 +120,7 @@ export default {
|
||||
},
|
||||
hasPSD(data) {
|
||||
let falg = false;
|
||||
this.map.parkStandList.forEach(item => {
|
||||
this.map.espList.forEach(item => {
|
||||
if (item.stationStandCode == data.code) {
|
||||
falg = true;
|
||||
}
|
||||
@ -143,7 +143,7 @@ export default {
|
||||
if (arr.length) {
|
||||
this.display = false;
|
||||
this.$message('创建完成');
|
||||
this.$store.dispatch('map/updateMapStandData', {models: arr, type: 'parkStandList'});
|
||||
this.$store.dispatch('map/updateMapStandData', {models: arr, type: 'espList'});
|
||||
this.deviceSelect();
|
||||
} else {
|
||||
this.$message('暂无车站');
|
@ -54,14 +54,14 @@
|
||||
/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="站台屏蔽门" class="tab_pane_box" name="safetyDoor">
|
||||
<safety-door-operate
|
||||
<psd-operate
|
||||
ref="routeOperate"
|
||||
:map-info="mapInfo"
|
||||
:selected="selected"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="站台紧急停车按钮" class="tab_pane_box" name="park">
|
||||
<park-operate
|
||||
<esp-operate
|
||||
ref="routeOperate"
|
||||
:map-info="mapInfo"
|
||||
:selected="selected"
|
||||
@ -79,8 +79,8 @@ import RoutingOperate from './routingoperate/index';
|
||||
import AutomaticOperate from './automaticoperate/index';
|
||||
import SwitchOperate from './switchoperate/index';
|
||||
import PathOperate from './pathoperate/index';
|
||||
import safetyDoorOperate from './safetyDoorOperate/index';
|
||||
import parkOperate from './parkOperate/index';
|
||||
import PsdOperate from './psdOperate/index';
|
||||
import EspOperate from './espOperate/index';
|
||||
|
||||
export default {
|
||||
name: 'DataRelation',
|
||||
@ -90,8 +90,8 @@ export default {
|
||||
AutomaticOperate,
|
||||
SwitchOperate,
|
||||
PathOperate,
|
||||
safetyDoorOperate,
|
||||
parkOperate
|
||||
PsdOperate,
|
||||
EspOperate
|
||||
},
|
||||
props: {
|
||||
selected: {
|
||||
|
@ -7,7 +7,7 @@
|
||||
<el-form-item label="code" prop="code">
|
||||
<el-select v-model="editModel.code" clearable :filterable="true" @change="deviceChange">
|
||||
<el-option
|
||||
v-for="item in safetyDoorList"
|
||||
v-for="item in psdList"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
@ -80,7 +80,7 @@ export default {
|
||||
computed: {
|
||||
...mapGetters('map', [
|
||||
'map',
|
||||
'safetyDoorList',
|
||||
'psdList',
|
||||
'stationStandList'
|
||||
])
|
||||
},
|
||||
@ -99,10 +99,10 @@ export default {
|
||||
this.display = true;
|
||||
const mapObject = this.map;
|
||||
if (mapObject) {
|
||||
if (mapObject.safetyDoorList && mapObject.safetyDoorList.length) {
|
||||
if (mapObject.psdList && mapObject.psdList.length) {
|
||||
this.display = false;
|
||||
} else {
|
||||
mapObject.safetyDoorList = [];
|
||||
mapObject.psdList = [];
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -120,7 +120,7 @@ export default {
|
||||
},
|
||||
hasPSD(data) {
|
||||
let falg = false;
|
||||
this.map.safetyDoorList.forEach(item => {
|
||||
this.map.psdList.forEach(item => {
|
||||
if (item.stationStandCode == data.code) {
|
||||
falg = true;
|
||||
}
|
||||
@ -143,7 +143,7 @@ export default {
|
||||
if (arr.length) {
|
||||
this.display = false;
|
||||
this.$message('创建完成');
|
||||
this.$store.dispatch('map/updateMapStandData', {models: arr, type: 'safetyDoorList'});
|
||||
this.$store.dispatch('map/updateMapStandData', {models: arr, type: 'psdList'});
|
||||
this.deviceSelect();
|
||||
} else {
|
||||
this.$message('暂无车站');
|
@ -159,35 +159,35 @@ export default {
|
||||
}
|
||||
},
|
||||
handleSelectControlPage (model) {
|
||||
if (this.$refs && this.$refs.mapOperate) {
|
||||
if (this.$refs.mapOperate) {
|
||||
this.$refs.mapOperate.handleSelectControlPage(model);
|
||||
this.$store.dispatch('menuOperation/setMapDrawSelectCount');
|
||||
}
|
||||
},
|
||||
handleSelectView(handle) {
|
||||
if (this.$refs && this.$refs.jlmapVisual) {
|
||||
if (this.$refs.jlmapVisual) {
|
||||
this.$refs.jlmapVisual.setLayerVisible(handle);
|
||||
}
|
||||
},
|
||||
handleSelectLogicalView(handle) {
|
||||
if (this.$refs && this.$refs.jlmapVisual) {
|
||||
if (this.$refs.jlmapVisual) {
|
||||
this.$refs.jlmapVisual.setLevelVisible(handle);
|
||||
}
|
||||
},
|
||||
handleSelectPhysicalView(handle) {
|
||||
if (this.$refs && this.$refs.jlmapVisual) {
|
||||
if (this.$refs.jlmapVisual) {
|
||||
this.$refs.jlmapVisual.setLevelVisible(handle);
|
||||
}
|
||||
},
|
||||
handleSelectHybridView(handle) {
|
||||
if (this.$refs && this.$refs.jlmapVisual) {
|
||||
if (this.$refs.jlmapVisual) {
|
||||
this.$refs.jlmapVisual.setLevelVisible(handle);
|
||||
}
|
||||
},
|
||||
clickEvent(em) {
|
||||
var device = this.getDeviceByEm(em);
|
||||
this.onSelect(device);
|
||||
if (this.$refs.dataRelation) {
|
||||
if (this.$refs.dataRelation && this.viewDraft != 'draft') {
|
||||
this.$refs.dataRelation.setSelected(device);
|
||||
}
|
||||
},
|
||||
@ -213,24 +213,27 @@ export default {
|
||||
this.$store.dispatch('menuOperation/setPopMenu', { position: this.point, menu: menu });
|
||||
}
|
||||
},
|
||||
saveMapEvent() {
|
||||
if (this.$refs.jlmapVisual) {
|
||||
const map = this.$store.state.map.map;
|
||||
if (map && parseInt(this.$route.params.mapId)) {
|
||||
for (const i in map.sectionList) {
|
||||
if (map.sectionList[i].points.length > 0) {
|
||||
for (let index = 0; index < map.sectionList[i].points.length; index++) {
|
||||
if (String(map.sectionList[i].points[index].x) == 'undefined' || String(map.sectionList[i].points[index].y) == 'undefined') {
|
||||
this.$messageBox(this.$t('tip.sectionPointsDeficiency'));
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.$messageBox(this.$t('tip.sectionPointsDeficiency'));
|
||||
return;
|
||||
verifySectionPoint(map) { // 校验区段坐标不为空
|
||||
let flag = true;
|
||||
map.sectionList.forEach(elem => {
|
||||
if (elem.points.length > 0) {
|
||||
for (let index = 0; index < elem.points.length; index++) {
|
||||
if (String(elem.points[index].x) == 'undefined' || String(elem.points[index].y) == 'undefined') {
|
||||
this.$message(`${elem.name}${this.$t('tip.sectionPointsDeficiency')}`);
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
this.$message(this.$t('tip.sectionPointsDeficiency'));
|
||||
flag = false;
|
||||
}
|
||||
});
|
||||
return flag;
|
||||
},
|
||||
saveMapEvent() { // 保存地图
|
||||
const map = this.$store.state.map.map;
|
||||
if (this.$refs.jlmapVisual && map && parseInt(this.$route.params.mapId)) {
|
||||
if (this.verifySectionPoint(map)) {
|
||||
this.mapSaveing = true;
|
||||
this.$store.dispatch('map/saveMapDeviceDefaultRelations').then(() => {
|
||||
saveMap(Object.assign(map, { mapId: this.$route.params.mapId })).then(response => {
|
||||
@ -317,7 +320,7 @@ export default {
|
||||
createMap() {
|
||||
this.$refs.mapCreate.show();
|
||||
},
|
||||
importf() {
|
||||
importf() { // 导入地图jsons数据
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '正在导入中...',
|
||||
|
@ -33,6 +33,7 @@ export default {
|
||||
labelWidth: '100px',
|
||||
items: [
|
||||
{ prop: 'name', label: '参数名', type: 'text' }
|
||||
// { prop: 'name', label: '参数名', type: 'select', options: this.taskStatusList }
|
||||
]
|
||||
};
|
||||
return form;
|
||||
@ -40,7 +41,7 @@ export default {
|
||||
rules() {
|
||||
return {
|
||||
name: [
|
||||
{ required: true, message: '请输入内容', trigger: 'blur' }
|
||||
{ required: true, message: '请选择', trigger: 'change' }
|
||||
]
|
||||
};
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user