diff --git a/src/api/runplan.js b/src/api/runplan.js index eca337ef7..1ea3bb85a 100644 --- a/src/api/runplan.js +++ b/src/api/runplan.js @@ -383,3 +383,19 @@ export function listAllTempLateRunPlan() { method: 'get' }); } + +// 删除加载计划 +export function deleteDailyRunPlanLoad(id) { + return request({ + url: `/api/runPlan/daily/runPlanLoad/${id}`, + method: 'DELETE' + }); +} + +// 从加载计划创建每日计划 +export function postDailyRunPlanLoadGenerate(id) { + return request({ + url: `/api/runPlan/daily/runPlanLoad/${id}/generate`, + method: 'post' + }); +} diff --git a/src/jmap/config/skinCode/batong_01.js b/src/jmap/config/skinCode/batong_01.js index 27427fc36..cd5e0880c 100644 --- a/src/jmap/config/skinCode/batong_01.js +++ b/src/jmap/config/skinCode/batong_01.js @@ -10,6 +10,574 @@ class SkinCode extends defaultStyle { linkColor: '#3F3F3F', // link 线条颜色 linkTextColor: '#FFFFFF' // link 字体颜色 }; + + this[deviceType.Section] = { + active: { + routeColor: false // 进路触发颜色 + }, + text: { // 物理区段名称 + show: true, // 物理区段名称显示 + position: -1, // 区段名称位置 1 上面 -1 下面 0 对称 + distance: 11, // 文字离区段距离 + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + fontColor: '#FFFFFF', // 字体颜色 + textAlign: 'center', // 水平对齐方式 + textPosition: 'inside', // 文字位置 + textVerticalAlign: 'middle' // 文字垂直对齐方式 + }, + logicText: { // 逻辑区段名称 + show: false, // 逻辑区段名称显示 + position: -1, // 区段名称位置 1 上面 -1 下面 0 对称 + distance: 11, // 文字离区段距离 + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + fontColor: '#FFFFFF', // 字体颜色 + textAlign: 'center', // 水平对齐方式 + textPosition: 'inside', // 文字位置 + textVerticalAlign: 'middle' // 文字垂直对齐方式 + }, + standText: { // 站台轨名称 + show: true, // 站台轨名称显示 + opposite: true, // 对称相反 + position: 1, // 区段名称位置 1 上面 -1 下面 0 对称 + distance: 11, // 文字离区段距离 + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + fontColor: '#FFFFFF', // 字体颜色 + textAlign: 'center', // 水平对齐方式 + textPosition: 'inside', // 文字位置 + textVerticalAlign: 'middle' // 文字垂直对齐方式 + }, + reentryText: { // 折返轨名称 + show: true, // 折返轨名称显示 + opposite: true, // 对称相反 + position: 1, // 区段名称位置 1 上面 -1 下面 0 对称 + distance: 11, // 文字离区段距离 + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + fontColor: '#FFFFFF', // 字体颜色 + textAlign: 'center', // 水平对齐方式 + textPosition: 'inside', // 文字位置 + textVerticalAlign: 'middle' // 文字垂直对齐方式 + }, + transferText: { // 转换轨名称 + show: true, // 转换轨名称显示 + opposite: true, // 对称相反 + position: 1, // 区段名称位置 1 上面 -1 下面 0 对称 + distance: 11, // 文字离区段距离 + fontSize: 11, // 字体大小 + fontWeight: 'normal', // 字体粗细 + fontColor: '#FFFFFF', // 字体颜色 + textAlign: 'center', // 水平对齐方式 + textPosition: 'inside', // 文字位置 + textVerticalAlign: 'middle' // 文字垂直对齐方式 + }, + destinationText: { // 目的码名称 + show: true, // 目的码名称显示 + position: 1, // 区段名称位置 1 上面 -1 下面 0 对称 + distance: 11, // 文字离区段距离 + fontSize: 11, // 字体大小 + fontWeight: 'bold', // 字体粗细 + fontColor: 'yellow', // 字体颜色 + textAlign: 'center', // 水平对齐方式 + textPosition: 'inside', // 文字位置 + textVerticalAlign: 'middle' // 文字垂直对齐方式 + }, + mouseOverStyle: { + borderColor: '#fff', + borderBackgroundColor: '#22DFDF', + textShadowColor: '#22DFDF' + }, + line: { + width: 5, // 区段宽度 + beyondWidth: 0, // 区段宽超出宽度 + invadeColor: '#EF0C08', // 区段侵入颜色 + spareColor: '#606060', // 区段空闲颜色 + communicationOccupiedColor: '#FF0000', // 区段通信车占用颜色 + unCommunicationOccupiedColor: '#800080', // 区段非通讯车占用颜色 + routeLockColor: '#FFFFFF', // 区段路由锁定颜色 + faultLockColor: '#006400', // 区段故障锁定颜色 + undefinedColor: '#0071C1', // 区段未定义颜色 + protectionLockedColor: '#FEFF00', // 保护区段锁闭(未用) + blockColor: '#800080', // 区段封锁颜色 + atcExcisionColor: '#A0522D', // 区段atc切除颜色 + atsExcisionColor: '#A0522D', // 区段ats切除颜色 + timeReleaseColor: '#3F3F3F', // 区段延时释放颜色 + protectiveLockColor: '#FFFF00', // 区段保护锁闭 + protectiveTimeReleaseColor: '#0071C1', // 区段保护延时解锁 + logicalColor: '#FFFF00', // 逻辑区段颜色 (未用) + logicalTextColor: '#C0C0C0' // 逻辑区段名称颜色 (未用) + }, + axle: { + radius: 3, // 计轴 半径 + distance: 5, // 计轴和区段之间的距离 (未用) + color: '#C0C0C0', // 区段计轴颜色 + resetColor: '#00FFFF', // 区段计轴预复位颜色 + Failure: '#E6A23C' // #FFFF00 计轴失效 + }, + speedLimit: { // 限速元素 + width: 1, // 限速线的宽度 + distance: 5, // 限速线距离区段距离 + lineColor: '#FFFF00', // 限速线颜色 + nameShow: false // 名称显示 + }, + separator: { + z: 1, // 分割符层级 + width: 1.5, // 分隔符宽度 + endWidth: 1.5, // 尽头分隔符宽度 + endColor: '#7F7F7F', // 尽头分隔符颜色 + color: '#7F7F7F' // 区段边界符颜色 + } + }; + + this[deviceType.Signal] = { + distance: 0, // 设备距离区段的距离 + post: { + standardColor: '#5578B6', // 灯灯柱颜色 + standardWidth: 1.5 // 灯柱宽度 + }, + text: { + show: true, // 信号机名称显示 + distance: 3, // 文字和灯杆的距离 + isNoRotation: true, // 是否禁止旋转 + isAlignCenter: false, // 信号字体对其方式 + fontSize: 11, // 信号机名称字体大小 + fontWeight: 'bold', // 信号机名称字体粗细 + defaultColor: '#C0C0C0', // 信号灯字体默认色 + blockColor: '#EF0C08', // 信号灯字体锁定颜色 + checkColor: '#00FF00' // 信号字体 + }, + lamp: { + stopWidth: 2, // 禁止线宽度 + borderVariable: true, // 信号灯边框可变 + borderWidth: 0.5, // 信号灯边框线宽度 + borderColor: '#3149C3', // 信号灯边框线颜色 + radiusR: 5, // 信号机宽度 + blockColor: '#EF0C08', // 信号灯锁闭 + grayColor: '#7F7F7F', // 信号灯灰色 + redColor: '#FF0000', // 信号灯红色 + greenColor: '#00FF00', // 信号灯绿色 + yellowColor: '#FFFF00', // 信号灯黄色 + whiteColor: '#FFFFFF', // 信号灯白色 + blueColor: '#0070C0' // 信号灯蓝色 + }, + route: { + direction: false, // 自动进路方向 + offset: { x: 1, y: -2 }, // 自动进路偏移量 + routeColor: '#00FF00' // 自动进路 + }, + auto: { + direction: true, // 自动通过方向 + offset: { x: 4, y: 0}, // 自动通过偏移量 + width: 5, // 自动宽度 + autoRoute: '#00FF00', // 自动进路 + autoTrigger: '#FFFF00', // 自动触发 + manualControl: '#FFFF00', // 人工控制 + outConflict: '#C00808' // 出车冲突 + }, + delay: { + direction: false, // 延时解锁方向 + offset: { x: 0, y: -5}, // 延时解锁偏移量 + fontSize: 9, // 延迟解锁字体大小 + fontColor: '#FF0000', // 延迟解锁颜色 + fontWeight: 'bold' // 字体粗细 + }, + button: { + distance: 5, // 信号灯按钮距离区段的距离 + borderDashColor: '#FFFFFF', // 信号灯按钮边线 + buttonColor: 'darkgreen', // 信号灯按钮颜色 + buttonLightenColor: '#E4EF50' // 信号灯按钮闪烁颜色 + }, + mouseOverStyle: { + borderLineColor: '#FFFFFF', + borderLineDash: [3, 3], + nameBackgroundColor: '#22DFDF', + lampBorderLineColor: '#22DFDF' + } + }; + + this[deviceType.StationStand] = { + common: { // 通用属性 + textFontSize: 8 // 站台默认字体大小 + }, + safetyDoor: { // 屏蔽门 + height: 1.6, // 站台屏蔽门高度 + distance: 9, // 站台和屏蔽门之间的距离 + defaultColor: '#00FF00', // 屏蔽门默认颜色 + splitDoorColor: '#F61107' // 屏蔽门切除颜色 + }, + stand: { // 站台 + headFontSize: 8, // 站台首端字体大小 + spareColor: '#606060', // 站台空闲颜色 + stopColor: '#FEFE00', // 站台列车停站颜色 + jumpStopColor: '#9A99FF', // 站台跳停颜色 + designatedJumpStopColor: 'lightSkyBlue' // 站台指定列车跳停颜色 + }, + standEmergent: { // 紧急关闭 + mergentR: 4, // 站台紧急关闭半径 + offset: {x: 0, y: 0}, // 站台紧急关闭偏移量 + closeColor: '#F61107' // 站台紧急关闭颜色 + }, + reentry: { // 站台折返策略 + position: 0, // 折返方向 + offset: {x: -16, y: 18}, // 折返偏移量 + noHumanColor: '#0F16DA', // 站台无人折返 + autoChangeEndsColor: '#0BF400' // 站台自动换端 + }, + detainCar: { // 扣车 + text: 'H', // 扣车显示内容 + position: 1, // 扣车方向 + offset: {x: -8, y: 13}, // 扣车偏移量 + trainColor: '#E4EF50', // 车站扣车颜色 + centerTrainColor: '#FFFFFF', // 中心扣车颜色 + andCenterTrainColor: '#F61107', // 车站+中心扣车颜色 + detainTrainTextColor: '#E4EF50' // 车站扣除文字颜色 + }, + stopTime: { // 停站时间 + position: 1, // 运行时间方向 + offset: {x: -8, y: 3}, // 运行时间偏移量 + textColor: '#FFFFFF' // 停站时间字体颜色 + }, + level: { // 运行等级 + position: 1, // 运行等级方向 + offset: {x: -8, y: 22}, // 运行等级偏移量 + textColor: '#FFFFFF' // 停站等级字体颜色 + }, + mouseOverStyle: { + borderLineColor: '#FFFFFF', + borderLineDash: [3, 3] + } + }; + + this[deviceType.StationControl] = { + text: { + distance: 2, // 灯和文字之间的距离 + fontSize: 10, // 控制模式字体大小 + fontFormat: 'consolas', // 控制模式字体格式 + fontColor: '#ffffff', // 控制模式字体颜色 + fontWeight: 'normal', // 控制模式字体粗细 + textAlign: 'middle', // 控制模式水平对齐 + textVerticalAlign: 'top' // 控制模式垂直对齐 + }, + lamp: { + count: 3, // 控制模式灯个数 + offset: { x: 20, y: 0 }, // 偏移量 + radiusR: 6, // 控制模式灯的半径 + distance: 36, // 控制模式之间灯之间的距离 + grayColor: '#7F7F7F', // 控制模式灰色 + greenColor: '#00FF00', // 控制模式绿色 + redColor: '#FF0000', // 控制模式红色 + yellowColor: '#FFFF00', // 控制模式黄色 + emergencyControlShow: true, // 紧急站控显示 + centerControlShow: true, // 中控显示 + substationControlShow: true, // 站控按钮显示 + interconnectedControlShow: false // 联锁控显示 + }, + arrow: { + show: false // 控制模式箭头显隐 + }, + mouseOverStyle: { // 鼠标悬浮样式 + fontSize: 10, + fontFormat: 'consolas', + fontColor: '#FFF000', + fontWeight: 'normal', + textAlign: 'middle', + textVerticalAlign: 'top' + } + }; + + this[deviceType.StationCounter] = { + text: { + distance: 2, // 计数器名称和文字的距离 + fontColor: '#FFFFFF', // 计数器字体颜色 + borderColor: '#E4EF50' // 计数器边框颜色 + } + }; + + this[deviceType.StationDelayUnlock] = { + text: { + distance: 3, // 延迟解锁和设备之间的距离 + fontColor: '#FFFFFF', // 延时解锁字体颜色 + borderColor: '#FFFFFF' // 延迟解锁边框颜色 + } + }; + + this[deviceType.Station] = { + // text: { + // show: true // 公里标名称显示 + // }, + kmPostShow: true, // 公里标显示 + kilometerPosition: 'down', // 公里标位置 + fontWeight: 'bold' // 文字错细 + }; + + this[deviceType.Switch] = { + text: { + show: true, // 道岔名称显示 + position: 0, // 区段名称位置 1 上面 -1 下面 0 对称 + offset: {x: -15, y: -10}, // 道岔名称与区段距离 + fontSize: 10, // 字体大小 + fontColor: '#C0C0C0', // 道岔名称颜色 + fontWeight: 'normal', // 字体粗细 + borderColor: '#FE0000', // 道岔边框颜色 + lossColor: '#FFFFFF', // 道岔失去颜色 + locateColor: '#00FF00', // 道岔定位颜色 + inversionColor: '#9C9D09', // 道岔反位颜色 + monolockColor: '#870E10' // 道岔单锁颜色 + }, + core: { + length: 6 // 道岔单边长度 + }, + monolock: { // 道岔单锁配置 + locationColor: '#870E10', // 道岔单锁定位颜色 (红色) + inversionColor: '#870E10', // 道岔单锁反位颜色 (红色) + rectShow: false // 道岔单锁 矩形框是否显示 + }, + block: { // 道岔封锁配置 + nameBorderShow: true, // 道岔名称是否有包围框 显示 + contentRectShow: false // 道岔封锁显示 + }, + mouseOverStyle: { + borderBackgroundColor: '#22DFDF', // 边框背景色 + borderColor: '#fff', // 边框颜色 + textShadowColor: '#22DFDF' // 字体阴影颜色 + } + }; + + this[deviceType.LcControl] = { + text: { + fontSize: 10, // 灯字体大小 + fontWeight: 'normal', // 字体粗细 + distance: 5 // 灯跟文字距离 + }, + lamp: { + radiusR: 6, // 灯大小 + controlColor: '#FFFF00' // 灯颜色 + }, + mouseOverStyle: { + fontSize: 10, + fontFormat: 'consolas', + fontColor: '#FFF000', + fontWeight: 'normal', + textAlign: 'middle', + textVerticalAlign: 'top', + arcColor: '#00FFFF', + textColor: '#000000' + } + }; + + this[deviceType.ZcControl] = { + text: { + fontSize: 10, // 字体大小 + fontWeight: 'normal', // 字体粗细 + distance: 5 // 灯跟文字距离 + }, + lamp: { + radiusR: 6, // 灯大小 + controlColor: '#00FF00' // 灯颜色 + }, + mouseOverStyle: { + fontSize: 10, + fontFormat: 'consolas', + fontColor: '#FFF000', + fontWeight: 'normal', + textAlign: 'middle', + textVerticalAlign: 'top', + arcColor: '#00FFFF', + textColor: '#000000' + } + }; + + this[deviceType.LimitControl] = { + text: { + fontSize: 10, // 字体大小 + fontWeight: 'normal', // 字体粗细 + distance: 5 // 灯跟文字距离 + }, + lamp: { + radiusR: 6, // 灯大小 + controlColor: '#ECE9D8' // 灯颜色 + }, + mouseOverStyle: { + fontSize: 10, + fontFormat: 'consolas', + fontColor: '#FFF000', + fontWeight: 'normal', + textAlign: 'middle', + textVerticalAlign: 'top', + textColor: '#000000', + arcColor: '#00FFFF' + } + }; + + this[deviceType.Line] = { + lineColor: '#FFFFFF' // 线条颜色 + }; + + this[deviceType.TrainWindow] = { + lineColor: '#FFF', // 车次窗颜色 + lineDash: [3, 3], // 车次窗虚线间隔 + lineWidth: 1, // 车次窗线宽 + trainWindowSmooth: 0.01 // 车次窗矩形圆滑程度 + }; + + this[deviceType.Train] = { + trainBody: { + trainBodyLineWidth: 0.1, // 车身line宽 + changeTrainWidth: false, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度 + specialTrainType: [ + { + type: '03', + serviceNumber: 'M0', + nameFormat: 'serviceNumber:groupNumber' + }, + { + type: '02', + nameFormat: 'targetCode:groupNumber' + } + ], // 特殊列车类型需设置显示格式 + lrPadding: 4, // 两边间隔 + upPadding: 4, // 上边距离 + trainBodyFillColor: '#725A64', // 列车车身填充颜色 + trainNameFormat: 'serviceNumber:tripNumber'// 列车显示格式 + }, + hsda: { + lrPaddingHSDA: 3, // HSDA两边间隔 + upPaddingHSDA: 4, // HSDA上边距离 + trainHSDATextFontSize: 9, // 列车HDSA字号 + textHContent: 'H', // textH文本 + textSContent: 'S', // textS文本 + textDContent: 'D', // textD文本 + textAContent: 'A'// textA文本 + }, + trainNumber: { + trainNumberOffset: { x: 0, y: 1}// 目的地码偏移量 + }, + trainServer: { + serviceNumberPrefix: '00', // 服务号(表号)前缀 + defaultServiceNumber: 'AA', // 默认服务号(表号) + trainServerOffset: { x: 4, y: 4}// 列车服务号偏移 + }, + trainTarget: { + tripNumberPrefix: '000', // 车次号前缀 + defaultTripNumber: 'DDD', // 默认车次号2 + trainTargetOffset: { x: 36, y: 4}, // 列车车次号偏移 + trainTargetTextAlign: 'left'// 车次号文字显示位置 + }, + trainTargetNumber: { + trainTargetNumberOffset: {x: 0, y: 0}// 车组号偏移量 + }, + trainHead: { + trainMoreLength: 0, // 列车车头比车身高出的长度,上下相比车体伸出去的边框 + trainHeadTriangleFirst: { x: 7, y: 1}, // 列车车头三角坐标1偏移量 + trainHeadTriangleSecond: { x: 13, y: 10}, // 列车车头三角坐标2偏移量 + trainHeadTriangleThird: { x: 7, y: 19}, // 列车车头三角坐标3偏移量 + trainHeadRectHeight: 20, // 列车车头矩形高度 + trainConntWidth: 3, // 列车竖杠的宽度 + trainHeadFillColor: '#000000'// 列车车头矩形填充颜色 + }, + common: { + trainHeight: 20, // 列车高度 + trainHeadDistance: 4, // 列车和车头之间的间距 + trainWidth: 40, // 列车长度 + trainTextFontSize: 12, // 列车字号 + fontFamily: 'consolas', // 默认字体 族类 + haveTextHSDA: true, // 是否需创建textHSDA对象 + haveArrowText: true, // 是否需创建arrowText对象 + haveTrainBorder: false, // 是否需创建trainBorder对象 + textOffset: 4, // 字体偏移(用以控制字体据车头的距离) + trainWidthMoreText: 8, // 计算列车长度时--列车长比text多出尺寸 + useSelfFormat: true, // 使用配置项的nameFormat + useSelfText: true // 使用配置项的字体大小 + }, + trainStatusStyle: { + destinationStatus: [ + {status: '01', showColor: '#FFFFFF'}, + {status: '02', showColor: '#00FF00'}, + {status: '03', showColor: '#A0522D'}, + {status: '04', showColor: '#FFFF00'} + ], // 目的地状态 01准点 02早点 03晚点 04头码车 + defaultDestinationColor: '#FFFFFF', // 默认目的地状态显示颜色 + destinationStatusSetText: 'trainTarget', // 目的地状态设置的对应哪个text的颜色 + directionType: [ + { + type: '01', + lineLShow: true, + lineRShow: true, + arrowLShow: false, + arrowRShow: false + }, + { + type: '02', + lineLShow: false, + lineRShow: true, + arrowLShow: false, + arrowRShow: true + }, + { + type: '03', + lineLShow: true, + lineRShow: false, + arrowLShow: true, + arrowRShow: false + } + ], // 列车运行方向状态类型对应车头显示状态 01未知方向 02从左往右 上行 03从右往左 下行 + directionStopType: [ + {type: '01', lineLShow: false, lineRShow: false}, + {type: '02', lineLShow: false, lineRShow: true}, + {type: '03', lineLShow: true, lineRShow: false} + ], // 列车停止方向类型对应车头显示状态 01未知方向 02从左往右 上行 03从右往左 下行 + runModeStatus: [ + { + status: '01', + trainLColor: '#FFFFFF', + trainRColor: '#FFFFFF' + }, + { + status: '02', + trainLColor: '#00FF00', + trainRColor: '#00FF00' + }, + { + status: '03', + trainLColor: '#FFFF00', + trainRColor: '#FFFF00'}, + { + status: '04', + trainLColor: '#A0522D', + trainRColor: '#A0522D' + }, + { + status: '05', + trainLColor: '#A0522D', + trainRColor: '#A0522D' + } + ], // 列车运行模式对应车头颜色 01未知 02 ATO自动驾驶模式AM 03 ATP监控下的人工驾驶模式CM 04 限制人工驾驶模式RM 05 非限制人工驾驶模式RM + runControlStatus: [ + {status: '01', hShow: false, sShow: false}, + {status: '02', hShow: true, sShow: false}, + {status: '03', hShow: false, sShow: true} + ], // 设置运行控制状态类型 01正常 02扣车 03停跳 + doorStatus: [ + {status: '01', dShow: false}, + {status: '02', dShow: true} + ], // 设置车门状态类型 01关门 02开门 + communicationStatus: [ + {status: '01', trainColor: '#725A64'}, + {status: '02', trainColor: '#C0C0C0'} + ], // 设置通信状态 01正常 02故障 + alarmStatus: [ + {status: '01', aShow: false}, + {status: '02', aShow: true} + ], // 设置报警状态 01不报警 02报警 + serverNoType: [ + {type: '01', showColor: '#FFFFFF'}, + {type: '02', showColor: '#FFF000'} + ], // 服务号状态类型 01显示服务号 计划车 02显示车组号: 头码车与人工车 + defaultServerNoColor: '#FFFFFF' // 默认服务号状态显示颜色 + } + }; } } diff --git a/src/jmap/shape/Link/EMouse.js b/src/jmap/shape/Link/EMouse.js new file mode 100644 index 000000000..9a2e9925b --- /dev/null +++ b/src/jmap/shape/Link/EMouse.js @@ -0,0 +1,39 @@ +import Group from 'zrender/src/container/Group'; +import Rect from 'zrender/src/graphic/shape/Rect'; +// import Vue from 'vue'; +// import store from '@/store'; + +class EMouse extends Group { + constructor(device) { + super(); + this.device = device; + this.create(); + } + create() { + if (this.device.link) { + const rect = this.device.link.getBoundingRect(); + this.lineBorder = new Rect({ + zlevel: this.device.zlevel, + z: this.device.z - 1, + shape: rect, + style: { + lineDash: [3, 3], + stroke: '#fff', + fill: this.device.style.transparentColor + } + }); + + this.add(this.lineBorder); + this.lineBorder.hide(); + } + } + + mouseover(e) { + this.lineBorder && this.lineBorder.show(); + } + + mouseout(e) { + this.lineBorder && this.lineBorder.hide(); + } +} +export default EMouse; diff --git a/src/jmap/shape/Link/index.js b/src/jmap/shape/Link/index.js index b2962e75a..6ab3339e9 100644 --- a/src/jmap/shape/Link/index.js +++ b/src/jmap/shape/Link/index.js @@ -1,5 +1,6 @@ import Line from 'zrender/src/graphic/shape/Line'; import Group from 'zrender/src/container/Group'; +import EMouse from './EMouse'; class Link extends Group { constructor(model, style) { @@ -20,7 +21,7 @@ class Link extends Group { if (model.lp.x !== model.rp.x && model.lp.y !== model.rp.y) { textPosition = model.lp.y > model.rp.y ? 'insideLeft' : 'insideRight'; } - + // 标准link this.link = new Line({ zlevel: this.zlevel, z: 0, @@ -43,6 +44,14 @@ class Link extends Group { } }); this.add(this.link); + const path = window.location.href; + if (path.includes('/map/draw')) { + // 鼠标事件 + this.mouseEvent = new EMouse(this); + this.add(this.mouseEvent); + this.on('mouseout', (e) => { this.mouseEvent.mouseout(e); }); + this.on('mouseover', (e) => { this.mouseEvent.mouseover(e); }); + } } setState(model) { diff --git a/src/utils/baseUrl.js b/src/utils/baseUrl.js index 72be3b2f1..4050e7e22 100644 --- a/src/utils/baseUrl.js +++ b/src/utils/baseUrl.js @@ -4,8 +4,8 @@ export function getBaseUrl() { if (process.env.NODE_ENV === 'development') { // BASE_API = 'https://joylink.club/jlcloud'; // BASE_API = 'https://test.joylink.club/jlcloud'; - BASE_API = 'http://192.168.3.5:9000'; // 袁琪 - // BASE_API = 'http://192.168.3.6:9000'; // 旭强 + // BASE_API = 'http://192.168.3.5:9000'; // 袁琪 + BASE_API = 'http://192.168.3.6:9000'; // 旭强 // BASE_API = 'http://192.168.3.4:9000' // 琰培 } else { BASE_API = process.env.VUE_APP_BASE_API; diff --git a/src/utils/index.js b/src/utils/index.js index d71da55ad..81c5ec673 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -127,3 +127,19 @@ export function getCountTime(data) { return -1; } } + +// 对象 深拷贝 +export function deepClone(item) { + const target = item.constructor === Array ? [] : {}; // 判断复制的目标是数组还是对象 + for (const keys in item) { + if (item.hasOwnProperty(keys) && keys != 'instance') { // instance 对面不拷贝 + if (item[keys] && typeof item[keys] === 'object') { // 如果值是对象,就递归一下 + target[keys] = item[keys].constructor === Array ? [] : {}; + target[keys] = deepClone(item[keys]); + } else { + target[keys] = item[keys]; + } + } + } + return target; +} diff --git a/src/views/demonstration/detail/index.vue b/src/views/demonstration/detail/index.vue index 86e54fa16..28b3d5762 100644 --- a/src/views/demonstration/detail/index.vue +++ b/src/views/demonstration/detail/index.vue @@ -18,7 +18,8 @@ style="padding: 5px" :style="{ height: height-160 +'px' }" > - +
+

{{ $t('demonstration.productDescription') }} {{ courseModel.remarks }} @@ -27,7 +28,8 @@ {{ $t('global.permissionList') }}

- + +
{{ $t('global.buy') }} diff --git a/src/views/display/demon/addQuest.vue b/src/views/display/demon/addQuest.vue index a52c5d7d6..1b4280a1a 100644 --- a/src/views/display/demon/addQuest.vue +++ b/src/views/display/demon/addQuest.vue @@ -50,8 +50,6 @@