#
Junjie
5 天以前 909164aa1859fdf25330eb130bc90b8bd22e540b
src/main/webapp/static/js/stationPathPolicy/stationPathPolicy.js
@@ -11,8 +11,12 @@
        s1MaxLenRatio: 1.15,
        s1MaxTurnDiff: 1,
        s2BusyWeight: 2.0,
        s2QueueWeight: 2.5,
        s2WaitWeight: 1.5,
        s2DeadlockWeight: 8.0,
        s2RunBlockWeight: 10.0,
        s2LoopLoadWeight: 12.0,
        circleMaxLoadLimit: 80.0,
        stationPathLenWeightPercent: 50,
        stationPathCongWeightPercent: 50,
        stationPathPassOtherOutStationWeightPercent: 100,
@@ -783,7 +787,7 @@
            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
@@ -829,7 +833,7 @@
            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
@@ -858,19 +862,18 @@
            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
@@ -1154,9 +1157,11 @@
        },
        normalizeProfile: function (raw) {
            var config = Object.assign({}, this.defaultProfileConfig(), this.parseJson(raw.configJson) || raw.config || {})
            config.circleMaxLoadLimit = this.toNumberSafe(config.circleMaxLoadLimit)
            config.stationPathLenWeightPercent = this.toNumberSafe(config.stationPathLenWeightPercent)
            config.stationPathCongWeightPercent = this.toNumberSafe(config.stationPathCongWeightPercent)
            config.stationPathPassOtherOutStationWeightPercent = this.toNumberSafe(config.stationPathPassOtherOutStationWeightPercent)
            config.circleMaxLoadLimit = config.circleMaxLoadLimit == null ? 80 : config.circleMaxLoadLimit
            config.stationPathLenWeightPercent = config.stationPathLenWeightPercent == null ? 50 : config.stationPathLenWeightPercent
            config.stationPathCongWeightPercent = config.stationPathCongWeightPercent == null ? 50 : config.stationPathCongWeightPercent
            config.stationPathPassOtherOutStationWeightPercent = config.stationPathPassOtherOutStationWeightPercent == null ? 100 : config.stationPathPassOtherOutStationWeightPercent
@@ -1207,6 +1212,7 @@
        },
        sanitizeProfileForSave: function (item) {
            var config = Object.assign({}, item.config || {})
            config.circleMaxLoadLimit = this.toNumberSafe(config.circleMaxLoadLimit) == null ? 80 : this.toNumberSafe(config.circleMaxLoadLimit)
            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)
@@ -1304,6 +1310,16 @@
            var num = Number(value)
            return isNaN(num) ? null : num
        },
        displayLoadLimitPercent: function (value) {
            var num = this.toNumberSafe(value)
            if (num == null) {
                num = 80
            }
            if (num <= 1) {
                num = num * 100
            }
            return num.toFixed(1) + '%'
        },
        notNull: function (value) {
            return value != null
        },