From 909164aa1859fdf25330eb130bc90b8bd22e540b Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 24 三月 2026 12:00:51 +0800
Subject: [PATCH] #

---
 src/main/webapp/static/js/stationPathPolicy/stationPathPolicy.js |   42 +++++++++++++++++++++++++++++-------------
 1 files changed, 29 insertions(+), 13 deletions(-)

diff --git a/src/main/webapp/static/js/stationPathPolicy/stationPathPolicy.js b/src/main/webapp/static/js/stationPathPolicy/stationPathPolicy.js
index dbd3182..89632e9 100644
--- a/src/main/webapp/static/js/stationPathPolicy/stationPathPolicy.js
+++ b/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
         },

--
Gitblit v1.9.1