| | |
| | | s1MaxTurnDiff: 1, |
| | | s2BusyWeight: 2.0, |
| | | s2RunBlockWeight: 10.0, |
| | | s2LoopLoadWeight: 12.0 |
| | | s2LoopLoadWeight: 12.0, |
| | | stationPathLenWeightPercent: 50, |
| | | stationPathCongWeightPercent: 50, |
| | | stationPathPassOtherOutStationWeightPercent: 100, |
| | | stationPathPassOtherOutStationForceSkip: false |
| | | } |
| | | } |
| | | |
| | |
| | | return { |
| | | loading: false, |
| | | saving: false, |
| | | scoreMode: 'legacy', |
| | | scoreMode: 'twoStage', |
| | | defaultProfileCode: 'default', |
| | | profiles: [], |
| | | rules: [], |
| | |
| | | return |
| | | } |
| | | var data = res.data || {} |
| | | that.scoreMode = data.scoreMode || 'legacy' |
| | | that.scoreMode = data.scoreMode || 'twoStage' |
| | | that.defaultProfileCode = data.defaultProfileCode || 'default' |
| | | that.showRuleJson = false |
| | | that.showAllPathTags = false |
| | |
| | | this.$message.warning('默认模板编码没有对应模板') |
| | | return |
| | | } |
| | | var defaultProfile = null |
| | | for (var i = 0; i < this.profiles.length; i++) { |
| | | if (this.profiles[i].profileCode === this.defaultProfileCode) { |
| | | defaultProfile = this.profiles[i] |
| | | break |
| | | } |
| | | } |
| | | if (!defaultProfile || Number(defaultProfile.status) !== 1) { |
| | | this.$message.warning('默认模板必须启用') |
| | | return |
| | | } |
| | | var payload = { |
| | | scoreMode: this.scoreMode, |
| | | defaultProfileCode: this.defaultProfileCode, |
| | | profiles: this.profiles.map(this.sanitizeProfileForSave), |
| | | rules: this.rules.map(this.sanitizeRuleForSave) |
| | |
| | | var scaleX = usableWidth / contentWidth |
| | | var scaleY = usableHeight / contentHeight |
| | | var scale = Math.min(scaleX, scaleY, 1.7) |
| | | var zoomPercent = Math.max(60, Math.min(220, Math.floor(scale * 100))) |
| | | var zoomPercent = Math.max(1, Math.min(220, Math.floor(scale * 100))) |
| | | var centerX = (bounds.minX + bounds.maxX) / 2 |
| | | var centerY = (bounds.minY + bounds.maxY) / 2 |
| | | this.mapZoomPercent = zoomPercent |
| | |
| | | if (zoomPercent == null) { |
| | | return |
| | | } |
| | | zoomPercent = Math.max(60, Math.min(220, zoomPercent)) |
| | | zoomPercent = Math.max(1, Math.min(220, zoomPercent)) |
| | | if (!wrap || !this.mapContext.width || !this.mapContext.height) { |
| | | this.mapZoomPercent = zoomPercent |
| | | return |
| | |
| | | if (!this.mapContext.nodes.length) { |
| | | return |
| | | } |
| | | if (event.ctrlKey || event.metaKey) { |
| | | var wrap = this.$refs.mapCanvasWrap |
| | | if (!wrap) { |
| | | return |
| | | } |
| | | var rect = wrap.getBoundingClientRect() |
| | | var delta = event.deltaY < 0 ? 10 : -10 |
| | | var nextPercent = Math.max(60, Math.min(220, this.mapZoomPercent + delta)) |
| | | this.setMapZoomAroundPoint(nextPercent, event.clientX - rect.left, event.clientY - rect.top) |
| | | var wrap = this.$refs.mapCanvasWrap |
| | | if (!wrap) { |
| | | return |
| | | } |
| | | this.mapPanX -= event.deltaX |
| | | this.mapPanY -= event.deltaY |
| | | var wheelDelta = Math.abs(event.deltaY) >= Math.abs(event.deltaX) ? event.deltaY : event.deltaX |
| | | if (!wheelDelta) { |
| | | return |
| | | } |
| | | var rect = wrap.getBoundingClientRect() |
| | | var delta = wheelDelta < 0 ? 10 : -10 |
| | | var nextPercent = Math.max(1, Math.min(220, this.mapZoomPercent + delta)) |
| | | this.setMapZoomAroundPoint(nextPercent, event.clientX - rect.left, event.clientY - rect.top) |
| | | }, |
| | | beginMapDrag: function (event) { |
| | | var wrap = this.$refs.mapCanvasWrap |
| | |
| | | }, |
| | | normalizeProfile: function (raw) { |
| | | var config = Object.assign({}, this.defaultProfileConfig(), this.parseJson(raw.configJson) || raw.config || {}) |
| | | config.stationPathLenWeightPercent = this.toNumberSafe(config.stationPathLenWeightPercent) |
| | | config.stationPathCongWeightPercent = this.toNumberSafe(config.stationPathCongWeightPercent) |
| | | config.stationPathPassOtherOutStationWeightPercent = this.toNumberSafe(config.stationPathPassOtherOutStationWeightPercent) |
| | | config.stationPathLenWeightPercent = config.stationPathLenWeightPercent == null ? 50 : config.stationPathLenWeightPercent |
| | | config.stationPathCongWeightPercent = config.stationPathCongWeightPercent == null ? 50 : config.stationPathCongWeightPercent |
| | | config.stationPathPassOtherOutStationWeightPercent = config.stationPathPassOtherOutStationWeightPercent == null ? 100 : config.stationPathPassOtherOutStationWeightPercent |
| | | config.stationPathPassOtherOutStationForceSkip = !!config.stationPathPassOtherOutStationForceSkip |
| | | return { |
| | | id: raw.id || null, |
| | | profileCode: raw.profileCode || '', |
| | |
| | | return JSON.parse(JSON.stringify(model)) |
| | | }, |
| | | sanitizeProfileForSave: function (item) { |
| | | var config = Object.assign({}, item.config || {}) |
| | | config.stationPathLenWeightPercent = this.toNumberSafe(config.stationPathLenWeightPercent) == null ? 50 : this.toNumberSafe(config.stationPathLenWeightPercent) |
| | | config.stationPathCongWeightPercent = this.toNumberSafe(config.stationPathCongWeightPercent) == null ? 50 : this.toNumberSafe(config.stationPathCongWeightPercent) |
| | | config.stationPathPassOtherOutStationWeightPercent = this.toNumberSafe(config.stationPathPassOtherOutStationWeightPercent) == null ? 100 : this.toNumberSafe(config.stationPathPassOtherOutStationWeightPercent) |
| | | config.stationPathPassOtherOutStationForceSkip = !!config.stationPathPassOtherOutStationForceSkip |
| | | return { |
| | | id: item.id || null, |
| | | profileCode: item.profileCode, |
| | |
| | | priority: Number(item.priority || 100), |
| | | status: Number(item.status || 0), |
| | | memo: item.memo || '', |
| | | config: Object.assign({}, item.config || {}) |
| | | config: config |
| | | } |
| | | }, |
| | | sanitizeRuleForSave: function (item) { |