diff --git a/src/api/designPlatform.js b/src/api/designPlatform.js new file mode 100644 index 000000000..ac86826f4 --- /dev/null +++ b/src/api/designPlatform.js @@ -0,0 +1,188 @@ +import request from '@/utils/request'; + +export function getDraftLesson(params, mapId) { + /** 根据mapId获取草稿课程 */ + return request({ + url: `/api/mapSystem/findDraftLessonBy/${mapId}`, + method: 'get', + params + }); +} +/** 获取用户地图树 */ +export function getUserMapTree(cityCode) { + return request({ + url: `/api/mapSystem/findDraftMapByCityCode?cityCode=${cityCode}`, + method: 'get' + }); +} + +/** 运行图*/ +export function getRpListByUserMapId(mapId) { + return request({ + url: `/api/draftMap/runPlan/findByDraftMapId/${mapId}`, + method: 'get' + }); +} +export function getMapList(cityCode) { + /** 根据cityCode获取地图列表 */ + return request({ + url: `/api/mapSystem/queryMapByCityCode/${cityCode}`, + method: 'get' + }); +} + +/** 获取用户自己的运行图详情*/ +export function getRpDetailByUserMapId(planId) { + return request({ + url: `/api/draftMap/runPlan/selectDiagramData/${planId}`, + method: 'get' + }); +} + +/** 获取用户自己创建的草稿地图详情*/ +export function getUserMapDetailByMapId(mapId) { + return request({ + url: `/api/mapBuild/findById/${mapId}`, + method: 'get' + }); +} + +/** 用户自己的运行图仿真测试*/ +export function runUserPlanNotify({ planId }) { + return request({ + url: `/api/draftMap/runPlan/simulationCheck/${planId}`, + method: 'get' + }); +} + +/** 管理员获取需审核的课程列表 */ +export function reviewLessonList(params) { + return request({ + url: `/api/review/query/lesson`, + method: 'get', + params + }); +} + +/** 管理员发布课程接口 */ +export function adminPublishLesson(data, id) { + return request({ + url: `/api/review/${id}/publishLesson`, + method: 'post', + data: data + }); +} + +/** 管理员驳回课程发布申请 */ +export function rejectedLessonRelease(data, id) { + return request({ + url: `/api/review/lesson/${id}`, + method: 'post', + data: data + }); +} + +/** 普通用户申请课程发布和撤销申请 */ +export function releaseOrCancel(id, status) { + return request({ + url: `/api/review/lesson/releaseOrCancel/${id}/${status}`, + method: 'get' + }); +} + +/** 管理员获取需审核的剧本列表 ok */ +export function reviewScriptList(params) { + return request({ + url: `/api/review/query/script`, + method: 'get', + params + }); +} +/** 管理员发布剧本 ok */ +export function publishScript(id) { + return request({ + url: `/api/review/${id}/publishScript`, + method: 'post' + }); +} +/** 管理员剧本申请驳回 ok */ +export function rejectScript(id, data) { + return request({ + url: `/api/review/script/${id}`, + method: 'post', + data: data + }); +} + +/** 管理员获取需审核的运行图列表 */ +export function reviewRunPlanList(params) { + return request({ + url: `/api/review/query/runPlan`, + method: 'get', + params + }); +} + +/** 管理员发布运行图 */ +export function publishRunPlan(planId, data) { + return request({ + url: `/api/review/${planId}/publishRunPlan`, + method: 'post', + data: data + }); +} +/** 普通用户申请或撤销运行图发布 */ +export function releaseOrCancelRunPlan(planId, status) { + return request({ + url: `/api/review/runPlan/releaseOrCancel/${planId}/${status}`, + method: 'get' + }); +} +/** 管理员运行图申请驳回 */ +export function rejectRunPlan(id, data) { + return request({ + url: `/api/review/runPlan/${id}`, + method: 'post', + data: data + }); +} + +/** 用户申请发布剧本或者撤销剧本申请 */ +export function releaseScript(id, status) { + return request({ + url: `/api/review/script/releaseOrCancel/${id}/${status}`, + method: 'get' + }); +} + +/** 查看课程详情 */ +export function reviewLessonDetail(id) { + return request({ + url: `/api/review/previewLesson/${id}`, + method: 'get' + }); +} +/** 管理员预览草稿运行图*/ +export function previewRunPlan(planId) { + return request({ + url: `/api/review/previewRunPlan/${planId}`, + method: 'get' + }); +} + +/** 加载剧本 */ +export function loadDraftScript(scriptId, memberId, group) { + return request({ + url: `api/simulation/${group}/scriptDraft/${scriptId}?memberId=${memberId}`, + method: 'post' + }); +} + +/** 获取已发布的有地图的城市列表*/ +export function publisMapCityList(data) { + return request({ + url: `/api/map/city?dicCode=${data}`, + method: 'get' + }); +} + diff --git a/src/api/jmap/lesson.js b/src/api/jmap/lesson.js index fbb3187b4..dcb7a1f23 100644 --- a/src/api/jmap/lesson.js +++ b/src/api/jmap/lesson.js @@ -8,11 +8,10 @@ export function getPublishLessonList() { }); } /** 获取发布列表树*/ -export function getPublishLessonTree(params) { +export function getPublishLessonTree(id) { return request({ - url: '/api/lesson/tree', - method: 'get', - params: params || {} + url: `/api/lesson/${id}/tree`, + method: 'get' }); } diff --git a/src/api/jmap/lessondraft.js b/src/api/jmap/lessondraft.js index 0c7a177c8..23b7c3322 100644 --- a/src/api/jmap/lessondraft.js +++ b/src/api/jmap/lessondraft.js @@ -1,11 +1,10 @@ import request from '@/utils/request'; /** 获取课程树*/ -export function getLessonTree(params) { +export function getLessonTree(skinCode) { return request({ - url: '/api/lessonDraft/tree', - method: 'get', - params: params + url: `/api/lessonDraft/${skinCode}/tree`, + method: 'get' }); } @@ -103,3 +102,11 @@ export function getLessonNameByMapIdAndLessonId(model) { method: 'get' }); } + +export function getLessonDrftList(params) { + return request({ + url: `/api/lessonDraft`, + method: 'get', + params: params + }); +} diff --git a/src/api/jmap/map.js b/src/api/jmap/map.js index c409c18dd..9a4e94926 100644 --- a/src/api/jmap/map.js +++ b/src/api/jmap/map.js @@ -58,10 +58,11 @@ export function getPublishTrainList(skinCode) { } /** 获取发布地图列表*/ -export function listPublishMap() { +export function listPublishMap(params) { return request({ - url: '/api/map/list', - method: 'get' + url: `/api/map/list`, + method: 'get', + params }); } diff --git a/src/api/jmap/mapdraft.js b/src/api/jmap/mapdraft.js index ccd219bb9..538d77fb5 100644 --- a/src/api/jmap/mapdraft.js +++ b/src/api/jmap/mapdraft.js @@ -264,3 +264,10 @@ export function putAutoSignal(data) { }); } +export function getListByCityCode(cityCode) { + return request({ + url: `/api/mapBuild/${cityCode}/list`, + method: 'get' + }); +} + diff --git a/src/api/management/exam.js b/src/api/management/exam.js index 93f5a801b..b22839e9d 100644 --- a/src/api/management/exam.js +++ b/src/api/management/exam.js @@ -1,14 +1,5 @@ import request from '@/utils/request'; -/** 获取考试列表树*/ -export function getCourseLessonTree(params) { - return request({ - url: '/api/exam/tree', - method: 'get', - params: params - }); -} - /** 创建对应课程考题 */ export function setCourseList(data) { return request({ diff --git a/src/api/quest.js b/src/api/quest.js index 7baa7b116..ab38bf805 100644 --- a/src/api/quest.js +++ b/src/api/quest.js @@ -1,16 +1,17 @@ import request from '@/utils/request'; -/** 查找个人录制的仿真任务*/ -export function getQuestPageList(mapId) { +/** 分页查找个人录制的仿真任务*/ +export function getQuestPageList(mapId, params) { return request({ - url: `/api/script/${mapId}/list`, - method: 'get' + url: `/api/script/draft/${mapId}/list`, + method: 'get', + params: params }); } /** 创建任务 */ export function createQuest(data) { return request({ - url: `/api/script`, + url: `/api/script/draft`, method: 'post', data }); @@ -18,28 +19,28 @@ export function createQuest(data) { /** 根据任务id删除任务 */ export function deleteQuest(id) { return request({ - url: `/api/script/${id}`, + url: `/api/script/draft/${id}`, method: 'delete' }); } /** 根据id查询任务基础信息 */ export function getQuestById(id) { return request({ - url: `/api/script/${id}/basic`, + url: `/api/script/draft/${id}`, method: 'get' }); } -/** 根据id查询任务基础信息 */ +/** 根据id查询任务详情信息 */ export function getQuestByIdList(id) { return request({ - url: `/api/quest/${id}/detail`, + url: `/api/script/draft/${id}/detail`, method: 'get' }); } /** 更新任务基本信息 */ export function updateQuest(id, data) { return request({ - url: `/api/script/${id}`, + url: `/api/script/draft/${id}`, method: 'put', data }); @@ -53,3 +54,21 @@ export function getQuestPageListOnline(params) { params: params }); } + +/** 剧本发布 */ +export function publishQuest(id, data) { + return request({ + url: `/api/script/draft/${id}/publish`, + method: 'put', + data + }); +} + +/** 剧本撤销发布 */ +export function retractQuest(id, data) { + return request({ + url: `/api/script/draft/${id}/retract`, + method: 'put' + }); +} + diff --git a/src/api/script.js b/src/api/script.js index 2e58fe548..b4cc5e639 100644 --- a/src/api/script.js +++ b/src/api/script.js @@ -4,6 +4,7 @@ import request from '@/utils/request'; export function getScriptPageListOnline(params) { return request({ url: `/api/script/paging/online`, + // url: `/api/script/paging/published`, method: 'get', params: params }); @@ -17,10 +18,17 @@ export function getScriptByIdList(id) { }); } -/** 通过ID查询剧本的基础信息 */ +/** 通过ID查询发布的剧本的详细信息 */ export function getScriptById(id) { return request({ url: `/api/script/${id}/detail`, method: 'get' }); } +/** 通过ID查询未发布剧本的详细信息 */ +export function getDraftScriptById(id) { + return request({ + url: `/api/script/draft/${id}/detail`, + method: 'get' + }); +} diff --git a/src/api/trainingPlatform.js b/src/api/trainingPlatform.js new file mode 100644 index 000000000..1dd8282b3 --- /dev/null +++ b/src/api/trainingPlatform.js @@ -0,0 +1,87 @@ +import request from '@/utils/request'; + +export function getTrainingSystemList(cityCode, params) { + /** 根据cityCode后去对应地图及其子系统 */ + return request({ + url: `/api/mapSystem/city/${cityCode}`, + method: 'get', + params + }); +} + +export function querySystemByTypeAndPrdCode(params, prodCode) { + /** 根据系统类型和地图产品code查询系统的内容(课程、章节、考试)*/ + return request({ + url: `/api/mapSystem/queryByTypeAndPrdCode/${prodCode}`, + method: 'get', + params + }); +} + +export function getTrainingSystemListByMapId(mapId) { + /** 根据mapId去获取其子系统 */ + return request({ + url: `/api/mapSystem/${mapId}`, + method: 'get' + }); +} + +export function generateMapSystem(mapId) { + /** 根据mapId生成地图子系统 */ + return request({ + url: `/api/mapSystem/generate/${mapId}`, + method: 'post' + }); +} + +export function getSubSystemInfo(id) { + /** 查询子系统信息 */ + return request({ + url: `/api/mapSystem/${id}`, + method: 'get' + }); +} + +export function getSubSystemDetail(id) { + /** 查询子系统详情*/ + return request({ + url: `/api/mapSystem/${id}/detail`, + method: 'get' + }); +} + +export function getMapSystemPageList(params) { + /** 分页查询地图系统 */ + return request({ + url: `/api/mapSystem`, + method: 'get', + params + }); +} + +export function createMapSubSystem(data) { + /** 创建地图系统 */ + return request({ + url: `/api/mapSystem`, + method: 'post', + data: data + }); +} + +export function updateSubSystem(id, data) { + /** 查询子系统信息 */ + return request({ + url: `/api/mapSystem/${id}`, + method: 'put', + data: data + }); +} + +export function deleteSubSystem(id) { + /** 删除地图系统 */ + return request({ + url: `/api/mapSystem/${id}`, + method: 'delete' + }); +} + diff --git a/src/assets/erCode.jpg b/src/assets/erCode.jpg new file mode 100644 index 000000000..645f77b66 Binary files /dev/null and b/src/assets/erCode.jpg differ diff --git a/src/assets/logo_changan.png b/src/assets/logo_changan.png new file mode 100644 index 000000000..79b86d820 Binary files /dev/null and b/src/assets/logo_changan.png differ diff --git a/src/components/QueryListPage/QueryForm.vue b/src/components/QueryListPage/QueryForm.vue index 49ee1bbf1..338a89472 100644 --- a/src/components/QueryListPage/QueryForm.vue +++ b/src/components/QueryListPage/QueryForm.vue @@ -127,7 +127,7 @@ - + {{ $t('global.query') }} {{ $t('global.reset') }} {{ $t('global.export') }} @@ -139,6 +139,7 @@ size="small" :style="button.style" @click="button.handler" + class="button_style" >{{ button.text }} @@ -480,4 +481,7 @@ export default { max-width: 240px; min-width: 100px; } + .button_style { + margin-bottom: 10px; + } diff --git a/src/components/QueryListPage/QueryListPage.vue b/src/components/QueryListPage/QueryListPage.vue index 1faf56ee3..74dcf9d36 100644 --- a/src/components/QueryListPage/QueryListPage.vue +++ b/src/components/QueryListPage/QueryListPage.vue @@ -453,7 +453,10 @@ export default { currentChoose() { return this.choose; }, - refresh() { + refresh(flag) { + if (flag) { + this.commitQuery(); + } this.queryList.data = [...this.queryList.data]; } } diff --git a/src/directive/dialogDrag/dialogDrag.js b/src/directive/dialogDrag/dialogDrag.js new file mode 100644 index 000000000..8e271e253 --- /dev/null +++ b/src/directive/dialogDrag/dialogDrag.js @@ -0,0 +1,54 @@ +import store from '@/store'; + +export default { + bind(el) { + const dialogHeaderEl = el.querySelector('.el-dialog__header'); + const dragDom = el.querySelector('.el-dialog'); + dialogHeaderEl.style.cursor = 'move'; + + /** 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);*/ + const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null); + + dialogHeaderEl.onmousedown = (e) => { + /** 鼠标按下,计算当前元素距离可视区的距离*/ + const disX = e.clientX - dialogHeaderEl.offsetLeft; + const disY = e.clientY - dialogHeaderEl.offsetTop; + + /** 获取到的值带px 正则匹配替换*/ + let styL, styT; + + /** 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px*/ + if (sty.left.includes('%')) { + // eslint-disable-next-line no-useless-escape + styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100); + styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100); + } else { + // eslint-disable-next-line no-useless-escape + styL = +sty.left.replace(/\px/g, ''); + // eslint-disable-next-line no-useless-escape + styT = +sty.top.replace(/\px/g, ''); + } + + document.onmousemove = function (e) { + /** 通过事件委托,计算移动的距离*/ + const l = e.clientX - disX; + const t = e.clientY - disY; + + /** 移动当前元素*/ + dragDom.style.left = `${l + styL}px`; + dragDom.style.top = `${t + styT}px`; + + /** 刷新提示标签位置*/ + store.dispatch('training/emitTipFresh'); + + /** 将此时的位置传出去*/ + // binding.value({ x: e.pageX, y: e.pageY }); + }; + + document.onmouseup = function () { + document.onmousemove = null; + document.onmouseup = null; + }; + }; + } +}; diff --git a/src/directive/dialogDrag/index.js b/src/directive/dialogDrag/index.js new file mode 100644 index 000000000..537450254 --- /dev/null +++ b/src/directive/dialogDrag/index.js @@ -0,0 +1,8 @@ +import Vue from 'vue'; +import install from './dialogDrag'; + +const dialogDrag = function(Vue) { + Vue.directive('dialogDrag', install); +}; + +Vue.use(dialogDrag); diff --git a/src/directive/dialogDragWidth/dialogDragWidth.js b/src/directive/dialogDragWidth/dialogDragWidth.js new file mode 100644 index 000000000..7d032cb77 --- /dev/null +++ b/src/directive/dialogDragWidth/dialogDragWidth.js @@ -0,0 +1,25 @@ +export default { + bind(el, binding) { + const dragDom = binding.value.$el.querySelector('.el-dialog'); + + el.onmousedown = (e) => { + + /** 鼠标按下,计算当前元素距离可视区的距离*/ + const disX = e.clientX - el.offsetLeft; + + document.onmousemove = function (e) { + /** 移动时禁用默认事件*/ + e.preventDefault(); + + /** 通过事件委托,计算移动的距离*/ + const l = e.clientX - disX; + dragDom.style.width = `${l}px`; + }; + + document.onmouseup = function () { + document.onmousemove = null; + document.onmouseup = null; + }; + }; + } +}; diff --git a/src/directive/dialogDragWidth/index.js b/src/directive/dialogDragWidth/index.js new file mode 100644 index 000000000..3ee2ad0fa --- /dev/null +++ b/src/directive/dialogDragWidth/index.js @@ -0,0 +1,8 @@ +import Vue from 'vue'; +import install from './dialogDragWidth'; + +const dialogDragWidth = function(Vue) { + Vue.directive('dialogDragWidth', install); +}; + +Vue.use(dialogDragWidth); diff --git a/src/directive/drag/drag.js b/src/directive/drag/drag.js new file mode 100644 index 000000000..69979448d --- /dev/null +++ b/src/directive/drag/drag.js @@ -0,0 +1,106 @@ +export default { + bind(el) { + const dragDom = el.querySelector('.reminder-box'); + const dragRight = el.querySelector('.drag-right'); + const dragLeft = el.querySelector('.drag-left'); + const dragBottom = el.querySelector('.drag-bottom'); + const dragTop = el.querySelector('.drag-top'); + const dragBody = el.querySelector('.tip-body'); + const body = el.querySelector('.tip-body-box'); + + dragRight.onmousedown = (e) => { + document.onselectstart = function () { + return false; + }; + // 宽度拖拽 + var iEvent = e || event; + var disX = iEvent.clientX; + var disW = dragDom.offsetWidth; + document.onmousemove = function (e) { + + var iEvent = e || event; + if (disW + (iEvent.clientX - disX) > 350) { + dragDom.style.width = disW + (iEvent.clientX - disX) + 'px'; + } + }; + + document.onmouseup = function () { + document.onmousemove = null; + document.onmouseup = null; + document.onselectstart = null; + }; + }; + dragLeft.onmousedown = (e) => { + document.onselectstart = function () { + return false; + }; + // 宽度拖拽 + var iEvent = e || event; + var disX = iEvent.clientX; + var disW = dragDom.offsetWidth; + var OFFLeft = dragDom.offsetLeft; + document.onmousemove = function (e) { + const iEvent = e || event; + const width = disW - (iEvent.clientX - disX); + if (width > 350) { + dragDom.style.width = disW - (iEvent.clientX - disX) + 'px'; + dragDom.style.left = OFFLeft + (iEvent.clientX - disX) + 'px'; + } + }; + + document.onmouseup = function () { + document.onmousemove = null; + document.onmouseup = null; + document.onselectstart = null; + }; + }; + dragBottom.onmousedown = (e) => { + document.onselectstart = function () { + return false; + }; + // 宽度拖拽 + var iEvent = e || event; + var disY = iEvent.clientY; + var disH = dragDom.offsetHeight; + document.onmousemove = function (e) { + var iEvent = e || event; + if (disH + (iEvent.clientY - disY) > 200) { + dragDom.style.height = disH + (iEvent.clientY - disY) + 'px'; + body.style.height = disH + (iEvent.clientY - disY) - 40 + 'px'; + dragBody.style.height = disH + (iEvent.clientY - disY) - 100 + 'px'; + } + }; + + document.onmouseup = function () { + document.onmousemove = null; + document.onmouseup = null; + document.onselectstart = null; + }; + }; + dragTop.onmousedown = (e) => { + document.onselectstart = function () { + return false; + }; + // 宽度拖拽 + var iEvent = e || event; + var disY = iEvent.clientY; + var disH = dragDom.offsetHeight; + var OOFTop = dragDom.offsetTop; + document.onmousemove = function (e) { + var iEvent = e || event; + if (disH - (iEvent.clientY - disY) > 200) { + dragDom.style.height = disH - (iEvent.clientY - disY) + 'px'; + body.style.height = disH - (iEvent.clientY - disY) - 40 + 'px'; + dragBody.style.height = disH - (iEvent.clientY - disY) - 100 + 'px'; + dragDom.style.top = OOFTop + (iEvent.clientY - disY) + 'px'; + } + }; + + document.onmouseup = function () { + document.onmousemove = null; + document.onmouseup = null; + document.onselectstart = null; + }; + }; + } +}; diff --git a/src/directive/drag/index.js b/src/directive/drag/index.js new file mode 100644 index 000000000..7bba5ebce --- /dev/null +++ b/src/directive/drag/index.js @@ -0,0 +1,8 @@ +import Vue from 'vue'; +import install from './drag'; + +const drag = function(Vue) { + Vue.directive('drag', install); +}; + +Vue.use(drag); diff --git a/src/directive/focus/focus.js b/src/directive/focus/focus.js new file mode 100644 index 000000000..7c3b68b65 --- /dev/null +++ b/src/directive/focus/focus.js @@ -0,0 +1,18 @@ +export default { + // 当被绑定的元素插入到 DOM 中时 + inserted: function (el, obj) { + // 这是需要页面刚加载就能进行聚焦操作使用的钩子函数,可以省略的,视具体需求而定 + // 对值进行判断 + if (obj.value) { + // 聚焦元素 + el.focus(); + } + }, + // 当指令所在组件的 VNode 及其子 VNode 全部更新后调用 + // 这是每当绑定的值发生改变时触发的钩子函数 + componentUpdated: function (el, obj) { + if (obj.value) { + el.focus(); + } + } +}; diff --git a/src/directive/focus/index.js b/src/directive/focus/index.js new file mode 100644 index 000000000..f9d4f2332 --- /dev/null +++ b/src/directive/focus/index.js @@ -0,0 +1,8 @@ +import Vue from 'vue'; +import install from './focus'; + +const focus = function(Vue) { + Vue.directive('focus', install); +}; + +Vue.use(focus); diff --git a/src/directive/quickMenuDrag/index.js b/src/directive/quickMenuDrag/index.js new file mode 100644 index 000000000..5a176f844 --- /dev/null +++ b/src/directive/quickMenuDrag/index.js @@ -0,0 +1,8 @@ +import Vue from 'vue'; +import install from './quickMenuDrag'; + +const quickMenuDrag = function(Vue) { + Vue.directive('quickMenuDrag', install); +}; + +Vue.use(quickMenuDrag); diff --git a/src/directive/quickMenuDrag/quickMenuDrag.js b/src/directive/quickMenuDrag/quickMenuDrag.js new file mode 100644 index 000000000..000031662 --- /dev/null +++ b/src/directive/quickMenuDrag/quickMenuDrag.js @@ -0,0 +1,45 @@ +export default { + bind(el) { + const dragDom = el; + dragDom.style.cursor = 'move'; + + /** 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);*/ + const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null); + + dragDom.onmousedown = (e) => { + /** 鼠标按下,计算当前元素距离可视区的距离*/ + const disX = e.clientX; + const disY = e.clientY; + + /** 获取到的值带px 正则匹配替换*/ + let styL, styT; + + /** 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px*/ + if (sty.left.includes('%')) { + styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100); + styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100); + } else { + styL = +sty.left.replace(/\px/g, ''); + styT = +sty.top.replace(/\px/g, ''); + } + + document.onmousemove = function (e) { + /** 通过事件委托,计算移动的距离*/ + const l = e.clientX - disX; + const t = e.clientY - disY; + + /** 移动当前元素*/ + dragDom.style.left = `${l + styL}px`; + dragDom.style.top = `${t + styT}px`; + + /** 将此时的位置传出去*/ + // binding.value({ x: e.pageX, y: e.pageY }); + }; + + document.onmouseup = function () { + document.onmousemove = null; + document.onmouseup = null; + }; + }; + } +}; diff --git a/src/directive/waves/index.js b/src/directive/waves/index.js new file mode 100644 index 000000000..44264f6f0 --- /dev/null +++ b/src/directive/waves/index.js @@ -0,0 +1,8 @@ +import Vue from 'vue'; +import install from './waves'; + +const waves = function(Vue) { + Vue.directive('waves', install); +}; + +Vue.use(waves); diff --git a/src/directive/waves/waves.css b/src/directive/waves/waves.css new file mode 100644 index 000000000..af7a7efd9 --- /dev/null +++ b/src/directive/waves/waves.css @@ -0,0 +1,26 @@ +.waves-ripple { + position: absolute; + border-radius: 100%; + background-color: rgba(0, 0, 0, 0.15); + background-clip: padding-box; + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); + opacity: 1; +} + +.waves-ripple.z-active { + opacity: 0; + -webkit-transform: scale(2); + -ms-transform: scale(2); + transform: scale(2); + -webkit-transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out; + transition: opacity 1.2s ease-out, -webkit-transform 0.6s ease-out; + transition: opacity 1.2s ease-out, transform 0.6s ease-out; + transition: opacity 1.2s ease-out, transform 0.6s ease-out, -webkit-transform 0.6s ease-out; +} \ No newline at end of file diff --git a/src/directive/waves/waves.js b/src/directive/waves/waves.js new file mode 100644 index 000000000..eb2fa2cb6 --- /dev/null +++ b/src/directive/waves/waves.js @@ -0,0 +1,72 @@ +import './waves.css'; + +const context = '@@wavesContext'; + +function handleClick(el, binding) { + function handle(e) { + const customOpts = Object.assign({}, binding.value); + const opts = Object.assign({ + ele: el, // 波纹作用元素 + type: 'hit', // hit 点击位置扩散 center中心点扩展 + color: 'rgba(0, 0, 0, 0.15)' // 波纹颜色 + }, + customOpts + ); + const target = opts.ele; + if (target) { + target.style.position = 'relative'; + target.style.overflow = 'hidden'; + const rect = target.getBoundingClientRect(); + let ripple = target.querySelector('.waves-ripple'); + if (!ripple) { + ripple = document.createElement('span'); + ripple.className = 'waves-ripple'; + ripple.style.height = ripple.style.width = Math.max(rect.width, rect.height) + 'px'; + target.appendChild(ripple); + } else { + ripple.className = 'waves-ripple'; + } + switch (opts.type) { + case 'center': + ripple.style.top = rect.height / 2 - ripple.offsetHeight / 2 + 'px'; + ripple.style.left = rect.width / 2 - ripple.offsetWidth / 2 + 'px'; + break; + default: + ripple.style.top = + (e.pageY - rect.top - ripple.offsetHeight / 2 - document.documentElement.scrollTop || + document.body.scrollTop) + 'px'; + ripple.style.left = + (e.pageX - rect.left - ripple.offsetWidth / 2 - document.documentElement.scrollLeft || + document.body.scrollLeft) + 'px'; + } + ripple.style.backgroundColor = opts.color; + ripple.className = 'waves-ripple z-active'; + return false; + } + } + + if (!el[context]) { + el[context] = { + removeHandle: handle + }; + } else { + el[context].removeHandle = handle; + } + + return handle; +} + +export default { + bind(el, binding) { + el.addEventListener('click', handleClick(el, binding), false); + }, + update(el, binding) { + el.removeEventListener('click', el[context].removeHandle, false); + el.addEventListener('click', handleClick(el, binding), false); + }, + unbind(el) { + el.removeEventListener('click', el[context].removeHandle, false); + el[context] = null; + delete el[context]; + } +}; diff --git a/src/directives.js b/src/directives.js deleted file mode 100644 index dba79ca51..000000000 --- a/src/directives.js +++ /dev/null @@ -1,283 +0,0 @@ -/* eslint-disable no-useless-escape */ -import Vue from 'vue'; -import store from '@/store'; - -/** - *元素获取焦点:v-dialogDrag - * @param {*} el - * @param {*} binding - */ -Vue.directive('focus', { - // 当被绑定的元素插入到 DOM 中时 - inserted: function (el, obj) { - // 这是需要页面刚加载就能进行聚焦操作使用的钩子函数,可以省略的,视具体需求而定 - // 对值进行判断 - if (obj.value) { - // 聚焦元素 - el.focus(); - } - }, - // 当指令所在组件的 VNode 及其子 VNode 全部更新后调用 - // 这是每当绑定的值发生改变时触发的钩子函数 - componentUpdated: function (el, obj) { - if (obj.value) { - el.focus(); - } - } -}); - -/** - *弹窗拖拽:v-dialogDrag - * @param {*} el - * @param {*} binding - * @param {*} vnode - * @param {*} oldvNode - */ -Vue.directive('dialogDrag', { - bind(el) { - const dialogHeaderEl = el.querySelector('.el-dialog__header'); - const dragDom = el.querySelector('.el-dialog'); - dialogHeaderEl.style.cursor = 'move'; - - /** 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);*/ - const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null); - - dialogHeaderEl.onmousedown = (e) => { - /** 鼠标按下,计算当前元素距离可视区的距离*/ - const disX = e.clientX - dialogHeaderEl.offsetLeft; - const disY = e.clientY - dialogHeaderEl.offsetTop; - - /** 获取到的值带px 正则匹配替换*/ - let styL, styT; - - /** 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px*/ - if (sty.left.includes('%')) { - // eslint-disable-next-line no-useless-escape - styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100); - styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100); - } else { - // eslint-disable-next-line no-useless-escape - styL = +sty.left.replace(/\px/g, ''); - // eslint-disable-next-line no-useless-escape - styT = +sty.top.replace(/\px/g, ''); - } - - document.onmousemove = function (e) { - /** 通过事件委托,计算移动的距离*/ - const l = e.clientX - disX; - const t = e.clientY - disY; - - /** 移动当前元素*/ - dragDom.style.left = `${l + styL}px`; - dragDom.style.top = `${t + styT}px`; - - /** 刷新提示标签位置*/ - store.dispatch('training/emitTipFresh'); - - /** 将此时的位置传出去*/ - // binding.value({ x: e.pageX, y: e.pageY }); - }; - - document.onmouseup = function () { - document.onmousemove = null; - document.onmouseup = null; - }; - }; - } -}); - -/** - *弹窗宽度拖大,拖小:dialogDragWidth - * @param {*} el - * @param {*} binding - * @param {*} vnode - * @param {*} oldvNode - */ -Vue.directive('dialogDragWidth', { - bind(el, binding) { - const dragDom = binding.value.$el.querySelector('.el-dialog'); - - el.onmousedown = (e) => { - - /** 鼠标按下,计算当前元素距离可视区的距离*/ - const disX = e.clientX - el.offsetLeft; - - document.onmousemove = function (e) { - /** 移动时禁用默认事件*/ - e.preventDefault(); - - /** 通过事件委托,计算移动的距离*/ - const l = e.clientX - disX; - dragDom.style.width = `${l}px`; - }; - - document.onmouseup = function () { - document.onmousemove = null; - document.onmouseup = null; - }; - }; - } -}); - -/** - * 弹窗拖拽:v-quickEntryDrag - * @param {*} el - * @param {*} binding - * @param {*} vnode - * @param {*} oldvNode - */ -Vue.directive('quickMenuDrag', { - bind(el) { - const dragDom = el; - dragDom.style.cursor = 'move'; - - /** 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);*/ - const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null); - - dragDom.onmousedown = (e) => { - /** 鼠标按下,计算当前元素距离可视区的距离*/ - const disX = e.clientX; - const disY = e.clientY; - - /** 获取到的值带px 正则匹配替换*/ - let styL, styT; - - /** 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px*/ - if (sty.left.includes('%')) { - styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100); - styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100); - } else { - styL = +sty.left.replace(/\px/g, ''); - styT = +sty.top.replace(/\px/g, ''); - } - - document.onmousemove = function (e) { - /** 通过事件委托,计算移动的距离*/ - const l = e.clientX - disX; - const t = e.clientY - disY; - - /** 移动当前元素*/ - dragDom.style.left = `${l + styL}px`; - dragDom.style.top = `${t + styT}px`; - - /** 将此时的位置传出去*/ - // binding.value({ x: e.pageX, y: e.pageY }); - }; - - document.onmouseup = function () { - document.onmousemove = null; - document.onmouseup = null; - }; - }; - } -}); - -/** - *vue-自定义指令-拖拽 v-drag - */ -Vue.directive('drag', { - bind(el) { - const dragDom = el.querySelector('.reminder-box'); - const dragRight = el.querySelector('.drag-right'); - const dragLeft = el.querySelector('.drag-left'); - const dragBottom = el.querySelector('.drag-bottom'); - const dragTop = el.querySelector('.drag-top'); - const dragBody = el.querySelector('.tip-body'); - const body = el.querySelector('.tip-body-box'); - - dragRight.onmousedown = (e) => { - document.onselectstart = function () { - return false; - }; - // 宽度拖拽 - var iEvent = e || event; - var disX = iEvent.clientX; - var disW = dragDom.offsetWidth; - document.onmousemove = function (e) { - - var iEvent = e || event; - if (disW + (iEvent.clientX - disX) > 350) { - dragDom.style.width = disW + (iEvent.clientX - disX) + 'px'; - } - }; - - document.onmouseup = function () { - document.onmousemove = null; - document.onmouseup = null; - document.onselectstart = null; - }; - }; - dragLeft.onmousedown = (e) => { - document.onselectstart = function () { - return false; - }; - // 宽度拖拽 - var iEvent = e || event; - var disX = iEvent.clientX; - var disW = dragDom.offsetWidth; - var OFFLeft = dragDom.offsetLeft; - document.onmousemove = function (e) { - const iEvent = e || event; - const width = disW - (iEvent.clientX - disX); - if (width > 350) { - dragDom.style.width = disW - (iEvent.clientX - disX) + 'px'; - dragDom.style.left = OFFLeft + (iEvent.clientX - disX) + 'px'; - } - }; - - document.onmouseup = function () { - document.onmousemove = null; - document.onmouseup = null; - document.onselectstart = null; - }; - }; - dragBottom.onmousedown = (e) => { - document.onselectstart = function () { - return false; - }; - // 宽度拖拽 - var iEvent = e || event; - var disY = iEvent.clientY; - var disH = dragDom.offsetHeight; - document.onmousemove = function (e) { - var iEvent = e || event; - if (disH + (iEvent.clientY - disY) > 200) { - dragDom.style.height = disH + (iEvent.clientY - disY) + 'px'; - body.style.height = disH + (iEvent.clientY - disY) - 40 + 'px'; - dragBody.style.height = disH + (iEvent.clientY - disY) - 100 + 'px'; - } - }; - - document.onmouseup = function () { - document.onmousemove = null; - document.onmouseup = null; - document.onselectstart = null; - }; - }; - dragTop.onmousedown = (e) => { - document.onselectstart = function () { - return false; - }; - // 宽度拖拽 - var iEvent = e || event; - var disY = iEvent.clientY; - var disH = dragDom.offsetHeight; - var OOFTop = dragDom.offsetTop; - document.onmousemove = function (e) { - var iEvent = e || event; - if (disH - (iEvent.clientY - disY) > 200) { - dragDom.style.height = disH - (iEvent.clientY - disY) + 'px'; - body.style.height = disH - (iEvent.clientY - disY) - 40 + 'px'; - dragBody.style.height = disH - (iEvent.clientY - disY) - 100 + 'px'; - dragDom.style.top = OOFTop + (iEvent.clientY - disY) + 'px'; - } - }; - - document.onmouseup = function () { - document.onmousemove = null; - document.onmouseup = null; - document.onselectstart = null; - }; - }; - } -}); diff --git a/src/i18n/langs/en/approval.js b/src/i18n/langs/en/approval.js new file mode 100644 index 000000000..0625695be --- /dev/null +++ b/src/i18n/langs/en/approval.js @@ -0,0 +1,36 @@ +export default { + applicant: 'Applicant', + map: 'Map', + status: 'Status', + unpublished: 'Unpublished', + pendingReview: 'PendingReview', + releaseSuccess: 'ReleaseSuccess', + overrule: 'Overrule', + scriptName: 'Script Name', + scriptDescription: 'Script Description', + applyTime: 'Apply Time', + applyPassed: 'Apply Passed', + applyReject: 'Apply Reject', + scriptPreview: 'Script Preview', + passedScript: 'Passed Script', + rejectScript: 'Reject Script', + explanation: 'Explanation', + inputScriptName: 'Please input script name', + inputRejectExplanation: 'Please input reject explanation', + passedScriptSuccess: 'Passed script success', + passedScriptFailed: 'Passed script failed', + rejectScriptSuccess: 'Reject script success', + rejectScriptFailed: 'Reject script failed', + runPlanName: 'Run Plan Name', + passedRunPlan: 'Passed Run Plan', + rejectRunPlan: 'Reject Run Plan', + runPlanPreview: 'RunPlan Preview', + inputRunPlanName: 'Please input run plan name', + courseDescription: 'Course description', + lookOver: 'Look over', + courseDetails: 'Course details', + instructions: 'Instructions', + chapterTrainingName: 'Chapter/training name', + revokeScriptSuccess: 'Revoke script success', + revokeScriptFailed: 'Revoke script failed' +}; diff --git a/src/i18n/langs/en/demonstration.js b/src/i18n/langs/en/demonstration.js index fb0ed6166..eed33a3c8 100644 --- a/src/i18n/langs/en/demonstration.js +++ b/src/i18n/langs/en/demonstration.js @@ -1,7 +1,7 @@ export default { simulationSystem: 'Urban rail transit simulation system', simulationSystemDescription: 'Based on the subway signal system, the urban rail transit simulation system is reformed for the training part, aiming to build a set of professional simulation system for driving demonstration. The system has high flexibility for future expansion and upgrading. Meanwhile, the simulation system has two modes of normal operation and fault operation. Besides normal functional operation, it can also conduct fault simulation of equipment.', - simulationName: 'Simulation name:', + simulationName: 'Simulation module:', noSimulationProducts: 'No simulation products', productDescription: 'Product description:', startSimulation: 'Start the simulation', diff --git a/src/i18n/langs/en/display.js b/src/i18n/langs/en/display.js index 05f482613..04e387d11 100644 --- a/src/i18n/langs/en/display.js +++ b/src/i18n/langs/en/display.js @@ -79,6 +79,7 @@ export default { schema: { selectProduct: 'Please select product type', loadScript: 'Load Script', + selectRoles: 'Select Roles', previewRunDiagram: 'Preview Run Diagram', loadRunDiagram: 'Load Run Diagram', faultSetting: 'Fault Setting', @@ -123,6 +124,7 @@ export default { dispatcher: 'Dispatcher', attendant: 'Station', audience: 'Audience', + repair: 'Repair', driver: 'Train', none: 'None' }, diff --git a/src/i18n/langs/en/error.js b/src/i18n/langs/en/error.js index bdbc822f5..a991c67b1 100644 --- a/src/i18n/langs/en/error.js +++ b/src/i18n/langs/en/error.js @@ -91,5 +91,8 @@ export default { getRunGraphDataFailed: 'Failed to get run graph data', getStationListFail: 'Failed to get station list', obtainTrainGroupNumberFailed: 'Failed to obtain train group number', - getTrainListFailed: 'Failed to get train list' + getTrainListFailed: 'Failed to get train list', + getDraftCourseDataFailed: 'Failed to get draft course data!', + failedToGetCourseData: 'Failed to get course data!', + failedToGetSystemData: 'Failed to get system data!' }; diff --git a/src/i18n/langs/en/exam.js b/src/i18n/langs/en/exam.js index 3c42742b3..97fc53ffc 100644 --- a/src/i18n/langs/en/exam.js +++ b/src/i18n/langs/en/exam.js @@ -15,20 +15,21 @@ export default { returnToExamList: 'Return to the exam list', totalScore: 'Total score', itemList: 'Item list', - courseName: 'Course name', - permissionsDetails: 'Permissions for details', + courseName: 'Examination subject', + permissionsDetails: 'Permission details', buy: 'buy', distributePermission: 'Permission distribution (examination)', viewCoursePapers: 'View course papers', - examStartTime: 'Exam start time', - theExamIsReadyAnyTime: 'The exam is ready any time', - testExplanation: 'Test Explanation', - examTimeAvailable: 'Exam time available', - fullMarksInTheExam: 'Full marks in the exam', - passMarkTheExam: 'Pass mark the exam', - examinationRules: 'Examination rules', + examStartTime: 'Start time', + theExamIsReadyAnyTime: 'Anytime you are available', + minutes: 'min', + testExplanation: 'Notes', + examTimeAvailable: 'Duration', + fullMarksInTheExam: 'Full marks', + passMarkTheExam: 'Passing score', + examinationRules: 'Rules', trainingType: 'Training type', - numberOfQuestions: 'Number of questions', + numberOfQuestions: 'Quantity', score: 'Score', startTheExam: 'Start the exam', examinationTiming: 'Examination timing', diff --git a/src/i18n/langs/en/global.js b/src/i18n/langs/en/global.js index 8713028b8..14dc8c063 100644 --- a/src/i18n/langs/en/global.js +++ b/src/i18n/langs/en/global.js @@ -40,7 +40,7 @@ export default { mobile: 'mobile', name: 'Name', code: 'Code', - status: 'Status', + status: 'State', remarks: 'Remarks', selectionTime: 'Selection of time', permissionNumber: 'Number of permissions', @@ -56,11 +56,11 @@ export default { transferScreenPermission: 'Large screen rights transfer', today: 'Today', total: 'Total', - index: 'Indexes', - startTime: 'Start time', - endTime: 'End time', - isForever: 'Forever', - remains: 'Remainder', + index: 'Index', + startTime: 'Start', + endTime: 'End', + isForever: 'Timelimit', + remains: 'Remaining', hasPermissionTip: 'Public permission is {0}, private permission is {1}', create: 'Create', update: 'Update', @@ -158,5 +158,6 @@ export default { processFailure: 'Process failure', enterLastStep: 'Please enter a hint and click next', pleaseOpearte: 'Please proceed', - help: 'help' + help: 'help', + city: 'City' }; diff --git a/src/i18n/langs/en/index.js b/src/i18n/langs/en/index.js index 15a13f953..6a41b8f3e 100644 --- a/src/i18n/langs/en/index.js +++ b/src/i18n/langs/en/index.js @@ -24,6 +24,8 @@ import joinTraining from './joinTraining'; import trainRoom from './trainRoom'; import menu from './menu'; import ibp from './ibp'; +import approval from './approval'; +import systemGenerate from './systemGenerate'; export default { ...enLocale, @@ -51,5 +53,7 @@ export default { joinTraining, trainRoom, menu, - ibp + ibp, + approval, + systemGenerate }; diff --git a/src/i18n/langs/en/lesson.js b/src/i18n/langs/en/lesson.js index 36b0bda49..76a476b97 100644 --- a/src/i18n/langs/en/lesson.js +++ b/src/i18n/langs/en/lesson.js @@ -102,5 +102,19 @@ export default { train: 'Train', station: 'Station', trainWindow: 'Train window', - editStepInfo: 'Edit step information' + editStepInfo: 'Edit step information', + trainingRecord: 'Training recording', + lesson: 'Lesson', + taskManage: 'Task manage', + trainingRule: 'Training rule', + trainingManage: 'Training manage', + newConstruction: 'New', + applicationForRelease: 'Application for release', + rejectReason: 'Reason for rejection', + withdraw: 'Withdraw', + notRelease: 'Not release', + pendingReview: 'Pending review', + published: 'Published', + rejected: 'Rejected', + review: 'Review' }; diff --git a/src/i18n/langs/en/map.js b/src/i18n/langs/en/map.js index a2ea05ea2..0e09fc04c 100644 --- a/src/i18n/langs/en/map.js +++ b/src/i18n/langs/en/map.js @@ -11,6 +11,7 @@ export default { saveMapAs: 'Save the map as', create: 'establish', dataVerification: 'data verification', + edit3d: '3D editor', logicalView: 'logical view', physicalView: 'Physical view', mixedView: 'The mixed view', diff --git a/src/i18n/langs/en/menu.js b/src/i18n/langs/en/menu.js index 8026f15ff..fab47a954 100644 --- a/src/i18n/langs/en/menu.js +++ b/src/i18n/langs/en/menu.js @@ -491,5 +491,6 @@ export default { settingTrain: 'Setting train', sourceTrainWindow: 'Source train window', trainWindow: 'Train window', - targetTrainWindow: 'Target train window' + targetTrainWindow: 'Target train window', + category: 'category' }; diff --git a/src/i18n/langs/en/planMonitor.js b/src/i18n/langs/en/planMonitor.js index 9c71b2747..a6753ffdb 100644 --- a/src/i18n/langs/en/planMonitor.js +++ b/src/i18n/langs/en/planMonitor.js @@ -1,16 +1,16 @@ export default { updateStation: { - level1: 'level one: ', - level2: 'level two: ', - level3: 'level three: ', - level4: 'level four: ', - level5: 'level five: ', + level1: 'level1: ', + level2: 'level2: ', + level3: 'level3: ', + level4: 'level4: ', + level5: 'level5: ', updateData: 'Update data', - pleaseInputLevel1: 'Please input level one', - pleaseInputLevel2: 'Please input level two', - pleaseInputLevel3: 'Please input level three', - pleaseInputLevel4: 'Please input level four', - pleaseInputLevel5: 'Please input level five', + pleaseInputLevel1: 'Please input level1', + pleaseInputLevel2: 'Please input level2', + pleaseInputLevel3: 'Please input level3', + pleaseInputLevel4: 'Please input level4', + pleaseInputLevel5: 'Please input level5', systemOutPut: 'System output', selectPrintArea: 'Selec print area', selectDeleteRoute: 'Select delete route', @@ -229,5 +229,9 @@ export default { editPlanningTrain: 'Edit planning train', runGraphName: 'Run graph name', tipOperationTime: '请先设置区段站间运行时间, 【文件】-> 【修改站间运行时间】', - serverTrainNum: '表号车次号' + serverTrainNum: '表号车次号', + explanation: 'Explanation', + creationDate: 'Creation date', + load: 'Load', + modifyName: 'Modify name' }; diff --git a/src/i18n/langs/en/router.js b/src/i18n/langs/en/router.js index daff10210..18e6cba42 100644 --- a/src/i18n/langs/en/router.js +++ b/src/i18n/langs/en/router.js @@ -7,6 +7,9 @@ export default { runPlanManage: 'Run plan', productEdit: 'Product editor', + designhomePage: 'Public map', + designUserPage: 'Personal map', + lessaonManage: 'Lesson', lessonEdit: 'Lesson editor', trainingRecord: 'Trainning recording', @@ -58,5 +61,11 @@ export default { userExamManage: 'User examination management', userSimulationManage: 'User simulation management', existingSimulation: 'Existence simulation management', - ibpDraw: 'ibp Draw' + ibpDraw: 'Ibp Draw', + trainingPlatform: 'trainingPlatform', + releaseApplication: 'Release application', + courseApplication: 'Course release application', + scriptReleaseApplication: 'Script release application', + runGraphReleaseApplication: 'Run graph release application', + subsystemGeneration: 'Subsystem generation' }; diff --git a/src/i18n/langs/en/rules.js b/src/i18n/langs/en/rules.js index bc5b682c8..fc4e61559 100644 --- a/src/i18n/langs/en/rules.js +++ b/src/i18n/langs/en/rules.js @@ -239,9 +239,9 @@ export default { selectOneTrainingType: 'Only one training type can be selected', enterProductType: 'Please enter product type', selectAssociatedStation: 'Please select the associated station', - pleaseSelectTrainDir: '请选择列车所在方向', - pleaseEnterSplit: '请输入拆分数量', - pleaseEnterSplitNumber: '请输入合理的拆分数量', + pleaseSelectTrainDir: 'Please select the direction of the train', + pleaseEnterSplit: 'Please enter the split number', + pleaseEnterSplitNumber: 'Please enter a reasonable number of split', enterScale: 'Please enter the zoom ratio', enterXOffset: 'Please enter X offset', enterYOffset: 'Please enter Y offset', @@ -276,7 +276,7 @@ export default { accessNumber: 'Please input the number of permissions', courseNameEmpty: 'Course name cannot be empty', purchaseMonth: 'Please input the number of months to buy', - pleaseEnterGoodPrice: '请输入商品价格', + pleaseEnterGoodPrice: 'Please enter the price of the goods', enterTheNameOfTheRunGraph: 'Please enter the name of the run graph', chooseToPublishTheRunGraph: 'Please choose to publish the run chart', enterTheAlarmCode: 'Please enter the alarm code', @@ -306,5 +306,6 @@ export default { enterTheKeyWidth: 'Please enter the key width', enterTheKeyDirection: 'Please select the key direction', enterTheUpperText: 'Please enter the upper text', - enterTheLowerText: 'Please enter the lower text' + enterTheLowerText: 'Please enter the lower text', + enterRejectReason: 'Please enter reject reason' }; diff --git a/src/i18n/langs/en/scriptRecord.js b/src/i18n/langs/en/scriptRecord.js index 9727c3b75..165e3dd22 100644 --- a/src/i18n/langs/en/scriptRecord.js +++ b/src/i18n/langs/en/scriptRecord.js @@ -4,6 +4,7 @@ export default { saveData: 'Save Data', mapList: 'Map List', createScript: 'Create Script', + modifyScript: 'Modify Script', scriptName: 'Script Name', addScript: 'Add Script', map: 'Map', @@ -15,6 +16,7 @@ export default { createScriptFail: 'Create script failure', scriptDetail: 'Script Detail', scriptRecord: 'Edit', + scriptCreate: 'Create', scriptModify: 'Modify', scriptDelete: 'Delete', getScriptFail: 'Get script information failure', @@ -81,7 +83,25 @@ export default { scriptBack: 'Back', speakTo: 'to', executeCommandTips: 'execute command: ', + operate: 'Operate', + scriptList: 'Script List', + applyPublish: 'Apply for release', + preview: 'Preview', + status: 'Status', + applyRevoke: 'Revoke', + publish: 'Publish', + revokeReason: 'Revoke explanation', language: 'language', chinese: 'Chinese Simplified', - english: 'English' + english: 'English', + publishScript: 'Publish Script', + releaseScriptSuccess: 'release script success', + releaseScriptFailed: 'release script failed', + publishScriptSuccess: 'Publish Script Success', + publishScriptFailed: 'Publish Script Failed', + releaseScriptTip: 'This action will apply to release script, whether to continue?', + revokeScriptTip: 'This action will undo release script, whether to continue?', + inputScriptName: 'Please input script name', + selectMap: 'Please select map', + inputScriptDescription: 'Please input script description' }; diff --git a/src/i18n/langs/en/systemGenerate.js b/src/i18n/langs/en/systemGenerate.js new file mode 100644 index 000000000..c47b10e42 --- /dev/null +++ b/src/i18n/langs/en/systemGenerate.js @@ -0,0 +1,30 @@ +export default { + map: 'Map', + mapName: 'Map Name', + prdName: 'Product Name', + name: 'Name', + type: 'Type', + updateData: 'Modify', + generate: 'Generate', + selectMap: 'Please select map', + generateSuccess: 'The subsystem under the map is generated successfully!', + generateFail: 'The subsystem under the map failed to generate!', + inputName: 'Please input subsystem name', + selectType: 'Please select type', + selectPrdName: 'Please select product name', + createSubSystem: 'Commission SubSystem', + modifySubSystem: 'Modify SubSystem', + commission: 'Commission', + customized: 'Project', + selectProject: 'Please select project', + createMapSystemSuccess: 'Create map system success', + createMapSystemFail: 'Create map system failed', + getSubSystemInfoFail: 'Get subsystem infomation failed', + updateMapSystemSuccess: 'Update map system success', + updateMapSystemFail: 'Update map system failed', + generation: 'One-click Generation', + deleteData: 'Delete', + deleteMapSystemSuccess: 'Delete map system success', + deleteMapSystemFail: 'Delete map system fail', + deleteMapSystemTip: 'This action will apply to delete map system, whether to continue?' +}; diff --git a/src/i18n/langs/en/tip.js b/src/i18n/langs/en/tip.js index bededf99e..0906d6b29 100644 --- a/src/i18n/langs/en/tip.js +++ b/src/i18n/langs/en/tip.js @@ -198,5 +198,12 @@ export default { runGraphNameModifiedSuccessfully: 'Run graph name modified successfully!', modifyRunGraphNameFailed: 'Modify run graph name failed!', planCreationSuccessful: 'Plan creation successful!', - createPlanFailed: 'Failed to create plan!' + createPlanFailed: 'Failed to create plan!', + cancelCoursePublicationHint: 'This action will cancel the course publication application, is it OK?', + cancelTheSuccessfulApplicationOfTheCourseRelease: 'Cancel the successful application of the course release!', + cancellationOfCoursePublicationApplicationFailed: 'Cancellation of course publication application failed!', + publishTheCourseHint: 'This operation will publish the course. Are you sure?', + rejectedCourseReleaseApplicationSuccessful: 'Rejected course release application successful!', + rejectedCourseReleaseApplicationFailed: 'Rejected course release application failed!', + duplicatePlanFailedTips: 'The interval needs to be more than 30 seconds or the times is more than 1' }; diff --git a/src/i18n/langs/zh/approval.js b/src/i18n/langs/zh/approval.js new file mode 100644 index 000000000..db8c4db95 --- /dev/null +++ b/src/i18n/langs/zh/approval.js @@ -0,0 +1,37 @@ +export default { + applicant: '申请人', + map: '地图', + status: '状态', + unpublished: '未发布', + pendingReview: '待审核', + releaseSuccess: '发布成功', + overrule: '驳回', + scriptName: '剧本名称', + scriptDescription: '剧本简介', + applyTime: '申请时间', + applyPassed: '通过', + applyReject: '驳回', + scriptPreview: '预览', + passedScript: '通过剧本', + rejectScript: '驳回剧本', + explanation: '驳回说明', + inputScriptName: '请输入剧本名称', + inputRejectExplanation: '请输入驳回说明', + passedScriptSuccess: '通过剧本成功', + passedScriptFailed: '通过剧本失败', + rejectScriptSuccess: '驳回剧本成功', + rejectScriptFailed: '驳回剧本失败', + runPlanName: '运行图名称', + passedRunPlan: '通过运行图', + rejectRunPlan: '驳回运行图', + runPlanPreview: '预览', + inputRunPlanName: '请输入运行图名称', + courseDescription: '课程说明', + lookOver: '查看', + courseDetails: '课程详情', + instructions: '说明', + chapterTrainingName: '章节/课程名称', + revokeScriptSuccess: '撤回成功', + revokeScriptFailed: '撤回失败' + +}; diff --git a/src/i18n/langs/zh/display.js b/src/i18n/langs/zh/display.js index d60dc39e6..219c09bd7 100644 --- a/src/i18n/langs/zh/display.js +++ b/src/i18n/langs/zh/display.js @@ -79,6 +79,7 @@ export default { schema: { selectProduct: '请选择产品类型', loadScript: '加载剧本', + selectRoles: '选择角色', previewRunDiagram: '运行图预览', loadRunDiagram: '运行图加载', faultSetting: '故障设置', @@ -123,6 +124,7 @@ export default { dispatcher: '行调', attendant: '车站', audience: '观众', + repair: '通号', driver: '列车', none: '无' }, diff --git a/src/i18n/langs/zh/error.js b/src/i18n/langs/zh/error.js index 2c53da998..cd065c76d 100644 --- a/src/i18n/langs/zh/error.js +++ b/src/i18n/langs/zh/error.js @@ -91,5 +91,8 @@ export default { getRunGraphDataFailed: '获取运行图数据失败', getStationListFail: '获取车站列表失败', obtainTrainGroupNumberFailed: '获取列车车组号失败', - getTrainListFailed: '获取列车列表失败' + getTrainListFailed: '获取列车列表失败', + getDraftCourseDataFailed: '获取草稿课程数据失败!', + failedToGetCourseData: '获取课程数据失败!', + failedToGetSystemData: '获取系统数据失败!' }; diff --git a/src/i18n/langs/zh/exam.js b/src/i18n/langs/zh/exam.js index 70ce7b59c..970e474e7 100644 --- a/src/i18n/langs/zh/exam.js +++ b/src/i18n/langs/zh/exam.js @@ -22,6 +22,7 @@ export default { viewCoursePapers: '查看课程试卷', nameOfTestPaper: '试卷名称', examStartTime: '考试时间', + minutes: '分钟', theExamIsReadyAnyTime: '随时都可以考试', testExplanation: '考试说明', examTimeAvailable: '考试时长', diff --git a/src/i18n/langs/zh/global.js b/src/i18n/langs/zh/global.js index 5e1b92ba7..801450af3 100644 --- a/src/i18n/langs/zh/global.js +++ b/src/i18n/langs/zh/global.js @@ -158,6 +158,6 @@ export default { processFailure: '处理失败', enterLastStep: '请输入提示并点击下一步', pleaseOpearte: '请开始操作', - help: '帮助' - + help: '帮助', + city: '城市' }; diff --git a/src/i18n/langs/zh/index.js b/src/i18n/langs/zh/index.js index da016c94d..c84bf1120 100644 --- a/src/i18n/langs/zh/index.js +++ b/src/i18n/langs/zh/index.js @@ -24,6 +24,8 @@ import joinTraining from './joinTraining'; import trainRoom from './trainRoom'; import menu from './menu'; import ibp from './ibp'; +import approval from './approval'; +import systemGenerate from './systemGenerate'; export default { ...cnLocale, @@ -51,5 +53,7 @@ export default { joinTraining, trainRoom, menu, - ibp + ibp, + approval, + systemGenerate }; diff --git a/src/i18n/langs/zh/lesson.js b/src/i18n/langs/zh/lesson.js index 85e3d108e..b0978644a 100644 --- a/src/i18n/langs/zh/lesson.js +++ b/src/i18n/langs/zh/lesson.js @@ -101,6 +101,21 @@ export default { train: '列车', station: '车站', trainWindow: '车次窗', - countSkinCode: '复制皮肤与被复制皮肤类型不能一样' + countSkinCode: '复制皮肤与被复制皮肤类型不能一样', + trainingRecord: '实训录制', + lesson: '课程', + taskManage: '任务管理', + trainingRule: '操作定义', + trainingManage: '实训管理', + newConstruction: '新建', + applicationForRelease: '申请发布', + rejectReason: '驳回原因', + withdraw: '撤销', + notRelease: '未发布', + pendingReview: '待审核', + published: '已发布', + rejected: '已驳回', + review: '查看' + }; diff --git a/src/i18n/langs/zh/map.js b/src/i18n/langs/zh/map.js index 0caac8094..dbfefb015 100644 --- a/src/i18n/langs/zh/map.js +++ b/src/i18n/langs/zh/map.js @@ -12,6 +12,7 @@ export default { saveMapAs: '地图另存为', create: '创建', dataVerification: '数据校验', + edit3d: '三维编辑', logicalView: '逻辑视图', physicalView: '物理视图', mixedView: '混合视图', @@ -116,7 +117,7 @@ export default { editAutoRouting: '编辑自动信号', setSwitch: '联动道岔', pathUnit: '路径单元', - jlmap3d: '三维化编辑', + jlmap3d: '三维编辑', automaticSignalList: '自动信号列表', automaticSignalCode: '自动信号编码', diff --git a/src/i18n/langs/zh/menu.js b/src/i18n/langs/zh/menu.js index 21ca42c26..c4cd66d80 100644 --- a/src/i18n/langs/zh/menu.js +++ b/src/i18n/langs/zh/menu.js @@ -487,6 +487,7 @@ export default { settingTrain: '设置列车', sourceTrainWindow: '源车次窗', trainWindow: '车次窗', - targetTrainWindow: '目的车次窗' + targetTrainWindow: '目的车次窗', + category: '类别' }; diff --git a/src/i18n/langs/zh/planMonitor.js b/src/i18n/langs/zh/planMonitor.js index e00dbe117..1bd84440d 100644 --- a/src/i18n/langs/zh/planMonitor.js +++ b/src/i18n/langs/zh/planMonitor.js @@ -232,5 +232,9 @@ export default { endTime: '终到时间', editPlanningTrain: '编辑计划车', tipOperationTime: '请先设置区段站间运行时间, 【文件】-> 【修改站间运行时间】', - serverTrainNum: '表号车次号' + serverTrainNum: '表号车次号', + explanation: '驳回说明', + creationDate: '创建日期', + load: '加载', + modifyName: '修改名称' }; diff --git a/src/i18n/langs/zh/router.js b/src/i18n/langs/zh/router.js index 118b85442..8fea8e837 100644 --- a/src/i18n/langs/zh/router.js +++ b/src/i18n/langs/zh/router.js @@ -1,6 +1,9 @@ export default { homePage: '首页', + designhomePage: '公共地图', + designUserPage: '个人地图', + mapManage: '地图管理', skinManage: '皮肤管理', mapDraw: '地图绘制', @@ -59,5 +62,11 @@ export default { userSimulationManage: '用户仿真统计', existingSimulation: '存在仿真管理', - ibpDraw: 'Ibp盘绘制' + ibpDraw: 'Ibp盘绘制', + trainingPlatform: '实训平台', + releaseApplication: '发布申请', + courseApplication: '课程发布申请', + scriptReleaseApplication: '剧本发布申请', + runGraphReleaseApplication: '运行图发布申请', + subsystemGeneration: '子系统生成' }; diff --git a/src/i18n/langs/zh/rules.js b/src/i18n/langs/zh/rules.js index c91b14297..022b62002 100644 --- a/src/i18n/langs/zh/rules.js +++ b/src/i18n/langs/zh/rules.js @@ -308,5 +308,6 @@ export default { enterTheKeyWidth: '请输入钥匙宽度', selectTheKeyDirection: '请选择钥匙朝向', enterTheUpperText: '请输入上侧文字', - enterTheLowerText: '请输入下侧文字' + enterTheLowerText: '请输入下侧文字', + enterRejectReason: '请输入驳回说明' }; diff --git a/src/i18n/langs/zh/scriptRecord.js b/src/i18n/langs/zh/scriptRecord.js index 89eb76ee4..5f93c5a3e 100644 --- a/src/i18n/langs/zh/scriptRecord.js +++ b/src/i18n/langs/zh/scriptRecord.js @@ -4,6 +4,7 @@ export default { saveData: '保存数据', mapList: '地图列表', createScript: '创建剧本', + modifyScript: '修改剧本', scriptName: '剧本名称', addScript: '添加剧本', map: '所属地图', @@ -15,6 +16,7 @@ export default { createScriptFail: '创建剧本失败', scriptDetail: '剧本详情', scriptRecord: '编制', + scriptCreate: '创建', scriptModify: '修改', scriptDelete: '删除', getScriptFail: '获取剧本信息失败', @@ -82,7 +84,25 @@ export default { scriptBack: '返回', speakTo: '对', executeCommandTips: '执行指令: ', + operate: '操作', + scriptList: '剧本列表', + applyPublish: '申请发布', + preview: '预览', + status: '状态', + applyRevoke: '撤回', + publish: '发布', + revokeReason: '驳回原因', language: '语言', chinese: '中文', - english: '英文' + english: '英文', + publishScript: '发布剧本', + releaseScriptSuccess: '申请发布成功', + releaseScriptFailed: '申请发布失败', + publishScriptSuccess: '发布成功', + publishScriptFailed: '发布失败', + releaseScriptTip: '此操作将申请发布剧本, 是否继续?', + revokeScriptTip: '此操作将撤销发布剧本申请, 是否继续?', + inputScriptName: '请输入剧本', + selectMap: '请选择地图', + inputScriptDescription: '请输入剧本描述' }; diff --git a/src/i18n/langs/zh/systemGenerate.js b/src/i18n/langs/zh/systemGenerate.js new file mode 100644 index 000000000..059145485 --- /dev/null +++ b/src/i18n/langs/zh/systemGenerate.js @@ -0,0 +1,31 @@ +export default { + map: '地图', + mapName: '地图名称', + prdName: '产品名称', + name: '名称', + type: '类型', + updateData: '更新', + generate: '生成', + selectMap: '请选择地图', + generateSuccess: '生成该地图下子系统成功!', + generateFail: '生成该地图下子系统失败!', + inputName: '请输入子系统名称', + selectType: '请选择类型', + selectPrdName: '请选择产品名称', + createSubSystem: '定制子系统', + modifySubSystem: '修改子系统', + commission: '定制', + customized: '项目', + selectProject: '请选择项目', + createMapSystemSuccess: '创建地图系统成功', + createMapSystemFail: '创建地图系统失败', + getSubSystemInfoFail: '获取子系统信息失败', + updateMapSystemSuccess: '更新地图系统成功', + updateMapSystemFail: '更新地图系统失败', + generation: '一键生成', + deleteData: '删除', + deleteMapSystemSuccess: '删除地图系统成功', + deleteMapSystemFail: '删除地图系统失败', + deleteMapSystemTip: '此操作将删除地图系统, 是否继续?' + +}; diff --git a/src/i18n/langs/zh/tip.js b/src/i18n/langs/zh/tip.js index 79890a85e..a84170e28 100644 --- a/src/i18n/langs/zh/tip.js +++ b/src/i18n/langs/zh/tip.js @@ -198,5 +198,12 @@ export default { runGraphNameModifiedSuccessfully: '修改运行图名称成功!', modifyRunGraphNameFailed: '修改运行图名称失败!', planCreationSuccessful: '创建计划成功!', - createPlanFailed: '创建计划失败!' + createPlanFailed: '创建计划失败!', + cancelCoursePublicationHint: '此操作将撤销课程发布申请,是否确定?', + cancelTheSuccessfulApplicationOfTheCourseRelease: '撤销课程发布申请成功!', + cancellationOfCoursePublicationApplicationFailed: '撤销课程发布申请失败!', + publishTheCourseHint: '此操作将发布课程,是否确定?', + rejectedCourseReleaseApplicationSuccessful: '驳回课程发布申请成功!', + rejectedCourseReleaseApplicationFailed: '驳回课程发布申请失败!', + duplicatePlanFailedTips: '间隔时间需要大于30秒或次数大于1' }; diff --git a/src/jlmap3d/edit/Jlmap3ddata.js b/src/jlmap3d/edit/Jlmap3ddata.js index b9a37d365..e93eaa0af 100644 --- a/src/jlmap3d/edit/Jlmap3ddata.js +++ b/src/jlmap3d/edit/Jlmap3ddata.js @@ -154,7 +154,7 @@ export function Jlmap3ddata(mapid,scope){ }) .then(function(data){ //console.log(data); - return jlmap3ddata.signallist.loadpromise(signaldata,scene,assetloader); + return jlmap3ddata.signallist.loadpromise(signaldata,scene,assetloader,mapdata.signalList); }) .then(function(data){ //console.log(data); diff --git a/src/jlmap3d/edit/connect/getmodels.js b/src/jlmap3d/edit/connect/getmodels.js index dffc3782b..c8e2619ea 100644 --- a/src/jlmap3d/edit/connect/getmodels.js +++ b/src/jlmap3d/edit/connect/getmodels.js @@ -48,7 +48,8 @@ export function getmodels(data) { rightlist:data.mapdata.linklist.linksgroup.children[i].rightlist, leftlist:data.mapdata.linklist.linksgroup.children[i].leftlist, lp:data.mapdata.linklist.linksgroup.children[i].lp, - rp:data.mapdata.linklist.linksgroup.children[i].rp + rp:data.mapdata.linklist.linksgroup.children[i].rp, + rail:data.mapdata.linklist.linksgroup.children[i].rail, } links.push(link); } @@ -57,6 +58,7 @@ export function getmodels(data) { //section隧道 console.log(data.mapdata.sectionlist.sections); let sections = []; + for(let i=0;idata.rp.y){ - testmesh2.rotation.z = 0.197; + testmesh2.rotation.z = 0.218; data.lp.x = data.rp.x - (data.lengthFact)*Math.cos(testmesh2.rotation.z); data.lp.y = data.rp.y + (data.lengthFact)*Math.sin(testmesh2.rotation.z); }else if(data.lp.ydata.rp.y){ - testmesh2.rotation.z = 0.197; + testmesh2.rotation.z = 0.218; data.rp.x = data.lp.x+(data.lengthFact)*Math.cos(testmesh2.rotation.z); data.rp.y = data.lp.y-(data.lengthFact)*Math.sin(testmesh2.rotation.z); }else if(data.lp.y link.lengthfact/2){ + posx = link.position.x + signaldata.offset - link.lengthfact/2-10; + }else{ + posx = link.position.x - (link.lengthfact/2 - signaldata.offset)+10; + } + //根据线路方向修改信号灯位置 + if(signaldata.directionType == "01"){ + signaldata.position.set(posx,0,link.position.z-3); + signaldata.rotation.z = ( Math.PI / 2 ); + }else if(signaldata.directionType == "02"){ + signaldata.position.set(posx,0,link.position.z+3); + signaldata.rotation.z = ( - Math.PI / 2 ); + } + } + }; this.init = function(data,realsectionlist,scene,assetloader){ diff --git a/src/jlmap3d/edit/jlmap3dedit.js b/src/jlmap3d/edit/jlmap3dedit.js index f2ee2712f..abaef70ee 100644 --- a/src/jlmap3d/edit/jlmap3dedit.js +++ b/src/jlmap3d/edit/jlmap3dedit.js @@ -158,9 +158,12 @@ export function JLmap3dEdit(dom, data, mapid) { }; this.export = function(){ - var exporter = new THREE.OBJExporter(); - console.log(scope.exportmodel); - var result = exporter.parse( scope.exportmodel ); + let exporter = new THREE.OBJExporter(); + console.log(scope.mapdata); + // let exportmodels = scope.mapdata.linklist.linksgroup; + // let exportmodels = scope.mapdata.sectionlist.switchgroup; + let exportmodels = scope.mapdata.stationstandlist.group; + let result = exporter.parse( exportmodels ); console.log(result); } @@ -243,6 +246,8 @@ export function JLmap3dEdit(dom, data, mapid) { this.autoss = function(){ console.log("autoss"); + console.log(scope.mapdata); + scope.mapdata.signallist.resetsignal(scope.mapdata.linklist); }; function onWindowResize() { diff --git a/src/jlmap3d/jl3ddrive/jl3ddrive.js b/src/jlmap3d/jl3ddrive/jl3ddrive.js index b99903cfc..4cd1fff72 100644 --- a/src/jlmap3d/jl3ddrive/jl3ddrive.js +++ b/src/jlmap3d/jl3ddrive/jl3ddrive.js @@ -6,11 +6,6 @@ import {OBJLoader} from '@/jlmap3d/main/loaders/OBJLoader.js'; import {MTLLoader} from '@/jlmap3d/main/loaders/MTLLoader.js'; import { FBXLoader } from '@/jlmap3d/main/loaders/FBXLoader.js'; -// controls -import {OrbitControls} from '@/jlmap3d/main/control/OrbitControls.js'; -import { DragControls } from '@/jlmap3d/main/control/DragControls.js'; -// component - // data import { Jl3ddata } from '@/jlmap3d/main/model/jl3ddata'; @@ -20,11 +15,14 @@ import { SetRender } from '@/jlmap3d/config/SetRender'; import { SetScene } from '@/jlmap3d/config/SetScene'; import { SetLights } from '@/jlmap3d/config/SetLights'; +// controls +import {OrbitControls} from '@/jlmap3d/main/control/OrbitControls.js'; +import { DragControls } from '@/jlmap3d/main/control/DragControls.js'; + // 加载器 import { ModelLoad } from '@/jlmap3d/main/loaders/simulationloader'; // connect import {Jl3dDriving} from '@/jlmap3d/jl3ddrive/moveupdate/DrivingConnect'; - import { getPublishMapVersion, getPublishMapDetail, getPublish3dMapDetail} from '@/api/jlmap3d/load3ddata'; // utils @@ -38,9 +36,9 @@ import {MouseControls} from '@/jlmap3d/main/control/FirstControls'; var clock = new THREE.Clock(); -export function JLmapDriving(dom, data, skinCode) { +export function JLmapDriving(dom, data, skinCode,storemod) { - const scope = this; + let scope = this; //界面更新函数 let updatemmi = {}; @@ -49,7 +47,7 @@ export function JLmapDriving(dom, data, skinCode) { this.animateswitch = false; this.cctvswitch = false; // 初始化webgl渲染 - const renderer = SetRender(dom); + let renderer = SetRender(dom); renderer.domElement.style.position = 'absolute'; renderer.domElement.style.top = '0'; @@ -63,9 +61,9 @@ export function JLmapDriving(dom, data, skinCode) { // 定义相机 //let camera = SetCamera(dom); // 定义场景(渲染容器) - const scene = SetScene(); + let scene = SetScene(); - const speed = 0; + let speed = 0; let drivingcode = null; @@ -98,11 +96,11 @@ export function JLmapDriving(dom, data, skinCode) { // 地图模型数据 let mapdata = new Jl3ddata(); - let camera = new THREE.PerspectiveCamera(70, dom.clientWidth/dom.clientHeight, 1, 1100); + let camera = new THREE.PerspectiveCamera(70, dom.clientWidth/dom.clientHeight, 1, 11000); camera.position.set( 0, 0, 0 ); camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); - + camera.rotation.x = 0; let listener = new THREE.AudioListener(); listener.position.y = -2; camera.add( listener ); @@ -119,12 +117,13 @@ export function JLmapDriving(dom, data, skinCode) { sound.play(); }); - const controls3 = new MouseControls(camera, 1.6); + let controls3 = new MouseControls(camera, 1.6); controls3.enabled = true; + // controls3.getObject().rotation.x = Math.PI/2; scene.add(controls3.getObject()); let cameracctv = new THREE.PerspectiveCamera(70, dom.clientWidth/dom.clientHeight, 1, 120); - cameracctv.position.set( 5, -3,27 ); + cameracctv.position.set( 2, -1,27 ); cameracctv.rotation.y = Math.PI/5*3; camera.add(cameracctv); @@ -133,18 +132,46 @@ export function JLmapDriving(dom, data, skinCode) { this.Subscribe.socketon(scope.Subscribe.topic); var timer = setInterval(function() { - if(mapdata.trainlisttest.group){ - if(mapdata.trainlisttest.group.children[0]){ + if(mapdata.trainlisttest){ + if(mapdata.trainlisttest.group){ + if(mapdata.trainlisttest.group.children[0]){ + updatemmi.updatedrivingcode(mapdata.trainlisttest.group.children[0].name); + scope.Subscribe.initdrivercode(mapdata.trainlisttest.group.children[0].name); + for(let k in mapdata.rails.switchrail){ + const ddd = storemod.getters['map/getDeviceByCode'](k); + let switchdata = mapdata.rails.switchrail[k]; + mapdata.rails.switchrail[k].locateType = ddd.locateType; - updatemmi.updatedrivingcode(mapdata.trainlisttest.group.children[0].name); - scope.Subscribe.initdrivercode(mapdata.trainlisttest.group.children[0].name); - clearInterval(timer); + if(ddd.locateType == "01"){ + //1--向左 2--向右 + //__\__ __/__ + if(mapdata.rails.switchrail[k].directtype == "1"){ + mapdata.rails.linkrail[switchdata.alink].lconnect = switchdata.blink; + mapdata.rails.linkrail[switchdata.blink].rconnect = switchdata.alink; + }else if(mapdata.rails.switchrail[k].directtype == "2"){ + mapdata.rails.linkrail[switchdata.alink].rconnect = switchdata.blink; + mapdata.rails.linkrail[switchdata.blink].lconnect = switchdata.alink; + } + + }else if(ddd.locateType == "02"){ + if(mapdata.rails.switchrail[k].directtype == "1"){ + mapdata.rails.linkrail[switchdata.alink].lconnect = switchdata.clink; + mapdata.rails.linkrail[switchdata.clink].rconnect = switchdata.alink; + }else if(mapdata.rails.switchrail[k].directtype == "2"){ + mapdata.rails.linkrail[switchdata.alink].rconnect = switchdata.clink; + mapdata.rails.linkrail[switchdata.clink].lconnect = switchdata.alink; + } + } + } + clearInterval(timer); + } } } - }, 1000); + + }, 2000); // 初始化加载数据和模型 getPublish3dMapDetail(skinCode).then(netdata => { - ModelLoad(data, scope, netdata.data, mapdata, camera, controls3, scene,mixers); + ModelLoad(data, scope, netdata.data, mapdata, camera, controls3, scene,mixers,storemod); }); // let stats = new Stats(); // dom.appendChild( stats.dom ); @@ -170,7 +197,7 @@ export function JLmapDriving(dom, data, skinCode) { renderercctv.render(scene,cameracctv); } //相机按键位移 - //controls3.update(); + // controls3.update(); delta = clock.getDelta(); for (let i=mixers.length-1; i>=0; i--) { mixers[i].update( delta ); @@ -186,6 +213,8 @@ export function JLmapDriving(dom, data, skinCode) { controls3.getObject().position.y=10; controls3.getObject().position.z = mapdata.trainlisttest.list[drivingcode].children[0].matrixWorld.elements[14]; + console.log(controls3); + } } @@ -227,12 +256,11 @@ export function JLmapDriving(dom, data, skinCode) { updatemmi.updatedrivingcode = function(code) { drivingcode = code; mapdata.trainlisttest.list[drivingcode].children[0].add(controls3.getObject()); - mapdata.trainlisttest.list[drivingcode].children[0].add(scope.assetloader.modellist[4].mesh); - controls3.getObject().position.x = 40; - controls3.getObject().position.y= 12.5; + controls3.getObject().position.x = 10; + controls3.getObject().position.y = 0; + controls3.getObject().position.z = 2.5; + controls3.getObject().rotation.x = Math.PI/2; controls3.getObject().rotation.y = -Math.PI/2; - scope.assetloader.modellist[4].mesh.position.x = 34; - scope.assetloader.modellist[4].mesh.position.y = 0; }; this.dispose = function() { @@ -253,6 +281,7 @@ export function JLmapDriving(dom, data, skinCode) { scope.actions = null; scope.Subscribe = null; sound.stop(); + scope.webwork.terminate(); // console.log(scope); // scope = null; }; @@ -373,9 +402,9 @@ export function JLmapDriving(dom, data, skinCode) { if (event.button == '0') { // 定义光线 - const raycaster = new THREE.Raycaster(); + let raycaster = new THREE.Raycaster(); // 定义平面鼠标点击坐标 - const mouse = new THREE.Vector2(); + let mouse = new THREE.Vector2(); mouse.x = (event.clientX / window.innerWidth) * 2 - 1; mouse.y = -(event.clientY / window.innerHeight) * 2 + 1; @@ -387,7 +416,7 @@ export function JLmapDriving(dom, data, skinCode) { if (scope.raycasterswitch == 'stand') { // 从站台对象组获取点击目标 - const intersects1 = raycaster.intersectObjects( mapdata.stationstandlist.textlist); + let intersects1 = raycaster.intersectObjects( mapdata.stationstandlist.textlist); // 获取最近处点击到的模型对象 if (intersects1[0]) { // 遍历对象组获取对象坐标更新相机数据 @@ -405,7 +434,7 @@ export function JLmapDriving(dom, data, skinCode) { } if (scope.raycasterswitch == 'train') { - const intersects = raycaster.intersectObjects( mapdata.trainlisttest.textlist); + let intersects = raycaster.intersectObjects( mapdata.trainlisttest.textlist); if (intersects[0]) { for (let j=0; j0.95 && trainlisttest.list[code].speed<=0) { - if (data.body[i].directionType == '02') { - syncdata.percent = 1-(sectionlist.sections.datalist[data.body[i].sectionCode].rstop/trainlisttest.list[code].len); - } else { - syncdata.percent = sectionlist.sections.datalist[data.body[i].sectionCode].lstop/trainlisttest.list[code].len; - } - //scope.teststomp.send('/app/topic/simulation/client/drive', syncdata); - } else { - if (data.body[i].directionType == '02') { - syncdata.percent = trainlisttest.list[code].progress; - } else { - syncdata.percent = 1 - trainlisttest.list[code].progress; - } - //scope.teststomp.send('/app/topic/simulation/client/drive', syncdata); - } - if (data.body[i].parkRemainTime>0) { updatemmi.updatestoptime('停站时间:'+parseInt(data.body[i].parkRemainTime)); } else { @@ -304,91 +306,49 @@ export function Jl3dDriving(updatemmi,sound) { if (trainlisttest.list[code].dispose != data.body[i].dispose && data.body[i].dispose == false) { - if (sectionlist.sections.datalist[data.body[i].sectionCode].code) { + if (rails.linkrail[data.body[i].linkCode]) { trainlisttest.group.add(trainlisttest.list[code]); trainlisttest.list[code].position.y = 0; trainlisttest.list[code].progress = 0; trainlisttest.list[code].oldoffset = data.body[i].sectionOffsetPercent; trainlisttest.list[code].dispose = false; - trainlisttest.list[code].nowcode = data.body[i].sectionCode; - trainlisttest.list[code].nextcode = data.body[i].nextSectionCode; + trainlisttest.list[code].nowcode = data.body[i].linkCode; let vexlist = []; let endrotation = null; if (data.body[i].directionType == '02') { // 向右 - let offset = null; - let rotaposx = null; - - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x>sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { - offset = sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x-sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x; - rotaposx = sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x+offset*data.body[i].sectionOffsetPercent; - } else { - offset = sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x-sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x; - rotaposx = sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x+offset*data.body[i].sectionOffsetPercent; - } - - let rotaposz = sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].z; - + let point = rails.linkrail[data.body[i].linkCode].lineleft.getPointAt(data.body[i].linkOffsetPercent); trainlisttest.list[code].rotation.y = 0; - trainlisttest.list[code].position.x = rotaposx; + trainlisttest.list[code].position.x = point.x; trainlisttest.list[code].position.y = 0; for (let tl=0; tl<6; tl++) { - trainlisttest.list[code].children[tl].position.z = rotaposz; + trainlisttest.list[code].children[tl].position.z = point.z; } - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x>sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { - for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - } else { - for (let m=0; msectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { - - offset = sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x-sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x; - rotaposx = sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x+offset*data.body[i].sectionOffsetPercent; - } else { - - offset = sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x-sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x; - rotaposx = sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x+offset*data.body[i].sectionOffsetPercent; - } - let rotaposz = sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].z; - + let point = rails.linkrail[data.body[i].linkCode].lineright.getPointAt((1-data.body[i].linkOffsetPercent)); trainlisttest.list[code].rotation.y = Math.PI; - trainlisttest.list[code].position.x = rotaposx; + trainlisttest.list[code].position.x = point.x; trainlisttest.list[code].position.y = 0; - for (let tl=0; tl<6; tl++) { - trainlisttest.list[code].children[tl].position.z = -rotaposz; - } - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x=0; m--) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - } else { - for (let m=0; msectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { - vexlist.push(new THREE.Vector3(trainlisttest.list[code].position.x, 0, trainlisttest.list[code].children[0].matrixWorld.elements[14])); - for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) { - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x>trainlisttest.list[code].position.x) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - } - } else { - vexlist.push(new THREE.Vector3(trainlisttest.list[code].position.x, 0, trainlisttest.list[code].children[0].matrixWorld.elements[14])); - for (let m=0; mtrainlisttest.list[code].position.x) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - } - } - } else { - if(data.body[i].speed > 0){ - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x>sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { - for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - } else { - for (let m=0; m=0; m--) { - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x=0; m--) { - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x 0){ - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x=0; m--) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - - } else { - for (let m=0; m=0; m--) { - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x>trainlisttest.list[code].position.x) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - } - vexlist.push(new THREE.Vector3(trainlisttest.list[code].position.x, 0, trainlisttest.list[code].children[0].matrixWorld.elements[14])); - } else { - for (let m=0; mtrainlisttest.list[code].position.x) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - } - vexlist.push(new THREE.Vector3(trainlisttest.list[code].position.x, 0, trainlisttest.list[code].children[0].matrixWorld.elements[14])); - } - } - - trainlisttest.list[code].rotation.y = Math.PI; + trainlisttest.list[code].progress = 1-(rotaposx-rails.linkrail[data.body[i].linkCode].lp.x)/rails.linkrail[data.body[i].linkCode].lengthfact; + trainlisttest.list[code].status = '03'; + trainlisttest.list[code].curve = rails.linkrail[data.body[i].linkCode].lineright; + trainlisttest.list[code].nextcurve = null; } + + trainlisttest.list[code].len = rails.linkrail[data.body[i].linkCode].lengthfact; + + } + + + // console.log(data.body[i].directionType); + // console.log(data.body[i].linkCode); + // console.log(rails.linkrail[data.body[i].linkCode].lengthfact); + // console.log(rails.linkrail[data.body[i].linkCode].lconnect); + // console.log(rails.linkrail[data.body[i].linkCode].rconnect); + // console.log("--------------------"); + // console.log(rails.linkrail[rails.linkrail[data.body[i].linkCode].lconnect].lconnect); + // console.log(rails.linkrail[rails.linkrail[data.body[i].linkCode].lconnect].rconnect); + // console.log("---------------------"); + // console.log(trainlisttest.list[code].curve.points); + // console.log(rails.linkrail[nextcode].lineleft.points); + // console.log("***********************"); + // console.log(rails.linkrail[nextcode].lineleft.points); + + if(code == drivingcode){ + let nextcode; + + if(data.body[i].directionType == '02'){ + trainlisttest.list[code].status = '02'; + nextcode = rails.linkrail[data.body[i].linkCode].rconnect; + if(nextcode){ + trainlisttest.list[code].nextcurve = rails.linkrail[nextcode].lineleft; + trainlisttest.list[code].nextlen = rails.linkrail[nextcode].lengthfact; + } + + }else if(data.body[i].directionType == '03'){ trainlisttest.list[code].status = '03'; - } - trainlisttest.list[code].curve = new THREE.CatmullRomCurve3(vexlist); - trainlisttest.list[code].isStandTrack = sectionlist.sections.datalist[data.body[i].sectionCode].isStandTrack; - trainlisttest.list[code].len = sectionlist.sections.datalist[data.body[i].sectionCode].distance; + nextcode = rails.linkrail[data.body[i].linkCode].lconnect; + if(nextcode){ + trainlisttest.list[code].nextcurve = rails.linkrail[nextcode].lineright; + trainlisttest.list[code].nextlen = rails.linkrail[nextcode].lengthfact; + } - trainlisttest.list[code].speed = data.body[i].speed; - if(data.body[i].speed>0){ - trainlisttest.list[code].progress = 0; - }else if(data.body[i].speed<0){ - trainlisttest.list[code].progress = 0.999; } - trainlisttest.list[code].speeds = parseFloat(data.body[i].speed*10/36/20/trainlisttest.list[code].len); + trainlisttest.list[code].nextcode = nextcode; + // console.log(trainlisttest.list[code].nowcode); + // console.log(trainlisttest.list[code].nextcode); + // console.log(trainlisttest.list[code].curve.points); + // console.log(trainlisttest.list[code].nextcurve.points); + // console.log("========================="); + + }else{ + let nextcode; + if(data.body[i].directionType == '02'){ + if(rails.linkrail[data.body[i].linkCode].lineleft){ + trainlisttest.list[code].status = '02'; + trainlisttest.list[code].curve = rails.linkrail[data.body[i].linkCode].lineleft; + trainlisttest.list[code].len = rails.linkrail[data.body[i].linkCode].lengthfact; + trainlisttest.list[code].progress = data.body[i].linkOffsetPercent; + trainlisttest.list[code].speeds = parseFloat(trainlisttest.list[code].speed*10/36/21/trainlisttest.list[code].len); + } + }else if(data.body[i].directionType == '03'){ + if(rails.linkrail[data.body[i].linkCode].lineright){ + trainlisttest.list[code].status = '03'; + trainlisttest.list[code].curve = rails.linkrail[data.body[i].linkCode].lineright; + trainlisttest.list[code].len = rails.linkrail[data.body[i].linkCode].lengthfact; + trainlisttest.list[code].progress = 1-data.body[i].linkOffsetPercent; + trainlisttest.list[code].speeds = parseFloat(trainlisttest.list[code].speed*10/36/21/trainlisttest.list[code].len); + } + } + trainlisttest.list[code].nextcode = nextcode; } + + + + + // console.log(data.body[i].linkOffsetPercent); + // console.log(trainlisttest.list[code].progress); + // console.log(trainlisttest.list[code].curve.points); + // console.log(trainlisttest.list[code].nextcurve.points); + // console.log(trainlisttest.list[code].len); + // console.log(trainlisttest.list[code].nextlen); + // console.log("=========================================="); } } } @@ -734,9 +685,11 @@ export function Jl3dDriving(updatemmi,sound) { function switchupdate(data) { code = data.code; for (let j=sectionlist.switchs.modellist.length-1; j>=0; j--) { - if (sectionlist.switchs.modellist[j].code == code) { - if (sectionlist.switchs.modellist[j].locateType != data.locateType) { + if (rails.switchrail[code]) { + if (rails.switchrail[code].locateType != data.locateType) { + // console.log("道岔变化:"+code); if (data.locateType == '02') { + // console.log("02 反位"); if (actions[sectionlist.switchs.modellist[j].code]) { sectionlist.switchs.modellist[j].locateType = data.locateType; actions[sectionlist.switchs.modellist[j].code].reset(); @@ -744,7 +697,26 @@ export function Jl3dDriving(updatemmi,sound) { actions[sectionlist.switchs.modellist[j].code].timeScale = 1; actions[sectionlist.switchs.modellist[j].code].play(); } + + rails.switchrail[code].locateType = "02"; + + let testswitch = rails.switchrail[code]; + if(rails.switchrail[code].directtype == "1"){ + // console.log("道岔朝向1向左"); + // console.log("aleft:"+testswitch.clink); + // console.log("cright:"+testswitch.alink); + rails.linkrail[testswitch.alink].lconnect = testswitch.clink; + rails.linkrail[testswitch.clink].rconnect = testswitch.alink; + }else if(rails.switchrail[code].directtype == "2"){ + // console.log("道岔朝向2向右"); + // console.log("aright:"+testswitch.clink); + // console.log("cleft:"+testswitch.alink); + rails.linkrail[testswitch.alink].rconnect = testswitch.clink; + rails.linkrail[testswitch.clink].lconnect = testswitch.alink; + } + } else if (data.locateType == '01') { + // console.log("01 定位"); if (actions[sectionlist.switchs.modellist[j].code]) { sectionlist.switchs.modellist[j].locateType = data.locateType; actions[sectionlist.switchs.modellist[j].code].reset(); @@ -752,6 +724,23 @@ export function Jl3dDriving(updatemmi,sound) { actions[sectionlist.switchs.modellist[j].code].timeScale = -1; actions[sectionlist.switchs.modellist[j].code].play(); } + + rails.switchrail[code].locateType = "01"; + let testswitch = rails.switchrail[code]; + if(rails.switchrail[code].directtype == "1"){ + // console.log("道岔朝向1向左"); + // console.log("aleft"+testswitch.blink); + // console.log("cright:"+testswitch.alink); + rails.linkrail[testswitch.alink].lconnect = testswitch.blink; + rails.linkrail[testswitch.blink].rconnect = testswitch.alink; + }else if(rails.switchrail[code].directtype == "2"){ + // console.log("道岔朝向2向右"); + // console.log("aright:"+testswitch.blink); + // console.log("cleft:"+testswitch.alink); + rails.linkrail[testswitch.alink].rconnect = testswitch.blink; + rails.linkrail[testswitch.blink].lconnect = testswitch.alink; + } + } } j = 0; diff --git a/src/jlmap3d/jl3ddrive/moveupdate/UpdateTrain.js b/src/jlmap3d/jl3ddrive/moveupdate/UpdateTrain.js index e39f803f3..e2c0363f8 100644 --- a/src/jlmap3d/jl3ddrive/moveupdate/UpdateTrain.js +++ b/src/jlmap3d/jl3ddrive/moveupdate/UpdateTrain.js @@ -4,7 +4,7 @@ export function UpdateTrain(camera,traindata,control){ for(let j=traindata.group.children.length-1;j>=0;j--){ //判断是否有移动事件 - //if(traindata.group.children[j].dispose == false){ + if(traindata.group.children[j].dispose == false){ if(traindata.group.children[j].progress != null){ @@ -12,22 +12,26 @@ export function UpdateTrain(camera,traindata,control){ if(trainmodel.speeds > 0 && trainmodel.speeds){ let speed = null; - if(traindata.group.children[j].progress<1){ + if(traindata.group.children[j].progress >=0&&traindata.group.children[j].progress<=1){ let movecurve = trainmodel.curve; if(trainmodel.status == "03"){ if(movecurve.points.length>1){ let point = movecurve.getPointAt(traindata.group.children[j].progress); - if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.1){ + + if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.001){ trainmodel.children[0].up = new THREE.Vector3(-1,0,0); let tangent = movecurve.getTangentAt(traindata.group.children[j].progress).normalize(); trainmodel.children[0].axis.crossVectors(trainmodel.children[0].up, tangent).normalize(); let radians = Math.acos(trainmodel.children[0].up.dot(tangent)); trainmodel.children[0].quaternion.setFromAxisAngle(trainmodel.children[0].axis, radians); + trainmodel.children[0].rotation.x = -Math.PI/2; + trainmodel.children[0].rotation.z = trainmodel.children[0].rotation.y; + trainmodel.children[0].rotation.y = 0; let rotas = { posr:point, - rota:trainmodel.children[0].rotation.y + rota:trainmodel.children[0].rotation.z } trainmodel.children[1].rotalist.push(rotas); @@ -48,7 +52,7 @@ export function UpdateTrain(camera,traindata,control){ trainmodel.children[rs].position.z += offsetz; for(let xh=0;xh1){ let point = movecurve.getPointAt(trainmodel.progress); - if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.1){ + + if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.001){ trainmodel.children[0].up = new THREE.Vector3(1,0,0); let tangent = movecurve.getTangentAt(traindata.group.children[j].progress).normalize(); trainmodel.children[0].axis.crossVectors(trainmodel.children[0].up, tangent).normalize(); let radians = Math.acos(trainmodel.children[0].up.dot(tangent)); trainmodel.children[0].quaternion.setFromAxisAngle(trainmodel.children[0].axis, radians); - + trainmodel.children[0].rotation.x = -Math.PI/2; + trainmodel.children[0].rotation.z = trainmodel.children[0].rotation.y; + trainmodel.children[0].rotation.y = 0; let rotas = { posr:point, - rota:trainmodel.children[0].rotation.y + rota:trainmodel.children[0].rotation.z } trainmodel.children[1].rotalist.push(rotas); let offsetz = parseFloat(point.z) - parseFloat(trainmodel.children[0].matrixWorld.elements[14]); @@ -103,7 +110,7 @@ export function UpdateTrain(camera,traindata,control){ trainmodel.children[rs].position.z += offsetz; for(let xh=0;xh=trainmodel.children[rs].rotalist[0].posr.x){ + if((trainmodel.children[rs].matrixWorld.elements[12]+6)>=trainmodel.children[rs].rotalist[0].posr.x){ if(rs != 5){ let asd = trainmodel.children[rs].rotalist[0]; @@ -112,7 +119,7 @@ export function UpdateTrain(camera,traindata,control){ } //let offsetx = trainmodel.children[1].matrixWorld.elements[12]-trainmodel.children[0].children[3].matrixWorld.elements[12]; - trainmodel.children[rs].rotation.y = trainmodel.children[rs].rotalist[0].rota; + trainmodel.children[rs].rotation.z = trainmodel.children[rs].rotalist[0].rota; trainmodel.children[rs].rotalist.splice(0,1) xh--; }else{ @@ -127,32 +134,62 @@ export function UpdateTrain(camera,traindata,control){ } // console.log(trainmodel.rotalist); } - - trainmodel.progress += trainmodel.speeds; } } + }else{ + if(trainmodel.nextcurve){ + // if(trainmodel.status == '02'){ + // }else if(trainmodel.status == '03'){ + // } + + trainmodel.progress = 0; + trainmodel.len = trainmodel.nextlen; + trainmodel.nowcode = trainmodel.nextcode; + trainmodel.speeds = parseFloat(trainmodel.speed*10/36/21/trainmodel.len); + trainmodel.curve = trainmodel.nextcurve; + + trainmodel.nextcurve = null; + trainmodel.nextlen = null; + trainmodel.nextcode = null; + + + + } + + // console.log(trainmodel.name); + // console.log(trainmodel.progress); + // console.log(trainmodel.nextcurve); + // if(trainmodel.status == "02"){ + // trainmodel.progress = 0; + // }else if(trainmodel.status == "03"){ + // trainmodel.progress = 1; + // } + // trainmodel.curve = trainmodel.nextcurve; } }else if(trainmodel.speeds < 0 && trainmodel.speeds){ let speed = null; - if(traindata.group.children[j].progress<1){ + if(traindata.group.children[j].progress >=0&&traindata.group.children[j].progress<=1){ let movecurve = trainmodel.curve; if(trainmodel.status == "03" && trainmodel.progress>0){ if(movecurve.points.length>1){ let point = movecurve.getPointAt(traindata.group.children[j].progress); - if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.1){ + if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.01){ trainmodel.children[0].up = new THREE.Vector3(-1,0,0); let tangent = movecurve.getTangentAt(traindata.group.children[j].progress).normalize(); trainmodel.children[0].axis.crossVectors(trainmodel.children[0].up, tangent).normalize(); let radians = Math.acos(trainmodel.children[0].up.dot(tangent)); trainmodel.children[0].quaternion.setFromAxisAngle(trainmodel.children[0].axis, radians); + trainmodel.children[0].rotation.x = -Math.PI/2; + trainmodel.children[0].rotation.z = trainmodel.children[0].rotation.y; + trainmodel.children[0].rotation.y = 0; let rotas = { posr:point, - rota:trainmodel.children[0].rotation.y + rota:trainmodel.children[0].rotation.z } trainmodel.children[1].rotalist.push(rotas); @@ -173,7 +210,7 @@ export function UpdateTrain(camera,traindata,control){ trainmodel.children[rs].position.z += offsetz; for(let xh=0;xh1 && trainmodel.progress>0){ let point = movecurve.getPointAt(trainmodel.progress); - if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.1){ + if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.01){ trainmodel.children[0].up = new THREE.Vector3(1,0,0); let tangent = movecurve.getTangentAt(traindata.group.children[j].progress).normalize(); trainmodel.children[0].axis.crossVectors(trainmodel.children[0].up, tangent).normalize(); let radians = Math.acos(trainmodel.children[0].up.dot(tangent)); trainmodel.children[0].quaternion.setFromAxisAngle(trainmodel.children[0].axis, radians); - + trainmodel.children[0].rotation.x = -Math.PI/2; + trainmodel.children[0].rotation.z = trainmodel.children[0].rotation.y; + trainmodel.children[0].rotation.y = 0; let rotas = { posr:point, - rota:trainmodel.children[0].rotation.y + rota:trainmodel.children[0].rotation.z } trainmodel.children[1].rotalist.push(rotas); let offsetz = parseFloat(point.z) - parseFloat(trainmodel.children[0].matrixWorld.elements[14]); @@ -232,7 +271,7 @@ export function UpdateTrain(camera,traindata,control){ trainmodel.children[rs].position.z += offsetz; for(let xh=0;xh=trainmodel.children[rs].rotalist[0].posr.x){ + if((trainmodel.children[rs].matrixWorld.elements[12]+6)>=trainmodel.children[rs].rotalist[0].posr.x){ if(rs != 5){ let asd = trainmodel.children[rs].rotalist[0]; @@ -241,7 +280,7 @@ export function UpdateTrain(camera,traindata,control){ } //let offsetx = trainmodel.children[1].matrixWorld.elements[12]-trainmodel.children[0].children[3].matrixWorld.elements[12]; - trainmodel.children[rs].rotation.y = trainmodel.children[rs].rotalist[0].rota; + trainmodel.children[rs].rotation.z = trainmodel.children[rs].rotalist[0].rota; trainmodel.children[rs].rotalist.splice(0,1) xh--; }else{ @@ -257,7 +296,7 @@ export function UpdateTrain(camera,traindata,control){ // console.log(trainmodel.rotalist); } - + console.log(trainmodel.nextcurve); if(trainmodel.progress > -(trainmodel.speeds)){ trainmodel.progress += trainmodel.speeds; } @@ -269,7 +308,7 @@ export function UpdateTrain(camera,traindata,control){ } - //} + } } diff --git a/src/jlmap3d/jl3dsimulation/connect/TrainingConnect.js b/src/jlmap3d/jl3dsimulation/connect/TrainingConnect.js index 054a14afe..1c96ff20f 100644 --- a/src/jlmap3d/jl3dsimulation/connect/TrainingConnect.js +++ b/src/jlmap3d/jl3dsimulation/connect/TrainingConnect.js @@ -19,6 +19,9 @@ export function Jlmap3dSubscribe(jlmap3d) { var sectionlist = null; var materials = null; var actions = null; + var rails = null; + var links = null; + var scenes = null; var code = null; @@ -52,6 +55,8 @@ export function Jlmap3dSubscribe(jlmap3d) { materials = materiallist; scenes = scene; actions = nowaction; + links = this.map.linklist; + rails = this.map.rails; }; @@ -111,11 +116,11 @@ export function Jlmap3dSubscribe(jlmap3d) { if (trainlisttest.list[code].isStandTrack == true) { trainlisttest.list[code].speeds = parseFloat(data.body[tl].v*10/36/17/trainlisttest.list[code].len); } else { - trainlisttest.list[code].speeds = parseFloat(data.body[tl].v*10/36/20/trainlisttest.list[code].len); + trainlisttest.list[code].speeds = parseFloat(data.body[tl].v*10/36/21/trainlisttest.list[code].len); } } else { - trainlisttest.list[code].speeds = parseFloat(data.body[tl].v*10/36/20/trainlisttest.list[code].len); + trainlisttest.list[code].speeds = parseFloat(data.body[tl].v*10/36/21/trainlisttest.list[code].len); } if (code == drivingcode) { @@ -150,30 +155,31 @@ export function Jlmap3dSubscribe(jlmap3d) { if ( trainlisttest.list[code]) { if (code == drivingcode) { driverswitch = data.body[i].runMode; + //更新车组号 jlmap3d.updatetrainnum(data.body[i].groupNumber); - // console.log(trainlisttest.list[code].progress); - const syncdata = { + //更新列车 + let syncdata = { type: 'Train', code: code, sectionCode: data.body[i].sectionCode, percent: 0 }; - if (trainlisttest.list[code].isStandTrack == true && trainlisttest.list[code].progress>0.95 && trainlisttest.list[code].speed<=0) { - if (data.body[i].directionType == '02') { - syncdata.percent = 1-(sectionlist.sections.datalist[data.body[i].sectionCode].rstop/trainlisttest.list[code].len); - } else { - syncdata.percent = sectionlist.sections.datalist[data.body[i].sectionCode].lstop/trainlisttest.list[code].len; - } - scope.teststomp.send('/app/topic/simulation/client/drive', syncdata); - } else { - if (data.body[i].directionType == '02') { - syncdata.percent = trainlisttest.list[code].progress; - } else { - syncdata.percent = 1 - trainlisttest.list[code].progress; - } - scope.teststomp.send('/app/topic/simulation/client/drive', syncdata); - } + // if (trainlisttest.list[code].isStandTrack == true && trainlisttest.list[code].progress>0.95 && trainlisttest.list[code].speed<=0) { + // if (data.body[i].directionType == '02') { + // syncdata.percent = 1-(sectionlist.sections.datalist[data.body[i].sectionCode].rstop/trainlisttest.list[code].len); + // } else { + // syncdata.percent = sectionlist.sections.datalist[data.body[i].sectionCode].lstop/trainlisttest.list[code].len; + // } + // scope.teststomp.send('/app/topic/simulation/client/drive', syncdata); + // } else { + // if (data.body[i].directionType == '02') { + // syncdata.percent = trainlisttest.list[code].progress; + // } else { + // syncdata.percent = 1 - trainlisttest.list[code].progress; + // } + // scope.teststomp.send('/app/topic/simulation/client/drive', syncdata); + // } if (data.body[i].parkRemainTime>0) { jlmap3d.updatestoptime('停站时间:'+parseInt(data.body[i].parkRemainTime)); @@ -181,21 +187,21 @@ export function Jlmap3dSubscribe(jlmap3d) { if (data.body[i].runMode == '02') { jlmap3d.updatestoptime('列车自动驾驶中'); } else { - if (trainlisttest.list[code].isStandTrack == true && trainlisttest.list[code].progress>0.95 && trainlisttest.list[code].speed<=0) { - // if(stoptimer){ - // - // }else{ - // stoptimer = setInterval(function(){ - // if(num >=0){ - // jlmap3d.updatestoptime("停站时间:"+num); - // num --; - // } - // },1000); - // } - - } else { - jlmap3d.updatestoptime('列车人工驾驶中'); - } + // if (trainlisttest.list[code].isStandTrack == true && trainlisttest.list[code].progress>0.95 && trainlisttest.list[code].speed<=0) { + // // if(stoptimer){ + // // + // // }else{ + // // stoptimer = setInterval(function(){ + // // if(num >=0){ + // // jlmap3d.updatestoptime("停站时间:"+num); + // // num --; + // // } + // // },1000); + // // } + // + // } else { + // jlmap3d.updatestoptime('列车人工驾驶中'); + // } } } @@ -252,106 +258,53 @@ export function Jlmap3dSubscribe(jlmap3d) { // } // } // 遍历获取所在轨道 - if (trainlisttest.list[code].dispose != data.body[i].dispose && data.body[i].dispose == false) { - if (sectionlist.sections.datalist[data.body[i].sectionCode].code) { + if (rails.linkrail[data.body[i].linkCode]) { trainlisttest.group.add(trainlisttest.list[code]); trainlisttest.list[code].position.y = 0; trainlisttest.list[code].progress = 0; - trainlisttest.list[code].oldoffset = data.body[i].sectionOffsetPercent; + trainlisttest.list[code].oldoffset = data.body[i].linkOffsetPercent; trainlisttest.list[code].dispose = false; - trainlisttest.list[code].nowcode = data.body[i].sectionCode; - trainlisttest.list[code].nextcode = data.body[i].nextSectionCode; + trainlisttest.list[code].nowcode = data.body[i].linkCode; + trainlisttest.list[code].nextcode = rails.linkrail[data.body[i].linkCode].next; let vexlist = []; - let endrotation = null; if (data.body[i].directionType == '02') { // 向右 - let offset = null; - let rotaposx = null; - - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x>sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { - offset = sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x-sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x; - rotaposx = sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x+offset*data.body[i].sectionOffsetPercent; - } else { - offset = sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x-sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x; - rotaposx = sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x+offset*data.body[i].sectionOffsetPercent; - } - - let rotaposz = sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].z; - + let point = rails.linkrail[data.body[i].linkCode].lineleft.getPointAt(data.body[i].linkOffsetPercent); trainlisttest.list[code].rotation.y = 0; - trainlisttest.list[code].position.x = rotaposx; + trainlisttest.list[code].position.x = point.x; trainlisttest.list[code].position.y = 0; for (let tl=0; tl<6; tl++) { - trainlisttest.list[code].children[tl].position.z = rotaposz; + trainlisttest.list[code].children[tl].position.z = point.z; } - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x>sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { - vexlist.push(new THREE.Vector3(rotaposx, 0, rotaposz)); - for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) { - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x>rotaposx) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - - } - } else { - vexlist.push(new THREE.Vector3(rotaposx, 0, rotaposz)); - for (let m=0; mrotaposx) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - } - } trainlisttest.list[code].status = '02'; - + trainlisttest.list[code].progress = data.body[i].linkOffsetPercent; + trainlisttest.list[code].curve = rails.linkrail[data.body[i].linkCode].lineleft; } else if (data.body[i].directionType == '03') { // 向左 - - trainlisttest.list[code].dispose = false; - trainlisttest.group.add(trainlisttest.list[code]); - let offset = null; - let rotaposx = null; - - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x>sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { - - offset = sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x-sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x; - rotaposx = sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x+offset*data.body[i].sectionOffsetPercent; - } else { - - offset = sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x-sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x; - rotaposx = sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x+offset*data.body[i].sectionOffsetPercent; - } - let rotaposz = sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].z; - + let point = rails.linkrail[data.body[i].linkCode].lineright.getPointAt((1-data.body[i].linkOffsetPercent)); trainlisttest.list[code].rotation.y = Math.PI; - trainlisttest.list[code].position.x = rotaposx; + trainlisttest.list[code].position.x = point.x; trainlisttest.list[code].position.y = 0; - for (let tl=0; tl<6; tl++) { - trainlisttest.list[code].children[tl].position.z = -rotaposz; - } - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x=0; m--) { - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].xsectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { - vexlist.push(new THREE.Vector3(trainlisttest.list[code].position.x, 0, trainlisttest.list[code].children[0].matrixWorld.elements[14])); - for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) { - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x>trainlisttest.list[code].position.x) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - } - } else { - vexlist.push(new THREE.Vector3(trainlisttest.list[code].position.x, 0, trainlisttest.list[code].children[0].matrixWorld.elements[14])); - for (let m=0; mtrainlisttest.list[code].position.x) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - } - } - } else { - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x>sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { - for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - } else { - for (let m=0; m=0; m--) { - if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x=0; m--) { - vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); - } - - } else { - for (let m=0; m=0; i--) { // 0xFFFFFF // 0xCD0000 红 @@ -663,8 +586,8 @@ export function Jlmap3dSubscribe(jlmap3d) { function switchupdate(data) { code = data.code; for (let j=sectionlist.switchs.modellist.length-1; j>=0; j--) { - if (sectionlist.switchs.modellist[j].code == code) { - if (sectionlist.switchs.modellist[j].locateType != data.locateType) { + if (rails.switchrail[code]) { + if (rails.switchrail[code].locateType != data.locateType) { if (data.locateType == '02') { if (actions[sectionlist.switchs.modellist[j].code]) { sectionlist.switchs.modellist[j].locateType = data.locateType; @@ -673,6 +596,21 @@ export function Jlmap3dSubscribe(jlmap3d) { actions[sectionlist.switchs.modellist[j].code].timeScale = 1; actions[sectionlist.switchs.modellist[j].code].play(); } + + rails.switchrail[code].locateType = "02"; + + let testswitch = rails.switchrail[code]; + // console.log(testswitch); + // console.log(rails.linkrail[testswitch.alink]); + // console.log(rails.linkrail[testswitch.clink]); + if(rails.switchrail[code].directtype == "1"){ + rails.linkrail[testswitch.alink].lconnect = testswitch.clink; + rails.linkrail[testswitch.clink].rconnect = testswitch.alink; + }else if(rails.switchrail[code].directtype == "2"){ + rails.linkrail[testswitch.alink].rconnect = testswitch.clink; + rails.linkrail[testswitch.clink].lconnect = testswitch.alink; + } + } else if (data.locateType == '01') { if (actions[sectionlist.switchs.modellist[j].code]) { sectionlist.switchs.modellist[j].locateType = data.locateType; @@ -681,6 +619,20 @@ export function Jlmap3dSubscribe(jlmap3d) { actions[sectionlist.switchs.modellist[j].code].timeScale = -1; actions[sectionlist.switchs.modellist[j].code].play(); } + + rails.switchrail[code].locateType = "01"; + let testswitch = rails.switchrail[code]; + console.log(testswitch); + console.log(rails.linkrail[testswitch.alink]); + console.log(rails.linkrail[testswitch.clink]); + if(rails.switchrail[code].directtype == "1"){ + rails.linkrail[testswitch.alink].lconnect = testswitch.blink; + rails.linkrail[testswitch.blink].rconnect = testswitch.alink; + }else if(rails.switchrail[code].directtype == "2"){ + rails.linkrail[testswitch.alink].rconnect = testswitch.blink; + rails.linkrail[testswitch.blink].lconnect = testswitch.alink; + } + } } j = 0; diff --git a/src/jlmap3d/jl3dsimulation/jlmap3d.js b/src/jlmap3d/jl3dsimulation/jlmap3d.js index 5e2db0c19..e5fa3291c 100644 --- a/src/jlmap3d/jl3dsimulation/jlmap3d.js +++ b/src/jlmap3d/jl3dsimulation/jlmap3d.js @@ -17,7 +17,6 @@ import { SetRender } from '@/jlmap3d/config/SetRender'; import { SetScene } from '@/jlmap3d/config/SetScene'; import { SetLights } from '@/jlmap3d/config/SetLights'; - //controls import { OrbitControls } from '@/jlmap3d/main/control/OrbitControls'; import { DragControls } from '@/jlmap3d/main/control/DragControls'; @@ -29,15 +28,15 @@ import {Jlmap3dSubscribe } from '@/jlmap3d/jl3dsimulation/connect/TrainingConnec import { getPublishMapVersion, getPublishMapDetail,getPublish3dMapDetail} from '@/api/jlmap3d/load3ddata'; //utils -import { UpdateTrain } from '@/jlmap3d/main/utils/UpdateTrain'; -//import { UpdateTrain } from '@/jlmap3d/main/utils/UpdateTrainTest'; +// import { UpdateTrain } from '@/jlmap3d/main/utils/UpdateTrain'; +import { UpdateTrain } from '@/jlmap3d/main/utils/UpdateTrainTest'; // import { ReStart } from '@/jlmap3d/main/utils/ReStart'; import {Stats} from '@/jlmap3d/main/lib/stats.min.js'; var clock = new THREE.Clock(); -export function JLmap3d(dom, data,skinCode) { +export function JLmap3d(dom, data,skinCode,storemod) { let scope = this; @@ -55,7 +54,6 @@ export function JLmap3d(dom, data,skinCode) { //定义场景(渲染容器) let scene = SetScene(); //定义镜头操作 - console.log(THREE.OrbitControls); let controls = new THREE.OrbitControls(camera); controls.maxPolarAngle = Math.PI/2; //controls.minPolarAngle = Math.PI/8; @@ -83,14 +81,13 @@ export function JLmap3d(dom, data,skinCode) { this.Subscribe = new Jlmap3dSubscribe(this.webwork); //连接到通信 //console.log(this.Subscribe.config); - //this.webwork.postMessage(this.Subscribe.teststomp); this.Subscribe.socketon(scope.Subscribe.topic); //初始化加载数据和模型 getPublish3dMapDetail(skinCode).then(netdata => { - ModelLoad(data,scope,netdata.data,mapdata,camera,controls,scene); + ModelLoad(data,scope,netdata.data,mapdata,camera,controls,scene,storemod); }); // // let stats = new Stats(); diff --git a/src/jlmap3d/main/control/ScalControls.js b/src/jlmap3d/main/control/ScalControls.js index d6e291b26..9adb87dad 100644 --- a/src/jlmap3d/main/control/ScalControls.js +++ b/src/jlmap3d/main/control/ScalControls.js @@ -142,7 +142,7 @@ THREE.ScalControls = function ( scene,_camera, _domElement ) { // _movemesh.geometry.computeBoundingBox(); _movemesh.geometry.computeBoundingSphere(); _movemesh.geometry.center(); - _movemesh.lengthfact = (_movemesh.geometry.attributes.position.array[_movemesh.rightlist[0]] - _movemesh.geometry.attributes.position.array[_movemesh.leftlist[0]])*2+20.5; + _movemesh.lengthfact = (_movemesh.geometry.attributes.position.array[_movemesh.rightlist[0]] - _movemesh.geometry.attributes.position.array[_movemesh.leftlist[0]])*2+28; // testmesh2.position.z = 50; // testmesh2.geometry.center(); diff --git a/src/jlmap3d/main/loaders/AssetLoader.js b/src/jlmap3d/main/loaders/AssetLoader.js index 05011ca8d..9410a6329 100644 --- a/src/jlmap3d/main/loaders/AssetLoader.js +++ b/src/jlmap3d/main/loaders/AssetLoader.js @@ -9,7 +9,7 @@ let defaultsignal = { deviceType:"signal", type:"low", picUrl:"", - assetUrl:"https://joylink.club/oss/models/signal/d3d.FBX" + assetUrl:"https://test.joylink.club/oss/models/signal/d3d.FBX" } let defaulttrain = { @@ -18,7 +18,7 @@ let defaulttrain = { deviceType:"train", type:"num4", picUrl:"", - assetUrl:"https://joylink.club/oss/models/train/train.FBX" + assetUrl:"https://test.joylink.club/oss/models/train/train.FBX" } @@ -28,8 +28,10 @@ let defaultstation = { deviceType:"stand", type:"num4", picUrl:"", - assetUrl:"../../static/model/station/fuzhou.FBX" -}//https://joylink.club/oss/models/station/fuzhou/fuzhou.FBX + assetUrl:"https://test.joylink.club/oss/models/station/fuzhou/fuzhou.FBX" +} +//https://test.joylink.club/oss/models/station/fuzhou/fuzhou.FBX +//https://joylink.club/oss/models/station/fuzhou/fuzhou.FBX //../../static/model/station/zhantai715(2).FBX let defaultswitch = { @@ -38,7 +40,7 @@ let defaultswitch = { deviceType:"switch", type:"fuzhou", picUrl:"", - assetUrl:"../../static/model/daocha/daocha.FBX" + assetUrl:"https://test.joylink.club/oss/models/daocha/daocha.FBX" } let defaultdriver = { @@ -56,8 +58,10 @@ let defaultsuidao = { deviceType:"suidao", type:"suidao", picUrl:"", - assetUrl:"https://joylink.club/oss/models/suidao/suidao.FBX" -}//https://joylink.club/oss/models/suidao/suidao.FBX + assetUrl:"https://test.joylink.club/oss/models/suidao/suidao.FBX" +} +//https://test.joylink.club/oss/models/suidao/suidao.FBX +//https://joylink.club/oss/models/suidao/suidao.FBX //../../static/model/ let defaultautorail = { @@ -75,7 +79,7 @@ let defaultautosuidao = { deviceType:"autosuidao", type:"autosuidao", picUrl:"", - assetUrl:"../../static/model/auto/suidao.FBX" + assetUrl:"https://test.joylink.club/oss/models/auto/suidao.FBX" } let autoswitch1 = { @@ -84,7 +88,7 @@ let autoswitch1 = { deviceType:"autoswitch1", type:"fuzhou", picUrl:"", - assetUrl:"../../static/model/auto/switch1.FBX" + assetUrl:"https://test.joylink.club/oss/models/auto/switch1.FBX" } let autoswitch2 = { @@ -93,7 +97,7 @@ let autoswitch2 = { deviceType:"autoswitch2", type:"fuzhou", picUrl:"", - assetUrl:"../../static/model/auto/switch2.FBX" + assetUrl:"https://test.joylink.club/oss/models/auto/switch2.FBX" } export function AssetLoader(){ @@ -107,7 +111,7 @@ export function AssetLoader(){ this.materiallist = []; //初始化资源加载器 this.setmodellist = function (data){ - + // console.log("setmodellist"); let defaultmodel1 = new AssetModel(defaultsignal); scope.modellist.push(defaultmodel1); @@ -129,7 +133,6 @@ export function AssetLoader(){ let defaultswitch2 = new AssetModel(autoswitch2); scope.modellist.push(defaultswitch2); - let modeldata = JSON.parse(data); for(let j=0;j0.49){ + rightlist.push(i); + } + if(autorail.geometry.attributes.position.array[i*3] <-0.49){ + leftlist.push(i); + } + } + + + + for(let i=0;i0.49){ + rightlist.push(i); + } + if(autorail.geometry.attributes.position.array[i*3] <-0.49){ + leftlist.push(i); + } + } + + autorail.rightlist = rightlist; + autorail.leftlist = leftlist; + + + let reallinks = []; + let testlink; + testlink = data; + if(data){ + let index,startdata; + for(let n=0;n=0){ + if(reallinks[i].leftFdCode == data[j].code){ + buildmodel(data[j],reallinks[i],j,"left"); + reallinks.push(data[j]); + data.splice(j,1); + j--; + } + } + if(reallinks[i].leftSdCode && j>=0){ + + if(reallinks[i].leftSdCode == data[j].code){ + buildmodel(data[j],reallinks[i],j,"left"); + reallinks.push(data[j]); + data.splice(j,1); + j--; + } + } + + if(reallinks[i].rightFdCode && j>=0){ + if(reallinks[i].rightFdCode == data[j].code){ + + buildmodel(data[j],reallinks[i],j,"right"); + reallinks.push(data[j]); + data.splice(j,1); + j--; + } + } + + if(reallinks[i].rightSdCode && j>=0){ + if(reallinks[i].rightSdCode == data[j].code){ + buildmodel(data[j],reallinks[i],j,"right"); + reallinks.push(data[j]); + data.splice(j,1); + j--; + } + } + + } + } + + function buildmodel(data,mdata,sx,direct){ + let len = data.lengthFact; + + let testmesh2 = autorail.clone(true); + for(let i=0;idata.rp.y){ + testmesh2.rotation.z = 0.218; + data.lp.x = data.rp.x - (data.lengthFact)*Math.cos(testmesh2.rotation.z); + data.lp.y = data.rp.y + (data.lengthFact)*Math.sin(testmesh2.rotation.z); + }else if(data.lp.ydata.rp.y){ + testmesh2.rotation.z = 0.218; + data.rp.x = data.lp.x+(data.lengthFact)*Math.cos(testmesh2.rotation.z); + data.rp.y = data.lp.y-(data.lengthFact)*Math.sin(testmesh2.rotation.z); + }else if(data.lp.y0){ + scope.linkrail[linkdata[i].code].points.push(new THREE.Vector3(scope.linkrail[linkdata[i].code].lp.x+2.1,0,scope.linkrail[linkdata[i].code].lp.z-0.6)); + scope.linkrail[linkdata[i].code].points.push(new THREE.Vector3(scope.linkrail[linkdata[i].code].rp.x-2.1,0,scope.linkrail[linkdata[i].code].rp.z+0.6)); + scope.linkrail[linkdata[i].code].type = 1; + }else{ + scope.linkrail[linkdata[i].code].type = 2; + scope.linkrail[linkdata[i].code].points.push(new THREE.Vector3(scope.linkrail[linkdata[i].code].lp.x+2.1,0,scope.linkrail[linkdata[i].code].lp.z+0.6)); + scope.linkrail[linkdata[i].code].points.push(new THREE.Vector3(scope.linkrail[linkdata[i].code].rp.x-2.1,0,scope.linkrail[linkdata[i].code].rp.z-0.6)); + } + } + + } + for(let i=0;i{ + rightpoints.push(item); + } + ); + rightpoints.reverse(); + scope.linkrail[linkdata[i].code].lineright = new THREE.CatmullRomCurve3(rightpoints); + // scope.linkrail[linkdata[i].code].lineright.curveType = "catmullrom"; + // scope.linkrail[linkdata[i].code].lineright.tension = 0.1; + var points = scope.linkrail[linkdata[i].code].lineleft.getPoints( 50 ); + var geometry = new THREE.BufferGeometry().setFromPoints( points ); + + var material = new THREE.LineBasicMaterial( { color : 0xff0000 } ); + + // Create the final object to add to the scene + var curveObject = new THREE.Line( geometry, material ); + // scene.add(curveObject); + } + + } + + this.getrail = function(){ + + }; +} diff --git a/src/jlmap3d/main/model/SectionList.js b/src/jlmap3d/main/model/SectionList.js index 3cafeeed6..12114d0a8 100644 --- a/src/jlmap3d/main/model/SectionList.js +++ b/src/jlmap3d/main/model/SectionList.js @@ -6,6 +6,12 @@ export function SectionList() { this.type = 'sectionlist'; + let sectiongroup = new THREE.Group(); + sectiongroup.name = "section"; + + let switchgroup = new THREE.Group(); + switchgroup.name = "switch"; + this.sections = { datalist: [], modellist: [] @@ -15,6 +21,7 @@ export function SectionList() { datalist: [], modellist: [] }; + this.standtrack = []; this.initpromise = function (sectiondata, switchdata, scene) { return new Promise(function(resolve, reject) { @@ -97,78 +104,287 @@ export function SectionList() { }); }; + this.loadpromise = function(jlmap3ddata,assetloader,sectiondata,switchdata,scene){ + return new Promise(function(resolve, reject){ + // scene.add(sectiongroup); + scene.add(switchgroup); + let linkdata = jlmap3ddata.linklist; + + for(let i=0;iswitchdata[i].pb[0].x){ + if(((switchdata[i].pc[0].y+switchdata[i].pc[1].y)/2) < switchdata[i].pa[0].y){ + if(((switchdata[i].pc[0].x+switchdata[i].pc[1].x)/2)>switchdata[i].pa[0].x){ + testswitch = switchmesh1.clone(true); + }else{ + testswitch = switchmesh2.clone(true); + } + }else{ + if(((switchdata[i].pc[0].x+switchdata[i].pc[1].x)/2)>switchdata[i].pa[0].x){ + testswitch = switchmesh2.clone(true); + }else{ + testswitch = switchmesh1.clone(true); + } + testswitch.rotation.z = Math.PI; + } + }else{ + if(((switchdata[i].pc[0].y+switchdata[i].pc[1].y)/2) < switchdata[i].pa[1].y){ + if(((switchdata[i].pc[0].x+switchdata[i].pc[1].x)/2)>switchdata[i].pa[1].x){ + testswitch = switchmesh1.clone(true); + }else{ + testswitch = switchmesh2.clone(true); + } + }else{ + if(((switchdata[i].pc[0].x+switchdata[i].pc[1].x)/2)>switchdata[i].pa[1].x){ + testswitch = switchmesh2.clone(true); + }else{ + testswitch = switchmesh1.clone(true); + } + testswitch.rotation.z = Math.PI; + } + } + + testswitch.position.x = switchdata[i].position.x; + testswitch.position.y = switchdata[i].position.y; + testswitch.position.z = switchdata[i].position.z; + // testswitch.rotation.x = switchdata[i].rotation._x; + // testswitch.rotation.y = switchdata[i].rotation._y; + // testswitch.rotation.z = switchdata[i].rotation._z; + + scope.switchs.datalist.push(newswitch); + scope.switchs.modellist.push(testswitch); + switchgroup.add(testswitch); + } + + resolve("loadersection"); + }); + + } + + function buildsuidao(linkdata,suidaodata,assetloader,scene){ + let autosuidao; + for(let i=0;i7){ + rightlist.push(i); + if(autosuidao.geometry.attributes.position.array[i*3] > rightpoint){ + rightpoint = i; + } + } + if(autosuidao.geometry.attributes.position.array[i*3] <-7){ + leftlist.push(i); + if(autosuidao.geometry.attributes.position.array[i*3] < rightpoint){ + leftpoint = i; + } + } + } + autosuidao.rightlist = rightlist; + autosuidao.leftlist = leftlist; + autosuidao.rightpoint = rightpoint; + autosuidao.leftpoint = leftpoint; + // console.log(autosuidao); + // console.log(linkdata.linksgroup.children); + // console.log(suidaodata.datalist); + for(let i = 0;i < suidaodata.datalist.length;i++){ + let link = linkdata.linksgroup.getObjectByProperty("code",suidaodata.datalist[i].linkCode); + let suidao = suidaodata.datalist[i]; + let len = suidao.offsetRight-suidao.offsetLeft; + // console.log("-------------------------------------"); + // console.log("name:"+link.name); + // console.log(link.lengthfact); + // console.log(len); + // console.log("ofl:"+suidao.offsetLeft+" "+"ofr:"+suidao.offsetRight); + // console.log("-------------------------------------"); + + let testmesh1 = autosuidao.clone(true); + for(let i=0;i link.rp.y){ + testmesh1.position.z = link.lp.y-suidao.offsetLeft*(len/lenfact) + (link.rp.y-link.lp.y)*(len/lenfact)/2; + }else{ + testmesh1.position.z = link.lp.y+suidao.offsetLeft*(len/lenfact) + (link.rp.y-link.lp.y)*(len/lenfact)/2; + } + }else{ + testmesh1.position.x = link.lp.x+suidao.offsetLeft+len/2; + testmesh1.position.z = link.position.z; + } + testmesh1.position.y = 3.5; + // testmesh1.rotation.x = Math.PI/4; + testmesh1.code = suidaodata.datalist[i].code; + testmesh1.name = suidaodata.datalist[i].code; + // testmesh1.position.z = link.position.z; + testmesh1.relStandCode = suidaodata.datalist[i].relStandCode; + // testmesh1.stationCode = suidaodata.datalist[i].stationCode; + + testmesh1.rightlist = autosuidao.rightlist; + testmesh1.leftlist = autosuidao.leftlist; + testmesh1.rightpoint = autosuidao.rightpoint; + testmesh1.leftpoint = autosuidao.leftpoint; + testmesh1.isStandTrack = suidaodata.datalist[i].isStandTrack; + testmesh1.lengthfact = len; + testmesh1.linkCode = suidao.linkCode; + if(suidaodata.datalist[i].isStandTrack == false){ + sectiongroup.add(testmesh1); + + }else{ + scope.standtrack.push(testmesh1); + var box = new THREE.BoxHelper( testmesh1, 0xff0000 ); + sectiongroup.add( box ); + } + scope.sections.modellist.push(testmesh1); + } + } - // this.init = function(sectiondata,switchdata,scene){ - // - // //遍历区段 - // for(let i=0;i 0 && trainmodel.speeds){ let speed = null; - if(traindata.group.children[j].progress<1){ + if(traindata.group.children[j].progress >=0&&traindata.group.children[j].progress<=1){ // console.log(trainmodel.rname); // console.log(trainmodel.speeds); // console.log(trainmodel.progress); let movecurve = trainmodel.curve; + if(trainmodel.status == "03"){ + if(movecurve.points.length>1){ + let point = movecurve.getPointAt(traindata.group.children[j].progress); - if(trainmodel.status == "03"){//向左 - let point = movecurve.getPointAt(traindata.group.children[j].progress); - if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.1){ - trainmodel.children[0].up = new THREE.Vector3(-1,0,0); - let tangent = movecurve.getTangentAt(traindata.group.children[j].progress).normalize(); - trainmodel.children[0].axis.crossVectors(trainmodel.children[0].up, tangent).normalize(); - let radians = Math.acos(trainmodel.children[0].up.dot(tangent)); - trainmodel.children[0].quaternion.setFromAxisAngle(trainmodel.children[0].axis, radians); - let rotas = { - posr:point, - rota:trainmodel.children[0].rotation.y - } - trainmodel.children[1].rotalist.push(rotas); + if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.02){ + trainmodel.children[0].up = new THREE.Vector3(-1,0,0); + let tangent = movecurve.getTangentAt(traindata.group.children[j].progress).normalize(); + trainmodel.children[0].axis.crossVectors(trainmodel.children[0].up, tangent).normalize(); + let radians = Math.acos(trainmodel.children[0].up.dot(tangent)); - let offsetz = parseFloat(trainmodel.children[0].matrixWorld.elements[14]) - parseFloat(point.z); - trainmodel.children[0].position.z += offsetz; - //trainmodel.position.z = point.z; - } + trainmodel.children[0].quaternion.setFromAxisAngle(trainmodel.children[0].axis, radians); + trainmodel.children[0].rotation.x = -Math.PI/2; + trainmodel.children[0].rotation.z = trainmodel.children[0].rotation.y; + trainmodel.children[0].rotation.y = 0; - trainmodel.position.x = point.x; - trainmodel.position.y = 0; - - if(trainmodel.children[1].rotalist.length > 0 || trainmodel.children[2].rotalist.length > 0 || trainmodel.children[3].rotalist.length > 0 || trainmodel.children[4].rotalist.length > 0|| trainmodel.children[5].rotalist.length > 0){ - for(let rs = 1;rs<6;rs++){ - //console.log(rs); - if(trainmodel.children[rs].rotalist[0]){ - let offsetz = parseFloat(trainmodel.children[rs].matrixWorld.elements[14]) - parseFloat(trainmodel.children[rs].rotalist[0].posr.z); - - trainmodel.children[rs].position.z += offsetz; - - for(let xh=0;xh0.1){ - trainmodel.children[0].up = new THREE.Vector3(1,0,0); - let tangent = movecurve.getTangentAt(traindata.group.children[j].progress).normalize(); - trainmodel.children[0].axis.crossVectors(trainmodel.children[0].up, tangent).normalize(); - let radians = Math.acos(trainmodel.children[0].up.dot(tangent)); - trainmodel.children[0].quaternion.setFromAxisAngle(trainmodel.children[0].axis, radians); - - let rotas = { - posr:point, - rota:trainmodel.children[0].rotation.y - } - trainmodel.children[1].rotalist.push(rotas); - let offsetz = parseFloat(point.z) - parseFloat(trainmodel.children[0].matrixWorld.elements[14]); - trainmodel.children[0].position.z += offsetz; - //trainmodel.position.z = point.z; - } - - trainmodel.position.x = point.x; - trainmodel.position.y = 0; - if(trainmodel.children[1].rotalist.length > 0 || trainmodel.children[2].rotalist.length > 0 || trainmodel.children[3].rotalist.length > 0 || trainmodel.children[4].rotalist.length > 0|| trainmodel.children[5].rotalist.length > 0){ - - for(let rs = 1;rs<6;rs++){ + if(trainmodel.children[1].rotalist.length > 0 || trainmodel.children[2].rotalist.length > 0 || trainmodel.children[3].rotalist.length > 0 || trainmodel.children[4].rotalist.length > 0|| trainmodel.children[5].rotalist.length > 0){ + for(let rs = 1;rs<6;rs++){ //console.log(rs); if(trainmodel.children[rs].rotalist[0]){ + let offsetz = parseFloat(trainmodel.children[rs].matrixWorld.elements[14]) - parseFloat(trainmodel.children[rs].rotalist[0].posr.z); - let offsetz = parseFloat(trainmodel.children[rs].rotalist[0].posr.z) - parseFloat(trainmodel.children[rs].matrixWorld.elements[14]); trainmodel.children[rs].position.z += offsetz; for(let xh=0;xh=trainmodel.children[rs].rotalist[0].posr.x){ + if((trainmodel.children[rs].matrixWorld.elements[12]-8)<=trainmodel.children[rs].rotalist[0].posr.x){ if(rs != 5){ let asd = trainmodel.children[rs].rotalist[0]; trainmodel.children[rs+1].rotalist.push(asd); } - //let offsetx = trainmodel.children[1].matrixWorld.elements[12]-trainmodel.children[0].children[3].matrixWorld.elements[12]; - trainmodel.children[rs].rotation.y = trainmodel.children[rs].rotalist[0].rota; + trainmodel.children[rs].rotation.z = trainmodel.children[rs].rotalist[0].rota; trainmodel.children[rs].rotalist.splice(0,1) xh--; }else{ @@ -120,17 +74,94 @@ export function UpdateTrain(camera,traindata){ } } //console.log(trainmodel.children[rs].rotalist.length); - } - - + } } - // console.log(trainmodel.rotalist); + trainmodel.progress += trainmodel.speeds; } - - trainmodel.progress += trainmodel.speeds; } + if(trainmodel.status == "02"){ + if(movecurve.points.length>1){ + let point = movecurve.getPointAt(trainmodel.progress); + if(Math.abs( point.z -trainmodel.children[0].matrixWorld.elements[14]) >0.02){ + trainmodel.children[0].up = new THREE.Vector3(1,0,0); + let tangent = movecurve.getTangentAt(traindata.group.children[j].progress).normalize(); + trainmodel.children[0].axis.crossVectors(trainmodel.children[0].up, tangent).normalize(); + let radians = Math.acos(trainmodel.children[0].up.dot(tangent)); + trainmodel.children[0].quaternion.setFromAxisAngle(trainmodel.children[0].axis, radians); + trainmodel.children[0].rotation.x = -Math.PI/2; + trainmodel.children[0].rotation.z = trainmodel.children[0].rotation.y; + trainmodel.children[0].rotation.y = 0; + let rotas = { + posr:point, + rota:trainmodel.children[0].rotation.z + } + trainmodel.children[1].rotalist.push(rotas); + let offsetz = parseFloat(point.z) - parseFloat(trainmodel.children[0].matrixWorld.elements[14]); + trainmodel.children[0].position.z += offsetz; + //trainmodel.position.z = point.z; + } + + trainmodel.position.x = point.x; + trainmodel.position.y = 0; + if(trainmodel.children[1].rotalist.length > 0 || trainmodel.children[2].rotalist.length > 0 || trainmodel.children[3].rotalist.length > 0 || trainmodel.children[4].rotalist.length > 0|| trainmodel.children[5].rotalist.length > 0){ + + for(let rs = 1;rs<6;rs++){ + //console.log(rs); + if(trainmodel.children[rs].rotalist[0]){ + + let offsetz = parseFloat(trainmodel.children[rs].rotalist[0].posr.z) - parseFloat(trainmodel.children[rs].matrixWorld.elements[14]); + trainmodel.children[rs].position.z += offsetz; + + for(let xh=0;xh=trainmodel.children[rs].rotalist[0].posr.x){ + + if(rs != 5){ + let asd = trainmodel.children[rs].rotalist[0]; + trainmodel.children[rs+1].rotalist.push(asd); + + } + //let offsetx = trainmodel.children[1].matrixWorld.elements[12]-trainmodel.children[0].children[3].matrixWorld.elements[12]; + + trainmodel.children[rs].rotation.z = trainmodel.children[rs].rotalist[0].rota; + trainmodel.children[rs].rotalist.splice(0,1) + xh--; + }else{ + xh = trainmodel.children[rs].rotalist.length; + } + } + //console.log(trainmodel.children[rs].rotalist.length); + + } + + + } + // console.log(trainmodel.rotalist); + } + + + trainmodel.progress += trainmodel.speeds; + } + } + + } + else{ + + if(trainmodel.status == '02'){ + trainmodel.curve = trainmodel.nextcurve; + }else if(trainmodel.status == '03'){ + trainmodel.curve = trainmodel.nextcurve; + } + // console.log(trainmodel.name); + // console.log(trainmodel.progress); + // console.log(trainmodel.nextcurve); + // if(trainmodel.status == "02"){ + // trainmodel.progress = 0; + // }else if(trainmodel.status == "03"){ + // trainmodel.progress = 1; + // } + // trainmodel.curve = trainmodel.nextcurve; } } diff --git a/src/jmap/shape/StationStand/index.js b/src/jmap/shape/StationStand/index.js index 732860278..4331c55bd 100644 --- a/src/jmap/shape/StationStand/index.js +++ b/src/jmap/shape/StationStand/index.js @@ -250,6 +250,7 @@ class StationStand extends Group { /** 中心+车站扣车*/ standAndCenterDetainTrain() { this.detain && this.detain.show(); + this.detain && this.detain.setColor(this.style.StationStand.detainCar.andCenterTrainColor); } /** 人工设置停战时间*/ diff --git a/src/jmap/theme/batong_01/menus/index.vue b/src/jmap/theme/batong_01/menus/index.vue index 3c7e76b67..2f160d9ab 100644 --- a/src/jmap/theme/batong_01/menus/index.vue +++ b/src/jmap/theme/batong_01/menus/index.vue @@ -70,7 +70,7 @@ export default { this.$store.state.training.roles == 'BigScreen'; }, isShowMenu() { - return this.$store.state.training.prdType != ''; + return this.$store.state.training.prdType; } }, watch: { diff --git a/src/jmap/theme/beijing_01/menus/index.vue b/src/jmap/theme/beijing_01/menus/index.vue index badcb49e5..64aac8c71 100644 --- a/src/jmap/theme/beijing_01/menus/index.vue +++ b/src/jmap/theme/beijing_01/menus/index.vue @@ -72,7 +72,7 @@ export default { this.$store.state.training.roles != 'BigScreen'; }, isShowBar() { - return this.$store.state.training.prdType != ''; + return this.$store.state.training.prdType; } }, watch: { diff --git a/src/jmap/theme/beijing_01/menus/menuBar.vue b/src/jmap/theme/beijing_01/menus/menuBar.vue index 7d02f6eb0..221e19047 100644 --- a/src/jmap/theme/beijing_01/menus/menuBar.vue +++ b/src/jmap/theme/beijing_01/menus/menuBar.vue @@ -157,7 +157,7 @@ export default { operate: OperationEvent.Command.mBar.system, children: [ { - title: '登陆', + title: '登录', click: this.undeveloped }, { @@ -424,7 +424,7 @@ export default { operate: OperationEvent.Command.mBar.system, children: [ { - title: '登陆', + title: '登录', click: this.undeveloped }, { diff --git a/src/jmap/theme/chengdu_03/menus/dialog/cancelAllLimit.vue b/src/jmap/theme/chengdu_03/menus/dialog/cancelAllLimit.vue deleted file mode 100644 index 15fbc4750..000000000 --- a/src/jmap/theme/chengdu_03/menus/dialog/cancelAllLimit.vue +++ /dev/null @@ -1,355 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/jmap/theme/chengdu_03/menus/dialog/childDialog/passwordInputBox.vue b/src/jmap/theme/chengdu_03/menus/dialog/childDialog/passwordInputBox.vue index 68a8db975..b706da32d 100644 --- a/src/jmap/theme/chengdu_03/menus/dialog/childDialog/passwordInputBox.vue +++ b/src/jmap/theme/chengdu_03/menus/dialog/childDialog/passwordInputBox.vue @@ -107,11 +107,7 @@ export default { } }, domIdConfirm() { - if (this.operate && this.operate.operateCode) { - return this.dialogShow ? getDomIdByOperation(this.operate.operateCode) : ''; - } else { - return this.dialogShow ? OperationEvent.Command.close.confirm.domId : ''; - } + return this.dialogShow ? getDomIdByOperation(this.operate.operateNext) : ''; } }, mounted() { @@ -135,29 +131,10 @@ export default { this.$store.dispatch('training/emitTipFresh'); }, commit() { - const operate = { - send: this.operate.operateCode != null, - type: this.operate.type, - operation: this.operate.operateCode != null ? this.operate.operateCode : OperationEvent.Command.close.confirm.operation - }; - if (this.operate.val) { - operate['val'] = this.operate.val; - } - if (this.passwordCheck === this.correctPassword) { - this.$store.dispatch('training/next', operate).then(({ valid }) => { - this.loading = false; - - if (valid) { - this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); - this.$emit('checkOver'); - this.doClose(); - this.inputClear(); - } - }).catch(() => { - this.loading = false; - this.$refs.noticeInfo && this.$refs.noticeInfo.doShow(operate); - }); + this.$emit('checkOver', this.operate); + this.doClose(); + this.inputClear(); } else { this.showMistake = true; } diff --git a/src/jmap/theme/chengdu_03/menus/dialog/routeControl.vue b/src/jmap/theme/chengdu_03/menus/dialog/routeControl.vue index d959ba7e3..6af5a13b5 100644 --- a/src/jmap/theme/chengdu_03/menus/dialog/routeControl.vue +++ b/src/jmap/theme/chengdu_03/menus/dialog/routeControl.vue @@ -27,7 +27,7 @@ - + @@ -79,10 +79,6 @@ export default { return '信号封锁'; } else if (this.operation == OperationEvent.Signal.unlock.menu.operation) { return '信号解封'; - } else if (this.operation == OperationEvent.Signal.humanControl.menu.operation) { - return '进路收人工控'; - } else if (this.operation == OperationEvent.Signal.atsAutoControl.menu.operation) { - return '进路交自动控'; } else if (this.operation == OperationEvent.Signal.signalClose.menu.operation) { return '信号关灯'; } @@ -138,17 +134,26 @@ export default { } else if (this.operation == OperationEvent.Signal.unlock.menu.operation) { /** 信号解封*/ this.unlock(); - } else if (this.operation == OperationEvent.Signal.humanControl.menu.operation) { - /** 进路收人工控*/ - this.humanControl(); - } else if (this.operation == OperationEvent.Signal.atsAutoControl.menu.operation) { - /** 进路交自动控*/ - this.atsAutoControl(); } else if (this.operation == OperationEvent.Signal.signalClose.menu.operation) { /** 信号关灯*/ this.signalClose(); } }, + passWordCommit(data) { + const operate = { + send: true, + type: data.type, + operation: data.operateNext + }; + + this.$store.dispatch('training/next', operate).then(({ valid }) => { + if (valid) { this.doClose(); } + }).catch(() => { + this.doClose(); + this.$refs.noticeInfo.doShow(operate); + }); + + }, // 取消列车进路 cancelTrainRoute() { if (this.$store.state.training.prdType == '01') { @@ -174,7 +179,6 @@ export default { this.doClose(); } }).catch(() => { - this.loading = false; this.doClose(); this.$refs.noticeInfo.doShow(operate); }); @@ -194,7 +198,6 @@ export default { this.doClose(); } }).catch(() => { - this.loading = false; this.doClose(); this.$refs.noticeInfo.doShow(operate); }); @@ -204,7 +207,7 @@ export default { const operate = { type: MapDeviceType.Signal.type, operation: OperationEvent.Signal.humanTrainRoute.menu.operation, - operateCode: OperationEvent.Signal.humanTrainRoute.confirm.operation + operateNext: OperationEvent.Signal.humanTrainRoute.confirm.operation }; this.$store.dispatch('training/next', operate).then(({ valid }) => { @@ -213,7 +216,6 @@ export default { this.$refs.password.doShow(operate); } }).catch(() => { - this.loading = false; this.doClose(); this.$refs.noticeInfo.doShow(operate); }); @@ -233,7 +235,6 @@ export default { this.doClose(); } }).catch(() => { - this.loading = false; this.doClose(); this.$refs.noticeInfo.doShow(operate); }); @@ -243,7 +244,7 @@ export default { const operate = { type: MapDeviceType.Signal.type, operation: OperationEvent.Signal.lock.menu.operation, - operateCode: OperationEvent.Signal.lock.confirm.operation + operateNext: OperationEvent.Signal.lock.confirm.operation }; this.$store.dispatch('training/next', operate).then(({ valid }) => { @@ -259,7 +260,7 @@ export default { const operate = { type: MapDeviceType.Signal.type, operation: OperationEvent.Signal.unlock.menu.operation, - operateCode: OperationEvent.Signal.unlock.confirm.operation + operateNext: OperationEvent.Signal.unlock.confirm.operation }; this.$store.dispatch('training/next', operate).then(({ valid }) => { @@ -270,51 +271,6 @@ export default { }).catch(() => { }); }, - // 进路收人工控 - humanControl() { - const operate = { - type: MapDeviceType.Signal.type, - operation: OperationEvent.Signal.humanControl.menu.operation, - operateCode: OperationEvent.Signal.humanControl.confirm.operation, - val: this.operateCode - }; - - this.loading = true; - this.$store.dispatch('training/next', operate).then(({ valid }) => { - this.loading = false; - if (valid) { - this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); - this.$refs.password.doShow(operate); - } - }).catch(() => { - this.loading = false; - // this.doClose(); - // this.$refs.noticeInfo.doShow(operate); - }); - }, - // 进路交自动控 - atsAutoControl() { - const operate = { - // send: true, - type: MapDeviceType.Signal.type, - operation: OperationEvent.Signal.atsAutoControl.menu.operation, - operateCode: OperationEvent.Signal.atsAutoControl.confirm.operation, - val: this.operateCode - }; - - this.loading = true; - this.$store.dispatch('training/next', operate).then(({ valid }) => { - this.loading = false; - if (valid) { - this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); - this.$refs.password.doShow(operate); - } - }).catch(() => { - this.loading = false; - // this.doClose(); - // this.$refs.noticeInfo.doShow(operate); - }); - }, // 信号关灯 signalClose() { const operate = { diff --git a/src/jmap/theme/chengdu_03/menus/dialog/routeGuide.vue b/src/jmap/theme/chengdu_03/menus/dialog/routeGuide.vue index 3ab16dd4b..847ab9fd2 100644 --- a/src/jmap/theme/chengdu_03/menus/dialog/routeGuide.vue +++ b/src/jmap/theme/chengdu_03/menus/dialog/routeGuide.vue @@ -22,17 +22,7 @@
进路列表 - + @@ -55,7 +45,7 @@ - + @@ -78,7 +68,6 @@ export default { dialogShow: false, loading: false, selected: null, - row: null, operation: '', display: true, stationName: '', @@ -160,47 +149,40 @@ export default { this.$store.dispatch('training/emitTipFresh'); }); }, + passWordCommit(data) { + const operate = { + send: true, + type: data.type, + operation: data.operateNext + }; + + this.loading = true; + this.$store.dispatch('training/next', operate).then(({ valid }) => { + this.loading = false; + if (valid) { + this.doClose(); + } + }).catch(() => { + this.loading = false; + this.doClose(); + this.$refs.noticeInfo.doShow(operate); + }); + }, doClose() { this.loading = false; this.dialogShow = false; - this.guide(); this.$refs.table.setCurrentRow(); this.$store.dispatch('training/emitTipFresh'); mouseCancelState(this.selected); }, - guide() { - // 恢复之前选中设备 - if (this.beforeSectionList && this.beforeSectionList.length) { - this.beforeSectionList.forEach(elem => { - elem.cutOff = false; - }); - } - - this.$store.dispatch('training/updateMapState', [...this.beforeSectionList]); - this.beforeSectionList = []; - }, clickEvent(row, event, column) { - this.row = row; if (row) { - // 恢复进路区段的切除状态 - this.guide(); - row.canSetting = true; - // 设置选中区段为切除状态 - if (row.containSectionList && row.containSectionList.length) { - // 设置新选的进路区段为切除状态 - row.containSectionList.forEach(elem => { - elem.cutOff = true; - }); - } - - this.$store.dispatch('training/updateMapState', [...row.containSectionList]); - this.beforeSectionList = row.containSectionList || []; - - // 设置选中指令 const operate = { + repeat: true, type: MapDeviceType.Signal.type, operation: OperationEvent.Signal.guide.choose.operation, - val: row.code + val: row.code, + selection: row }; this.$store.dispatch('training/next', operate).then(({ valid }) => { @@ -216,7 +198,7 @@ export default { const operate = { type: MapDeviceType.Signal.type, operation: OperationEvent.Signal.guide.menu.operation, - operateCode: OperationEvent.Signal.guide.confirm.operation + operateNext: OperationEvent.Signal.guide.confirm.operation }; this.loading = true; diff --git a/src/jmap/theme/chengdu_03/menus/dialog/routeHandControl.vue b/src/jmap/theme/chengdu_03/menus/dialog/routeHandControl.vue new file mode 100644 index 000000000..1d0b730c5 --- /dev/null +++ b/src/jmap/theme/chengdu_03/menus/dialog/routeHandControl.vue @@ -0,0 +1,285 @@ + + + diff --git a/src/jmap/theme/chengdu_03/menus/dialog/sectionControl.vue b/src/jmap/theme/chengdu_03/menus/dialog/sectionControl.vue index 3b262fa86..ddf690e1e 100644 --- a/src/jmap/theme/chengdu_03/menus/dialog/sectionControl.vue +++ b/src/jmap/theme/chengdu_03/menus/dialog/sectionControl.vue @@ -27,7 +27,7 @@ - + @@ -129,6 +129,22 @@ export default { this.fault(); } }, + passWordCommit(data) { + const operate = { + send: true, + type: data.type, + operation: data.operateNext + }; + + this.$store.dispatch('training/next', operate).then(({ valid }) => { + if (valid) { + this.doClose(); + } + }).catch(() => { + this.doClose(); + this.$refs.noticeInfo.doShow(operate); + }); + }, // 道岔单锁 lock() { const operate = { @@ -192,10 +208,9 @@ export default { // 区故解 fault() { const operate = { - // send: true, type: MapDeviceType.Section.type, operation: OperationEvent.Section.fault.menu.operation, - operateCode: OperationEvent.Section.fault.confirm.operation + operateNext: OperationEvent.Section.fault.confirm.operation }; this.loading = true; diff --git a/src/jmap/theme/chengdu_03/menus/dialog/switchControl.vue b/src/jmap/theme/chengdu_03/menus/dialog/switchControl.vue index 4de269dad..911e471b5 100644 --- a/src/jmap/theme/chengdu_03/menus/dialog/switchControl.vue +++ b/src/jmap/theme/chengdu_03/menus/dialog/switchControl.vue @@ -31,7 +31,7 @@ - + @@ -153,6 +153,22 @@ export default { this.openPasswordBox(this.operation, OperationEvent.Switch.fault.confirm.operation); } }, + passWordCommit(data) { + const operate = { + send: true, + type: data.type, + operation: data.operateNext + }; + + this.$store.dispatch('training/next', operate).then(({ valid }) => { + if (valid) { + this.doClose(); + } + }).catch(() => { + this.doClose(); + this.$refs.noticeInfo.doShow(operate); + }); + }, // 道岔单锁 lock() { const operate = { @@ -311,11 +327,11 @@ export default { }); }, // 打开密码输入框 - openPasswordBox(operation, code) { + openPasswordBox(operation, operateNext) { const operate = { type: MapDeviceType.Switch.type, operation: operation, - operateCode: code + operateNext: operateNext }; this.loading = true; this.$store.dispatch('training/next', operate).then(({ valid }) => { diff --git a/src/jmap/theme/chengdu_03/menus/dialog/trainCreate.vue b/src/jmap/theme/chengdu_03/menus/dialog/trainCreate.vue index c778ce917..210adccf0 100644 --- a/src/jmap/theme/chengdu_03/menus/dialog/trainCreate.vue +++ b/src/jmap/theme/chengdu_03/menus/dialog/trainCreate.vue @@ -1,158 +1,153 @@ \ No newline at end of file + this.$store.dispatch('training/next', operate).then(({ valid }) => { + if (valid) { + this.doClose(); + } + }).catch(() => { + this.doClose(); + }); + } + } +}; + diff --git a/src/jmap/theme/chengdu_03/menus/dialog/trainEditNumber.vue b/src/jmap/theme/chengdu_03/menus/dialog/trainEditNumber.vue index 2cf5460f1..f13e64a16 100644 --- a/src/jmap/theme/chengdu_03/menus/dialog/trainEditNumber.vue +++ b/src/jmap/theme/chengdu_03/menus/dialog/trainEditNumber.vue @@ -1,180 +1,174 @@ diff --git a/src/jmap/theme/fuzhou_01/menus/passiveDialog/alarm.vue b/src/jmap/theme/fuzhou_01/menus/passiveDialog/alarm.vue index ee1a74227..393599ff2 100644 --- a/src/jmap/theme/fuzhou_01/menus/passiveDialog/alarm.vue +++ b/src/jmap/theme/fuzhou_01/menus/passiveDialog/alarm.vue @@ -1,209 +1,209 @@ diff --git a/src/main.js b/src/main.js index 7d13b4a18..f9ffc387f 100644 --- a/src/main.js +++ b/src/main.js @@ -19,7 +19,13 @@ import router from './router'; import '@/icons'; // icon import '@/permission'; // permission control import '@/scripts/GlobalPlugin'; -import '@/directives'; +// import '@/directives'; +import '@/directive/dialogDrag/index.js'; +import '@/directive/dialogDragWidth/index.js'; +import '@/directive/drag/index.js'; +import '@/directive/focus/index.js'; +import '@/directive/quickMenuDrag/index.js'; +import '@/directive/waves/index.js'; import messages from '@/i18n/index'; Vue.use(ElementUI); diff --git a/src/permission.js b/src/permission.js index 1cfac6f57..e64a16dc5 100644 --- a/src/permission.js +++ b/src/permission.js @@ -3,9 +3,11 @@ import store from '@/store'; import router from './router'; import NProgress from 'nprogress'; // Progress 进度条 import 'nprogress/nprogress.css';// Progress 进度条样式 -import { admin } from './router'; -import { getToken, getScreenToken, getPlanToken } from '@/utils/auth'; // 验权 +import { admin, userDesign} from './router'; +import { getToken, getScreenToken, getDesignToken} from '@/utils/auth'; // 验权 +// getPlanToken import { LoginParams } from '@/utils/login'; +import { getSessionStorage } from '@/utils/auth'; function hasPermission(roles, permissionRoles) { if (roles.indexOf(admin) >= 0) return true; @@ -13,13 +15,24 @@ function hasPermission(roles, permissionRoles) { return roles.some(role => permissionRoles.indexOf(role) >= 0); } -const whiteList = ['/login', '/dp/login', '/plan/login', '/en/login']; // 不重定向白名单 +const project = getSessionStorage('project'); + +// const whiteList = ['/login', '/login1', '/dp/login', '/dp/login1', '/design/login1']; // 不重定向白名单 +// +// const loginPage = whiteList[0] + (('/'+project) || ''); +// +// const loginScreenPage = isDev ? whiteList[3] : whiteList[2]; +// +// const loginPlanPage = isDev ? whiteList[5] : whiteList[4]; +// const loginDesignPage = isDev ? whiteList[4] : whiteList[4]; + +const whiteList = ['/login', '/dp/login', '/en/login', '/design/login', '/en/design/login', '/login/xty']; // 不重定向白名单 const loginPage = whiteList[0]; const loginScreenPage = whiteList[1]; -const loginPlanPage = whiteList[2]; +const loginDesignPage = whiteList[3]; // 获取路径数据 function getRouteInfo(to) { @@ -32,10 +45,21 @@ function getRouteInfo(to) { loginPath = loginScreenPage; getTokenInfo = getScreenToken; clientId = LoginParams.DaPing.clientId; - } else if (/^\/plan/.test(toRoutePath) || /^\/display\/plan/.test(toRoutePath) || /^\/planEdit/.test(toRoutePath)) { - loginPath = loginPlanPage; - getTokenInfo = getPlanToken; - clientId = LoginParams.LianJiHua.clientId; + } else if (/^\/design/.test(toRoutePath) || /^\/scriptDisplay/.test(toRoutePath) || /^\/publish/.test(toRoutePath) || /^\/orderauthor/.test(toRoutePath) || /^\/system/.test(toRoutePath)|| /^\/display\/record/.test(toRoutePath) || /^\/display\/manage/.test(toRoutePath) || /^\/apply/.test(toRoutePath)) { + loginPath = loginDesignPage; + getTokenInfo = getDesignToken; + clientId = LoginParams.Design.clientId; + } else if (/^\/plan/.test(toRoutePath) || /^\/display\/plan/.test(toRoutePath)) { + const flag = getSessionStorage('design'); + if (flag == 'true') { + loginPath = loginDesignPage; + getTokenInfo = getDesignToken; + clientId = LoginParams.Design.clientId; + } else { + loginPath = loginPage; + getTokenInfo = getToken; + clientId = null; + } } else { loginPath = loginPage; getTokenInfo = getToken; @@ -50,11 +74,15 @@ function handleRoute(to, from, next, routeInfo) { // 拉取用户信息 store.dispatch('GetInfo', routeInfo.getTokenInfo).then(res => { // 根据roles权限生成可访问的路由表 + // debugger; const roles = res.roles; - + if (getSessionStorage('design')) { + roles.push(userDesign); + } store.dispatch('GenerateRoutes', { roles, clientId: routeInfo.clientId }).then(() => { // 动态添加可访问路由表 router.addRoutes(store.getters.addRouters); + // router.addRoutes(asyncRouter1); if (to.redirectedFrom) { next({ path: to.redirectedFrom, replace: true }); } else { @@ -64,7 +92,7 @@ function handleRoute(to, from, next, routeInfo) { }).catch(() => { store.dispatch('FedLogOut', routeInfo.clientId).then(() => { - Vue.prototype.$messageBox('验证失败,请重新登陆!'); + Vue.prototype.$messageBox('验证失败,请重新登录!'); next({ path: routeInfo.loginPath }); }); }); diff --git a/src/router/index.js b/src/router/index.js index 682093884..bdbd75af7 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -8,21 +8,21 @@ import Layout from '@/layout'; import Login from '@/views/login/index'; // 英文默认登陆窗口 import LoginEn from '@/views/login/loginEn'; - -// import LoginNewScreen from '@/views/login/loginNewScreen'; import LoginScreen from '@/views/login/loginScreen'; -import LoginPlan from '@/views/login/loginPlan'; +import LoginDesign from '@/views/login/loginDesign'; +import LoginDesignEn from '@/views/login/loginEnDesign'; import Jlmap3dedit from '@/views/jlmap3d/edit/jlmap3dedit'; import Jlmap3d from '@/views/jlmap3d/drive/jl3ddrive'; import Display from '@/views/display/index'; +import DesignDisplay from '@/views/display/designIndex'; + import TrainRoom from '@/views/trainRoom/index'; import JointTraining from '@/views/jointTraining/index'; import Error401 from '@/views/error-page/401'; import Errpr404 from '@/views/error-page/404'; -import Dashboard from '@/views/dashboard/index'; -import Dashboard1 from '@/views/dashboard/index.vue'; + import SkinCode from '@/views/map/skinCode/index'; import SkinCodeDraft from '@/views/map/skinCode/draft'; import Mapdraft from '@/views/map/mapdraft/index'; @@ -30,47 +30,47 @@ import Mapedit from '@/views/map/mapdraft/mapedit/index'; import Runplan from '@/views/map/runplan/index'; import MapProduct from '@/views/map/product/index'; import RunplanView from '@/views/map/runplan/chart'; + import Trainingrecord from '@/views/lesson/trainingrecord/index'; import TrainingrecordManage from '@/views/lesson/trainingrecord/manage/index'; import Taskmanage from '@/views/lesson/taskmanage/list'; import TrainingRuleList from '@/views/lesson/trainingRule/list'; import TrainingRuleEdit from '@/views/lesson/trainingRule/detail/index'; import Trainingmanage from '@/views/lesson/trainingmanage/index'; -import Lessoncategory from '@/views/lesson/lessoncategory/index'; -// import Scriptmanage from '@/views/lesson/scriptmanage/list'; +import LessonEdit from '@/views/lesson/lessoncategory/index'; +import LessonHome from '@/views/lesson/home'; +import LessonDetail from '@/views/lesson/details'; -import Scriptmanage from '@/views/scriptManage/index'; import ScriptmanageHome from '@/views/scriptManage/home'; import ScriptDisplay from '@/views/scriptManage/display/index'; -import ScriptDetail from '@/views/scriptManage/detail/index'; -import Teach from '@/views/teach/index'; -import TeachHome from '@/views/teach/home'; import TeachDetail from '@/views/teach/detail/index'; import TeachPractical from '@/views/teach/practical/index'; +import TeachHome from '@/views/teach/index'; import Pay from '@/views/components/pay/index'; -import Exam from '@/views/exam/index'; -import ExamHome from '@/views/exam/home'; import ExamDetail from '@/views/exam/detail/examDetail'; +import ExamHome from '@/views/exam/index'; import ExamCourseDetail from '@/views/exam/detail/courseDetail'; -import ExamQuestionDetail from '@/views/exam/detail/questionDetail'; import ExamResult from '@/views/exam/result'; import PublishExamRule from '@/views/publish/examRule/index'; import PublishExamRuleDraft from '@/views/publish/examRule/draft/index'; -import Demonstration from '@/views/demonstration/index'; -import DemonstrationHome from '@/views/demonstration/home'; import DemonstrationDetail from '@/views/demonstration/detail/index'; import ScreenMonitor from '@/views/screenMonitor/index'; import ScreenMonitorHome from '@/views/screenMonitor/home'; import ScreenMonitorDetail from '@/views/screenMonitor/detail/index'; import PlanMonitorEditTool from '@/views/planMonitor/editTool/index'; +import PlanMonitorEditUserTool from '@/views/planMonitor/editTool/userindex'; import PlanMonitor from '@/views/planMonitor/index'; import PlanMonitorHome from '@/views/planMonitor/home'; import PlanMonitorDetail from '@/views/planMonitor/detail'; +import DesignPlatformHome from '@/views/designPlatform/home'; +import DesignPlatform from '@/views/designPlatform/index'; +import DesignPlatformUser from '@/views/designPlatform/userIndex'; + import Replay from '@/views/replay/index'; import Package from '@/views/package/index'; import PackageDraft from '@/views/package/draft/ruleForm'; @@ -85,8 +85,10 @@ import RunPlanTemplate from '@/views/publish/runPlanTemplate/index'; import RunPlanEveryDay from '@/views/publish/runPlanEveryDay/index'; import ProductStatus from '@/views/publish/productStatus/index'; import PublishLesson from '@/views/publish/publishLesson/index'; -// import SimulationScript from '@/views/publish/simulationScript/index'; + import IbpEdit from '@/views/ibp/ibpDraft/ibpEdit/index'; +import TrainingPlatform from '@/views/trainingPlatform/index'; +import TrainingPlatformHome from '@/views/trainingPlatform/home'; import Commodity from '@/views/orderauthor/commodity/index'; import CommodityDraft from '@/views/orderauthor/commodity/draft'; @@ -94,12 +96,10 @@ import OrderList from '@/views/orderauthor/order/list'; import OrderDraft from '@/views/orderauthor/order/draft'; import Author from '@/views/orderauthor/author/index'; import AuthorDraft from '@/views/orderauthor/author/draft/ruleForm'; - import Permission from '@/views/orderauthor/permission/index'; import PermissionDetail from '@/views/orderauthor/permission/detail'; import PermissionDraft from '@/views/orderauthor/permission/draft/ruleForm'; import PermissionCreate from '@/views/orderauthor/permission/create/index'; - import UserRules from '@/views/orderauthor/rules/index'; import UserRulesDetail from '@/views/orderauthor/rules/detail'; @@ -110,9 +110,17 @@ import UserTraining from '@/views/management/userTraining/index'; import UserExam from '@/views/management/userExam/index'; import UserSimulation from '@/views/management/userSimulation/index'; import ExistingSimulation from '@/views/management/existingSimulation/index'; - import CacheControl from '@/views/management/cacheControl/index'; +import LessonApproval from '@/views/approval/lesson/index'; +import ScriptApproval from '@/views/approval/script/index'; +import RunPlanApproval from '@/views/approval/runPlan/index'; + +import SystemGenerate from '@/views/systemGenerate/index'; + +import { loginTitle } from '@/scripts/ConstDic'; +import { getSessionStorage } from '@/utils/auth'; + /** * Note: sub-menu only appear when route children.length >= 1 * Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html @@ -143,6 +151,8 @@ export const userLesson = '012'; // 教学系统 export const userSimulation = '013'; // 仿真系统 export const userScreen = '014'; // 大屏系统 export const userPlan = '015'; // 计划系统 +export const userDesign='016'; // 设计系统 +const isDev = process.env.NODE_ENV === 'development'; export const UrlConfig = { display: '/display', @@ -152,8 +162,8 @@ export const UrlConfig = { map: { prefix: '/map', draft: '/map/draw', - skinCode: '/map/skinCode', - skinCodeDraft: '/map/skinCode/draft', + skinCode: '/system/skinCode', + skinCodeDraft: '/system/skinCode/draft', runPlan: '/map/runPlan', runPlanView: '/map/runPlan/view', product: '/map/product', @@ -161,27 +171,9 @@ export const UrlConfig = { }, lesson: { prefix: '/lesson', - record: '/lesson/record/training', + record: '/system/record/training', manage: '/lesson/manage/training' }, - teach: { - prefix: '/teach', - detail: '/teach/detail', - practical: '/teach/practical', - pay: '/teach/pay' - }, - exam: { - prefix: '/exam', - detail: '/exam/detail', - course: '/exam/course', - examRuleManage: '/exam/examRule/manage', - pay: '/exam/pay' - }, - demonstration: { - prefix: '/demonstration', - detail: '/demonstration/detail', - pay: '/demonstration/pay' - }, dp: { prefix: '/dp', detail: '/dp/detail', @@ -191,18 +183,39 @@ export const UrlConfig = { plan: { prefix: '/plan', tool: '/plan/tool', + usertool: '/plan/usertool', detail: '/plan/detail', pay: '/plan/pay' }, + design: { + prefix: '/design/home', + // tool: '/design/tool', + // detail: '/plan/detail', + // pay: '/plan/pay' + mapDraw: '/design/map/draw', + lessonEdit: '/design/lesson/edit', + lessonHome: '/design/lesson/home', + lessonManage: '/design/lesson/manage', + taskManage: '/design/lesson/taskManage', + trainingRule: '/design/lesson/trainingRule', + trainingRuleDetail: '/design/lesson/trainingRule/detail', + trainingManage: '/design/lesson/trainingManage', + lessonTraining: '/design/lesson/training', + trainingRecord: '/design/lesson/training', + runPlan: '/design/runPlan/detail', + scriptHome: '/design/script/home', + display: '/design/display' + }, + designUser: { + prefix: '/design/userlist/home', + scriptHome: '/design/userlist/script/home', + mapDraw: '/design/userlist/map/draw', + lessonHome: '/design/userlist/lesson/home', + runPlan: '/design/userlist/runPlan/detail' + }, replay: { prefix: '/replay' }, - permission: { - prefix: '/permission', - permissionList: '/permission/manage', - permissionDraft: '/permission/draft', - permission: '/permission/restore' - }, publish: { prefix: '/publish', map: '/publish/map', @@ -234,6 +247,24 @@ export const UrlConfig = { prefix: 'ibp', draft: '/ibp/draft', edit: 'ibp/edit' + }, + trainingPlatform: { + trainingPlatform: '/trainingPlatform', + trainingPlatformHome: '/trainingPlatform/home', + prodDetail: '/trainingPlatform/detail', + teachDetail: '/trainingPlatform/teach', + teachHome: '/trainingPlatform/teachHome', + examDetail: '/trainingPlatform/exam', + examHome: '/trainingPlatform/examHome', + examRuleManage: '/trainingPlatform/examRule/manage', + examRuleDraft: '/trainingPlatform/examRule/Draft', + course: '/trainingPlatform/course', + practical: '/trainingPlatform/practical', + permission: '/trainingPlatform/permission', + permissionDetails: '/trainingPlatform/permission/detail', + draft: '/trainingPlatform/draft', + pay: '/trainingPlatform/pay', + runPlan: '/trainingPlatform/runPlan/manage' } }; @@ -243,13 +274,19 @@ export const UrlConfig = { * all roles can be accessed */ export const constantRoutes = [ - // 默认登陆窗口 + // 实训平台登录 { path: '/login', component: Login, hidden: true }, - // 英文登陆窗口 + // 项目系统登录 + { + path: '/login/:project', + component: Login, + hidden: true + }, + // 实训平台英文登录 { path: '/en/login', component: LoginEn, @@ -261,15 +298,20 @@ export const constantRoutes = [ component: LoginScreen, hidden: true }, - // 琏计划登陆 + // 设计平台登录 { - path: '/plan/login', - component: LoginPlan, + path: '/design/login', + component: LoginDesign, hidden: true }, - + // 设计平台英文登录 { - path: '/jlmap3d/edit', + path: '/design/en/login', + component: LoginDesignEn, + hidden: true + }, + { + path: '/design/jlmap3d/edit', component: Jlmap3dedit, hidden: true }, @@ -284,34 +326,164 @@ export const constantRoutes = [ component: Errpr404, hidden: true }, - - { - path: '/', - component: Layout, - redirect: '/dashboard', - children: [{ - path: 'dashboard', - component: Dashboard, - meta: { - i18n: 'router.homePage', - icon: 'dashboard' - } - }] - }, - { path: '*', redirect: '/404', hidden: true } ]; export const asyncRouter = [ { - path: '/', + path: '/design', component: Layout, - redirect: '/dashboard', - hidden: true, + redirect: '/design/home', + meta: { + roles: [admin, user, userDesign] + }, children: [ { - path: 'dashboard', - component: Dashboard1 + path: '', + redirect: '/design/home', + component: DesignPlatform, + meta: { + i18n: 'router.designhomePage', + icon: 'design' + }, + children: [ + { + path: 'home', + component: DesignPlatformHome, + meta: { + } + }, + { + path: 'map/draw/:mapId/:view', + component: Mapedit, + hidden: true + }, + // { + // path: 'lesson/edit/:type', + // component: LessonEdit, + // hidden: true + // }, + { + path: 'runPlan/detail/:mapId', + component: PlanMonitorDetail, + hidden: true + }, + { + path: 'script/home/:mapId', + component: ScriptmanageHome, + meta: { + i18n: 'router.scriptManage' + }, + hidden: true + }, + { + path: 'lesson/home/:mapId/:skinCode', + component: LessonHome, + hidden: true + }, + { + path: 'lesson/details', + component: LessonDetail, + hidden: true, + children: [ + { + path: 'edit/:type', + component: LessonEdit, + hidden: true + } + ] + }, + { + path: 'lesson/training/:trainingId/:trainingName', + component: TrainingrecordManage, + hidden: true + }, + { + path: 'lesson/taskManage', + component: Taskmanage, + hidden: true + }, + { + path: 'lesson/trainingRule', + component: TrainingRuleList, + hidden: true + }, + { + path: 'lesson/trainingRule/detail', + hidden: true, + component: TrainingRuleEdit + }, + { + path: 'lesson/trainingManage/:skinCode', + component: Trainingmanage, + hidden: true + }, + { + path: 'lesson/training/:trainingId/:trainingName', + component: TrainingrecordManage, + hidden: true + } + ] + } + ] + }, + { + path: '/design/userlist', + redirect: '/design/userlist/home', + component: Layout, + meta: { + roles: [admin, user, userDesign] + }, + children: [ + { + path: '', + redirect: '/design/userlist/home', + component: DesignPlatformUser, + meta: { + i18n: 'router.designUserPage', + icon: 'design' + }, + children: [ + { + path: 'home', + component: DesignPlatformHome, + meta: { + } + }, + { + path: 'map/draw/:mapId/:view', + component: Mapedit, + hidden: true + }, + { + path: 'lesson/edit/:type', + component: LessonEdit, + hidden: true + }, + { + path: 'runPlan/detail/:mapId', + component: PlanMonitorDetail, + hidden: true + }, + { + path: 'script/home/:mapId', + component: ScriptmanageHome, + meta: { + i18n: 'router.scriptManage' + }, + hidden: true + }, + { + path: 'lesson/home/:mapId', + component: LessonHome, + hidden: true + }, + { + path: 'lesson/training/:trainingId/:trainingName', + component: TrainingrecordManage, + hidden: true + } + ] } ] }, @@ -322,6 +494,13 @@ export const asyncRouter = [ }, hidden: true }, + { + path: '/design/display/:mode', + component: DesignDisplay, + meta: { + }, + hidden: true + }, { path: '/scriptDisplay/:mode', component: ScriptDisplay, @@ -352,22 +531,11 @@ export const asyncRouter = [ path: '/map', meta: { i18n: 'router.mapManage', - roles: [admin, mapCreater] + roles: [admin, mapCreater, userDesign] }, + hidden: true, component: Layout, children: [ - { - path: 'skinCode', - component: SkinCode, - meta: { - i18n: 'router.skinManage' - } - }, - { - path: 'skinCode/draft/:mode/:skinCodeId', - hidden: true, - component: SkinCodeDraft - }, { path: 'draw', redirect: '/map/draw/0/draft', @@ -383,13 +551,6 @@ export const asyncRouter = [ } ] }, - { - path: 'ibp/edit', - component: IbpEdit, - meta: { - i18n: 'router.ibpDraw' - } - }, { path: 'runPlan', redirect: '/map/runPlan/view/draft', @@ -402,46 +563,18 @@ export const asyncRouter = [ component: RunplanView, hidden: true }] - }, - { - path: 'product', - component: MapProduct, - meta: { - i18n: 'router.productEdit' - } } ] }, { path: '/lesson', component: Layout, + hidden: true, meta: { i18n: 'router.lessaonManage', - roles: [admin, lessonCreater] + roles: [admin, lessonCreater, userDesign] }, children: [ - { - path: 'record', - redirect: '/lesson/record/training/0/null', - component: Trainingrecord, - meta: { - i18n: 'router.trainingRecord' - }, - children: [ - { - path: 'training/:trainingId/:trainingName', - component: TrainingrecordManage, - hidden: true - } - ] - }, - { - path: 'manage/taskManage', - component: Taskmanage, - meta: { - i18n: 'router.taskManage' - } - }, { path: 'manage/trainingRule', component: TrainingRuleList, @@ -462,186 +595,106 @@ export const asyncRouter = [ meta: { i18n: 'router.trainingManage' } - }, - { - path: 'edit', - component: Lessoncategory, - meta: { - i18n: 'router.lessonEdit' - } } ] }, { - path: '/script', - component: Layout, - meta: { - roles: [admin, lessonCreater, user] - }, - children: [ - { - path: '', - redirect: '/script/home', - component: Scriptmanage, - meta: { - i18n: 'router.scriptManage' - }, - children: [ - { - path: 'home', - component: ScriptmanageHome, - meta: { - i18n: 'router.scriptManage' - } - }, - { - path: 'detail/:scriptId', - component: ScriptDetail, - hidden: true - } - ] - } - ] - }, - { - path: '/teach', - component: Layout, - meta: { - roles: [admin, userLesson, user] - }, - children: [ - { - path: '', - redirect: '/teach/home', - component: Teach, - meta: { - i18n: 'router.teachSystem' - }, - children: [ - { - path: 'home', - component: TeachHome - }, - { - // 课程详情 - path: 'detail/:lessonId', - component: TeachDetail, - meta: { - }, - hidden: true - }, - { - // 实训详情 - path: 'practical/:trainingId/:lessonId', - component: TeachPractical, - meta: { - }, - hidden: true - }, - { - path: 'pay/:lessonId', - component: Pay, - meta: { - }, - hidden: true - } - ] - } - ] - }, - { - path: '/exam', - component: Layout, - meta: { - roles: [admin, userExam, user] - }, - children: [ - { - path: '', - redirect: '/exam/home', - component: Exam, - meta: { - i18n: 'router.examSystem' - }, - children: [ - { - path: 'home', - component: ExamHome - }, - { - // 试卷详情 - path: 'detail/:examId', - component: ExamDetail, - hidden: true - }, - { - path: 'course/:lessonId', - component: ExamCourseDetail, - hidden: true - }, - { - // 规则管理 - path: 'examRule/manage', - component: PublishExamRule, - hidden: true - }, - { - path: 'examRule/draft/:mode/:ruleId/:lessonId', - hidden: true, - component: PublishExamRuleDraft - }, - { - path: 'pay/:lessonId', - component: Pay, - hidden: true - }, - { - // 开始考试 - path: 'questionDetail/:examQuestionId', - component: ExamQuestionDetail, - hidden: true - }, - { - // 考试结果 - path: 'result/:userExamId', - component: ExamResult, - hidden: true - } - ] - } - ] - }, - { - path: '/demonstration', + path: '/trainingPlatform', component: Layout, + hidden: true, meta: { roles: [admin, userSimulation, user] }, children: [ { path: '', - redirect: '/demonstration/home', - component: Demonstration, + redirect: '/trainingPlatform/home', + component: TrainingPlatform, meta: { - i18n: 'router.demonstrationSystem' }, children: [ { path: 'home', - component: DemonstrationHome, + redirect: '/trainingPlatform/permission/14', + component: TrainingPlatformHome, meta: { - i18n: 'router.demonstrationSystem' - } + }, + hidden: true }, { - path: 'detail/:mapId', + path: 'detail/:subSystem', component: DemonstrationDetail, hidden: true }, + { + path: 'teachHome/:subSystem', + component: TeachHome, + hidden: true + }, + { + path: 'teach/:subSystem', + component: TeachDetail, + hidden: true + }, + { + path: 'examHome/:subSystem', + component: ExamHome, + hidden: true + }, + { + path: 'exam/:examId', + component: ExamDetail, + hidden: true + }, + { + path: 'practical/:trainingId/:lessonId', + component: TeachPractical, + hidden: true + }, { path: 'pay/:lessonId', component: Pay, hidden: true + }, + { + path: 'course/:subSystem', + component: ExamCourseDetail, + hidden: true + }, + { + path: 'result/:userExamId', + component: ExamResult, + hidden: true + }, + { + path: 'permission/:mapId', + component: Package, + hidden: true + }, + { + path: 'permission/detail/:id', + component: PackageDetail, + hidden: true + }, + { + path: 'draft', + component: PackageDraft, + hidden: true + }, + { + path: 'examRule/manage', + component: PublishExamRule, + hidden: true + }, + { + path: 'examRule/draft/:mode/:ruleId/:lessonId', + component: PublishExamRuleDraft, + hidden: true + }, + { + path: 'runPlan/manage/:mapId', + component: PlanMonitorDetail, + hidden: true } ] } @@ -649,6 +702,7 @@ export const asyncRouter = [ }, { path: '/dp', + hidden: true, redirect: '/dp/home', component: ScreenMonitor, meta: { @@ -675,6 +729,13 @@ export const asyncRouter = [ } ] }, + { + path: '/plan/usertool', + component: PlanMonitorEditUserTool, + meta: { + }, + hidden: true + }, { path: '/plan/tool', component: PlanMonitorEditTool, @@ -686,8 +747,9 @@ export const asyncRouter = [ path: '/plan', redirect: '/plan/home', component: PlanMonitor, + hidden: true, meta: { - roles: [admin, user] + roles: [admin, user, userDesign] }, children: [ { @@ -713,8 +775,9 @@ export const asyncRouter = [ { path: '/replay', component: Layout, + hidden: true, meta: { - roles: [admin] + roles: [admin, userDesign] }, children: [ { @@ -726,38 +789,12 @@ export const asyncRouter = [ } ] }, - { - path: '/permission', - component: Layout, - meta: { - roles: [admin, user] - }, - children: [ - { - path: 'manage', - component: Package, - meta: { - i18n: 'router.selfPermission' - } - }, - { - path: 'manage/detail/:id', - component: PackageDetail, - hidden: true - }, - { - path: 'draft', - component: PackageDraft, - hidden: true - } - ] - }, { path: '/publish', component: Layout, meta: { i18n: 'router.pulishManage', - roles: [admin] + roles: [admin, userDesign] }, children: [ { @@ -848,7 +885,7 @@ export const asyncRouter = [ component: Layout, meta: { i18n: 'router.orderAuthorityManage', - roles: [admin] + roles: [admin, userDesign] }, children: [ { @@ -940,9 +977,28 @@ export const asyncRouter = [ component: Layout, meta: { i18n: 'router.systemManage', - roles: [admin] + roles: [admin, userDesign] }, children: [ + { + path: 'skinCode', + component: SkinCode, + meta: { + i18n: 'router.skinManage' + } + }, + { + path: 'skinCode/draft/:mode/:skinCodeId', + hidden: true, + component: SkinCodeDraft + }, + { + path: 'ibp/edit', + component: IbpEdit, + meta: { + i18n: 'router.ibpDraw' + } + }, { path: 'dictionary', component: Dictionary, @@ -999,6 +1055,67 @@ export const asyncRouter = [ meta: { i18n: 'router.existingSimulation' } + }, + { + path: 'systemGenerate', + component: SystemGenerate, + meta: { + i18n: 'router.subsystemGeneration' + } + }, + { + path: 'product', + component: MapProduct, + meta: { + i18n: 'router.productEdit' + } + }, + { + path: 'record', + redirect: 'record/training/0/null', + component: Trainingrecord, + meta: { + i18n: 'router.trainingRecord' + }, + hidden: !isDev, + children: [ + { + path: 'training/:trainingId/:trainingName', + component: TrainingrecordManage, + hidden: true + } + ] + } + ] + }, + { + path: '/apply', + component: Layout, + meta: { + i18n: 'router.releaseApplication', + roles: [admin, userDesign] + }, + children: [ + { + path: 'lesson', + component: LessonApproval, + meta: { + i18n: 'router.courseApplication' + } + }, + { + path: 'script', + component: ScriptApproval, + meta: { + i18n: 'router.scriptReleaseApplication' + } + }, + { + path: 'runGraph', + component: RunPlanApproval, + meta: { + i18n: 'router.runGraphReleaseApplication' + } } ] } @@ -1016,8 +1133,11 @@ router.beforeEach((to, from, next) => { const name = to.fullPath; if (name.includes('/dp/') || name.includes('display/dp')) { document.title = '琏课堂-大屏系统'; - } else if (name.includes('/plan/') || name.includes('/planEdit/')) { - document.title = '琏计划'; + } else if (name.includes('/trainingPlatform/')) { + const project = getSessionStorage('project'); + document.title = loginTitle[project || 'default']; + } else if (name.includes('/design/') || name.includes('/scriptDisplay/') || name.includes('/plan/') || name.includes('/publish/') || name.includes('/orderauthor/') || name.includes('/system/') || name.includes('/display/plan/') || name.includes('/apply/') || name.includes('/display/manage/')) { + document.title = '城市轨道交通设计平台'; } else { document.title = '琏课堂'; } diff --git a/src/scripts/ConstConfig.js b/src/scripts/ConstConfig.js index e2065364a..5f3523f75 100644 --- a/src/scripts/ConstConfig.js +++ b/src/scripts/ConstConfig.js @@ -97,7 +97,21 @@ export default { { label: '北京一号线', value: '03'}, { label: '成都三号线', value: '04'}, { label: '北京八通线', value: '05'} + ], + releaseReview: [ + { enlabel: 'Unpublished', label: '未发布', value: '0'}, + { enlabel: 'Pending review', label: '待审核', value: '1'}, + { enlabel: 'Successfully released', label: '发布成功', value: '2'}, + { enlabel: 'Overrule', label: '被驳回', value: '3'} + ], + productType: [ + { enlabel: 'Lesson System', label: '教学系统', value: 'Lesson'}, + { enlabel: 'Exam System', label: '考试系统', value: 'Exam'}, + { enlabel: 'Simulation System', label: '仿真系统', value: 'Simulation'}, + { enlabel: 'Plan Draw', label: '运行图编制', value: 'Plan'} + ], + customeredProductType: [ + { enlabel: 'Plan Draw', label: '运行图编制', value: 'Plan'} ] - } }; diff --git a/src/scripts/ConstDic.js b/src/scripts/ConstDic.js index 74b15dcae..d8153b2e0 100644 --- a/src/scripts/ConstDic.js +++ b/src/scripts/ConstDic.js @@ -139,6 +139,10 @@ export const OperationEvent = { menu: { operation: '000', domId: '_Tips-Cancel-Menu' + }, + clearMbm: { + operation: '00012', + domId: '_Tips-mbm_clear{TOP}' } }, // 关闭对话框 @@ -867,7 +871,7 @@ export const OperationEvent = { domId: '_Tips-Signal-Reopen-Confirm' } }, - // 人解列车进路 + // 人解列车进路 (总人解) humanTrainRoute: { event: '5', button: { @@ -950,12 +954,12 @@ export const OperationEvent = { operation: '3084', domId: '_Tips-Signal-Guide-Confirm2' }, - stop: { + stop: { // 福州线 关闭弹窗操作 operation: '3085', domId: '_Tips-Signal-Guide-Stop' }, choose: { - operation: '3085', + operation: '3086', domId: '_Tips-Signal-Guide-Choose' } }, @@ -1868,7 +1872,7 @@ export const OperationEvent = { }, // 修改列车识别号 editTrainId: { - event: '2', + event: { query: '9', confirm: '2' }, menu: { operation: '702', domId: '_Tips-Train-EditTrainId-Menu' @@ -2192,3 +2196,8 @@ export const IbpOperation = { Down_Hold_Train: {operate: '03', status: 'on'}, Down_Cancel_Hold_Train: {operate: '04', status: 'off'} }; + +export const loginTitle = { + xty: '西铁院城市轨道交通实训平台', + default: '城市轨道交通实训平台' +}; diff --git a/src/scripts/DeviceTypeDic.js b/src/scripts/DeviceTypeDic.js deleted file mode 100644 index 68be8bc23..000000000 --- a/src/scripts/DeviceTypeDic.js +++ /dev/null @@ -1,26 +0,0 @@ -export default { - ConstSelect: { - // 剧本录制模块枚举 - deviceType: [ - {label: '进路', value: 'Route'}, - {label: '区段', value: 'Section'}, - {label: '信号机', value: 'Signal'}, - {label: '站台', value: 'StationStand'}, - {label: '集中站', value: 'Station'}, - {label: '控制模式', value: 'StationControl'}, - {label: '道岔', value: 'Switch'}, - {label: '列车', value: 'Train'} - ], - // 行为触发条件类型 - triggerType: [ - {label: '对话', value: 'Conversation'}, - {label: '设备', value: 'DeviceCondition'}, - {label: '无', value: 'None'} - ], - // 动作类型 - actionType: [ - {label: '对话', value: 'Conversation'}, - {label: '指令', value: 'Command'} - ] - } -}; diff --git a/src/scripts/GlobalPlugin.js b/src/scripts/GlobalPlugin.js index ac3383427..8c78dc5fb 100644 --- a/src/scripts/GlobalPlugin.js +++ b/src/scripts/GlobalPlugin.js @@ -87,7 +87,7 @@ Vue.prototype.$convertSpecifiedField = function(dataDict, enumList, key, value, }); }); } -}, +}; Vue.prototype.$convertList = function(FromList, ToList, checktypeFunction) { if (FromList) { diff --git a/src/scripts/OperationConfig.js b/src/scripts/OperationConfig.js index 912992bb6..afea2e812 100644 --- a/src/scripts/OperationConfig.js +++ b/src/scripts/OperationConfig.js @@ -6,8 +6,10 @@ // {id: "5", trainingType: "02", name: "信号机名称"} // {id: "6", trainingType: "02", name: "信号机编号"} // {id: "7", trainingType: "03", name: "道岔名称"} +// {id: "17", trainingType: "03", name: "道岔编码"} // {id: "8", trainingType: "04", name: "物理区段名称"} // {id: "9", trainingType: "04", name: "逻辑区段名称"} +// {id: "18", trainingType: "04", name: "逻辑区段编码"} // {id: "10", trainingType: "05", name: "车站名称"} // {id: "11", trainingType: "05", name: "站台行驶方向编号"} // {id: "12", trainingType: "05", name: "站台行驶方向"} @@ -1289,13 +1291,28 @@ export const OperationList = { trainingName: '办理进路({3} 进路)', trainingRemark: '办理进路功能', trainingType: '02', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '04', orderNum: 1, operateCode: '301', tip: '鼠标右键菜单选择【办理进路】' }, { deviceType: '04', orderNum: 2, operateCode: '3011', tip: '鼠标左键选择进路名称【{3}】', val: '{4}' }, { deviceType: '04', orderNum: 3, operateCode: '301', tip: '鼠标左键点击【确定】按钮' } ] }, + { + maxDuration: 15, + minDuration: 8, + operateType: '0201', + skinCode: '04', + trainingName: '办理进路({3} 进路)', + trainingRemark: '办理进路功能', + trainingType: '02', + productTypes: ['01'], + stepVOList: [ + { deviceType: 'mbm', orderNum: 1, operateCode: '3010', tip: '鼠标左键点击【排列进路】' }, + { deviceType: '04', orderNum: 2, operateCode: '3010', tip: '鼠标左键点击【{5}】', val: '{6}' }, + { deviceType: '04', orderNum: 3, operateCode: '3010', tip: '鼠标左键点击【{5}】', val: '{6}' } + ] + }, { maxDuration: 15, minDuration: 8, @@ -1304,14 +1321,29 @@ export const OperationList = { trainingName: '办理引导进路({3})', trainingRemark: '进路办理信号引导', trainingType: '02', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '04', orderNum: 1, operateCode: '308', tip: '鼠标右键菜单选择【办理引导进路】' }, - { deviceType: '04', orderNum: 2, operateCode: '3085', tip: '鼠标左键选择进路名称【{3}】' }, - { deviceType: '04', orderNum: 3, operateCode: '308', tip: '鼠标左键点击【确认】按钮' }, - { deviceType: '04', orderNum: 4, operateCode: '0012', tip: '鼠标左键点击【确认】按钮' } + { deviceType: '04', orderNum: 2, operateCode: '3086', tip: '鼠标左键选择进路名称【{3}】', val: '{4}' }, // 进路编号值不正确 + { deviceType: '04', orderNum: 3, operateCode: '308', tip: '鼠标左键点击【确认】按钮' } ] }, + // { + // maxDuration: 15, + // minDuration: 8, + // operateType: '0207', + // skinCode: '04', + // trainingName: '引导进路({3})', + // trainingRemark: '进路办理信号引导', + // trainingType: '02', + // productTypes: ['01'], + // stepVOList: [ + // { deviceType: 'mbm', orderNum: 1, operateCode: '3080', tip: '鼠标左键点击【引导进路】' }, + // { deviceType: '04', orderNum: 2, operateCode: '3080', tip: '鼠标左键点击【{5}】', val: '{6}' }, // 进路编号值不正确 + // { deviceType: 'mbm', orderNum: 3, operateCode: '0011', tip: '输入密码123456,点击【确定】按钮' }, + // { deviceType: '04', orderNum: 4, operateCode: '3080', tip: '鼠标左键点击【{5}】', val: '{6}' } + // ] + // }, { maxDuration: 15, minDuration: 8, @@ -1320,7 +1352,7 @@ export const OperationList = { trainingName: '取消进路({3} 进路)', trainingRemark: '取消进路功能', trainingType: '02', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '04', orderNum: 1, operateCode: '303', tip: '鼠标右键菜单选择【取消进路】' }, { deviceType: '04', orderNum: 2, operateCode: '303', tip: '鼠标左键点击【确定】按钮' } @@ -1329,18 +1361,47 @@ export const OperationList = { { maxDuration: 15, minDuration: 8, - operateType: '0207', + operateType: '0202', + skinCode: '04', + trainingName: '总取消({3} 进路)', + trainingRemark: '总取消功能', + trainingType: '02', + productTypes: ['01'], + stepVOList: [ + { deviceType: 'mbm', orderNum: 1, operateCode: '3030', tip: '鼠标左键点击【总取消】' }, + { deviceType: '04', orderNum: 2, operateCode: '3030', tip: '鼠标左键点击【{5}】按钮', val: '{6}' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: '0215', // 新增数据字典code skinCode: '04', trainingName: '总人解({3})', trainingRemark: '总人解', trainingType: '02', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '04', orderNum: 1, operateCode: '305', tip: '鼠标右键菜单选择【总人解】' }, { deviceType: '04', orderNum: 2, operateCode: '305', tip: '鼠标左键点击【确定】按钮' }, { deviceType: '04', orderNum: 3, operateCode: '3051', tip: '输入密码123456,点击【确定】按钮' } ] }, + { + maxDuration: 15, + minDuration: 8, + operateType: '0215', // 新增数据字典code + skinCode: '04', + trainingName: '总人解({3})', + trainingRemark: '总人解', + trainingType: '02', + productTypes: ['01'], + stepVOList: [ + { deviceType: 'mbm', orderNum: 1, operateCode: '3050', tip: '鼠标左键点击【总人解】' }, + { deviceType: 'mbm', orderNum: 2, operateCode: '0011', tip: '输入密码123456,点击【确定】按钮' }, + { deviceType: '04', orderNum: 3, operateCode: '3050', tip: '鼠标左键点击【{5}】', val: '{6}' } + ] + }, { maxDuration: 8, minDuration: 5, @@ -1349,7 +1410,7 @@ export const OperationList = { trainingName: '信号重开({3} 进路)', trainingRemark: '信号重开功能', trainingType: '02', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '04', orderNum: 1, operateCode: '304', tip: '鼠标右键菜单选择【信号重开】' }, { deviceType: '04', orderNum: 2, operateCode: '304', tip: '鼠标左键点击【确定】按钮' } @@ -1363,13 +1424,27 @@ export const OperationList = { trainingName: '信号封锁({5})', trainingRemark: '信号封闭', trainingType: '02', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '04', orderNum: 1, operateCode: '306', tip: '鼠标右键菜单选择【信号封闭】' }, { deviceType: '04', orderNum: 2, operateCode: '306', tip: '鼠标左键点击【确定】按钮' }, { deviceType: '04', orderNum: 3, operateCode: '3061', tip: '输入密码123456,点击【确定】按钮' } ] }, + { + maxDuration: 15, + minDuration: 8, + operateType: '0203', + skinCode: '04', + trainingName: '信号封锁({5})', + trainingRemark: '信号封锁功能', + trainingType: '02', + productTypes: ['01'], + stepVOList: [ + { deviceType: 'mbm', orderNum: 1, operateCode: '2991', tip: '鼠标左键菜单选择【封锁】' }, + { deviceType: '04', orderNum: 1, operateCode: '2991', tip: '鼠标左键点击【{5}】', val: '{6}' } + ] + }, { maxDuration: 15, minDuration: 8, @@ -1378,13 +1453,28 @@ export const OperationList = { trainingName: '信号解封({5})', trainingRemark: '信号解封', trainingType: '02', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '04', orderNum: 1, operateCode: '307', tip: '鼠标右键菜单选择【信号解封】' }, { deviceType: '04', orderNum: 2, operateCode: '307', tip: '鼠标左键点击【确认】按钮' }, { deviceType: '04', orderNum: 3, operateCode: '3072', tip: '输入密码123456,点击【确认】按钮' } ] }, + { + maxDuration: 15, + minDuration: 8, + operateType: '0204', + skinCode: '04', + trainingName: '信号解封({5})', + trainingRemark: '信号解封功能', + trainingType: '02', + productTypes: ['01'], + stepVOList: [ + { deviceType: 'mbm', orderNum: 1, operateCode: '2992', tip: '鼠标左键菜单选择【解封】' }, + { deviceType: 'mbm', orderNum: 2, operateCode: '0011', tip: '输入密码123456,点击【确认】按钮' }, + { deviceType: '04', orderNum: 3, operateCode: '2992', tip: '鼠标左键点击【{5}】', val: '{6}' } + ] + }, { maxDuration: 15, minDuration: 8, @@ -1393,11 +1483,25 @@ export const OperationList = { trainingName: '进路收人工控({5})', trainingRemark: '进路收人工控', trainingType: '02', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '315', tip: '鼠标右键菜单选择【自排开】' }, - { deviceType: '04', orderNum: 2, operateCode: '3151', tip: '鼠标左键选择控制状态为"人工"的进路', val: '{6}' }, - { deviceType: '04', orderNum: 3, operateCode: '315', tip: '鼠标左键点击【确定】按钮' } + { deviceType: '04', orderNum: 1, operateCode: '314', tip: '鼠标右键菜单选择【进路收人工控】' }, + { deviceType: '04', orderNum: 2, operateCode: '3141', tip: '鼠标左键选择进路名称【{3}】', val: '{4}' }, + { deviceType: '04', orderNum: 3, operateCode: '314', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: '0208', + skinCode: '04', + trainingName: '人工控({5})', + trainingRemark: '人工控', + trainingType: '02', + productTypes: ['01'], + stepVOList: [ + { deviceType: 'mbm', orderNum: 1, operateCode: '3140', tip: '鼠标左键点击【人工控】' }, + { deviceType: '04', orderNum: 2, operateCode: '3140', tip: '鼠标左键点击【{3}】', val: '{4}' } ] }, { @@ -1408,11 +1512,25 @@ export const OperationList = { trainingName: '进路交自动控({5})', trainingRemark: '进路交自动控', trainingType: '02', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '314', tip: '鼠标右键菜单选择【自排关】' }, - { deviceType: '04', orderNum: 2, operateCode: '3141', tip: '鼠标左键选择第一条进路', val: '{6}' }, - { deviceType: '04', orderNum: 3, operateCode: '314', tip: '鼠标左键点击【确定】按钮' } + { deviceType: '04', orderNum: 1, operateCode: '315', tip: '鼠标右键菜单选择【进路交自动控】' }, + { deviceType: '04', orderNum: 2, operateCode: '3151', tip: '鼠标左键选择进路名称【{3}】', val: '{4}' }, + { deviceType: '04', orderNum: 3, operateCode: '315', tip: '鼠标左键点击【确定】按钮' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: '0209', + skinCode: '04', + trainingName: '自动控({5})', + trainingRemark: '自动控', + trainingType: '02', + productTypes: ['01'], + stepVOList: [ + { deviceType: 'mbm', orderNum: 1, operateCode: '3150', tip: '鼠标左键点击【自动控】' }, + { deviceType: '04', orderNum: 2, operateCode: '3150', tip: '鼠标左键点击【{3}】', val: '{4}' } ] }, { @@ -1433,12 +1551,12 @@ export const OperationList = { { maxDuration: 15, minDuration: 8, - operateType: '0305', + operateType: '0312', // 0312 新增定位字典 skinCode: '04', trainingName: '单操到定位({7})', trainingRemark: '单操到定位({15})', trainingType: '03', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '02', orderNum: 1, operateCode: '101', tip: '鼠标右键菜单选择【单操到定位】' }, { deviceType: '02', orderNum: 2, operateCode: '101', tip: '鼠标左键点击【确定】按钮' } @@ -1447,17 +1565,45 @@ export const OperationList = { { maxDuration: 15, minDuration: 8, - operateType: '0305', + operateType: '0313', + skinCode: '04', + trainingName: '单操到定位({7})', + trainingRemark: '单操到定位({7})', + trainingType: '03', + productTypes: ['01'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '1010', tip: '鼠标左键菜单选择【道岔定操】' }, + { deviceType: '02', orderNum: 2, operateCode: '1010', tip: '鼠标左键点击【{7}】按钮', val: '{17}' } + ] + }, + { + maxDuration: 15, + minDuration: 8, + operateType: '0313', // 0313 新增定位字典 skinCode: '04', trainingName: '单操到反位({7})', trainingRemark: '单操到反位({7})', trainingType: '03', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '02', orderNum: 1, operateCode: '102', tip: '鼠标右键菜单选择【单操到反位】' }, { deviceType: '02', orderNum: 2, operateCode: '102', tip: '鼠标左键点击【确定】按钮' } ] }, + { + maxDuration: 15, + minDuration: 8, + operateType: '0313', + skinCode: '04', + trainingName: '单操到反位({7})', + trainingRemark: '单操到反位({7})', + trainingType: '03', + productTypes: ['01'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '1020', tip: '鼠标左键菜单选择【道岔反操】' }, + { deviceType: '02', orderNum: 2, operateCode: '1020', tip: '鼠标左键点击【{7}】按钮', val: '{17}' } + ] + }, { maxDuration: 15, minDuration: 8, @@ -1466,12 +1612,26 @@ export const OperationList = { trainingName: '道岔单锁({7})', trainingRemark: '道岔单锁功能', trainingType: '03', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '02', orderNum: 1, operateCode: '103', tip: '鼠标右键菜单选择【道岔单锁】' }, { deviceType: '02', orderNum: 2, operateCode: '103', tip: '鼠标左键点击【确定】按钮' } ] }, + { + maxDuration: 15, + minDuration: 8, + operateType: '0301', + skinCode: '04', + trainingName: '道岔单锁({7})', + trainingRemark: '道岔单锁功能', + trainingType: '03', + productTypes: ['01'], // 现地操作 + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '1030', tip: '鼠标左键菜单选择【道岔单锁】' }, + { deviceType: '02', orderNum: 2, operateCode: '1030', tip: '鼠标左键点击【{{7}}】', val: '{17}' } + ] + }, { maxDuration: 15, minDuration: 8, @@ -1480,12 +1640,27 @@ export const OperationList = { trainingName: '道岔解锁({7})', trainingRemark: '道岔解锁功能', trainingType: '03', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '02', orderNum: 1, operateCode: '104', tip: '鼠标右键菜单选择【道岔解锁】' }, { deviceType: '02', orderNum: 5, operateCode: '104', tip: '鼠标左键点击【确定】按钮' } ] }, + { + maxDuration: 15, + minDuration: 8, + operateType: '0305', + skinCode: '04', + trainingName: '道岔解锁({7})', + trainingRemark: '道岔解锁功能', + trainingType: '03', + productTypes: ['01'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '1040', tip: '鼠标左键菜单选择【道岔解锁】' }, + { deviceType: '02', orderNum: 2, operateCode: '0011', tip: '输入密码123456,点击【确认】按钮' }, + { deviceType: '02', orderNum: 3, operateCode: '1040', tip: '鼠标左键点击【{7}】按钮', val: '{17}' } + ] + }, { maxDuration: 15, minDuration: 8, @@ -1494,13 +1669,27 @@ export const OperationList = { trainingName: '道岔封锁({7})', trainingRemark: '道岔封锁功能', trainingType: '03', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '02', orderNum: 1, operateCode: '105', tip: '鼠标右键菜单选择【道岔封锁】' }, { deviceType: '02', orderNum: 2, operateCode: '105', tip: '鼠标左键点击【确定】按钮' }, { deviceType: '02', orderNum: 3, operateCode: '1051', tip: '输入密码123456,点击【确定】按钮' } ] }, + { + maxDuration: 15, + minDuration: 8, + operateType: '0305', + skinCode: '04', + trainingName: '道岔封锁({7})', + trainingRemark: '道岔封锁功能', + trainingType: '03', + productTypes: ['01'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '2991', tip: '鼠标左键菜单选择【封锁】' }, + { deviceType: '02', orderNum: 2, operateCode: '2991', tip: '鼠标左键点击【{7}】按钮', val: '{17}' } + ] + }, { maxDuration: 15, minDuration: 8, @@ -1509,13 +1698,28 @@ export const OperationList = { trainingName: '道岔解封({7})', trainingRemark: '道岔解封功能', trainingType: '03', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '02', orderNum: 1, operateCode: '106', tip: '鼠标右键菜单选择【道岔解封】' }, { deviceType: '02', orderNum: 2, operateCode: '106', tip: '鼠标左键点击【确认】按钮' }, { deviceType: '02', orderNum: 3, operateCode: '1062', tip: '输入密码123456,点击【确认】按钮' } ] }, + { + maxDuration: 15, + minDuration: 8, + operateType: '0305', + skinCode: '04', + trainingName: '道岔解封({7})', + trainingRemark: '道岔解封功能', + trainingType: '03', + productTypes: ['01'], + stepVOList: [ + { deviceType: '02', orderNum: 1, operateCode: '2992', tip: '鼠标左键菜单选择【解封】' }, + { deviceType: '02', orderNum: 2, operateCode: '0011', tip: '输入密码123456,点击【确认】按钮' }, + { deviceType: '02', orderNum: 3, operateCode: '2992', tip: '鼠标左键点击【{7}】按钮', val: '{17}' } + ] + }, { maxDuration: 20, minDuration: 10, @@ -1540,7 +1744,7 @@ export const OperationList = { trainingName: '区故解({8}{9})', trainingRemark: '故障解锁功能', trainingType: '04', - productTypes: ['01,02'], + productTypes: ['02'], stepVOList: [ { deviceType: '03', orderNum: 1, operateCode: '402', tip: '鼠标右键菜单选择【区故解】' }, { deviceType: '03', orderNum: 2, operateCode: '402', tip: '鼠标左键点击【确认】按钮' }, @@ -1550,6 +1754,22 @@ export const OperationList = { { maxDuration: 15, minDuration: 8, + operateType: '0401', + skinCode: '04', + trainingName: '区故解({9})', + trainingRemark: '故障解锁功能', + trainingType: '04', + productTypes: ['01'], + stepVOList: [ + { deviceType: 'mbm', orderNum: 1, operateCode: '4020', tip: '鼠标右键菜单选择【区故解】' }, + { deviceType: 'mbm', orderNum: 2, operateCode: '0011', tip: '输入密码123456,点击【确认】按钮' }, + { deviceType: '03', orderNum: 3, operateCode: '4020', tip: '鼠标左键点击【{9}】', val: '{18}' }, + { deviceType: 'mbm', orderNum: 4, operateCode: '00012', tip: '鼠标左键点击【清除】' } + ] + }, + { + maxDuration: 15, // 自动生成实训失败 + minDuration: 8, operateType: '0409', skinCode: '04', trainingName: '属性({8}{9})', @@ -1728,7 +1948,7 @@ export const OperationList = { ] }, { - maxDuration: 8, + maxDuration: 8, // 自动生成实训失败 minDuration: 5, operateType: '0507', skinCode: '04', @@ -1738,7 +1958,7 @@ export const OperationList = { productTypes: ['02'], stepVOList: [ { deviceType: '06', orderNum: 1, operateCode: '507', tip: '鼠标右键菜单选择【属性】' }, - { deviceType: '06', orderNum: 2, operateCode: '0012', tip: '鼠标左键点击【确定】按钮' } + { deviceType: '06', orderNum: 2, operateCode: '0012', tip: '鼠标左键点击【退出】按钮' } ] } ] @@ -1750,18 +1970,18 @@ export const OperationList = { minDuration: 15, operateType: '0103', skinCode: '05', - trainingName: 'To control({1})', - trainingRemark: 'Control permission conversion, station control to central control', + trainingName: 'Switch to station control({1})', + trainingRemark: 'Control permission conversion, switch central control to station control ', trainingType: '01', productTypes: ['02'], stepVOList: [ - { deviceType: 'bar', orderNum: 1, operateCode: '0024', tip: 'Click the top menu bar with the left mouse button' }, - { deviceType: 'bar', orderNum: 2, operateCode: '2041', tip: 'Click [turn to central control] with the left mouse button' }, - { deviceType: '05', orderNum: 3, operateCode: '2042', tip: 'The left mouse button selects the control area to be converted【{1}】', val: '{2}' }, - { deviceType: '05', orderNum: 4, operateCode: '204', tip: 'Click [request central control] with the left mouse button', val: '{2}' }, - { deviceType: '05', orderNum: 5, operateCode: '2043', tip: 'Click the [ok] button with the left mouse button', val: '{2}' }, - { deviceType: '05', orderNum: 6, operateCode: '0013', tip: 'Click the [ok] button with the left mouse button' }, - { deviceType: 'bar', orderNum: 7, operateCode: '000', tip: 'Click the [close] button with the left mouse button' } + { deviceType: 'bar', orderNum: 1, operateCode: '0024', tip: 'Left click the menu bar [control mode conversion]on the top' }, + { deviceType: 'bar', orderNum: 2, operateCode: '2041', tip: 'Left click [switch to central control] ' }, + { deviceType: '05', orderNum: 3, operateCode: '2042', tip: 'Left click to select the control area to be converted【{1}】', val: '{2}' }, + { deviceType: '05', orderNum: 4, operateCode: '204', tip: 'Left click [request to central control] ', val: '{2}' }, + { deviceType: '05', orderNum: 5, operateCode: '2043', tip: 'Left click [ok]', val: '{2}' }, + { deviceType: '05', orderNum: 6, operateCode: '0013', tip: 'Left click [ok]' }, + { deviceType: 'bar', orderNum: 7, operateCode: '000', tip: 'Left click [close] ' } ] }, { @@ -1769,18 +1989,18 @@ export const OperationList = { minDuration: 8, operateType: '0101', skinCode: '05', - trainingName: 'To stand accused of({1})', - trainingRemark: 'Control permission conversion, central control transfer station control', + trainingName: 'Switch to station control{1})', + trainingRemark: 'Control permission conversion, Force to station control', trainingType: '01', productTypes: ['01'], stepVOList: [ - { deviceType: 'bar', orderNum: 1, operateCode: '0024', tip: 'Click the top menu bar with the left mouse button' }, - { deviceType: 'bar', orderNum: 2, operateCode: '2021', tip: 'Click the left mouse button [turn to station control]' }, - { deviceType: '05', orderNum: 3, operateCode: '2022', tip: 'The left mouse button selects the control area to be converted【{1}】', val: '{2}' }, - { deviceType: '05', orderNum: 4, operateCode: '202', tip: 'Click [request station control] with the left mouse button', val: '{2}' }, - { deviceType: '05', orderNum: 5, operateCode: '2023', tip: 'Click the [ok] button with the left mouse button', val: '{2}' }, - { deviceType: '05', orderNum: 6, operateCode: '0013', tip: 'Click the [ok] button with the left mouse button' }, - { deviceType: 'bar', orderNum: 7, operateCode: '000', tip: 'Click the [close] button with the left mouse button' } + { deviceType: 'bar', orderNum: 1, operateCode: '0024', tip: 'Left click the menu bar [control mode conversion]on the top' }, + { deviceType: 'bar', orderNum: 2, operateCode: '2021', tip: 'Left click [force to station control' }, + { deviceType: '05', orderNum: 3, operateCode: '2022', tip: 'Left click to select the control area to be converted【{1}】', val: '{2}' }, + { deviceType: '05', orderNum: 4, operateCode: '202', tip: 'Left click [request to station control', val: '{2}' }, + { deviceType: '05', orderNum: 5, operateCode: '2023', tip: 'Left click [ok] ', val: '{2}' }, + { deviceType: '05', orderNum: 6, operateCode: '0013', tip: 'Left click [ok] ' }, + { deviceType: 'bar', orderNum: 7, operateCode: '000', tip: 'Left click [close] ' } ] }, { @@ -1788,19 +2008,19 @@ export const OperationList = { minDuration: 8, operateType: '0102', skinCode: '05', - trainingName: 'Forced to stand accused of({1})', - trainingRemark: 'Control permission conversion, mandatory station control', + trainingName: 'Force to station control({1})', + trainingRemark: 'Control permission conversion,Force to station control', trainingType: '01', productTypes: ['01'], stepVOList: [ - { deviceType: 'bar', orderNum: 1, operateCode: '0024', tip: 'Click the top menu bar with the left mouse button' }, - { deviceType: 'bar', orderNum: 2, operateCode: '2034', tip: 'Click [mandatory station control] with the left mouse button' }, - { deviceType: 'bar', orderNum: 3, operateCode: '2035', tip: 'After entering the default password [123456] with the left mouse button, click the "ok" button' }, - { deviceType: '05', orderNum: 4, operateCode: '2032', tip: 'The left mouse button selects the control area to be converted【{1}】', val: '{2}' }, - { deviceType: '05', orderNum: 5, operateCode: '203', tip: 'Click [mandatory station control] with the left mouse button', val: '{2}' }, - { deviceType: '05', orderNum: 6, operateCode: '2033', tip: 'Click the [ok] button with the left mouse button', val: '{2}' }, - { deviceType: '05', orderNum: 7, operateCode: '0013', tip: 'Click the [ok] button with the left mouse button' }, - { deviceType: 'bar', orderNum: 8, operateCode: '000', tip: 'Click the [close] button with the left mouse button' } + { deviceType: 'bar', orderNum: 1, operateCode: '0024', tip: 'Left click the menu bar [control mode conversion]on the top' }, + { deviceType: 'bar', orderNum: 2, operateCode: '2034', tip: 'Left click[Force to station control]' }, + { deviceType: 'bar', orderNum: 3, operateCode: '2035', tip: 'Left click to input the password [123456],then left click the [OK]' }, + { deviceType: '05', orderNum: 4, operateCode: '2032', tip: 'Left click to select the control area to be converted【{1}】', val: '{2}' }, + { deviceType: '05', orderNum: 5, operateCode: '203', tip: 'Left click [Foece to station control', val: '{2}' }, + { deviceType: '05', orderNum: 6, operateCode: '2033', tip: 'Left click [ok] ', val: '{2}' }, + { deviceType: '05', orderNum: 7, operateCode: '0013', tip: 'Left click [ok] ' }, + { deviceType: 'bar', orderNum: 8, operateCode: '000', tip: 'Left click [close] ' } ] }, { @@ -1808,13 +2028,13 @@ export const OperationList = { minDuration: 8, operateType: '0501', skinCode: '05', - trainingName: 'The platform car buckle({10}-{12}station)', - trainingRemark: 'Set the button function', + trainingName: ' Train detaining({10}-{12}station)', + trainingRemark: 'Set the detaining function', trainingType: '05', productTypes: ['01,02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '504', tip: 'Right mouse button menu select [button car]' }, - { deviceType: '06', orderNum: 2, operateCode: '504', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '06', orderNum: 1, operateCode: '504', tip: 'Right click to select [train detaining]' }, + { deviceType: '06', orderNum: 2, operateCode: '504', tip: 'Left click [ok] ' } ] }, { @@ -1822,13 +2042,13 @@ export const OperationList = { minDuration: 8, operateType: '0502', skinCode: '05', - trainingName: 'Stop at platform({10}-{12}The platform)', - trainingRemark: 'Set unbutton function', + trainingName: 'Cancel train detaining({10}-{12}The platform)', + trainingRemark: 'Set cancelling detaining function', trainingType: '05', productTypes: ['01,02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '505', tip: 'Right mouse button menu select [cancel car button]' }, - { deviceType: '06', orderNum: 2, operateCode: '505', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '06', orderNum: 1, operateCode: '505', tip: 'Right click to select [cancel train detaining]]' }, + { deviceType: '06', orderNum: 2, operateCode: '505', tip: 'Left click [ok] ' } ] }, { @@ -1836,13 +2056,13 @@ export const OperationList = { minDuration: 8, operateType: '0503', skinCode: '05', - trainingName: 'Compulsory cancellation of car seizure({10}-{12}The platform)', - trainingRemark: 'Force to cancel the car button function', + trainingName: 'Force to cancel train detaining({10}-{12}The platform)', + trainingRemark: 'Force to cancel train detaining function', trainingType: '05', productTypes: ['01'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '506', tip: 'Right mouse button menu select [forced cancel car button]' }, - { deviceType: '06', orderNum: 2, operateCode: '506', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '06', orderNum: 1, operateCode: '506', tip: 'Right click to select [Force to cancel train detaining]' }, + { deviceType: '06', orderNum: 2, operateCode: '506', tip: 'Left click [ok] ' } ] }, { @@ -1850,13 +2070,13 @@ export const OperationList = { minDuration: 8, operateType: '0504', skinCode: '05', - trainingName: 'Cancel all stops({10}-{12}The platform)', - trainingRemark: 'Cancel button function across the board (default uplink across the board/downlink across the board, no choice)', + trainingName: 'Cancel train detaining along the whole line({10}-{12}The platform)', + trainingRemark: 'Cancel train detaining along the whole line (default the whole uplink and downlink )', trainingType: '05', productTypes: ['02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '508', tip: 'Right mouse button menu select [cancel car button across the board]' }, - { deviceType: '06', orderNum: 2, operateCode: '508', tip: 'Click the [ok] button with the left mouse button', val: '{11}' } + { deviceType: '06', orderNum: 1, operateCode: '508', tip: 'Right click to select [Cancel train detaining along the whole line]' }, + { deviceType: '06', orderNum: 2, operateCode: '508', tip: 'Left click [ok] ', val: '{11}' } ] }, { @@ -1864,14 +2084,14 @@ export const OperationList = { minDuration: 8, operateType: '0504', skinCode: '05', - trainingName: 'Cancel all stops({10}-{12}The platform)', - trainingRemark: 'Cancel button function on all lines (select all lines up/down)', + trainingName: 'Cancel train detaining along the whole line({10}-{12}The platform)', + trainingRemark: 'Cancel train detaining along the whole line (select the uplink or downlink ))', trainingType: '05', productTypes: ['02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '508', tip: 'Right mouse button menu select [cancel car button across the board]' }, - { deviceType: '06', orderNum: 2, operateCode: '5081', tip: 'Right mouse button menu selection【{14}Across the board】', val: '{13}' }, - { deviceType: '06', orderNum: 3, operateCode: '508', tip: 'Click the [ok] button with the left mouse button', val: '{13}' } + { deviceType: '06', orderNum: 1, operateCode: '508', tip: 'Right click to select [Cancel train detaining along the whole line]' }, + { deviceType: '06', orderNum: 2, operateCode: '5081', tip: 'Right click to select[{14}the whole line', val: '{13}' }, + { deviceType: '06', orderNum: 3, operateCode: '508', tip: 'Left click [ok]', val: '{13}' } ] }, { @@ -1879,13 +2099,13 @@ export const OperationList = { minDuration: 8, operateType: '0505', skinCode: '05', - trainingName: 'The platform jump stop({10}-{12}The platform)', - trainingRemark: 'Set the jump stop function', + trainingName: 'Skip to continue moving({10}-{12}The platform)', + trainingRemark: 'Set the skip to continue moving function', trainingType: '05', productTypes: ['01,02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '502', tip: 'Right mouse button menu selection [jump stop]' }, - { deviceType: '06', orderNum: 2, operateCode: '502', tip: 'Click the [ok] button with the left mouse button', val: '{11}' } + { deviceType: '06', orderNum: 1, operateCode: '502', tip: 'Right click to select [Skip to continue moving]' }, + { deviceType: '06', orderNum: 2, operateCode: '502', tip: 'Left click [ok]', val: '{11}' } ] }, { @@ -1893,13 +2113,13 @@ export const OperationList = { minDuration: 8, operateType: '0506', skinCode: '05', - trainingName: 'Cancel out({10}-{12}The platform)', - trainingRemark: 'Set to cancel jump stop function', + trainingName: 'Cancel skiping ({10}-{12}The platform)', + trainingRemark: 'Set cancelling skiping function', trainingType: '05', productTypes: ['01,02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '503', tip: 'Right mouse button menu select [cancel jump stop]' }, - { deviceType: '06', orderNum: 2, operateCode: '503', tip: 'Click the [ok] button with the left mouse button', val: '{11}' } + { deviceType: '06', orderNum: 1, operateCode: '503', tip: 'Right click to select [Cancel skiping]' }, + { deviceType: '06', orderNum: 2, operateCode: '503', tip: 'Left click [ok]', val: '{11}' } ] }, { @@ -1907,13 +2127,13 @@ export const OperationList = { minDuration: 5, operateType: '0507', skinCode: '05', - trainingName: 'Query platform status({10}-{12}The platform)', - trainingRemark: 'Query platform status function', + trainingName: ' Platform status query({10}-{12}The platform)', + trainingRemark: 'Query platform status function', trainingType: '05', productTypes: ['01,02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '507', tip: 'Right mouse button menu selection [query platform status]' }, - { deviceType: '06', orderNum: 2, operateCode: '0012', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '06', orderNum: 1, operateCode: '507', tip: 'Right click to select [Platform status query]' }, + { deviceType: '06', orderNum: 2, operateCode: '0012', tip: 'Left click [ok] ' } ] }, { @@ -1922,14 +2142,14 @@ export const OperationList = { operateType: '0508', skinCode: '05', trainingName: 'Set the stop time({10}-{12}The platform)', - trainingRemark: 'Set stop time (automatic, always in effect)', + trainingRemark: 'Set the stop time (auto, permanent validity)', trainingType: '05', productTypes: ['02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '509', tip: 'Right mouse button menu select [set stop time]' }, - { deviceType: '06', orderNum: 2, operateCode: '5092', tip: 'Click the left mouse button and select [auto]', val: '01' }, - { deviceType: '06', orderNum: 3, operateCode: '509', tip: 'Click the [ok] button with the left mouse button', val: '01::20::true' }, - { deviceType: '06', orderNum: 4, operateCode: '5091', tip: 'Click the [ok] button with the left mouse button', val: '01::20::true' } + { deviceType: '06', orderNum: 1, operateCode: '509', tip: 'Right click to select [Set the stop time]' }, + { deviceType: '06', orderNum: 2, operateCode: '5092', tip: 'Left click to select [auto]', val: '01' }, + { deviceType: '06', orderNum: 3, operateCode: '509', tip: 'Left click [ok] ', val: '01::20::true' }, + { deviceType: '06', orderNum: 4, operateCode: '5091', tip: 'Left click [ok] ', val: '01::20::true' } ] }, { @@ -1938,15 +2158,15 @@ export const OperationList = { operateType: '0508', skinCode: '05', trainingName: 'Set the stop time({10}-{12}The platform)', - trainingRemark: 'Set stop time (manual, 20 seconds, always valid)', + trainingRemark: 'Set the stop time (manual, 20 seconds, permanent validity)', trainingType: '05', productTypes: ['02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '509', tip: 'Right mouse button menu select [set stop time]' }, - { deviceType: '06', orderNum: 2, operateCode: '5092', tip: 'Click the left mouse button and select [manual]', val: '02' }, - { deviceType: '06', orderNum: 3, operateCode: '5094', tip: 'Input or mouse click, adjust to [20]', val: '20' }, - { deviceType: '06', orderNum: 4, operateCode: '509', tip: 'Click the [ok] button with the left mouse button', val: '02::20::true' }, - { deviceType: '06', orderNum: 5, operateCode: '5091', tip: 'Click the [ok] button with the left mouse button', val: '02::20::true' } + { deviceType: '06', orderNum: 1, operateCode: '509', tip: 'Right click to select [Set the stop time]' }, + { deviceType: '06', orderNum: 2, operateCode: '5092', tip: 'Left click to select [manual]', val: '02' }, + { deviceType: '06', orderNum: 3, operateCode: '5094', tip: 'Set time [20]', val: '20' }, + { deviceType: '06', orderNum: 4, operateCode: '509', tip: 'Left click [ok] ', val: '02::20::true' }, + { deviceType: '06', orderNum: 5, operateCode: '5091', tip: 'Left click [ok]', val: '02::20::true' } ] }, { @@ -1955,16 +2175,16 @@ export const OperationList = { operateType: '0508', skinCode: '05', trainingName: 'Set the stop time({10}-{12}The platform)', - trainingRemark: 'Set stop time (manual, 20 seconds, valid once)', + trainingRemark: 'Set the stop time (manual, 20 seconds, once valid )', trainingType: '05', productTypes: ['02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '509', tip: 'Right mouse button menu select [set stop time]' }, - { deviceType: '06', orderNum: 2, operateCode: '5092', tip: 'Click the left mouse button and select [manual]', val: '02' }, - { deviceType: '06', orderNum: 3, operateCode: '5094', tip: 'Input or mouse click, adjust to [20]', val: '20' }, - { deviceType: '06', orderNum: 4, operateCode: '5093', tip: 'Click the left mouse button and select "valid once".', val: 'false' }, - { deviceType: '06', orderNum: 5, operateCode: '509', tip: 'Click the [ok] button with the left mouse button', val: '02::20::false' }, - { deviceType: '06', orderNum: 6, operateCode: '5091', tip: 'Click the [ok] button with the left mouse button', val: '02::20::false' } + { deviceType: '06', orderNum: 1, operateCode: '509', tip: 'Right click to select [Set the stop time]' }, + { deviceType: '06', orderNum: 2, operateCode: '5092', tip: 'Left click to select [manual]', val: '02' }, + { deviceType: '06', orderNum: 3, operateCode: '5094', tip: 'Set time [20]', val: '20' }, + { deviceType: '06', orderNum: 4, operateCode: '5093', tip: 'Left click to select "once valid ".', val: 'false' }, + { deviceType: '06', orderNum: 5, operateCode: '509', tip: 'Left click [ok] ', val: '02::20::false' }, + { deviceType: '06', orderNum: 6, operateCode: '5091', tip: 'Left click [ok] ', val: '02::20::false' } ] }, { @@ -1972,15 +2192,15 @@ export const OperationList = { minDuration: 8, operateType: '0509', skinCode: '05', - trainingName: 'Set operation level({10}-{12}The platform)', - trainingRemark: 'Set the running level (set the interval running time to 60, which is always valid)', + trainingName: 'Set the operation mode({10}-{12}The platform)', + trainingRemark: 'Set the operation mode(set the interval running time to 60, permanent validity)', trainingType: '05', productTypes: ['02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '510', tip: 'Right mouse button menu selection [set operation level]' }, - { deviceType: '06', orderNum: 2, operateCode: '5101', tip: 'Click the left mouse button and select [60]', val: '60' }, - { deviceType: '06', orderNum: 3, operateCode: '510', tip: 'Click the [ok] button with the left mouse button', val: '60::true' }, - { deviceType: '06', orderNum: 4, operateCode: '5102', tip: 'Click the [ok] button with the left mouse button', val: '60::true' } + { deviceType: '06', orderNum: 1, operateCode: '510', tip: 'Right click to select [Set the operation mode]' }, + { deviceType: '06', orderNum: 2, operateCode: '5101', tip: 'Left click to select [60]', val: '60' }, + { deviceType: '06', orderNum: 3, operateCode: '510', tip: 'Left click [ok] ', val: '60::true' }, + { deviceType: '06', orderNum: 4, operateCode: '5102', tip: 'Left click [ok] ', val: '60::true' } ] }, { @@ -1988,16 +2208,16 @@ export const OperationList = { minDuration: 8, operateType: '0509', skinCode: '05', - trainingName: 'Set operation level({10}-{12}The platform)', - trainingRemark: 'Set the running level (set the interval running time to 60, valid once)', + trainingName: 'Set operation mode({10}-{12}The platform)', + trainingRemark: 'Set operation mode (set the interval running time to 60, once valid )', trainingType: '05', productTypes: ['02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '510', tip: 'Right mouse button menu selection [set operation level]' }, - { deviceType: '06', orderNum: 2, operateCode: '5101', tip: 'Click the left mouse button and select [60]', val: '60' }, - { deviceType: '06', orderNum: 3, operateCode: '5103', tip: 'Click the left mouse button to deselect.', val: 'false' }, - { deviceType: '06', orderNum: 4, operateCode: '510', tip: 'Click the [ok] button with the left mouse button', val: '60::false' }, - { deviceType: '06', orderNum: 5, operateCode: '5102', tip: 'Click the [ok] button with the left mouse button', val: '60::false' } + { deviceType: '06', orderNum: 1, operateCode: '510', tip: 'Right click to select [Set the operation mode]' }, + { deviceType: '06', orderNum: 2, operateCode: '5101', tip: 'Left click to select [60]', val: '60' }, + { deviceType: '06', orderNum: 3, operateCode: '5103', tip: 'Left click to cancel [permanent validity].', val: 'false' }, + { deviceType: '06', orderNum: 4, operateCode: '510', tip: 'Left click [ok] ', val: '60::false' }, + { deviceType: '06', orderNum: 5, operateCode: '5102', tip: 'Left click [ok] ', val: '60::false' } ] }, { @@ -2005,13 +2225,13 @@ export const OperationList = { minDuration: 8, operateType: '0510', skinCode: '05', - trainingName: 'Set early departure({10}-{12}The platform)', - trainingRemark: 'Set the early departure function', + trainingName: 'Set departure inadvance({10}-{12}The platform)', + trainingRemark: 'Set departure inadvance function', trainingType: '05', productTypes: ['02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '501', tip: 'Right mouse button menu select [set early departure]' }, - { deviceType: '06', orderNum: 2, operateCode: '501', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '06', orderNum: 1, operateCode: '501', tip: 'Right click to select [Set departure inadvance]' }, + { deviceType: '06', orderNum: 2, operateCode: '501', tip: 'Left click [ok] ' } ] }, { @@ -2019,14 +2239,14 @@ export const OperationList = { minDuration: 8, operateType: '0511', skinCode: '05', - trainingName: 'Manual return policy setting({10}-{12}The platform)', - trainingRemark: 'Manual return policy setting function', + trainingName: 'Manual return strategy setting({10}-{12}The platform)', + trainingRemark: 'Manual return strategy setting function', trainingType: '05', productTypes: ['02'], stepVOList: [ - { deviceType: '06', orderNum: 1, operateCode: '511', tip: 'Right mouse button menu selection [manual return strategy setting]' }, - { deviceType: '06', orderNum: 2, operateCode: '5111', tip: 'Click the left mouse button and select "no return".', val: '01' }, - { deviceType: '06', orderNum: 3, operateCode: '511', tip: 'Click the [ok] button with the left mouse button', val: '01' } + { deviceType: '06', orderNum: 1, operateCode: '511', tip: 'Right click to select [Manual return strategy setting]' }, + { deviceType: '06', orderNum: 2, operateCode: '5111', tip: 'Left click to select [No return]".', val: '01' }, + { deviceType: '06', orderNum: 3, operateCode: '511', tip: 'Left click [ok] ', val: '01' } ] }, @@ -2040,11 +2260,11 @@ export const OperationList = { trainingType: '04', productTypes: ['01,02'], stepVOList: [ - { deviceType: '03', orderNum: 1, operateCode: '402', tip: 'Select "section fault unlocking" from the right mouse button menu' }, - { deviceType: '03', orderNum: 2, operateCode: '4026', tip: 'Click the [down] button with the left mouse button' }, - { deviceType: '03', orderNum: 3, operateCode: '4024', tip: 'Click the [confirm 1] button with the left mouse button' }, - { deviceType: '03', orderNum: 4, operateCode: '4025', tip: 'Click the [confirm 2] button with the left mouse button' }, - { deviceType: '03', orderNum: 5, operateCode: '001', tip: 'Click the [close] button with the left mouse button' } + { deviceType: '03', orderNum: 1, operateCode: '402', tip: 'Right click to select "Section fault unlocking" ' }, + { deviceType: '03', orderNum: 2, operateCode: '4026', tip: 'Left click [Execute] ' }, + { deviceType: '03', orderNum: 3, operateCode: '4024', tip: 'Left click [ok 1] ' }, + { deviceType: '03', orderNum: 4, operateCode: '4025', tip: 'Left click [ok 2] ' }, + { deviceType: '03', orderNum: 5, operateCode: '001', tip: 'Left click [close] ' } ] }, { @@ -2052,13 +2272,13 @@ export const OperationList = { minDuration: 8, operateType: '0402', skinCode: '05', - trainingName: 'Segment resection({8}{9})', - trainingRemark: 'Segment resection', + trainingName: 'Section resection({8}{9})', + trainingRemark: 'Section resection', trainingType: '04', productTypes: ['01,02'], stepVOList: [ - { deviceType: '03', orderNum: 1, operateCode: '405', tip: 'Right mouse button menu select [segment cut]' }, - { deviceType: '03', orderNum: 2, operateCode: '405', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '03', orderNum: 1, operateCode: '405', tip: 'Right click to select [Section resection]' }, + { deviceType: '03', orderNum: 2, operateCode: '405', tip: 'Left click [ok] ' } ] }, { @@ -2066,13 +2286,13 @@ export const OperationList = { minDuration: 8, operateType: '0403', skinCode: '05', - trainingName: 'Section to activate({8}{9})', + trainingName: 'Section activation({8}{9})', trainingRemark: 'Section activation function', trainingType: '04', productTypes: ['01,02'], stepVOList: [ - { deviceType: '03', orderNum: 1, operateCode: '406', tip: 'Right mouse button menu selection [section activation]' }, - { deviceType: '03', orderNum: 2, operateCode: '406', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '03', orderNum: 1, operateCode: '406', tip: 'Right click to select [Section activation]' }, + { deviceType: '03', orderNum: 2, operateCode: '406', tip: 'Left click [ok]' } ] }, { @@ -2085,11 +2305,11 @@ export const OperationList = { trainingType: '04', productTypes: ['01'], stepVOList: [ - { deviceType: '03', orderNum: 1, operateCode: '409', tip: 'Select from the right mouse button menu [segment-axis pre-reset]' }, - { deviceType: '03', orderNum: 2, operateCode: '4091', tip: 'Click the [down] button with the left mouse button' }, - { deviceType: '03', orderNum: 3, operateCode: '4093', tip: 'Click the [confirm 1] button with the left mouse button' }, - { deviceType: '03', orderNum: 4, operateCode: '4094', tip: 'Click the [confirm 2] button with the left mouse button' }, - { deviceType: '03', orderNum: 5, operateCode: '001', tip: 'Click the [close] button with the left mouse button' } + { deviceType: '03', orderNum: 1, operateCode: '409', tip: 'Right click to select [Axis pre-reset]' }, + { deviceType: '03', orderNum: 2, operateCode: '4091', tip: 'Left click [Execute]' }, + { deviceType: '03', orderNum: 3, operateCode: '4093', tip: 'Left click [ok1]' }, + { deviceType: '03', orderNum: 4, operateCode: '4094', tip: 'Left click [ok2]' }, + { deviceType: '03', orderNum: 5, operateCode: '001', tip: 'Left click [close]' } ] }, { @@ -2097,13 +2317,13 @@ export const OperationList = { minDuration: 8, operateType: '0405', skinCode: '05', - trainingName: 'Section block({8}{9})', - trainingRemark: 'Block blocking function', + trainingName: 'Section blockade({8}{9})', + trainingRemark: 'Section blockade function', trainingType: '04', productTypes: ['01,02'], stepVOList: [ - { deviceType: '03', orderNum: 1, operateCode: '403', tip: 'Right mouse button menu selection [block]' }, - { deviceType: '03', orderNum: 2, operateCode: '403', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '03', orderNum: 1, operateCode: '403', tip: 'Right click to select [Section blockade]' }, + { deviceType: '03', orderNum: 2, operateCode: '403', tip: 'Left click [ok] ' } ] }, { @@ -2111,16 +2331,16 @@ export const OperationList = { minDuration: 8, operateType: '0406', skinCode: '05', - trainingName: 'Section unlock({8}{9})', - trainingRemark: 'Section unsealing function', + trainingName: 'Section unblockade({8}{9})', + trainingRemark: 'Section unblockade function', trainingType: '04', productTypes: ['01,02'], stepVOList: [ - { deviceType: '03', orderNum: 1, operateCode: '404', tip: 'Right mouse button menu selection [section unsealing]' }, - { deviceType: '03', orderNum: 2, operateCode: '4041', tip: 'Click the [down] button with the left mouse button' }, - { deviceType: '03', orderNum: 3, operateCode: '4043', tip: 'Click the [confirm 1] button with the left mouse button' }, - { deviceType: '03', orderNum: 4, operateCode: '4044', tip: 'Click the [confirm 2] button with the left mouse button' }, - { deviceType: '03', orderNum: 5, operateCode: '001', tip: 'Click the [close] button with the left mouse button' } + { deviceType: '03', orderNum: 1, operateCode: '404', tip: 'Right click to select [Section unblockade]' }, + { deviceType: '03', orderNum: 2, operateCode: '4041', tip: 'Left click [Execute]' }, + { deviceType: '03', orderNum: 3, operateCode: '4043', tip: 'Left click [ok1]' }, + { deviceType: '03', orderNum: 4, operateCode: '4044', tip: 'Left click [ok2]' }, + { deviceType: '03', orderNum: 5, operateCode: '001', tip: 'Left click [close]' } ] }, { @@ -2128,18 +2348,18 @@ export const OperationList = { minDuration: 8, operateType: '0407', skinCode: '05', - trainingName: 'Section sets speed limit({8}{9})', - trainingRemark: 'Section setting speed limit function (speed limit value: 5)', + trainingName: 'Set speed limit on the section({8}{9})', + trainingRemark: 'Set speed limit on the section (speed limit value: 5)', trainingType: '04', productTypes: ['01,02'], stepVOList: [ - { deviceType: '03', orderNum: 1, operateCode: '407', tip: 'Right mouse button menu selection [section to set speed limit]' }, - { deviceType: '03', orderNum: 2, operateCode: '4076', tip: 'Select [speed limit value 5] with the left mouse button', val: '5' }, - { deviceType: '03', orderNum: 3, operateCode: '4071', tip: 'Click the [down] button with the left mouse button' }, - { deviceType: '03', orderNum: 4, operateCode: '4072', tip: 'Click the [ok] button with the left mouse button' }, - { deviceType: '03', orderNum: 5, operateCode: '4073', tip: 'Click the [confirm 1] button with the left mouse button' }, - { deviceType: '03', orderNum: 6, operateCode: '4074', tip: 'Click the [confirm 2] button with the left mouse button', val: '5' }, - { deviceType: '03', orderNum: 7, operateCode: '001', tip: 'Click the [close] button with the left mouse button' } + { deviceType: '03', orderNum: 1, operateCode: '407', tip: 'Right click to select [Set speed limit on the section]' }, + { deviceType: '03', orderNum: 2, operateCode: '4076', tip: 'Left click to select [speed limit 5] ', val: '5' }, + { deviceType: '03', orderNum: 3, operateCode: '4071', tip: 'Left click [Execute]' }, + { deviceType: '03', orderNum: 4, operateCode: '4072', tip: 'Left click [ok]' }, + { deviceType: '03', orderNum: 5, operateCode: '4073', tip: 'Left click [ok1]' }, + { deviceType: '03', orderNum: 6, operateCode: '4074', tip: 'Left click [ok2]', val: '5' }, + { deviceType: '03', orderNum: 7, operateCode: '001', tip: 'Left click [close]' } ] }, { @@ -2147,17 +2367,17 @@ export const OperationList = { minDuration: 8, operateType: '0408', skinCode: '05', - trainingName: 'Section cancels speed limit({8}{9})', - trainingRemark: 'Section cancels speed limit', + trainingName: 'Cancel speed limit on the section({8}{9})', + trainingRemark: 'Cancel speed limit on the section', trainingType: '04', productTypes: ['01,02'], stepVOList: [ - { deviceType: '03', orderNum: 1, operateCode: '408', tip: 'Right mouse button menu select [section cancel speed limit]' }, - { deviceType: '03', orderNum: 2, operateCode: '4081', tip: 'Click the [down] button with the left mouse button' }, - { deviceType: '03', orderNum: 3, operateCode: '4082', tip: 'Click the [ok] button with the left mouse button' }, - { deviceType: '03', orderNum: 4, operateCode: '4083', tip: 'Click the [confirm 1] button with the left mouse button' }, - { deviceType: '03', orderNum: 5, operateCode: '4084', tip: 'Click the [confirm 2] button with the left mouse button', val: '5' }, - { deviceType: '03', orderNum: 6, operateCode: '001', tip: 'Click the [close] button with the left mouse button' } + { deviceType: '03', orderNum: 1, operateCode: '408', tip: 'Right click to select [Cancel speed limit on the section]' }, + { deviceType: '03', orderNum: 2, operateCode: '4081', tip: 'Left click [Execute]' }, + { deviceType: '03', orderNum: 3, operateCode: '4082', tip: 'Left click [ok] ' }, + { deviceType: '03', orderNum: 4, operateCode: '4083', tip: 'Left click [ok1]' }, + { deviceType: '03', orderNum: 5, operateCode: '4084', tip: 'Left click [ok2]', val: '5' }, + { deviceType: '03', orderNum: 6, operateCode: '001', tip: 'Left click [close]' } ] }, @@ -2166,13 +2386,13 @@ export const OperationList = { minDuration: 8, operateType: '0301', skinCode: '05', - trainingName: 'Switch monolock({7})', - trainingRemark: 'Switch single lock function', + trainingName: 'Turnout single lock({7})', + trainingRemark: 'Turnout single lock function', trainingType: '03', productTypes: ['01,02'], stepVOList: [ - { deviceType: '02', orderNum: 1, operateCode: '103', tip: 'Right mouse button menu select 【 switch single lock 】' }, - { deviceType: '02', orderNum: 2, operateCode: '103', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '02', orderNum: 1, operateCode: '103', tip: 'Right click to select [Turnout single lock]' }, + { deviceType: '02', orderNum: 2, operateCode: '103', tip: 'Left click [ok] ' } ] }, { @@ -2180,16 +2400,16 @@ export const OperationList = { minDuration: 8, operateType: '0302', skinCode: '05', - trainingName: 'Switch single solution({7})', - trainingRemark: 'Switch single solution function', + trainingName: 'Turnout single release({7})', + trainingRemark: 'Turnout single release function', trainingType: '03', productTypes: ['01,02'], stepVOList: [ - { deviceType: '02', orderNum: 1, operateCode: '104', tip: 'Right mouse button menu selection 【 switch single solution 】' }, - { deviceType: '02', orderNum: 2, operateCode: '1041', tip: 'Click the [down] button with the left mouse button' }, - { deviceType: '02', orderNum: 3, operateCode: '1043', tip: 'Click the [confirm 1] button with the left mouse button' }, - { deviceType: '02', orderNum: 4, operateCode: '1044', tip: 'Click the [confirm 2] button with the left mouse button' }, - { deviceType: '02', orderNum: 5, operateCode: '001', tip: 'Click the [close] button with the left mouse button' } + { deviceType: '02', orderNum: 1, operateCode: '104', tip: 'Right click to select [Turnout single release]' }, + { deviceType: '02', orderNum: 2, operateCode: '1041', tip: 'Left click [Execute]' }, + { deviceType: '02', orderNum: 3, operateCode: '1043', tip: 'Left click [ok1] ' }, + { deviceType: '02', orderNum: 4, operateCode: '1044', tip: 'Left click [ok2] ' }, + { deviceType: '02', orderNum: 5, operateCode: '001', tip: 'Left click [close] '} ] }, { @@ -2197,13 +2417,13 @@ export const OperationList = { minDuration: 8, operateType: '0303', skinCode: '05', - trainingName: 'The turnout section is closed({7})', - trainingRemark: 'Switch section closure function', + trainingName: 'Turnout section closure({7})', + trainingRemark: 'Turnout section closure ', trainingType: '03', productTypes: ['01,02'], stepVOList: [ - { deviceType: '02', orderNum: 1, operateCode: '105', tip: 'Right mouse button menu selection [switch section closed]' }, - { deviceType: '02', orderNum: 2, operateCode: '105', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '02', orderNum: 1, operateCode: '105', tip: 'Right click to select [Turnout section closure]' }, + { deviceType: '02', orderNum: 2, operateCode: '105', tip: 'Left click [ok] ' } ] }, { @@ -2211,16 +2431,16 @@ export const OperationList = { minDuration: 8, operateType: '0304', skinCode: '05', - trainingName: 'Switch section unsealed({7})', - trainingRemark: 'Switch section unsealing function', + trainingName: 'Turnout section unsealing({7})', + trainingRemark: 'Turnout section unsealing function', trainingType: '03', productTypes: ['01,02'], stepVOList: [ - { deviceType: '02', orderNum: 1, operateCode: '106', tip: 'Right mouse button menu select 【 switch section unseal 】' }, - { deviceType: '02', orderNum: 2, operateCode: '1061', tip: 'Click the [down] button with the left mouse button' }, - { deviceType: '02', orderNum: 3, operateCode: '1063', tip: 'Click the [confirm 1] button with the left mouse button' }, - { deviceType: '02', orderNum: 4, operateCode: '1064', tip: 'Click the [confirm 2] button with the left mouse button' }, - { deviceType: '02', orderNum: 5, operateCode: '001', tip: 'Click the [close] button with the left mouse button' } + { deviceType: '02', orderNum: 1, operateCode: '106', tip: 'Right click to select [Turnout section unsealing]' }, + { deviceType: '02', orderNum: 2, operateCode: '1061', tip: 'Left click [Execute]' }, + { deviceType: '02', orderNum: 3, operateCode: '1063', tip: 'Left click [ok1]' }, + { deviceType: '02', orderNum: 4, operateCode: '1064', tip: 'Left click [ok2]' }, + { deviceType: '02', orderNum: 5, operateCode: '001', tip: 'Left click [close]' } ] }, { @@ -2228,13 +2448,13 @@ export const OperationList = { minDuration: 8, operateType: '0305', skinCode: '05', - trainingName: 'Switch the rotation({7})', - trainingRemark: 'Switch rotation function({15}turn{16})', + trainingName: 'Switch rotation({7})', + trainingRemark: 'Switch rotation({15}turn{16})', trainingType: '03', productTypes: ['01,02'], stepVOList: [ - { deviceType: '02', orderNum: 1, operateCode: '107', tip: 'Right mouse button menu selection [switch rotation]' }, - { deviceType: '02', orderNum: 2, operateCode: '107', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '02', orderNum: 1, operateCode: '107', tip: 'Right click to select [Switch rotation]' }, + { deviceType: '02', orderNum: 2, operateCode: '107', tip: 'Left click [ok] ' } ] }, { @@ -2242,16 +2462,16 @@ export const OperationList = { minDuration: 10, operateType: '0306', skinCode: '05', - trainingName: 'Fault unlocking of switch section({7})', + trainingName: 'Switch section fault unlocking({7})', trainingRemark: 'Switch section fault unlocking function', trainingType: '03', productTypes: ['01,02'], stepVOList: [ - { deviceType: '02', orderNum: 1, operateCode: '109', tip: 'Right mouse button menu to select "switch section fault unlock"' }, - { deviceType: '02', orderNum: 2, operateCode: '1091', tip: 'Click the [down] button with the left mouse button' }, - { deviceType: '02', orderNum: 3, operateCode: '1093', tip: 'Click the [confirm 1] button with the left mouse button' }, - { deviceType: '02', orderNum: 4, operateCode: '1094', tip: 'Click the [confirm 2] button with the left mouse button' }, - { deviceType: '02', orderNum: 5, operateCode: '001', tip: 'Click the [close] button with the left mouse button' } + { deviceType: '02', orderNum: 1, operateCode: '109', tip: 'Right click to select [switch section fault unlocking]' }, + { deviceType: '02', orderNum: 2, operateCode: '1091', tip: 'Left click [Execute]' }, + { deviceType: '02', orderNum: 3, operateCode: '1093', tip: 'Left click [ok1]' }, + { deviceType: '02', orderNum: 4, operateCode: '1094', tip: 'Left click [ok2]' }, + { deviceType: '02', orderNum: 5, operateCode: '001', tip: 'Left click [close]' } ] }, { @@ -2259,16 +2479,16 @@ export const OperationList = { minDuration: 8, operateType: '0307', skinCode: '05', - trainingName: 'The turnout section is pre-reset by axle counting({7})', - trainingRemark: 'Switch section axis pre-reset function', + trainingName: 'Turnout section axile pre reset({7})', + trainingRemark: 'Turnout section axile pre reset function', trainingType: '03', productTypes: ['01'], stepVOList: [ - { deviceType: '02', orderNum: 1, operateCode: '110', tip: 'Select from the right mouse button menu [switch section axis count pre-reset]' }, - { deviceType: '02', orderNum: 2, operateCode: '1101', tip: 'Click the [down] button with the left mouse button' }, - { deviceType: '02', orderNum: 3, operateCode: '1103', tip: 'Click the [confirm 1] button with the left mouse button' }, - { deviceType: '02', orderNum: 4, operateCode: '1104', tip: 'Click the [confirm 2] button with the left mouse button' }, - { deviceType: '02', orderNum: 5, operateCode: '001', tip: 'Click the [close] button with the left mouse button' } + { deviceType: '02', orderNum: 1, operateCode: '110', tip: 'Right click to select [Turnout section axile pre reset]' }, + { deviceType: '02', orderNum: 2, operateCode: '1101', tip: 'Left click [Execute]' }, + { deviceType: '02', orderNum: 3, operateCode: '1103', tip: 'Left click [ok1]' }, + { deviceType: '02', orderNum: 4, operateCode: '1104', tip: 'Left click [ok2]' }, + { deviceType: '02', orderNum: 5, operateCode: '001', tip: 'Left click [close]' } ] }, { @@ -2276,13 +2496,13 @@ export const OperationList = { minDuration: 8, operateType: '0308', skinCode: '05', - trainingName: 'Segment resection({7})', - trainingRemark: 'Segment resection', + trainingName: 'Section resection({7})', + trainingRemark: 'Section resection', trainingType: '03', productTypes: ['01,02'], stepVOList: [ - { deviceType: '02', orderNum: 1, operateCode: '111', tip: 'Right mouse button menu select [segment cut]' }, - { deviceType: '02', orderNum: 2, operateCode: '111', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '02', orderNum: 1, operateCode: '111', tip: 'Right click to select [Section resection]' }, + { deviceType: '02', orderNum: 2, operateCode: '111', tip: 'Left click [ok]' } ] }, { @@ -2290,13 +2510,13 @@ export const OperationList = { minDuration: 8, operateType: '0309', skinCode: '05', - trainingName: 'Section to activate({7})', + trainingName: 'Section activation({7})', trainingRemark: 'Section activation function', trainingType: '03', productTypes: ['01,02'], stepVOList: [ - { deviceType: '02', orderNum: 1, operateCode: '112', tip: 'Right mouse button menu selection [section activation]' }, - { deviceType: '02', orderNum: 2, operateCode: '112', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '02', orderNum: 1, operateCode: '112', tip: 'Right click to select [Section activation]' }, + { deviceType: '02', orderNum: 2, operateCode: '112', tip: 'Left click [ok] ' } ] }, { @@ -2304,18 +2524,18 @@ export const OperationList = { minDuration: 8, operateType: '0310', skinCode: '05', - trainingName: 'Speed limit is set at switch section({7})', - trainingRemark: 'Switch section setting speed limit function (speed limit value: 5)', + trainingName: 'Set speed limit on the section({7})', + trainingRemark: 'Set speed limit on the section (speed limit value: 5)', trainingType: '03', productTypes: ['01,02'], stepVOList: [ - { deviceType: '02', orderNum: 1, operateCode: '113', tip: 'Right mouse button menu selection 【 turnout section setting speed limit 】' }, - { deviceType: '02', orderNum: 2, operateCode: '1136', tip: 'Select [speed limit value 5] with the left mouse button', val: '5' }, - { deviceType: '02', orderNum: 3, operateCode: '1131', tip: 'Click the [down] button with the left mouse button' }, - { deviceType: '02', orderNum: 4, operateCode: '1132', tip: 'Click the [ok] button with the left mouse button' }, - { deviceType: '02', orderNum: 5, operateCode: '1133', tip: 'Click the [confirm 1] button with the left mouse button' }, - { deviceType: '02', orderNum: 6, operateCode: '1134', tip: 'Click the [confirm 2] button with the left mouse button', val: '5' }, - { deviceType: '02', orderNum: 7, operateCode: '001', tip: 'Click the [close] button with the left mouse button' } + { deviceType: '02', orderNum: 1, operateCode: '113', tip: 'Right click to select [Set speed limit on the section]' }, + { deviceType: '02', orderNum: 2, operateCode: '1136', tip: 'Left click to select [speed limit 5] ', val: '5' }, + { deviceType: '02', orderNum: 3, operateCode: '1131', tip: 'Left click [Execute]' }, + { deviceType: '02', orderNum: 4, operateCode: '1132', tip: 'Left click [ok]' }, + { deviceType: '02', orderNum: 5, operateCode: '1133', tip: 'Left click [ok1]' }, + { deviceType: '02', orderNum: 6, operateCode: '1134', tip: 'Left click [ok2]', val: '5' }, + { deviceType: '02', orderNum: 7, operateCode: '001', tip: 'Left click [close]' } ] }, { @@ -2323,17 +2543,17 @@ export const OperationList = { minDuration: 8, operateType: '0311', skinCode: '05', - trainingName: 'Remove speed limit in switch section({7})', - trainingRemark: 'Switch section cancel speed limit function', + trainingName: 'Cancel speed limit on the section({7})', + trainingRemark: 'Cancel speed limit on the section', trainingType: '03', productTypes: ['01,02'], stepVOList: [ - { deviceType: '02', orderNum: 1, operateCode: '114', tip: 'Right mouse button menu select 【 switch section cancel speed limit 】' }, - { deviceType: '02', orderNum: 2, operateCode: '1141', tip: 'Click the [down] button with the left mouse button' }, - { deviceType: '02', orderNum: 3, operateCode: '1142', tip: 'Click the [ok] button with the left mouse button' }, - { deviceType: '02', orderNum: 4, operateCode: '1143', tip: 'Click the [confirm 1] button with the left mouse button' }, - { deviceType: '02', orderNum: 5, operateCode: '1144', tip: 'Click the [confirm 2] button with the left mouse button', val: '5' }, - { deviceType: '02', orderNum: 6, operateCode: '001', tip: 'Click the [close] button with the left mouse button' } + { deviceType: '02', orderNum: 1, operateCode: '114', tip: 'Right click to select [Cancel speed limit on the section]' }, + { deviceType: '02', orderNum: 2, operateCode: '1141', tip: 'Left click [Execute]' }, + { deviceType: '02', orderNum: 3, operateCode: '1142', tip: 'Left click [ok] ' }, + { deviceType: '02', orderNum: 4, operateCode: '1143', tip: 'Left click [ok1]' }, + { deviceType: '02', orderNum: 5, operateCode: '1144', tip: 'Left click [ok2]', val: '5' }, + { deviceType: '02', orderNum: 6, operateCode: '001', tip: 'Left click [close]' } ] }, @@ -2342,15 +2562,15 @@ export const OperationList = { minDuration: 8, operateType: '0201', skinCode: '05', - trainingName: 'Route selected row({3})', - trainingRemark: 'Select alignment approach', + trainingName: 'Route selection({3})', + trainingRemark: 'Route selection', trainingType: '02', productTypes: ['01,02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '301', tip: 'Right mouse button menu selection [enter road select row]' }, - { deviceType: '04', orderNum: 2, operateCode: '3011', tip: 'The left mouse button selects the path name【{3}】', val: '{4}' }, - { deviceType: '04', orderNum: 3, operateCode: '301', tip: 'Click the [ok] button with the left mouse button' }, - { deviceType: '04', orderNum: 4, operateCode: '3012', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '301', tip: 'Right click to select [Route selection]' }, + { deviceType: '04', orderNum: 2, operateCode: '3011', tip: 'Left click to select the route name【{3}】', val: '{4}' }, + { deviceType: '04', orderNum: 3, operateCode: '301', tip: 'Left click [ok] ' }, + { deviceType: '04', orderNum: 4, operateCode: '3012', tip: 'Left click [ok] ' } ] }, { @@ -2358,14 +2578,14 @@ export const OperationList = { minDuration: 8, operateType: '0202', skinCode: '05', - trainingName: 'Approach to cancel({3})', - trainingRemark: 'Approach to cancel', + trainingName: 'Cancel the route({3})', + trainingRemark: 'Cancel the route', trainingType: '02', productTypes: ['02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '303', tip: 'Right mouse button menu select [enter path cancel]' }, - { deviceType: '04', orderNum: 2, operateCode: '303', tip: 'Click the [ok] button with the left mouse button' }, - { deviceType: '04', orderNum: 3, operateCode: '3031', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '303', tip: 'Right click to select [Cancel the route]' }, + { deviceType: '04', orderNum: 2, operateCode: '303', tip: 'Left click [ok] ' }, + { deviceType: '04', orderNum: 3, operateCode: '3031', tip: 'Left click [ok]' } ] }, { @@ -2373,13 +2593,13 @@ export const OperationList = { minDuration: 8, operateType: '0202', skinCode: '05', - trainingName: 'Approach to cancel({3})', - trainingRemark: 'Approach to cancel', + trainingName: 'Cancel the route({3})', + trainingRemark: 'Cancel the route', trainingType: '02', productTypes: ['01'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '303', tip: 'Right mouse button menu select [enter path cancel]' }, - { deviceType: '04', orderNum: 2, operateCode: '303', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '303', tip: 'Right click to select [Cancel the route]' }, + { deviceType: '04', orderNum: 2, operateCode: '303', tip: 'Left click [ok]' } ] }, { @@ -2387,13 +2607,13 @@ export const OperationList = { minDuration: 8, operateType: '0203', skinCode: '05', - trainingName: 'Signal is closed({5})', - trainingRemark: 'Signal is closed', + trainingName: 'Signal closure({5})', + trainingRemark: 'Signal closure', trainingType: '02', productTypes: ['01,02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '306', tip: 'Right mouse button menu select [signal closed]' }, - { deviceType: '04', orderNum: 2, operateCode: '306', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '306', tip: 'Right click to select [Signal closure]' }, + { deviceType: '04', orderNum: 2, operateCode: '306', tip: 'Left click [ok] ' } ] }, { @@ -2401,17 +2621,17 @@ export const OperationList = { minDuration: 8, operateType: '0204', skinCode: '05', - trainingName: 'Signal to unlock({5})', - trainingRemark: 'Signal to unlock', + trainingName: 'Signal unsealing({5})', + trainingRemark: 'Signal unsealing', trainingType: '02', productTypes: ['01,02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '307', tip: 'Right mouse button menu selection [signal unsealing]' }, - { deviceType: '04', orderNum: 2, operateCode: '3071', tip: 'Click the [down] button with the left mouse button' }, - { deviceType: '04', orderNum: 3, operateCode: '3072', tip: 'Click the [ok] button with the left mouse button' }, - { deviceType: '04', orderNum: 4, operateCode: '3073', tip: 'Click the [confirm 1] button with the left mouse button' }, - { deviceType: '04', orderNum: 5, operateCode: '3074', tip: 'Click the [confirm 2] button with the left mouse button' }, - { deviceType: '04', orderNum: 6, operateCode: '001', tip: 'Click the [close] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '307', tip: 'Right click to select [Signal unsealing]' }, + { deviceType: '04', orderNum: 2, operateCode: '3071', tip: 'Left click [Execute]' }, + { deviceType: '04', orderNum: 3, operateCode: '3072', tip: 'Left click [ok]' }, + { deviceType: '04', orderNum: 4, operateCode: '3073', tip: 'Left click [ok1]' }, + { deviceType: '04', orderNum: 5, operateCode: '3074', tip: 'Left click [ok2]' }, + { deviceType: '04', orderNum: 6, operateCode: '001', tip: 'Left click [close]' } ] }, { @@ -2419,14 +2639,14 @@ export const OperationList = { minDuration: 8, operateType: '0205', skinCode: '05', - trainingName: 'Signal to turn off the lights({3})', - trainingRemark: 'Signal to turn off the lights', + trainingName: 'The signal light turns red({3})', + trainingRemark: 'The signal light turns red', trainingType: '02', productTypes: ['01,02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '313', tip: 'Right mouse button menu select [signal off light]' }, - { deviceType: '04', orderNum: 2, operateCode: '313', tip: 'Click the [ok] button with the left mouse button' }, - { deviceType: '04', orderNum: 3, operateCode: '3131', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '313', tip: 'Right click to select [The signal light turns red]' }, + { deviceType: '04', orderNum: 2, operateCode: '313', tip: 'Left click [ok]' }, + { deviceType: '04', orderNum: 3, operateCode: '3131', tip: 'Left click [ok]' } ] }, { @@ -2434,14 +2654,14 @@ export const OperationList = { minDuration: 8, operateType: '0206', skinCode: '05', - trainingName: 'Signal to restart({3})', - trainingRemark: 'Signal to restart', + trainingName: 'Signal reopen({3})', + trainingRemark: 'Signal reopen', trainingType: '02', productTypes: ['01,02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '304', tip: 'Right mouse button menu selection [signal reopen]' }, - { deviceType: '04', orderNum: 2, operateCode: '304', tip: 'Click the [ok] button with the left mouse button' }, - { deviceType: '04', orderNum: 3, operateCode: '3041', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '304', tip: 'Right click to select [Signal reopen]' }, + { deviceType: '04', orderNum: 2, operateCode: '304', tip: 'Left click [ok]' }, + { deviceType: '04', orderNum: 3, operateCode: '3041', tip: 'Left click [ok]' } ] }, { @@ -2449,16 +2669,16 @@ export const OperationList = { minDuration: 8, operateType: '0207', skinCode: '05', - trainingName: 'Guide the road handling({3})', - trainingRemark: 'Incoming road handling signal guidance', + trainingName: 'Guide route handling({3})', + trainingRemark: 'Guide route handling', trainingType: '02', productTypes: ['01'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '308', tip: 'Right mouse button menu [Guide the road handling]' }, - { deviceType: '04', orderNum: 2, operateCode: '3081', tip: 'Click the [down] button with the left mouse button' }, - { deviceType: '04', orderNum: 3, operateCode: '3083', tip: 'Click the [confirm 1] button with the left mouse button' }, - { deviceType: '04', orderNum: 4, operateCode: '3084', tip: 'Click the [confirm 2] button with the left mouse button' }, - { deviceType: '04', orderNum: 5, operateCode: '001', tip: 'Click the [close] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '308', tip: 'Right click to select [Guide route handling]' }, + { deviceType: '04', orderNum: 2, operateCode: '3081', tip: 'Left click [Execute]' }, + { deviceType: '04', orderNum: 3, operateCode: '3083', tip: 'Left click [ok1]' }, + { deviceType: '04', orderNum: 4, operateCode: '3084', tip: 'Left click [ok2]' }, + { deviceType: '04', orderNum: 5, operateCode: '001', tip: 'Left click [close]' } ] }, { @@ -2466,14 +2686,14 @@ export const OperationList = { minDuration: 8, operateType: '0208', skinCode: '05', - trainingName: 'Since the lined({5})', - trainingRemark: 'Automatic alignment access open', + trainingName: 'Start automatic routing({5})', + trainingRemark: 'Start automatic routing', trainingType: '02', productTypes: ['02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '315', tip: 'Right mouse button menu [Since the lined]' }, - { deviceType: '04', orderNum: 2, operateCode: '3151', tip: 'The left mouse button selects the control state as "artificial" path', val: '{6}' }, - { deviceType: '04', orderNum: 3, operateCode: '315', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '315', tip: 'Right click to select [Start automatic routing]' }, + { deviceType: '04', orderNum: 2, operateCode: '3151', tip: 'Left click to select the route based on the manual control state', val: '{6}' }, + { deviceType: '04', orderNum: 3, operateCode: '315', tip: 'Left click [ok] ' } ] }, { @@ -2481,14 +2701,14 @@ export const OperationList = { minDuration: 8, operateType: '0209', skinCode: '05', - trainingName: 'Since the row off({5})', - trainingRemark: 'Automatic alignment approach closed', + trainingName: 'Close automatic routing({5})', + trainingRemark: 'Close automatic routing', trainingType: '02', productTypes: ['02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '314', tip: 'Right mouse button menu [Since the row off]' }, - { deviceType: '04', orderNum: 2, operateCode: '3141', tip: 'The left mouse button selects the first approach', val: '{6}' }, - { deviceType: '04', orderNum: 3, operateCode: '314', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '314', tip: 'Right click to select [Close automatic routing]' }, + { deviceType: '04', orderNum: 2, operateCode: '3141', tip: 'Left click to select the first route', val: '{6}' }, + { deviceType: '04', orderNum: 3, operateCode: '314', tip: 'Left click [ok]' } ] }, { @@ -2496,13 +2716,13 @@ export const OperationList = { minDuration: 8, operateType: '0210', skinCode: '05', - trainingName: 'Query the incoming control status({5})', - trainingRemark: 'Query the incoming control status', + trainingName: 'Route control status query({5})', + trainingRemark: 'Query the route control status ', trainingType: '02', productTypes: ['02'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '316', tip: 'Right mouse button menu [Query the incoming control status]' }, - { deviceType: '04', orderNum: 2, operateCode: '316', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '316', tip: 'Right click to select [Route control status query]' }, + { deviceType: '04', orderNum: 2, operateCode: '316', tip: 'Left click [ok] ' } ] }, { @@ -2510,13 +2730,13 @@ export const OperationList = { minDuration: 8, operateType: '0211', skinCode: '05', - trainingName: 'Set interlock automatic access({5})', - trainingRemark: 'Set interlock automatic access', + trainingName: 'Set interlock automatic route({5})', + trainingRemark: 'Set interlock automatic route', trainingType: '02', productTypes: ['01'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '309', tip: 'Select from the right mouse button menu [set the automatic interlocking approach]' }, - { deviceType: '04', orderNum: 2, operateCode: '309', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '309', tip: 'Right click to select [Set interlock automatic route]' }, + { deviceType: '04', orderNum: 2, operateCode: '309', tip: 'Left click [ok]' } ] }, { @@ -2524,13 +2744,13 @@ export const OperationList = { minDuration: 8, operateType: '0212', skinCode: '05', - trainingName: 'Cancel the interlock automatic access({5})', - trainingRemark: 'Cancel the interlock automatic access', + trainingName: 'Cancel interlock automatic route({5})', + trainingRemark: 'Cancel interlock automatic route', trainingType: '02', productTypes: ['01'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '310', tip: 'Select from the right mouse button menu [cancel interlocking automatic access]' }, - { deviceType: '04', orderNum: 2, operateCode: '310', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '310', tip: 'Right click to select [Cancel interlock automatic route]' }, + { deviceType: '04', orderNum: 2, operateCode: '310', tip: 'Left click [ok]' } ] }, { @@ -2538,13 +2758,13 @@ export const OperationList = { minDuration: 8, operateType: '0213', skinCode: '05', - trainingName: 'Set the interlock to trigger automatically({5})', - trainingRemark: 'Set the interlock to trigger automatically', + trainingName: 'Set interlock to trigger automatically({5})', + trainingRemark: 'Set interlock to trigger automatically', trainingType: '02', productTypes: ['01'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '311', tip: 'Select from the menu of right mouse button [set automatic interlocking trigger]' }, - { deviceType: '04', orderNum: 2, operateCode: '311', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '311', tip: 'Right click to select [Set interlock to trigger automatically]' }, + { deviceType: '04', orderNum: 2, operateCode: '311', tip: 'Left click [ok]' } ] }, { @@ -2552,13 +2772,13 @@ export const OperationList = { minDuration: 8, operateType: '0214', skinCode: '05', - trainingName: 'Cancel interlock automatic trigger({5})', - trainingRemark: 'Cancel interlock automatic trigger', + trainingName: "Cancel interlock's automatica triggering({5})", + trainingRemark: "Cancel interlock's automatica triggering", trainingType: '02', productTypes: ['01'], stepVOList: [ - { deviceType: '04', orderNum: 1, operateCode: '312', tip: 'Select from the right mouse button menu [cancel interlock automatic trigger]' }, - { deviceType: '04', orderNum: 2, operateCode: '312', tip: 'Click the [ok] button with the left mouse button' } + { deviceType: '04', orderNum: 1, operateCode: '312', tip: "Right click to select[Cancel interlock's automatica triggering]" }, + { deviceType: '04', orderNum: 2, operateCode: '312', tip: 'Left click [ok]' } ] } ] diff --git a/src/scripts/plugin/converter/SectionOperationConverter.js b/src/scripts/plugin/converter/SectionOperationConverter.js index afe0f63ba..7c1f8bcbd 100644 --- a/src/scripts/plugin/converter/SectionOperationConverter.js +++ b/src/scripts/plugin/converter/SectionOperationConverter.js @@ -407,7 +407,7 @@ function handleButtonFault(operates) { return { type: operate.type, code: operate.code, - over: true, + // over: true, operation: SectionOperation.fault.event }; } diff --git a/src/scripts/plugin/converter/SignalRouteOperationConverter.js b/src/scripts/plugin/converter/SignalRouteOperationConverter.js index 4c29b472a..33e85c4e9 100644 --- a/src/scripts/plugin/converter/SignalRouteOperationConverter.js +++ b/src/scripts/plugin/converter/SignalRouteOperationConverter.js @@ -105,22 +105,19 @@ export default { function handleButtonArrangementRoute(operates) { if (operates.length === 2) { const operate = operates[1]; - if (operate.type === SignalType && operate.code && - operate.model && operate.model._viewVal) { + if (operate.type == SignalType && operate.code) { return { type: operate.type, code: operate.code, - operation: SignalOperation.arrangementRoute.event.query, - val: operate.model._viewVal + operation: SignalOperation.arrangementRoute.event.query + // val: operate.model._viewVal }; } return { error: true }; } else if (operates.length >= 3) { - const operateBeg = operates[1]; - const operateEnd = operates[operates.length - 1]; - if (operateEnd.type === SignalType && operateEnd.code && - operateEnd.model && operateBeg.val === operateEnd.model._viewVal && - operateEnd.tempData && operateEnd.tempData.length) { + const operateBeg = operates[1]; // 起始信号灯 + const operateEnd = operates[operates.length - 1]; // 终端信号灯 + if (operateEnd.type == SignalType && operateEnd.code && operateEnd.tempData && operateEnd.tempData.length) { for (let i = 0; i < operateEnd.tempData.length; i++) { const elem = operateEnd.tempData[i]; if (elem.startSignalCode === operateBeg.code && elem.endSignalCode == operateEnd.code) { @@ -128,8 +125,8 @@ function handleButtonArrangementRoute(operates) { type: operateEnd.type, code: operateEnd.code, over: true, - operation: SignalOperation.arrangementRoute.event.confirm, - val: elem.code + operation: SignalOperation.arrangementRoute.event.confirm + // val: elem.code }; } } @@ -139,6 +136,38 @@ function handleButtonArrangementRoute(operates) { return null; } +/** + * 处理右键菜单 排列进路 操作 + * @param {*} operates + */ +function handleMenuArrangementRoute(operates) { + if (operates.length == 1) { + const operate = operates[0]; + if (operate.type === SignalType && operate.code) { + return { + type: operate.type, + code: operate.code, + operation: SignalOperation.arrangementRoute.event.query + }; + } + return { error: true }; + } else if (operates.length >= 3) { + const operate = operates[operates.length - 1]; + if (operate.type === SignalType && operates[0].code && (operates[operates.length - 2].val || operates[operates.length - 3].val)) { + return { + over: true, + type: operate.type, + code: operates[0].code, + operation: SignalOperation.arrangementRoute.event.confirm, + val: operates[operates.length - 2].val || operates[operates.length - 3].val + }; + } + return { error: true }; + } + + return null; +} + /** * 处理点击按钮 取消进路 操作 * @param {*} operates @@ -184,6 +213,7 @@ function handleButtonReopenSignal(operates) { * @param {*} operates */ function handleButtonHumanTrainRoute(operates) { + debugger; if (operates.length >= 2) { const operate = operates[operates.length - 1]; if (operate.type === SignalType && operate.code) { @@ -245,38 +275,6 @@ function handleMenuStoppage(operates) { return null; } -/** - * 处理右键菜单 排列进路 操作 - * @param {*} operates - */ -function handleMenuArrangementRoute(operates) { - if (operates.length == 1) { - const operate = operates[0]; - if (operate.type === SignalType && operate.code) { - return { - type: operate.type, - code: operate.code, - operation: SignalOperation.arrangementRoute.event.query - }; - } - return { error: true }; - } else if (operates.length >= 3) { - const operate = operates[operates.length - 1]; - if (operate.type === SignalType && operates[0].code && (operates[operates.length - 2].val || operates[operates.length - 3].val)) { - return { - over: true, - type: operate.type, - code: operates[0].code, - operation: SignalOperation.arrangementRoute.event.confirm, - val: operates[operates.length - 2].val || operates[operates.length - 3].val - }; - } - return { error: true }; - } - - return null; -} - /** * 处理右键菜单 取消进路 操作 * @param {*} operates @@ -661,17 +659,33 @@ function handleButtonSetAutoInterlock(operates) { * @param {*} operates */ function handleButtonGuideRoute(operates) { - if (operates.length >= 2) { + if (operates.length == 2) { const operate = operates[operates.length - 1]; if (operate.type === SignalType && operate.code) { return { type: operate.type, code: operate.code, - over: true, operation: SignalOperation.guide.event.confirm }; } return { error: true }; + } else if (operates.length >= 3) { + const operateBeg = operates[1]; + const operateEnd = operates[operates.length - 1]; + if (operateEnd.type === SignalType && operateEnd.code && operateEnd.tempData && operateEnd.tempData.length) { + for (let i = 0; i < operateEnd.tempData.length; i++) { + const elem = operateEnd.tempData[i]; + if (elem.startSignalCode === operateBeg.code && elem.endSignalCode == operateEnd.code) { + return { + type: operateEnd.type, + code: operateEnd.code, + over: true, + operation: SignalOperation.guide.event.confirm + }; + } + } + } + return { error: true }; } return null; } diff --git a/src/scripts/plugin/converter/TrainOperationConverter.js b/src/scripts/plugin/converter/TrainOperationConverter.js index 64dceefa8..f16069f7a 100644 --- a/src/scripts/plugin/converter/TrainOperationConverter.js +++ b/src/scripts/plugin/converter/TrainOperationConverter.js @@ -5,214 +5,224 @@ const TrainOperation = OperationEvent.Train; const TrainType = MapDeviceType.Train.type; export default { - test: function (operates) { - let operateType = getOperateTypeBy('Train', operates[0].operation); - if (operateType) { - return true; - } else { - return false; - } - }, - convert: function (operates) { - if (operates && operates.length) { - let operation = operates[0].operation; - switch (operation) { - case TrainOperation.cancelStoppage.menu.operation: return handleMenuCancelStopPage(operates); + test: function (operates) { + const operateType = getOperateTypeBy('Train', operates[0].operation); + if (operateType) { + return true; + } else { + return false; + } + }, + convert: function (operates) { + if (operates && operates.length) { + const operation = operates[0].operation; + switch (operation) { + case TrainOperation.cancelStoppage.menu.operation: return handleMenuCancelStopPage(operates); - case TrainOperation.stoppage.menu.operation: return handleMenuStoppage(operates); + case TrainOperation.stoppage.menu.operation: return handleMenuStoppage(operates); - case TrainOperation.addTrainId.menu.operation: return handleMenuAddTrainId(operates); + case TrainOperation.addTrainId.menu.operation: return handleMenuAddTrainId(operates); - case TrainOperation.editTrainId.menu.operation: return handleMenuEditTrainId(operates); + case TrainOperation.editTrainId.menu.operation: return handleMenuEditTrainId(operates); - case TrainOperation.delTrainId.menu.operation: return handleMenuDelTrainId(operates); + case TrainOperation.delTrainId.menu.operation: return handleMenuDelTrainId(operates); - case TrainOperation.moveTrainId.menu.operation: return handleMenuMoveTrainId(operates); + case TrainOperation.moveTrainId.menu.operation: return handleMenuMoveTrainId(operates); - case TrainOperation.switchTrainId.menu.operation: return handleMenuSwitchTrainId(operates); + case TrainOperation.switchTrainId.menu.operation: return handleMenuSwitchTrainId(operates); - case TrainOperation.editTrainNo.menu.operation: return handleMenuEditTrainNo(operates); + case TrainOperation.editTrainNo.menu.operation: return handleMenuEditTrainNo(operates); - case TrainOperation.limitSpeed.menu.operation: return handleMenuLimitSpeed(operates); + case TrainOperation.limitSpeed.menu.operation: return handleMenuLimitSpeed(operates); - case TrainOperation.setPlanTrainId.menu.operation: return handleMenuSetPlanTrainId(operates); + case TrainOperation.setPlanTrainId.menu.operation: return handleMenuSetPlanTrainId(operates); - case TrainOperation.addPlanTrainId.menu.operation: return handleMenuAddPlanTrainId(operates); + case TrainOperation.addPlanTrainId.menu.operation: return handleMenuAddPlanTrainId(operates); - case TrainOperation.moveEventlyTrainId.menu.operation: return handleMenuMoveEventlyTrainId(operates); + case TrainOperation.moveEventlyTrainId.menu.operation: return handleMenuMoveEventlyTrainId(operates); - case TrainOperation.deletePlanTrainId.menu.operation: return handleMenuDeletePlanTrainId(operates); + case TrainOperation.deletePlanTrainId.menu.operation: return handleMenuDeletePlanTrainId(operates); - } - } - } + } + } + } }; /** * 处理右键菜单 取消故障 操作 - * @param {*} operates + * @param {*} operates */ function handleMenuCancelStopPage(operates) { - if (operates.length >= 1) { - let operate = operates[0]; - if (operate.type === TrainType && operate.code) { - return { - type: operate.type, - code: operate.code, - over: true, - operation: TrainOperation.cancelStoppage.event - }; - } - return { error: true }; - } - return null; + if (operates.length >= 1) { + const operate = operates[0]; + if (operate.type === TrainType && operate.code) { + return { + type: operate.type, + code: operate.code, + over: true, + operation: TrainOperation.cancelStoppage.event + }; + } + return { error: true }; + } + return null; } /** * 处理右键菜单 设置故障 操作 - * @param {*} operates + * @param {*} operates */ function handleMenuStoppage(operates) { - if (operates.length >= 1) { - let operate = operates[0]; - if (operate.type === TrainType && operate.code) { - return { - type: operate.type, - code: operate.code, - over: true, - operation: TrainOperation.stoppage.event - }; - } - return { error: true }; - } - return null; + if (operates.length >= 1) { + const operate = operates[0]; + if (operate.type === TrainType && operate.code) { + return { + type: operate.type, + code: operate.code, + over: true, + operation: TrainOperation.stoppage.event + }; + } + return { error: true }; + } + return null; } - /** * 处理右键菜单 添加列车识别号 操作 - * @param {*} operates + * @param {*} operates */ function handleMenuAddTrainId(operates) { - if (operates.length >= 1) { - let operate = operates[operates.length - 1]; - if (operate.type === TrainType && operate.val) { - return { - type: operate.type, - code: operates[0].code, - over: true, - operation: TrainOperation.addTrainId.event, - val: operate.val, - }; - } - return { error: true }; - } - return null; + if (operates.length >= 1) { + const operate = operates[operates.length - 1]; + if (operate.type === TrainType && operate.val) { + return { + type: operate.type, + code: operates[0].code, + over: true, + operation: TrainOperation.addTrainId.event, + val: operate.val + }; + } + return { error: true }; + } + return null; } /** * 处理右键菜单 修改列车识别号 操作 - * @param {*} operates + * @param {*} operates */ function handleMenuEditTrainId(operates) { - if (operates.length >= 1) { - let operate = operates[operates.length - 1]; - if (operate.type === TrainType && operate.val) { - return { - type: operate.type, - code: operates[0].code, - over: true, - operation: TrainOperation.editTrainId.event, - val: operate.val - }; - } - return { error: true }; - } - return null; + if (operates.length == 2) { + const operate = operates[operates.length - 1]; + if (operate.type === TrainType && operate.val) { + return { + type: operate.type, + code: operates[0].code, + operation: TrainOperation.editTrainId.event.query, + val: operate.val + }; + } + return { error: true }; + } else if (operates.length > 2) { + const operate = operates[operates.length - 1]; + if (operate.type === TrainType && operate.val) { + return { + type: operate.type, + code: operates[0].code, + over: true, + operation: TrainOperation.editTrainId.event.confirm, + val: operate.val + }; + } + return { error: true }; + } + return null; } /** * 处理右键菜单 删除列车识别号 操作 - * @param {*} operates + * @param {*} operates */ function handleMenuDelTrainId(operates) { - if (operates.length >= 1) { - let operate = operates[operates.length - 1]; - if (operate.type === TrainType && operate.val) { - return { - type: operate.type, - code: operates[0].code, - over: true, - operation: TrainOperation.delTrainId.event, - val: operate.val - }; - } - return { error: true }; - } - return null; + if (operates.length >= 1) { + const operate = operates[operates.length - 1]; + if (operate.type === TrainType && operate.val) { + return { + type: operate.type, + code: operates[0].code, + over: true, + operation: TrainOperation.delTrainId.event, + val: operate.val + }; + } + return { error: true }; + } + return null; } /** * 处理右键菜单 移动列车识别号 操作 - * @param {*} operates + * @param {*} operates */ function handleMenuMoveTrainId(operates) { - if (operates.length >= 1) { - let operate = operates[operates.length - 1]; - if (operate.type === TrainType && operate.val) { - return { - type: operate.type, - code: operates[0].code, - over: true, - operation: TrainOperation.moveTrainId.event, - val: operate.val - }; - } - return { error: true }; - } - return null; + if (operates.length >= 1) { + const operate = operates[operates.length - 1]; + if (operate.type === TrainType && operate.val) { + return { + type: operate.type, + code: operates[0].code, + over: true, + operation: TrainOperation.moveTrainId.event, + val: operate.val + }; + } + return { error: true }; + } + return null; } /** * 处理右键菜单 交换列车识别号 操作 - * @param {*} operates + * @param {*} operates */ function handleMenuSwitchTrainId(operates) { - if (operates.length >= 1) { - let operate = operates[operates.length - 1]; - if (operate.type === TrainType && operate.val) { - return { - type: operate.type, - code: operates[0].code, - over: true, - operation: TrainOperation.switchTrainId.event, - val: operate.val - }; - } - return { error: true }; - } - return null; + if (operates.length >= 1) { + const operate = operates[operates.length - 1]; + if (operate.type === TrainType && operate.val) { + return { + type: operate.type, + code: operates[0].code, + over: true, + operation: TrainOperation.switchTrainId.event, + val: operate.val + }; + } + return { error: true }; + } + return null; } /** * 处理右键菜单 修改车组号 操作 - * @param {*} operates + * @param {*} operates */ function handleMenuEditTrainNo(operates) { - if (operates.length >= 1) { - let operate = operates[operates.length - 1]; - if (operate.type === TrainType && operate.val) { - return { - type: operate.type, - code: operate[0].code, - over: true, - operation: TrainOperation.editTrainNo.event, - val: operate.val - }; - } - return { error: true }; - } - return null; + if (operates.length >= 1) { + const operate = operates[operates.length - 1]; + if (operate.type === TrainType && operate.val) { + return { + type: operate.type, + code: operate[0].code, + over: true, + operation: TrainOperation.editTrainNo.event, + val: operate.val + }; + } + return { error: true }; + } + return null; } /** @@ -221,86 +231,85 @@ function handleMenuEditTrainNo(operates) { */ function handleMenuLimitSpeed(operates) { - if (operates.length > 0) { - let operate = operates[0]; - if (operate.type === TrainType && operate.code) { - return { - type: operate.type, - code: operate.code, - over: true, - operation: TrainOperation.limitSpeed.event, - }; - } - return { error: true }; - } - return null; + if (operates.length > 0) { + const operate = operates[0]; + if (operate.type === TrainType && operate.code) { + return { + type: operate.type, + code: operate.code, + over: true, + operation: TrainOperation.limitSpeed.event + }; + } + return { error: true }; + } + return null; } - /** * 处理右键菜单 设置计划车 * @param {*} operates */ function handleMenuSetPlanTrainId(operates) { - if (operates.length > 0) { - let operate = operates[0]; - if (operate.type === TrainType && operate.code) { - return { - type: operate.type, - code: operate.code, - over: true, - operation: TrainOperation.setPlanTrainId.event, - }; - } - return { error: true }; - } - return null; + if (operates.length > 0) { + const operate = operates[0]; + if (operate.type === TrainType && operate.code) { + return { + type: operate.type, + code: operate.code, + over: true, + operation: TrainOperation.setPlanTrainId.event + }; + } + return { error: true }; + } + return null; } function handleMenuAddPlanTrainId(operates) { - if (operates.length > 0) { - let operate = operates[0]; - if (operate.type === TrainType && operate.code) { - return { - type: operate.type, - code: operate.code, - over: true, - operation: TrainOperation.addPlanTrainId.event, - }; - } - return { error: true }; - } - return null; + if (operates.length > 0) { + const operate = operates[0]; + if (operate.type === TrainType && operate.code) { + return { + type: operate.type, + code: operate.code, + over: true, + operation: TrainOperation.addPlanTrainId.event + }; + } + return { error: true }; + } + return null; } function handleMenuMoveEventlyTrainId(operates) { - if (operates.length > 0) { - let operate = operates[0]; - if (operate.type === TrainType && operate.code) { - return { - type: operate.type, - code: operate.code, - over: true, - operation: TrainOperation.moveEventlyTrainId.event, - }; - } - return { error: true }; - } - return null; + if (operates.length > 0) { + const operate = operates[0]; + if (operate.type === TrainType && operate.code) { + return { + type: operate.type, + code: operate.code, + over: true, + operation: TrainOperation.moveEventlyTrainId.event + }; + } + return { error: true }; + } + return null; } function handleMenuDeletePlanTrainId(operates) { - if (operates.length > 0) { - let operate = operates[0]; - if (operate.type === TrainType && operate.code) { - return { - type: operate.type, - code: operate.code, - over: true, - operation: TrainOperation.deletePlanTrainId.event, - }; - } - return { error: true }; - } - return null; -} \ No newline at end of file + if (operates.length > 0) { + const operate = operates[0]; + if (operate.type === TrainType && operate.code) { + return { + type: operate.type, + code: operate.code, + over: true, + operation: TrainOperation.deletePlanTrainId.event + }; + } + return { error: true }; + } + return null; +} diff --git a/src/scripts/plugin/trainingOperateHandler.js b/src/scripts/plugin/trainingOperateHandler.js index fca6fbdbe..0283e06b5 100644 --- a/src/scripts/plugin/trainingOperateHandler.js +++ b/src/scripts/plugin/trainingOperateHandler.js @@ -14,6 +14,10 @@ OperateHandler.prototype = { /** 操作组 */ operates: [], + backStep: function(num) { + this.operates = this.operates.slice(0, num); + }, + /** 清空操作组 */ cleanOperates: function () { this.operates.splice(0, this.operates.length); @@ -29,7 +33,7 @@ OperateHandler.prototype = { if (order >= steps) { return valid; } - + // debugger; const standard = steps[order]; if (operate && standard && operate.code == standard.code && operate.type == standard.type && operate.operation == standard.operation && diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js index cd75fad78..9dac93ba1 100644 --- a/src/store/modules/permission.js +++ b/src/store/modules/permission.js @@ -1,6 +1,7 @@ -import { asyncRouter, constantRoutes, user, userLesson, userExam, userSimulation, userScreen, userPlan, superAdmin, admin } from '@/router'; +import { asyncRouter, constantRoutes, user, userLesson, userExam, userSimulation, userScreen, userPlan, superAdmin, admin, userDesign } from '@/router'; import { PermissionType } from '@/utils/PermissionType'; import { UrlConfig } from '@/router/index'; +import { getSessionStorage } from '@/utils/auth'; function setHonePagePath(route, roles) { if (roles && roles.length === 2 && roles.indexOf(user) >= 0 && (route.path === '/' || route.path === 'dashboard')) { @@ -27,7 +28,38 @@ function hasPermission(roles, route, parentsRoles) { setHonePagePath(route, roles); if (route.meta && route.meta.roles) { // 如果存在本级路由,则使用自己的roles过滤 - return roles.some(role => route.meta.roles.indexOf(role) >= 0); + // debugger; + // if (getSessionStorage('design')) { + // if (route.meta.roles.indexOf(userDesign)===-1) { + // route.hidden = true; + // } else { + // if ((route.meta.roles.indexOf(admin)>=0 && roles.indexOf(admin)>=0)) { + // route.hidden = false; + // } else if (route.meta.roles.indexOf(user)>=0 && roles.indexOf(user)>=0) { + // route.hidden = false; + // } else { + // route.hidden = true; + // } + // } + + // } else { + // if (route.meta.roles.indexOf(userDesign)>0) { + // route.hidden = true; + // } + // } + // return roles.some(role => route.meta.roles.indexOf(role) >= 0); + if (getSessionStorage('design')) { + roles= roles.filter(function (role) { + return route.meta.roles.indexOf(role) >= 0; + }); + const result=roles.every(role => route.meta.roles.indexOf(role) >= 0); + return result && ((roles.indexOf(admin)>=0 && route.meta.roles.indexOf(admin)>=0) || (roles.indexOf(user)>=0 && route.meta.roles.indexOf(user)>=0 )); + } else { + roles= roles.filter(function (role) { + return route.meta.roles.indexOf(role) >= 0; + }); + return roles.some(role => route.meta.roles.indexOf(role) >= 0) && route.meta.roles.indexOf(userDesign)<0; + } } else if (parentsRoles) { // 如果没有本级路由,有父级路由,则使用父级路由过滤 return roles.some(role => parentsRoles.indexOf(role) >= 0); @@ -93,12 +125,15 @@ const permission = { return new Promise(resolve => { const { roles } = convertRouterRoles(data); let accessedRouters; - if (roles.indexOf(superAdmin) >= 0) { - accessedRouters = asyncRouter; - } else { - accessedRouters = filterAsyncRouter(asyncRouter, roles); + if (roles.indexOf(superAdmin) >= 0 && roles.indexOf(admin) < 0) { + roles.push(admin); } - + // if (roles.indexOf(superAdmin) >= 0) { + // accessedRouters = asyncRouter; + // } else { + // eslint-disable-next-line prefer-const + accessedRouters = filterAsyncRouter(asyncRouter, roles); + // } commit('SET_ROUTERS', accessedRouters); resolve(); }); diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 3297633a9..dddc1bdf3 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,15 +1,17 @@ -import { setSessionStorage } from '@/utils/auth'; +import { setSessionStorage, removeSessionStorage } from '@/utils/auth'; import { login, logout, getInfo } from '@/api/login'; -import { getToken, setToken, removeToken, removeScreenToken, setScreenToken, getScreenToken, setPlanToken, getPlanToken, removePlanToken, handleToken, handleRemoveToken } from '@/utils/auth'; +import { getToken, setToken, removeToken, removeScreenToken, setScreenToken, getScreenToken, setPlanToken, getDesignToken, setDesignToken, getPlanToken, removeDesignToken, removePlanToken, handleToken, handleRemoveToken } from '@/utils/auth'; import { getUserConfigInfo } from '@/api/management/user'; import { LoginParams } from '@/utils/login'; import { creatSubscribe, perpetualTopic } from '@/utils/stomp'; +import Cookies from 'js-cookie'; const user = { state: { token: getToken(), tokenScreen: getScreenToken(), tokenPlan: getPlanToken(), + tokenDesign: getDesignToken(), name: '', nickname: '', nationcode: '', @@ -17,7 +19,8 @@ const user = { id: '', admin: false, wxId: '', - wxUnionId: '' + wxUnionId: '', + account: '' }, mutations: { @@ -27,6 +30,9 @@ const user = { SET_TOKENSCREEN: (state, token) => { state.tokenScreen = token; }, + SET_TOKENDESIGN: (state, token) => { + state.tokenDesign = token; + }, SET_TOKENPLAN: (state, token) => { state.tokenPlan = token; }, @@ -50,6 +56,9 @@ const user = { }, SET_WXUNIONID: (state, wxUnionId) => { state.wxUnionId = wxUnionId; + }, + SET_ACCOUNT: (state, account) => { + state.account = account; } }, @@ -69,12 +78,22 @@ const user = { const header = { group: '', 'X-Token': getScreenToken() }; creatSubscribe(perpetualTopic, header); }; - } else if (userInfo.type == 'plan') { - params = Object.assign({ account: username, password }, LoginParams.LianJiHua); + } + // else if (userInfo.type == 'plan') { + // params = Object.assign({ account: username, password }, LoginParams.LianJiHua); + // execFc = (token) => { + // setPlanToken(token); + // commit('SET_TOKENPLAN', token); + // const header = { group: '', 'X-Token': getPlanToken() }; + // creatSubscribe(perpetualTopic, header); + // }; + // } + else if (userInfo.type == 'design') { + params = Object.assign({ account: username, password }, LoginParams.Design); execFc = (token) => { - setPlanToken(token); - commit('SET_TOKENPLAN', token); - const header = { group: '', 'X-Token': getPlanToken() }; + setDesignToken(token); + commit('SET_TOKENDESIGN', token); + const header = { group: '', 'X-Token': getDesignToken() }; creatSubscribe(perpetualTopic, header); }; } else { @@ -82,6 +101,7 @@ const user = { execFc = (token) => { setToken(token); commit('SET_TOKEN', token); + setSessionStorage('project', userInfo.project||''); const header = { group: '', 'X-Token': getToken() }; creatSubscribe(perpetualTopic, header); }; @@ -89,6 +109,12 @@ const user = { // 登录系统 login(params).then(resp => { + if (userInfo.type == 'design') { + removeSessionStorage('design'); + setSessionStorage('design', true); + } else { + removeSessionStorage('design'); + } execFc(resp.data); resolve(); }).catch(error => { reject(error); }); @@ -151,10 +177,15 @@ const user = { if (clientId == LoginParams.DaPing.clientId) { commit('SET_TOKENSCREEN', ''); removeScreenToken(); - } else if (clientId == LoginParams.LianJiHua.clientId) { - commit('SET_TOKENPLAN', ''); - removePlanToken(); - } else { + } else if (clientId == LoginParams.Design.clientId) { + commit('SET_TOKENDESIGN', ''); + removeDesignToken(); + } + // else if (clientId == LoginParams.LianJiHua.clientId) { + // commit('SET_TOKENPLAN', ''); + // removePlanToken(); + // } + else { commit('SET_TOKEN', ''); removeToken(); } @@ -170,12 +201,21 @@ const user = { commit('SET_TOKEN', ''); commit('SET_ROLES', []); commit('SET_ID', ''); + removeSessionStorage('design'); + Cookies.remove('UserDesignName'); + Cookies.remove('UserDesignToken'); + Cookies.remove('UserName'); + Cookies.remove('UserToken'); handleRemoveToken(); resolve(); }).catch(error => { reject(error); }); }); + }, + + SetAccount({ commit }, account) { + commit('SET_ACCOUNT', account); } } }; diff --git a/src/utils/auth.js b/src/utils/auth.js index 0e120f462..f05e40be3 100644 --- a/src/utils/auth.js +++ b/src/utils/auth.js @@ -7,6 +7,8 @@ const TokenScreenKey = 'Screen-Token'; const TokenPlanKey = 'Plan-Token'; +const TokenDesignKey='Design-Token'; + // 设置教学,实训,仿真系统token export function getToken() { return SessionStorage.getItem(TokenKey); @@ -28,6 +30,17 @@ export function removeScreenToken() { return SessionStorage.removeItem(TokenScreenKey); } +// 设置城市轨道交通设计平台token +export function getDesignToken() { + return SessionStorage.getItem(TokenDesignKey); +} +export function setDesignToken(token) { + return SessionStorage.setItem(TokenDesignKey, token); +} +export function removeDesignToken() { + return SessionStorage.removeItem(TokenDesignKey); +} + // 设置琏计划token export function getPlanToken() { return SessionStorage.getItem(TokenPlanKey); @@ -54,8 +67,10 @@ export function handleToken() { const path = window.location.href; if (path.includes('/dp/') || path.includes('/display/dp')) { return getScreenToken(); + } else if (path.includes('/design') || path.includes('/scriptDisplay') || path.includes('/publish') || path.includes('/orderauthor') || path.includes('/system') || path.includes('/display/manage') || path.includes('/apply/')) { + return getDesignToken(); } else if (path.includes('/plan') || path.includes('/display/plan')) { - return getPlanToken(); + return getDesignToken() || getToken(); } else { return getToken(); } @@ -66,8 +81,8 @@ export function handleRemoveToken() { const path = window.location.href; if (path.includes('/dp/') || path.includes('/display/dp')) { return removeScreenToken(); - } else if (path.includes('/plan') || path.includes('/display/plan')) { - return removePlanToken(); + } else if (path.includes('/design') || path.includes('/scriptDisplay') || path.includes('/plan') || path.includes('/publish') || path.includes('/orderauthor') || path.includes('/system') || path.includes('/display/plan') || path.includes('/display/manage') || path.includes('/apply/')) { + return removeDesignToken(); } else { return removeToken(); } @@ -79,8 +94,12 @@ export function gainClientId() { let clientId = null; if (path.includes('/dp/') || path.includes('/display/dp')) { clientId = LoginParams.DaPing.clientId; - } else if (path.includes('/plan') || path.includes('/display/plan')) { - clientId = LoginParams.LianJiHua.clientId; + } + // else if (path.includes('/plan') || path.includes('/display/plan')) { + // clientId = LoginParams.LianJiHua.clientId; + // } + else if (path.includes('/design') || path.includes('/scriptDisplay') || path.includes('/plan') || path.includes('/publish') || path.includes('/orderauthor') || path.includes('/system') || path.includes('/display/plan') || path.includes('/display/manage') || path.includes('/apply/')) { + clientId = LoginParams.Design.clientId; } return clientId; diff --git a/src/utils/login.js b/src/utils/login.js index cbb2a2270..7697c4cfa 100644 --- a/src/utils/login.js +++ b/src/utils/login.js @@ -4,5 +4,6 @@ export const LoginParams = { LianKeTang: { clientId: '1', secret: 'joylink' }, // "琏课堂" DaPing: { clientId: '2', secret: 'bigscreen' }, // "大屏系统" LianJiHua: { clientId: '3', secret: 'linkplan' }, // "琏计划" - Assistant: { clientId: '4', secret: 'linkassistant' } // "琏课堂助手" + Assistant: { clientId: '4', secret: 'linkassistant' }, // "琏课堂助手" + Design: { clientId: '6', secret: 'design' } // "城市轨道交通设计平台" }; diff --git a/src/utils/sock.js b/src/utils/sock.js index f7654975c..4c3e465b5 100644 --- a/src/utils/sock.js +++ b/src/utils/sock.js @@ -214,6 +214,9 @@ StompClient.prototype = { // 发送消息 send(url, msg) { if (this.status) { + if(msg) { + msg = JSON.stringify(msg); + } try { this.clientIns.send(url, {}, msg); } catch (err) { diff --git a/src/views/approval/lesson/detail.vue b/src/views/approval/lesson/detail.vue new file mode 100644 index 000000000..f17d8e1b8 --- /dev/null +++ b/src/views/approval/lesson/detail.vue @@ -0,0 +1,101 @@ + + + diff --git a/src/views/approval/lesson/index.vue b/src/views/approval/lesson/index.vue new file mode 100644 index 000000000..3739350cd --- /dev/null +++ b/src/views/approval/lesson/index.vue @@ -0,0 +1,214 @@ + + + diff --git a/src/views/approval/runPlan/index.vue b/src/views/approval/runPlan/index.vue new file mode 100644 index 000000000..9e4bfde48 --- /dev/null +++ b/src/views/approval/runPlan/index.vue @@ -0,0 +1,180 @@ + + diff --git a/src/views/approval/runPlan/operate.vue b/src/views/approval/runPlan/operate.vue new file mode 100644 index 000000000..f2bcb9c37 --- /dev/null +++ b/src/views/approval/runPlan/operate.vue @@ -0,0 +1,98 @@ + + + diff --git a/src/views/approval/script/index.vue b/src/views/approval/script/index.vue new file mode 100644 index 000000000..b4920e46c --- /dev/null +++ b/src/views/approval/script/index.vue @@ -0,0 +1,173 @@ + + \ No newline at end of file diff --git a/src/views/approval/script/operate.vue b/src/views/approval/script/operate.vue new file mode 100644 index 000000000..2d777ef0e --- /dev/null +++ b/src/views/approval/script/operate.vue @@ -0,0 +1,71 @@ + + + diff --git a/src/views/components/drapUp/index.vue b/src/views/components/drapUp/index.vue new file mode 100644 index 000000000..7fb219cc9 --- /dev/null +++ b/src/views/components/drapUp/index.vue @@ -0,0 +1,104 @@ + + + + diff --git a/src/views/components/filterCity/index.vue b/src/views/components/filterCity/index.vue index 7272b10f5..c9c9b7162 100644 --- a/src/views/components/filterCity/index.vue +++ b/src/views/components/filterCity/index.vue @@ -1,16 +1,6 @@ @@ -153,8 +154,8 @@ export default { this.loading = true; getPublishLessonDetail({ id: this.examDetails.lessonId }).then((res) => { this.$router.push({ - path: `${UrlConfig.exam.pay}/${this.examDetails.lessonId}`, - query: { permissionType: PermissionType.EXAM, prdCode: res.data.prdCode, mapId: res.data.mapId } + path: `${UrlConfig.trainingPlatform.pay}/${this.examDetails.lessonId}`, + query: { permissionType: PermissionType.EXAM, lessonId: this.examDetails.lessonId, prdCode: res.data.prdCode, mapId: res.data.mapId } }); }).catch(() => { this.$messageBox(this.$t('error.obtainCourseDetailsFailed')); @@ -199,7 +200,9 @@ export default { group: resp.data, trainingId: this.examList[0].trainingId, userExamId: this.userExam.id, - examQuestionId: this.examList[0].id + examQuestionId: this.examList[0].id, + subSystem: this.$route.query.subSystem, + examId: this.$route.params.examId }; this.$router.push({ path: `${UrlConfig.display}/exam`, query: query }); launchFullscreen(); @@ -210,6 +213,9 @@ export default { } else { this.loading = false; } + }, + back() { + this.$router.push({ path: `${UrlConfig.trainingPlatform.course}/${this.$route.query.subSystem}`, query: {lessonId: this.examDetails.lessonId}}); } } }; diff --git a/src/views/exam/detail/questionDetail.vue b/src/views/exam/detail/questionDetail.vue index 26a3a9931..812480d65 100644 --- a/src/views/exam/detail/questionDetail.vue +++ b/src/views/exam/detail/questionDetail.vue @@ -105,7 +105,7 @@ export default { }).then(() => { // 放弃试卷接口 setExamGive(this.$route.query.userExamId).then(() => { - this.$router.push({ path: '/exam/home' }); + this.$router.back(); }); }).catch(() => { this.loading = false; diff --git a/src/views/exam/index.vue b/src/views/exam/index.vue index ddbd2d71c..8db0c5593 100644 --- a/src/views/exam/index.vue +++ b/src/views/exam/index.vue @@ -1,70 +1,69 @@ - diff --git a/src/views/exam/list/examList.vue b/src/views/exam/list/examList.vue deleted file mode 100644 index 832d6bee8..000000000 --- a/src/views/exam/list/examList.vue +++ /dev/null @@ -1,165 +0,0 @@ - - - - diff --git a/src/views/exam/result.vue b/src/views/exam/result.vue index 76da7ff3a..f277c59db 100644 --- a/src/views/exam/result.vue +++ b/src/views/exam/result.vue @@ -118,7 +118,7 @@ export default { }, back() { const examId = this.resultModel.examId; - this.$router.push(`${UrlConfig.exam.detail}/${examId}`); + this.$router.push({path: `${UrlConfig.trainingPlatform.examDetail}/${examId}`, query: { subSystem: this.$route.query.subSystem }}); } } }; diff --git a/src/views/jlmap3d/drive/jl3ddrive.vue b/src/views/jlmap3d/drive/jl3ddrive.vue index 38cd4ccb8..0f22e8fd8 100644 --- a/src/views/jlmap3d/drive/jl3ddrive.vue +++ b/src/views/jlmap3d/drive/jl3ddrive.vue @@ -172,7 +172,7 @@ export default { init: function (skinCode) { const mapdata = this.$store.getters['map/map']; const dom = document.getElementById('app'); - this.jlmap3d = new JLmapDriving(dom, mapdata, skinCode); + this.jlmap3d = new JLmapDriving(dom, mapdata, skinCode,this.$store); this.jlmap3d.eventon(); this.cctvshow = false; @@ -285,7 +285,9 @@ export default { .trainstatus{ left:0; top:0; - width:350px; + width:fit-content; + width:-webkit-fit-content; + width:-moz-fit-content; height:30px; background: #000000; position:absolute; diff --git a/src/views/jlmap3d/simulation/jl3dsimulation.vue b/src/views/jlmap3d/simulation/jl3dsimulation.vue index 7d3014b41..53c415ef6 100644 --- a/src/views/jlmap3d/simulation/jl3dsimulation.vue +++ b/src/views/jlmap3d/simulation/jl3dsimulation.vue @@ -11,7 +11,7 @@ {{$t('jlmap3d.turnoutCheck')}} {{$t('global.back')}} - +
@@ -117,10 +117,9 @@ export default { } }, init: function (skinCode) { - console.log('three'); const mapdata = this.$store.getters['map/map']; const dom = document.getElementById('app'); - this.jlmap3d = new JLmap3d(dom, mapdata, skinCode); + this.jlmap3d = new JLmap3d(dom, mapdata, skinCode,this.$store); this.jlmap3d.eventon(); }, raystand() { diff --git a/src/views/jointTraining/index.vue b/src/views/jointTraining/index.vue index 40e914356..81fee4a96 100644 --- a/src/views/jointTraining/index.vue +++ b/src/views/jointTraining/index.vue @@ -121,7 +121,7 @@ export default { await this.$store.dispatch('training/over'); await runDiagramOver(this.group); await deljointTrainRoom(this.group); - await this.$router.push({ path: `/demonstration/detail/${this.mapId}` }); + await this.$router.push({ path: `/trainingPlatform/detail/${this.subSystem}`, query: {mapId: this.mapId} }); } }); }, @@ -149,6 +149,7 @@ export default { this.group = this.$route.query.group; this.mapId = this.$route.query.mapId; this.skinCode = this.$route.query.skinCode; + this.subSystem = this.$route.query.subSystem; Message.closeAll(); }, async mounted() { diff --git a/src/views/jointTraining/menuDemon.vue b/src/views/jointTraining/menuDemon.vue index 127776a62..a0847e377 100644 --- a/src/views/jointTraining/menuDemon.vue +++ b/src/views/jointTraining/menuDemon.vue @@ -298,7 +298,7 @@ export default { back() { this.$store.dispatch('training/over').then(() => { putJointTrainingSimulationUser(this.group).then(() => { - this.$router.push({ path: `/trainroom`, query: { group: this.group } }); + this.$router.push({ path: `/trainroom`, query: { skinCode: this.$route.query.skinCode, group: this.group, subSystem: this.$route.query.subSystem } }); exitFullscreen(); }); }); diff --git a/src/views/lesson/details.vue b/src/views/lesson/details.vue new file mode 100644 index 000000000..60fc6aea4 --- /dev/null +++ b/src/views/lesson/details.vue @@ -0,0 +1,112 @@ + + + + diff --git a/src/views/lesson/home.vue b/src/views/lesson/home.vue new file mode 100644 index 000000000..9a9e49b91 --- /dev/null +++ b/src/views/lesson/home.vue @@ -0,0 +1,360 @@ + + + + diff --git a/src/views/lesson/lessoncategory/category/tree.vue b/src/views/lesson/lessoncategory/category/tree.vue index 2540127b5..5f2438e14 100644 --- a/src/views/lesson/lessoncategory/category/tree.vue +++ b/src/views/lesson/lessoncategory/category/tree.vue @@ -1,168 +1,186 @@ diff --git a/src/views/lesson/lessoncategory/index.vue b/src/views/lesson/lessoncategory/index.vue index ea604fb71..5c6a63fda 100644 --- a/src/views/lesson/lessoncategory/index.vue +++ b/src/views/lesson/lessoncategory/index.vue @@ -1,18 +1,7 @@ diff --git a/src/views/lesson/taskmanage/list.vue b/src/views/lesson/taskmanage/list.vue index 296f05a49..f06b0f57c 100644 --- a/src/views/lesson/taskmanage/list.vue +++ b/src/views/lesson/taskmanage/list.vue @@ -3,6 +3,11 @@ +
+ + {{ $t('global.back') }} + +
@@ -42,7 +47,7 @@ } }, queryList: { - query: getTaskList, + query: this.queryFunction, selectCheckShow: false, indexShow: true, columns: [ @@ -145,7 +150,7 @@ }) }, taskCancel(index, node) { - this.$confirm( this.$t('tip.startOperationHint'), this.$t('global.tips'), { + this.$confirm( this.$t('tip.cancelsTaskHint'), this.$t('global.tips'), { confirmButtonText: this.$t('global.confirm'), cancelButtonText: this.$t('global.cancel'), type: 'warning' @@ -165,6 +170,20 @@ createTask() { this.$refs.CreateTask.doShow(); }, + turnback() { + this.$router.go(-1) + }, + queryFunction(params) { + params['mapId'] = this.$route.query.mapId; + return getTaskList(params) + } } } + diff --git a/src/views/lesson/trainingRule/addBatch.vue b/src/views/lesson/trainingRule/addBatch.vue index a80e01584..7021d52f8 100644 --- a/src/views/lesson/trainingRule/addBatch.vue +++ b/src/views/lesson/trainingRule/addBatch.vue @@ -20,7 +20,7 @@ export default { loading: false, dialogVisible: false, formModel: { - skinCode: '' + skinCode: this.$route.query.skinCode }, skinCodeList: [], isShow: false @@ -32,7 +32,7 @@ export default { const form = { labelWidth: '120px', items: [ - { prop: 'skinCode', label: this.$t('lesson.skinType'), type: 'select', required: true, options: this.skinCodeList } + { prop: 'skinCode', label: this.$t('lesson.skinType'), type: 'select', required: true, options: this.skinCodeList, disabled: true } ] }; return form; @@ -104,7 +104,7 @@ export default { }, handleClose() { this.formModel = { - skinCode: '' + skinCode: this.$route.query.skinCode }; this.$refs.dataform.resetForm(); this.isShow = false; diff --git a/src/views/lesson/trainingRule/addEdit.vue b/src/views/lesson/trainingRule/addEdit.vue index 8df4c5b9c..a108b400c 100644 --- a/src/views/lesson/trainingRule/addEdit.vue +++ b/src/views/lesson/trainingRule/addEdit.vue @@ -46,7 +46,7 @@ export default { const form = { labelWidth: '120px', items: [ - { prop: 'skinCode', label: this.$t('lesson.skinType'), type: 'select', required: true, options: this.skinCodeList, disabled: !isAdd }, + { prop: 'skinCode', label: this.$t('lesson.skinType'), type: 'select', required: true, options: this.skinCodeList, disabled: true }, { prop: 'trainingType', label: this.$t('lesson.trainingType'), type: 'select', required: true, options: this.trainingTypeList, disabled: !isAdd, change: true, onChange: this.changeList }, { prop: 'operateType', label: this.$t('lesson.operationType'), type: 'select', required: true, options: this.trainingOperateTypeMap[this.formModel.trainingType], disabled: !isAdd }, { label: '', type: 'button', options: this.placeholderList, style: 'margin-bottom: 0; margin-top: -10px;', typeBtn: 'info', click: this.addTrainName }, @@ -197,7 +197,11 @@ export default { maxDuration: data.maxDuration, trainingRemark: this.repliceName(data.trainingRemark, this.placeholderList) }; - } + }else { + this.formModel = { + skinCode: this.$route.query.skinCode + } + } }, repliceName(fieldValue, enumList) { if (enumList && enumList.length > 0) { diff --git a/src/views/lesson/trainingRule/list.vue b/src/views/lesson/trainingRule/list.vue index fb85b6234..6117bfc5e 100644 --- a/src/views/lesson/trainingRule/list.vue +++ b/src/views/lesson/trainingRule/list.vue @@ -5,6 +5,11 @@ +
+ + {{ $t('global.back') }} + +
@@ -14,13 +19,14 @@ import { getSkinCodeList } from '@/api/management/mapskin'; import TrainingEdit from './addEdit'; import AddBatch from './addBatch'; import SaveAs from './saveAs.vue'; +import { UrlConfig } from '@/router/index'; export default { name: 'TrainingRule', components: { TrainingEdit, AddBatch, - SaveAs + SaveAs }, data() { return { @@ -37,13 +43,6 @@ export default { labelWidth: '140px', reset: true, queryObject: { - skinCode: { - type: 'select', - label: this.$t('lesson.skinType'), - config: { - data: [] - } - }, trainingType: { type: 'select', label: this.$t('lesson.trainingType'), @@ -128,8 +127,8 @@ export default { ], actions: [ { text: this.$t('global.add'), handler: this.handleAdd }, - { text: this.$t('lesson.generation'), handler: this.handleBatchAdd }, - { text: this.$t('lesson.saveAs'), handler: this.handleSaveAs } + { text: this.$t('lesson.generation'), handler: this.handleBatchAdd }, + { text: this.$t('lesson.saveAs'), handler: this.handleSaveAs } ] }, currentModel: {} @@ -179,9 +178,6 @@ export default { this.skinCodeList = []; getSkinCodeList().then(response => { this.skinCodeList = response.data; - response.data.forEach(elem => { - this.queryForm.queryObject.skinCode.config.data.push({ value: elem.code, label: elem.name }); - }); }); // 获取实训类型 @@ -218,12 +214,13 @@ export default { } }, async getList(params) { + params['mapId'] = this.$route.query.mapId; const res = await getTrainingRulesList(params); this.totals = res.data.total; return res; }, handleViewDetail(index, row) { - this.$router.push({ path: `/lesson/manage/trainingRule/detail`, query: { id: row.id, type: row.trainingType, skinCode: row.skinCode } }); + this.$router.push({ path: `${UrlConfig.design.trainingRuleDetail}`, query: { id: row.id, type: row.trainingType, skinCode: row.skinCode } }); }, handleEdit(index, row) { @@ -238,11 +235,11 @@ export default { this.$refs.addBatch.show(this.totals); }, - handleSaveAs() { - this.$refs.saveAs.show(); - }, + handleSaveAs() { + this.$refs.saveAs.show(); + }, - handleDelete(index, row) { + handleDelete(index, row) { this.$confirm(this.$t('lesson.wellDelTrainingRule'), this.$t('global.tips'), { confirmButtonText: this.$t('global.confirm'), cancelButtonText: this.$t('global.cancel'), @@ -257,10 +254,19 @@ export default { }); }); }, - + turnback() { + this.$router.go(-1) + }, reloadTable() { this.queryList.reload(); } } }; + diff --git a/src/views/lesson/trainingmanage/draft.vue b/src/views/lesson/trainingmanage/draft.vue index eebe47552..a1ec701e8 100644 --- a/src/views/lesson/trainingmanage/draft.vue +++ b/src/views/lesson/trainingmanage/draft.vue @@ -1,8 +1,11 @@ + diff --git a/src/views/lesson/trainingrecord/category/draft.vue b/src/views/lesson/trainingrecord/category/draft.vue index 674684017..6d91e27b6 100644 --- a/src/views/lesson/trainingrecord/category/draft.vue +++ b/src/views/lesson/trainingrecord/category/draft.vue @@ -50,8 +50,8 @@ - {{$t('global.cancel')}} - {{$t('global.confirm')}} + {{ $t('global.cancel') }} + {{ $t('global.confirm') }} @@ -176,7 +176,7 @@ export default { } if (node && node.data) { switch (node.data.type) { - case 'trainingType': + case 'TrainingType': if (node.parent) { this.operateModel.type = node.data.id; this.operateModel.prdCode = node.parent.data.id; @@ -196,7 +196,7 @@ export default { this.operateModel.operateType = ''; this.operationList = this.trainingOperateTypeMap[node.data.id] || []; break; - case 'training': + case 'Training': if (node.parent && node.parent.parent) { this.operateModel.type = node.parent.data.id; this.operateModel.prdCode = node.parent.parent.data.id; diff --git a/src/views/lesson/trainingrecord/category/operateMenu.vue b/src/views/lesson/trainingrecord/category/operateMenu.vue index 0d3e0c7ba..2c5dd04a8 100644 --- a/src/views/lesson/trainingrecord/category/operateMenu.vue +++ b/src/views/lesson/trainingrecord/category/operateMenu.vue @@ -54,10 +54,10 @@ export default { node: function (val, old) { if (val && val.data) { switch (val.data.type) { - case 'trainingType': + case 'TrainingType': this.menu = this.menuCreate; break; - case 'training': + case 'Training': this.menu = this.menuEdit; break; } diff --git a/src/views/lesson/trainingrecord/category/tree.vue b/src/views/lesson/trainingrecord/category/tree.vue index 8e443fecc..af283369d 100644 --- a/src/views/lesson/trainingrecord/category/tree.vue +++ b/src/views/lesson/trainingrecord/category/tree.vue @@ -19,17 +19,17 @@ @node-click="clickEvent" >
- - + + + /> -  {{ nodeScop.label }} + /> +  {{ nodeScop.label }}
@@ -86,12 +86,13 @@ export default { }, clickEvent(obj, node, data) { this.$store.dispatch('menuOperation/setPopMenu', { position: null, menu: null }); - if (obj && obj.type === 'training') { + if (obj && obj.type === 'Training') { this.$emit('selectMapSure', obj); } }, showContextMenu(e, obj, node, vueElem) { - if (obj && obj.type === 'trainingType' || obj.type === 'training') { + + if (obj && obj.type === 'TrainingType' || obj.type === 'Training') { e.preventDefault(); this.point = { x: e.clientX, @@ -103,7 +104,7 @@ export default { } }, getParent(node) { - while (node && node.data.type != 'skin') { + while (node && node.data.type != 'Skin') { node = node.parent; } diff --git a/src/views/lesson/trainingrecord/home.vue b/src/views/lesson/trainingrecord/home.vue new file mode 100644 index 000000000..744f3741d --- /dev/null +++ b/src/views/lesson/trainingrecord/home.vue @@ -0,0 +1,160 @@ + + + + diff --git a/src/views/lesson/trainingrecord/index.vue b/src/views/lesson/trainingrecord/index.vue index d9b2d81ea..7997efa4f 100644 --- a/src/views/lesson/trainingrecord/index.vue +++ b/src/views/lesson/trainingrecord/index.vue @@ -9,7 +9,7 @@ /> -
+
@@ -100,9 +100,4 @@ export default { float: left; width: 350px; } - - .mapContext { - float: right; - width: auto; - } diff --git a/src/views/lesson/trainingrecord/manage/index.vue b/src/views/lesson/trainingrecord/manage/index.vue index 940dffc8c..39bea1645 100644 --- a/src/views/lesson/trainingrecord/manage/index.vue +++ b/src/views/lesson/trainingrecord/manage/index.vue @@ -43,6 +43,12 @@ export default { }, trainingId() { return this.$route.params.trainingId; + }, + width() { + return this.$store.state.app.width - 481 - this.widthLeft; + }, + height() { + return this.$store.state.app.height - 90; } }, watch: { @@ -112,7 +118,9 @@ export default { @import "src/styles/mixin.scss"; .blockContext { - float: left; + // float: left; + height: 100%; + overflow: hidden; } .mapContext { diff --git a/src/views/lesson/trainingrecord/manage/stepmanage/index.vue b/src/views/lesson/trainingrecord/manage/stepmanage/index.vue index c3978f6e0..879f19532 100644 --- a/src/views/lesson/trainingrecord/manage/stepmanage/index.vue +++ b/src/views/lesson/trainingrecord/manage/stepmanage/index.vue @@ -81,3 +81,4 @@ export default { } }; + diff --git a/src/views/login/index.vue b/src/views/login/index.vue index bca6294c0..1a553d0ff 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -1,7 +1,7 @@ + diff --git a/src/views/login/loginDesign.vue b/src/views/login/loginDesign.vue new file mode 100644 index 000000000..9fb58082e --- /dev/null +++ b/src/views/login/loginDesign.vue @@ -0,0 +1,436 @@ + + + + + + + + diff --git a/src/views/login/loginEn.vue b/src/views/login/loginEn.vue index 665a98e6f..1236534bc 100644 --- a/src/views/login/loginEn.vue +++ b/src/views/login/loginEn.vue @@ -1,7 +1,8 @@ + + + diff --git a/src/views/login/loginEnDesign.vue b/src/views/login/loginEnDesign.vue new file mode 100644 index 000000000..df11a95fd --- /dev/null +++ b/src/views/login/loginEnDesign.vue @@ -0,0 +1,434 @@ + + + + + + + + diff --git a/src/views/login/loginPlan.vue b/src/views/login/loginPlan.vue index f0703a9d5..58032fc6b 100644 --- a/src/views/login/loginPlan.vue +++ b/src/views/login/loginPlan.vue @@ -30,7 +30,7 @@