Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/jl-client into test
@ -204,18 +204,10 @@ export function getClassListPage(params) {
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 分页获取自己创建的班级 */
|
||||
export function getClassListPageSelf(params) {
|
||||
/** 查询班级列表不分页 */
|
||||
export function getClassListUnPage() {
|
||||
return request({
|
||||
url: `/api/company/paged/cls/self`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 查询个人创建的班级列表 */
|
||||
export function getClassListUnPageSelf() {
|
||||
return request({
|
||||
url: `/api/company/list/cls/self`,
|
||||
url: `/api/company/list/cls`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
@ -235,21 +227,6 @@ export function createStudent(orgId, data) {
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 获取班级关联课程 */
|
||||
export function getClassAssociatedLessons(orgId) {
|
||||
return request({
|
||||
url: `/api/company/orgLesson/${orgId}/list`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 关联课程班级 */
|
||||
export function setClassAssociatedLessons(orgId, data) {
|
||||
return request({
|
||||
url: `/api/company/orgLesson/${orgId}/update`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 创建修改 规则 */
|
||||
export function createRule(data) {
|
||||
return request({
|
||||
@ -302,3 +279,25 @@ export function userRuleGetScore(orgId, schoolYear, term) {
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 将规则应用到班级 */
|
||||
export function applyRuleToClass(ruleId, data) {
|
||||
return request({
|
||||
url: `/api/company/orgScoringRule/${ruleId}/apply`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 查询规则能够应用到的组织 */
|
||||
export function getCanApplyToList(ruleId) {
|
||||
return request({
|
||||
url: `/api/company/orgScoringRule/${ruleId}/canApplyTo`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 查询组织树结构 */
|
||||
export function getOrgTreeById(orgId) {
|
||||
return request({
|
||||
url: `api/company/orgTree/${orgId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
@ -103,18 +103,19 @@ export function getExamClassList(lessonId) {
|
||||
});
|
||||
}
|
||||
/** 获取自己发布的课程列表 */
|
||||
export function getLessonListSelf(params) {
|
||||
export function getLessonProjectList(params) {
|
||||
return request({
|
||||
url: '/api/lesson/paged/self',
|
||||
url: '/api/lesson/paged/byLoginProject',
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 获取自己发布课程列表不分页 */
|
||||
export function getLessonListsSelfNoPage() {
|
||||
export function getLessonProjectListNoPage(params) {
|
||||
return request({
|
||||
url: '/api/lesson/unPaged/self',
|
||||
method: 'get'
|
||||
url: '/api/lesson/list/byLoginProject',
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 获取班级关联的自己发布的课程 */
|
||||
|
@ -271,3 +271,10 @@ export function getSectionListByMapId(id) {
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 查询地图下集中站下的区段 */
|
||||
export function getSectionListByCenStationCode(id, stationCode) {
|
||||
return request({
|
||||
url: `/api/map/${id}/deviceStation/${stationCode}/sections`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
@ -150,3 +150,11 @@ export function sendCommandTrain(group, data) {
|
||||
data
|
||||
});
|
||||
}
|
||||
/** 根据地图id和产品类型查询实训类型及数量 */
|
||||
export function getTrainingTypeAndNumByMapIdAndPrdType(params) {
|
||||
return request({
|
||||
url: `/api/v1/training/trainingTypeAndQuantity`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
@ -1,37 +1,13 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/** 创建对应课程考题 */
|
||||
export function setCourseList(data) {
|
||||
export function createExam(data) {
|
||||
return request({
|
||||
url: `/api/exam`,
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
/** 贵州装备 创建对应课程考题 */
|
||||
export function setCourseListGzb(data) {
|
||||
return request({
|
||||
url: `/api/exam/project/GZB`,
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取对应课程下类型 */
|
||||
export function getCourseTypeList(data) {
|
||||
return request({
|
||||
url: `/api/exam/${data.lessonId}/trainingTypes`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取考试课程详情 */
|
||||
export function getCourseLessonDetail(data) {
|
||||
return request({
|
||||
url: `/api/exam/${data.lessonId}/list`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取试卷详情 */
|
||||
export function getExamLessonDetail(examId) {
|
||||
@ -74,17 +50,6 @@ export function setExamEffectivey(data) {
|
||||
});
|
||||
}
|
||||
|
||||
/** 查询课程下类型题数 */
|
||||
export function getLessonTypeNum(data) {
|
||||
return request({
|
||||
url: `/api/exam/trainingNum/${data.lessonId}/${data.trainingType}`,
|
||||
method: 'get',
|
||||
params: {
|
||||
operateType: data.operateType
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 更新考试规则*/
|
||||
export function updateExamRules(data) {
|
||||
return request({
|
||||
@ -93,19 +58,35 @@ export function updateExamRules(data) {
|
||||
data: data
|
||||
});
|
||||
}
|
||||
/** 查询本项目下自己创建的考试列表 */
|
||||
export function getExamListSelf(params) {
|
||||
/** 查询本项目下的考试列表 */
|
||||
export function getExamListProject(params) {
|
||||
return request({
|
||||
url: `/api/exam/paged/org/self`,
|
||||
url: `/api/exam/paged/loginProject`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 查询本项目下的考试列表不分页 */
|
||||
export function getExamListProjectUnpage(params) {
|
||||
return request({
|
||||
url: `/api/exam/list/loginProject`,
|
||||
methods: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 查询班级关联的自己创建的试卷 */
|
||||
export function getExanListSelfByClassId(params) {
|
||||
export function getExamListSelfByClassId(params) {
|
||||
return request({
|
||||
url: `/api/exam/list/org/self`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 根据地图ID和prdType查询试卷列表 */
|
||||
export function getExamListByMapIdAndPrdType(mapId, prdType) {
|
||||
return request({
|
||||
url: `/api/exam/list/${mapId}`,
|
||||
method: 'get',
|
||||
params: { prdType: prdType }
|
||||
});
|
||||
}
|
||||
|
@ -87,14 +87,6 @@ export function getRpListByMapId(mapId) {
|
||||
});
|
||||
}
|
||||
|
||||
/** 获取地图原始站间运行等级 */
|
||||
export function getMapStationRun(mapId) {
|
||||
return request({
|
||||
url: `/api/runPlan/draft/${mapId}/stationRunLevel`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/** 分页获取用户站间运行等级 */
|
||||
export function getMapStationRunUser(mapId) {
|
||||
return request({
|
||||
@ -147,14 +139,6 @@ export function checkServiceNumberExist({ planId, serviceNumber }) {
|
||||
});
|
||||
}
|
||||
|
||||
// /** 查询交路列表*/
|
||||
// export function getRoutingList(planId) {
|
||||
// return request({
|
||||
// url: `/api/runPlan/draft/${planId}/routingList`,
|
||||
// method: 'get'
|
||||
// });
|
||||
// }
|
||||
|
||||
/** 查询用户交路数据 (新版)*/
|
||||
export function listUserRoutingData(mapId) {
|
||||
return request({
|
||||
@ -165,9 +149,9 @@ export function listUserRoutingData(mapId) {
|
||||
}
|
||||
|
||||
/** 根据交路查询交路区段列表*/
|
||||
export function querySectionListByRouting({ planId, routingCode }) {
|
||||
export function querySectionListByRouting(routingCode) {
|
||||
return request({
|
||||
url: `/api/runPlan/draft/${planId}/${routingCode}/routingSectionList`,
|
||||
url: `/api/runPlan/draft/${routingCode}/routingSectionList`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
@ -258,15 +242,6 @@ export function updatePlanTrip(data) {
|
||||
|
||||
/** 根据车次号查询交路 */
|
||||
export function getRoutingBySDTNumber(params) {
|
||||
// 旧版
|
||||
// return request({
|
||||
// url: `/api/runPlan/draft/${params.planId}/routing`,
|
||||
// method: 'get',
|
||||
// params: {
|
||||
// SDTNumber: params.SDTNumber
|
||||
// }
|
||||
// });
|
||||
// 新版
|
||||
return request({
|
||||
url: `/api/runPlan/draft/${params.planId}/userRouting`,
|
||||
method: 'get',
|
||||
|
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
src/assets/iscs_picture/bas_annulus.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
src/assets/iscs_picture/bas_entity.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
src/assets/iscs_picture/bas_environmental.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
BIN
src/assets/iscs_picture/bas_interface.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
src/assets/iscs_picture/bas_low_pressure.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
src/assets/iscs_picture/bg-door-stand-A.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
src/assets/iscs_picture/bg-door-station-A.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
src/assets/iscs_picture/bg-showroom.jpg
Normal file
After Width: | Height: | Size: 334 KiB |
BIN
src/assets/iscs_picture/bg-stand.jpg
Normal file
After Width: | Height: | Size: 262 KiB |
BIN
src/assets/iscs_picture/bg-station-A.png
Normal file
After Width: | Height: | Size: 210 KiB |
BIN
src/assets/iscs_picture/bg-station-B.png
Normal file
After Width: | Height: | Size: 122 KiB |
BIN
src/assets/iscs_picture/bg-station-C.png
Normal file
After Width: | Height: | Size: 112 KiB |
BIN
src/assets/iscs_picture/bg-station-D.png
Normal file
After Width: | Height: | Size: 145 KiB |
BIN
src/assets/iscs_picture/bg-station-E.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
src/assets/iscs_picture/bg-station-F.png
Normal file
After Width: | Height: | Size: 262 KiB |
BIN
src/assets/iscs_picture/check_arrow_double.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
src/assets/iscs_picture/check_arrow_left.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
src/assets/iscs_picture/check_arrow_right.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
src/assets/iscs_picture/check_flow_cumulative.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
src/assets/iscs_picture/check_normal.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
src/assets/iscs_picture/check_sell.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
src/assets/iscs_picture/check_sell2.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
src/assets/iscs_picture/fas_platform_a_bg.png
Normal file
After Width: | Height: | Size: 143 KiB |
BIN
src/assets/iscs_picture/fas_platform_b_bg.png
Normal file
After Width: | Height: | Size: 120 KiB |
BIN
src/assets/iscs_picture/fireDamper_blue.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
src/assets/iscs_picture/fireDamper_green.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
src/assets/iscs_picture/fireDamper_red.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 3.3 KiB |
BIN
src/assets/iscs_picture/smokeDetector_blue.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
src/assets/iscs_picture/smokeDetector_green.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
src/assets/iscs_picture/smokeDetector_red.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 3.1 KiB |
@ -141,6 +141,7 @@
|
||||
<el-form-item :key="item.prop" :prop="item.prop" :label="item.label" :required="item.required">
|
||||
<template v-if="item.remote">
|
||||
<el-select
|
||||
:ref="'select_'+item.prop"
|
||||
v-model="formModel[item.prop]"
|
||||
:placeholder="item.placeholder"
|
||||
:disabled="item.disabled"
|
||||
@ -160,6 +161,7 @@
|
||||
</template>
|
||||
<template v-else-if="item.allowCreate">
|
||||
<el-select
|
||||
:ref="'select_'+item.prop"
|
||||
v-model="formModel[item.prop]"
|
||||
:placeholder="item.placeholder"
|
||||
:disabled="item.disabled"
|
||||
@ -179,6 +181,7 @@
|
||||
</template>
|
||||
<template v-else-if="item.multiple">
|
||||
<el-select
|
||||
:ref="'select_'+item.prop"
|
||||
v-model="formModel[item.prop]"
|
||||
:placeholder="item.placeholder"
|
||||
:disabled="item.disabled"
|
||||
@ -196,6 +199,7 @@
|
||||
</template>
|
||||
<template v-else-if="item.change">
|
||||
<el-select
|
||||
:ref="'select_'+item.prop"
|
||||
v-model="formModel[item.prop]"
|
||||
filterable
|
||||
:clearable="!!item.clearable"
|
||||
@ -216,6 +220,7 @@
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-select
|
||||
:ref="'select_'+item.prop"
|
||||
v-model="formModel[item.prop]"
|
||||
filterable
|
||||
:no-data-text="item.noDataText?item.noDataText:'无数据'"
|
||||
@ -239,6 +244,7 @@
|
||||
<template v-else-if="checkFieldType(item, 'datetime') || checkFieldType(item, 'date') || checkFieldType(item, 'daterange') || checkFieldType(item, 'datetimerange')">
|
||||
<el-form-item :key="item.prop" :prop="item.prop" :label="item.label" :required="item.required" style="width: 100%;">
|
||||
<el-date-picker
|
||||
:ref="'select_'+item.prop"
|
||||
v-model="formModel[item.prop]"
|
||||
align="right"
|
||||
:type="item.type"
|
||||
@ -253,6 +259,7 @@
|
||||
<template v-else-if="checkFieldType(item, 'time')">
|
||||
<el-form-item :key="item.prop" :prop="item.prop" :label="item.label" :required="item.required">
|
||||
<el-time-select
|
||||
:ref="'select_'+item.prop"
|
||||
v-model="formModel[item.prop]"
|
||||
:placeholder="item.placeholder"
|
||||
:disabled="item.disabled"
|
||||
@ -263,6 +270,7 @@
|
||||
<template v-else-if="checkFieldType(item, 'timePicker')">
|
||||
<el-form-item :key="item.prop" :prop="item.prop" :label="item.label" :required="item.required">
|
||||
<el-time-picker
|
||||
:ref="'select_'+item.prop"
|
||||
v-model="formModel[item.prop]"
|
||||
:placeholder="item.placeholder"
|
||||
:disabled="item.disabled"
|
||||
@ -410,6 +418,30 @@ export default {
|
||||
if (item.deviceChange) {
|
||||
item.deviceChange(data);
|
||||
}
|
||||
},
|
||||
allSelectBlur() {
|
||||
const that = this;
|
||||
const list = ['datetime', 'date', 'daterange', 'datetimerange', 'time', 'timePicker'];
|
||||
this.form.items.forEach(each=>{
|
||||
if (each.hasOwnProperty('show')) {
|
||||
if ((list.includes(each.type) || this.checkFieldType(each, 'select')) && each.show) {
|
||||
// that.$refs['select_' + each.prop][0].blur();
|
||||
if (this.checkFieldType(each, 'select')) {
|
||||
that.$refs['select_' + each.prop][0].blur();
|
||||
} else {
|
||||
that.$refs['select_' + each.prop][0].hidePicker();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (list.includes(each.type) || this.checkFieldType(each, 'select')) {
|
||||
if (this.checkFieldType(each, 'select')) {
|
||||
that.$refs['select_' + each.prop][0].blur();
|
||||
} else {
|
||||
that.$refs['select_' + each.prop][0].hidePicker();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -87,7 +87,7 @@ export default {
|
||||
bankManage: '题库列表',
|
||||
practiceManage:'实操列表',
|
||||
sceneManage:'场景列表',
|
||||
companyManage: '单位管理',
|
||||
companyManage: '组织管理',
|
||||
authorApply: '授权申请',
|
||||
AuthorList: '授权列表',
|
||||
questionsRuleManage: '出题规则管理',
|
||||
|
@ -336,13 +336,13 @@ deviceRender[deviceType.IscsImage] = {
|
||||
deviceRender[deviceType.OrdinaryDoor] = {
|
||||
_type: deviceType.OrdinaryDoor,
|
||||
zlevel: 1,
|
||||
z: 4
|
||||
z: 5
|
||||
};
|
||||
// 福州门禁
|
||||
deviceRender[deviceType.FuzhouDoor] = {
|
||||
_type: deviceType.FuzhouDoor,
|
||||
zlevel: 1,
|
||||
z: 4
|
||||
z: 5
|
||||
};
|
||||
// 福州通讯图符
|
||||
deviceRender[deviceType.CommunicationButcher] = {
|
||||
|
@ -18,7 +18,7 @@ class Iscs {
|
||||
this.methods = opts.methods;
|
||||
|
||||
// 鼠标事件
|
||||
this.events = { __Pan: 'pan', Selected: 'selected', Contextmenu: 'contextmenu', Keyboard: 'keyboard', dblclick: 'dblclick'};
|
||||
this.events = { __Pan: 'pan', Selected: 'selected', Contextmenu: 'contextmenu', Keyboard: 'keyboard', dblclick: 'dblclick', click:'click'};
|
||||
|
||||
// 设备数据
|
||||
this.iscsDevice = {};
|
||||
@ -280,6 +280,9 @@ class Iscs {
|
||||
case this.events.dblclick:
|
||||
this.$mouseController.on(this.events.dblclick, cb, context);
|
||||
break;
|
||||
case this.events.click:
|
||||
this.$mouseController.on(this.events.click, cb, context);
|
||||
break;
|
||||
case this.events.Contextmenu:
|
||||
this.$mouseController.on(this.events.Contextmenu, cb, context);
|
||||
break;
|
||||
@ -303,6 +306,9 @@ class Iscs {
|
||||
case this.events.dblclick:
|
||||
this.$mouseController.off(this.events.dblclick, cb);
|
||||
break;
|
||||
case this.events.click:
|
||||
this.$mouseController.off(this.events.click, cb);
|
||||
break;
|
||||
case this.events.Contextmenu:
|
||||
this.$mouseController.off(this.events.Contextmenu, cb);
|
||||
break;
|
||||
|
@ -138,7 +138,11 @@ class MouseController extends Eventful {
|
||||
}
|
||||
click(e) {
|
||||
var em = this.checkEvent(e);
|
||||
this.trigger(this.events.Selected, em);
|
||||
if (em.deviceType == 'IscsButton') {
|
||||
this.trigger(this.events.click, em);
|
||||
} else {
|
||||
this.trigger(this.events.Selected, em);
|
||||
}
|
||||
}
|
||||
moveEvent(e) {
|
||||
const newEm = new EventModel(e);
|
||||
|
@ -53,13 +53,13 @@ export default class Button extends Group {
|
||||
y: textRect.y - model.verticalPadding,
|
||||
image: buttonImg,
|
||||
width: textRect.width + 2 * model.levelPadding,
|
||||
height: textRect.height + 2 * model.verticalPadding
|
||||
height: textRect.height + 2 * model.verticalPadding,
|
||||
}
|
||||
});
|
||||
this.grouper.add(this.imageButton);
|
||||
this.on('mousedown', (e) => { this.imageButton && this.imageButton.setStyle({image: buttonActive}); });
|
||||
this.on('mouseup', (e) => { this.imageButton && this.imageButton.setStyle({image: buttonImg}); });
|
||||
} else if (Vue.prototype.$iscs.lineCode == '02') {
|
||||
} else if (['02','09'].includes(Vue.prototype.$iscs.lineCode)) {
|
||||
this.textButtonRect = new Rect({
|
||||
zlevel: model.zlevel,
|
||||
z: model.z,
|
||||
@ -68,7 +68,8 @@ export default class Button extends Group {
|
||||
x: textRect.x - model.levelPadding,
|
||||
y: textRect.y - model.verticalPadding,
|
||||
width: textRect.width + 2 * model.levelPadding,
|
||||
height: textRect.height + 2 * model.verticalPadding
|
||||
height: textRect.height + 2 * model.verticalPadding,
|
||||
fill: model.fillColor||'rgba(0,0,0,0)'
|
||||
},
|
||||
style: {
|
||||
lineWidth: 0,
|
||||
@ -121,7 +122,8 @@ export default class Button extends Group {
|
||||
x: textRect.x - model.levelPadding + 6,
|
||||
y: textRect.y - model.verticalPadding + 6,
|
||||
width: textRect.width + 2 * model.levelPadding - 12,
|
||||
height: textRect.height + 2 * model.verticalPadding - 12
|
||||
height: textRect.height + 2 * model.verticalPadding - 12,
|
||||
fill: model.fillColor||'rgba(0,0,0,0)'
|
||||
},
|
||||
style: {
|
||||
lineWidth: 2,
|
||||
@ -149,8 +151,8 @@ export default class Button extends Group {
|
||||
}
|
||||
this.grouper.add(this.buttonText);
|
||||
this.add(this.grouper);
|
||||
this.on('mouseout', (e) => { this.buttonText && this.buttonText.setStyle({textFill: model.textColor || '#FFF'}); });
|
||||
this.on('mouseover', (e) => { this.buttonText && this.buttonText.setStyle({textFill: model.textColorActive || '#000'}); });
|
||||
this.on('mouseout', (e) => { this.buttonText && this.buttonText.setStyle({textFill: model.textColor||'#FFF', fill: model.fillColor||'rgba(0,0,0,0)'}); });
|
||||
this.on('mouseover', (e) => { this.buttonText && this.buttonText.setStyle({textFill: model.textColorActive||'#000',fill: model.fillColorActive||'rgba(0,0,0,0)'}); });
|
||||
}
|
||||
setState(model) {
|
||||
this.textButtonRect.setStyle('fill', model.backgroundColor);
|
||||
|
@ -63,17 +63,19 @@ export default class line extends Group {
|
||||
stroke: this.model.fillColor
|
||||
}
|
||||
});
|
||||
if (fillColor) {
|
||||
this.iscsLine.setStyle('fill', fillColor);
|
||||
}
|
||||
// if (fillColor) {
|
||||
// this.iscsLine.setStyle('fill', fillColor);
|
||||
// }
|
||||
if (model.isGradual) {
|
||||
if (!model.isFillGradual) {
|
||||
if (fillColor) {
|
||||
this.iscsLine.setStyle('fill', fillColor);
|
||||
}
|
||||
} else {
|
||||
this.iscsLine.setStyle('stroke', fillColor);
|
||||
}
|
||||
// if (!model.isFillGradual) {
|
||||
// if (fillColor) {
|
||||
// this.iscsLine.setStyle('fill', fillColor);
|
||||
// }
|
||||
// } else {
|
||||
this.iscsLine.setStyle('stroke', fillColor);
|
||||
// }
|
||||
} else {
|
||||
this.iscsLine.setStyle('fill', fillColor||'rgba(0,0,0,0)');
|
||||
}
|
||||
if (model.classify == 'dashed') {
|
||||
this.iscsLine.setStyle('lineDash', [8, 6]);
|
||||
@ -101,7 +103,7 @@ export default class line extends Group {
|
||||
},
|
||||
style: {
|
||||
lineWidth: 0,
|
||||
fill: model.fillColor
|
||||
fill: model.fillColor||'rgba(0,0,0,0)'
|
||||
}
|
||||
});
|
||||
this.grouper.add(this.arrows);
|
||||
@ -129,7 +131,7 @@ export default class line extends Group {
|
||||
},
|
||||
style: {
|
||||
lineWidth: 0,
|
||||
fill: model.fillColor
|
||||
fill: model.fillColor||'rgba(0,0,0,0)'
|
||||
}
|
||||
});
|
||||
this.grouper.add(this.arrows);
|
||||
|
@ -9,6 +9,7 @@ export default class OrdinaryDoor extends Group {
|
||||
this.model = device.model;
|
||||
this.zlevel = device.model.zlevel;
|
||||
this.z = device.model.z;
|
||||
this.z2 = device.model.z2;
|
||||
this._type = device.model._type;
|
||||
this._code = device.model.code;
|
||||
this.create();
|
||||
@ -21,6 +22,7 @@ export default class OrdinaryDoor extends Group {
|
||||
this.sector1 = new Sector({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
z2: this.z2||0,
|
||||
shape: {
|
||||
cx: 0,
|
||||
cy: this.model.r,
|
||||
@ -56,6 +58,7 @@ export default class OrdinaryDoor extends Group {
|
||||
this.sector2 = new Sector({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
z2: this.z2,
|
||||
shape: {
|
||||
cx: this.model.r * 2,
|
||||
cy: this.model.r,
|
||||
@ -75,6 +78,7 @@ export default class OrdinaryDoor extends Group {
|
||||
this.maskLine = new Line({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
z2: this.z2,
|
||||
shape: {
|
||||
x1: 1,
|
||||
y1: this.model.r,
|
||||
@ -92,6 +96,7 @@ export default class OrdinaryDoor extends Group {
|
||||
this.bottomRect = new Rect({
|
||||
zlevel: this.zlevel,
|
||||
z: this.z,
|
||||
z2: this.z2,
|
||||
shape: {
|
||||
x: 0,
|
||||
y: this.model.r,
|
||||
|
@ -47,6 +47,39 @@ import iscsSensor from '@/assets/iscs_picture/iscs-sensor.png';
|
||||
import iscsDangwei from '@/assets/iscs_picture/iscs-dangwei.png';
|
||||
import iscsDibian from '@/assets/iscs_picture/iscs-dibian.png';
|
||||
import iscsPt1 from '@/assets/iscs_picture/iscs-pt1.png';
|
||||
import checkNormal from '@/assets/iscs_picture/check_normal.png';
|
||||
import checkArrowLeft from '@/assets/iscs_picture/check_arrow_left.png';
|
||||
import checkArrowRight from '@/assets/iscs_picture/check_arrow_right.png';
|
||||
import checkArrowDouble from '@/assets/iscs_picture/check_arrow_double.png';
|
||||
import checkFlowCumulative from '@/assets/iscs_picture/check_flow_cumulative.png';
|
||||
import checkSell from '@/assets/iscs_picture/check_sell.png';
|
||||
import checkSell2 from '@/assets/iscs_picture/check_sell2.png';
|
||||
import bgShowRoom from '@/assets/iscs_picture/bg-showroom.jpg';
|
||||
import bgStand from '@/assets/iscs_picture/bg-stand.jpg';
|
||||
import bgFasPlatformA from '@/assets/iscs_picture/fas_platform_a_bg.png';
|
||||
import bgFasPlatformB from '@/assets/iscs_picture/fas_platform_b_bg.png';
|
||||
import basAnnulus from '@/assets/iscs_picture/bas_annulus.png';
|
||||
import basEnvironmental from '@/assets/iscs_picture/bas_environmental.png';
|
||||
import basLowPressure from '@/assets/iscs_picture/bas_low_pressure.png';
|
||||
import basInterface from '@/assets/iscs_picture/bas_interface.png';
|
||||
import basEntity from '@/assets/iscs_picture/bas_entity.png';
|
||||
import smokeDetectorRed from '@/assets/iscs_picture/smokeDetector_red.png';
|
||||
import smokeDetectorBlue from '@/assets/iscs_picture/smokeDetector_blue.png';
|
||||
import smokeDetectorGreen from '@/assets/iscs_picture/smokeDetector_green.png';
|
||||
import fireDamperRed from '@/assets/iscs_picture/fireDamper_red.png';
|
||||
import fireDamperBlue from '@/assets/iscs_picture/fireDamper_blue.png';
|
||||
import fireDamperGreen from '@/assets/iscs_picture/fireDamper_green.png';
|
||||
import alarmLampRed from '@/assets/iscs_picture/alarmLamp_red.png';
|
||||
import alarmLampBlue from '@/assets/iscs_picture/alarmLamp_blue.png';
|
||||
import alarmLampGreen from '@/assets/iscs_picture/alarmLamp_green.png';
|
||||
import bgStationA from '@/assets/iscs_picture/bg-station-A.png'
|
||||
import bgStationB from '@/assets/iscs_picture/bg-station-B.png'
|
||||
import bgStationC from '@/assets/iscs_picture/bg-station-C.png'
|
||||
import bgStationD from '@/assets/iscs_picture/bg-station-D.png'
|
||||
import bgStationE from '@/assets/iscs_picture/bg-station-E.png'
|
||||
import bgStationF from '@/assets/iscs_picture/bg-station-F.png'
|
||||
import bgDoorStationA from '@/assets/iscs_picture/bg-door-station-A.png';
|
||||
import bgDoorStandA from '@/assets/iscs_picture/bg-door-stand-A.png';
|
||||
|
||||
const pictureObj = {
|
||||
'psdLeft': psdLeft,
|
||||
@ -93,7 +126,40 @@ const pictureObj = {
|
||||
iscsSensor,
|
||||
iscsDangwei,
|
||||
iscsDibian,
|
||||
iscsPt1
|
||||
iscsPt1,
|
||||
checkNormal,
|
||||
checkArrowLeft,
|
||||
checkArrowRight,
|
||||
checkArrowDouble,
|
||||
checkFlowCumulative,
|
||||
checkSell,
|
||||
checkSell2,
|
||||
bgShowRoom,
|
||||
bgStand,
|
||||
basAnnulus,
|
||||
basEnvironmental,
|
||||
basLowPressure,
|
||||
basInterface,
|
||||
basEntity,
|
||||
bgFasPlatformA,
|
||||
bgFasPlatformB,
|
||||
smokeDetectorRed,
|
||||
smokeDetectorBlue,
|
||||
smokeDetectorGreen,
|
||||
fireDamperRed,
|
||||
fireDamperBlue,
|
||||
fireDamperGreen,
|
||||
alarmLampRed,
|
||||
alarmLampBlue,
|
||||
alarmLampGreen,
|
||||
bgStationA,
|
||||
bgStationB,
|
||||
bgStationC,
|
||||
bgStationD,
|
||||
bgStationE,
|
||||
bgStationF,
|
||||
bgDoorStationA,
|
||||
bgDoorStandA
|
||||
};
|
||||
export default class Picture extends Group {
|
||||
constructor(device) {
|
||||
|
@ -36,6 +36,11 @@ export function deviceFactory(type, elem) {
|
||||
export function parser(data) {
|
||||
var iscsDevice = {};
|
||||
if (data) {
|
||||
Object.values(data).forEach(list => {
|
||||
if (list instanceof Array) {
|
||||
list.sort((a, b) => parseInt(a.code.split('_')[1]) - parseInt(b.code.split('_')[1]));
|
||||
}
|
||||
})
|
||||
zrUtil.each(data.manualAlarmButtonList || [], elem => {
|
||||
iscsDevice[elem.code] = deviceFactory(deviceType.ManualAlarmButton, elem);
|
||||
}, this);
|
||||
@ -204,7 +209,7 @@ export function parser(data) {
|
||||
zrUtil.each(data.ordinaryDoorList || [], elem => {
|
||||
iscsDevice[elem.code] = deviceFactory(deviceType.OrdinaryDoor, elem);
|
||||
});
|
||||
zrUtil.each(data.fuzhoudoorList || [], elem => {
|
||||
zrUtil.each(data.fuzhouDoorList || [], elem => {
|
||||
iscsDevice[elem.code] = deviceFactory(deviceType.FuzhouDoor, elem);
|
||||
});
|
||||
zrUtil.each(data.communicationButcherList || [], elem => {
|
||||
|
@ -409,10 +409,10 @@ export default class ELines extends Group {
|
||||
}
|
||||
|
||||
setCrossBlock() {
|
||||
this.centerSquare && this.centerSquare.setStyle({fill:this.model.style.Section.cross.centerSquare.blockColor});
|
||||
this.crossSection && this.crossSection.setStyle({fill:this.model.style.Section.cross.centerSquare.blockColor});
|
||||
}
|
||||
setCrossUnBlock() {
|
||||
this.centerSquare && this.centerSquare.setStyle({fill:this.model.style.Section.cross.centerSquare.defaultColor});
|
||||
this.crossSection && this.crossSection.setStyle({fill:this.model.style.Section.cross.centerSquare.defaultColor});
|
||||
}
|
||||
setCrossSpeedUpperLimit(speedLimit) {
|
||||
this.crossSpeedText && this.crossSpeedText.setStyle({text:speedLimit, textFill: 'red' });
|
||||
|
@ -7,34 +7,34 @@ const defaultConfig = {
|
||||
/** 间隔高度*/
|
||||
multiple: 3,
|
||||
/** 偏移时间*/
|
||||
translation: 60 * 60 * 2,
|
||||
}
|
||||
translation: 60 * 60 * 2
|
||||
};
|
||||
|
||||
class EqualDistanceParser {
|
||||
constructor() {
|
||||
}
|
||||
constructor() {
|
||||
}
|
||||
|
||||
/** 加载配置*/
|
||||
load(config = defaultConfig) {
|
||||
this.config = config;
|
||||
this.multiple = config.multiple;
|
||||
this.translation = config.translation;
|
||||
this.edge = config.edge;
|
||||
return this;
|
||||
}
|
||||
/** 加载配置*/
|
||||
load(config = defaultConfig) {
|
||||
this.config = config;
|
||||
this.multiple = config.multiple;
|
||||
this.translation = config.translation;
|
||||
this.edge = config.edge;
|
||||
return this;
|
||||
}
|
||||
|
||||
/** 解析excel数据转换为Json后台数据*/
|
||||
importData(sheet, data) {
|
||||
if (this.config &&
|
||||
/** 解析excel数据转换为Json后台数据*/
|
||||
importData(sheet, data) {
|
||||
if (this.config &&
|
||||
this.config.importData) {
|
||||
this.config.importData(sheet, data)
|
||||
} else {
|
||||
console.info('no import data function');
|
||||
}
|
||||
}
|
||||
this.config.importData(sheet, data);
|
||||
} else {
|
||||
console.info('no import data function');
|
||||
}
|
||||
}
|
||||
|
||||
/** 将后台数据解析成图表*/
|
||||
convertDataToModels(data, stations, kmRangeMap, lineStyle) {
|
||||
/** 将后台数据解析成图表*/
|
||||
convertDataToModels(data, stations, kmRangeMap, lineStyle) {
|
||||
var models = [];
|
||||
|
||||
if (data && data.serviceNumberDataList && data.serviceNumberDataList.length) {
|
||||
@ -74,12 +74,16 @@ class EqualDistanceParser {
|
||||
|
||||
/** 计算折返点车次坐标点集合*/
|
||||
if (!train.backup && train.reentry && service.tripNumberDataList[j + 1] && service.tripNumberDataList[j + 1].stationTimeList) {
|
||||
lastPoint = train.stationTimeList[idx];
|
||||
nextPoint = service.tripNumberDataList[j + 1].stationTimeList[0];
|
||||
// ${train.directionCode}
|
||||
const aa = `${train.tripNumber}`;
|
||||
opt.data.push([lastPoint.secondTime, this.getCoordYByElem(stations, kmRangeMap, lastPoint, pointdata.directionCode, true), lastPoint.stationCode, aa, '折返轨']);
|
||||
opt.data.push([nextPoint.secondTime, this.getCoordYByElem(stations, kmRangeMap, lastPoint, pointdata.directionCode, true), lastPoint.stationCode, aa, '折返轨']);
|
||||
const currentTimeList = service.tripNumberDataList[j].stationTimeList;
|
||||
const nextTimeList = service.tripNumberDataList[j + 1].stationTimeList;
|
||||
if (currentTimeList[currentTimeList.length - 1].secondTime != nextTimeList[0].secondTime) {
|
||||
lastPoint = train.stationTimeList[idx];
|
||||
nextPoint = service.tripNumberDataList[j + 1].stationTimeList[0];
|
||||
// ${train.directionCode}
|
||||
const aa = `${train.tripNumber}`;
|
||||
opt.data.push([lastPoint.secondTime, this.getCoordYByElem(stations, kmRangeMap, lastPoint, pointdata.directionCode, true), lastPoint.stationCode, aa, '折返轨']);
|
||||
opt.data.push([nextPoint.secondTime, this.getCoordYByElem(stations, kmRangeMap, lastPoint, pointdata.directionCode, true), lastPoint.stationCode, aa, '折返轨']);
|
||||
}
|
||||
}
|
||||
|
||||
/** 如果是备用车,按车次添加线*/
|
||||
@ -232,11 +236,11 @@ class EqualDistanceParser {
|
||||
|
||||
/** 根据方向计算y折返偏移量*/
|
||||
getValueYByDirectionCode(defaultValue, directionCode) {
|
||||
const sign = this.getReverse() ? -1 : 1;
|
||||
const sign = this.getReverse() ? -1 : 1;
|
||||
if (directionCode === '1') {
|
||||
defaultValue -= sign*this.getEdge() / 2;
|
||||
defaultValue -= sign * this.getEdge() / 2;
|
||||
} else if (directionCode === '2') {
|
||||
defaultValue += sign*this.getEdge() / 2;
|
||||
defaultValue += sign * this.getEdge() / 2;
|
||||
}
|
||||
|
||||
return defaultValue;
|
||||
@ -256,33 +260,33 @@ class EqualDistanceParser {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
getMultiple() {
|
||||
return this.config.multiple;
|
||||
}
|
||||
getMultiple() {
|
||||
return this.config.multiple;
|
||||
}
|
||||
|
||||
getTranslation() {
|
||||
return this.config.translation
|
||||
}
|
||||
getTranslation() {
|
||||
return this.config.translation;
|
||||
}
|
||||
|
||||
getEdge(){
|
||||
return this.config.edge;
|
||||
}
|
||||
getEdge() {
|
||||
return this.config.edge;
|
||||
}
|
||||
|
||||
getReverse() {
|
||||
return this.config.reverse;
|
||||
}
|
||||
getReverse() {
|
||||
return this.config.reverse;
|
||||
}
|
||||
|
||||
__createMartPoint(...args) {
|
||||
return this.config.reverse ? createMartPointReverse(...args): createMartPoint(...args);
|
||||
}
|
||||
__createMartPoint(...args) {
|
||||
return this.config.reverse ? createMartPointReverse(...args) : createMartPoint(...args);
|
||||
}
|
||||
|
||||
__createSeriesModel(...args) {
|
||||
return createSeriesModel(...args);
|
||||
}
|
||||
__createSeriesModel(...args) {
|
||||
return createSeriesModel(...args);
|
||||
}
|
||||
|
||||
__createMarkLineModels(...args) {
|
||||
return createMarkLineModels(...args);
|
||||
}
|
||||
__createMarkLineModels(...args) {
|
||||
return createMarkLineModels(...args);
|
||||
}
|
||||
}
|
||||
|
||||
export default EqualDistanceParser;
|
||||
|
@ -2,40 +2,40 @@ import { createSeriesModel, createMarkLineModels, createMartPoint, createMartPoi
|
||||
import store from '@/store/index';
|
||||
|
||||
const defaultConfig = {
|
||||
/** 最小时间*/
|
||||
minTime: 0,
|
||||
/** 最大时间*/
|
||||
maxTime: 3600 * 24 - 1,
|
||||
/** 边缘高度*/
|
||||
edge: 600,
|
||||
/** 间隔高度*/
|
||||
multiple: 1,
|
||||
/** 偏移时间*/
|
||||
translation: 0,
|
||||
}
|
||||
/** 最小时间*/
|
||||
minTime: 0,
|
||||
/** 最大时间*/
|
||||
maxTime: 3600 * 24 - 1,
|
||||
/** 边缘高度*/
|
||||
edge: 600,
|
||||
/** 间隔高度*/
|
||||
multiple: 1,
|
||||
/** 偏移时间*/
|
||||
translation: 0
|
||||
};
|
||||
|
||||
class EqualRatioParser {
|
||||
constructor() {
|
||||
}
|
||||
constructor() {
|
||||
}
|
||||
|
||||
/** 加载配置*/
|
||||
load(config = defaultConfig) {
|
||||
this.config = config;
|
||||
return this;
|
||||
}
|
||||
/** 加载配置*/
|
||||
load(config = defaultConfig) {
|
||||
this.config = config;
|
||||
return this;
|
||||
}
|
||||
|
||||
/** 解析excel数据转换为Json后台数据*/
|
||||
importData(sheet, data) {
|
||||
if (this.config &&
|
||||
/** 解析excel数据转换为Json后台数据*/
|
||||
importData(sheet, data) {
|
||||
if (this.config &&
|
||||
this.config.importData) {
|
||||
this.config.importData(sheet, data)
|
||||
} else {
|
||||
console.info('no import data function');
|
||||
}
|
||||
}
|
||||
this.config.importData(sheet, data);
|
||||
} else {
|
||||
console.info('no import data function');
|
||||
}
|
||||
}
|
||||
|
||||
/** 将后台数据解析成图表*/
|
||||
convertDataToModels(data, stations, kmRangeMap, lineStyle) {
|
||||
/** 将后台数据解析成图表*/
|
||||
convertDataToModels(data, stations, kmRangeMap, lineStyle) {
|
||||
var models = [];
|
||||
if (data && data.serviceNumberDataList && data.serviceNumberDataList.length) {
|
||||
/** 按服务遍历数据*/
|
||||
@ -74,19 +74,23 @@ class EqualRatioParser {
|
||||
// if (index == 0 && train.stationTimeList[index].stationCode != train.stationTimeList[index + 1].stationCode ||
|
||||
// index == train.stationTimeList.length - 2 && train.stationTimeList[index].secondTime != train.stationTimeList[index + 1].secondTime ||
|
||||
// index > 0 && index < train.stationTimeList.length - 1) {
|
||||
const aa = `${train.tripNumber}`;
|
||||
opt.data.push([elem.secondTime, this.getCoordYByElem(stations, kmRangeMap, elem, pointdata.directionCode, false), elem.stationCode, aa]);
|
||||
const aa = `${train.tripNumber}`;
|
||||
opt.data.push([elem.secondTime, this.getCoordYByElem(stations, kmRangeMap, elem, pointdata.directionCode, false), elem.stationCode, aa]);
|
||||
// }
|
||||
});
|
||||
|
||||
/** 计算折返点车次坐标点集合*/
|
||||
if (!train.backup && train.reentry && service.tripNumberDataList[j + 1] && service.tripNumberDataList[j + 1].stationTimeList) {
|
||||
lastPoint = train.stationTimeList[train.stationTimeList.length - 1];
|
||||
nextPoint = service.tripNumberDataList[j + 1].stationTimeList[0];
|
||||
num = this.computedReentryNumber(train.tripNumber);
|
||||
const aa = `${train.tripNumber}`;
|
||||
opt.data.push([lastPoint.secondTime, this.getCoordYByElem(stations, kmRangeMap, lastPoint, pointdata.directionCode, true, num), lastPoint.stationCode, aa]);
|
||||
opt.data.push([nextPoint.secondTime, this.getCoordYByElem(stations, kmRangeMap, nextPoint, pointdata.directionCode, true, num), nextPoint.stationCode, aa]);
|
||||
const currentTimeList = service.tripNumberDataList[j].stationTimeList;
|
||||
const nextTimeList = service.tripNumberDataList[j + 1].stationTimeList;
|
||||
if (currentTimeList[currentTimeList.length - 1].secondTime != nextTimeList[0].secondTime) {
|
||||
lastPoint = train.stationTimeList[train.stationTimeList.length - 1];
|
||||
nextPoint = service.tripNumberDataList[j + 1].stationTimeList[0];
|
||||
num = this.computedReentryNumber(train.tripNumber);
|
||||
const aa = `${train.tripNumber}`;
|
||||
opt.data.push([lastPoint.secondTime, this.getCoordYByElem(stations, kmRangeMap, lastPoint, pointdata.directionCode, true, num), lastPoint.stationCode, aa]);
|
||||
opt.data.push([nextPoint.secondTime, this.getCoordYByElem(stations, kmRangeMap, nextPoint, pointdata.directionCode, true, num), nextPoint.stationCode, aa]);
|
||||
}
|
||||
}
|
||||
|
||||
/** 如果是备用车,按车次添加线*/
|
||||
@ -246,7 +250,7 @@ class EqualRatioParser {
|
||||
|
||||
/** 根据方向计算y折返偏移量*/
|
||||
getValueYByDirectionCode(defaultValue, directionCode, num) {
|
||||
const sign = this.getReverse() ? -1 : 1;
|
||||
const sign = this.getReverse() ? -1 : 1;
|
||||
if (directionCode === '1') {
|
||||
defaultValue -= sign * this.getEdge() / 2 * num;
|
||||
} else if (directionCode === '2') {
|
||||
@ -270,33 +274,33 @@ class EqualRatioParser {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
getMultiple() {
|
||||
return this.config.multiple;
|
||||
}
|
||||
getMultiple() {
|
||||
return this.config.multiple;
|
||||
}
|
||||
|
||||
getTranslation() {
|
||||
return this.config.translation
|
||||
}
|
||||
getTranslation() {
|
||||
return this.config.translation;
|
||||
}
|
||||
|
||||
getEdge(){
|
||||
return this.config.edge;
|
||||
}
|
||||
getEdge() {
|
||||
return this.config.edge;
|
||||
}
|
||||
|
||||
getReverse() {
|
||||
return this.config.reverse;
|
||||
}
|
||||
getReverse() {
|
||||
return this.config.reverse;
|
||||
}
|
||||
|
||||
__createMartPoint(...args) {
|
||||
return this.config.reverse ? createMartPointReverse(...args): createMartPoint(...args);
|
||||
}
|
||||
__createMartPoint(...args) {
|
||||
return this.config.reverse ? createMartPointReverse(...args) : createMartPoint(...args);
|
||||
}
|
||||
|
||||
__createSeriesModel(...args) {
|
||||
return createSeriesModel(...args);
|
||||
}
|
||||
__createSeriesModel(...args) {
|
||||
return createSeriesModel(...args);
|
||||
}
|
||||
|
||||
__createMarkLineModels(...args) {
|
||||
return createMarkLineModels(...args);
|
||||
}
|
||||
__createMarkLineModels(...args) {
|
||||
return createMarkLineModels(...args);
|
||||
}
|
||||
}
|
||||
|
||||
export default EqualRatioParser;
|
||||
|
@ -43,7 +43,7 @@ export default {
|
||||
return this.$store.state.user.companyAdmin;
|
||||
},
|
||||
isSameProject() {
|
||||
return this.$store.state.user.companyProject === (getSessionStorage('project').toUpperCase());
|
||||
return this.$store.state.user.companyProjectList.includes(getSessionStorage('project').toUpperCase());
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
@ -145,7 +145,6 @@ const PreTheoryImport = () => import('@/views/competitionManage/bankList/preImpo
|
||||
const PlanScheduleWicket = () => import('@/views/newMap/displayNew/demon/planSchedule');
|
||||
const MessageBoard = () => import('@/views/messageBoard/index');
|
||||
const BoardManage = () => import('@/views/messageBoard/manage');
|
||||
const DraftLessonManage = () => import('@/views/teach/draftLessonManage');
|
||||
const OrganizationManage = () => import('@/views/organization/index');
|
||||
const OrgClassManage = () => import('@/views/organization/classManage/index');
|
||||
const OrgDraftLessonManage = () => import('@/views/organization/draftLessonManage/index');
|
||||
@ -159,10 +158,12 @@ const StudentManage = () => import('@/views/organization/classManage/studentMana
|
||||
const GradeList = () => import('@/views/organization/examManage/gradeList');
|
||||
const CreateRule = () => import('@/views/organization/ruleManage/createRule');
|
||||
const TotalGrade = () => import('@/views/organization/ruleManage/totalGrade');
|
||||
const InfoLessonDetail = () => import('@/views/organization/lessonManage/lessonDetail');
|
||||
const RunPlanViewWindow = () => import('@/views/newMap/displayNew/demon/runPlanViewWindow');
|
||||
const SecondaryHome = () => import('@/views/trainingPlatform/secondaryHome');
|
||||
const Demo = () => import('@/views/demo');
|
||||
const DemoTraining = () => import('@/views/newMap/displayNew/demoTraining');
|
||||
const OrgDetail = () => import('@/views/system/companyManage/orgDetail');
|
||||
|
||||
// import { GenerateRouteProjectList } from '@/scripts/ProjectConfig';
|
||||
// import { getSessionStorage } from '@/utils/auth';
|
||||
@ -208,16 +209,16 @@ export const userTrainingPlatform = '016'; // 实训系统
|
||||
// export const refereePlatform = '017'; // 裁判系统
|
||||
|
||||
export const constantRoutes = [
|
||||
{
|
||||
{
|
||||
path: '/demo',
|
||||
component: Demo,
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/demoTraining/:mode',
|
||||
component: DemoTraining,
|
||||
hidden: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '/demoTraining/:mode',
|
||||
component: DemoTraining,
|
||||
hidden: true
|
||||
},
|
||||
// 实训平台登录
|
||||
{
|
||||
path: '/login',
|
||||
@ -567,6 +568,11 @@ export const publicAsyncRoute = [
|
||||
path: 'totalGrade',
|
||||
component: TotalGrade,
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'lessonDetail',
|
||||
component: InfoLessonDetail,
|
||||
hidden: true
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -709,11 +715,6 @@ export const asyncRouter = [
|
||||
component: TeachDetail,
|
||||
hidden: true
|
||||
},
|
||||
{ // 草稿课程
|
||||
path: 'draftTeach/:subSystem',
|
||||
component: DraftLessonManage,
|
||||
hidden: true
|
||||
},
|
||||
{ // 运行图设计
|
||||
path: 'runPlan/:mapId',
|
||||
component: PlanMonitorDetail,
|
||||
@ -965,6 +966,11 @@ export const asyncRouter = [
|
||||
i18n: 'router.companyManage'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'companyManage/orgDetail',
|
||||
component: OrgDetail,
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'boardManage',
|
||||
component: BoardManage,
|
||||
|
@ -208,6 +208,14 @@ export const UrlConfig = {
|
||||
}
|
||||
};
|
||||
import CMD from './cmdPlugin/CommandEnum';
|
||||
export function getOperateTypeMap(trainingType) {
|
||||
const map = {};
|
||||
let val;
|
||||
for (val in CMD[trainingType]) {
|
||||
map[CMD[trainingType][val].value] = CMD[trainingType][val].label;
|
||||
}
|
||||
return map;
|
||||
}
|
||||
export function getTrainingOperateTypeMap() {
|
||||
const trainingOperateTypeMap = {
|
||||
Switch: [],
|
||||
|
@ -9,7 +9,6 @@ const exam = {
|
||||
totalTime: 0, // 考试总时间
|
||||
timeInterval: null, // 计时器
|
||||
ruleList: [], // 考试规则列表
|
||||
courseDetail: {}, // 课程详情
|
||||
courseList: [] // 课程列表
|
||||
},
|
||||
getters: {
|
||||
@ -53,9 +52,6 @@ const exam = {
|
||||
setRuleList: (state, ruleList) => {
|
||||
state.ruleList = ruleList;
|
||||
},
|
||||
setCourseDetail: (state, courseDetail) => {
|
||||
state.courseDetail = courseDetail;
|
||||
},
|
||||
setCourse: (state, courseList) => {
|
||||
state.courseList = courseList;
|
||||
},
|
||||
@ -95,9 +91,6 @@ const exam = {
|
||||
setRuleList({ commit }, ruleList) {
|
||||
commit('setRuleList', ruleList);
|
||||
},
|
||||
setCourseDetail({ commit }, courseDetail) {
|
||||
commit('setCourseDetail', courseDetail);
|
||||
},
|
||||
setCourse({ commit }, course) {
|
||||
commit('setCourse', course);
|
||||
},
|
||||
|
@ -59,7 +59,7 @@ const runPlan = {
|
||||
trainList.forEach((train, j) => {
|
||||
state.initialPlanData[service.serviceNumber].trainMap[`${train.tripNumber}`] = { oldIndex: j, tripNumber: train.tripNumber, right:train.right,
|
||||
directionCode: train.directionCode, reentry: train.reentry, stationTimeList: train.stationTimeList, endSecondTime:train.endSecondTime,
|
||||
startSecondTime: train.startSecondTime };
|
||||
startSecondTime: train.startSecondTime, startSectionCode:train.startSectionCode, endSectionCode:train.endSectionCode };
|
||||
});
|
||||
});
|
||||
}
|
||||
@ -76,7 +76,7 @@ const runPlan = {
|
||||
state.editData[service.serviceNumber].trainMap[`${train.tripNumber}`] =
|
||||
{ oldIndex: j, tripNumber: train.tripNumber, directionCode: train.directionCode, right:train.right,
|
||||
reentry: train.reentry, stationTimeList: train.stationTimeList, endSecondTime:train.endSecondTime,
|
||||
startSecondTime: train.startSecondTime};
|
||||
startSecondTime: train.startSecondTime, startSectionCode:train.startSectionCode, endSectionCode:train.endSectionCode };
|
||||
});
|
||||
});
|
||||
}
|
||||
@ -93,7 +93,7 @@ const runPlan = {
|
||||
trainList.forEach((train, j) => {
|
||||
state.draftEditData[service.serviceNumber].trainMap[`${train.tripNumber}`] = { oldIndex: j, tripNumber: train.tripNumber, right:train.right,
|
||||
directionCode: train.directionCode, reentry: train.reentry, stationTimeList: train.stationTimeList, endSecondTime:train.endSecondTime,
|
||||
startSecondTime: train.startSecondTime};
|
||||
startSecondTime: train.startSecondTime, startSectionCode:train.startSectionCode, endSectionCode:train.endSectionCode };
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -20,7 +20,8 @@ const user = {
|
||||
companyId: '',
|
||||
companyAdmin: false,
|
||||
companyName: '',
|
||||
companyProject: ''
|
||||
companyProjectList: [],
|
||||
baseUrl:''
|
||||
},
|
||||
|
||||
mutations: {
|
||||
@ -60,8 +61,8 @@ const user = {
|
||||
SET_COMPANYNAME: (state, companyName) => {
|
||||
state.companyName = companyName;
|
||||
},
|
||||
SET_COMPANYPROJECT: (state, companyProject) => {
|
||||
state.companyProject = companyProject;
|
||||
SET_COMPANYPROJECTLIST: (state, companyProjectList) => {
|
||||
state.companyProjectList = companyProjectList;
|
||||
},
|
||||
CLEAR_AUTO_PARAMS: () => {
|
||||
Cookies.remove('UserDesignName');
|
||||
@ -77,6 +78,9 @@ const user = {
|
||||
},
|
||||
Disconnect: ()=>{
|
||||
disconnect();
|
||||
},
|
||||
setBaseUrl: (state, baseUrl) => {
|
||||
state.baseUrl = baseUrl;
|
||||
}
|
||||
},
|
||||
|
||||
@ -135,7 +139,7 @@ const user = {
|
||||
commit('SET_COMPANYID', user.companyId);
|
||||
commit('SET_COMPANYADMIN', user.companyAdmin);
|
||||
commit('SET_COMPANYNAME', user.companyName);
|
||||
commit('SET_COMPANYPROJECT', user.projectCode);
|
||||
commit('SET_COMPANYPROJECTLIST', user.projectCodes);
|
||||
resolve(user);
|
||||
}).catch(error => {
|
||||
reject(error);
|
||||
@ -204,6 +208,9 @@ const user = {
|
||||
disconnect({commit}, params) {
|
||||
commit('Disconnect', params);
|
||||
removeToken();
|
||||
},
|
||||
setBaseUrl ({commit}, baseUrl) {
|
||||
commit('setBaseUrl', baseUrl);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -3,11 +3,11 @@ export const requestAnimationFrame = window.requestAnimationFrame ||
|
||||
window.mozRequestAnimationFrame ||
|
||||
window.oRequestAnimationFrame ||
|
||||
window.msRequestAnimationFrame ||
|
||||
function (callback) { callback.timter = window.setTimeout(callback, 1000 / 60); };
|
||||
function (callback) { callback.timer = window.setTimeout(callback, 1000 / 60); };
|
||||
|
||||
export const cancelRequestAnimFrame = window.cancelAnimationFrame ||
|
||||
window.webkitCancelRequestAnimationFrame ||
|
||||
window.mozCancelRequestAnimationFrame ||
|
||||
window.oCancelRequestAnimationFrame ||
|
||||
window.msCancelRequestAnimationFrame ||
|
||||
function (callback) { window.clearTimeout(callback); };
|
||||
function (callback) { window.clearTimeout(callback.timer); };
|
||||
|
@ -2,7 +2,6 @@ export function getBaseUrl() {
|
||||
let BASE_API;
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
// BASE_API = 'https://joylink.club/jlcloud';
|
||||
// BASE_API = 'https://api.joylink.club/jlcloud';
|
||||
BASE_API = 'https://test.joylink.club/jlcloud';
|
||||
// BASE_API = 'http://192.168.8.107:9000'; // 袁琪
|
||||
// BASE_API = 'http://192.168.8.169:9000'; // 旭强
|
||||
|
@ -24,6 +24,12 @@ service.interceptors.request.use(config => {
|
||||
if (getToken()) {
|
||||
config.headers['X-Token'] = getToken(); // 让每个请求携带自定义token 请根据实际情况自行修改
|
||||
}
|
||||
|
||||
// 用于/demo/index 文件中baseUrl 判断(后端要求不管本地还是正式,都要可以访问实训/临时使用)
|
||||
if (store.state.user.baseUrl) {
|
||||
config.baseURL = store.state.user.baseUrl;
|
||||
}
|
||||
|
||||
if (config.time) {
|
||||
config.timeout = config.time; // 让每个请求携带自定义token 请根据实际情况自行修改
|
||||
}
|
||||
|
@ -99,6 +99,7 @@ import md5 from 'js-md5';
|
||||
import QrcodeVue from 'qrcode.vue';
|
||||
import { getLoginWmurl, checkLoginStatus } from '@/api/login';
|
||||
import { LoginParams } from '@/utils/login';
|
||||
// import {setSessionStorage } from '@/utils/auth';
|
||||
export default {
|
||||
components: { QrcodeVue },
|
||||
data() {
|
||||
@ -121,17 +122,30 @@ export default {
|
||||
tipsMsg: '',
|
||||
pwdDisplay: true,
|
||||
trainingList: [
|
||||
// {
|
||||
// title: '区段封锁(TA1601)',
|
||||
// id: '613144'
|
||||
// },
|
||||
// {
|
||||
// title: '道岔封锁(W0304)',
|
||||
// id: '612112'
|
||||
// },
|
||||
// {
|
||||
// title: '进路选排(S0304-S0301)',
|
||||
// id: '610065'
|
||||
// }
|
||||
|
||||
{
|
||||
title: '区段封锁(TA1601)',
|
||||
id: '613144'
|
||||
title: '站台扣车(车站五(05)-下行站台)',
|
||||
id: '4991355'
|
||||
},
|
||||
{
|
||||
title: '道岔封锁(W0304)',
|
||||
id: '612112'
|
||||
title: '道岔封锁(W0904)',
|
||||
id: '4993548'
|
||||
},
|
||||
{
|
||||
title: '进路选排(S0304-S0301)',
|
||||
id: '610065'
|
||||
title: '进路选排(S0916-S0901)',
|
||||
id: '4991607'
|
||||
}
|
||||
],
|
||||
loginForm: {
|
||||
@ -167,7 +181,7 @@ export default {
|
||||
this.loading = false;
|
||||
} else {
|
||||
this.show = false;
|
||||
this.src = 'http://localhost:9527/cbtc/trainingPlatform';
|
||||
this.src = 'https://test.joylink.club/cbtc/trainingPlatform';
|
||||
this.$nextTick(_ => {
|
||||
if (result.type == 'DEMO_RESULT' && result.hasOwnProperty('score')) {
|
||||
this.$confirm(`得分:${result.score}分`, '结果', {
|
||||
@ -188,12 +202,17 @@ export default {
|
||||
},
|
||||
destroyed() {
|
||||
window.removeEventListener('message');
|
||||
this.$store.dispatch('setBaseUrl', '');
|
||||
},
|
||||
methods: {
|
||||
doClick(el) {
|
||||
if (this.token && this.userId) {
|
||||
// &noPreLogout=true
|
||||
this.src = `http://localhost:9527/cbtc/demoTraining/teach?lessonId=195&mapId=59&lineCode=02&prdType=01&trainingId=${el.id}&token=${this.token}`;
|
||||
// window.location.origin +
|
||||
// setSessionStorage('project', 'DEFAULT');
|
||||
// lessonId=101&mapId=49&prdType=01
|
||||
// lessonId=195&mapId=59&lineCode=02&prdType=01
|
||||
this.src = `https://test.joylink.club/cbtc/demoTraining/teach?lessonId=101&mapId=49&lineCode=02&prdType=01&trainingId=${el.id}&token=${this.token}&project=DEFAULT`;
|
||||
this.loading = true;
|
||||
setTimeout(()=>{
|
||||
this.show = true;
|
||||
@ -209,6 +228,8 @@ export default {
|
||||
},
|
||||
loginRefresh() {
|
||||
// this.loadingCode = true;
|
||||
// this.$store.dispatch('setBaseUrl', 'https://api.joylink.club/jlcloud');
|
||||
this.$store.dispatch('setBaseUrl', 'https://test.joylink.club/jlcloud');
|
||||
const self = this;
|
||||
const params = LoginParams['LianKeTang'];
|
||||
params.project = 'DEFAULT';
|
||||
@ -253,6 +274,7 @@ export default {
|
||||
// 清除定时器,设置路由
|
||||
self.clearTimer(self.checkLogin);
|
||||
this.$store.dispatch('GetInfo', getToken()).then(res => {
|
||||
// setSessionStorage('project', 'DEFAULT');
|
||||
this.loginLoading = false;
|
||||
this.dialogVisible = false;
|
||||
this.token = getToken();
|
||||
@ -280,6 +302,8 @@ export default {
|
||||
// secret: "joylink"
|
||||
this.$refs.loginForm.validate(valid => {
|
||||
if (valid) {
|
||||
// this.$store.dispatch('setBaseUrl', 'https://api.joylink.club/jlcloud');
|
||||
this.$store.dispatch('setBaseUrl', 'https://test.joylink.club/jlcloud');
|
||||
const model = Object.assign({}, this.loginForm);
|
||||
model.password = md5(model.password);
|
||||
model.type = 'class';
|
||||
@ -289,6 +313,7 @@ export default {
|
||||
this.$store.dispatch('Login', model).then(() => {
|
||||
this.$store.dispatch('SetAccount', model.username);
|
||||
this.$store.dispatch('GetInfo', getToken()).then(res => {
|
||||
// setSessionStorage('project', 'DEFAULT');
|
||||
this.loginLoading = false;
|
||||
this.dialogVisible = false;
|
||||
this.token = getToken();
|
||||
@ -345,6 +370,7 @@ export default {
|
||||
}
|
||||
},
|
||||
quit() {
|
||||
this.$store.dispatch('setBaseUrl', '');
|
||||
this.$store.dispatch('LogOut').then(() => {
|
||||
location.reload(); // 为了重新实例化vue-router对象 避免bug
|
||||
});
|
||||
|
@ -161,6 +161,7 @@ export default {
|
||||
this.loadInitData();
|
||||
},
|
||||
async enterIntegratedSimulation() {
|
||||
this.disabled = true;
|
||||
const data = { mapId: this.courseModel.mapId, prdType: this.currentPrdType };
|
||||
createSimulationNew(data).then(resp => {
|
||||
const query = { lineCode: this.courseModel.lineCode, group: resp.data, mapId: this.courseModel.mapId};
|
||||
|
@ -1,83 +1,71 @@
|
||||
<template>
|
||||
<div class="joylink-card">
|
||||
<div class="examDetailName">
|
||||
{{ $t('exam.courseName') + ': '+ courseModel.name }}
|
||||
试卷列表
|
||||
</div>
|
||||
<div id="examDetail">
|
||||
<el-tabs
|
||||
v-model="activeName"
|
||||
class="examDetailActive"
|
||||
>
|
||||
<el-tab-pane :label="this.$t('exam.itemList')" name="first" class="examDetailPane">
|
||||
<div v-if="courseModel.treeList.length != 0" style="height:100%;overflow:auto;">
|
||||
<el-table :data="courseModel.treeList" border style="width: 100%;">
|
||||
<el-table-column label="试卷名称">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: scope.row.trial||valid ?'green':'black'}">{{ scope.row.name }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="isGzbShow" label="班级">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-for="item in scope.row.classes" :key="item.id" style="margin-right: 6px;">{{ item.name }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="duration" label="考试时长">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.duration / 60 }}分钟</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="fullPoint" label="试卷总分" />
|
||||
<el-table-column label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" @click="clickEvent(scope.row)">查看详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div v-else class="noList">
|
||||
{{ $t('global.temporarilyNoData') }}
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane :label="this.$t('exam.permissionsDetails')" name="second" class="examDetailPane">
|
||||
<limit-list ref="limitList" :course-model="courseModel" style="height:100%;overflow:auto;" @initLoadPage="loadInitPage" />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<!--<el-tabs-->
|
||||
<!--v-model="activeName"-->
|
||||
<!--class="examDetailActive"-->
|
||||
<!-->-->
|
||||
<!--<el-tab-pane :label="this.$t('exam.itemList')" name="first" class="examDetailPane">-->
|
||||
<div style="height:100%;overflow:auto;">
|
||||
<el-table :data="tableData" border style="width: 100%;">
|
||||
<el-table-column label="试卷名称">
|
||||
<template slot-scope="scope">
|
||||
<span :style="{color: scope.row.trial||valid ?'green':'black'}">{{ scope.row.name }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="isGzbShow" label="班级">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-for="item in scope.row.classes" :key="item.id" style="margin-right: 6px;">{{ item.name }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="duration" label="考试时长">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.duration / 60 }}分钟</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="fullPoint" label="试卷总分" />
|
||||
<el-table-column label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" @click="clickEvent(scope.row)">查看详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<!--</el-tab-pane>-->
|
||||
<!--<el-tab-pane :label="this.$t('exam.permissionsDetails')" name="second" class="examDetailPane">-->
|
||||
<!--<limit-list ref="limitList" :course-model="courseModel" style="height:100%;overflow:auto;" @initLoadPage="loadInitPage" />-->
|
||||
<!--</el-tab-pane>-->
|
||||
<!--</el-tabs>-->
|
||||
</div>
|
||||
<div class="btn-buy">
|
||||
<!-- <el-button v-if="!isLocal" :disabled="disabled" type="success" @click="buy">{{ $t('exam.buy') }}</el-button> -->
|
||||
<el-button v-if="hasPermssion && !isLocal" :disabled="disabled" type="primary" @click="distribute">{{ $t('exam.distributePermission') }}</el-button>
|
||||
<el-button v-if=" isAdmin&& !$route.query.noPreLogout && !courseModel.systemFault" :disabled="disabled" type="primary" @click="checkCourse">{{ $t('exam.viewCoursePapers') }}</el-button>
|
||||
<el-button v-if="!$route.query.noPreLogout" type="primary" :disabled="disabled" @click="backLessonList">{{ $t('exam.returnCourseList') }}</el-button>
|
||||
<!--<el-button v-if="hasPermssion && !isLocal" :disabled="disabled" type="primary" @click="distribute">{{ $t('exam.distributePermission') }}</el-button>-->
|
||||
<!--<el-button v-if="!$route.query.noPreLogout" type="primary" :disabled="disabled" @click="backLessonList">{{ $t('exam.returnCourseList') }}</el-button>-->
|
||||
<el-button v-if="$route.query.noPreLogout" type="primary" :disabled="disabled" @click="quit">退出</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getCourseLessonDetail } from '@/api/management/exam';
|
||||
import { PermissionType } from '@/scripts/ConstDic';
|
||||
import { getExamListByMapIdAndPrdType } from '@/api/management/exam';
|
||||
// import { PermissionType } from '@/scripts/ConstDic';
|
||||
import { UrlConfig } from '@/scripts/ConstDic';
|
||||
import LimitList from '@/views/components/limits/index';
|
||||
// import LimitList from '@/views/components/limits/index';
|
||||
import { getSessionStorage } from '@/utils/auth';
|
||||
import localStore from 'storejs';
|
||||
import { superAdmin, admin } from '@/router/index';
|
||||
|
||||
export default {
|
||||
name: 'ExamDetailView',
|
||||
components: {
|
||||
LimitList
|
||||
},
|
||||
// components: {
|
||||
// LimitList
|
||||
// },
|
||||
data() {
|
||||
return {
|
||||
disabled: false,
|
||||
courseModel: {
|
||||
id: '',
|
||||
name: this.$t('rules.lessonInput'),
|
||||
price: 0,
|
||||
remarks: '',
|
||||
detail: [],
|
||||
pmsList: [],
|
||||
treeList: []
|
||||
},
|
||||
tableData: [],
|
||||
EffectiveTypeList: [],
|
||||
activeName: 'first',
|
||||
expandList: [],
|
||||
@ -88,19 +76,6 @@ export default {
|
||||
isGzbShow() {
|
||||
return getSessionStorage('project').startsWith('gzb');
|
||||
},
|
||||
hasPermssion() {
|
||||
let isShow = false;
|
||||
if (this.courseModel.pmsList && this.courseModel.pmsList.length) {
|
||||
let count = 0;
|
||||
this.courseModel.pmsList.forEach(element => {
|
||||
count += element.remains;
|
||||
});
|
||||
if (count > 0) {
|
||||
isShow = true;
|
||||
}
|
||||
}
|
||||
return this.$store.state.user.companyId || isShow;
|
||||
},
|
||||
isLocal() { // 是否为本地项目
|
||||
return process.env.VUE_APP_PRO === 'local';
|
||||
},
|
||||
@ -121,30 +96,16 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
loadInitPage() {
|
||||
getCourseLessonDetail({lessonId: this.$route.query.lessonId}).then(resp =>{
|
||||
if (resp.data) {
|
||||
this.courseModel = {
|
||||
id: resp.data.id,
|
||||
name: resp.data.name,
|
||||
pmsList: resp.data.permissionList || [],
|
||||
prdType: resp.data.prdType,
|
||||
mapId: resp.data.mapId,
|
||||
PermissionType: PermissionType.EXAM,
|
||||
treeList: resp.data.examDefinitionList,
|
||||
systemFault: resp.data.systemFault
|
||||
};
|
||||
if (this.hasPermssion || resp.data.available) {
|
||||
this.valid = true;
|
||||
}
|
||||
getExamListByMapIdAndPrdType(this.$route.query.mapId, this.$route.query.prdType).then(resp =>{
|
||||
if (resp.data && resp.data.length) {
|
||||
this.tableData = resp.data;
|
||||
}
|
||||
this.getExpandList(this.courseModel.id);
|
||||
}).catch(()=>{
|
||||
this.$alert('获取考试信息失败!', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
type: 'error',
|
||||
center: true,
|
||||
callback: action => {
|
||||
this.backLessonList();
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -159,15 +120,6 @@ export default {
|
||||
// }, 100);
|
||||
this.$messageBox(this.$t('global.buyingTips'));
|
||||
},
|
||||
checkCourse() {
|
||||
this.loading = true;
|
||||
const path = `${this.$route.path.match(/(\/.*)\/course/)[1]}${UrlConfig.examRuleManage}`;
|
||||
this.$router.push({
|
||||
path: path,
|
||||
query: { lessonId: this.courseModel.id },
|
||||
noPreLogout: this.$route.query.noPreLogout
|
||||
});
|
||||
},
|
||||
distribute() { // 分发
|
||||
this.disabled = true;
|
||||
if (this.$refs) {
|
||||
@ -176,36 +128,12 @@ export default {
|
||||
}
|
||||
this.disabled = false;
|
||||
},
|
||||
backLessonList() {
|
||||
this.disabled = true;
|
||||
setTimeout(() => {
|
||||
localStore.remove('examDetail' + this.$route.params.subSystem);
|
||||
this.$router.push({ path: `${UrlConfig.trainingPlatform.examHome}/${this.$route.params.subSystem}`});
|
||||
}, 100);
|
||||
},
|
||||
clickEvent(obj) {
|
||||
const path = `${this.$route.path.match(/(\/.*)\/course/)[1]}${UrlConfig.examDetail}`;
|
||||
if ((this.valid || obj.trial) && path.includes('device')) {
|
||||
this.$router.replace({ path: `${path}/${obj.id}`, query: { subSystem: this.$route.params.subSystem, mapId: this.courseModel.mapId, noPreLogout: this.$route.query.noPreLogout }});
|
||||
} else if (this.valid || obj.trial) {
|
||||
this.$router.push({ path: `${path}/${obj.id}`, query: { subSystem: this.$route.params.subSystem, mapId: this.courseModel.mapId, noPreLogout: this.$route.query.noPreLogout }});
|
||||
if (path.includes('device')) {
|
||||
this.$router.replace({ path: `${path}/${obj.id}`, query: { subSystem: this.$route.params.subSystem, mapId: obj.mapId, prdType: obj.prdType, noPreLogout: this.$route.query.noPreLogout }});
|
||||
} else {
|
||||
this.confirmToBuy();
|
||||
}
|
||||
},
|
||||
confirmToBuy() {
|
||||
this.$confirm(this.$t('tip.accessCourseNo'), this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
cancelButtonText: this.$t('tip.cancel')
|
||||
}).then(() => {
|
||||
this.buy();
|
||||
}).catch(() => { });
|
||||
},
|
||||
getExpandList(id) {
|
||||
let expand = getSessionStorage('trainingExamExpandList' + id);
|
||||
expand = expand ? (expand + '').split(',') : '';
|
||||
if (expand instanceof Array) {
|
||||
this.expandList = expand;
|
||||
this.$router.push({ path: `${path}/${obj.id}`, query: { subSystem: this.$route.params.subSystem, mapId: obj.mapId, noPreLogout: this.$route.query.noPreLogout }});
|
||||
}
|
||||
},
|
||||
quit() {
|
||||
|
@ -216,9 +216,9 @@ export default {
|
||||
this.disabled = true;
|
||||
setTimeout(() => {
|
||||
if (this.$route.query.subSystem) {
|
||||
this.$router.push({ path: `${UrlConfig.trainingPlatform.course}/${this.$route.query.subSystem}`, query: {lessonId: this.examDetails.lessonId}});
|
||||
this.$router.push({ path: `${UrlConfig.trainingPlatform.examHome}/${this.$route.query.subSystem}`, query: {lessonId: this.examDetails.lessonId}});
|
||||
} else {
|
||||
this.$router.replace({ path: '/device/course', query: {lessonId: this.examDetails.lessonId, noPreLogout: this.$route.query.noPreLogout}});
|
||||
this.$router.replace({ path: '/device/course', query: {mapId: this.$route.query.mapId, prdType: this.$route.query.prdType, noPreLogout: this.$route.query.noPreLogout}});
|
||||
}
|
||||
}, 100);
|
||||
},
|
||||
|
@ -6,21 +6,29 @@
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card v-loading="loading">
|
||||
<el-table :data="tableData" border style="width: 100%">
|
||||
<el-table-column prop="name" :label="this.$t('exam.courseName')" />
|
||||
<el-row style="padding: 10px;display: flex;align-items: center;justify-content: flex-end;">
|
||||
<div style="font-size: 14px;color: #000;">试卷名称:</div>
|
||||
<el-input v-model="inputName" size="small" style="width: 200px;margin-right: 50px;margin-left: 10px;" placeholder="请输入筛选的名称" @change="changeInput" />
|
||||
<el-button size="small" type="primary" @click="goToFilter">查找</el-button>
|
||||
</el-row>
|
||||
<el-table ref="filterTable" :data="filterTableData" border style="width: 100%" height="calc(100vh - 150px)">
|
||||
<el-table-column prop="name" label="试卷名称" />
|
||||
<el-table-column v-if="isGzbShow" prop="classNames" label="所属班级">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-for="(item, index) in scope.row.classNames" :key="index" type="success">{{ item }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remarks" show-overflow-tooltip :label="this.$t('exam.courseDescription')" />
|
||||
<el-table-column prop="duration" label="考试时长(分钟)">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ Number(scope.row.duration) / 60 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="fullPoint" label="总分" />
|
||||
<el-table-column prop="remarks" show-overflow-tooltip label="试卷说明" />
|
||||
<el-table-column :label="this.$t('global.operate')">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" @click="goLesson(scope.row)">
|
||||
{{ $t('exam.enterTheExam') }}
|
||||
</el-button>
|
||||
<el-button v-if="project.endsWith('gzb') && isTeacher && userId === scope.row.creatorId" size="mini" type="danger" @click="handleDelete(scope.row)">
|
||||
删除课程
|
||||
<el-button size="mini" type="primary" @click="goExamDetail(scope.row)">
|
||||
考试详情
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -32,7 +40,6 @@
|
||||
<script>
|
||||
import { getSubSystemDetail } from '@/api/trainingPlatform';
|
||||
import { UrlConfig } from '@/scripts/ConstDic';
|
||||
import { forceDeleteLesson } from '@/api/jmap/lesson';
|
||||
import { getSessionStorage } from '@/utils/auth';
|
||||
import { lessonCreater } from '@/router/index';
|
||||
import localStore from 'storejs';
|
||||
@ -42,10 +49,12 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
tableData: [],
|
||||
filterTableData: [],
|
||||
loading: false,
|
||||
project: '',
|
||||
isTeacher: false,
|
||||
userId: ''
|
||||
userId: '',
|
||||
inputName: ''
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -69,10 +78,12 @@ export default {
|
||||
if (this.$route.params.subSystem) {
|
||||
getSubSystemDetail(this.$route.params.subSystem).then(resp =>{
|
||||
if (resp.data) {
|
||||
this.tableData = resp.data.lessonList;
|
||||
this.tableData = resp.data.examList;
|
||||
} else {
|
||||
this.tableData = [];
|
||||
}
|
||||
this.inputName = localStore.get(this.$route.path) || '';
|
||||
this.goToFilter();
|
||||
}).catch((error)=>{
|
||||
if (error.code == 30001) {
|
||||
const url = localStore.get('orignalTrainingPlatformRoute' + this.$store.state.user.id + this.project);
|
||||
@ -85,24 +96,28 @@ export default {
|
||||
});
|
||||
}
|
||||
},
|
||||
goLesson(row) {
|
||||
localStore.set('examDetail' + this.$route.params.subSystem, `${UrlConfig.trainingPlatform.course}/${this.$route.params.subSystem}?lessonId=${row.id}`);
|
||||
this.$router.push({ path: `${UrlConfig.trainingPlatform.course}/${this.$route.params.subSystem}`, query: {lessonId: row.id}});
|
||||
goExamDetail(row) {
|
||||
const path = `${this.$route.path.match(/(\/.*)\/examHome/)[1]}${UrlConfig.examDetail}`;
|
||||
if (path.includes('device')) {
|
||||
this.$router.replace({ path: `${path}/${row.id}`, query: { subSystem: this.$route.params.subSystem, mapId: row.mapId, noPreLogout: this.$route.query.noPreLogout }});
|
||||
} else {
|
||||
this.$router.push({ path: `${path}/${row.id}`, query: { subSystem: this.$route.params.subSystem, mapId: row.mapId, noPreLogout: this.$route.query.noPreLogout }});
|
||||
}
|
||||
},
|
||||
handleDelete(row) {
|
||||
this.$confirm('此操作将删除课程及所有对应的试卷,且无法恢复,是否继续?', this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
forceDeleteLesson(row.id).then(response => {
|
||||
this.$message.success(this.$t('publish.deleteSuccess'));
|
||||
this.loadInitPage();
|
||||
}).catch((error) => {
|
||||
this.loadInitPage();
|
||||
this.$messageBox(this.$t('error.deleteFailed') + ':' + error.message);
|
||||
changeInput(val) {
|
||||
localStore.set(this.$route.path, val);
|
||||
},
|
||||
goToFilter() {
|
||||
if (!this.inputName) {
|
||||
this.filterTableData = [...this.tableData];
|
||||
} else {
|
||||
this.filterTableData = [];
|
||||
this.tableData.forEach(item => {
|
||||
if (item.name.includes(this.inputName)) {
|
||||
this.filterTableData.push(item);
|
||||
}
|
||||
});
|
||||
}).catch(() => { });
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -34,8 +34,8 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.mean === 'PRERESET'" label="关联区段">
|
||||
<el-select v-model="form.sectionCode" placeholder="请选择">
|
||||
<el-form-item v-if="form.mean === 'PRERESET'" label="关联区段" prop="sectionCode">
|
||||
<el-select v-model="form.sectionCode" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in sectionList"
|
||||
:key="item.code"
|
||||
@ -54,7 +54,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getSectionListByStationCode, getSectionListByMapId } from '@/api/jmap/map';
|
||||
import {getSectionListByCenStationCode, getSectionListByMapId } from '@/api/jmap/map';
|
||||
export default {
|
||||
name: 'ButtonDraft',
|
||||
components: {
|
||||
@ -94,6 +94,9 @@ export default {
|
||||
],
|
||||
buttonWidth: [
|
||||
{ required: true, message: this.$t('ibp.enterTheButtonWidth'), trigger: 'blur' }
|
||||
],
|
||||
sectionCode: [
|
||||
{ required: true, message: '请选择关联区段', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
sectionList: []
|
||||
@ -121,7 +124,7 @@ export default {
|
||||
},
|
||||
mounted() {
|
||||
if (this.$route.query.stationCode) {
|
||||
getSectionListByStationCode(this.$route.query.mapId, this.$route.query.stationCode).then(resp => {
|
||||
getSectionListByCenStationCode(this.$route.query.mapId, this.$route.query.stationCode).then(resp => {
|
||||
this.sectionList = resp.data;
|
||||
console.log(resp.data);
|
||||
}).catch(() => {
|
||||
|
@ -33,7 +33,7 @@
|
||||
<script>
|
||||
import { DeviceMenu } from '@/scripts/ConstDic';
|
||||
import { removeSessionStorage } from '@/utils/auth';
|
||||
import { getPublishMapListOnline, getStationListNeedAttendant } from '@/api/jmap/map';
|
||||
import { getPublishMapListOnline, getStationListNeedAttendant, getPublishMapInfo } from '@/api/jmap/map';
|
||||
|
||||
export default {
|
||||
name: 'UserMapList',
|
||||
@ -58,7 +58,7 @@ export default {
|
||||
mapPublishList: [],
|
||||
pageTreeMap: {
|
||||
'01': [],
|
||||
'114': [
|
||||
'49': [
|
||||
{
|
||||
// 牵引降压混合变电所主接线图 变电所接线图 降压变电所主接线图 解除网图 混合变电所主接线图
|
||||
name: '电力监控系统',
|
||||
@ -279,6 +279,12 @@ export default {
|
||||
mode: 'afc02',
|
||||
id: 'afcOne02',
|
||||
type: 'interface'
|
||||
},
|
||||
{
|
||||
name: '站台层',
|
||||
mode: 'afc02',
|
||||
id: 'afcTwo02',
|
||||
type: 'interface'
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -321,10 +327,28 @@ export default {
|
||||
type: 'interface'
|
||||
},
|
||||
{
|
||||
name: '站厅层公共区段',
|
||||
name: '站厅层C端',
|
||||
mode: 'fas02',
|
||||
id: 'stationHallFour',
|
||||
type: 'interface'
|
||||
},
|
||||
{
|
||||
name: '站厅层D端',
|
||||
mode: 'fas02',
|
||||
id: 'stationHallFive',
|
||||
type: 'interface'
|
||||
},
|
||||
{
|
||||
name: '站厅层E端',
|
||||
mode: 'fas02',
|
||||
id: 'stationHallSix',
|
||||
type: 'interface'
|
||||
},
|
||||
{
|
||||
name: '站厅层F端',
|
||||
mode: 'fas02',
|
||||
id: 'stationHallSeven',
|
||||
type: 'interface'
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -928,7 +952,9 @@ export default {
|
||||
case 'system' :
|
||||
break;
|
||||
case 'interface':
|
||||
this.$router.push({ path: `/iscs/design/edit`, query: {mode: obj.mode, system: data.parent.data.id, part: obj.id, mapId: this.mapId} });
|
||||
getPublishMapInfo(this.mapId).then(resp => {
|
||||
this.$router.push({ path: `/iscs/design/edit`, query: {mode: obj.mode, system: data.parent.data.id, part: obj.id, mapId: this.mapId, lineCode: resp.data.lineCode} });
|
||||
});
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
@ -22,12 +22,12 @@
|
||||
<el-form-item label="选中文字颜色:" prop="textColorActive">
|
||||
<el-color-picker v-model="form.textColorActive" size="small" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="背景颜色:" prop="textColor">
|
||||
<el-form-item label="背景颜色:" prop="textColor">
|
||||
<el-color-picker v-model="form.fillColor" size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="选中背景颜色:" prop="textColor">
|
||||
<el-color-picker v-model="form.fillColorActive" size="small" />
|
||||
</el-form-item> -->
|
||||
</el-form-item>
|
||||
<el-form-item label="文字大小:" prop="fontSize">
|
||||
<el-input-number v-model="form.fontSize" size="small" controls-position="right" :min="1" />
|
||||
</el-form-item>
|
||||
@ -90,9 +90,9 @@ export default {
|
||||
context: '',
|
||||
function: '',
|
||||
textColor: '',
|
||||
// fillColor: '#D1C2C2',
|
||||
// fillColorActive: '#847b7b',
|
||||
textColorActive: '#000'
|
||||
textColorActive: '#000',
|
||||
fillColor: 'rgba(0,0,0,0)',
|
||||
fillColorActive: 'rgba(0,0,0,0)'
|
||||
},
|
||||
rules: {
|
||||
context: [
|
||||
@ -127,6 +127,8 @@ export default {
|
||||
this.form.fontSize = model.fontSize;
|
||||
this.form.textColor = model.textColor || '#fff';
|
||||
this.form.textColorActive = model.textColorActive || '#000';
|
||||
this.form.fillColor = model.fillColor;
|
||||
this.form.fillColorActive = model.fillColorActive;
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -134,6 +136,8 @@ export default {
|
||||
if (this.$route.query.lineCode == '02') {
|
||||
this.functionList = [
|
||||
{label: '操作按钮', value: 'OperatingButton'},
|
||||
{label: '门禁站台层', value: 'goToStand'},
|
||||
{label: '门禁站厅层', value: 'goToStation'},
|
||||
{label: '元素显隐', value: 'ElementShow'},
|
||||
{label: '返回', value: 'GoBack'}
|
||||
];
|
||||
@ -169,7 +173,9 @@ export default {
|
||||
function: this.form.function,
|
||||
fontSize: this.form.fontSize,
|
||||
textColor: this.form.textColor,
|
||||
textColorActive: this.form.textColorActive
|
||||
textColorActive: this.form.textColorActive,
|
||||
fillColor: this.form.fillColor,
|
||||
fillColorActive: this.form.fillColorActive
|
||||
};
|
||||
this.$emit('createDataModel', rectModel);
|
||||
this.initPage();
|
||||
@ -190,7 +196,9 @@ export default {
|
||||
verticalPadding: this.form.verticalPadding,
|
||||
context: this.form.context,
|
||||
function: this.form.function,
|
||||
fontSize: this.form.fontSize
|
||||
fontSize: this.form.fontSize,
|
||||
fillColor: this.form.fillColor,
|
||||
fillColorActive: this.form.fillColorActive
|
||||
};
|
||||
this.$emit('deleteDataModel', rectModel);
|
||||
},
|
||||
@ -209,7 +217,9 @@ export default {
|
||||
context: '',
|
||||
function: '',
|
||||
textColor: '',
|
||||
textColorActive: '#000'
|
||||
textColorActive: '#000',
|
||||
fillColor: '',
|
||||
fillColorActive: ''
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
<el-input-number v-model="form.z2" controls-position="right" :min="0" size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="线段宽度:" prop="lineWidth">
|
||||
<el-input-number v-model="form.lineWidth" controls-position="right" :min="0" :max="50" size="small" />
|
||||
<el-input-number v-model="form.lineWidth" controls-position="right" :min="0" :max="1000" size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="类型:" prop="type">
|
||||
<el-select v-model="form.classify" placeholder="请选择类型" size="small">
|
||||
@ -13,9 +13,9 @@
|
||||
<el-option label="虚线:" value="dashed" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否线段颜色渐变:">
|
||||
<el-checkbox v-model="form.isFillGradual" size="small" />
|
||||
</el-form-item>
|
||||
<!--<el-form-item label="是否线段颜色渐变:">-->
|
||||
<!--<el-checkbox v-model="form.isFillGradual" size="small" />-->
|
||||
<!--</el-form-item>-->
|
||||
<el-form-item label="是否渐变:">
|
||||
<el-checkbox v-model="form.isGradual" size="small" />
|
||||
</el-form-item>
|
||||
@ -140,7 +140,7 @@ export default {
|
||||
classify:'solid',
|
||||
code: '',
|
||||
z2: 0,
|
||||
isFillGradual: false,
|
||||
// isFillGradual: false,
|
||||
lineWidth: '',
|
||||
fillColor: '#fff',
|
||||
fillBackground: '',
|
||||
@ -182,7 +182,7 @@ export default {
|
||||
this.isUpdate = true;
|
||||
this.form.code = model.code;
|
||||
this.form.z2 = model.z2 || 0;
|
||||
this.form.isFillGradual = model.isFillGradual || false;
|
||||
// this.form.isFillGradual = model.isFillGradual || false;
|
||||
this.form.lineWidth = model.lineWidth;
|
||||
this.form.fillColor = model.fillColor;
|
||||
this.form.fillBackground = model.fillBackground || '';
|
||||
@ -216,7 +216,7 @@ export default {
|
||||
code: this.isUpdate ? this.form.code : getUID('IscsLine', this.iscs.iscsLineList),
|
||||
_type: 'IscsLine',
|
||||
z2: this.form.z2,
|
||||
isFillGradual: this.form.isFillGradual,
|
||||
// isFillGradual: this.form.isFillGradual,
|
||||
lineWidth: this.form.lineWidth,
|
||||
fillColor: this.form.fillColor,
|
||||
fillBackground: this.form.fillBackground,
|
||||
@ -267,7 +267,7 @@ export default {
|
||||
this.form = {
|
||||
code: '',
|
||||
lineWidth: '',
|
||||
isFillGradual: false,
|
||||
// isFillGradual: false,
|
||||
fillColor: '#fff',
|
||||
fillBackground: '',
|
||||
arrowShow: 'none',
|
||||
|
@ -60,8 +60,8 @@ export default {
|
||||
{ name: '车尾', value: 'psdRight' },
|
||||
{ name: '车厢', value: 'psdSystem' },
|
||||
{ name: '人防门', value: 'envPersonDoor'},
|
||||
{ name: '蓝色FIRE', value: 's'},
|
||||
{ name: '红色FIRE', value: 'a'},
|
||||
{ name: '报警按钮蓝', value: 's'},
|
||||
{ name: '报警按钮红', value: 'a'},
|
||||
{ name: 'APF', value: 'APF'},
|
||||
{ name: '手动阀', value: 'hand'},
|
||||
{ name: '蓝色-阀门', value: 'fmBlue'},
|
||||
@ -100,7 +100,40 @@ export default {
|
||||
{ name: '烟杆传感器', value: 'iscsSensor' },
|
||||
{ name: '抵挡图', value: 'iscsDangwei' },
|
||||
{ name: '地变图', value: 'iscsDibian' },
|
||||
{ name: 'PT1', value: 'iscsPt1' }
|
||||
{ name: 'PT1', value: 'iscsPt1' },
|
||||
{ name: '受检左侧箭头', value: 'checkArrowLeft' },
|
||||
{ name: '受检右侧箭头', value: 'checkArrowRight' },
|
||||
{ name: '受检两侧箭头', value: 'checkArrowDouble' },
|
||||
{ name: '受检流量累计', value: 'checkFlowCumulative' },
|
||||
{ name: '受检正常', value: 'checkNormal' },
|
||||
{ name: '受检售票', value: 'checkSell' },
|
||||
{ name: '受检售票2', value: 'checkSell2' },
|
||||
{ name: '站厅背景', value: 'bgShowRoom' },
|
||||
{ name: '站台背景', value: 'bgStand' },
|
||||
{ name: '站台A端背景', value: 'bgFasPlatformA' },
|
||||
{ name: '站台B端背景', value: 'bgFasPlatformB' },
|
||||
{ name: '环空电控', value: 'basAnnulus' },
|
||||
{ name: '环控机控', value: 'basEnvironmental' },
|
||||
{ name: '智能低压', value: 'basLowPressure' },
|
||||
{ name: '接口机', value: 'basInterface' },
|
||||
{ name: '实体机', value: 'basEntity' },
|
||||
{ name: '烟感探测器红', value: 'smokeDetectorRed' },
|
||||
{ name: '烟感探测器绿', value: 'smokeDetectorGreen' },
|
||||
{ name: '烟感探测器蓝', value: 'smokeDetectorBlue' },
|
||||
{ name: '防火阀红', value: 'fireDamperRed' },
|
||||
{ name: '防火阀绿', value: 'fireDamperGreen' },
|
||||
{ name: '防火阀蓝', value: 'fireDamperBlue' },
|
||||
{ name: '温感器红', value: 'alarmLampRed' },
|
||||
{ name: '温感器绿', value: 'alarmLampGreen' },
|
||||
{ name: '温感器蓝', value: 'alarmLampBlue' },
|
||||
{ name: '站厅A', value: 'bgStationA' },
|
||||
{ name: '站厅B', value: 'bgStationB' },
|
||||
{ name: '站厅C', value: 'bgStationC' },
|
||||
{ name: '站厅D', value: 'bgStationD' },
|
||||
{ name: '站厅E', value: 'bgStationE' },
|
||||
{ name: '站厅F', value: 'bgStationF' },
|
||||
{ name: '门禁站厅A', value: 'bgDoorStationA' },
|
||||
{ name: '门禁站台A', value: 'bgDoorStandA' }
|
||||
],
|
||||
|
||||
rules: {
|
||||
|
@ -75,7 +75,7 @@
|
||||
<template v-for="(item, i) in addModel.columnWidthList">
|
||||
<el-table-column :key="i" :label="'列'+(i + 1)" :prop="'column'+ (i + 1)" width="140px">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="addModel.tableData[scope.$index]['column'+ (i + 1)]" size="small" />
|
||||
<el-input v-model="addModel.tableData[scope.$index]['column'+ (i + 1)]" size="small" type="textarea" :rows="1" />
|
||||
<div style="display:flex;justify-content:space-around;align-items: center;">
|
||||
<div>背景</div>
|
||||
<el-color-picker v-model="addModel.tableData[scope.$index]['bg'+(i+1)]" size="small" show-alpha />
|
||||
|
@ -1,11 +1,11 @@
|
||||
<template>
|
||||
<div style="overflow-y: scroll;height: calc(100% - 46px); width: 100%;">
|
||||
<el-form ref="form" :rules="rules" :model="form" label-width="120px" style="width: 100%;padding: 10px 50px;">
|
||||
<el-form-item label="code:" prop="code">
|
||||
<!-- <el-form-item label="code:" prop="code">
|
||||
<el-select v-model="form.code">
|
||||
<el-option v-for="(item, index) in iscsTextList" :key="index" :label="item.code" :value="item.code" disabled />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="文字内容:" prop="context">
|
||||
<el-input v-model="form.context" type="textarea" size="small" />
|
||||
</el-form-item>
|
||||
@ -79,9 +79,9 @@ export default {
|
||||
verticalPadding: 0
|
||||
},
|
||||
rules: {
|
||||
code: [
|
||||
{ required: true, message: '请输入文字编号', trigger: 'blur' }
|
||||
],
|
||||
// code: [
|
||||
// { required: true, message: '请输入文字编号', trigger: 'blur' }
|
||||
// ],
|
||||
context: [
|
||||
{ required: true, message: '请输入文字内容', trigger: 'blur' }
|
||||
],
|
||||
|
@ -1,6 +1,9 @@
|
||||
<template>
|
||||
<div style="overflow-y: scroll;height: calc(100% - 46px); width: 100%;">
|
||||
<el-form ref="form" :rules="rules" :model="form" label-width="80px" style="width: 100%;padding: 10px 50px;">
|
||||
<el-form-item label="图层:" prop="z2">
|
||||
<el-input-number v-model="form.z2" controls-position="right" :min="0" size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="宽度:" prop="width">
|
||||
<el-input-number v-model="form.width" controls-position="right" :min="1" size="small" />
|
||||
</el-form-item>
|
||||
@ -33,6 +36,7 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
form:{
|
||||
z2: '0',
|
||||
code: '',
|
||||
width: 100,
|
||||
height: 40,
|
||||
@ -59,6 +63,7 @@ export default {
|
||||
this.showDeleteButton = true;
|
||||
this.isUpdate = true;
|
||||
this.form.code = model.code;
|
||||
this.form.z2 = model.z2;
|
||||
this.form.x = model.point.x;
|
||||
this.form.y = model.point.y;
|
||||
this.form.height = model.height;
|
||||
@ -79,6 +84,7 @@ export default {
|
||||
},
|
||||
code: this.isUpdate ? this.form.code : getUID('AfcDoorUnite', this.iscs.arcDoorUniteList),
|
||||
_type: 'AfcDoorUnite',
|
||||
z2: this.form.z2,
|
||||
rotationAngle: this.form.rotationAngle,
|
||||
width: this.form.width,
|
||||
height: this.form.height
|
||||
@ -96,6 +102,7 @@ export default {
|
||||
x: this.form.x,
|
||||
y: this.form.y
|
||||
},
|
||||
z2: this.form.z2,
|
||||
code: this.form.code,
|
||||
_type: 'AfcDoorUnite',
|
||||
rotationAngle: this.form.rotationAngle,
|
||||
@ -110,6 +117,7 @@ export default {
|
||||
this.showDeleteButton = false;
|
||||
this.form = {
|
||||
code: '',
|
||||
z2: '0',
|
||||
width: 100,
|
||||
height: 40,
|
||||
rotationAngle: 0,
|
||||
|
@ -25,6 +25,14 @@
|
||||
@createDataModel="createDataModel"
|
||||
@deleteDataModel="deleteDataModel"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="圆形" name="IscsCircle">
|
||||
<iscs-circle
|
||||
ref="iscsCircle"
|
||||
style="width: 100%;height: 100%;"
|
||||
@createDataModel="createDataModel"
|
||||
@deleteDataModel="deleteDataModel"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="线段" name="IscsLine">
|
||||
<iscs-line
|
||||
@ -73,6 +81,14 @@
|
||||
@createDataModel="createDataModel"
|
||||
@deleteDataModel="deleteDataModel"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="图片" name="IscsPicture">
|
||||
<iscs-picture
|
||||
ref="iscsPicture"
|
||||
style="width: 100%;height: 100%;"
|
||||
@createDataModel="createDataModel"
|
||||
@deleteDataModel="deleteDataModel"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-card>
|
||||
@ -87,8 +103,10 @@ import IscsRect from '../icscComponents/rect';
|
||||
import IscsButton from '../icscComponents/button';
|
||||
import OrdinaryDoor from '../iscsCommonElem/ordinaryDoor';
|
||||
import FuzhouDoor from '../iscsCommonElem/fuzhouDoor';
|
||||
import IscsPicture from '../icscComponents/picture';
|
||||
import CommunicationButcher from '../iscsCommonElem/communicationButcher';
|
||||
import AfcDoorUnite from './afcDoorUnite';
|
||||
import IscsCircle from '../icscComponents/circle';
|
||||
|
||||
export default {
|
||||
name: 'IscsOperate',
|
||||
@ -99,8 +117,10 @@ export default {
|
||||
IscsButton,
|
||||
OrdinaryDoor,
|
||||
FuzhouDoor,
|
||||
IscsPicture,
|
||||
CommunicationButcher,
|
||||
AfcDoorUnite
|
||||
AfcDoorUnite,
|
||||
IscsCircle
|
||||
},
|
||||
mixins: [
|
||||
],
|
||||
|
@ -1,7 +1,10 @@
|
||||
<template>
|
||||
<div style="overflow-y: scroll;height: calc(100% - 46px); width: 100%;">
|
||||
<el-form ref="form" :rules="rules" :model="form" label-width="80px" style="width: 100%;padding: 10px 50px;">
|
||||
<el-form-item label="门宽:" prop="height">
|
||||
<el-form-item label="图层:" prop="z2">
|
||||
<el-input-number v-model="form.z2" controls-position="right" :min="1" size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="门宽:" prop="width">
|
||||
<el-input-number v-model="form.width" controls-position="right" :min="1" size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="X轴坐标:">
|
||||
@ -28,6 +31,7 @@ export default {
|
||||
return {
|
||||
form:{
|
||||
code: '',
|
||||
z2: 0,
|
||||
width: 20,
|
||||
x: 10,
|
||||
y: 10
|
||||
@ -51,6 +55,7 @@ export default {
|
||||
this.showDeleteButton = true;
|
||||
this.isUpdate = true;
|
||||
this.form.code = model.code;
|
||||
this.form.z2 = model.z2;
|
||||
this.form.x = model.point.x;
|
||||
this.form.y = model.point.y;
|
||||
this.form.width = model.width;
|
||||
@ -69,6 +74,7 @@ export default {
|
||||
},
|
||||
code: this.isUpdate ? this.form.code : getUID('FuzhouDoor', this.iscs.fuzhouDoorList),
|
||||
_type: 'FuzhouDoor',
|
||||
z2: this.form.z2,
|
||||
width: this.form.width
|
||||
};
|
||||
this.$emit('createDataModel', model);
|
||||
@ -86,6 +92,7 @@ export default {
|
||||
},
|
||||
code: this.form.code,
|
||||
_type: 'FuzhouDoor',
|
||||
z2: this.form.z2,
|
||||
width: this.form.width
|
||||
};
|
||||
this.$emit('deleteDataModel', model);
|
||||
@ -97,6 +104,7 @@ export default {
|
||||
this.form = {
|
||||
code: '',
|
||||
width: 20,
|
||||
z2: 0,
|
||||
x: 10,
|
||||
y: 10
|
||||
};
|
||||
|
@ -1,6 +1,9 @@
|
||||
<template>
|
||||
<div style="overflow-y: scroll;height: calc(100% - 46px); width: 100%;">
|
||||
<el-form ref="form" :rules="rules" :model="form" label-width="80px" style="width: 100%;padding: 10px 50px;">
|
||||
<el-form-item label="图层:" prop="z2">
|
||||
<el-input-number v-model="form.z2" controls-position="right" size="small" />
|
||||
</el-form-item>
|
||||
<el-form-item label="类型:" prop="width">
|
||||
<el-select v-model="form.doorType" placeholder="请选择">
|
||||
<el-option
|
||||
@ -41,6 +44,7 @@ export default {
|
||||
return {
|
||||
form:{
|
||||
code: '',
|
||||
z2: '',
|
||||
doorType: '1',
|
||||
r: 1,
|
||||
rotationAngle: 0,
|
||||
@ -72,6 +76,7 @@ export default {
|
||||
this.showDeleteButton = true;
|
||||
this.isUpdate = true;
|
||||
this.form.code = model.code;
|
||||
this.form.z2 = model.z2;
|
||||
this.form.x = model.point.x;
|
||||
this.form.y = model.point.y;
|
||||
this.form.r = model.r;
|
||||
@ -90,6 +95,7 @@ export default {
|
||||
x: this.form.x,
|
||||
y: this.form.y
|
||||
},
|
||||
z2: this.form.z2,
|
||||
code: this.isUpdate ? this.form.code : getUID('OrdinaryDoor', this.iscs.ordinaryDoorList),
|
||||
_type: 'OrdinaryDoor',
|
||||
rotationAngle: this.form.rotationAngle,
|
||||
@ -109,6 +115,7 @@ export default {
|
||||
x: this.form.x,
|
||||
y: this.form.y
|
||||
},
|
||||
z2: this.form.z2,
|
||||
code: this.form.code,
|
||||
_type: 'OrdinaryDoor',
|
||||
rotationAngle: this.form.rotationAngle,
|
||||
@ -123,6 +130,7 @@ export default {
|
||||
this.showDeleteButton = false;
|
||||
this.form = {
|
||||
code: '',
|
||||
z2: '',
|
||||
doorType: '1',
|
||||
r: 1,
|
||||
rotationAngle: 0,
|
||||
|
@ -90,6 +90,7 @@ export default {
|
||||
this.$store.dispatch('iscs/setIscsData', iscsData);
|
||||
if (this.$route.query.group) {
|
||||
this.$iscs.on('dblclick', this.onDblclick, this);
|
||||
this.$iscs.on('click', this.onlclick, this);
|
||||
}
|
||||
},
|
||||
onDblclick(em) {
|
||||
@ -97,10 +98,30 @@ export default {
|
||||
if (em.deviceType == 'IscsGroup') {
|
||||
this.$iscs.iscsDevice[em.deviceModel.code].instance.hide();
|
||||
this.$refs.valve.doShow(em.deviceModel);
|
||||
} else if (em.deviceType == 'IscsButton') {
|
||||
} else if (em.deviceType == 'IscsButton' && em.deviceModel.function != 'goToStand' && em.deviceModel.function != 'goToStation') {
|
||||
this.$refs.protectReset.doShow(em.deviceModel);
|
||||
}
|
||||
},
|
||||
|
||||
onlclick(em) {
|
||||
// 父编组上元素内容
|
||||
const query = {
|
||||
stationName: this.$route.query.stationName,
|
||||
stationId: this.$route.query.stationId,
|
||||
group: this.$route.query.group,
|
||||
mapId: this.$route.query.mapId,
|
||||
lineCode:'02',
|
||||
noPreLogout:this.$route.query.noPreLogout
|
||||
};
|
||||
let type = '';
|
||||
if (em.deviceType == 'IscsButton' && em.deviceModel.function == 'goToStand') {
|
||||
type = 'afcTwo02';
|
||||
} else if (em.deviceType == 'IscsButton' && em.deviceModel.function == 'goToStation') {
|
||||
type = 'afcOne02';
|
||||
}
|
||||
this.$router.replace({ path: `/displayIscs/system/stationConfig/${type}`, query: query });
|
||||
},
|
||||
|
||||
// 地图加载完成
|
||||
handleViewLoaded() {
|
||||
this.loading = false;
|
||||
@ -126,7 +147,7 @@ export default {
|
||||
}
|
||||
},
|
||||
setIscs(data, oldData) {
|
||||
this.$iscs.setIscs(oldData, data, this.$route.query.mapId);
|
||||
this.$iscs.setIscs(oldData, data, this.$route.query.lineCode);
|
||||
},
|
||||
// 执行操作
|
||||
handleModel(model) {
|
||||
|
@ -158,7 +158,9 @@ export default {
|
||||
const data = JSON.parse(resp.data.graphData);
|
||||
this.$refs.iscsPlate.show(data, this.width, this.height, this.scaleRate);
|
||||
document.querySelector('.Substation').scrollTop = 0;
|
||||
}
|
||||
} else {
|
||||
this.loading = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
127
src/views/iscs/iscsSystem/stationConfig/fas/index.vue
Normal file
@ -0,0 +1,127 @@
|
||||
<template>
|
||||
<div v-loading="loading" element-loading-background="rgba(0, 0, 0, 0.6)" style="width:100%;height:100%;">
|
||||
<div class="fasIndex" :style="{'background':bacground}">
|
||||
<div class="fasIndex_header">{{ title }}</div>
|
||||
<div>
|
||||
<iscsSystem ref="iscsPlate" />
|
||||
</div>
|
||||
<!-- <div class="psdSystem_footer">
|
||||
<div class="prevButton">{{}}</div>
|
||||
<div class="nextButton">{{}}</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import iscsSystem from '../canvas/iscsCanvas';
|
||||
import {getIscsData} from '@/api/iscs';
|
||||
export default {
|
||||
name:'Fas',
|
||||
components:{
|
||||
iscsSystem
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title:'',
|
||||
bacground:'rgba(66,90,116,1)',
|
||||
loading:false,
|
||||
width:window.innerWidth,
|
||||
scaleRate:window.innerWidth / 2200,
|
||||
height: 1000
|
||||
};
|
||||
},
|
||||
computed:{
|
||||
stationName() {
|
||||
return this.$route.query.stationName;
|
||||
},
|
||||
stationId() {
|
||||
return this.$route.query.stationId;
|
||||
}
|
||||
// height() {
|
||||
// return 970;
|
||||
// }
|
||||
},
|
||||
watch:{
|
||||
$route() {
|
||||
this.mode = this.$route.params.mode;
|
||||
this.getInitData();
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.mode = this.$route.params.mode;
|
||||
},
|
||||
mounted() {
|
||||
this.getInitData();
|
||||
},
|
||||
methods:{
|
||||
getInitData() {
|
||||
const params = {
|
||||
// lineCode: this.$route.query.lineCode,
|
||||
mapId: this.$route.query.mapId,
|
||||
system: 'fas',
|
||||
totalSystem :'fas02',
|
||||
userInterface : this.mode
|
||||
};
|
||||
if (this.mode == 'gas') {
|
||||
this.title = this.stationName + ' 气体灭火系统';
|
||||
this.scaleRate = window.innerWidth / 1920;
|
||||
this.height = 930;
|
||||
} else if (this.mode == 'sensing') {
|
||||
this.title = '';
|
||||
this.scaleRate = window.innerWidth / 1920;
|
||||
this.height = 800;
|
||||
} else if (this.mode == 'section') {
|
||||
this.title = this.stationName + ' 火灾报警系统 区间层';
|
||||
this.scaleRate = window.innerWidth / 1920;
|
||||
this.height = 900;
|
||||
} else if (this.mode == 'linkage') {
|
||||
this.title = this.stationName + ' 火灾报警系统 FAS联动';
|
||||
this.scaleRate = window.innerWidth / 1920;
|
||||
this.height = 900;
|
||||
} else if (this.mode == 'stationHall') {
|
||||
this.title = '';
|
||||
params.userInterface = 'stationHallOne';
|
||||
params.system = 'stationHall';
|
||||
this.scaleRate = window.innerWidth / 1920;
|
||||
this.height = 850;
|
||||
} else if (this.mode == 'platform') {
|
||||
params.userInterface = 'platformOne';
|
||||
params.system = 'platform';
|
||||
this.scaleRate = window.innerWidth / 1920;
|
||||
this.height = 850;
|
||||
}
|
||||
this.loading = true;
|
||||
this.$refs.iscsPlate.show({}, this.width, this.height, this.scaleRate);
|
||||
getIscsData(params).then(resp=>{
|
||||
if (resp.data) {
|
||||
this.loading = false;
|
||||
const data = JSON.parse(resp.data.graphData);
|
||||
this.$refs.iscsPlate.show(data, this.width, this.height, this.scaleRate);
|
||||
document.querySelector('.fasIndex').scrollTop = 0;
|
||||
} else {
|
||||
this.loading = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.fasIndex_header{
|
||||
text-align: center;
|
||||
margin-top: 15px;
|
||||
color: #d8e9a5;
|
||||
font-size: 25px;
|
||||
}
|
||||
.fasIndex{
|
||||
display: inline-block;
|
||||
width:100%;
|
||||
height:100%;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
vertical-align: top;
|
||||
}
|
||||
.SubstationIn{
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
@ -3,8 +3,11 @@
|
||||
<psd-system v-if="mode=='psdSystem'" />
|
||||
<substation v-else-if="mode=='substation'" />
|
||||
<schedule v-else-if="mode=='schedule'" />
|
||||
<normal v-else-if="mode=='environmentThree'" />
|
||||
<normal v-else-if="mode=='environmentFour'" />
|
||||
<normal v-else-if="mode.includes('environment')" />
|
||||
<fas v-else-if="fasList.includes(mode)" />
|
||||
<signal-system v-else-if="mode === 'signal'" />
|
||||
<!-- environmentThree -->
|
||||
<!-- <normal v-else-if="mode=='environmentFour'" />
|
||||
<normal v-else-if="mode=='environmentFive'" />
|
||||
<normal v-else-if="mode=='environmentSix'" />
|
||||
<normal v-else-if="mode=='environmentSeven'" />
|
||||
@ -13,8 +16,10 @@
|
||||
<normal v-else-if="mode=='environmentTen'" />
|
||||
<normal v-else-if="mode=='environmentThirteen'" />
|
||||
<normal v-else-if="mode=='environmentEleven'" />
|
||||
<normal v-else-if="mode=='environmentTwelve'" />
|
||||
<big-screen v-else-if="mode === 'signal'" />
|
||||
<normal v-else-if="mode=='environmentTwelve'" /> -->
|
||||
<!-- <big-screen v-else-if="mode === 'signal'" /> -->
|
||||
<!-- <big-screen v-else-if="mode === 'signal'" /> -->
|
||||
<ticket-or-entrance v-else-if="mode === 'autoTicket'||mode === 'afcTwo02'||mode === 'afcOne02'" />
|
||||
<!-- -->
|
||||
</div>
|
||||
</template>
|
||||
@ -23,7 +28,11 @@ import PsdSystem from './psdSystem/index.vue';
|
||||
import Substation from './powerMonitor/substation.vue';
|
||||
import Normal from './environment/index.vue';
|
||||
import Schedule from './schedule';
|
||||
import BigScreen from '@/views/designPlatform/bigScreen';
|
||||
import Fas from './fas/index.vue';
|
||||
import SignalSystem from './signalSystem/index.vue';
|
||||
// import BigScreen from '@/views/designPlatform/bigScreen';
|
||||
import TicketOrEntrance from './ticketOrEntrance/index';
|
||||
// import BigScreen from '@/views/designPlatform/bigScreen';
|
||||
import { getSimulationInfoNew } from '@/api/simulation';
|
||||
import { getByGroupStationList } from '@/api/jmap/map';
|
||||
import { loadRunPlanData } from '@/utils/loaddata';
|
||||
@ -33,12 +42,16 @@ export default {
|
||||
PsdSystem,
|
||||
Substation,
|
||||
Normal,
|
||||
BigScreen
|
||||
// BigScreen,
|
||||
SignalSystem,
|
||||
Fas,
|
||||
TicketOrEntrance
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
mode: 'index',
|
||||
deviceList: []
|
||||
deviceList: [],
|
||||
fasList:['sensing', 'gas', 'section', 'linkage', 'stationHall', 'platform']
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
@ -114,7 +114,9 @@ export default {
|
||||
const data = JSON.parse(resp.data.graphData);
|
||||
this.$refs.iscsPlate.show(data, this.width, this.height, this.scaleRate);
|
||||
document.querySelector('.Substation').scrollTop = 0;
|
||||
}
|
||||
} else {
|
||||
this.loading = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -48,7 +48,9 @@ export default {
|
||||
if (resp.data) {
|
||||
const data = JSON.parse(resp.data.graphData);
|
||||
this.$refs.iscsPlate.show(data, this.width, this.height, this.scaleRate);
|
||||
}
|
||||
} else {
|
||||
this.loading = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
104
src/views/iscs/iscsSystem/stationConfig/signalSystem/index.vue
Normal file
@ -0,0 +1,104 @@
|
||||
<template>
|
||||
<div v-loading="loading" element-loading-background="rgba(0, 0, 0, 0.6)" style="width:100%;height:100%;">
|
||||
<div class="fasIndex" :style="{'background':bacground}">
|
||||
<div class="fasIndex_header">{{ title }}</div>
|
||||
<div>
|
||||
<iscsSystem ref="iscsPlate" />
|
||||
</div>
|
||||
<!-- <div class="psdSystem_footer">
|
||||
<div class="prevButton">{{}}</div>
|
||||
<div class="nextButton">{{}}</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import iscsSystem from '../canvas/iscsCanvas';
|
||||
import {getIscsData} from '@/api/iscs';
|
||||
export default {
|
||||
name:'Fas',
|
||||
components:{
|
||||
iscsSystem
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title:'',
|
||||
bacground:'rgba(66,90,116,1)',
|
||||
loading:false,
|
||||
width:window.innerWidth,
|
||||
scaleRate:window.innerWidth / 2200,
|
||||
height: 1000
|
||||
};
|
||||
},
|
||||
computed:{
|
||||
stationName() {
|
||||
return this.$route.query.stationName;
|
||||
},
|
||||
stationId() {
|
||||
return this.$route.query.stationId;
|
||||
}
|
||||
// height() {
|
||||
// return 970;
|
||||
// }
|
||||
},
|
||||
watch:{
|
||||
$route() {
|
||||
this.mode = this.$route.params.mode;
|
||||
this.getInitData();
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.mode = this.$route.params.mode;
|
||||
},
|
||||
mounted() {
|
||||
this.getInitData();
|
||||
},
|
||||
methods:{
|
||||
getInitData() {
|
||||
const params = {
|
||||
// lineCode: this.$route.query.lineCode,
|
||||
mapId: this.$route.query.mapId,
|
||||
system: 'signalSystem',
|
||||
totalSystem :'signalSystem02',
|
||||
userInterface : this.mode
|
||||
};
|
||||
if (this.mode == 'signal') {
|
||||
this.title = this.stationName + ' 信号系统';
|
||||
this.scaleRate = window.innerWidth / 1920;
|
||||
this.height = 900;
|
||||
}
|
||||
this.loading = true;
|
||||
this.$refs.iscsPlate.show({}, this.width, this.height, this.scaleRate);
|
||||
getIscsData(params).then(resp=>{
|
||||
if (resp.data) {
|
||||
this.loading = false;
|
||||
const data = JSON.parse(resp.data.graphData);
|
||||
this.$refs.iscsPlate.show(data, this.width, this.height, this.scaleRate);
|
||||
document.querySelector('.fasIndex').scrollTop = 0;
|
||||
} else {
|
||||
this.loading = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.fasIndex_header{
|
||||
text-align: center;
|
||||
margin-top: 15px;
|
||||
color: #d8e9a5;
|
||||
font-size: 25px;
|
||||
}
|
||||
.fasIndex{
|
||||
display: inline-block;
|
||||
width:100%;
|
||||
height:100%;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
vertical-align: top;
|
||||
}
|
||||
.SubstationIn{
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,113 @@
|
||||
<template>
|
||||
<div v-loading="loading" element-loading-background="rgba(0, 0, 0, 0.6)" style="width:100%;height:100%;">
|
||||
<div class="fasIndex" :style="{'background':bacground}">
|
||||
<div class="fasIndex_header">{{ title }}</div>
|
||||
<div>
|
||||
<iscsSystem ref="iscsPlate" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import iscsSystem from '../canvas/iscsCanvas';
|
||||
import {getIscsData} from '@/api/iscs';
|
||||
export default {
|
||||
name:'TicketOrEntrance',
|
||||
components:{
|
||||
iscsSystem
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title:'',
|
||||
bacground:'rgba(66,90,116,1)',
|
||||
loading:false,
|
||||
width:window.innerWidth,
|
||||
scaleRate:window.innerWidth / 2200,
|
||||
height: 1000
|
||||
};
|
||||
},
|
||||
computed:{
|
||||
stationName() {
|
||||
return this.$route.query.stationName;
|
||||
},
|
||||
stationId() {
|
||||
return this.$route.query.stationId;
|
||||
}
|
||||
// height() {
|
||||
// return 970;
|
||||
// }
|
||||
},
|
||||
watch:{
|
||||
$route() {
|
||||
this.mode = this.$route.params.mode;
|
||||
this.getInitData();
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.mode = this.$route.params.mode;
|
||||
},
|
||||
mounted() {
|
||||
this.getInitData();
|
||||
},
|
||||
methods:{
|
||||
getInitData() {
|
||||
const params = {
|
||||
// lineCode: this.$route.query.lineCode,
|
||||
mapId: this.$route.query.mapId,
|
||||
system: 'afc',
|
||||
totalSystem :'afc02',
|
||||
userInterface : this.mode
|
||||
};
|
||||
if (this.mode == 'autoTicket') {
|
||||
this.title = this.stationName + ' 自动售检票系统';
|
||||
this.scaleRate = window.innerWidth / 1920;
|
||||
this.height = 800;
|
||||
} else if (this.mode == 'afcTwo02') {
|
||||
params.userInterface = 'afcTwo02';
|
||||
params.system = 'entranceGuard';
|
||||
this.title = this.stationName + ' 门禁系统 站台层';
|
||||
this.scaleRate = window.innerWidth / 1920;
|
||||
this.height = 800;
|
||||
} else if (this.mode == 'afcOne02') {
|
||||
params.userInterface = 'afcOne02';
|
||||
params.system = 'entranceGuard';
|
||||
this.title = this.stationName + ' 门禁系统 站厅层';
|
||||
this.scaleRate = window.innerWidth / 1920;
|
||||
this.height = 800;
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
this.$refs.iscsPlate.show({}, this.width, this.height, this.scaleRate);
|
||||
getIscsData(params).then(resp=>{
|
||||
if (resp.data) {
|
||||
this.loading = false;
|
||||
const data = JSON.parse(resp.data.graphData);
|
||||
this.$refs.iscsPlate.show(data, this.width, this.height, this.scaleRate);
|
||||
document.querySelector('.fasIndex').scrollTop = 0;
|
||||
} else {
|
||||
this.loading = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.fasIndex_header{
|
||||
text-align: center;
|
||||
margin-top: 15px;
|
||||
color: #d8e9a5;
|
||||
font-size: 25px;
|
||||
}
|
||||
.fasIndex{
|
||||
display: inline-block;
|
||||
width:100%;
|
||||
height:100%;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
vertical-align: top;
|
||||
}
|
||||
.SubstationIn{
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
@ -249,8 +249,8 @@ export default {
|
||||
},
|
||||
{
|
||||
name: '门禁系统',
|
||||
mode: 'entranceGuard',
|
||||
id: 'entranceGuard',
|
||||
mode: 'afcOne02',
|
||||
id: 'afcOne02',
|
||||
type: 'interface'
|
||||
}
|
||||
]},
|
||||
@ -443,6 +443,7 @@ export default {
|
||||
stationId: this.selectStation,
|
||||
group: this.group,
|
||||
mapId: this.$route.query.mapId,
|
||||
lineCode:'02',
|
||||
noPreLogout:this.$route.query.noPreLogout
|
||||
};
|
||||
if (isReplace) {
|
||||
|
3042
src/views/iscsSystem/fan联动.json
Normal file
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<div :id="iscsId" v-loading="loading" :style="{ width: canvasWidth +'px', height: canvasHeight +'px',background:'#45607B' }" class="iscs-canvas" />
|
||||
<div :id="iscsId" v-loading="loading" :style="{ width: canvasWidth +'px', height: canvasHeight +'px',background:'#425a74' }" class="iscs-canvas" />
|
||||
<el-button v-if="showBackButton" class="iscs-button" type="primary" @click="back">{{ $t('global.back') }}</el-button>
|
||||
</div>
|
||||
</template>
|
||||
@ -126,8 +126,9 @@ export default {
|
||||
// this.setIscs(parserData, data);
|
||||
// this.$store.dispatch('iscs/setIscsData', data);
|
||||
getIscsData(params).then(resp => {
|
||||
// resp.data = {graphData: require('./data.json')}
|
||||
if (resp.data) {
|
||||
const data = JSON.parse(resp.data.graphData);
|
||||
const data = resp.data.graphData instanceof Object ? resp.data.graphData : JSON.parse(resp.data.graphData);
|
||||
const parserData = parser(data, {width: this.canvasWidth, height: this.canvasHeight});
|
||||
this.setIscs(parserData, data);
|
||||
this.$store.dispatch('iscs/setIscsData', data);
|
||||
@ -179,7 +180,8 @@ export default {
|
||||
} else if (this.selected._type != 'CheckBox') {
|
||||
this.copyModel = this.copyModelInfo(this.selected, 10);
|
||||
const type1 = this.selected._type.charAt(0).toLowerCase() + this.selected._type.slice(1);
|
||||
this.copyModel.code = getUID(this.selected._type, this.iscs[type1 + 'List'] || []);
|
||||
const list = this.iscs[type1 + 'List'] || [];
|
||||
this.copyModel.code = getUID(this.selected._type, list);
|
||||
} else {
|
||||
this.copyModel = {};
|
||||
}
|
||||
|
2184
src/views/iscsSystem/自动售票.json
Normal file
@ -65,14 +65,14 @@ export default {
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
generateType: {
|
||||
type: 'select',
|
||||
label: this.$t('lesson.automaticOrManual'),
|
||||
config: {
|
||||
data: [{ value: '02', label: this.$t('lesson.automatic') }, { value: '01', label: this.$t('lesson.manual') }]
|
||||
}
|
||||
}
|
||||
// generateType: {
|
||||
// type: 'select',
|
||||
// label: this.$t('lesson.automaticOrManual'),
|
||||
// config: {
|
||||
// data: [{ value: '02', label: this.$t('lesson.automatic') }, { value: '01', label: this.$t('lesson.manual') }]
|
||||
// }
|
||||
// }
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
|
@ -12,16 +12,6 @@
|
||||
<el-form-item :label="$t('lesson.publishCourseName')" prop="name">
|
||||
<el-input v-model="editModel.name" :disabled="!hasRelease" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="showClassSelect" label="课程所属班级:" prop="classIdList">
|
||||
<el-select v-model="editModel.classIdList" multiple placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in calssList"
|
||||
:key="item.departmentId"
|
||||
:label="item.departmentName"
|
||||
:value="item.departmentId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
@ -33,7 +23,6 @@
|
||||
|
||||
<script>
|
||||
import { adminPublishLesson, releaseOrCancel } from '@/api/designPlatform';
|
||||
import { getCompanyDeptInfo } from '@/api/company';
|
||||
export default {
|
||||
name: 'LessonPublish',
|
||||
data() {
|
||||
@ -47,8 +36,7 @@ export default {
|
||||
name: '',
|
||||
mapId: '',
|
||||
prdType: '',
|
||||
cityCode: '',
|
||||
classIdList: []
|
||||
cityCode: ''
|
||||
}
|
||||
};
|
||||
},
|
||||
@ -66,18 +54,12 @@ export default {
|
||||
],
|
||||
name: [
|
||||
{ required: true, message: this.$t('rules.pleaseEnterMapName'), trigger: 'change' }
|
||||
],
|
||||
classIdList: [
|
||||
{ required: true, message: '请选择课程归属班级', trigger: 'change' }
|
||||
]
|
||||
};
|
||||
},
|
||||
hasRelease() {
|
||||
return this.$store.state.user.roles.includes('04') ||
|
||||
this.$store.state.user.roles.includes('05') || this.$store.state.user.roles.includes('03');
|
||||
},
|
||||
showClassSelect() {
|
||||
return this.$store.state.user.companyId && this.$store.state.user.companyAdmin;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@ -87,17 +69,9 @@ export default {
|
||||
name: model.name,
|
||||
mapId: this.$route.query.mapId || this.$route.params.mapId,
|
||||
prdType: model.prdType,
|
||||
cityCode: model.cityCode,
|
||||
classIdList: []
|
||||
cityCode: model.cityCode
|
||||
};
|
||||
this.dialogShow = true;
|
||||
if (this.showClassSelect) {
|
||||
getCompanyDeptInfo(this.$store.state.user.companyId).then(resp => {
|
||||
this.calssList = resp.data;
|
||||
}).catch(() =>{
|
||||
this.$message.error('获取班级数据失败!');
|
||||
});
|
||||
}
|
||||
},
|
||||
doClose() {
|
||||
this.$refs.form.resetFields();
|
||||
@ -129,7 +103,6 @@ export default {
|
||||
this.loading = false;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -29,7 +29,7 @@ export default {
|
||||
'$route': function() {
|
||||
},
|
||||
'$store.state.map.mapViewLoadedCount': function (val) {
|
||||
window.parent.postMessage(Object.assign({}, {type: 'DEMO_MAP_LOADED'}), 'http://localhost:9527/cbtc/demo');
|
||||
window.parent.postMessage(Object.assign({}, {type: 'DEMO_MAP_LOADED'}), 'https://test.joylink.club/cbtc/demo');
|
||||
}
|
||||
},
|
||||
async mounted() {
|
||||
@ -58,7 +58,7 @@ export default {
|
||||
}
|
||||
},
|
||||
exitSimulation(result = {}) {
|
||||
window.parent.postMessage(Object.assign(result, {type: 'DEMO_RESULT'}), 'http://localhost:9527/cbtc/demo');
|
||||
window.parent.postMessage(Object.assign(result, {type: 'DEMO_RESULT'}), 'https://test.joylink.club/cbtc/demo');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -155,13 +155,16 @@ export default {
|
||||
EventBus.$on('quitScene', () => {
|
||||
this.practiceDisabled = false;
|
||||
});
|
||||
getPostByProjectCode(ProjectCode[this.project]).then(resp => {
|
||||
if (resp.data) {
|
||||
this.messageBoard = true;
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$message.error('获取留言板信息失败');
|
||||
});
|
||||
if (this.project) {
|
||||
getPostByProjectCode(ProjectCode[this.project]).then(resp => {
|
||||
if (resp.data) {
|
||||
this.messageBoard = true;
|
||||
}
|
||||
}).catch(() => {
|
||||
// this.$message.error('获取留言板信息失败');
|
||||
console.log('获取留言板信息失败');
|
||||
});
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
menuClick() {
|
||||
|
@ -7,18 +7,16 @@
|
||||
</div>
|
||||
<div class="display-draft" :style="{bottom: offsetBottom + 'px'}">
|
||||
<el-button-group>
|
||||
<el-button type="primary" class="back" @click="back">{{ $t('display.backBtn') }}</el-button>
|
||||
<el-button type="danger" :disabled="!isDisable || dataError" @click="end">{{ $t('display.endBtn') }}</el-button>
|
||||
<el-button type="success" :disabled="isDisable || dataError" :loading="startLoading" @click="start">{{ $t('display.startBtn') }}</el-button>
|
||||
<el-button type="danger" :disabled="!isDisable || dataError" @click="end">{{ $t('display.endBtn') }}</el-button>
|
||||
<el-button type="primary" class="back" @click="back">{{ $t('display.backBtn') }}</el-button>
|
||||
</el-button-group>
|
||||
</div>
|
||||
<tip-exam-list :offset-bottom="offsetBottom" />
|
||||
<!-- @refresh="refresh" -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// import { getTrainingDetailNew } from '@/api/jmap/training';
|
||||
import TipExamList from './tipExamList';
|
||||
import { Notification } from 'element-ui';
|
||||
import { startTrainingNew } from '@/api/jmap/training';
|
||||
|