Compare commits

..

No commits in common. "master" and "master_0109" have entirely different histories.

1785 changed files with 72692 additions and 129409 deletions

View File

@ -1,9 +0,0 @@
# just a flag
NODE_ENV = 'production'
VUE_APP_PRO = 'common'
# base api
# VUE_APP_BASE_API = 'http://160.20.60.15:9000'
# VUE_APP_VOICE_API = 'http://160.20.60.15/oss/joylink'
# VUE_APP_UPLOAD_API = 'http://160.20.60.15'
# VUE_APP_BASE_SITE='http://160.20.60.15'

View File

@ -1,52 +0,0 @@
---
name: local-test分支构建发布到本地服务器
run-name: ${{ gitea.actor }} is testing out Gitea Actions
on:
push:
branches:
- local-test
jobs:
Build-Publish:
runs-on: joylink-local233
steps:
- name: 检出代码
uses: https://gitea.joylink.club/actions/checkout@v4
with:
submodules: recursive
- name: 设置node环境
uses: https://gitea.joylink.club/actions/local-setup-node@v0.1.1
with:
version: v14.21.3
cache: yarn
cache-dependency-path: yarn.lock
- name: 安装yarn,并build
run: |
node -v
npm config set registry https://registry.npmmirror.com
npm install --global yarn
yarn config set registry https://registry.npmmirror.com
yarn
yarn run buildas local-test
tar czvf ./dist-local-test.tar.gz ./dist
- name: 打包发送到服务器
uses: https://gitea.joylink.club/appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.LOCAL_233_SSH_HOST }}
username: ${{ secrets.LOCAL_233_SSH_USER }}
password: ${{ secrets.LOCAL_233_SSH_PASSWORD }}
port: ${{ secrets.LOCAL_233_SSH_PORT }}
source: ./dist-local-test.tar.gz
target: /home/minio/oss/rt-sim-training-client
overwrite: true
- name: SSH连接并解压发布
uses: https://gitea.joylink.club/appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.LOCAL_233_SSH_HOST }}
port: ${{ secrets.LOCAL_233_SSH_PORT }}
username: ${{ secrets.LOCAL_233_SSH_USER }}
password: ${{ secrets.LOCAL_233_SSH_PASSWORD }}
script: |
cd /home/minio/oss/rt-sim-training-client
rm -rf /usr/local/joylink/client/cbtc
mkdir -p /usr/local/joylink/client
tar xz --strip 2 -C /usr/local/joylink/client -f dist-local-test.tar.gz

View File

@ -1,52 +0,0 @@
name: master分支构建发布到公网服务器
run-name: ${{ gitea.actor }} is testing out Gitea Actions
on:
push:
branches:
- master
jobs:
Build-Publish:
runs-on: joylink-local233
steps:
- name: 检出代码
uses: https://gitea.joylink.club/actions/checkout@v4
with:
submodules: recursive
- name: 设置node环境
uses: https://gitea.joylink.club/actions/local-setup-node@v0.1.1
with:
version: 'v14.21.3'
cache: 'yarn'
cache-dependency-path: 'yarn.lock'
- name: 安装yarn,并build
run: |
node -v
npm config set registry https://registry.npmmirror.com
npm install --global yarn
yarn config set registry https://registry.npmmirror.com
yarn
yarn run build
tar czvf ./dist-master.tar.gz ./dist
- name: 打包发送到服务器
uses: https://gitea.joylink.club/appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.PUB1_DOMAIN_SSH_HOST }}
port: ${{ secrets.PUB1_DOMAIN_SSH_PORT }}
username: ${{ secrets.PUB1_DOMAIN_SSH_USER }}
password: ${{ secrets.PUB1_DOMAIN_SSH_PASSWORD }}
source: ./dist-master.tar.gz
target: /mnt/data/published/rt-sim-training-client
overwrite: true
- name: SSH连接并解压发布
uses: https://gitea.joylink.club/appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.PUB1_DOMAIN_SSH_HOST }}
port: ${{ secrets.PUB1_DOMAIN_SSH_PORT }}
username: ${{ secrets.PUB1_DOMAIN_SSH_USER }}
password: ${{ secrets.PUB1_DOMAIN_SSH_PASSWORD }}
script: |
cd /mnt/data/published/rt-sim-training-client
rm -rf /usr/local/joylink/client/cbtc
mkdir -p /usr/local/joylink/client
tar xz --strip 2 -C /usr/local/joylink/client -f dist-master.tar.gz

1
.gitignore vendored
View File

@ -4,6 +4,7 @@ dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
tests/**/coverage/
src/utils/baseUrl.js*

View File

@ -4,6 +4,3 @@ English | [简体中文](./README-zh.md)
Copyright (c) 2018-present Joylink
### 项目环境
- "node": "<=14.21.3";
- "webpack": ">=4 < 4.29";

View File

@ -6,7 +6,7 @@
"license": "MIT",
"scripts": {
"start": "vue-cli-service serve --open",
"dev": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js serve --open",
"dev": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js serve",
"build": "vue-cli-service build --mode production",
"test": "vue-cli-service build --mode staging",
"local": "vue-cli-service build --mode",
@ -18,9 +18,6 @@
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
},
"dependencies": {
"@stomp/stompjs": "^5.4.4",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^1.0.2",
"axios": "^0.18.0",
"dayjs": "^1.11.5",
"echarts": "^4.7.0",
@ -46,11 +43,9 @@
"vue-i18n": "^8.12.0",
"vue-quill-editor": "^3.0.6",
"vue-router": "^3.1.6",
"vue-video-player": "^5.0.1",
"vuedraggable": "^2.24.3",
"vuex": "^3.1.0",
"wangeditor": "^4.6.17",
"ws": "^8.13.0",
"xlsx": "^0.14.2",
"zrender": "^4.0.4"
},

View File

@ -1,14 +1,10 @@
<template>
<div id="app">
<router-view v-if="loadingComponent" />
<deomon-list ref="deomonList" @enterQcode="qcodeEntry" />
<qcode ref="qcode" />
<div v-show="loading" class="AppAll">
<img v-if="project === 'login' || project === 'design'" :src="jlFavicon" class="CompanyIcon">
<img :src="loadingImg" style="width: 100%; height: 100%;">
</div>
<router-view />
<deomon-topic ref="deomonTopic" />
<img v-show="loading" :src="loadingImg" class="AppAll">
<div
v-if="!$store.state.user.baseUrl && needLoading"
v-if="!$store.state.user.baseUrl"
v-loading="!$store.state.user.baseUrl"
element-loading-text="拼命加载中"
element-loading-background="rgba(0, 0, 0, 0)"
@ -22,23 +18,18 @@
<script>
import { getToken, getUserIdKey } from '@/utils/auth';
import { getSessionStorage, setSessionStorage } from '@/utils/auth';
import { getSessionStorage } from '@/utils/auth';
import { loginInfo, ProjectIcon } from '@/scripts/ProjectConfig';
import DeomonTopic from '@/views/demonstration/deomonTopic';
import WindowResizeHandler from '@/mixin/WindowResizeHandler';
import LoadingImg from '@/assets/loading.gif';
import AppLoading from '@/assets/appLoading.png';
import { openIndexedDB } from '@/utils/indexedDb';
import Favicon from '@/assets/icon/favicon.png';
import DeomonList from '@/views/demonstration/deomonList/index';
import Qcode from '@/layout/components/Qcode.vue';
import {removeToken} from './utils/auth';
import { getFrontProjectConfigByLogin} from '@/api/projectConfig';
import { handlerUrl } from '@/utils/baseUrl';
export default {
name: 'App',
components: {
DeomonList,
Qcode
DeomonTopic
},
mixins: [
WindowResizeHandler
@ -47,27 +38,28 @@ export default {
return {
loadingImg: LoadingImg,
appLoading: AppLoading,
loading: false,
jlFavicon: Favicon,
project: '',
loadingComponent: false
loading: false
};
},
computed: {
needLoading() {
return this.$route.path !== '/authorization';
watch: {
'$store.state.socket.simulationInvite': function (val) {
if (val.creator) {
this.subscribeMessage(val);
}
},
'$store.state.socket.roomInvite': function (val) {
if (val.creator) {
this.subscribeMessage(val);
}
},
watch: {
'$store.state.socket.beLogoutCount': async function(val) {
if (this.$store.state.socket.loggedOutMsg.token === getToken()) {
this.$store.dispatch('disconnect').then(()=>{
this.$alert(this.$t('tip.logoutTips'), this.$t('tip.hint'), {
confirmButtonText: this.$t('tip.confirm'),
callback: action => {
removeToken();
this.$store.dispatch('exit').then(resp => {
this.$router.push({path: `/login?project=${this.$store.state.projectConfig.markKey}`});
this.$router.push({path: loginInfo[getSessionStorage('project')].loginPath});
});
}
});
@ -80,25 +72,17 @@ export default {
},
'$store.state.app.animationsCloseCount': function(val) {
this.loading = false;
},
'$route': function(val) {
if (val.path == '/display/demon' && val.query.client == 'diagramEdit') { //
this.loading = false;
}
if (this.$route.query.project || this.$route.path === '/login' || this.$route.path === '/') {
setSessionStorage('project', this.$route.query.project || 'login');
}
this.project = getSessionStorage('project');
if (this.project !== this.$store.state.projectConfig.markKey) {
this.initFrontProjectConfig();
}
},
'$store.state.projectConfig.markKey': function(val) {
if (val) { this.loadingComponent = true; }
created() {
const project = getSessionStorage('project');
if (project) {
document.querySelector("link[rel*='icon']").href = loginInfo[project].linkIcon || ProjectIcon[project];
}
},
mounted() {
this.prohibitSystemContextMenu();
window.addEventListener('beforeunload', async e => {
if (!this.$route.query.noPreLogout) {
await this.$store.dispatch('preLogout');
@ -108,7 +92,7 @@ export default {
if (this.$route.path.includes('trainingDesign') || this.$route.path.includes('trainingPreview')) {
if (e.key == getUserIdKey('nextNew')) {
const operate = JSON.parse(e.newValue);
this.$store.dispatch('trainingNew/next', operate);
this.$store.dispatch('training/nextNew', operate);
}
}
@ -121,28 +105,6 @@ export default {
this.$store.dispatch('subscribe_un', {});
},
methods: {
initFrontProjectConfig() {
getFrontProjectConfigByLogin(this.project).then(resp => {
const urlData = handlerUrl();
const { baseApiUrl, baseSite, ossUrl, loginProLogo, browserTitle} = resp.data.viewSetting;
this.$store.dispatch('setBaseUrl', baseApiUrl || urlData.BASE_API);
this.$store.dispatch('setBaseSite', baseSite || urlData.BASE_SITE);
this.$store.dispatch('setOssUrl', ossUrl || urlData.OSS_URL);
this.$store.dispatch('projectConfig/setMarkKey', resp.data.markKey);
this.$store.dispatch('projectConfig/setProjectCode', resp.data.project);
this.$store.dispatch('projectConfig/setViewSetting', resp.data.viewSetting);
document.title = browserTitle;
if (loginProLogo) {
document.querySelector("link[rel*='icon']").href = (ossUrl || urlData.OSS_URL) + '/logo/' + loginProLogo;
}
}).catch(e => this.$message.error('获取配置数据失败!'));
},
quickEntry() {
this.$refs.deomonList.doShow();
},
qcodeEntry() {
this.$refs.qcode.doShow();
},
resizeHandler() {
this.$store.dispatch('app/resize', { width: this._clientWidth, height: this._clientHeight });
},
@ -150,13 +112,22 @@ export default {
window.document.oncontextmenu = function () {
return false;
};
},
subscribeMessage(res) {
if (this.$refs.deomonTopic && !window.location.href.includes('trainroom')) {
if (!(getSessionStorage('project').includes('design'))) {
this.$refs.deomonTopic.doShow(res);
}
this.$store.dispatch('socket/setSimulationInvite');
this.$store.dispatch('socket/setRoomInvite');
}
}
}
};
</script>
<style lang="scss" scoped>
.AppAll{position: absolute;top: 0;left: 0;width: 100%;height: 100%;z-index: 3003}
.AppAll{position: absolute;top: 0;left: 0;width: 100%;height: 100%;z-index: 2003}
.centerImg {
position: absolute;
left:50%;
@ -166,12 +137,4 @@ export default {
margin-left: -240px;
margin-top: -228px;
}
.CompanyIcon{
position: absolute;
z-index: 3000;
left: 50%;
margin-left: -60px;
width: 120px;
top: 30px;
}
</style>

View File

@ -1,53 +0,0 @@
import request from '@/utils/request';
/** 创建权限分发*/
export function createDistribute(data) {
return request({
url: `/api/v3/permission/distribute/create`,
method: 'post',
data
});
}
/** 分页获取权限分发列表*/
export function getDistributeList(data) {
return request({
url: `/api/v3/permission/distribute/paging`,
method: 'post',
data
});
}
// /** 设置权限分发立即失效*/
// export function setDistributeInvalidate(pdId) {
// return request({
// url: `/api/v2/permission/distribute/${pdId}/invalidate`,
// method: 'put'
// });
// }
/** 获取权限分发明细*/
export function getDistributeDetail(disId) {
return request({
url: `/api/v3/permission/distribute/list/distribute/${disId}`,
method: 'get'
});
}
/** 从权限分发,直接分发给指定主体*/
export function setDistributeToSubject(pdId, subjectType, subjectId) {
return request({
url: `/api/v3/permission/distribute/${pdId}/to/${subjectType}/${subjectId}`,
method: 'post'
});
}
/** 生成分发二维码*/
export function getDistributeQrCode(pdId) {
return request({
url: `/api/v3/permission/distribute/${pdId}/qrCode`,
method: 'get'
});
}

View File

@ -1,416 +0,0 @@
import request from '@/utils/request';
/**
* 获取竞赛试卷分页列表
* @param {Object} params
* @param {String} params.name 试卷名称
*/
export function getPaperList(params) {
return request({
url: '/api/exercise/race/paper/page',
method: 'GET',
params
});
}
/**
* 创建试卷
* @param {Object} data
* @param {String} data.name 试卷名称
* @param {String} data.desc 基础描述
* @param {Number} data.seasonId 所属赛季id
* @param {Boolean} data.supportCopy 是否支持拷贝
*/
export function createPaper(data) {
return request({
url: '/api/exercise/race/paper',
method: 'POST',
data
});
}
/**
* @param {Object} data 同创建试卷
* @param {Number} id 试卷id
*/
export function editPaper(id, data) {
return request({
url: `/api/exercise/race/paper/${id}`,
method: 'POST',
data
});
}
/**
* @param {Number} id 任务id
*/
export function deletePaper(id) {
return request({
url: `/api/exercise/race/paper/${id}`,
method: 'DELETE'
});
}
/**
* 获取竞赛试卷菜单
* @param {Object} params
* @param {String} params.group 分组ZZ=中职;GZ=高职
*/
export function getPaperMenu(params) {
return request({
url: '/api/exercise/race/paper/menu',
method: 'GET',
params
});
}
/**
* @param {Object} data
* @param {Array} data.modules 所有模块
* @param {Number} data.modules[i].module_name 模块名字
* @param {Number} data.modules[i].duration 考试总时间
* @param {Number} data.modules[i].group 任务分组
* @param {Number} data.modules[i].group.taskIds 此分组中的任务id
* @param {Number} data.modules[i].group.name 此组的名字
* @param {Number} data.modules[i].group.group 此分组的子分组
*/
export function paperModuleTaskSetting(paperId, data) {
return request({
url: `/api/exercise/race/paper/${paperId}/config`,
method: 'POST',
data
});
}
/**
* @param {Number} id 模块id
*/
export function getPaperDetail(id) {
return request({
url: `/api/exercise/race/paper/${id}`,
method: 'GET'
});
}
/**
* @param {Number} id 模块id
*/
export function copyPaper(id) {
console.log(id);
return request({
url: `/api/exercise/race/paper/${id}/copy`,
method: 'PUT'
});
}
/** 查看所有任务数据 */
export function getTaskTreeDatas() {
return request({
url: '/api/exercise/race/task/tree',
method: 'GET'
});
}
/**
* 创建任务
* @param {Object} data
* @param {String} data.name 任务名称
* @param {String} data.desc 基础描述
* @param {String} data.content 考核内容
* @param {String} data.standards 评价标准
* @param {Number} data.parentId 如果是子任务需要父任务的id
*/
export function createTask(data) {
return request({
url: '/api/exercise/race/task',
method: 'POST',
data
});
}
/**
* @param {Object} data 同创建任务
* @param {Number} id 任务id
*/
export function editTask(id, data) {
return request({
url: `/api/exercise/race/task/${id}`,
method: 'POST',
data
});
}
/**
* @param {Number} id 任务id
*/
export function deleteTask(id) {
return request({
url: `/api/exercise/race/task/${id}`,
method: 'DELETE'
});
}
/**
* @param {Number} id 任务id
*/
export function getTaskDetail(id) {
return request({
url: `/api/exercise/race/task/${id}`,
method: 'GET'
});
}
/**
* @param {Number} id 任务id
*/
export function getchildrenTaskDatas(id) {
return request({
url: `/api/exercise/race/task/${id}/children`,
method: 'GET'
});
}
/**
* @param {Array} data
* @param {Number} taskId 任务id
* @param {Number} data[i].bindId 绑定id根据bindtype来区分对应的id
* @param {String} data[i].bindType rule =0评分规则;scene=1场景
* @param {Number} data[i].status 0=绑定 1=解绑
*/
export function bindTask(taskId, data) {
return request({
url: `/api/exercise/race/task/${taskId}/bind`,
method: 'POST',
data
});
}
/**
* @param {Object} data
* @param {Number} data.group 分组 1-高职 2中职
* @param {String} data.term 赛季
* @param {String} data.code 编号
*/
export function addContestSeason(data) {
return request({
url: '/api/exercise/race/season',
method: 'post',
data
});
}
/**
* @param {Object} params
* @param {Number} params.group 分组 1-高职 2中职
* @param {String} params.term 赛季
* @param {String} params.code 编号
*/
export function queryContestSeasonPaged(params) {
return request({
url: '/api/exercise/race/season/page',
method: 'get',
params
});
}
/**
* @param {Object} data
* @param {Number} id 赛季id
* @param {String} data.group 分组 ZZ=中职GZ=高职
* @param {String} data.term 赛季
* @param {String} data.code 编号
*/
export function updateContestSeason(id, data) {
return request({
url: `/api/exercise/race/season/${id}`,
method: 'post',
data
});
}
/**
* @param {Number} id 赛季id
*/
export function deleteContestSeason(id) {
return request({
url: `/api/exercise/race/season/${id}`,
method: 'delete'
});
}
/**
* @param {Object} data
* @param {String} data.name 名称
*/
export function createContextScore(data) {
return request({
url: '/api/exercise/race/score',
method: 'post',
data
});
}
/**
* @param {Object} params
* @param {String} params.name 名称
*/
export function queryContextScorePaged(params) {
return request({
url: '/api/exercise/race/score/page',
method: 'get',
params
});
}
/**
* @param {Number} id 评分id
*/
export function deleteContextScore(id) {
return request({
url: `/api/exercise/race/score/${id}`,
method: 'delete'
});
}
/**
* @param {Number} id 评分id
* @param {Object} data
* @param {Array [object]} data.units 评分单元
* @param {String} data.units[0].text 文字描述
* @param {Number} data.units[0].sceneStepId 场景步骤ID
* @param {Number} data.units[0].score 分值
* @param {String} data.units[0].worker 作业程序
* @param {String} data.units[0].criteria 评分标准
*/
export function updateContextScoreDetail(id, data) {
return request({
url: `/api/exercise/race/score/edit/rule/${id}`,
method: 'post',
data
});
}
/**
* @param {Number} id 评分id
*/
export function getContextScoreDetail(id) {
return request({
url: `/api/exercise/race/score/${id}`,
method: 'get'
});
}
/**
* @param {Object} params
* @param {String} params.type 竞赛类型 local=场景;link=3D
*/
export function queryContestSencePaged(params) {
return request({
url: '/api/exercise/race/scene/page',
method: 'get',
params
});
}
/**
* @param {Number} id 场景id
*/
export function deleteContestSence(id) {
return request({
url: `/api/exercise/race/scene/${id}`,
method: 'delete'
});
}
/**
* @param {Number} id 场景id
*/
export function getContextSenceDetail(id) {
return request({
url: `/api/exercise/race/scene/${id}`,
method: 'get'
});
}
/**
* @param {Object} data
* @param {Number} data.traningPublishId 草稿实训场景id
* @param {String} data.name 大赛场景名称
*/
export function publishContextSence(data) {
return request({
url: `/api/exercise/race/scene/publish/training`,
method: 'post',
data
});
}
/**
* @param {Object} data
* @param {String} data.name 场景名称
* @param {String} data.type Video=视频
* @param {Object} data.scene 大赛场景
* @param {String} data.scene.url 地址
* @param {String} data.scene.fileName 文件名
*/
export function saveSceneVideo(data) {
return request({
url: `/api/exercise/race/scene/custom/edit`,
method: 'post',
data
});
}
/** 场景视频编辑 */
export function editSceneVideo(sceneId, data) {
return request({
url: `/api/exercise/race/scene/custom/${sceneId}/edit`,
method: 'post',
data
});
}
/**
* @param {String} paperId 试卷id
* @param {String} moduleId 模块id
*/
export function getTaskTree(paperId, moduleId) {
return request({
url: `/api/exercise/race/paper/${paperId}/module/${moduleId}/task`,
method: 'get'
});
}
/**
* @param {String} paperId 试卷id
* @param {String} moduleId 模块id
*/
export function beginContestExercise(paperId, moduleId) {
return request({
url: `/api/race/${paperId}/${moduleId}`,
method: 'POST'
});
}
/** 竞赛完成训练 */
export function finishContestExercise() {
return request({
url: '/api/race/finish',
method: 'PUT'
});
}
/** html
* @param {String} id 赛季id
* @param {String} data.htmlContent 内容
*/
export function editSeasonContent(id, data) {
return request({
url: `/api/exercise/race/season/${id}/html`,
method: 'post',
data
});
}
/** html
* @param {String} id 赛季id
*/
export function getSeasonContent(id) {
return request({
url: `/api/exercise/race/season/${id}/html`,
method: 'get'
});
}
export function getTheoryList() {
return request({
url: '/api/exercise/race/paper/questions',
method: 'get'
});
}

View File

@ -24,17 +24,10 @@ export function deleteDisStation(mapId, code) {
});
}
// 获取调度台逻辑数据
export function getDisStationListPaged(mapId, data) {
export function getDisStationList(mapId, data) {
return request({
url: `/api/draftMap/${mapId}/disStation/page`,
method: 'post',
data
});
}
/** 查询调度台列表 */
export function getDisStationList(mapId) {
return request({
url: `api/draftMap/${mapId}/disStation/list`,
method: 'get'
});
}

View File

@ -1,26 +0,0 @@
import request from '@/utils/request';
// 分页查询权限功能的基本信息
export function getAbilityPage(data) {
return request({
url: `/api/v2/permission/system/ability/page`,
method: 'post',
data
});
}
// 自动生成
export function autoCreate() {
return request({
url: `/api/v2/permission/system/ability/autoCreate`,
method: 'get'
});
}
// 获取所有功能
export function getAllAbility() {
return request({
url: `/api/v2/permission/system/ability/list`,
method: 'get'
});
}

View File

@ -4,8 +4,10 @@ const publicPath = process.env.VUE_APP_PRO == 'local' ? '' : '/cbtc';
export const JL3D_LOCAL_STATIC = publicPath+"/static";
const BASE_UPLOAD_API = store.state.user.uploadUrl;
// export const BASE_ASSET_API = store.state.user.resourcesUrl;
export const BASE_ASSET_API = store.state.user.ossUrl;
export const BASE_ASSET_API = store.state.user.resourcesUrl;
// console.log(JL3D_LOCAL_STATIC);
// console.log(BASE_UPLOAD_API);
// console.log(BASE_ASSET_API);
export function getUploadModelUrl() {
return (BASE_UPLOAD_API+"/api/upload/MODEL?appId=00001&appSecret=joylink00001");

View File

@ -75,7 +75,7 @@ export function getPublish3dMapDetail(id) {
}
/** 录制托管*/
export function tuoguan3ddrive(group, data) {
export function tuoguan3ddrive(group,data) {
return request({
url: `/api/scriptSimulation/${group}/trust`,
method: 'put',
@ -101,7 +101,7 @@ export function saveStationManagerData(data) {
});
}
// 更新数据
export function updateStationManagerData(id, data) {
export function updateStationManagerData(id,data) {
return request({
url: `/api/pfp/${id}`,
method: 'put',
@ -128,6 +128,6 @@ export function getStationManagerData(id) {
export function deleteStationManagerData(id) {
return request({
url: `/api/pfp/${id}`,
method: 'delete'
method: 'delete',
});
}

View File

@ -285,47 +285,3 @@ export function allSimulationCheck() {
method: 'get'
});
}
/** 根据地图查询仿真成员 */
export function querySimulationMemberByMapId(id) {
return request({
url: `/api/map/${id}/memberMap`,
method: 'get'
});
}
/** 根据地图查询车站(含车辆段停车场) */
export function querySimulationStationsByMapId(id) {
return request({
url: `/api/map/${id}/stations`,
method: 'get'
});
}
/** 根据用户查询地图列表 */
export function queryMapListByUser() {
return request({
url: `/api/map/list/online/ofUser`,
method: 'get'
});
}
/** 根据mapId获取客户端信息数据 */
export function getClientDataById(mapId) {
return request({
url: `/api/map/${mapId}/mapClientMap`,
method: 'get'
});
}
/** 发布地图根据id生成实训 */
export function generateTrainingData(data) {
return request({
url: `/api/v2/training/rule/generate/mapId`,
method: 'post',
data: data
});
}
/** 根据mapId获取列车信息 */
export function getTrainListByMapId(mapId) {
return request({
url: `/api/map/${mapId}/trains`,
method: 'get'
});
}

View File

@ -190,28 +190,18 @@ export function publishTrainingDelete(data) {
data
});
}
/** 查全部组织已发布实训的基础信息 */
export function getAllPublishTrainingList(params) {
/** 根据mapId查所有的已发布单操实训的基础信息 */
export function getPublishSingleList(mapId) {
return request({
url: `/api/v2/training/published/list`,
method: 'get',
params
url: `/api/v2/training/published/${mapId}/singles`,
method: 'get'
});
}
/** 查询组织已发布实训的基础信息 */
export function getPublishTrainingListInOrg(data) {
/** 根据mapId查所有的已发布场景实训的基础信息 */
export function getPublishScenesList(mapId) {
return request({
url: `/api/v2/training/published/infos`,
method: 'post',
data
});
}
/** 查询组织已发布的实训列表 */
export function getManageTrainingListInOrg(data) {
return request({
url: `/api/v2/training/published/manage/infos`,
method: 'post',
data
url: `/api/v2/training/published/${mapId}/scenes`,
method: 'get'
});
}
/** 根据实训id查该已发布实训的所有信息 */
@ -244,11 +234,10 @@ export function startTraining(group, params) {
});
}
/** 结束实训 */
export function endTraining(group, data) {
export function endTraining(group) {
return request({
url: `/api/training2Simulation/${group}/finish`,
method: 'put',
data
method: 'put'
});
}
/** 实训完成步骤 */
@ -265,11 +254,3 @@ export function loadTrainingBg(group, trainingId) {
method: 'post'
});
}
/** 预备开始场景 */
export function prepareScene(group, params) {
return request({
url:`/api/training2Simulation/${group}/prepare/start`,
method: 'post',
params
});
}

View File

@ -93,33 +93,3 @@ export function getLoginInfo(token) {
}
});
}
/**
* 获取用户所属组织列表
*/
export function getOrgList() {
return request({
url: '/api/orgProject/list',
method: 'get'
});
}
/**
* 登入组织
*/
export function selectOrgnization(orgId) {
return request({
url: `/api/orgProject/signIn/${orgId}`,
method: 'put'
});
}
/**
* 获取用户已经加入的仿真
*/
export function getSimulationJoined() {
return request({
url: '/simulation/joined/by/me',
method: 'get'
});
}

View File

@ -95,7 +95,7 @@ export function updateExamRule(data) {
return request({
url: `/api/exam/update/rules`,
method: 'put',
data: data
data:data
});
}
/** 检查并更新【规则数据异常】状态 */
@ -106,251 +106,9 @@ export function checkAndUpdateAbnormal(mapId) {
});
}
/** 重新生成考试规则 */
export function regenerateRule(mapId) {
export function regenerateRule (mapId) {
return request({
url: `/api/exam/regenerateRules/${mapId}`,
method: 'put'
});
}
/**
* ============================================================================
* ============================================================================
* ============================= 以下为新版试卷的接口 ============================
* ============================================================================
* ============================================================================
*/
/**
* LIST -
* 根据试卷蓝图名称简介分页查找某个组织的试卷蓝图
* @param {Object} data
* @param {Number} data.orgId 组织ID
* @param {String} data.name 试卷蓝图名称
* @param {String} data.profile 试卷蓝图简介
* @param {Number} data.findState 状态: (All(1)-所有,Editing(2)-正在编辑的,CanUse(3)-可以用于生成试卷的,Locked(4)-封存,Used(5)-已经被使用过)
* @param {Number} data.orderBy 排序依据: (1--创建时间 2--更新时间 3--名称默认值为1)
*/
export function getPapaerListOfOrg({ orgId, ...data }) {
return request({
url: `/api/v2/paper/composition/find/page/for/${orgId}`,
method: 'POST',
data
});
}
export function getAllPapaerListOfOrg({ ...data }) {
// 全部组织
return request({
url: `/api/v2/paper/composition/manage/paging`,
method: 'POST',
data
});
}
/**
* 创建试卷蓝图
* @param {Object} data
* @param {Number} data.orgId 组织ID
* @param {String} data.name 试卷蓝图名称
* @param {String} data.profile 简介
* @param {String} data.startTime 启用起始时间
* @param {String} data.endTime 启用截止时间
* @param {Number} data.validDuration 考试时长
* @param {String} data.passScore 及格分
* @param {String} data.fullScore 满分
* @param {Object} data.ruleList 规则列表
* @param {Object} data.ruleList.id 规则id
* @param {Object} data.ruleList.pcId 试卷蓝图ID
* @param {Object} data.ruleList.type 试题类型
* @param {Object} data.ruleList.subtype 规则类型
* @param {Object} data.ruleList.tags 标签
* @param {Object} data.ruleList.amount 数量
* @param {Object} data.ruleList.score 每题分值
*/
export function createPaper(data) {
return request({
url: `/api/v2/paper/composition/${data.orgId}`,
method: 'POST',
data
});
}
/**
* @param {Object} data
* @param {Number} data.id 试卷蓝图ID
* @param {Number} data.orgId 组织ID
* @param {String} data.name 试卷蓝图名称
* @param {String} data.profile 简介
* @param {String} data.startTime 启用起始时间
* @param {String} data.endTime 启用截止时间
* @param {Number} data.validDuration 考试时长
* @param {String} data.passScore 及格分
* @param {String} data.fullScore 满分
* @param {Object} data.ruleList 规则列表
* @param {Object} data.ruleList.id 规则id
* @param {Object} data.ruleList.pcId 试卷蓝图ID
* @param {Object} data.ruleList.type 试题类型
* @param {Object} data.ruleList.subtype 规则类型
* @param {Object} data.ruleList.tags 标签
* @param {Object} data.ruleList.amount 数量
* @param {Object} data.ruleList.score 每题分值
*/
export function editPaper(data) {
return request({
url: `/api/v2/paper/composition`,
method: 'PUT',
data
});
}
/**
* @param {Number} pcId 试卷蓝图ID
*/
export function getPaperDetail(pcId) {
return request({
url: `/api/v2/paper/composition/${pcId}`,
method: 'GET'
});
}
/**
* @param {Object} data
* @param {Number} data.orgId
* @param {Number} data.subtype
* @param {Array<String>} data.tags
*/
export function getQuestionAmount(data) {
return request({
url: `/api/v2/paper/question/count`,
method: 'POST',
data
});
}
/**
* @param {Number} pcId 试卷蓝图Id
*/
export function lockPaper(pcId) {
return request({
url: `/api/v2/paper/composition/${pcId}/lock`,
method: 'PUT'
});
}
/**
* @param {Number} pcId 试卷蓝图Id
*/
export function invalidPaper(pcId) {
return request({
url: `/api/v2/paper/composition/${pcId}/invalid`,
method: 'PUT'
});
}
/**
* @param {Number} pcId 试卷蓝图Id
*/
export function deletePaper(pcId) {
return request({
url: `/api/v2/paper/composition/${pcId}`,
method: 'DELETE'
});
}
/**
* @param {Number} pcId 试卷蓝图Id
*/
export function generateExam(pcId) {
return request({
url: `/api/v2/paper/${pcId}`,
method: 'POST'
});
}
/** 删除用户试卷 */
// export function deleteUserExam(param) {
// return request({
// url: `/api/v2/paper/user/${puId}`,
// method: 'DELETE'
// });
// }
/**
* @param {Number} puId 用户试卷Id
*/
export function getUserExamInfo(puId) {
return request({
url: `/api/v2/paper/user/${puId}`,
method: 'GET'
});
}
/** 加载用户试卷试题 */
export function loadQuestion({ type, questionId, puId }) {
return request({
url: `/api/v2/paper/user/question/${type}/${questionId}/${puId}`,
method: 'GET'
});
}
/**
* @param {Object} data
* @param {Number} data.puId 用户试卷id
* @param {Number} data.pqId 用户试卷试题id
* @param {Number} data.type 试题类型
* @param {Number} data.subType 试题子类型
* @param {Number} data.answer 答案(理论题)
* @param {Boolean} data.trainingSuccess 是否完成(实训题)
*/
export function submitAnswer(data) {
return request({
url: `/api/v2/paper/user/question/answer`,
method: 'POST',
data
});
}
/**
* @param {Number} puId 用户试卷id
*/
export function submitPaper(puId) {
return request({
url: `/api/v2/paper/user/${puId}/submit`,
method: 'POST'
});
}
/**
* 根据mapId查询蓝图的基本信息
*/
export function queryPaperList(data) {
return request({
url: `/api/v2/paper/composition/find/list`,
method: 'POST',
data
});
}
/**
* 获取标签分类
* @param {Number} ordId 组织id
* @param {Number} groupType 1-理论题 2-实训题
* @param {Number} subType 1-选择题 2-多选题 3-判断题 4-单操 5-场景
*/
export function queryTagList(data) {
return request({
url: `/api/v2/paper/question/label`,
method: 'POST',
data
});
}
/**
* 获取试卷创建者list
*/
export function queryPaperCreatorList(data) {
return request({
url: `/api/v2/paper/composition/list/creatorInfo`,
method: 'POST',
data
})
}

View File

@ -1,45 +0,0 @@
import request from '@/utils/request.js'
/** 获取文件列表 */
export function getFileList(params) {
return request({
url: `/api/minio/file/list`,
method: 'get',
params,
})
}
/** 检查资源是否已存在 */
export function checkIsExist(params) {
return request({
url: `/api/minio/checkIsExist`,
method: 'get',
params,
})
}
/** 保存文件 */
export function saveFileInfo(data) {
return request({
url: `/api/minio/file/save`,
method: 'post',
data,
})
}
/** 更新文件标题 */
export function updateFileTitle(data) {
return request({
url: `/api/minio/file/update`,
method: 'put',
data,
})
}
/** 删除文件 */
export function deleteFile(id) {
return request({
url: `api/minio/file/del/${id}`,
method: 'delete',
})
}

View File

@ -17,32 +17,6 @@ export function getUserList(params) {
});
}
/** 查询所有用户列表*/
export function getManageUserList(params) {
return request({
url: `/api/manage/user/list`,
method: 'get',
params: params
});
}
/** 根据用户查询用户角色列表*/
export function getUserRolesList(uid) {
return request({
url: `/api/manage/${uid}/roles`,
method: 'get'
});
}
/** 绑定用户角色*/
export function getBindUserRoles(data) {
return request({
url: `/api/manage/bind/org`,
method: 'post',
data
});
}
/** 模糊查询用户 昵称、名称、手机号*/
export function getDimUserList(params) {
return request({
@ -295,39 +269,3 @@ export function sendEmailVfcode(params) {
params
});
}
/** 新注册接口 */
export function registerUserNew(data) {
return request({
url: `/api/userinfo/register2`,
method: 'post',
data
});
}
// 手机号是否已经注册
export function isExistMobile(params) {
return request({
url: `/api/userinfo/isExist/mobile`,
method: 'get',
params
});
}
// 手机号是否已经注册
export function isExistEmail(params) {
return request({
url: `/api/userinfo/isExist/email`,
method: 'get',
params
});
}
// 成工院第三方登录
export function cgyThirdLogin(data) {
return request({
url: '/api/login/cgy/third',
method: 'post',
data
});
}

View File

@ -1,19 +1,19 @@
import request from '@/utils/request'
import request from '@/utils/request';
/** 获取用户试题列表*/
export function generateExamList(examId) {
return request({
url: `/api/userExam/${examId}/generate`,
method: 'get',
})
method: 'get'
});
}
/** 刷新考题列表*/
export function refreshExamList(userExamId) {
return request({
url: `/api/userExam/${userExamId}`,
method: 'get',
})
method: 'get'
});
}
/** 提交一个考题*/
@ -21,16 +21,17 @@ export function finishOneExamQuestion(data) {
return request({
url: '/api/userExam/finish',
method: 'put',
data: data,
})
data: data
});
}
/** 考试完成提交*/
export function submitExam(examId) {
return request({
url: `/api/userExam/${examId}/submit`,
method: 'put',
})
method: 'put'
});
}
/** 获取用户考试列表*/
@ -38,41 +39,40 @@ export function getPublishExam(data) {
return request({
url: `/api/userExam/list`,
method: 'get',
params: data,
})
params: data
});
}
/** 删除用户考试*/
export function delPublishExam(id) {
return request({
url: `/api/userExam/${id}`,
method: 'delete',
})
method: 'delete'
});
}
export function updateExam(data) {
return request({
url: `/api/userExam/${data.id}`,
method: 'put',
data: data,
})
data: data
});
}
/** 获取班级考试成绩列表 */
export function getClassGradeList(params) {
export function getClassGradeList(examId, params) {
return request({
url: `/api/v2/paper/user/page`,
url: `/api/userExam/paged/orgUser/${params.orgId}/${examId}`,
method: 'get',
params,
})
params
});
}
/** 查询组织学生单次考试成绩曲线 */
export function getClassGradeStatistic(orgId, examId) {
return request({
url: `/api/v2/paper/user/curve`,
params: { pcId: examId, orgId },
method: 'get',
})
url: `/api/userExam/curve/${orgId}/${examId}`,
method: 'get'
});
}
/** 查询组织学生单次考试成绩曲线 */
@ -80,29 +80,29 @@ export function getStuGradeStatistic(userId) {
return request({
url: `/api/userExam/curve/${userId}`,
method: 'get',
})
});
}
/** 个人仿真数据统计 */
export function getSimulationTimeChart(mapId) {
return request({
url: `/api/stats/simulation/${mapId}/stats`,
method: 'get',
})
method: 'get'
});
}
// // 课程内实训数据统计
// export function getLessonTimeChart(id) {
// return request({
// url: `/api/stats/lesson/${id}/stats`,
// method: 'get',
// })
// }
// 课程内实训数据统计
export function getLessonTimeChart(id) {
return request({
url: `/api/stats/lesson/${id}/stats`,
method: 'get'
});
}
// 课程列表
export function getLessonList() {
return request({
url: '/api/stats/lesson/list',
method: 'get',
})
method: 'get'
});
}

View File

@ -1,221 +0,0 @@
import request from '@/utils/request';
/**
* 获取群列表
* @param {String} groupId 房间号
* @returns
*/
export function getGroupList(groupId) {
return request({
url: `/api/simulation/${groupId}/conversation/group/list`,
method: 'get'
});
}
/**
* 创建群
* @param {String} groupId 房间号
* @param {String} data
* @param {String} data.name 群组名称
* @param {String} data.imageUrl 群组头像
* @param {Array} data.memberIds 角色id列表
* @returns
*/
export function createGroup(groupId, data) {
return request({
url: `/simulation/${groupId}/operate/Conversation_Group_Create`,
method: 'post',
data
});
}
/**
* 修改群组名称
* @param {String} groupId 房间号
* @param {Object} data
* @param {String} data.id 群组id
* @param {String} data.name 群组名称
* @returns
*/
export function updateGroupName(groupId, data) {
return request({
url: `/simulation/${groupId}/operate/Conversation_Group_Update_Name`,
method: 'post',
data
});
}
/**
* 修改群组群主
* @param {String} groupId 房间号
* @param {Object} data
* @param {Number} data.id 群组id
* @param {String} data.memberId 角色id
* @returns
*/
export function updateGroupLeader(groupId, data) {
return request({
url: `/simulation/${groupId}/operate/Conversation_Group_Update_Leader`,
method: 'post',
data
});
}
/**
* 邀请人员入群
* @param {String} groupId 房间号
* @param {Object} data
* @param {Number} data.id 群组id
* @param {Array} data.memberIds 角色id列表
* @returns
*/
export function inviteMemberToGroup(groupId, data) {
return request({
url: `/simulation/${groupId}/operate/Conversation_Group_Invite_Member`,
method: 'post',
data
});
}
/**
* 移除群内人员
* @param {String} groupId 房间号
* @param {Object} data
* @param {Number} data.id 群组id
* @param {Array} data.memberIds 角色id列表
* @returns
*/
export function removeMemberFromGroup(groupId, data) {
return request({
url: `/simulation/${groupId}/operate/Conversation_Group_Remove_Member`,
method: 'post',
data
});
}
/**
* 退出群组
* @param {String} groupId 房间号
* @param {Object} data
* @param {Number} data.id 群组id
* @returns
*/
export function exitGroup(groupId, data) {
return request({
url: `/simulation/${groupId}/operate/Conversation_Group_Exit`,
method: 'post',
data
});
}
/**
* 解散群组
* @param {String} groupId 房间号
* @param {Object} data
* @param {Number} data.id 群组id
* @returns
*/
export function dissolveGroup(groupId, data) {
return request({
url: `/simulation/${groupId}/operate/Conversation_Group_Dissolve`,
method: 'post',
data
});
}
/**
* 发送语音信息
* @param {String} groupId 房间号
* @param {Object} data
* @param {Number} data.id 群组id
* @param {String} data.audioPath 文件地址
* @param {String} data.content 语音内容
* @returns
*/
export function sendAudio(groupId, data) {
return request({
url: `/simulation/${groupId}/operate/Conversation_Group_Audio_Chat`,
method: 'post',
data
});
}
/**
* 发送文字信息
* @param {String} groupId 房间号
* @param {Object} data
* @param {Number} data.id 群组id
* @param {String} data.content 文字内容
* @returns
*/
export function sendText(groupId, data) {
return request({
url: `/simulation/${groupId}/operate/Conversation_Group_Text_Chat`,
method: 'post',
data
});
}
/**
* 发送BASE64信息
* @param {String} groupId 房间号
* @param {Object} data
* @param {Number} data.id 群组id
* @param {String} data.fileBase64Str 文件base64码
* @returns
*/
export function sendBase64(groupId, data) {
return request({
url: `/simulation/${groupId}/operate/Conversation_Group_Audio_Base64`,
method: 'post',
data
});
}
/**
* 设置群消息已读
* @param {String} groupId 房间号
* @param {Object} data
* @param {Number} data.id 群组id
* @returns
*/
export function setGroupReadMessage(groupId, data) {
return request({
url: `/simulation/${groupId}/operate/Conversation_Group_Read_Message`,
method: 'post',
data
});
}
/**
* 发送私聊文字信息
* @param {String} groupId 房间号
* @param {Object} data
* @param {Number} data.memberId 角色id
* @param {String} data.content 文字内容
* @returns
*/
export function sendPrivateText(groupId, data) {
return request({
url: `/simulation/${groupId}/operate/Conversation_Group_Private_Text_Chat`,
method: 'post',
data
});
}
/**
* 发送私聊BASE64信息
* @param {String} groupId 房间号
* @param {Object} data
* @param {Number} data.memberId 角色id
* @param {String} data.fileBase64Str 文件base64码
* @returns
*/
export function sendPrivateBase64(groupId, data) {
return request({
url: `/simulation/${groupId}/operate/Conversation_Group_Private_Audio_Base64`,
method: 'post',
data
});
}

View File

@ -1,28 +0,0 @@
import request from '@/utils/request';
// 创建权限
export function createPermission(data) {
return request({
url: `/api/v2/permission/create`,
method: 'post',
data
});
}
// 权限修改
export function updatePermission(data) {
return request({
url: `/api/v2/permission/update`,
method: 'put',
data
});
}
// 分页获取权限
export function getPermissionPage(data) {
return request({
url: `/api/v2/permission/find/page`,
method: 'post',
data
});
}

View File

@ -61,10 +61,10 @@ export function setLwConfig(id, data) {
data: data
});
}
/** 查询某个项目下的所有的某类型设备 */
export function getDevicesByType(project, type) {
/** 查询所有的某类型设备 */
export function getDevicesByType(type) {
return request({
url: `/api/device/${project}/${type}/all`,
url: `/api/device/${type}/all`,
method: 'get'
});
}
@ -144,10 +144,3 @@ export function setDeviceConfig(data) {
data: data
});
}
/** 获取所有项目 */
export function getAllProject() {
return request({
url: `/api/project/all `,
method: 'get'
});
}

View File

@ -1,187 +0,0 @@
import request from '@/utils/request';
/** 后端项目配置分页 */
export function getBackProjectConfigByPage(params) {
return request({
url: `/api/project/page`,
method: 'get',
params
});
}
/** 全量后端项目配置 */
export function getAllBackProjectConfig() {
return request({
url: `/api/project/all`,
method: 'get'
});
}
/** 主键获取后端项目配置 */
export function getBackProjectConfigById(id) {
return request({
url: `/api/project/${id}`,
method: 'get'
});
}
/** 通过code获取后端项目配置 */
export function getBackProjectConfigByCode(code) {
return request({
url: `/api/project/code/${code}`,
method: 'get'
});
}
/** 删除后端项目配置 */
export function deleteBackProjectConfig(id) {
return request({
url: `/api/project/del/${id}`,
method: 'delete'
});
}
/** 更新后端项目配置 */
export function updateBackProjectConfig(data) {
return request({
url: `/api/project/update`,
method: 'put',
data
});
}
/** 保存后端项目配置 */
export function saveBackProjectConfig(data) {
return request({
url: `/api/project/save`,
method: 'POST',
data
});
}
/** 获取后端项目列表,关联时使用 */
export function getBackProjectConfigList(id) {
return request({
url: `/api/project/simple`,
method: 'get'
});
}
/** 前端项目配置分页 */
export function getFrontProjectConfigByPage(params) {
return request({
url: `/api/project/viewSetting/page`,
method: 'get',
params
});
}
/** 全量前端项目配置 */
export function getAllFrontProjectConfig() {
return request({
url: `/api/project/viewSetting/all`,
method: 'get'
});
}
/** 获取前端项目配置 */
export function getFrontProjectConfigById(id) {
return request({
url: `/api/project/viewSetting/${id}`,
method: 'get'
});
}
/** 删除前端项目配置 */
export function deleteFrontProjectConfig(id) {
return request({
url: `/api/project/viewSetting/del/${id}`,
method: 'delete'
});
}
/** 更新前端项目配置 */
export function updateFrontProjectConfig(data) {
return request({
url: `/api/project/viewSetting/update`,
method: 'put',
data
});
}
/** 保存前端项目配置 */
export function saveFrontProjectConfig(data) {
return request({
url: `/api/project/viewSetting/save`,
method: 'POST',
data
});
}
/** 登录时根据前端标识获取配置 */
export function getFrontProjectConfigByLogin(markKey) {
return request({
url: `/api/project/viewSetting/project/${markKey}`,
method: 'get'
});
}
/** 登录时获取全量前端配置 */
export function getAllFrontProjectConfigByLogin(markKey) {
return request({
url: `/api/project/viewSetting/simple/all`,
method: 'get'
});
}
/** 检查项目code */
export function checkBackProjectExist(params) {
return request({
url: `/api/project/check/code`,
method: 'get',
params
});
}
/** 检查项目markKey */
export function checkFrontProjectExist(params) {
return request({
url: `/api/project/check/markKey`,
method: 'get',
params
});
}
//
export function getUploadUrl(params) {
return request({
url: `/api/minio/preSignedUrl`,
method: 'get',
params
});
}
/** 设置默认组织 */
export function setDefaultOrg(data) {
return request({
url: `/api/project/setDefaultOrg`,
method: 'put',
data
});
}
/** 创建默认组织 */
export function createDefaultOrg(id, data) {
return request({
url: `/api/project/${id}/createDefaultOrg`,
method: 'POST',
data
});
}
/** 登录项目组织列表 */
export function getOrgList(id) {
return request({
url: `/api/project/${id}/orgList`,
method: 'get'
});
}

View File

@ -1,45 +1,18 @@
import request from '@/utils/request';
// 查询理论试题(全部组织)
export function listAllQuestionPage(params) {
return request({
url: `/api/question/paging`,
method: 'get',
params
});
}
// 分页查询理论试题
export function listQuestionPage(params) {
return request({
// url: `/api/questionBank/questions/paging`,
url: `/api/question/org/paging`,
url: `/api/questionBank/questions/paging`,
method: 'get',
params
});
}
// 查询所有理论试题
export function listQuestionAll() {
return request({
url: `/api/question/org`,
method: 'get'
});
}
// 标签列表
export function getLabelList() {
return request({
url: `/api/question/org/label`,
method: 'get'
});
}
// 创建题目
export function createQuestion(data) {
return request({
// url: `/api/questionBank/questions`,
url: `/api/question/org`,
url: `/api/questionBank/questions`,
method: 'post',
data
});
@ -48,55 +21,25 @@ export function createQuestion(data) {
// 删除题目
export function deleteQuestion(questionId) {
return request({
// url: `/api/questionBank/questions/${questionId}`,
url: `/api/question/org`,
method: 'delete',
data: [questionId]
url: `/api/questionBank/questions/${questionId}`,
method: 'delete'
});
}
// 更新题目
export function updateOption(data) {
return request({
// url: `/api/questionBank/questions/${data.id}`,
url: `/api/question/org/${data.id}`,
url: `/api/questionBank/questions/${data.id}`,
method: 'put',
data
});
}
// 获取题目信息
export function getQuestionInfo(questionId, params) {
export function getQuestionInfo(questionId) {
return request({
// url: `/api/questionBank/questions/${questionId}`,
url: `/api/question/org/${questionId}`,
method: 'get',
params
});
}
// 题库批量导入
export function importQuestion(data) {
return request({
url: `/api/question/org/import`,
method: 'post',
data
});
}
// 预览答题
export function testAnswer(questionId, data) {
return request({
url: `/api/question/org/test/answer/${questionId}`,
method: 'post',
data
});
}
// 清空题库
export function clearBank() {
return request({
url: `/api/question/org/clear`,
url: `/api/questionBank/questions/${questionId}`,
method: 'get'
});
}

View File

@ -15,20 +15,3 @@ export function selectQuestionTypeNum(companyId) {
method: 'get'
});
}
/** 加载场景 */
export function loadRace(simulationId, sceneId) {
return request({
url: `/api/race/${simulationId}/load/${sceneId}`,
method: 'put'
});
}
/** 完成任务 */
export function overTask(taskId, data) {
return request({
url: `/api/race/${taskId}/finish`,
method: 'put',
data
});
}

View File

@ -1,10 +0,0 @@
import request from '@/utils/request';
/** 查询用户使用记录统计 */
export function queryUserSimulationRecord(params, userId) {
return request({
url: `/api/record/stats/list/criteria/${userId}`,
method: 'get',
params
});
}

View File

@ -6,15 +6,29 @@ export function createSimulation(data) {
method: 'post'
});
}
/** 根据仿真group获取仿真基础信息 废弃 */
/** 根据仿真group获取仿真基础信息 */
export function getSimulationInfoByGroup(groupId) {
return request({
url: `/common/simulation/${groupId}`,
method: 'get'
});
}
/** 获取仿真成员列表 废弃 */
/** 根据仿真group获取仿真地图数据 */
export function getMapDataByGroup(groupId) {
return request({
url: `/rtSimulation/${groupId}/mapData`,
method: 'get'
});
}
/** 仿真发送指令 */
export function sendSimulationCommand(group, memberId, type, data) {
return request({
url: `/common/simulation/${group}/member/${memberId}/operate/${type}`,
method: 'post',
data
});
}
/** 获取仿真成员列表 */
export function getMemberListCommon(group, role) {
if (!role) {
@ -25,14 +39,14 @@ export function getMemberListCommon(group, role) {
method: 'get'
});
}
/** 获取仿真用户列表 废弃 */
/** 获取仿真用户列表 */
export function getUserListCommon(group) {
return request({
url: `/common/simulation/${group}/users`,
method: 'get'
});
}
/** 销毁仿真 废弃 */
/** 销毁仿真 */
export function destroySimulation(group) {
return request({
url: `/common/simulation/${group}/destroy`,
@ -42,11 +56,11 @@ export function destroySimulation(group) {
/** 初始化仿真 */
export function initSimulation(group) {
return request({
url: `/simulation/new/${group}/reset`,
url: `/common/simulation/${group}/init`,
method: 'put'
});
}
/** 设置故障 废弃 */
/** 设置故障 */
export function setSimulationFault(group, data) {
return request({
url: `/common/simulation/${group}/fault`,
@ -54,7 +68,7 @@ export function setSimulationFault(group, data) {
data
});
}
/** 取消故障 废弃 */
/** 取消故障 */
export function cancelSimulationFault(group, deviceId, faultType) {
return request({
url: `/common/simulation/${group}/device/${deviceId}/fault/${faultType}`,
@ -64,28 +78,28 @@ export function cancelSimulationFault(group, deviceId, faultType) {
/** 仿真运行倍速 */
export function timesSpeedPlayback(group, speed) {
return request({
url: `/simulation/${group}/updateSpeed/${speed}`,
url: `/common/simulation/${group}/updateSpeed/${speed}`,
method: 'put'
});
}
/** 仿真暂停 */
export function simulationPause(group) {
return request({
url: `/simulation/${group}/pause`,
url: `/common/simulation/${group}/pause`,
method: 'put'
});
}
/** 仿真开始 */
export function simulationStart(group) {
return request({
url: `/simulation/${group}/start`,
url: `/common/simulation/${group}/start`,
method: 'put'
});
}
/** 获取存在的仿真列表 */
export function getExistSimulationList(params) {
return request({
url: `/simulation/list`,
url: `/common/simulation/list`,
method: 'get',
params
});
@ -93,15 +107,7 @@ export function getExistSimulationList(params) {
/** 获取仿真用户信息 */
export function getSimulationUserInfo(id) {
return request({
url: `/simulation/${id}/users`,
url: `/common/simulation/${id}/users`,
method: 'get'
});
}
/** 监管仿真 */
export function getSuperviseSimulation(params) {
return request({
url: `/simulation/supervise`,
method: 'get',
params
});
}

View File

@ -47,39 +47,39 @@ export function examNotifyNew({ examId }) {
});
}
/** 获取用户实训列表*/
// export function getSimulationList(data) {
// return request({
// url: `/api/stats/simulation`,
// method: 'get',
// params: data
// });
// }
export function getSimulationList(data) {
return request({
url: `/api/stats/simulation`,
method: 'get',
params: data
});
}
// /** 添加用户仿真数据*/
// export function postSimulationStats(data) {
// return request({
// url: `/api/stats/simulation`,
// method: 'post',
// data: data
// });
// }
/** 添加用户仿真数据*/
export function postSimulationStats(data) {
return request({
url: `/api/stats/simulation`,
method: 'post',
data: data
});
}
// /** 更新用户仿真数据*/
// export function putSimulationStats(data) {
// return request({
// url: `/api/stats/${data.id}`,
// method: 'put',
// data: data
// });
// }
/** 更新用户仿真数据*/
export function putSimulationStats(data) {
return request({
url: `/api/stats/${data.id}`,
method: 'put',
data: data
});
}
/** 删除用户仿真数据*/
// export function deleteSimulationStats(statsId) {
// return request({
// url: `/api/stats/${statsId}`,
// method: 'delete'
// });
// }
export function deleteSimulationStats(statsId) {
return request({
url: `/api/stats/${statsId}`,
method: 'delete'
});
}
/** 录制脚本仿真(新版)*/
export function scriptRecordNotifyNew(scriptId) {
@ -228,22 +228,22 @@ export function handlerIbpEvent(group, button, stationCode, buttonCode) {
});
}
// /** 处理ibp盘事件(按下) */
//
// export function handleIbpPress(group, stationCode, buttonCode) {
// return request({
// url: `/simulation/${group}/ibp/press/${stationCode}/${buttonCode}`,
// method: 'put'
// });
// }
// /** 处理ibp盘事件(松开) */
//
// export function handleIbpRelease(group, stationCode, buttonCode) {
// return request({
// url: `/simulation/${group}/ibp/release/${stationCode}/${buttonCode}`,
// method: 'put'
// });
// }
/** 处理ibp盘事件(按下) */
export function handleIbpPress(group, stationCode, buttonCode) {
return request({
url: `/simulation/${group}/ibp/press/${stationCode}/${buttonCode}`,
method: 'put'
});
}
/** 处理ibp盘事件(松开) */
export function handleIbpRelease(group, stationCode, buttonCode) {
return request({
url: `/simulation/${group}/ibp/release/${stationCode}/${buttonCode}`,
method: 'put'
});
}
/** 预览脚本仿真(新版)*/
export function scriptDraftRecordNotifyNew(scriptId) {
@ -296,7 +296,7 @@ export function modifySystemTime(data, group) {
/** 新版地图按计划行车 */
export function ranAsPlan(data, group) {
return request({
url: `/simulation/new/${group}/runAsPlan`,
url: `/simulation/${group}/ranAsPlan`,
method: 'post',
data: data
});
@ -349,15 +349,6 @@ export function simulationLoadRunPlan(group, templateId) {
method: 'put'
});
}
/** 仿真里加载草稿运行图 */
export function simulationLoadDraftRunPlan(group, draftRunPlanId) {
return request({
url:`/simulation/${group}/load/draftRunPlan/${draftRunPlanId} `,
method: 'put'
});
}
/** 根据车次号获取列车信息 */
export function getTrainDetailBytripNumber(group, params) {
return request({
@ -515,10 +506,10 @@ export function getStandListByRunLineOrTrainCode(group, params) {
params
});
}
/** 沙盘列车控制 */
export function sandTableTrainControl(group, params) {
/** 上饶列车控制 */
export function srTrainControl(group, params) {
return request({
url: `/api/sandTable/${group}/control`,
url: `/api/sr/${group}/control`,
method: 'put',
params
});
@ -546,64 +537,3 @@ export function queryPaTimedList(group, params) {
params
});
}
/** 创建仿真 */
export function createSimulation(id) {
return request({
url: `/simulation/new/mapFunction/${id}`,
method: 'post'
});
}
/** 根据地图ID和功能ID获取仿真GroupId */
export function getGroupByMapAndFunction(mapId, functionId) {
return request({
url: `/simulation/new/map/${mapId}/function/${functionId}`,
method: 'get'
});
}
/** 由系统管理员和教员销毁仿真 */
export function destroySimulationByAdmin(group) {
return request({
url: `/simulation/${group}/destroy`,
method: 'delete'
});
}
/** 非仿真创建者退出仿真 */
export function exitSimulation(group) {
return request({
url: `/simulation/${group}/exit`,
method: 'put'
});
}
/** 仿真监管那里进入仿真 */
export function enterSimulationByTeacher(group) {
return request({
url: `/simulation/${group}/monitor`,
method: 'post'
});
}
/** 切换角色后触发消息 */
export function getUnreceivedMessages(simulationId, memberId) {
return request({
url: `/simulation/${simulationId}/${memberId}/unreceivedMessages`,
method: 'get'
});
}
/** 控制叶佳供货的小车 */
export function controlYjTrain(simulationId, right) {
return request({
url: `/api/realDevice/${simulationId}/train`,
method: 'put',
params: { right }
});
}
/** 创建仿真不通过功能id */
export function createSimulationNoFunction(mapId, data) {
return request({
url: `/simulation/new/${mapId}`,
method: 'post',
data
});
}

View File

@ -1,27 +0,0 @@
import request from '@/utils/request';
/** 删除第三方配置 */
export function deleteThirdAccountConfig(id) {
return request({
url: `/api/thirdAccountConfig/${id}`,
method: 'delete'
});
}
/** 分页查询所有配置 */
export function queryThirdAccountConfig(params) {
return request({
url: `/api/thirdAccountConfig/paged`,
method: 'get',
params
});
}
/** 新增或更新第三方配置 */
export function updateThirdAccountConfig(data) {
return request({
url: `/api/thirdAccountConfig`,
method: 'post',
data
});
}

View File

@ -32,21 +32,6 @@ export function updateTraining(data) {
data
});
}
/** 更新发布实训信息(标签, 描述, 标题) */
export function updateTrainingInfo(data) {
return request({
url: `/api/v2/training/published/update`,
method: 'put',
data
});
}
/** 已发布实训转为草稿 */
export function saveAsTrainingDraft(trainingId) {
return request({
url: `/api/v2/training/published/${trainingId}/saveAsDraft`,
method: 'post'
});
}
/** 查询步骤列表 */
export function getTrainingStepList(trainingId) {
return request({
@ -56,6 +41,7 @@ export function getTrainingStepList(trainingId) {
}
/** 修改实训所有步骤 */
export function updateTrainingStep(group, trainingId, data) {
console.log(group, trainingId, '*******');
return request({
url: `/api/v2/draft/training/${group}/${trainingId}/step/update`,
method: 'put',
@ -166,33 +152,10 @@ export function getTrainingGradeRules(trainingId) {
method: 'get'
});
}
/** 清空重置实训 */
export function clearDesignTraining(trainingId, group) {
/** 清空步骤 */
export function clearTrainingStep(trainingId) {
return request({
url: `/api/v2/draft/training/${group}/reset/${trainingId}`,
url: `/api/v2/draft/training/${trainingId}/step/clear`,
method: 'delete'
});
}
/** 导出实训数据 */
export function exportTrainingData(data) {
return request({
url: `/api/v2/training/published/export`,
method: 'post',
data
});
}
/** 导入实训数据 */
export function importTrainingData(data) {
return request({
url: `/api/v2/training/published/import`,
method: 'post',
data
});
}
/** 实训跳转到当前步骤*/
export function jumpToTraining(group, stepId) {
return request({
url: `/api/training2Simulation/${group}/jumpTo/${stepId}`,
method: 'put'
});
}

View File

@ -75,129 +75,4 @@ export function getSubSystemByProjectCode() {
method: 'get'
});
}
/** 创建地图系统 */
export function createMapFunction(data) {
return request({
url: `/api/mapFunction`,
method: 'post',
data
});
}
/** 列表查询地图系统 */
export function queryMapFunctionList(params) {
return request({
url: `/api/mapFunction/list`,
method: 'get',
params
});
}
/** 更新地图系统 */
export function updateMapFunction(data) {
return request({
url: `/api/mapFunction/${data.id}`,
method: 'put',
data
});
}
/** 删除地图系统 */
export function deleteMapFunction(id) {
return request({
url: `/api/mapFunction/${id}`,
method: 'delete'
});
}
/** 分页查询地图系统 */
export function queryMapFunctionPaged(params) {
return request({
url: `/api/mapFunction/paged`,
method: 'get',
params
});
}
/** 生成地图子系统 */
export function generateMapFunctionNew(mapId, data) {
return request({
url: `/api/mapFunction/${mapId}/generate`,
method: 'post',
data
});
}
/** 根据id查询地图系统 */
export function getMapFunctioById(id) {
return request({
url: `/api/mapFunction/${id}`,
method: 'get'
});
}
/** 一键删除地图下所有线路功能 */
export function deleteAllMapFunction(mapId) {
return request({
url: `/api/mapFunction/batch/${mapId}`,
method: 'delete'
});
}
/** 新增分组 */
export function updateMapFunctionSubset(data) {
return request({
url: `/api/mapFunction/group`,
method: 'put',
data
});
}
/** 根据模板生成地图功能 */
export function generateMapFunctionByTemplate(data) {
return request({
url: `/api/mapFunction/generate/from/template`,
method: 'post',
data
});
}
/** 创建模板线路功能 */
export function createTemplateMapFunction(data) {
return request({
url: `/api/mapFunction/template`,
method: 'post',
data
});
}
/** 修改模板线路功能 */
export function updateTemplateMapFunction(data) {
return request({
url: `/api/mapFunction/template/${data.id}`,
method: 'put',
data
});
}
/** 删除模板线路功能 */
export function deleteTemplateMapFunction(id) {
return request({
url: `/api/mapFunction/template/${id}`,
method: 'delete'
});
}
/** 查询模板线路功能列表 */
export function queryTemplateMapFunctionList(params) {
return request({
url: `/api/mapFunction/template/list`,
method: 'get',
params
});
}
/** 分页查询模板线路功能列表 */
export function queryTemplateMapFunPaged(params) {
return request({
url: `/api/mapFunction/template/paged`,
method: 'get',
params
});
}
/** 线路功能覆盖生成(主要用于客户端重新生成后线路功能里客户端重新匹配) */
export function generateMapFun(data) {
return request({
url: `/api/mapFunction/generate/mapIds`,
method: 'post',
data
});
}

View File

@ -1,35 +0,0 @@
import request from '@/utils/request';
/** 设置权限失效或有效*/
export function setPermissonInValid(subjectId) {
return request({
url: `/api/v2/permission/subject/inValid/${subjectId}`,
method: 'get'
});
}
/** 用户权限列表*/
export function listPermision(params) {
return request({
url: `/api/v2/permission/subject/page`,
method: 'get',
params: params
});
}
/** 查看用户分发的下级所有用户权限*/
export function getPermissonInDistribute(subjectId) {
return request({
url: `/api/v2/permission/subject/distribute/${subjectId}`,
method: 'get'
});
}
/** 查看当前mapId 下用户的所有权限及功能*/
export function getMapIdPermisson(mapId) {
return request({
url: `/api/v2/permission/subject/permission/${mapId}`,
method: 'get'
});
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,6 +1,6 @@
<template>
<div class="container">
<li v-if="option.children && option.children.length && checkVisible(option)" class="menu-item" :class="popClass" @mouseenter="enter($vnode.key)" @mouseleave="leave">
<li v-if="option.children && option.children.length" class="menu-item" :class="popClass" @mouseenter="enter($vnode.key)" @mouseleave="leave">
<div ref="flexBox" class="flex-box">
<el-button type="text" class="item" :disabled="checkDisabled(option)">
<el-link v-if="option.tipsType" :type="option.tipsType" :underline="false">{{ option.label }}</el-link>
@ -11,7 +11,7 @@
<ul v-if="isPopup" ref="popup" class="menu" :style="{display: isShow? 'block': 'table', marginLeft: marginLeft+'px'}">
<div class="menu-pop pop-menu">
<div v-show="isShow" class="arrow el-icon-arrow-down" />
<pop-menu-item v-for="(el, i) in option.children" :key="i" :option="el" :pop-class="popClass" :allowed-color="allowedColor" :disabled-color="disabledColor" @close="close" />
<pop-menu-item v-for="(el, i) in option.children" :key="i" :option="el" :pop-class="popClass" :allowedColor="allowedColor" :disabledColor="disabledColor" @close="close" />
<div v-show="isShow" class="arrow el-icon-arrow-up" />
</div>
</ul>
@ -54,7 +54,7 @@ export default {
},
disabledColor: {
type: String,
default: '#000'
default: '#000',
},
allowedColor: {
type: String,

View File

@ -303,9 +303,7 @@ export default {
methods: {
//
initQueryModel() {
if (!this.queryForm.notRecord) {
this.formModel = localStore.get(this.$route.path) || this.formModel;
}
this.buildForm();
if (typeof this.queryForm.initLoadCallback === 'function') {
this.queryForm.initLoadCallback(this.formModel);
@ -352,6 +350,7 @@ export default {
//
const queryObject = {};
const model = {};
// debugger;
for (const item in this.queryForm.queryObject) {
if (this.queryForm.queryObject.show === false) {
continue;

View File

@ -93,7 +93,7 @@
:sort-by="column.sortBy"
>
<template slot-scope="scope">
<div style="white-space: pre-wrap;" v-html="scope.row[column.prop]" />
<div v-html="scope.row[column.prop]" />
</template>
</el-table-column>
<el-table-column
@ -332,6 +332,7 @@ export default {
methods: {
handleEdit(row, column, index) {
this.$set(row, 'isEdit', true);
// console.log(this.$refs);
// if (this.$refs.customerInput.length) {
// this.$refs.customerInput[index].$el.querySelector('input').focus();
// }

View File

@ -77,7 +77,7 @@ export default {
size: 3,
action: `${this.$store.state.user.uploadUrl}/api/upload/PICTURE?appId=00001&appSecret=joylink00001`,
response: (res) => {
return `${this.$store.state.user.ossUrl}${res.data}`;
return `${this.$store.state.user.resourcesUrl}${res.data}`;
},
error: () => { that.$message.error('图片上传失败,请检查网络状态'); },
sizeError: () => { that.$message.error('图片上传失败图片大小限制3MB'); } //

View File

@ -1,835 +0,0 @@
<template>
<!-- 本体部分 -->
<div
:class="['vue-puzzle-vcode', { show_: show }]"
@mousedown="onCloseMouseDown"
@mouseup="onCloseMouseUp"
@touchstart="onCloseMouseDown"
@touchend="onCloseMouseUp"
>
<div
class="vue-auth-box_"
@mousedown.stop
@touchstart.stop
>
<div
class="auth-body_"
:style="`height: ${canvasHeight}px`"
>
<!-- 主图有缺口 -->
<canvas
ref="canvas1"
:width="canvasWidth"
:height="canvasHeight"
:style="`width:${canvasWidth}px;height:${canvasHeight}px`"
/>
<!-- 成功后显示的完整图 -->
<canvas
ref="canvas3"
:class="['auth-canvas3_', { show: isSuccess }]"
:width="canvasWidth"
:height="canvasHeight"
:style="`width:${canvasWidth}px;height:${canvasHeight}px`"
/>
<!-- 小图 -->
<canvas
ref="canvas2"
:width="puzzleBaseSize"
class="auth-canvas2_"
:height="canvasHeight"
:style="
`width:${puzzleBaseSize}px;height:${canvasHeight}px;transform:translateX(${styleWidth -
sliderBaseSize -
(puzzleBaseSize - sliderBaseSize) *
((styleWidth - sliderBaseSize) /
(canvasWidth - sliderBaseSize))}px)`
"
/>
<div :class="['loading-box_', { hide_: !loading }]">
<div class="loading-gif_">
<span />
<span />
<span />
<span />
<span />
</div>
</div>
<div :class="['info-box_', { show: infoBoxShow }, { fail: infoBoxFail }]">
{{ infoText }}
</div>
<div
:class="['flash_', { show: isSuccess }]"
:style="
`transform: translateX(${
isSuccess
? `${canvasWidth + canvasHeight * 0.578}px`
: `-${canvasHeight * 0.578}px`
}) skew(-30deg, 0);`
"
/>
<img
class="reset_"
:src="resetSvg"
@click="reset"
>
</div>
<div class="auth-control_">
<div
class="range-box"
:style="`height:${sliderBaseSize}px`"
>
<div class="range-text">{{ sliderText }}</div>
<div
ref="range-slider"
class="range-slider"
:style="`width:${styleWidth}px`"
>
<div
:class="['range-btn', { isDown: mouseDown }]"
:style="`width:${sliderBaseSize}px`"
@mousedown="onRangeMouseDown($event)"
@touchstart="onRangeMouseDown($event)"
>
<div />
<div />
<div />
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import resetSvg from '@/assets/reset.png';
export default {
props: {
canvasWidth: { type: Number, default: 310 }, // canvas
canvasHeight: { type: Number, default: 160 }, // canvas
//
show: { type: Boolean, default: false },
puzzleScale: { type: Number, default: 1 }, //
sliderSize: { type: Number, default: 50 }, //
range: { type: Number, default: 10 }, //
//
imgs: {
type: Array,
default() {
return [];
}
},
successText: {
type: String,
default: '验证通过!'
},
failText: {
type: String,
default: '验证失败,请重试'
},
sliderText: {
type: String,
default: '拖动滑块完成拼图'
}
},
data() {
return {
mouseDown: false, //
startWidth: 50, // width
startX: 0, // X
newX: 0, // X
pinX: 0, // X
pinY: 0, // Y
loading: false, // onload
isCanSlide: false, //
error: false, //
infoBoxShow: false, //
infoText: '', //
infoBoxFail: false, //
timer1: null, // setTimout1
closeDown: false, // Macclick BUG
isSuccess: false, //
imgIndex: -1, //
isSubmting: false, //
resetSvg
};
},
/** 计算属性 **/
computed: {
// styleWidth
styleWidth() {
const w = this.startWidth + this.newX - this.startX;
return w < this.sliderBaseSize
? this.sliderBaseSize
: w > this.canvasWidth
? this.canvasWidth
: w;
},
// 60 * 0.2~2
puzzleBaseSize() {
return Math.round(
Math.max(Math.min(this.puzzleScale, 2), 0.2) * 52.5 + 6
);
},
// sliderSize
sliderBaseSize() {
return Math.max(
Math.min(
Math.round(this.sliderSize),
Math.round(this.canvasWidth * 0.5)
),
10
);
}
},
/** 监听 **/
watch: {
show(newV) {
//
if (newV) {
// document.body.classList.add('vue-puzzle-overflow');
this.reset();
} else {
this.isSubmting = false;
this.isSuccess = false;
this.infoBoxShow = false;
// document.body.classList.remove('vue-puzzle-overflow');
}
}
},
/** 生命周期 **/
mounted() {
// document.body.appendChild(this.$el);
document.addEventListener('mousemove', this.onRangeMouseMove, false);
document.addEventListener('mouseup', this.onRangeMouseUp, false);
document.addEventListener('touchmove', this.onRangeMouseMove, {
passive: false
});
document.addEventListener('touchend', this.onRangeMouseUp, false);
if (this.show) {
document.body.classList.add('vue-puzzle-overflow');
this.reset();
}
},
beforeDestroy() {
clearTimeout(this.timer1);
// document.body.removeChild(this.$el);
document.removeEventListener('mousemove', this.onRangeMouseMove, false);
document.removeEventListener('mouseup', this.onRangeMouseUp, false);
document.removeEventListener('touchmove', this.onRangeMouseMove, {
passive: false
});
document.removeEventListener('touchend', this.onRangeMouseUp, false);
},
/** 方法 **/
methods: {
//
onClose() {
if (!this.mouseDown && !this.isSubmting) {
clearTimeout(this.timer1);
this.$emit('close');
}
},
onCloseMouseDown() {
this.closeDown = true;
},
onCloseMouseUp() {
if (this.closeDown) {
this.onClose();
}
this.closeDown = false;
},
//
onRangeMouseDown(e) {
if (this.isCanSlide) {
this.mouseDown = true;
this.startWidth = this.$refs['range-slider'].clientWidth;
this.newX = e.clientX || e.changedTouches[0].clientX;
this.startX = e.clientX || e.changedTouches[0].clientX;
}
},
//
onRangeMouseMove(e) {
if (this.mouseDown) {
e.preventDefault();
this.newX = e.clientX || e.changedTouches[0].clientX;
}
},
//
onRangeMouseUp() {
if (this.mouseDown) {
this.mouseDown = false;
this.submit();
}
},
/**
* 开始进行
* @param withCanvas 是否强制使用canvas随机作图
*/
init(withCanvas) {
//
if (this.loading && !withCanvas) {
return;
}
this.loading = true;
this.isCanSlide = false;
const c = this.$refs.canvas1;
const c2 = this.$refs.canvas2;
const c3 = this.$refs.canvas3;
const ctx = c.getContext('2d');
const ctx2 = c2.getContext('2d');
const ctx3 = c3.getContext('2d');
const isFirefox = navigator.userAgent.indexOf('Firefox') >= 0 && navigator.userAgent.indexOf('Windows') >= 0; // windows
const img = document.createElement('img');
ctx.fillStyle = 'rgba(255,255,255,1)';
ctx3.fillStyle = 'rgba(255,255,255,1)';
ctx.clearRect(0, 0, this.canvasWidth, this.canvasHeight);
ctx2.clearRect(0, 0, this.canvasWidth, this.canvasHeight);
//
this.pinX = this.getRandom(this.puzzleBaseSize, this.canvasWidth - this.puzzleBaseSize - 20); // 20
this.pinY = this.getRandom(20, this.canvasHeight - this.puzzleBaseSize - 20); // - - 20
img.crossOrigin = 'anonymous'; //
img.onload = () => {
const [x, y, w, h] = this.makeImgSize(img);
ctx.save();
//
this.paintBrick(ctx);
ctx.closePath();
if (!isFirefox) {
ctx.shadowOffsetX = 0;
ctx.shadowOffsetY = 0;
ctx.shadowColor = '#000';
ctx.shadowBlur = 3;
ctx.fill();
ctx.clip();
} else {
ctx.clip();
ctx.save();
ctx.shadowOffsetX = 0;
ctx.shadowOffsetY = 0;
ctx.shadowColor = '#000';
ctx.shadowBlur = 3;
ctx.fill();
ctx.restore();
}
ctx.drawImage(img, x, y, w, h);
ctx3.fillRect(0, 0, this.canvasWidth, this.canvasHeight);
ctx3.drawImage(img, x, y, w, h);
//
ctx.globalCompositeOperation = 'source-atop';
this.paintBrick(ctx);
ctx.arc(
this.pinX + Math.ceil(this.puzzleBaseSize / 2),
this.pinY + Math.ceil(this.puzzleBaseSize / 2),
this.puzzleBaseSize * 1.2,
0,
Math.PI * 2,
true
);
ctx.closePath();
ctx.shadowColor = 'rgba(255, 255, 255, .8)';
ctx.shadowOffsetX = -1;
ctx.shadowOffsetY = -1;
ctx.shadowBlur = Math.min(Math.ceil(8 * this.puzzleScale), 12);
ctx.fillStyle = '#ffffaa';
ctx.fill();
// ctx2
const imgData = ctx.getImageData(
this.pinX - 3, // -3px+3px
this.pinY - 20,
this.pinX + this.puzzleBaseSize + 5,
this.pinY + this.puzzleBaseSize + 5
);
ctx2.putImageData(imgData, 0, this.pinY - 20);
// ctx2.drawImage(c, this.pinX - 3,this.pinY - 20,this.pinX + this.puzzleBaseSize + 5,this.pinY + this.puzzleBaseSize + 5,
// 0, this.pinY - 20, this.pinX + this.puzzleBaseSize + 5, this.pinY + this.puzzleBaseSize + 5);
//
ctx.restore();
ctx.clearRect(0, 0, this.canvasWidth, this.canvasHeight);
//
ctx.save();
this.paintBrick(ctx);
ctx.globalAlpha = 0.8;
ctx.fillStyle = '#ffffff';
ctx.fill();
ctx.restore();
//
ctx.save();
ctx.globalCompositeOperation = 'source-atop';
this.paintBrick(ctx);
ctx.arc(
this.pinX + Math.ceil(this.puzzleBaseSize / 2),
this.pinY + Math.ceil(this.puzzleBaseSize / 2),
this.puzzleBaseSize * 1.2,
0,
Math.PI * 2,
true
);
ctx.shadowColor = '#000';
ctx.shadowOffsetX = 2;
ctx.shadowOffsetY = 2;
ctx.shadowBlur = 16;
ctx.fill();
ctx.restore();
//
ctx.save();
ctx.globalCompositeOperation = 'destination-over';
ctx.drawImage(img, x, y, w, h);
ctx.restore();
this.loading = false;
this.isCanSlide = true;
};
img.onerror = () => {
this.init(true); // canvas
};
if (!withCanvas && this.imgs && this.imgs.length) {
let randomNum = this.getRandom(0, this.imgs.length - 1);
if (randomNum === this.imgIndex) {
if (randomNum === this.imgs.length - 1) {
randomNum = 0;
} else {
randomNum++;
}
}
this.imgIndex = randomNum;
img.src = this.imgs[randomNum];
} else {
img.src = this.makeImgWithCanvas();
}
},
// -
getRandom(min, max) {
return Math.ceil(Math.random() * (max - min) + min);
},
// - covercanvas w/h
makeImgSize(img) {
const imgScale = img.width / img.height;
const canvasScale = this.canvasWidth / this.canvasHeight;
let x = 0;
let y = 0;
let w = 0;
let h = 0;
if (imgScale > canvasScale) {
h = this.canvasHeight;
w = imgScale * h;
y = 0;
x = (this.canvasWidth - w) / 2;
} else {
w = this.canvasWidth;
h = w / imgScale;
x = 0;
y = (this.canvasHeight - h) / 2;
}
return [x, y, w, h];
},
//
paintBrick(ctx) {
const moveL = Math.ceil(15 * this.puzzleScale); // 线
ctx.beginPath();
ctx.moveTo(this.pinX, this.pinY);
ctx.lineTo(this.pinX + moveL, this.pinY);
ctx.arcTo(
this.pinX + moveL,
this.pinY - moveL / 2,
this.pinX + moveL + moveL / 2,
this.pinY - moveL / 2,
moveL / 2
);
ctx.arcTo(
this.pinX + moveL + moveL,
this.pinY - moveL / 2,
this.pinX + moveL + moveL,
this.pinY,
moveL / 2
);
ctx.lineTo(this.pinX + moveL + moveL + moveL, this.pinY);
ctx.lineTo(this.pinX + moveL + moveL + moveL, this.pinY + moveL);
ctx.arcTo(
this.pinX + moveL + moveL + moveL + moveL / 2,
this.pinY + moveL,
this.pinX + moveL + moveL + moveL + moveL / 2,
this.pinY + moveL + moveL / 2,
moveL / 2
);
ctx.arcTo(
this.pinX + moveL + moveL + moveL + moveL / 2,
this.pinY + moveL + moveL,
this.pinX + moveL + moveL + moveL,
this.pinY + moveL + moveL,
moveL / 2
);
ctx.lineTo(
this.pinX + moveL + moveL + moveL,
this.pinY + moveL + moveL + moveL
);
ctx.lineTo(this.pinX, this.pinY + moveL + moveL + moveL);
ctx.lineTo(this.pinX, this.pinY + moveL + moveL);
ctx.arcTo(
this.pinX + moveL / 2,
this.pinY + moveL + moveL,
this.pinX + moveL / 2,
this.pinY + moveL + moveL / 2,
moveL / 2
);
ctx.arcTo(
this.pinX + moveL / 2,
this.pinY + moveL,
this.pinX,
this.pinY + moveL,
moveL / 2
);
ctx.lineTo(this.pinX, this.pinY);
},
// canvas
makeImgWithCanvas() {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
canvas.width = this.canvasWidth;
canvas.height = this.canvasHeight;
ctx.fillStyle = `rgb(${this.getRandom(100, 255)},${this.getRandom(
100,
255
)},${this.getRandom(100, 255)})`;
ctx.fillRect(0, 0, this.canvasWidth, this.canvasHeight);
// 10
for (let i = 0; i < 12; i++) {
ctx.fillStyle = `rgb(${this.getRandom(100, 255)},${this.getRandom(
100,
255
)},${this.getRandom(100, 255)})`;
ctx.strokeStyle = `rgb(${this.getRandom(100, 255)},${this.getRandom(
100,
255
)},${this.getRandom(100, 255)})`;
if (this.getRandom(0, 2) > 1) {
//
ctx.save();
ctx.rotate((this.getRandom(-90, 90) * Math.PI) / 180);
ctx.fillRect(
this.getRandom(-20, canvas.width - 20),
this.getRandom(-20, canvas.height - 20),
this.getRandom(10, canvas.width / 2 + 10),
this.getRandom(10, canvas.height / 2 + 10)
);
ctx.restore();
} else {
//
ctx.beginPath();
const ran = this.getRandom(-Math.PI, Math.PI);
ctx.arc(
this.getRandom(0, canvas.width),
this.getRandom(0, canvas.height),
this.getRandom(10, canvas.height / 2 + 10),
ran,
ran + Math.PI * 1.5
);
ctx.closePath();
ctx.fill();
}
}
return canvas.toDataURL('image/png');
},
//
submit() {
this.isSubmting = true;
// x = puzzleX - () + (puzzle - ) * /canvas
// + slider
const x = Math.abs(
this.pinX -
(this.styleWidth - this.sliderBaseSize) +
(this.puzzleBaseSize - this.sliderBaseSize) *
((this.styleWidth - this.sliderBaseSize) /
(this.canvasWidth - this.sliderBaseSize)) -
3
);
if (x < this.range) {
//
this.infoText = this.successText;
this.infoBoxFail = false;
this.infoBoxShow = true;
this.isCanSlide = false;
this.isSuccess = true;
//
clearTimeout(this.timer1);
this.timer1 = setTimeout(() => {
//
this.isSubmting = false;
this.$emit('success', x);
}, 800);
} else {
//
this.infoText = this.failText;
this.infoBoxFail = true;
this.infoBoxShow = true;
this.isCanSlide = false;
//
this.$emit('fail', x);
// 800ms
clearTimeout(this.timer1);
this.timer1 = setTimeout(() => {
this.isSubmting = false;
this.reset();
}, 800);
}
},
// -
resetState() {
this.infoBoxFail = false;
this.infoBoxShow = false;
this.isCanSlide = false;
this.isSuccess = false;
this.startWidth = this.sliderBaseSize; // width
this.startX = 0; // X
this.newX = 0; // X
},
//
reset() {
if (this.isSubmting) {
return;
}
this.resetState();
this.init();
}
}
};
</script>
<style lang="scss">
.vue-puzzle-vcode {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background-color: rgba(0, 0, 0, 0.3);
z-index: 999;
opacity: 0;
pointer-events: none;
transition: opacity 200ms;
&.show_ {
opacity: 1;
pointer-events: auto;
}
}
.vue-auth-box_ {
position: absolute;
top: 47%;
left: 50%;
transform: translate(-50%, -50%);
padding: 20px;
background: #fff;
user-select: none;
border-radius: 3px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
.auth-body_ {
position: relative;
overflow: hidden;
border-radius: 3px;
.loading-box_ {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background-color: rgba(0, 0, 0, 0.8);
z-index: 20;
opacity: 1;
transition: opacity 200ms;
display: flex;
align-items: center;
justify-content: center;
&.hide_ {
opacity: 0;
pointer-events: none;
.loading-gif_ {
span {
animation-play-state: paused;
}
}
}
.loading-gif_ {
flex: none;
height: 5px;
line-height: 0;
@keyframes load {
0% {
opacity: 1;
transform: scale(1.3);
}
100% {
opacity: 0.2;
transform: scale(0.3);
}
}
span {
display: inline-block;
width: 5px;
height: 100%;
margin-left: 2px;
border-radius: 50%;
background-color: #888;
animation: load 1.04s ease infinite;
&:nth-child(1) {
margin-left: 0;
}
&:nth-child(2) {
animation-delay: 0.13s;
}
&:nth-child(3) {
animation-delay: 0.26s;
}
&:nth-child(4) {
animation-delay: 0.39s;
}
&:nth-child(5) {
animation-delay: 0.52s;
}
}
}
}
.info-box_ {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 24px;
line-height: 24px;
text-align: center;
overflow: hidden;
font-size: 13px;
background-color: #83ce3f;
opacity: 0;
transform: translateY(24px);
transition: all 200ms;
color: #fff;
z-index: 10;
&.show {
opacity: 0.95;
transform: translateY(0);
}
&.fail {
background-color: #ce594b;
}
}
.auth-canvas2_ {
position: absolute;
top: 0;
left: 0;
width: 60px;
height: 100%;
z-index: 2;
}
.auth-canvas3_ {
position: absolute;
top: 0;
left: 0;
opacity: 0;
transition: opacity 600ms;
z-index: 3;
&.show {
opacity: 1;
}
}
.flash_ {
position: absolute;
top: 0;
left: 0;
width: 30px;
height: 100%;
background-color: rgba(255, 255, 255, 0.1);
z-index: 3;
&.show {
transition: transform 600ms;
}
}
.reset_ {
position: absolute;
top: 2px;
right: 2px;
width: 35px;
height: auto;
z-index: 12;
cursor: pointer;
transition: transform 200ms;
transform: rotate(0deg);
&:hover {
transform: rotate(-90deg);
}
}
}
.auth-control_ {
.range-box {
position: relative;
width: 100%;
background-color: #eef1f8;
margin-top: 20px;
border-radius: 3px;
box-shadow: 0 0 8px rgba(240, 240, 240, 0.6) inset;
.range-text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 14px;
color: #b7bcd1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: center;
width: 100%;
}
.range-slider {
position: absolute;
height: 100%;
width: 50px;
background-color: rgba(106, 160, 255, 0.8);
border-radius: 3px;
.range-btn {
position: absolute;
display: flex;
align-items: center;
justify-content: center;
right: 0;
width: 50px;
height: 100%;
background-color: #fff;
border-radius: 3px;
box-shadow: 0 0 4px #ccc;
cursor: pointer;
& > div {
width: 0;
height: 40%;
transition: all 200ms;
&:nth-child(2) {
margin: 0 4px;
}
border: solid 1px #6aa0ff;
}
&:hover,
&.isDown {
& > div:first-child {
border: solid 4px transparent;
height: 0;
border-right-color: #6aa0ff;
}
& > div:nth-child(2) {
border-width: 3px;
height: 0;
border-radius: 3px;
margin: 0 6px;
border-right-color: #6aa0ff;
}
& > div:nth-child(3) {
border: solid 4px transparent;
height: 0;
border-left-color: #6aa0ff;
}
}
}
}
}
}
}
.vue-puzzle-overflow {
overflow: hidden !important;
}
</style>

View File

@ -1,8 +0,0 @@
import Vue from 'vue';
import install from './verticalDrag';
const verticalDrag = function(Vue) {
Vue.directive('verticalDrag', install);
};
Vue.use(verticalDrag);

View File

@ -1,101 +0,0 @@
/* 垂直拖拽 */
export default {
bind(el) {
const dialogHeaderEl = el.querySelector('.verticalDrag__header');
const dialogFooterEl = el.querySelector('.verticalDrag__footer');
const dragDom = el;
dialogHeaderEl.style.cursor = 'move';
dialogFooterEl.style.cursor = 'move';
const vD = 5;
/** 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);*/
const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null);
dialogHeaderEl.onmousedown = (e) => {
e.stopPropagation();
/** 鼠标按下,计算当前元素距离可视区的距离*/
const disY = e.clientY;
const oY = dialogHeaderEl.offsetHeight;
const bY = dragDom.offsetHeight;
/** 获取到的值带px 正则匹配替换*/
let styT;
/** 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px*/
if (sty.top.includes('%')) {
styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100);
} else {
styT = +sty.top.replace(/\px/g, '');
}
document.onmousemove = function (e) {
e.preventDefault();
e.stopPropagation();
let cY = e.clientY;
if (cY < oY + vD) {
cY = oY + vD;
}
if (cY > document.body.clientHeight - bY - vD) {
cY = document.body.clientHeight - bY - vD;
}
/** 通过事件委托,计算移动的距离*/
const t = cY - disY;
/** 移动当前元素*/
dragDom.style.top = `${t + styT}px`;
/** 将此时的位置传出去*/
// binding.value({ x: e.pageX, y: e.pageY });
};
document.onmouseup = function () {
e.stopPropagation();
document.onmousemove = null;
document.onmouseup = null;
};
};
dialogFooterEl.onmousedown = (e) => {
e.stopPropagation();
/** 鼠标按下,计算当前元素距离可视区的距离*/
const disY = e.clientY;
const oY = dialogFooterEl.offsetHeight;
const bY = dragDom.offsetHeight;
/** 获取到的值带px 正则匹配替换*/
let styT;
/** 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px*/
if (sty.top.includes('%')) {
styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100);
} else {
styT = +sty.top.replace(/\px/g, '');
}
document.onmousemove = function (e) {
e.preventDefault();
e.stopPropagation();
let cY = e.clientY;
if (cY < bY + vD) {
cY = bY + vD;
}
if (cY > document.body.clientHeight - oY - vD) {
cY = document.body.clientHeight - oY - vD;
}
/** 通过事件委托,计算移动的距离*/
const t = cY - disY;
/** 移动当前元素*/
dragDom.style.top = `${t + styT}px`;
/** 将此时的位置传出去*/
// binding.value({ x: e.pageX, y: e.pageY });
};
document.onmouseup = function () {
e.stopPropagation();
document.onmousemove = null;
document.onmouseup = null;
};
};
}
};

View File

@ -29,7 +29,6 @@ import systemGenerate from './systemGenerate';
import login from './login';
import designPlatform from './designPlatform';
import trainingManage from './trainingManage';
import newRouter from './newRouter';
export default {
enLocale,
@ -62,6 +61,5 @@ export default {
systemGenerate,
login,
designPlatform,
trainingManage,
newRouter
trainingManage
};

View File

@ -18,7 +18,5 @@ export default {
getLoginQrCode: 'Failed to get login qr code, please refresh and try again',
language: 'Language',
clickSwitchLanguage: 'Click switch language',
accountName: 'Account name',
registerAccount: 'Register account',
forgetPassword: 'Forget password?'
accountName: 'Account name'
};

View File

@ -1,54 +0,0 @@
export default {
simulation: 'simulation',
multiplayerSimulation: 'Many simulation',
regulationSimulation: 'Regulation of the simulation',
teachingManagement: 'teaching management',
classroom: 'classroom management',
student: 'student management',
theory: 'The theory of management',
training: 'Practical teaching management',
exam: 'examination management',
lineDesign: 'track design',
case: 'case',
SystemManagement: 'System management',
SystemDataManagement: 'System data management',
dataDictionary: 'Data dictionary',
SystemAccountManagement: 'System Account Management',
ThirdPartyAccounts: 'Configuring Third-Party Accounts',
OnlineInformationManagement: 'Online information management',
loginUser: 'Online users',
cacheDataManage: 'Cache data management',
simulationManage: 'simulation management',
companyUserManage: 'Organization User Management',
companyManage: 'Company manage',
lineDataManage: 'Line data management',
lineTypeManage: 'Line type management',
linePacketManage: 'Line packet management',
teachingDataManage: 'Teaching data management',
theoryData: 'Theoretical topic data management',
trainingDataManage: 'Training data management',
examData: 'Examination data management',
userTrainingDataManage: 'User training data management',
userExamData: 'User test data management',
projectDataManage: 'Project data management',
projectManage: 'Project Manage',
projectConfig: 'Project client configuration',
projectDeviceManage: 'Project equipment management',
permissionDataManage: 'Permission Data Management',
permissionManage: 'Permission',
authorityTransferManage: 'Privilege distribution management',
userRulesManage: 'User Rights Statistics',
contestDataManage:'Contest data management',
contestSubjectManage:'contest subject management',
contestTaskManage:'contest task management',
contestSceneManage:'contest scene management',
contestTaskScoreManage:'contest task score management',
contestSeasonManage:'contest season management',
fileManage: 'File Manage',
frontResourceManage: 'Front-End Resource Management',
iscsPrerecordManage: 'ISCS Advance record management',
XRVTI: 'Xi\'an Railway Vocational & Technical Institute',
GEMVC: 'Guizhou Equipment Manufacturing Vocational College',
JVCOEAI: 'Jiangsu Vocational College Of Electronics And Information',
functionManage: 'function management'
};

View File

@ -117,8 +117,5 @@ export default {
distributionAttribution: 'Distribution attribution',
goodsAmount:'Goods Amount',
operate:'operate',
orderNotPay:'order not pay',
updateTime: 'update time',
oneClickSync: 'one click sync',
ability: 'ability'
orderNotPay:'order not pay'
};

View File

@ -11,7 +11,7 @@ export default {
newDesignEditorList: 'Editor List',
newDesignDraftEditorList: 'Draft Editor List',
uploadPdf: 'Upload Pdf',
fileManage: 'File Manage',
fileManage:'File Manage',
designhomePage: 'Public map',
designUserPage: 'Personal map',
@ -63,7 +63,7 @@ export default {
dataDictionary: 'Data dictionary',
dataDictionaryDetails: 'Data dictionary details',
userManage: 'user management',
loginUserManage: 'login user Manage',
loginUserManage:'login user Manage',
cacheManage: 'cache management',
userTrainingManage: 'User training management',
userExamManage: 'User examination management',
@ -86,27 +86,23 @@ export default {
studentManage: 'Student manage',
examDetail: 'Exam detail',
raceManage: 'Race manage',
practiceManage: 'Practice manage',
practiceManage:'Practice manage',
bankManage: 'Bank manage',
sceneManage: 'Scene manage',
sceneManage:'Scene manage',
companyManage: 'Company manage',
authorApply: 'Grant application',
AuthorList: 'Authorization code list',
questionsRuleManage: 'Question rule manage',
preTheoryData: 'Pre Theory Data',
boardManage: 'Message Board Manage',
publishIBPManage: 'publish IBP Manage',
publishISCSManage: 'publish ISCS Manage',
publishIBPManage:'publish IBP Manage',
publishISCSManage:'publish ISCS Manage',
publishTrainingManage: 'publish Training Manage',
voiceTraining: 'Voice Training',
mapGroup: 'Map Group',
drawingMange: 'Drawing Mange',
drawingMange:'Drawing Mange',
projectServer: 'Project Server',
audioResourcesManage: 'Audio Resources Manage',
iscsDeviceManage: 'ISCS Device Manage',
iscsResourcesManage: 'ISCS Resources Manage',
projectManage: 'Project Manage',
frontProjectConfigManage: 'Front Project Config Manage',
training: 'Training',
theory: 'Theory'
iscsResourcesManage: 'ISCS Resources Manage'
};

View File

@ -29,7 +29,6 @@ import systemGenerate from './systemGenerate';
import login from './login';
import designPlatform from './designPlatform';
import trainingManage from './trainingManage';
import newRouter from './newRouter';
export default {
cnLocale,
@ -62,6 +61,5 @@ export default {
systemGenerate,
login,
designPlatform,
trainingManage,
newRouter
trainingManage
};

View File

@ -18,7 +18,5 @@ export default {
getLoginQrCode: '获取登录二维码失败,请刷新重试',
language: '语言',
clickSwitchLanguage: '点击切换语言',
accountName: '账户名',
registerAccount: '注册账号',
forgetPassword: '忘记密码?'
accountName: '账户名'
};

View File

@ -51,7 +51,7 @@ export default {
menuSignal: {
routeSelect: '进路选排',
routeCancel: '进路取消',
signalBlock: '信号封',
signalBlock: '信号封',
signalDeblock: '信号解封',
signalReopen: '信号重开',
guideRouteHandle: '引导进路办理',
@ -129,7 +129,7 @@ export default {
confirmRunToFrontStation: '确认运行至前方站'
},
passiveDialog: {
alarmDetailInformation: '级警详细信息',
alarmDetailInformation: '级警详细信息',
lineName: '线路名称',
unitName: '单位名称',
moduleName: '模块名称',

View File

@ -1,54 +0,0 @@
export default {
simulation: '仿真',
multiplayerSimulation: '多人仿真',
regulationSimulation: '监管仿真',
teachingManagement: '教学管理',
classroom: '班级管理',
student: '学生管理',
theory: '理论题目管理',
training: '实训教学管理',
exam: '考试管理',
lineDesign: '线路设计',
case: '案例管理',
SystemManagement: '系统管理',
SystemDataManagement: '系统数据管理',
dataDictionary: '数据字典',
SystemAccountManagement: '系统账户管理',
ThirdPartyAccounts: '第三方账户配置',
OnlineInformationManagement: '在线信息管理',
loginUser: '在线用户',
cacheDataManage: '缓存数据管理',
simulationManage: '仿真管理',
companyUserManage: '组织用户管理',
companyManage: '组织管理',
lineDataManage: '线路数据管理',
lineTypeManage: '线路类型管理',
linePacketManage: '线路分组管理',
teachingDataManage: '教学数据管理',
theoryData: '理论题数据管理',
trainingDataManage: '实训数据管理',
examData: '考试数据管理',
userTrainingDataManage: '用户实训数据管理',
userExamData: '用户考试数据管理',
projectDataManage: '项目数据管理',
projectManage: '项目管理',
projectConfig: '项目客户端配置',
projectDeviceManage: '项目设备管理',
permissionDataManage: '权限数据管理',
permissionManage: '权限管理',
authorityTransferManage: '权限分发管理',
userRulesManage: '用户权限管理',
contestDataManage:'竞赛数据管理',
contestSubjectManage:'竞赛题目管理',
contestTaskManage:'竞赛任务管理',
contestSceneManage:'竞赛场景管理',
contestTaskScoreManage:'竞赛任务评分管理',
contestSeasonManage:'竞赛赛季管理',
fileManage: '文件管理',
frontResourceManage: '前端资源管理',
iscsPrerecordManage: 'ISCS预录管理',
XRVTI: '西安铁路职业技术学院',
GEMVC: '贵州装备制造职业学院',
JVCOEAI: '江苏电子信息职业学院',
functionManage: '功能管理'
};

View File

@ -116,8 +116,5 @@ export default {
distributionAttribution: '分发归属',
goodsAmount:'商品个数',
operate:'操作',
orderNotPay:'该订单未支付',
updateTime: '更新时间',
oneClickSync: '一键同步',
ability: '功能'
orderNotPay:'该订单未支付'
};

View File

@ -105,7 +105,7 @@ export default {
selectScope: '请选择范围',
questionNumbers: '题数',
allNumberTipOne: '此类型有',
allNumberTipTwo: '题',
allNumberTipTwo: '题',
scorePerQuestion: '每题分值',
inputQuestionNumber: '请输入题数',
inputQuestionNumberError: '输入的题数大于0',

View File

@ -8,7 +8,7 @@ export default {
newDesignEditorList: '图文列表',
newDesignDraftEditorList: '文章草稿',
uploadPdf: 'PDF上传',
fileManage: '文件管理',
fileManage:'文件管理',
mapManage: '地图管理',
skinManage: '皮肤管理',
@ -62,7 +62,7 @@ export default {
dataDictionary: '数据字典',
dataDictionaryDetails: '数据字典明细',
userManage: '用户管理',
loginUserManage: '在线用户管理',
loginUserManage:'在线用户管理',
cacheManage: '缓存管理',
userTrainingManage: '用户实训统计',
userExamManage: '用户考试统计',
@ -91,26 +91,22 @@ export default {
raceManage: '竞赛管理',
recaList: '报名列表',
bankManage: '题库列表',
practiceManage: '实操列表',
sceneManage: '场景列表',
practiceManage:'实操列表',
sceneManage:'场景列表',
companyManage: '组织管理',
authorApply: '授权申请',
AuthorList: '授权列表',
questionsRuleManage: '出题规则管理',
preTheoryData: '理论导入预处理',
boardManage: '留言板管理',
publishIBPManage: '发布IBP盘管理',
publishISCSManage: '发布ISCS管理',
publishIBPManage:'发布IBP盘管理',
publishISCSManage:'发布ISCS管理',
publishTrainingManage: '发布实训管理',
voiceTraining: '语音训练',
mapGroup: '地图分组',
drawingMange: '图纸管理',
drawingMange:'图纸管理',
projectServer: '项目域名',
audioResourcesManage: '音频资源管理',
iscsDeviceManage: 'ISCS设备管理',
iscsResourcesManage: 'ISCS资源管理',
projectManage: '项目管理',
frontProjectConfigManage: '前端项目配置管理',
training: '实训',
theory: '理论'
iscsResourcesManage: 'ISCS资源管理'
};

View File

@ -9,15 +9,7 @@ const mapDeviceStyle = {
'09': 'xian_02',
'10': 'xian_01', // 西安一号线
'11': 'xian_01', // 西安三号线
'12': 'ningbo_03', // 宁波三号线
'13': 'race_01', // 2020国赛线路
'14':'nanjing_02', // 南京二号线
'15': 'datie_01', // 大铁线路一
'16': 'datie_02', // 大铁线路二
'17':'datie_tky', // 铁科院大铁线路
'18':'datie_jd1a',
'19': 'datie_ksk', // 大铁 卡斯柯
'20': 'ningbo_01'
'12': 'ningbo_03' // 宁波三号线
};
export function selectLineCode(code) {

View File

@ -5,6 +5,7 @@ export function SetScene(project) {
// var cubeTextureLoader = new THREE.CubeTextureLoader();
var bgTexture;
// console.log(project);
if(project == "login" || project == undefined){
bgTexture = new THREE.TextureLoader().load(JL3D_LOCAL_STATIC+"/background/other.jpg");
}else if(project == "heb"){

View File

@ -48,6 +48,7 @@ export function Pathaction(){
document.onmousedown = function(event){
jlmap3dedit.selectswitch = false;
console.log(event.button);
//辅助线段
@ -59,6 +60,7 @@ export function Pathaction(){
lineswitch = null;
console.log(linenew);
if(linenew){
@ -72,6 +74,7 @@ export function Pathaction(){
point1 = mouserray(event,jlmap3dedit);
console.log("new");
if(point1){
linenew = addline(point1,1,jlmap3dedit.splineHelperObjects,jlmap3dedit.scene);
jlmap3dedit.mapdata.path.push(linenew);
@ -101,6 +104,7 @@ export function Pathaction(){
jlmap3dedit.mapdata.sectionlist.sections.datalist[i].rail.push(linenew.geometry.vertices[n]);
}
jlmap3dedit.mapdata.sectionlist.sections.datalist[i].railline = linenew;
console.log(jlmap3dedit.mapdata.sectionlist.sections.datalist[i].rail);
i = jlmap3dedit.mapdata.sectionlist.sections.modellist.length;
}
}
@ -173,6 +177,7 @@ export function Pathaction(){
document.onmousedown = function(event){
console.log(event.button);
//辅助线段
@ -184,6 +189,7 @@ export function Pathaction(){
lineswitch = null;
console.log(linenew);
if(linenew){
@ -227,6 +233,8 @@ export function Pathaction(){
for(let n=0;n<linenew.geometry.vertices.length;n++){
jlmap3dedit.mapdata.sectionlist.sections.datalist[i].rail.push(linenew.geometry.vertices[n]);
}
console.log(jlmap3dedit.mapdata.sectionlist.sections.datalist[i]);
console.log(jlmap3dedit.mapdata.sectionlist.sections.datalist[i].rail);
}
}
}
@ -281,6 +289,7 @@ export function Pathaction(){
}
//点击事件
this.raycaster = function(data){
console.log();
if(scope.on == true){
//定义光线
@ -291,11 +300,13 @@ export function Pathaction(){
mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
raycaster.setFromCamera( mouse, data.camera );
console.log(data.splineHelperObjects);
let intersects1;
intersects1 = raycaster.intersectObjects( data.splineHelperObjects);
if(intersects1[0]){
console.log(intersects1[0]);
return intersects1[0].object;
}
@ -318,7 +329,9 @@ export function Pathaction(){
mouse.y = -(mousep.clientY / window.innerHeight) * 2 + 1;
raycaster.setFromCamera( mouse, jlmap3dedit.camera );
console.log(jlmap3dedit.assetloader.modellist[3].mesh);
var intersects = raycaster.intersectObjects(jlmap3dedit.assetloader.modellist[3].mesh.children);
console.log(intersects);
if(intersects[0]){
resultpoint = intersects[0].point;
return resultpoint;

View File

@ -79,9 +79,13 @@ export function Sectionaction(){
raycaster.setFromCamera( mouse, data.camera );
let intersects1;
// console.log(modellist);
for(let i=0;i<modellist.length;i++){
intersects1 = raycaster.intersectObject(modellist[i],true);
// console.log(intersects1);
if(intersects1[0]){
// console.log(intersects1[0].object.code);
// console.log(modellist[i].code);
if(intersects1[0].object.code == modellist[i].code){
return modellist[i];
@ -93,17 +97,20 @@ export function Sectionaction(){
}
this.changemodel = function(jlmap3dedit,changedata){
console.log(changedata);
let scene = jlmap3dedit.scene;
let assetloader = jlmap3dedit.assetloader;
let isnewmodel = true;
//判断是否是未加载模型
for(let i=0;i<assetloader.modellist.length;i++){
console.log(assetloader.modellist[i].assetUrl);
if(changedata.assetUrl == assetloader.modellist[i].assetUrl){
isnewmodel = false;
i = assetloader.modellist.length;
}
}
console.log(isnewmodel);
jlmap3dedit.assetloader.loadnewsection(changedata,jlmap3dedit);
@ -111,19 +118,25 @@ export function Sectionaction(){
// for(let i=0;i<jlmap3dedit.mapdata.signallist.list.length;i++){
// if(jlmap3dedit.selectmodel.code == jlmap3dedit.mapdata.signallist.list[i].mesh.code){
// console.log("change");
// let num = i;
//
// //判断是否修改模型
// console.log(changedata.id );
// console.log(jlmap3dedit.mapdata.signallist.list[i].mesh.name);
// if(changedata.id != jlmap3dedit.mapdata.signallist.list[i].mesh.name){
//
// if(isnewmodel == true){
// console.log("new");
// return jlmap3dedit.assetloader.loadnewasset(jlmap3dedit,changedata,num);
//
// }else{
// console.log("old");
// return jlmap3dedit.assetloader.loadoldasset(jlmap3dedit,changedata,num);
//
// }
// }else{
// console.log("same");
// return jlmap3dedit.selectmodel;
// }
//

View File

@ -50,6 +50,7 @@ export function Signalaction(){
for(let i=0;i<data.mapdata.signallist.list.length;i++){
intersects1 = raycaster.intersectObjects( data.mapdata.signallist.list[i].mesh.children);
if(intersects1[0]){
console.log(intersects1[0].object);
if(intersects1[0].object.parent.code == data.mapdata.signallist.list[i].mesh.code){
return data.mapdata.signallist.list[i].mesh;
}
@ -61,9 +62,11 @@ export function Signalaction(){
}
this.changemodel = function(jlmap3dedit,changedata){
console.log(changedata);
let isnewmodel = true;
//判断是否是未加载模型
for(let i=0;i<jlmap3dedit.assetloader.modellist.length;i++){
console.log(jlmap3dedit.assetloader.modellist[i].assetUrl);
if(changedata.assetUrl == jlmap3dedit.assetloader.modellist[i].assetUrl){
isnewmodel = false;
@ -74,19 +77,25 @@ export function Signalaction(){
let scene = jlmap3dedit.scene;
for(let i=0;i<jlmap3dedit.mapdata.signallist.list.length;i++){
if(jlmap3dedit.selectmodel.code == jlmap3dedit.mapdata.signallist.list[i].mesh.code){
console.log("change");
let num = i;
//判断是否修改模型
console.log(changedata.id );
console.log(jlmap3dedit.mapdata.signallist.list[i].mesh.name);
if(changedata.id != jlmap3dedit.mapdata.signallist.list[i].mesh.name){
if(isnewmodel == true){
console.log("new");
return jlmap3dedit.assetloader.loadnewasset(jlmap3dedit,changedata,num);
}else{
console.log("old");
return jlmap3dedit.assetloader.loadoldasset(jlmap3dedit,changedata,num);
}
}else{
console.log("same");
return jlmap3dedit.selectmodel;
}

View File

@ -48,11 +48,15 @@ export function Stationaction(){
raycaster.setFromCamera( mouse, data.camera );
let intersects1;
console.log( data.mapdata.stationstandlist);
for(let i=0;i<data.mapdata.stationstandlist.group.children.length;i++){
intersects1 = raycaster.intersectObjects( data.mapdata.stationstandlist.group.children[i].children);
if(intersects1[0]){
console.log(data.mapdata.stationstandlist.group);
console.log(intersects1[0]);
console.log(data.mapdata.stationstandlist.group.children[i]);
if(intersects1[0].object.parent.code == data.mapdata.stationstandlist.group.children[i].code){
return data.mapdata.stationstandlist.group.children[i];
}

View File

@ -55,6 +55,7 @@ export function Switchaction(){
if(intersects1[0]){
if(intersects1[0].object.code == data.mapdata.sectionlist.switchs.modellist[i].code){
//console.log(intersects1[0].object.name);
return data.mapdata.sectionlist.switchs.modellist[i];
}
}

View File

@ -55,6 +55,8 @@ export function Trainaction(){
if(intersects1[0]){
if(intersects1[0].object.name == data.mapdata.trainlisttest.list[i].name){
//console.log(intersects1[0].object.name);
console.log(data.mapdata.trainlisttest.list[i]);
return data.mapdata.trainlisttest.list[i];
}
}

View File

@ -1,6 +1,7 @@
//import request from '@/utils/request';
export function initDataSave(data) {
console.log(data);
let postmap = {
id:data.mapdata.id,
mapId:data.mapdata.mapId,
@ -23,6 +24,7 @@ export function initDataSave(data) {
}else{
let models = data.assetManager;
console.log(data.assetManager);
postmap.assets = JSON.stringify(models);
@ -111,6 +113,7 @@ export function initDataSave(data) {
postmap.signals = JSON.stringify(signals);
//车站
let stands = [];
console.log(data.mapdata.stationstandlist);
if(data.mapdata.stationstandlist){
for(let i=0;i<data.mapdata.stationstandlist.list.length;i++){
let station = {

View File

@ -1,5 +1,6 @@
//import request from '@/utils/request';
export function specilDataSave(data) {
console.log(data);
let postmap = {
id:data.mapdata.id,
mapId:data.mapdata.mapId,
@ -54,6 +55,7 @@ export function specilDataSave(data) {
let models = data.assetManager;
console.log(data.assetManager);
postmap.assets = JSON.stringify(models);

View File

@ -23,11 +23,13 @@ export function testgetmodels(data) {
}else{
let models = data.assetManager;
console.log(data.assetManager);
postmap.assets = JSON.stringify(models);
//section隧道
let sections = [];
// console.log(data.mapdata.sectionlist.sections.datalist);
for(let i in data.mapdata.sectionlist.sections.datalist){
let section = {
// uuid:data.mapdata.sectionlist.sections.modellist[i].uuid,
@ -45,6 +47,7 @@ export function testgetmodels(data) {
}
let nowmesh = data.mapdata.sectionlist.sectiongroup.getObjectByProperty("code",section.code);
section.railpoint = nowmesh.railpoint;
// console.log(nowmesh.railpoint);
// if(data.mapdata.sectionlist.sections.datalist[i].rsection){
// section.rsection = data.mapdata.sectionlist.sections.datalist[i].rsection;
// }

View File

@ -27,6 +27,7 @@ export function jl3dEditorLoader(mapid,scope){
get3dMapData(editmapid).then(data => {
if(data.data ){
console.log(data);
if(data.data.assets){
// initData(editmapid,data.data.id);
loadData(editmapid,data.data);
@ -39,22 +40,26 @@ export function jl3dEditorLoader(mapid,scope){
set3dMapData(params).then(data => {
if(data.code == "200"){
//console.log("创建三维数据成功");
// console.log(data);
initData(editmapid,data.data.id);
}
}).catch(error => {
console.error(error);
console.log(error);
});
}
}).catch(error => {
console.error(error);
console.log(error);
});
function initData(mapid,data3did){
getMapDetail(mapid).then(data => {
console.log(data);
let mapdata = data.data;
//console.log(data3did);
jlmap3ddata.id = data3did;
jlmap3ddata.mapId = mapid;
@ -66,9 +71,11 @@ export function jl3dEditorLoader(mapid,scope){
jlmap3ddata.switchlist = new rSwitchList();
assetloader.assetinit(scene)
.then(function(data){
//console.log(data);
return jlmap3ddata.sectionlist.initpromise(jlmap3ddata,assetloader,mapdata.sectionList,mapdata.switchList,scene);
})
.then(function(data){
//console.log(data);
return jlmap3ddata.signallist.initpromise(jlmap3ddata,mapdata.signalList,scene,assetloader);
})
.then(function(data){
@ -76,6 +83,7 @@ export function jl3dEditorLoader(mapid,scope){
})
.then(function(data){
//console.log(data);
loadingInstance.close();
});
}else{
@ -92,12 +100,15 @@ export function jl3dEditorLoader(mapid,scope){
jlmap3ddata.raillist.setrail();
assetloader.assetinit(scene)
.then(function(data){
//console.log(data);
return jlmap3ddata.stationstandlist.initpromise(jlmap3ddata,mapdata.stationList,mapdata.stationStandList,scene,assetloader);
})
.then(function(data){
//console.log(data);
return jlmap3ddata.sectionlist.initpromise(jlmap3ddata,assetloader,mapdata.sectionList,mapdata.switchList,scene);
})
.then(function(data){
//console.log(data);
return jlmap3ddata.signallist.initpromise(jlmap3ddata,mapdata.signalList,scene,assetloader);
})
.then(function(data){
@ -105,6 +116,7 @@ export function jl3dEditorLoader(mapid,scope){
})
.then(function(data){
//console.log(data);
loadingInstance.close();
});
}
@ -139,10 +151,12 @@ export function jl3dEditorLoader(mapid,scope){
assetloader.setModelListOver(jlmap3dasset.sceneAssetList,5,jlmap3dasset.others);
assetloader.assetPromiseOver(scene)
.then(function(data){
//console.log(data);
// return jlmap3ddata.sectionlist.initpromise(jlmap3ddata,assetloader,mapdata.sectionList,mapdata.switchList,scene);
return jlmap3ddata.sectionlist.loadpromise(jlmap3ddata,assetloader,sectiondata.section,mapdata.sectionList,mapdata.switchList,scene);
})
.then(function(data){
//console.log(data);
// return jlmap3ddata.signallist.initpromise(jlmap3ddata,mapdata.signalList,scene,assetloader);
return jlmap3ddata.signallist.loadpromise(signaldata,scene,assetloader,mapdata.signalList);
})
@ -151,6 +165,7 @@ export function jl3dEditorLoader(mapid,scope){
return jlmap3ddata.switchlist.loadpromise(jlmap3ddata,switchdata,scene,assetloader);
})
.then(function(data){
//console.log(data);
loadingInstance.close();
});
}else{
@ -164,6 +179,7 @@ export function jl3dEditorLoader(mapid,scope){
jlmap3ddata.switchlist = new SwitchList();
jlmap3ddata.raillist = new RailList();
console.log(netdata);
let sectiondata = JSON.parse(netdata.sections);
let switchdata = JSON.parse(netdata.switchs);
let signaldata = JSON.parse(netdata.signals);
@ -180,10 +196,12 @@ export function jl3dEditorLoader(mapid,scope){
return jlmap3ddata.stationstandlist.loadpromise(jlmap3ddata,standsdata,mapdata.stationStandList,scene,assetloader);
})
.then(function(data){
//console.log(data);
// return jlmap3ddata.sectionlist.initpromise(jlmap3ddata,assetloader,mapdata.sectionList,mapdata.switchList,scene);
return jlmap3ddata.sectionlist.loadpromise(jlmap3ddata,assetloader,sectiondata.section,scene);
})
.then(function(data){
//console.log(data);
// return jlmap3ddata.signallist.initpromise(jlmap3ddata,mapdata.signalList,scene,assetloader);
return jlmap3ddata.signallist.loadpromise(signaldata,scene,assetloader,mapdata.signalList);
})
@ -192,6 +210,7 @@ export function jl3dEditorLoader(mapid,scope){
return jlmap3ddata.switchlist.loadpromise(jlmap3ddata,switchdata,scene,assetloader);
})
.then(function(data){
//console.log(data);
loadingInstance.close();
});
}else{
@ -203,10 +222,12 @@ export function jl3dEditorLoader(mapid,scope){
return jlmap3ddata.stationstandlist.loadpromise(jlmap3ddata,standsdata,mapdata,scene,assetloader,jlmap3dasset.others);
})
.then(function(data){
//console.log(data);
// return jlmap3ddata.sectionlist.initpromise(jlmap3ddata,assetloader,mapdata.sectionList,mapdata.switchList,scene);
return jlmap3ddata.sectionlist.loadpromise(jlmap3ddata,assetloader,sectiondata.section,mapdata.sectionList,mapdata.switchList,scene);
})
.then(function(data){
//console.log(data);
// return jlmap3ddata.signallist.initpromise(jlmap3ddata,mapdata.signalList,scene,assetloader);
return jlmap3ddata.signallist.loadpromise(signaldata,scene,assetloader,mapdata.signalList);
})
@ -215,6 +236,7 @@ export function jl3dEditorLoader(mapid,scope){
return jlmap3ddata.switchlist.loadpromise(jlmap3ddata,switchdata,scene,assetloader);
})
.then(function(data){
//console.log(data);
loadingInstance.close();
});
}

View File

@ -29,6 +29,7 @@ import { jl3dEditorLoader } from '@/jlmap3d/edit/jl3dEditorLoader';
import { Actionmanage } from '@/jlmap3d/edit/actionmanage';
export function JLmap3dEdit(dom, data, mapid) {
console.log(data);
var scope = this;
@ -143,6 +144,7 @@ export function JLmap3dEdit(dom, data, mapid) {
};
this.eventon = function(){
//console.log("on");
//raycaster交互模型点击事件
document.getElementById("testdraw").addEventListener( "mousedown", onselect, false );
//窗口自适应
@ -152,6 +154,7 @@ export function JLmap3dEdit(dom, data, mapid) {
};
this.eventoff = function(){
//console.log("off");
//raycaster交互模型点击事件
document.getElementById("testdraw").removeEventListener( "mousedown", onselect, false );
//窗口自适应
@ -160,6 +163,7 @@ export function JLmap3dEdit(dom, data, mapid) {
this.exportsection = function(){
let exporter = new THREE.OBJExporter();
console.log(scope.mapdata);
// let exportmodels = scope.mapdata.stationstandlist.group;
let exportmodels = scope.mapdata.sectionlist.sectiongroup;
// let exportmodels = scope.mapdata.stationstandlist.group;
@ -180,6 +184,7 @@ export function JLmap3dEdit(dom, data, mapid) {
this.exportsection = function(){
let exporter = new THREE.OBJExporter();
console.log(scope.mapdata);
// let exportmodels = scope.mapdata.stationstandlist.group;
let exportSectionModel = scope.mapdata.sectionlist.sectiongroup;
objDownload("section",exporter.parse( exportSectionModel ));
@ -221,6 +226,10 @@ export function JLmap3dEdit(dom, data, mapid) {
}
this.actiommode = function(changedata){
console.log(changedata);
console.log(scope.editmode);
// console.log(scope.actionmode);
// console.log(changedata);
if(changedata == "trackreplace"){
scope.editmode = "trackedit";
scope.eventon();
@ -265,6 +274,7 @@ export function JLmap3dEdit(dom, data, mapid) {
// if(scope.editmode == "pathedit"){
//
// if(scope.actionmode == "drawrail"){
// //console.log("drawrail");
// scope.selectmodel = scope.action.pathaction.drawline(scope);
// }
//
@ -295,14 +305,27 @@ export function JLmap3dEdit(dom, data, mapid) {
for(let i=0,leni=scope.mapdata.stationstandlist.list.length;i<leni;i++){
if(changeStation.code == scope.mapdata.stationstandlist.list[i].code){
let changeData = scope.mapdata.stationstandlist.list[i];
console.log(changeData);
let topStandTrack = scope.mapdata.sectionlist.sections.datalist[changeData.stands[0].section];
let downStandTrack = scope.mapdata.sectionlist.sections.datalist[changeData.stands[changeData.stands.length-1].section];
console.log(scope.mapdata.sectionlist.sections);
console.log(topStandTrack.mesh.railpoint[0].x);
console.log(topStandTrack.mesh.railpoint[2].x);
console.log(downStandTrack.mesh.railpoint[0].x);
console.log(downStandTrack.mesh.railpoint[2].x);
let rightpos = topStandTrack.leftStopPercent*(topStandTrack.mesh.railpoint[2].x -topStandTrack.mesh.railpoint[0].x)+topStandTrack.mesh.railpoint[0].x;
let leftpos = downStandTrack.rightStopPercent*(downStandTrack.mesh.railpoint[2].x -downStandTrack.mesh.railpoint[0].x)+downStandTrack.mesh.railpoint[0].x;
let rightX = changeData.mesh.position.x-63.4 - rightpos;
let leftX = changeData.mesh.position.x+63.4 - leftpos;
console.log("----------------------------");
console.log(rightpos);
console.log(leftpos);
console.log("----------------------------");
console.log(rightX);
console.log(leftX);
topStandTrack.mesh.position.x = topStandTrack.mesh.position.z + rightX;
downStandTrack.mesh.position.x = downStandTrack.mesh.position.x + leftX;
//
@ -344,6 +367,9 @@ export function JLmap3dEdit(dom, data, mapid) {
plane2.rotation.y = Math.PI/2;
let leftpos = scope.mapdata.sectionlist.sections.datalist[k].leftStopPercent*(scope.mapdata.sectionlist.sections.datalist[k].railpoint[2].x -scope.mapdata.sectionlist.sections.datalist[k].railpoint[0].x)+scope.mapdata.sectionlist.sections.datalist[k].railpoint[0].x;
let rightpos = scope.mapdata.sectionlist.sections.datalist[k].rightStopPercent*(scope.mapdata.sectionlist.sections.datalist[k].railpoint[2].x -scope.mapdata.sectionlist.sections.datalist[k].railpoint[0].x)+scope.mapdata.sectionlist.sections.datalist[k].railpoint[0].x;
// console.log("==========");
// console.log(scope.mapdata.sectionlist.sections.datalist[k].leftStopPercent);
// console.log(scope.mapdata.sectionlist.sections.datalist[k].rightStopPercent);
plane1.position.set(leftpos,scope.mapdata.sectionlist.sections.datalist[k].railpoint[1].y,scope.mapdata.sectionlist.sections.datalist[k].railpoint[1].z);
plane2.position.set(rightpos,scope.mapdata.sectionlist.sections.datalist[k].railpoint[1].y,scope.mapdata.sectionlist.sections.datalist[k].railpoint[1].z);
stationStopGroup.add(plane1);
@ -367,6 +393,8 @@ export function JLmap3dEdit(dom, data, mapid) {
//自动匹配轨道信号灯道岔
this.autoss = function(){
console.log("autoss");
// console.log(scope.mapdata);
scope.mapdata.signallist.resetsignal(scope.mapdata);
scope.mapdata.switchlist.resetswitch(scope.mapdata);
//old
@ -466,6 +494,8 @@ export function JLmap3dEdit(dom, data, mapid) {
newpointlist.push(new THREE.Vector3(alignmentModel.railpoint[1].x,alignmentModel.railpoint[0].y,alignmentModel.railpoint[0].z+0.001));
newpointlist.push(new THREE.Vector3(alignmentModel.railpoint[2].x,alignmentModel.railpoint[0].y,alignmentModel.railpoint[0].z));
// console.log(oldobject);
let newSection = reCreatSection(newpointlist,oldobject);
newSection.meshtype = "section";
scope.mapdata.sectionlist.sections.datalist[alignmentCode].mesh = newSection;
@ -539,6 +569,8 @@ export function JLmap3dEdit(dom, data, mapid) {
//三维交互点击事件函数
function onselect(event) {
//console.log("select");
//console.log("select");
if(scope.selectswitch == true){
scope.transcontrol.detach();
@ -561,6 +593,7 @@ export function JLmap3dEdit(dom, data, mapid) {
}
if(scope.editmode == "stationedit"){
console.log("stat!!!!!!!!!!!!");
scope.selectmodel = scope.action.stationaction.raycaster(scope);
}
@ -574,9 +607,11 @@ export function JLmap3dEdit(dom, data, mapid) {
if(scope.editmode == "pathedit"){
scope.selectmodel = scope.action.pathaction.raycaster(scope);
//console.log(scope.selectmodel);
}
if(scope.selectmodel != null){
//console.log(scope.selectmodel.rotation);
if(scalControls.scalon){
}else{

View File

@ -36,6 +36,7 @@ export function rSectionList() {
if(sectiondata[i].type == "01" || sectiondata[i].type == "03"){
//初始化区段对象数据
let newsection = new SectionModel(sectiondata[i]);
// console.log(sectiondata[i]);
newsection.name = sectiondata[i].name;
newsection.code = sectiondata[i].code;
newsection.index = i;
@ -48,6 +49,7 @@ export function rSectionList() {
newsection.points = sectiondata[i].points;
newsection.pointslength = sectiondata[i].points.length-1;
newsection.railpoint = [];
// console.log(sectiondata[i].points.length);
newsection.standTrack = sectiondata[i].standTrack;
newsection.endbuild = false;
@ -72,6 +74,7 @@ export function rSectionList() {
let acode = switchdata[i].sectionACode;
let bcode = switchdata[i].sectionBCode;
let ccode = switchdata[i].sectionCCode;
// console.log(switchdata[i]);
let aposx = (scope.sections.datalist[acode].points[0].x + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].x)/2;
@ -80,6 +83,7 @@ export function rSectionList() {
let aposy = (scope.sections.datalist[acode].points[0].y + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].y)/2;
let cposy = (scope.sections.datalist[ccode].points[0].y + scope.sections.datalist[ccode].points[scope.sections.datalist[ccode].pointslength].y)/2;
// console.log("----------------");
if(aposx > cposx){
if(aposy < cposy){
// ——A
@ -153,6 +157,8 @@ export function rSectionList() {
y:0,
z:0
});
console.log(scope.sections.datalist);
console.log("START BUILD !!!!!!!!!!!!!!!!!");
buildsectionall(scope.sections.datalist["T1"]);
resolve("loadersection");
});
@ -240,7 +246,12 @@ export function rSectionList() {
y:0,
z:position.z
};
// console.log(origin+"******************************");
// console.log(start);
// console.log(origin);
if(scope.sections.datalist[start].standTrack == true && start != origin){
// console.log(start+"到达");
// console.log("++++++++++++++++++++++++");
return ;
}else if(scope.sections.datalist[start].rsection == undefined){
return ;
@ -409,7 +420,11 @@ export function rSectionList() {
];
}
// console.log(data.ctype);
if(type == "cross"){
// console.log(data.ctype);
// console.log(scope.sections.datalist[data.code].points.length);
// console.log(scope.sections.datalist[data.code]);
if(data.ctype == "1"||data.ctype == "2" ){
@ -754,13 +769,16 @@ export function rSectionList() {
let acode = switch2d[i].sectionACode;
let bcode = switch2d[i].sectionBCode;
let ccode = switch2d[i].sectionCCode;
// console.log(switchdata[i]);
// console.log(scope.sections.datalist[acode]);
let aposx = (scope.sections.datalist[acode].points[0].x + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].x)/2;
let cposx = (scope.sections.datalist[ccode].points[0].x + scope.sections.datalist[ccode].points[scope.sections.datalist[ccode].pointslength].x)/2;
let aposy = (scope.sections.datalist[acode].points[0].y + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].y)/2;
let cposy = (scope.sections.datalist[ccode].points[0].y + scope.sections.datalist[ccode].points[scope.sections.datalist[ccode].pointslength].y)/2;
// console.log("----------------");
if(aposx > cposx){
if(aposy < cposy){
// ——A

View File

@ -13,6 +13,7 @@ export function rSignalList() {
this.initpromise = function(jlmap3ddata,data,scene,assetloader,netdata){
return new Promise(function(resolve, reject){
scope.group.name = "signal";
// console.log(data);
//遍历信号数据
let netsignal = null;
let haddata = false;
@ -31,6 +32,7 @@ export function rSignalList() {
if(data[i].virtual == false){
let newsignal = new SignalModel(data[i]);
if(haddata == false){
// console.log(data[i])
let newmesh = assetloader.modellist[num].mesh.clone(true);
newmesh.name = data[i].name;
@ -152,6 +154,7 @@ export function rSignalList() {
if(data[n].virtual == false){
let newsignal = new SignalModel(signaldata[i]);
// console.log(signaldata[i]);
let newmesh = assetloader.modellist[num].mesh.clone(true);
newmesh.sectionCode = data[n].sectionCode;
newmesh.sectionOffset = data[n].sectionOffset;
@ -188,6 +191,7 @@ export function rSignalList() {
});
};
this.resetsignal = function(jlmap3ddata){
// console.log(jlmap3ddata.linksgroup);
let sectiondata = jlmap3ddata.sectionlist.sectiongroup.children;
for(let i=0;i<scope.group.children.length;i++){
let signaldata = scope.group.children[i];
@ -196,6 +200,7 @@ export function rSignalList() {
if(sectiondata[j].code == signaldata.sectionCode){
let section = sectiondata[j];
let posx = null;
// console.log(section);
posx = section.railpoint[0].x + signaldata.sectionOffset;

View File

@ -14,9 +14,11 @@ export function rSwitchList() {
};
this.initpromise = function(jlmap3ddata,data,scene,assetloader,netdata){
// console.log(jlmap3ddata);
return new Promise(function(resolve, reject){
scene.add( scope.switchgroup );
let sectiondata = jlmap3ddata.sectionlist.sections.datalist;
// console.log(sectiondata);
let num;
for(let j=0;j<assetloader.modellist.length;j++){
if(assetloader.modellist[j].deviceType == "autoswitch"){
@ -56,6 +58,7 @@ export function rSwitchList() {
return new Promise(function(resolve, reject){
scene.add( scope.switchgroup );
// let sectiondata = jlmap3ddata.sectionlist.sections.datalist;
// console.log(sectiondata);
let num;
for(let j=0;j<assetloader.modellist.length;j++){
if(assetloader.modellist[j].type == "switch"){
@ -67,6 +70,7 @@ export function rSwitchList() {
}
};
for(let i=0,leni = switchdata.length;i<leni;i++){
// console.log(switchdata[i]);
let newswitch = {
code:switchdata[i].code,
name:switchdata[i].name,
@ -75,6 +79,7 @@ export function rSwitchList() {
pc:switchdata[i].pc
};
// console.log(newswitch.pa);
let autoswitch = assetloader.modellist[num].mesh.clone(true);
autoswitch.code = switchdata[i].code;
for(let j=0;j<autoswitch.children.length;j++){
@ -96,6 +101,7 @@ export function rSwitchList() {
}
this.resetswitch = function(data){
// console.log("reset");
let sectiondata = data.sectionlist.sectiongroup;
for(let i=0;i<scope.switchs.datalist.length;i++){

View File

@ -61,7 +61,12 @@ export function RailList(){
x:circle1.position.x,
z:circle1.position.z
}];
// console.log(i);
// console.log(section[i].mesh);
// console.log(mapdata.sectionlist.sections.datalist[i].rail);
// console.log("=======================");
}
// console.log(n);
// for(let i=0;i<mapdata.switchlist.switchgroup.children.length;i++){
// var geometry = new THREE.CircleBufferGeometry( 1, 16 );
// var material = new THREE.MeshBasicMaterial( { color: 0xff00ff } );

View File

@ -36,6 +36,7 @@ export function SectionList() {
if(sectiondata[i].type == "01" || sectiondata[i].type == "03"){
//初始化区段对象数据
let newsection = new SectionModel(sectiondata[i]);
// console.log(sectiondata[i]);
newsection.name = sectiondata[i].name;
newsection.code = sectiondata[i].code;
newsection.index = i;
@ -48,6 +49,7 @@ export function SectionList() {
newsection.points = sectiondata[i].points;
newsection.pointslength = sectiondata[i].points.length-1;
newsection.railpoint = [];
// console.log(sectiondata[i].points.length);
newsection.standTrack = sectiondata[i].standTrack;
newsection.endbuild = false;
@ -95,6 +97,7 @@ export function SectionList() {
let acode = switchdata[i].sectionACode;
let bcode = switchdata[i].sectionBCode;
let ccode = switchdata[i].sectionCCode;
// console.log(switchdata[i]);
let aposx = (scope.sections.datalist[acode].points[0].x + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].x)/2;
@ -103,6 +106,7 @@ export function SectionList() {
let aposy = (scope.sections.datalist[acode].points[0].y + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].y)/2;
let cposy = (scope.sections.datalist[ccode].points[0].y + scope.sections.datalist[ccode].points[scope.sections.datalist[ccode].pointslength].y)/2;
// console.log("----------------");
if(aposx > cposx){
if(aposy < cposy){
// ——A
@ -171,6 +175,7 @@ export function SectionList() {
reals:[],
posx:null,
};
// console.log(stationlist[i]);
// realstopsection.stands.push();
for(let n=0,lenn = stationlist[i].stands.length;n<lenn;n++){
@ -379,6 +384,7 @@ export function SectionList() {
}
//根据站台区段创建站台位置 120停车点距离
for(let j=0,lenj=stations.length;j<lenj;j++){
// console.log(j);
let direction1 = scope.sections.datalist[stations[j].stands[0].section];
let direction2 = scope.sections.datalist[stations[j].stands[1].section];
@ -398,6 +404,7 @@ export function SectionList() {
}
// scope.sections.datalist[stations[0].stands[0].section].endbuild = true;
console.log("START BUILD !!!!!!!!!!!!!!!!!");
buildsectionall(scope.sections.datalist[stations[0].stands[0].section]);
resolve("loadersection");
});
@ -485,7 +492,12 @@ export function SectionList() {
y:0,
z:position.z
};
// console.log(origin+"******************************");
// console.log(start);
// console.log(origin);
if(scope.sections.datalist[start].standTrack == true && start != origin){
// console.log(start+"到达");
// console.log("++++++++++++++++++++++++");
return ;
}else if(scope.sections.datalist[start].rsection == undefined){
return ;
@ -654,7 +666,11 @@ export function SectionList() {
];
}
// console.log(data.ctype);
if(type == "cross"){
// console.log(data.ctype);
// console.log(scope.sections.datalist[data.code].points.length);
// console.log(scope.sections.datalist[data.code]);
if(data.ctype == "1"||data.ctype == "2" ){
@ -999,13 +1015,16 @@ export function SectionList() {
let acode = switch2d[i].sectionACode;
let bcode = switch2d[i].sectionBCode;
let ccode = switch2d[i].sectionCCode;
// console.log(switchdata[i]);
// console.log(scope.sections.datalist[acode]);
let aposx = (scope.sections.datalist[acode].points[0].x + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].x)/2;
let cposx = (scope.sections.datalist[ccode].points[0].x + scope.sections.datalist[ccode].points[scope.sections.datalist[ccode].pointslength].x)/2;
let aposy = (scope.sections.datalist[acode].points[0].y + scope.sections.datalist[acode].points[scope.sections.datalist[acode].pointslength].y)/2;
let cposy = (scope.sections.datalist[ccode].points[0].y + scope.sections.datalist[ccode].points[scope.sections.datalist[ccode].pointslength].y)/2;
// console.log("----------------");
if(aposx > cposx){
if(aposy < cposy){
// ——A

View File

@ -13,6 +13,7 @@ export function SignalList() {
this.initpromise = function(jlmap3ddata,data,scene,assetloader,netdata){
return new Promise(function(resolve, reject){
scope.group.name = "signal";
// console.log(data);
//遍历信号数据
let netsignal = null;
let haddata = false;
@ -31,6 +32,7 @@ export function SignalList() {
if(data[i].virtual == false){
let newsignal = new SignalModel(data[i]);
if(haddata == false){
// console.log(data[i])
let newmesh = assetloader.modellist[num].mesh.clone(true);
newmesh.name = data[i].name;
@ -152,6 +154,7 @@ export function SignalList() {
if(data[n].virtual == false){
let newsignal = new SignalModel(signaldata[i]);
// console.log(signaldata[i]);
let newmesh = assetloader.modellist[num].mesh.clone(true);
newmesh.sectionCode = data[n].sectionCode;
newmesh.sectionOffset = data[n].sectionOffset;
@ -188,6 +191,7 @@ export function SignalList() {
});
};
this.resetsignal = function(jlmap3ddata){
// console.log(jlmap3ddata.linksgroup);
let sectiondata = jlmap3ddata.sectionlist.sectiongroup.children;
for(let i=0;i<scope.group.children.length;i++){
let signaldata = scope.group.children[i];
@ -196,6 +200,7 @@ export function SignalList() {
if(sectiondata[j].code == signaldata.sectionCode){
let section = sectiondata[j];
let posx = null;
// console.log(section);
posx = section.railpoint[0].x + signaldata.sectionOffset;

View File

@ -83,14 +83,18 @@ export function StationStandList() {
}
}
console.log(scope.list);
resolve("loadedstation");
});
}
this.loadpromise = function(jlmap3ddata,standsdata,jlmapdata,scene,assetloader,otherStation){
return new Promise(function(resolve, reject){
// console.log(jlmap3ddata);
let jlmapstationdata = jlmapdata.stationList;
let jlmapstanddata = jlmapdata.stationStandList;
// jlmapstationdata.splice(0,1);
console.log(standsdata);
console.log(jlmapstationdata);
// for(let i=0;i<jlmapstationdata.length;i++){// || jlmapstationdata[i].subheadDisplay == false
// if(jlmapstationdata[i].visible == false){
// jlmapstationdata.splice(i,1);
@ -99,19 +103,30 @@ export function StationStandList() {
// standsdata[i].code = jlmapstationdata[i].code;
// standsdata[i].name = jlmapstationdata[i].name;
// }
// // console.log(jlmapstationdata[i].subheadDisplay);
// }
// console.log(jlmapstationdata);
console.log(standsdata);
//
// console.log(jlmapstationdata);
//
// console.log(standsdata);
// console.log(jlmapstationdata);
for(let i=0;i<jlmapstationdata.length;i++){
if(jlmapstationdata[i].visible == false || jlmapstationdata[i].depot == true){
jlmapstationdata.splice(i,1);
i--;
}else{
// console.log(jlmapstationdata[i]);
// console.log(standsdata[i]);
standsdata[i].code = jlmapstationdata[i].code;
standsdata[i].name = jlmapstationdata[i].name;
}
}
// console.log(otherStation);
// console.log(standsdata);
// console.log(assetloader.modellist);
let stations = jlmap3ddata.stationstandlist.list;
let num;
let num2;
@ -139,6 +154,9 @@ export function StationStandList() {
num3 = j;
}
}
// console.log("+++++++++++++");
// console.log(jlmapstanddata);
// console.log(standsdata);
for(let i=0;i<standsdata.length;i++){
let newstationstand = new StationStandModel(standsdata[i]);
let newstationmesh;
@ -168,6 +186,7 @@ export function StationStandList() {
newstationstand.name = standsdata[i].name;
newstationstand.inside = standsdata[i].inside;
// console.log(standsdata[i]);
newstationmesh.code = standsdata[i].code;
newstationmesh.name = standsdata[i].name;
newstationmesh.meshtype = "station";
@ -192,11 +211,13 @@ export function StationStandList() {
}else{
newstationmesh = assetloader.modellist[num2].mesh.clone(true);
}
// console.log(jlmapstanddata[j]);
newstationstand.code = standsdata[i].code;
newstationstand.name = standsdata[i].name;
newstationstand.inside = standsdata[i].inside;
// console.log(standsdata[i]);
newstationmesh.code = standsdata[i].code;
newstationmesh.name = standsdata[i].name;
newstationmesh.meshtype = "station";
@ -211,9 +232,11 @@ export function StationStandList() {
scope.list.push(newstationstand);
}else{
newstationmesh = assetloader.modellist[num3].mesh.clone(true);
// console.log(jlmapstanddata[j]);
newstationstand.code = standsdata[i].code;
newstationstand.name = standsdata[i].name;
newstationstand.inside = standsdata[i].inside;
// console.log(standsdata[i]);
newstationmesh.code = standsdata[i].code;
newstationmesh.name = standsdata[i].name;
newstationmesh.position.x = standsdata[i].position.x;

View File

@ -14,9 +14,11 @@ export function SwitchList() {
};
this.initpromise = function(jlmap3ddata,data,scene,assetloader,netdata){
// console.log(jlmap3ddata);
return new Promise(function(resolve, reject){
scene.add( scope.switchgroup );
let sectiondata = jlmap3ddata.sectionlist.sections.datalist;
// console.log(sectiondata);
let num;
for(let j=0;j<assetloader.modellist.length;j++){
if(assetloader.modellist[j].deviceType == "autoswitch"){
@ -56,6 +58,7 @@ export function SwitchList() {
return new Promise(function(resolve, reject){
scene.add( scope.switchgroup );
// let sectiondata = jlmap3ddata.sectionlist.sections.datalist;
// console.log(sectiondata);
let num;
for(let j=0;j<assetloader.modellist.length;j++){
if(assetloader.modellist[j].type == "switch"){
@ -67,6 +70,7 @@ export function SwitchList() {
}
};
for(let i=0,leni = switchdata.length;i<leni;i++){
// console.log(switchdata[i]);
let newswitch = {
code:switchdata[i].code,
name:switchdata[i].name,
@ -75,6 +79,7 @@ export function SwitchList() {
pc:switchdata[i].pc
};
// console.log(newswitch.pa);
let autoswitch = assetloader.modellist[num].mesh.clone(true);
autoswitch.code = switchdata[i].code;
for(let j=0;j<autoswitch.children.length;j++){
@ -96,6 +101,7 @@ export function SwitchList() {
}
this.resetswitch = function(data){
// console.log("reset");
let sectiondata = data.sectionlist.sectiongroup;
for(let i=0;i<scope.switchs.datalist.length;i++){

View File

@ -76,6 +76,7 @@ let onProgress = function ( xhr ) {
if ( xhr.lengthComputable ) {
let percentComplete = xhr.loaded / xhr.total * 100;
//console.log( Math.round( percentComplete, 2 ) + '% downloaded' );
}

View File

@ -46,6 +46,7 @@ export function SetObj(data,scope) {
if(data.sectionList[i].type == "01"){
if(data.sectionList[i].points.length>=3){
console.log(data.sectionList[i]);
for(let j=1;j<data.sectionList[i].points.length;j++){
point1 = data.sectionList[i].points[j-1];
@ -202,5 +203,7 @@ export function SetObj(data,scope) {
group.add(object);
}
console.log("setobj");
scope.exportmodel = group;
console.log(group);
}

View File

@ -15,12 +15,17 @@
var intersects4 = raycaster4.intersectObjects( helppoints[i] );
//// //console.log(raycaster1);
if(intersects1[0] != undefined){
// // //console.log("intersects1");
// // //console.log(intersects1[0]);
intersects1[0].name = "1";
mindistance = intersects1[0].distance;
result = intersects1[0];
}
if(intersects2[0] != undefined){
// // //console.log("intersects2");
// // //console.log(mindistance);
intersects2[0].name = "2";
if(mindistance == undefined){
mindistance = intersects2[0].distance;
@ -33,6 +38,8 @@
}
if(intersects3[0] != undefined){
// // //console.log("intersects3");
// // //console.log(mindistance);
intersects3[0].name = "3";
if(mindistance == undefined){
mindistance = intersects3[0].distance;
@ -43,6 +50,8 @@
}
}
if(intersects4[0] != undefined){
// // //console.log("intersects4");
// // //console.log(mindistance);
intersects4[0].name = "4";
if(mindistance == undefined){
mindistance = intersects4[0].distance;

View File

@ -485,6 +485,7 @@ export function Moveanimate(main){
}
}else{
// console.log(scope.animatelist[k].connectmodel);
if(scope.nowmodelname != scope.playlist[scope.playorder][i].connectmodel.name){
scope.nowmodelname = scope.playlist[scope.playorder][i].connectmodel.name;
main.animationmsgshowon(scope.playlist[scope.playorder][i].connectmodel);

View File

@ -10,6 +10,7 @@ export function Textconfig(){
if(scope.devicelist.length>0){
scope.devicelist = [];
}
console.log(selectmodel.deviceType);
if(selectmodel.deviceType == "DeviceSwitch"){
initSwitchText(selectmodel);
}
@ -91,6 +92,9 @@ export function Textconfig(){
}
// if(part.text == null){
// console.log(selectmodel.children[i].name);
// }
if(part.text){
scope.devicelist.push(part);
}
@ -188,6 +192,9 @@ export function Textconfig(){
part.msg = "用于机内外电缆连接,方便更换转辙机。";
selectmodel.children[i].text = "二十位插接件";
}
// if(part.text == null){
// console.log(selectmodel.children[i].name);
// }
if(part.text){
scope.devicelist.push(part);
}

View File

@ -143,8 +143,11 @@ export function Jl3ddeviceNew(dom,group,token,skinCode) {
stationList.push(mapnetdata.stationList[i]);
}
}
// console.log(mapnetdata.stationList);
for(let k in psdVoiceStationList){
for(let i=0,leni=stationList.length;i<leni;i++){
// console.log("---------------");
// console.log("---------------");
if(psdVoiceStationList[k].stationCode == stationList[i].code){
psdVoiceStationList[k].nowStationName = stationList[i].name;
@ -291,6 +294,7 @@ export function Jl3ddeviceNew(dom,group,token,skinCode) {
for (let i = 0; i < scope.mixers.length; i++) {
if (scope.mixers[i]) {
if( scope.mixers[i].staticType){
// console.log(scope.mixers[i].time);
if(scope.mixers[i]._actions[0].time<stopTime){
scope.mixers[i].update(delta);
}else{
@ -339,6 +343,10 @@ export function Jl3ddeviceNew(dom,group,token,skinCode) {
scope.raycasterstatus = false;
scope.nowobject = null;
updatemenulist();
if(data._type == "Station"){
console.log(data);
}
if (data._type == "Switch") {
// scope.modelmanager.switchmodel.locateType = data.body.locateType;
@ -485,6 +493,8 @@ export function Jl3ddeviceNew(dom,group,token,skinCode) {
this.changeAnimate = function(type){
//
console.log(type);
// console.log(scope.modelmanager.staticswitchmodel);
// scope.modelmanager.staticswitchmodel.action["2kai"].reset();
// scope.modelmanager.staticswitchmodel.action["5jiasuo"].reset();
@ -510,6 +520,7 @@ export function Jl3ddeviceNew(dom,group,token,skinCode) {
stopTime = 3.33;
scope.modelmanager.staticswitchmodel.action.play();
console.log(scope.mixers);
}
if(type == "action2"){
scope.camera.position.x = -7.23;
@ -573,6 +584,8 @@ export function Jl3ddeviceNew(dom,group,token,skinCode) {
scope.camera.position.y = 22.56;
scope.camera.position.z = -1.348;
scope.controls.target = new THREE.Vector3(-2.15,10,-1.348);
// console.log(scope.camera.position);
// console.log(scope.controls.target);
scope.modelmanager.staticswitchmodel.action.reset();
scope.modelmanager.staticswitchmodel.action.time = 23.36;
stopTime = 26.66;

View File

@ -93,6 +93,7 @@ export function ModelManager(){
Promise.all(initlist).then((result) => {
resolve("success"); //['成功了', 'success']
}).catch((error) => {
//console.log(error);
});
});

View File

@ -156,6 +156,7 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
getPublishMapDetail(mapId).then(data => {
let mapnetdata = data.data;
getPublish3dMapDetail(mapId).then(netdata => {
// console.log(netdata);
let assetsdata = JSON.parse(netdata.data.sections);
scope.datatype = "new";
@ -270,6 +271,7 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
};
updatemmi.updatedrivingcode = function(code) {
// console.log(trainlisttest);
drivingcode = code;
trainlisttest.group.children[0].children[0].add(controls3.getObject());
controls3.getObject().position.x = 10;
@ -311,6 +313,7 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
if(driverWebWorker){
driverWebWorker.terminate();
}
// console.log(scope);
// scope = null;
};
@ -383,6 +386,7 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
realsectionlist = loadrealsectionlist;
rails = loadrails;
console.log(trainlisttest);
trainlisttest.group.children[0].getObjectByName("C6").add(cameracctv);
}
@ -397,6 +401,7 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
};
this.eventoff = function() {
// console.log("off");
// raycaster交互模型点击事件
document.getElementById('jlsimulation').removeEventListener( 'mousedown', onselect, false );
// 窗口自适应
@ -415,6 +420,7 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
camera.position.z = mesh.children[0].position.z;
// controls.target = new THREE.Vector3(mesh.position.x,0,mesh.children[0].position.z);
}
// console.log(mesh);
if (type == 'station') {
camera.position.x = mesh.position.x;
camera.position.y = mesh.position.y+800;
@ -487,6 +493,7 @@ export function JLmapDriving(dom,data,mapId,storemod,translation,routegroup,proj
}
if (scope.raycasterswitch == 'section') {
// console.log(sectionlist.sections.modellist);
let intersects = raycaster.intersectObjects( sectionlist.sections.modellist, true);
if (intersects[0]) {

View File

@ -81,6 +81,7 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
}
if(data.type == "DeviceCtrl_3D"){
// console.log(data);
if (data.body.type== 'SIGNAL' && signallist) {
signalupdate(data.body);
return;
@ -200,6 +201,8 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
}
this.updatamap = function(newsectionlist,newlinklist,newsignallist,newstationstandlist,newtrainlisttest,newrealsectionlist,newrails,newtdt, materiallist, nowaction, scene) {
// console.log(mapdata);
// console.log(newtrainlisttest);
trainmodel = newtrainlisttest.group.children[0];
trainlisttest = newtrainlisttest;
sectionlist = newsectionlist;
@ -219,6 +222,7 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
this.socketon = function(topic) {
try {
// console.log("teststomp");
// scope.teststomp.subscribe(topic, callback, header);
} catch (error) {
console.error('websocket订阅失败');
@ -251,11 +255,13 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
// 仿真socket接口回调函数
function callback(Response) {
// console.log(Response);
// 对象化数据
let data = JSON.parse(Response.body);
// stats.update();
// 遍历后台数据
// console.log(data);
if(data.type == "Train_Position"){
nowTrainRun(data.body);
@ -300,6 +306,7 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
}
function DeviceDestroy(data){
// console.log(data);
for(let i=0,leni=data.length;i<leni;i++){
if(data[i].type == "SIGNAL"){
@ -352,6 +359,10 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
}
function otherTrainUpdate(data,updateTrainModel){
// console.log(data);
// if(data.code = "336"){
// console.log(data);
// }
if(rails.sectionrail[data.section]){
if(data.section != updateTrainModel.nowsection){
updateTrainModel.nowsection = data.section;
@ -407,6 +418,7 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
// if(updateTrainModel.children[1].rotalist.length > 0 || updateTrainModel.children[2].rotalist.length > 0 || updateTrainModel.children[3].rotalist.length > 0 || updateTrainModel.children[4].rotalist.length > 0|| updateTrainModel.children[5].rotalist.length > 0){
for(let rs = 1;rs<updateTrainModel.children.length;rs++){
//console.log(rs);
if(updateTrainModel.children[rs].rotalist[0]){
let offsetz = parseFloat(updateTrainModel.children[rs].rotalist[0].posr.z) + parseFloat(updateTrainModel.children[rs].position.z);
@ -429,11 +441,13 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
xh = updateTrainModel.children[rs].rotalist.length;
}
}
//console.log(trainmodel.children[rs].rotalist.length);
}
}
// console.log(trainmodel.rotalist);
// }
}else{
@ -479,6 +493,7 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
// if(updateTrainModel.children[1].rotalist.length > 0 || updateTrainModel.children[2].rotalist.length > 0 || updateTrainModel.children[3].rotalist.length > 0 || updateTrainModel.children[4].rotalist.length > 0|| updateTrainModel.children[5].rotalist.length > 0){
for(let rs = 1;rs<updateTrainModel.children.length;rs++){
//console.log(rs);
if(updateTrainModel.children[rs].rotalist[0]){
let offsetz = parseFloat(updateTrainModel.children[rs].rotalist[0].posr.z) - parseFloat(updateTrainModel.children[rs].matrixWorld.elements[14]);
@ -643,6 +658,7 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
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<trainmodel.children.length;rs++){
//console.log(rs);
if(trainmodel.children[rs].rotalist[0]){
let offsetz = parseFloat(trainmodel.children[rs].rotalist[0].posr.z) + parseFloat(trainmodel.children[rs].position.z);
@ -669,10 +685,13 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
xh = trainmodel.children[rs].rotalist.length;
}
}
//console.log(trainmodel.children[rs].rotalist.length);
}
}
// console.log(trainmodel.rotalist);
}
}else{
@ -749,6 +768,7 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
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<trainmodel.children.length;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;
@ -774,6 +794,7 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
xh = trainmodel.children[rs].rotalist.length;
}
}
//console.log(trainmodel.children[rs].rotalist.length);
}
}
}
@ -796,6 +817,10 @@ export function Jl3dDrivingNew(mixers,updatemmi,sound,translation,routegroup,dri
function traindoorupdate(data){
// console.log(data);
// console.log("direct:"+trainmodel.right);
// console.log(trainmodel.openleft);
// console.log(trainmodel.openright);
if(trainmodel.code == data.trainCode){
if(trainmodel.right == "0"){
if(data.code == "2"){

View File

@ -4,9 +4,11 @@ export function UpdateTrain(camera,traindata,control){
if(traindata != undefined && traindata.group.children[0]){//traindata.group.children[0].dispose == false
if(traindata.group.children[0].progress != null){
// console.log(traindata.group);
let trainmodel = traindata.group.children[0];
if(trainmodel.speeds > 0 && trainmodel.speeds){
let speed = null;
// console.log(traindata.group.children[0].progress);
if(traindata.group.children[0].progress >=0&&traindata.group.children[0].progress<=1){
let movecurve = trainmodel.curve;
@ -42,6 +44,7 @@ export function UpdateTrain(camera,traindata,control){
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);
@ -63,6 +66,7 @@ export function UpdateTrain(camera,traindata,control){
xh = trainmodel.children[rs].rotalist.length;
}
}
//console.log(trainmodel.children[rs].rotalist.length);
}
}
}
@ -99,6 +103,7 @@ export function UpdateTrain(camera,traindata,control){
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]);
@ -121,10 +126,13 @@ export function UpdateTrain(camera,traindata,control){
xh = trainmodel.children[rs].rotalist.length;
}
}
//console.log(trainmodel.children[rs].rotalist.length);
}
}
// console.log(trainmodel.rotalist);
}
trainmodel.progress += trainmodel.speeds;
}
@ -144,6 +152,9 @@ export function UpdateTrain(camera,traindata,control){
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"){
@ -186,6 +197,7 @@ export function UpdateTrain(camera,traindata,control){
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);
@ -207,6 +219,7 @@ export function UpdateTrain(camera,traindata,control){
xh = trainmodel.children[rs].rotalist.length;
}
}
//console.log(trainmodel.children[rs].rotalist.length);
}
}
}
@ -243,6 +256,7 @@ export function UpdateTrain(camera,traindata,control){
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]);
@ -265,12 +279,16 @@ export function UpdateTrain(camera,traindata,control){
xh = trainmodel.children[rs].rotalist.length;
}
}
//console.log(trainmodel.children[rs].rotalist.length);
}
}
// console.log(trainmodel.rotalist);
}
// console.log(trainmodel.nextcurve);
if(trainmodel.progress > -(trainmodel.speeds)){
trainmodel.progress += trainmodel.speeds;
}

View File

@ -106,6 +106,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
let topic = '/user/queue/simulation/'+ group +'/jl3d';
let header = {'X-Token': token};
try {
// console.log("teststomp");
teststomp.subscribe(topic, callback, header);
} catch (error) {
console.error('websocket订阅失败');
@ -119,6 +120,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
// scope.selectmodel(data);
// }else{
if(data.type == "DeviceCtrl_3D"){
// console.log(data.body);
if(data.body.code == scope.nowcode){
scope.updateaction(data.body);
}
@ -141,6 +143,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
this.anime = null;
this.modelmanager = new ModelManager();
console.log(skinCode);
getPublish3dMapDetail(skinCode).then(netdata => {
let netDataAssets = JSON.parse(netdata.data.assets);
setpsdstationmap(JSON.parse(netdata.data.stands));
@ -203,6 +206,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
}
this.selectmodel = function (data) {
console.log(data);
if (scope.showmodel) {
if (scope.showmodel.code != data.code) {
@ -246,6 +250,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
}
if (data.type == "STAND") {
// console.log(data);
scope.modelmanager.standmodel.code = data.code;
scope.showmodel = scope.modelmanager.standmodel.mesh;
scope.scene.add(scope.showmodel);
@ -262,6 +267,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
}
if (data.type == "SECTION") {
// console.log(data);
scope.modelmanager.sectionmodel.code = data.code;
scope.showmodel = scope.modelmanager.sectionmodel.mesh;
scope.scene.add(scope.showmodel);
@ -279,6 +285,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
} else {
scope.nowcode = data.code;
if (data.type == "room") {
// console.log(scope.modelmanager.roommodel.mesh);
scope.showmodel = scope.modelmanager.roommodel.mesh;
scope.scene.add(scope.showmodel);
scope.camera.position.set(5, 7, -9);
@ -402,6 +409,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
}
settext(scope.animationmodel,scope.animationmodel.position);
// console.log(scope.animationmodel);
helpbox = new THREE.BoxHelper( scope.animationmodel, 0xff0000 );
moveanima.updatehelpbox(helpbox,textplane);
// settext(intersects[0].object,intersects[0].point);
@ -540,11 +548,13 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
scope.modelmanager.standmodel.action.play();
}
this.updateselect = function(updata){
// console.log(updata);
if(helpbox){
scope.scene.remove( helpbox );
helpbox = null;
}
helpbox = new THREE.BoxHelper( updata.mesh, 0xff0000 );
// console.log(updata.mesh);
let point = {
x:updata.mesh.matrixWorld.elements[12],
y:updata.mesh.matrixWorld.elements[13],
@ -556,6 +566,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
}
function getdevicemsg(selectname){
// console.log(selectname);
for(let i=0,leni=scope.devicetext.devicelist.length;i<leni;i++){
if(selectname == scope.devicetext.devicelist[i].name){
@ -719,6 +730,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
textplane.position.x = point.x;
textplane.position.y = point.y+6;
textplane.position.z = point.z;
// console.log(textplane.position);
// textplane.tcode = data[i].code;
textplane.rotation.y = -Math.PI/2;
textplane.lookAt(scope.camera.position);
@ -752,6 +764,7 @@ export function Jl3dfaultdevice(dom,group,token,skinCode) {
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.clearRect(0,0,256,128);
//console.log(text.groupNumber);
ctx.drawImage(beauty,0,0,256, 128);
ctx.fillText("设备部件:"+text, 90,30);
// ctx.fillText("车组人员:XXX", 40,20);

View File

@ -700,6 +700,7 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
function onSelectStart( event ) {
var controller = event.target;
// console.log(event);
let clickGui = getGuiButton(controller);
if(clickGui.length > 0){
if(positionStatus == "dm"){
@ -852,7 +853,9 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
}else{
var intersections = getIntersections( controller );
// console.log(intersections);
if ( intersections) {
// console.log(intersections);
var intersection = intersections[ 0 ];
if(intersection.distance <3.5){
if(positionStatus != intersection.object.name){
@ -883,12 +886,14 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
let posx = intersection.point.x - trainControl.toptrain.position.x;
let posz = intersection.point.z - trainControl.toptrain.position.z;
human.position.set( posx, intersection.point.y+0.6, posz);
// console.log(human.position);
}
if(positionStatus == "downfloor"){
let posx = trainControl.downtrain.position.x - intersection.point.x;
let posz = trainControl.downtrain.position.z - intersection.point.z;
human.position.set( posx, intersection.point.y+0.6, posz);
// console.log(human.position);
}
let postData = {
type:"syn",
@ -924,7 +929,9 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
// if ( intersections.length > 0 ) {
//
// // for(){}
// // console.log(intersections);
// var intersection = intersections[ 0 ];
// // console.log(intersection);
// // tempMatrix.getInverse( controller.matrixWorld );
// //
// // var object = intersection.object;
@ -950,6 +957,7 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
}
function squeezeStart(){
console.log("squeeze");
scope.modelmanager.otherDevice.action.play();
if(positionStatus == "dm"){
if(vrPlaneStatus){
@ -978,6 +986,7 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
// }
// settext(scope.animationmodel,scope.animationmodel.position);
// console.log(scope.animationmodel);
// helpbox = new THREE.BoxHelper( scope.animationmodel, 0xff0000 );
// moveanima.updatehelpbox(helpbox,textplane);
// settext(intersects[0].object,intersects[0].point);
@ -1013,6 +1022,7 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
raycastervr.ray.direction.set( 0, 0, - 1 ).applyMatrix4( tempMatrix );
for(let i=0;i<3;i++){
let rayObject = raycastervr.intersectObject( floors[i]);
// console.log(rayObject);
if(rayObject.length>0){
return rayObject;
}
@ -1063,6 +1073,7 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
if ( intersections) {
var intersection = intersections[ 0 ];
// console.log(intersection);
if(intersection.distance <3.5){
var object = intersection.object;
circle.position.set( intersection.point.x, intersection.point.y+0.05, intersection.point.z );
@ -1120,6 +1131,7 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
}
function getdevicemsg(selectname){
// console.log(selectname);
for(let i=0,leni=scope.devicetext.devicelist.length;i<leni;i++){
if(selectname == scope.devicetext.devicelist[i].name){
@ -1193,6 +1205,7 @@ export function jl3dFaultDeviceVr(dom,group,skinCode) {
}
// console.log(scope.nowstation);
}
function initstationanimation(object){

View File

@ -299,6 +299,7 @@ export function MoveanimateVr(main){
}
//动画播放器
this.animateupdate = function(){
// console.log(scope.animatelist);
if(scope.enable){
if(scope.playlist){
@ -334,6 +335,7 @@ export function MoveanimateVr(main){
}else{
// console.log(scope.animatelist[k].connectmodel);
if(scope.nowmodelname != scope.playlist[scope.playorder][i].connectmodel.name){
scope.nowmodelname = scope.playlist[scope.playorder][i].connectmodel.name;
main.animationmsgshowon(scope.playlist[scope.playorder][i].connectmodel);

View File

@ -18,6 +18,7 @@ function setTextVr(intersects,plane){
textplane.position.x = 0;
textplane.position.y = 1.55;
textplane.position.z = 0.01;
// console.log(textplane.position);
// textplane.tcode = data[i].code;
// textplane.rotation.y = -Math.PI/2;
// scope.textlist.push(textplane);
@ -50,6 +51,7 @@ function getTextCanvas(text){
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.clearRect(0,0,256,128);
//console.log(text.groupNumber);
ctx.drawImage(beauty,0,0,256, 128);
ctx.fillText("新的设备故障", 110,30);
ctx.fillText(text.name, 110,65);

View File

@ -277,6 +277,8 @@ export function VrGui(){
//
// let nowGroupComponent = scope.homeGroup;
this.setStationPlane = function(stations){
// console.log(stations);
// console.log(textures);
let posX,posY;
for(let i=0,leni = stations.length;i<leni;i++){
@ -366,6 +368,7 @@ export function VrGui(){
}
this.updataDeviceFaultMsg = function(faultData){
console.log(faultData);
let textt = new THREE.CanvasTexture(getTextCanvas(faultData,"faultMsg"));
scope.deviceGroup.getObjectByName("deviceText").material.map = textt;
scope.deviceGroup.getObjectByName("deviceText").material.map.needsUpdate = true;
@ -471,6 +474,7 @@ export function VrGui(){
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.clearRect(0,0,128,64);
//console.log(text.groupNumber);
ctx.drawImage(beauty,0,0,128, 64);
ctx.fillText(text.name, 64,32);
//ctx.fillText(text.trainModel.name, width/2,height*3/4);
@ -489,6 +493,7 @@ export function VrGui(){
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.clearRect(0,0,128,64);
//console.log(text.groupNumber);
ctx.drawImage(beauty,0,0,128, 64);
ctx.fillText("故障设备编号:", 64,16);
ctx.fillText(text.name, 64,48);
@ -508,6 +513,7 @@ export function VrGui(){
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.clearRect(0,0,256,256);
//console.log(text.groupNumber);
ctx.drawImage(beauty,0,0,256, 256);
ctx.fillText("当前车站信息", 128,32);
ctx.fillText("车站名:"+text.name, 128,64);
@ -534,6 +540,7 @@ export function VrGui(){
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.clearRect(0,0,256,256);
//console.log(text.groupNumber);
ctx.drawImage(beauty,0,0,256, 256);
ctx.fillText("当前故障信息", 128,32);
ctx.fillText("故障设备:"+text.code, 128,64);

View File

@ -183,7 +183,9 @@ export function Jl3dOtherVR(dom,group,skinCode) {
otherVrViewWorker.onmessage = function (event) {
// maintainerHuman
console.log(event.data);
if(event.data.type == "VR_Sync_3D"){
console.log(event.data);
humanMove(event.data);
@ -266,6 +268,8 @@ export function Jl3dOtherVR(dom,group,skinCode) {
}
if(event.data.type == "takeDownTrain"){
console.log(event.data);
console.log(stationList);
for(let i=0,leni=stationList.length;i<leni;i++){
if(stationList[i].code == event.data.stationcode){
scope.nowstation = stationList[i];
@ -290,6 +294,8 @@ export function Jl3dOtherVR(dom,group,skinCode) {
}
if(event.data.type == "topTrain"){
console.log(event.data);
console.log(trainControl.toptrain.status);
if(trainControl.toptrain.status != 1){
trainControl.toptrain.position.copy(trainControl.toptrain.curve.getPointAt(event.data.offset));
}
@ -304,6 +310,8 @@ export function Jl3dOtherVR(dom,group,skinCode) {
if(event.data.type == "topTrainDoor"){
console.log(event.data);
if(event.data.open == "0"){
trainControl.closetraindoor(trainControl.toptrain,event.data.doorCode,"top");
// trainLeaveStation("top");
@ -519,6 +527,7 @@ export function Jl3dOtherVR(dom,group,skinCode) {
// }
// settext(scope.animationmodel,scope.animationmodel.position);
// console.log(scope.animationmodel);
// helpbox = new THREE.BoxHelper( scope.animationmodel, 0xff0000 );
// moveanima.updatehelpbox(helpbox,textplane);
// settext(intersects[0].object,intersects[0].point);
@ -593,6 +602,7 @@ export function Jl3dOtherVR(dom,group,skinCode) {
function getdevicemsg(selectname){
// console.log(selectname);
for(let i=0,leni=scope.devicetext.devicelist.length;i<leni;i++){
if(selectname == scope.devicetext.devicelist[i].name){
@ -656,6 +666,7 @@ export function Jl3dOtherVR(dom,group,skinCode) {
}
}
console.log(stationList);
scope.nowstation = stationList[0];
let stationworket = {
type:'station',
@ -665,6 +676,7 @@ export function Jl3dOtherVR(dom,group,skinCode) {
}
// console.log(scope.nowstation);
}
@ -739,6 +751,7 @@ export function Jl3dOtherVR(dom,group,skinCode) {
}
function humanMove(movedata){
console.log(maintainerHuman);
let distance = Math.sqrt(Math.pow(movedata.body.pos.x - maintainerGroup.position.x, 2) + Math.pow(movedata.body.pos.y - maintainerGroup.position.y, 2) + Math.pow(movedata.body.pos.z - maintainerGroup.position.z, 2));
if(distance <5){
@ -776,6 +789,8 @@ export function Jl3dOtherVR(dom,group,skinCode) {
}
function setTextVr(intersects,plane){
console.log(intersects);
console.log(plane);
if(intersects.text){
let textgeometry = new THREE.PlaneBufferGeometry( 1.2, 0.8, 1 );
let textt = new THREE.CanvasTexture(getTextCanvas(intersects));
@ -794,6 +809,7 @@ export function Jl3dOtherVR(dom,group,skinCode) {
textplane.position.x = 0;
textplane.position.y = 1.55;
textplane.position.z = 0.01;
// console.log(textplane.position);
// textplane.tcode = data[i].code;
// textplane.rotation.y = -Math.PI/2;
// scope.textlist.push(textplane);
@ -826,6 +842,7 @@ export function Jl3dOtherVR(dom,group,skinCode) {
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.clearRect(0,0,256,128);
//console.log(text.groupNumber);
ctx.drawImage(beauty,0,0,256, 128);
ctx.fillText("新的设备故障", 110,30);
ctx.fillText(text.name, 110,65);

Some files were not shown because too many files have changed in this diff Show More