diff --git a/src/api/ibp.js b/src/api/ibp.js index 24f29775e..a80778999 100644 --- a/src/api/ibp.js +++ b/src/api/ibp.js @@ -67,3 +67,19 @@ export function getIbpInfoByStation(mapId, stationCode) { method: 'get' }); } +// 获取IBP盘数据 +export function getIbpList(params) { + return request({ + url: `/api/ibp/list`, + method: 'get', + params: params + }); +} +// 复制ibp盘数据 +export function copyIbpData(data) { + return request({ + url: `/api/draftIbp/copy`, + method: 'post', + data: data + }); +} diff --git a/src/assets/icon/favicon_nty.png b/src/assets/icon/favicon_nty.png new file mode 100644 index 000000000..9b397c8bf Binary files /dev/null and b/src/assets/icon/favicon_nty.png differ diff --git a/src/ibp/mouseController.js b/src/ibp/mouseController.js index 4527834d4..977a90af9 100644 --- a/src/ibp/mouseController.js +++ b/src/ibp/mouseController.js @@ -130,7 +130,7 @@ class MouseController extends Eventful { } mouseup(e) { - if (eventTool.notLeftMouse(e) || !this.eventTarget ) { + if (!this.eventTarget ) { return; } if (this.deviceList.length) { @@ -268,7 +268,7 @@ class MouseController extends Eventful { this.trigger(this.events.__Pan, { dx, dy, oldX, oldY, newX: this._x, newY: this._y }); } } - if (this.eventTarget && this.eventTarget.grouper) { + if (this.eventTarget && this.eventTarget.grouper && this.boundingRect) { const x = e.event.x + this.$ibp.$options.offsetX; const y = e.event.y + this.$ibp.$options.offsetY; if (!(x <= this.boundingRect.x2 && x >= this.boundingRect.x1 && y <= this.boundingRect.y2 && y >= this.boundingRect.y1)) { diff --git a/src/ibp/options.js b/src/ibp/options.js index 77ba4576e..d0cb53ac8 100644 --- a/src/ibp/options.js +++ b/src/ibp/options.js @@ -62,12 +62,11 @@ class Options { } this.scaleRate = this.scaleList[this.scaleIndex]; } - if (Number.isFinite(payload.scaleRate)) { const idx = this.scaleList.indexOf(payload.scaleRate); - if (idx < 0) { - return; - } + // if (idx < 0) { + // return; + // } this.scaleIndex = idx; this.scaleRate = payload.scaleRate; } @@ -83,7 +82,6 @@ class Options { if (payload.zoomOnMouseWheel === true || payload.zoomOnMouseWheel === false) { this.zoomOnMouseWheel = payload.zoomOnMouseWheel; } - if (this.trigger instanceof Function) { this.trigger(this); } } diff --git a/src/ibp/shape/key.js b/src/ibp/shape/key.js index a3b86bdb7..ff40e26dc 100644 --- a/src/ibp/shape/key.js +++ b/src/ibp/shape/key.js @@ -84,7 +84,7 @@ export default class key extends Group { x: model.width / 2, y: model.width / 361 * 336 + 12, fontWeight: 600, - fontSize: 10, + fontSize: model.textFontSize || 10, fontFamily: model.fontFamily, text: model.bottomText, textStrokeWidth: 0, @@ -102,7 +102,7 @@ export default class key extends Group { x: model.width + 14, y: model.width / 361 * 336 / 2 - 4, fontWeight: 600, - fontSize: 10, + fontSize: model.textFontSize || 10, fontFamily: model.fontFamily, text: model.topText, textStrokeWidth: 0, diff --git a/src/ibp/transformHandle.js b/src/ibp/transformHandle.js index 3ff3ab22a..8518e74db 100644 --- a/src/ibp/transformHandle.js +++ b/src/ibp/transformHandle.js @@ -9,7 +9,7 @@ class TransformHandle { this.rect = { x: 0, y: 0, width: 0, height: 0 }; - this.transform = createTransform({ scaleRate: 1, offsetX: 0, offsetY: 0 }); + this.transform = createTransform({ scaleRate: painter.$ibp.$options.scaleRate, offsetX: 0, offsetY: 0 }); } checkVisible(view) { @@ -58,13 +58,12 @@ class TransformHandle { if (canvasSize.y - opts.offsetY > 0) { opts.offsetY = -elRect.y; } - - if (elRect.x + canvasSize.width < zrRect.width) { - opts.offsetX -= zrRect.width - (elRect.x + canvasSize.width); + if (elRect.x + canvasSize.width * this.$painter.$ibp.$options.scaleRate < zrRect.width) { + opts.offsetX -= zrRect.width - (elRect.x + canvasSize.width * this.$painter.$ibp.$options.scaleRate); } - if (elRect.y + canvasSize.height < zrRect.height) { - opts.offsetY -= zrRect.height - (elRect.y + canvasSize.height); + if (elRect.y + canvasSize.height * this.$painter.$ibp.$options.scaleRate < zrRect.height) { + opts.offsetY -= zrRect.height - (elRect.y + canvasSize.height * this.$painter.$ibp.$options.scaleRate); } } this.transform = createTransform(opts); diff --git a/src/scripts/ProjectConfig.js b/src/scripts/ProjectConfig.js index 97f8d6868..3ffaf9b17 100644 --- a/src/scripts/ProjectConfig.js +++ b/src/scripts/ProjectConfig.js @@ -11,6 +11,7 @@ import Link_Jyd from '@/assets/icon/link_jyd.png'; import FaviconTky from '@/assets/icon/favicon_tky.png'; import FaviconBxkc from '@/assets/icon/favicon_bxkc.png'; import FaviconCrsc from '@/assets/icon/favicon_crsc.png'; +import FaviconNty from '@/assets/icon/favicon_nty.png'; import Link_Bxkc from '@/assets/icon/link_bxkc.png'; import Link_Crsc from '@/assets/icon/link_crsc.png'; import Link_Hls from '@/assets/icon/link_hls.png'; @@ -28,6 +29,15 @@ export const loginInfo = { navigationMarginLeft: '60px', systemType: '013' }, + nty: { + title: '南京铁道职业技术学院城市轨道交通实训平台', + loginPath:'/login?project=nty', + loginParam: 'NTY', + titleDistance: '-150px', + navigationLogoWidth: '40px', + navigationMarginLeft: '60px', + systemType: '011' + }, login: { title: LangStorage.getLang() == 'en' ? ' Urban Rail Transit Practical Training Platform' : '城市轨道交通实训平台', loginPath: '/login', @@ -71,6 +81,15 @@ export const loginInfo = { navigationMarginLeft: '60px', systemType: '013' }, + designnty: { + title: '南京铁道职业技术学院城市轨道交通设计平台', + loginPath:'/design/login?project=nty', + loginParam: 'NTY', + titleDistance: '-150px', + navigationLogoWidth: '40px', + navigationMarginLeft: '60px', + systemType: '011' + }, gzb: { title: '贵州装备制造职业学院城市轨道交通实训平台', loginPath:'/login?project=gzb', @@ -331,7 +350,9 @@ export const ProjectIcon = { hls: FaviconHls, designhls: FaviconHls, drts: Favicon, - designdrts: Favicon + designdrts: Favicon, + nty: FaviconNty, + designnty: FaviconNty }; export const ProjectCode = { @@ -344,15 +365,17 @@ export const ProjectCode = { xadt: 'XADT', designxadt: 'XADT', drts: 'DRTS', - designdrts: 'DRTS' + designdrts: 'DRTS', + nty: 'NTY', + designnty: 'NTY' }; export const BottomColumnOnlyConInfo = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'hyd', 'designhyd']; // 底部栏仅展示公司信息不展示备案号 -export const GetMapListByProjectList = ['xty', 'designxty', 'gzb', 'designgzb', 'xadt', 'designxadt', 'heb', 'designheb', 'designdrts', 'drts']; // 实训设计平台通过项目code获取地图列表的项目 +export const GetMapListByProjectList = ['xty', 'designxty', 'gzb', 'designgzb', 'xadt', 'designxadt', 'heb', 'designheb', 'designdrts', 'drts', 'nty', 'designnty']; // 实训设计平台通过项目code获取地图列表的项目 export const CaseHideProjectList = ['heb', 'designheb']; // 案例展示隐藏的项目 export const VersionBaseNoShow = ['heb', 'designheb', 'hls', 'designhls', 'drts', 'hyd', 'designhyd']; // 登录页右下角版本开发基于不展示 export const MainBodyNoShow = ['heb', 'designheb', 'jyd', 'designjyd', 'tky', 'designtky', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'hyd', 'designhyd']; // 登录页右下角主体不展示 export const GenerateRouteProjectList = ['jsxt', 'refereeJsxt'];// 需要在公共路由中生成登录页面的项目 -export const ProjectLoginStyleList = ['jsxt', 'refereeJsxt', 'gzb', 'designgzb', 'xty', 'designxty', 'xadt', 'designxadt', 'tky', 'designtky', 'jyd', 'designjyd', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'drts', 'hyd', 'designhyd']; // 登录页样式 +export const ProjectLoginStyleList = ['jsxt', 'refereeJsxt', 'gzb', 'designgzb', 'xty', 'designxty', 'xadt', 'designxadt', 'tky', 'designtky', 'jyd', 'designjyd', 'bxkc', 'designbxkc', 'crsc', 'designcrsc', 'hls', 'designhls', 'drts', 'hyd', 'designhyd', 'nty', 'designnty']; // 登录页样式 export const NoQrcodeList = ['heb', 'designheb']; export const goOtherPlatformMenu = { // 导航栏快速切换平台 login: '/design/login', @@ -376,12 +399,15 @@ export const goOtherPlatformMenu = { // 导航栏快速切换平台 hls: '/design/login?project=hls', designhls: '/login?project=hls', hyd: '/design/login?project=hyd', - designhyd: '/login?project=hyd' + designhyd: '/login?project=hyd', + nty: '/design/login?project=nty', + designnty: '/login?project=nty' }; export const ProjectList = [ {value:'xty', label:'西铁院'}, {value: 'gzb', label: '贵州装备'}, {value: 'xadt', label: '西安地铁'}, {value: 'heb', label: '哈尔滨'}, - {value: 'drts', label: '调度大赛'} + {value: 'drts', label: '调度大赛'}, + {value: 'nty', label: '南铁院'} ]; diff --git a/src/views/ibp/copy.vue b/src/views/ibp/copy.vue new file mode 100644 index 000000000..b474d5a36 --- /dev/null +++ b/src/views/ibp/copy.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/src/views/ibp/home.vue b/src/views/ibp/home.vue index 2f26539ea..136d93061 100644 --- a/src/views/ibp/home.vue +++ b/src/views/ibp/home.vue @@ -2,11 +2,13 @@ @@ -16,11 +18,13 @@ import { getStationList } from '@/api/runplan'; // import ConstConfig from '@/scripts/ConstConfig'; import { postIbpPublish, getIbpAllList, deleteIbpInfo } from '@/api/ibp'; import CreateIbp from './create'; +import CopyIbp from './copy'; export default { name: 'ScriptDraft', components: { - CreateIbp + CreateIbp, + CopyIbp }, data() { return { @@ -170,6 +174,9 @@ export default { this.$messageBox('删除失败'); }); }).catch(() => { }); + }, + createByPublish() { + this.$refs.copyIbp.doShow(null); } } }; diff --git a/src/views/ibp/ibpDraw/ibpOperate/ibpKey.vue b/src/views/ibp/ibpDraw/ibpOperate/ibpKey.vue index ea048d038..c66d5572f 100644 --- a/src/views/ibp/ibpDraw/ibpOperate/ibpKey.vue +++ b/src/views/ibp/ibpDraw/ibpOperate/ibpKey.vue @@ -27,6 +27,9 @@ + + +