diff --git a/src/api/management/user.js b/src/api/management/user.js
index 440875834..a510deb0c 100644
--- a/src/api/management/user.js
+++ b/src/api/management/user.js
@@ -178,3 +178,12 @@ export function getBindWxQrCodeUrl() {
method: 'get'
});
}
+
+// 绑定单位
+export function bindCompany(data) {
+ return request({
+ url: `/api/company/bind/company?${data}`,
+ method: 'put'
+ });
+}
+
diff --git a/src/i18n/langs/en/map.js b/src/i18n/langs/en/map.js
index 15ce722a0..611dd80c9 100644
--- a/src/i18n/langs/en/map.js
+++ b/src/i18n/langs/en/map.js
@@ -569,11 +569,9 @@ export default {
signalSectionSuccessful: 'Signal close section created successfully!',
signalSectionUpdateSucceeded: 'Update signal close to section successful!',
- crossCoding:'Cross code',
crossName:'Cross name',
- relateSwitchList:'Related switchList',
+ relateSectionList:'Related sectionList',
cross:'cross',
- generateCross:'generate cross',
belongsSection: 'Belongs section:',
coordinateMode: 'Coordinate mode',
diff --git a/src/i18n/langs/en/rules.js b/src/i18n/langs/en/rules.js
index d9ef1226a..f71c83cdd 100644
--- a/src/i18n/langs/en/rules.js
+++ b/src/i18n/langs/en/rules.js
@@ -25,9 +25,7 @@ export default {
linkSelectName: 'Enter the Link name',
linkSelectDisplayLength: 'Please enter the actual length of the Link',
- pleaseSelectCross:'Please select cross',
pleaseInputCrossName:'Please input cross name',
- pleaseSelectSwitch:'Please select switch',
lengthShow: 'According to the length of the:',
lengthFact: 'The real length:',
diff --git a/src/i18n/langs/zh/map.js b/src/i18n/langs/zh/map.js
index b4b252df7..b2cee0a22 100644
--- a/src/i18n/langs/zh/map.js
+++ b/src/i18n/langs/zh/map.js
@@ -563,11 +563,9 @@ export default {
interlockingBlocks: '联锁区段',
alwaysRed: '是否总是显示红灯',
- crossCoding:'岔心编号',
crossName:'岔心名称',
- relateSwitchList:'关联道岔',
+ relateSectionList:'关联区段',
cross:'岔心',
- generateCross:'一键生成岔心',
belongsSection: '所属区段:',
coordinateMode: '坐标方式',
diff --git a/src/i18n/langs/zh/rules.js b/src/i18n/langs/zh/rules.js
index 42b83ff4a..b38c1dcd6 100644
--- a/src/i18n/langs/zh/rules.js
+++ b/src/i18n/langs/zh/rules.js
@@ -24,9 +24,7 @@ export default {
linkSelectName: '请输入Link名称',
linkSelectDisplayLength: '请输入Link实际长度',
- pleaseSelectCross:'请选择岔心',
pleaseInputCrossName:'请输入岔心名称',
- pleaseSelectSwitch:'请选择道岔',
lengthShow: '显示长度:',
lengthFact: '真实长度:',
diff --git a/src/jlmap3d/jl3dtrafficplan/sandbox/sandboxconnect.js b/src/jlmap3d/jl3dtrafficplan/sandbox/sandboxconnect.js
index 764f53d7f..1c7371430 100644
--- a/src/jlmap3d/jl3dtrafficplan/sandbox/sandboxconnect.js
+++ b/src/jlmap3d/jl3dtrafficplan/sandbox/sandboxconnect.js
@@ -116,7 +116,9 @@ export function sandBoxConnect(manager,routegroup,section,signal,station,train )
train.trainGroup.add(train.trainlist[data.body[i].code]);
}else{
let realprogress = section.topSectionList[data.body[i].section].leftProgress+(section.topSectionList[data.body[i].section].rightProgress - section.topSectionList[data.body[i].section].leftProgress)*data.body[i].offset;
- train.trainlist[data.body[i].code].position.copy(manager.topCurve.getPoint(realprogress));
+ let realpos = manager.topCurve.getPoint(realprogress);
+ train.trainlist[data.body[i].code].position.x = realpos.x;
+ train.trainlist[data.body[i].code].position.z = realpos.z;
train.trainlist[data.body[i].code].up = new THREE.Vector3(1,0,0);
let tangent = manager.topCurve.getTangentAt(realprogress).normalize();
@@ -144,7 +146,10 @@ export function sandBoxConnect(manager,routegroup,section,signal,station,train )
}else{
let realprogress = section.downSectionList[data.body[i].section].leftProgress +(section.downSectionList[data.body[i].section].rightProgress - section.downSectionList[data.body[i].section].leftProgress)*data.body[i].offset;
- train.trainlist[data.body[i].code].position.copy(manager.downCurve.getPoint(realprogress));
+ let realpos = manager.downCurve.getPoint(realprogress);
+ train.trainlist[data.body[i].code].position.x = realpos.x;
+ train.trainlist[data.body[i].code].position.z = realpos.z;
+
train.trainlist[data.body[i].code].up = new THREE.Vector3(-1,0,0);
let tangent = manager.downCurve.getTangentAt(realprogress).normalize();
diff --git a/src/jlmap3d/jl3dtrafficplan/sandbox/signalmodel.js b/src/jlmap3d/jl3dtrafficplan/sandbox/signalmodel.js
index 1e416fd90..42afa1b83 100644
--- a/src/jlmap3d/jl3dtrafficplan/sandbox/signalmodel.js
+++ b/src/jlmap3d/jl3dtrafficplan/sandbox/signalmodel.js
@@ -23,6 +23,15 @@ export function signalModel(scene) {
newsignal.position.copy(downCurve.getPoint(downData[j].leftProgress));
+ newsignal.up = new THREE.Vector3(1,0,0);
+ newsignal.axis = new THREE.Vector3();
+ let tangent = downCurve.getTangentAt(downData[j].leftProgress).normalize();
+ newsignal.axis.crossVectors(newsignal.up, tangent).normalize();
+ let radians = Math.acos(newsignal.up.dot(tangent));
+ newsignal.quaternion.setFromAxisAngle(newsignal.axis, radians);
+
+
+
scene.add( newsignal );
j = downData.length;
}
diff --git a/src/jlmap3d/jl3dtrafficplan/sandbox/trainmodel.js b/src/jlmap3d/jl3dtrafficplan/sandbox/trainmodel.js
index 130989847..c0fa4c3f7 100644
--- a/src/jlmap3d/jl3dtrafficplan/sandbox/trainmodel.js
+++ b/src/jlmap3d/jl3dtrafficplan/sandbox/trainmodel.js
@@ -11,9 +11,11 @@ export function trainModel(scene) {
var trainBox = new THREE.Mesh( geometry, material );
trainBox.code = trainData[i].code;
trainBox.groupNumber = trainData[i].groupNumber;
+
trainBox.dispose = false;
trainBox.up = new THREE.Vector3(1, 0, 0);
trainBox.axis = new THREE.Vector3();
+ trainBox.position.y = 5;
scope.trainlist[trainData[i].groupNumber] = trainBox;
}
}
diff --git a/src/jmapNew/config/skinCode/nanjing_02.js b/src/jmapNew/config/skinCode/nanjing_02.js
index fed2cefc6..0a6ffbb43 100644
--- a/src/jmapNew/config/skinCode/nanjing_02.js
+++ b/src/jmapNew/config/skinCode/nanjing_02.js
@@ -829,6 +829,14 @@ class SkinCode extends defaultStyle {
fontOffsetY: 24
};
+ // /** 岔心 */
+ // this[deviceType.Cross] = {
+ // centerSquare:{
+ // defaultColor:'#fff'
+ // }
+
+ // };
+
this[deviceType.Responder] = {
block: {
mapStyle: {
diff --git a/src/jmapNew/constant/deviceRender.js b/src/jmapNew/constant/deviceRender.js
index 86c379333..7f006507b 100644
--- a/src/jmapNew/constant/deviceRender.js
+++ b/src/jmapNew/constant/deviceRender.js
@@ -275,4 +275,5 @@ deviceRender[deviceType.Responder] = {
_type: deviceType.Responder,
zlevel: 1
};
+
export default deviceRender;
diff --git a/src/jmapNew/constant/deviceState.js b/src/jmapNew/constant/deviceState.js
index ba5e12852..6e91feba0 100644
--- a/src/jmapNew/constant/deviceState.js
+++ b/src/jmapNew/constant/deviceState.js
@@ -253,5 +253,5 @@ deviceState[deviceType.Train] = {
};
deviceState[deviceType.Responder] = {
-}
+};
export default deviceState;
diff --git a/src/jmapNew/shape/Cross/index.js b/src/jmapNew/shape/Cross/index.js
new file mode 100644
index 000000000..5ec05182c
--- /dev/null
+++ b/src/jmapNew/shape/Cross/index.js
@@ -0,0 +1,95 @@
+import Group from 'zrender/src/container/Group';
+import Polyline from 'zrender/src/graphic/shape/Polyline';
+
+export default class Cross extends Group {
+ // _type: 'Cross',
+ // code: getUID('Cross', this.crossList),
+ // position:each.position,
+ // relatedSwitch:each.relatedSwitch
+ constructor(model, style) {
+ super();
+ this._code = model.code;
+ this._type = model._type;
+ this.zlevel = model.zlevel;
+ this.z = 0;
+ this.model = model;
+ this.style = style;
+ this.isShowShape = true;
+ this.create();
+ this.setState(model);
+ }
+
+ create() {
+ const model = this.model;
+ // position;
+ // relatedSwitch;
+ // model.position.x,
+ // model.position.y,
+ // const relatedSwitchList = model.relatedSwitch;
+ const offset = this.style.Section.line.width / (2 * 0.7071);
+ const points = [
+ [model.position.x, model.position.y + offset],
+ [model.position.x + offset, model.position.y + offset],
+ [model.position.x, model.position.y + 2 * offset],
+ [model.position.x - offset, model.position.y + offset],
+ [model.position.x, model.position.y + offset]
+ ];
+ this.centerSquare = new Polyline({
+ zlevel: this.zlevel,
+ z:this.z + 1,
+ shape: {
+ points:points
+ },
+ style: {
+ stroke: this.style.Cross.centerSquare.defaultColor,
+ fill:this.style.Cross.centerSquare.defaultColor
+ }
+ });
+ this.add(this.centerSquare);
+ // let relatedSwitchList[0].sectionCCode
+ // if (model && model.points.length > 1) {
+ // const points = [];
+ // const modelPoints = model.points;
+ // const length = modelPoints.length;
+ // for (let i = 0; i < length; i++) {
+ // points.push([modelPoints[i].x, modelPoints[i].y]);
+ // }
+ // this.segment = new Polyline({
+ // zlevel: this.zlevel,
+ // z:this.z,
+ // shape: {
+ // points:points
+ // },
+ // style: {
+ // lineWidth: model.width,
+ // stroke: model.lineColor || this.style.lineColor
+ // }
+ // });
+ // this.add(this.segment);
+ // }
+ }
+
+ setLineType(type) {
+ switch (type) {
+ case '01': break;
+ case '02':
+ this.segment && this.segment.setStyle('lineDash', this.style.lineDash || [4]);
+ break;
+ }
+ }
+
+ setState(model) {
+ if (!this.isShowShape) return;
+ this.setLineType(model.type);
+ }
+ setShowStation(stationCode) {
+ if (!stationCode || this.model.stationCode === stationCode) {
+ this.segment && this.segment.show();
+ this.isShowShape = true;
+ this.setState(this.model);
+ } else {
+ this.segment && this.segment.hide();
+ this.isShowShape = false;
+ }
+ }
+}
diff --git a/src/jmapNew/shape/Responder/index.js b/src/jmapNew/shape/Responder/index.js
index bbb820874..2079e186b 100644
--- a/src/jmapNew/shape/Responder/index.js
+++ b/src/jmapNew/shape/Responder/index.js
@@ -17,9 +17,9 @@ export default class Responder extends Group {
this.isShowShape = true;
this.z = model.zIndex || 1;
if (model.previewOrMapDraw) {
- this.create();
- this.setState(model);
- }
+ this.create();
+ this.setState(model);
+ }
}
create() {
diff --git a/src/jmapNew/shape/Section/ELines.js b/src/jmapNew/shape/Section/ELines.js
index b616dbadb..75af88b23 100644
--- a/src/jmapNew/shape/Section/ELines.js
+++ b/src/jmapNew/shape/Section/ELines.js
@@ -21,6 +21,9 @@ export default class ELines extends Group {
if ((model.type == '01' && (!model.logicSectionCodeList || !model.logicSectionCodeList.length)) || model.type == '02' || model.type == '03') {
this.createLine();
}
+ if (model.type == '05') {
+
+ }
}
createLine() {
diff --git a/src/jmapNew/shape/Section/index.js b/src/jmapNew/shape/Section/index.js
index 1d779fa73..c39fab5b2 100644
--- a/src/jmapNew/shape/Section/index.js
+++ b/src/jmapNew/shape/Section/index.js
@@ -34,7 +34,7 @@ export default class Section extends Group {
}
create() {
- // 区段type 01计轴区段;02逻辑区段;03道岔区段 04道岔计轴区段
+ // 区段type 01计轴区段;02逻辑区段;03道岔区段 04道岔计轴区段 05 岔心
// 站台所有的绘图元素
const elementTypeList = {
'name': ETextName, // 区段名称
diff --git a/src/jmapNew/theme/xian_02/menus/menuCancel.vue b/src/jmapNew/theme/xian_02/menus/menuCancel.vue
index 5099dc1ec..9d9fe17de 100644
--- a/src/jmapNew/theme/xian_02/menus/menuCancel.vue
+++ b/src/jmapNew/theme/xian_02/menus/menuCancel.vue
@@ -26,105 +26,105 @@ export default {
label: '发送',
handler: this.sendRequestList
},
- {
- label: '取消',
- handler: this.undeveloped
- },
- {
- label: '全部扣车',
- children: [
- {
- label: '正线上全部扣车',
- handler: this.undeveloped
- }
- ]
- },
- {
- label: '全部发车',
- children: [
- {
- label: '缓解正线所有列车',
- handler: this.undeveloped
- }
- ]
- },
- {
- label: '停止所有列车',
- children: [
- {
- label: '停止正线所有列车',
- handler: this.undeveloped
- }
- ]
- },
+ // {
+ // label: '取消',
+ // handler: this.undeveloped
+ // },
+ // {
+ // label: '全部扣车',
+ // children: [
+ // {
+ // label: '正线上全部扣车',
+ // handler: this.undeveloped
+ // }
+ // ]
+ // },
+ // {
+ // label: '全部发车',
+ // children: [
+ // {
+ // label: '缓解正线所有列车',
+ // handler: this.undeveloped
+ // }
+ // ]
+ // },
+ // {
+ // label: '停止所有列车',
+ // children: [
+ // {
+ // label: '停止正线所有列车',
+ // handler: this.undeveloped
+ // }
+ // ]
+ // },
{
label: '车站选择',
children: []
- },
- {
- label: '列车选择',
- handler: this.undeveloped
- },
- {
- label: '缩放',
- handler: this.undeveloped
- },
- {
- label: '显示控制',
- children: [
- {
- label: '正线及车辆段',
- handler: this.undeveloped
- },
- {
- label: '列车信息',
- handler: this.undeveloped
- }
- ]
- },
- {
- label: '下一窗口',
- handler: this.undeveloped
- },
- {
- label: '上一窗口',
- handler: this.undeveloped
- },
- {
- label: '激活所有菜单',
- children: [
- {
- label: '确认',
- handler: this.undeveloped
- }
- ]
- },
- {
- label: '恢复激活菜单',
- handler: this.undeveloped
- },
- {
- label: '进路模式 - 授权车站',
- children: [
- {
- label: '自动',
- handler: this.undeveloped
- },
- {
- label: '人工',
- handler: this.undeveloped
- }
- ]
- },
- {
- label: '列车报警确认',
- children: [
- {
- label: '列车完整性报警确认',
- handler: this.undeveloped
- }
- ]
}
+ // {
+ // label: '列车选择',
+ // handler: this.undeveloped
+ // },
+ // {
+ // label: '缩放',
+ // handler: this.undeveloped
+ // },
+ // {
+ // label: '显示控制',
+ // children: [
+ // {
+ // label: '正线及车辆段',
+ // handler: this.undeveloped
+ // },
+ // {
+ // label: '列车信息',
+ // handler: this.undeveloped
+ // }
+ // ]
+ // },
+ // {
+ // label: '下一窗口',
+ // handler: this.undeveloped
+ // },
+ // {
+ // label: '上一窗口',
+ // handler: this.undeveloped
+ // },
+ // {
+ // label: '激活所有菜单',
+ // children: [
+ // {
+ // label: '确认',
+ // handler: this.undeveloped
+ // }
+ // ]
+ // },
+ // {
+ // label: '恢复激活菜单',
+ // handler: this.undeveloped
+ // },
+ // {
+ // label: '进路模式 - 授权车站',
+ // children: [
+ // {
+ // label: '自动',
+ // handler: this.undeveloped
+ // },
+ // {
+ // label: '人工',
+ // handler: this.undeveloped
+ // }
+ // ]
+ // },
+ // {
+ // label: '列车报警确认',
+ // children: [
+ // {
+ // label: '列车完整性报警确认',
+ // handler: this.undeveloped
+ // }
+ // ]
+ // }
]
};
},
@@ -174,7 +174,7 @@ export default {
};
},
initMenu() {
- this.menuNormal[5].children = this.initStationList();
+ this.menuNormal[1].children = this.initStationList();
this.menu = this.menuNormal;
},
doShow(point) {
diff --git a/src/router/index.js b/src/router/index.js
index ed9cb433b..3cae3f850 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -140,6 +140,7 @@ const MessageBoard = () => import('@/views/messageBoard/index');
const BoardManage = () => import('@/views/messageBoard/manage');
const DraftLessonManage = () => import('@/views/teach/draftLessonManage');
const OrganizationManage = () => import('@/views/organization/index');
+const RunPlanViewWindow = () => import('@/views/newMap/displayNew/demon/runPlanViewWindow');
// import { GenerateRouteProjectList } from '@/scripts/ProjectConfig';
// import { getSessionStorage } from '@/utils/auth';
@@ -232,6 +233,11 @@ export const constantRoutes = [
component: PlanMonitorEditAUSTool,
hidden: true
},
+ {
+ path: '/runPlanViewWindow',
+ component: RunPlanViewWindow,
+ hidden: true
+ },
{
path: '/jlmap3d/sandbox',
component: Jlmap3dSandbox,
diff --git a/src/views/demonstration/detail/index.vue b/src/views/demonstration/detail/index.vue
index e01874c67..ae6cc63dd 100644
--- a/src/views/demonstration/detail/index.vue
+++ b/src/views/demonstration/detail/index.vue
@@ -16,7 +16,7 @@
{{ $t('global.distributePermission') }}
- {{ $t('demonstration.startSimulation') }}
+ {{ $t('demonstration.startSimulation') }}
@@ -78,9 +78,6 @@ export default {
isComprehensive() {
return this.courseModel.prdType === '03';
},
- isStartDemon() {
- return (this.hasPermssion || this.tryTime > 0);
- },
mapId() {
return this.$route.query.mapId;
},
@@ -173,7 +170,11 @@ export default {
this.$router.push({ path: `/jointTrainingNew`, query: query });
launchFullscreen();
}).catch(error => {
- this.$messageBox(this.$t('error.createSimulationFailed') + error.message);
+ if (error.code == 10003) {
+ this.$messageBox(this.$t('error.createSimulationFailed') + ':您的仿真权限不足!');
+ } else {
+ this.$messageBox(this.$t('error.createSimulationFailed') + error.message);
+ }
this.disabled = false;
});
},
@@ -188,6 +189,11 @@ export default {
this.$router.push({ path: `/displayIscs/system`, query: query });
}
} catch (error) {
+ if (error.code == 10003) {
+ this.$messageBox(this.$t('error.createSimulationFailed') + ':您的仿真权限不足!');
+ } else {
+ this.$messageBox(this.$t('error.createSimulationFailed') + error.message);
+ }
this.disabled = false;
}
},
@@ -200,7 +206,11 @@ export default {
}
this.$router.push({ path: `/displayBigScreen/${this.courseModel.mapId}`, query: query });
}).catch(error => {
- this.$messageBox(this.$t('error.createSimulationFailed') + error.message);
+ if (error.code == 10003) {
+ this.$messageBox(this.$t('error.createSimulationFailed') + ':您的仿真权限不足!');
+ } else {
+ this.$messageBox(this.$t('error.createSimulationFailed') + error.message);
+ }
this.disabled = false;
});
},
@@ -220,7 +230,11 @@ export default {
this.$router.push({ path: `${UrlConfig.displayNew}/demon`, query: query });
launchFullscreen();
}).catch(error=>{
- this.$messageBox(this.$t('error.createSimulationFailed') + error.message);
+ if (error.code == 10003) {
+ this.$messageBox(this.$t('error.createSimulationFailed') + ':您的仿真权限不足!');
+ } else {
+ this.$messageBox(this.$t('error.createSimulationFailed') + error.message);
+ }
this.disabled = false;
});
},
diff --git a/src/views/exam/detail/courseDetail.vue b/src/views/exam/detail/courseDetail.vue
index 6f5940450..3403067b4 100644
--- a/src/views/exam/detail/courseDetail.vue
+++ b/src/views/exam/detail/courseDetail.vue
@@ -46,7 +46,7 @@
{{ $t('exam.distributePermission') }}
- {{ $t('exam.viewCoursePapers') }}
+ {{ $t('exam.viewCoursePapers') }}
{{ $t('exam.returnCourseList') }}
退出
@@ -59,6 +59,7 @@ import { UrlConfig } from '@/scripts/ConstDic';
import LimitList from '@/views/components/limits/index';
import { getSessionStorage } from '@/utils/auth';
import localStore from 'storejs';
+import { superAdmin, admin } from '@/router/index';
export default {
name: 'ExamDetailView',
@@ -111,6 +112,12 @@ export default {
});
}
return sumRemains >= 10;
+ },
+ isShowPaper() {
+ return this.$store.state.user.companyId && this.$store.state.user.companyAdmin;
+ },
+ isAdmin() {
+ return this.$store.state.user.roles.includes(admin) || this.$store.state.user.roles.includes(superAdmin);
}
// height() {
// return this.$route.query.noPreLogout ? this.$store.state.app.height : this.$store.state.app.height - 91;
@@ -141,7 +148,7 @@ export default {
treeList: resp.data.examDefinitionList,
systemFault: resp.data.systemFault
};
- if (this.hasPermssion) {
+ if (this.hasPermssion || resp.data.available) {
this.valid = true;
}
}
@@ -169,16 +176,12 @@ export default {
},
checkCourse() {
this.loading = true;
- if (this.isAddRule) {
- const path = `${this.$route.path.match(/(\/.*)\/course/)[1]}${UrlConfig.examRuleManage}`;
- this.$router.push({
- path: path,
- query: { lessonId: this.courseModel.id },
- noPreLogout: this.$route.query.noPreLogout
- });
- } else {
- this.$messageBox(this.$t('tip.notViewTheCoursePaper'));
- }
+ const path = `${this.$route.path.match(/(\/.*)\/course/)[1]}${UrlConfig.examRuleManage}`;
+ this.$router.push({
+ path: path,
+ query: { lessonId: this.courseModel.id },
+ noPreLogout: this.$route.query.noPreLogout
+ });
},
distribute() { // 分发
this.disabled = true;
diff --git a/src/views/jlmap3d/trafficplan/component/textui.vue b/src/views/jlmap3d/trafficplan/component/textui.vue
index 8b75eff2f..c5fcca9f8 100644
--- a/src/views/jlmap3d/trafficplan/component/textui.vue
+++ b/src/views/jlmap3d/trafficplan/component/textui.vue
@@ -6,6 +6,49 @@
'left': uiLeft,
'display': uiDisplay,
}">
+
+ 设备信息
+
+
+
+
+
+ 列车编号:{{selectmodel.code}}
+
+
+ 速度:{{selectmodel.v}}
+
+
+ 行进方向:{{selectmodel.right}}
+
+
+ 车内人数:{{selectmodel.num}}
+
+
+ 左侧车门:{{selectmodel.leftdoor}}
+
+
+ 右侧车门:{{selectmodel.rightdoor}}
+
+
+
+
+ 车站:{{selectmodel.name}}
+
+
+ 上行站台人数:{{selectmodel.topnum}}
+
+
+ 下行站台人数:{{selectmodel.downnum}}
+
+
+ 上行车门:{{selectmodel.topdoor}}
+
+
+ 下行车门:{{selectmodel.downdoor}}
+
+
+
@@ -26,6 +69,14 @@ export default {
uiDisplay:'none',
uiTop:'0px',
uiLeft:'0px',
+ selectmodel:{
+ code:"asd123",
+ v:"80km/h",
+ right:"上行",
+ num:100,
+ leftdoor:"关闭",
+ rightdoor:"关闭"
+ },
}
},
beforeDestroy() {
@@ -63,4 +114,37 @@ export default {
background-size:100%;
// display:none;
}
+.text {
+ font-size: 8px;
+ color:#ffffff;
+ }
+
+ .item {
+ margin-top: 5px;
+ margin-bottom: 5px;
+ margin-left: 10px;
+ }
+
+ .clearfix:before,
+ .clearfix:after {
+ display: table;
+ content: "";
+ }
+ .clearfix:after {
+ clear: both
+ }
+ .box-title{
+ position: absolute;
+ top:20px;
+ left:7px;
+ width: 120px;
+ text-align: center;
+ }
+ .box-card {
+ position: absolute;
+ top:45px;
+ left:7px;
+ width: 136px;
+ background-color:rgba(0,0,0,0);
+ }
diff --git a/src/views/newMap/displayNew/demon/runPlanViewWindow.vue b/src/views/newMap/displayNew/demon/runPlanViewWindow.vue
new file mode 100644
index 000000000..6b7139952
--- /dev/null
+++ b/src/views/newMap/displayNew/demon/runPlanViewWindow.vue
@@ -0,0 +1,564 @@
+
+
+
+
+
+
diff --git a/src/views/newMap/jointTrainingNew/index.vue b/src/views/newMap/jointTrainingNew/index.vue
index cff579b55..8d13e8196 100644
--- a/src/views/newMap/jointTrainingNew/index.vue
+++ b/src/views/newMap/jointTrainingNew/index.vue
@@ -352,7 +352,7 @@ export default {
let resp = {data: {}};
resp = await this.getUserRole();
if (resp && resp.code == 200) {
- this.setSimulationPrdType();
+ this.setSimulationPrdType(resp.data.deviceCode);
}
loadMapDataById(this.mapId, 'simulation');
} else {
@@ -362,6 +362,7 @@ export default {
// 设置prdType和role
setSimulationPrdType(deviceCode) {
// Dispatcher 行调 STATION_SUPERVISOR 车站 Audience 观众 Driver 司机 MAINTAINER 通号
+ this.showStation = '';
switch (this.userRole) {
case 'DISPATCHER':
this.$store.dispatch('training/setPrdType', '02');
@@ -375,6 +376,7 @@ export default {
this.$store.dispatch('training/setPrdType', '01');
this.$store.dispatch('training/setRoles', 'STATION_SUPERVISOR');
this.$refs.menuSchema.chiShowStation = deviceCode;
+ this.showStation = deviceCode;
this.mapViewLoadedOver && this.switchStationMode(deviceCode);
this.jl3dmaintainershow = false;
this.drivingShow = false;
@@ -521,10 +523,11 @@ export default {
}
},
switchStationMode(stationCode) {
- this.showStation = stationCode;
+ this.showStation = this.centralizedStationMap[stationCode];
this.setShowStation(this.showStation);
},
setShowStation(stationCode) {
+ const showStation = this.centralizedStationMap[stationCode];
const nameList = Object.keys(this.$store.state.map.map);
let list = [];
nameList.forEach(item => {
@@ -532,8 +535,8 @@ export default {
list = [...list, ...this.$store.state.map.map[item]];
}
});
- this.$jlmap.updateShowStation(list, stationCode);
- this.$jlmap.setCenter(stationCode);
+ this.$jlmap.updateShowStation(list, showStation);
+ this.$jlmap.setCenter(showStation);
},
setStationList(map) {
this.stationList = [];
@@ -546,7 +549,7 @@ export default {
});
}
});
- if (this.stationList.length) {
+ if (this.stationList.length && !this.showStation) {
this.showStation = this.stationList[0].value;
}
},
diff --git a/src/views/newMap/jointTrainingNew/menuDemon.vue b/src/views/newMap/jointTrainingNew/menuDemon.vue
index 75f5e5757..11bceca9e 100644
--- a/src/views/newMap/jointTrainingNew/menuDemon.vue
+++ b/src/views/newMap/jointTrainingNew/menuDemon.vue
@@ -9,7 +9,7 @@
{{ $t('display.demon.deviceView') }}
- {{ jl3dname }}
+ {{ jl3dname }}
{{ $t('display.demon.passengerflow') }}
@@ -128,10 +128,13 @@ export default {
},
isShowScheduling() {
// 行调与管理员 可显示
- return (this.$store.state.training.prdType == '02' || this.isAdmin) && !this.$route.query.projectDevice;
+ return (this.$store.state.training.prdType == '02' || this.isAdmin) && (!this.$route.query.projectDevice);
+ },
+ isDISPATCHER(){
+ return (this.$store.state.training.prdType == '02' || this.isAdmin) && (!this.$route.query.projectDevice || this.project == 'sdy');
},
isStationSupervisor() {
- return this.userRole == 'STATION_SUPERVISOR' && !this.$route.query.projectDevice;
+ return this.userRole == 'STATION_SUPERVISOR' && (!this.$route.query.projectDevice || this.project == 'sdy');
},
isDriver() {
return this.userRole == 'DRIVER' && !this.$route.query.projectDevice;
diff --git a/src/views/newMap/jointTrainingNew/menuSchema.vue b/src/views/newMap/jointTrainingNew/menuSchema.vue
index a6d4a2607..e1135bceb 100644
--- a/src/views/newMap/jointTrainingNew/menuSchema.vue
+++ b/src/views/newMap/jointTrainingNew/menuSchema.vue
@@ -198,7 +198,21 @@ export default {
this.$emit('runPlanLoadShow');
},
viewRunPlan() {
- this.$refs.runPlanView.doShow();
+ if (this.$route.query.type === 'CW') {
+ const routeData = this.$router.resolve({
+ path:`/runPlanViewWindow`,
+ query:{
+ lineCode: this.$route.query.lineCode,
+ mapId:this.$route.query.mapId,
+ group:this.$route.query.group,
+ initTime: this.$store.state.training.initTime,
+ noPreLogout: true
+ }
+ });
+ window.open(routeData.href, '_blank', 'noopener noreferrer');
+ } else {
+ this.$refs.runPlanView.doShow();
+ }
},
// 选择车站
switchStationMode(stationCode) {
diff --git a/src/views/newMap/newMapdraft/mapoperate/cross.vue b/src/views/newMap/newMapdraft/mapoperate/cross.vue
deleted file mode 100644
index f091fad49..000000000
--- a/src/views/newMap/newMapdraft/mapoperate/cross.vue
+++ /dev/null
@@ -1,249 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- {{ $t('map.generateCross') }}
-
-
-
-
-
-
diff --git a/src/views/newMap/newMapdraft/mapoperate/index.vue b/src/views/newMap/newMapdraft/mapoperate/index.vue
index 787d5dbbf..0f7beb327 100644
--- a/src/views/newMap/newMapdraft/mapoperate/index.vue
+++ b/src/views/newMap/newMapdraft/mapoperate/index.vue
@@ -67,7 +67,6 @@ import Arrow from './arrow';
import SplitScreen from './splitScreen';
import FloodGate from './floodGate';
import DirectionRod from './directionRod';
-import Cross from './cross';
import { EventBus } from '@/scripts/event-bus';
export default {
@@ -98,8 +97,7 @@ export default {
Arrow,
SplitScreen,
FloodGate,
- DirectionRod,
- Cross
+ DirectionRod
},
props: {
selected: {
@@ -140,8 +138,7 @@ export default {
{label: '站间分隔', name:'SplitStation', menus:SplitStation},
{label: '箭头', name:'Arrow', menus:Arrow},
{label: '防淹门', name: 'FloodGate', menus: FloodGate},
- {label: '方向杆', name: 'DirectionRod', menus: DirectionRod},
- {label: this.$t('map.cross'), name: 'Cross', menus: Cross}
+ {label: '方向杆', name: 'DirectionRod', menus: DirectionRod}
],
selectDevice:'',
enabledTab: 'Section',
diff --git a/src/views/newMap/newMapdraft/mapoperate/section/crossSection.vue b/src/views/newMap/newMapdraft/mapoperate/section/crossSection.vue
new file mode 100644
index 000000000..45b75b51c
--- /dev/null
+++ b/src/views/newMap/newMapdraft/mapoperate/section/crossSection.vue
@@ -0,0 +1,156 @@
+
+
+
+
diff --git a/src/views/newMap/newMapdraft/mapoperate/section/index.vue b/src/views/newMap/newMapdraft/mapoperate/section/index.vue
index 744d487e9..a5dc546b1 100644
--- a/src/views/newMap/newMapdraft/mapoperate/section/index.vue
+++ b/src/views/newMap/newMapdraft/mapoperate/section/index.vue
@@ -46,6 +46,9 @@
@tipInfoHandle="tipInfoHandle"
/>
+
+
+
@@ -60,6 +63,7 @@ import TipInfo from './tipInfo';
import CreateSection from './create';
import SplitOrMerge from './splitOrMerge';
import BatchSettings from './batchSettings';
+import CrossSection from './crossSection';
import getModel from '../models.js';
export default {
@@ -70,7 +74,8 @@ export default {
TipInfo,
CreateSection,
SplitOrMerge,
- BatchSettings
+ BatchSettings,
+ CrossSection
},
props: {
selected: {
@@ -408,7 +413,16 @@ export default {
deviceSelect(selected) {
// 判断是否激活选择站台
if (selected && selected._type === 'Section') {
- if (this.field === 'leftSection') {
+ if (this.field == 'relatedSection' ) {
+ if (selected.type === '01') {
+ this.activeName = 'six';
+ this.$refs.crossSection.addSectionData(selected.code);
+ this.$emit('deviceSelect', '');
+ } else {
+ this.$message.error('请选择物理区段');
+ }
+ return;
+ } else if (this.field === 'leftSection') {
if (selected.type === '01' || selected.type === '03') {
this.editModel.leftSectionCode = selected.code;
this.activeName = 'first';
diff --git a/src/views/organization/index.vue b/src/views/organization/index.vue
index 238fd30f1..20de68208 100644
--- a/src/views/organization/index.vue
+++ b/src/views/organization/index.vue
@@ -257,7 +257,7 @@ export default {
const reg = new RegExp('[\\u4E00-\\u9FFF]+', 'g');
const studentIdJudge = !!studentId && !reg.test(studentId);
if (studentIdJudge && name) {
- students.push({account:dataList[1][i], name: dataList[2][i]});
+ students.push({account:dataList[0][i], name: dataList[1][i]});
} else {
if (!studentId && !name) {
break;
@@ -301,9 +301,9 @@ export default {
exportTemplate() {
const wb = XLSX.utils.book_new();
const data1 = [{ A: 'XXXX级', B:'XX班'}];
- const data2 = [{A: '学号', C:'姓名'}];
- const data3 = [{A: '00001', C:'张三'}];
- const data4 = [{A: '00002', C:'李四'}];
+ const data2 = [{A: '学号', B:'姓名'}];
+ const data3 = [{A: '00001', B:'张三'}];
+ const data4 = [{A: '00002', B:'李四'}];
const data = [...data1, ...data2, ...data3, ...data4];
const ws = XLSX.utils.json_to_sheet(data, {skipHeader:true});
ws['!cols'] = [
diff --git a/src/views/planMonitor/editTool/menus/addPlanningTrain.vue b/src/views/planMonitor/editTool/menus/addPlanningTrain.vue
index 201064a87..392e4513c 100644
--- a/src/views/planMonitor/editTool/menus/addPlanningTrain.vue
+++ b/src/views/planMonitor/editTool/menus/addPlanningTrain.vue
@@ -87,9 +87,9 @@ export default {
}
},
handleCommit() {
- this.$refs.dataform.validateForm(() => {
+ this.$refs.form.validate(() => {
if (this.$route.query.planId || this.loadRunPlanId) {
- checkServiceNumberExist({ planId: this.$route.query.planId || this.loadRunPlanId, serviceNumber: this.serviceNumber }).then(resp => {
+ checkServiceNumberExist({ planId: this.$route.query.planId || this.loadRunPlanId, serviceNumber: this.formModel.serviceNumber }).then(resp => {
if (resp.data) {
this.$emit('dispatchDialog', {
name: 'offLine',
@@ -117,8 +117,8 @@ export default {
},
handleConfirm(isNew = false) {
this.doClose();
- this.$store.dispatch('runPlan/addserviceNumber', this.serviceNumber);
- this.$emit('dispatchDialog', { name: 'editPlanningTrain', params: { serviceNumber: this.serviceNumber, isNew:isNew } });
+ this.$store.dispatch('runPlan/addserviceNumber', this.formModel.serviceNumber);
+ this.$emit('dispatchDialog', { name: 'editPlanningTrain', params: { serviceNumber: this.formModel.serviceNumber, isNew:isNew } });
}
}
};
diff --git a/src/views/publish/examRule/draft/examFrom.vue b/src/views/publish/examRule/draft/examFrom.vue
index 86fc5e6b6..359e7ee32 100644
--- a/src/views/publish/examRule/draft/examFrom.vue
+++ b/src/views/publish/examRule/draft/examFrom.vue
@@ -23,10 +23,10 @@
style="width: 100%;"
value-format="timestamp"
:default-value="new Date()"
- :disabled="isEdit"
:picker-options="pickerOptions"
@change="handle"
/>
+
-
@@ -297,6 +297,8 @@ export default {
const model = {
id: this.$route.params.ruleId,
name: this.form.name,
+ endTime: this.getDate(this.form.endDate),
+ startTime: this.getDate(this.form.startDate),
classes: this.form.classes.map(ele => { return { id: ele}; }),
trial: this.trial == 2
};
@@ -304,6 +306,7 @@ export default {
await updateExamRules(model);
this.$store.dispatch('exam/setCourseDetail', this.form);
this.$message.success(this.$t('publish.updateExamRuleSuccess'));
+ // history.go(-1);
} catch (error) {
this.$messageBox(this.$t('publish.updateExamRuleFailed'));
}
diff --git a/src/views/publish/examRule/draft/index.vue b/src/views/publish/examRule/draft/index.vue
index bd3cc9196..b94ef046e 100644
--- a/src/views/publish/examRule/draft/index.vue
+++ b/src/views/publish/examRule/draft/index.vue
@@ -35,7 +35,7 @@ import { getPublishLessonList } from '@/api/jmap/lesson';
import RuleFrom from './rule';
import ExamFrom from './examFrom';
import { getPublishMapInfo } from '@/api/jmap/map';
-import { getExamLessonDetail, setCourseList, setCourseListGzb } from '@/api/management/exam';
+import { getExamLessonDetail, setCourseList } from '@/api/management/exam';
import { UrlConfig } from '@/scripts/ConstDic';
import { getSessionStorage } from '@/utils/auth';
@@ -71,9 +71,6 @@ export default {
},
isFastCreate() {
return this.display == 1 && this.$route.params.mode != 'edit' && Number(this.$route.params.ruleId);
- },
- isGzbShow() {
- return getSessionStorage('project').startsWith('gzb');
}
},
watch: {
@@ -103,6 +100,7 @@ export default {
});
},
async definition(data) {
+ console.log(data, '====');
this.course = data;
this.formData = {};
this.display = 2;
@@ -140,11 +138,7 @@ export default {
};
let res = {};
try {
- if (this.isGzbShow) {
- res = await setCourseListGzb(result);
- } else {
- res = await setCourseList(result);
- }
+ res = await setCourseList(result);
this.$message.success({ message: res.message });
this.$store.dispatch('exam/setRuleList', []); // 清空规则列表数据
const path = `${this.$route.path.match(/(\/.*)\/examRule/)[1]}${UrlConfig.examRuleManage}`;
diff --git a/src/views/publish/examRule/draft/rule.vue b/src/views/publish/examRule/draft/rule.vue
index 1fc4fcb7a..b222b5f3a 100644
--- a/src/views/publish/examRule/draft/rule.vue
+++ b/src/views/publish/examRule/draft/rule.vue
@@ -25,7 +25,7 @@
diff --git a/src/views/system/userControl/edit.vue b/src/views/system/userControl/edit.vue
index c56f573be..347526a44 100644
--- a/src/views/system/userControl/edit.vue
+++ b/src/views/system/userControl/edit.vue
@@ -46,10 +46,10 @@ export default {
},
rules() {
const crules = {
- name: [
- { required: true, message: this.$t('rules.pleaseInputName'), trigger: 'blur' },
- { min: 1, max: 25, message: this.$t('rules.strLength1To25'), trigger: 'blur' }
- ],
+ // name: [
+ // { required: true, message: this.$t('rules.pleaseInputName'), trigger: 'blur' },
+ // { min: 1, max: 25, message: this.$t('rules.strLength1To25'), trigger: 'blur' }
+ // ],
roles: [
{ required: true, message: this.$t('rules.pleaseSelectPermission'), trigger: 'change' }
]
diff --git a/src/views/system/userControl/index.vue b/src/views/system/userControl/index.vue
index 63934320f..46bad1045 100644
--- a/src/views/system/userControl/index.vue
+++ b/src/views/system/userControl/index.vue
@@ -3,6 +3,7 @@
+
@@ -11,12 +12,14 @@ import { getUserList } from '@/api/management/user';
import { getCompanyList } from '@/api/company';
import DictionaryEdit from './edit';
import CreateUser from './createUser';
+import BindCompany from './bindCompany';
export default {
name: 'UserControl',
components: {
DictionaryEdit,
- CreateUser
+ CreateUser,
+ BindCompany
},
data() {
return {
@@ -87,6 +90,10 @@ export default {
{
name: this.$t('global.edit'),
handleClick: this.handleUserEdit
+ },
+ {
+ name: '绑定单位',
+ handleClick: this.handleBind
}
]
}
@@ -129,6 +136,12 @@ export default {
},
companyManage() {
this.$router.push({ path: `/system/companyManage`});
+ },
+ handleBind(index, row) {
+ this.$refs.bindCompany.doShow(row);
+ },
+ create() {
+ this.reloadTable();
}
}
};
diff --git a/src/views/teach/index.vue b/src/views/teach/index.vue
index 454d72bfb..5ad4fcf72 100644
--- a/src/views/teach/index.vue
+++ b/src/views/teach/index.vue
@@ -4,7 +4,7 @@
- 草稿课程管理
+ 草稿课程管理
@@ -18,9 +18,9 @@
{{ $t('teach.enterTheCourse') }}
- 编辑
- 下架
- 删除课程
+ 编辑
+ 下架
+ 删除课程
@@ -50,7 +50,8 @@ export default {
loading: false,
project: '',
mapId: '',
- prdType: ''
+ prdType: '',
+ cityCode: ''
};
},
computed: {
@@ -60,8 +61,8 @@ export default {
userId() {
return this.$store.state.user.id;
},
- isLessonCreator() {
- return this.$store.state.user.roles.includes(lessonCreater);
+ isCompanyAdmin() {
+ return this.$store.state.user.companyId && this.$store.state.user.companyAdmin;
},
isAdmin() {
return this.$store.state.user.roles.includes(admin) || this.$store.state.user.roles.includes(superAdmin);
@@ -84,6 +85,7 @@ export default {
this.mapId = resp.data.mapId;
this.prdType = resp.data.prdType;
this.tableData = resp.data.lessonList;
+ this.cityCode = resp.data.cityCode;
} else {
this.tableData = [];
}
@@ -129,7 +131,7 @@ export default {
});
},
draftLessonManage() {
- const query = {mapId: this.mapId, prdType: this.prdType, cityCode: this.$route.query.cityCode};
+ const query = {mapId: this.mapId, prdType: this.prdType, cityCode: this.cityCode};
this.$router.push({ path: `/trainingPlatform/draftTeach/${this.$route.params.subSystem}`, query: query });
},
handleDelete(row) {
diff --git a/src/views/trainingPlatform/demonList.vue b/src/views/trainingPlatform/demonList.vue
index 6b9c2a717..b126bc3cd 100644
--- a/src/views/trainingPlatform/demonList.vue
+++ b/src/views/trainingPlatform/demonList.vue
@@ -113,7 +113,7 @@ export default {
break;
case 'Lesson':
this.setLocalRoute(`${UrlConfig.trainingPlatform.teachHome}/${obj.id}`);
- router = { path: `${UrlConfig.trainingPlatform.teachHome}/${obj.id}?cityCode=${this.filterSelect}`};
+ router = { path: `${UrlConfig.trainingPlatform.teachHome}/${obj.id}`};
this.toNextPage(isReplace, router);
break;
case 'Simulation':
@@ -206,7 +206,7 @@ export default {
},
nodeCollapse(obj, node, ele) {
const key = obj.key;
- this.expandList = this.expandList.filter(item => item !== key);
+ this.expandList = this.expandList.filter(item => (item !== key && !item.startsWith(`${key}-`)));
localStore.set('trainIngPlatformExpandList' + this.filterSelect + this.userId + this.project, this.expandList);
},
getExpandList(filterSelect) {