diff --git a/web/html/xui/component/sortableTable.html b/web/html/xui/component/sortableTable.html
new file mode 100644
index 00000000..010d8011
--- /dev/null
+++ b/web/html/xui/component/sortableTable.html
@@ -0,0 +1,218 @@
+{{define "component/sortableTableTrigger"}}
+
+{{end}}
+
+{{define "component/sortableTable"}}
+
+
+
+{{end}}
\ No newline at end of file
diff --git a/web/html/xui/xray.html b/web/html/xui/xray.html
index 5ede3633..5afa77c8 100644
--- a/web/html/xui/xray.html
+++ b/web/html/xui/xray.html
@@ -290,15 +290,19 @@
{{ i18n "pages.xray.rules.add" }}
-
+ :style="isMobile ? 'padding: 5px 0' : 'margin-top: 10px;'"
+ v-on:onSort="replaceRule">
- [[ index+1 ]]
+
+
+ [[ index+1 ]]
+
e.preventDefault()" type="more" style="font-size: 16px; text-decoration: bold;">
@@ -404,7 +408,7 @@
-
+
@@ -530,7 +534,7 @@
[[ sel ]]
-
+
@@ -630,6 +634,7 @@
{{template "js" .}}
{{template "component/themeSwitcher" .}}
+{{template "component/sortableTable" .}}
{{template "component/setting"}}
{{template "ruleModal"}}
{{template "outModal"}}
@@ -1269,7 +1274,7 @@
newRules = newTemplateSettings.routing.rules.filter(r => r.outboundTag != oldData.tag);
}
newTemplateSettings.routing.rules = newRules;
-
+
this.templateSettings = newTemplateSettings;
},
addDNSServer(){