diff --git a/frontend/src/components/FinalMaskForm.vue b/frontend/src/components/FinalMaskForm.vue new file mode 100644 index 00000000..23856b90 --- /dev/null +++ b/frontend/src/components/FinalMaskForm.vue @@ -0,0 +1,544 @@ + + + diff --git a/frontend/src/pages/inbounds/InboundFormModal.vue b/frontend/src/pages/inbounds/InboundFormModal.vue index e8f54af6..fb38f197 100644 --- a/frontend/src/pages/inbounds/InboundFormModal.vue +++ b/frontend/src/pages/inbounds/InboundFormModal.vue @@ -29,6 +29,7 @@ import { MODE_OPTION, } from '@/models/inbound.js'; import { DBInbound } from '@/models/dbinbound.js'; +import FinalMaskForm from '@/components/FinalMaskForm.vue'; const { t } = useI18n(); @@ -1509,6 +1510,9 @@ watch( + + + @@ -1557,7 +1561,7 @@ watch( diff --git a/frontend/src/pages/xray/OutboundFormModal.vue b/frontend/src/pages/xray/OutboundFormModal.vue index bd4f3eb2..080b9400 100644 --- a/frontend/src/pages/xray/OutboundFormModal.vue +++ b/frontend/src/pages/xray/OutboundFormModal.vue @@ -20,6 +20,7 @@ import { MODE_OPTION, DNSRuleActions, } from '@/models/outbound.js'; +import FinalMaskForm from '@/components/FinalMaskForm.vue'; const { t } = useI18n(); @@ -27,7 +28,7 @@ const { t } = useI18n(); // web/html/form/outbound.html. Covers every protocol + transport // combination the legacy panel exposes; the JSON tab still lets // power-users hand-edit fields the structured form doesn't surface -// (deep finalmask/quic tuning, reverse-sniffing, etc.). +// (reverse-sniffing, exotic outbound DNS rules, etc.). const props = defineProps({ open: { type: Boolean, default: false }, @@ -740,6 +741,9 @@ function regenerateWgKeys() { + + +