json.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. {{define "settings/panel/subscription/json"}}
  2. <a-collapse default-active-key="1">
  3. <a-collapse-panel key="1" header='{{ i18n "pages.xray.generalConfigs"}}'>
  4. <a-setting-list-item paddings="small">
  5. <template #title>{{ i18n "pages.settings.subPath"}}</template>
  6. <template #description>{{ i18n "pages.settings.subPathDesc"}}</template>
  7. <template #control>
  8. <a-input
  9. type="text"
  10. v-model="allSetting.subJsonPath"
  11. @input="allSetting.subJsonPath = ((typeof $event === 'string' ? $event : ($event && $event.target ? $event.target.value : '')) || '').replace(/[:*]/g, '')"
  12. @blur="allSetting.subJsonPath = (p => { p = p || '/'; if (!p.startsWith('/')) p='/' + p; if (!p.endsWith('/')) p += '/'; return p.replace(/\/+/g,'/'); })(allSetting.subJsonPath)"
  13. placeholder="/json/"
  14. ></a-input>
  15. </template>
  16. </a-setting-list-item>
  17. <a-setting-list-item paddings="small">
  18. <template #title>{{ i18n "pages.settings.subURI"}}</template>
  19. <template #description>{{ i18n "pages.settings.subURIDesc"}}</template>
  20. <template #control>
  21. <a-input type="text" placeholder="(http|https)://domain[:port]/path/"
  22. v-model="allSetting.subJsonURI"></a-input>
  23. </template>
  24. </a-setting-list-item>
  25. </a-collapse-panel>
  26. <a-collapse-panel key="2" header='{{ i18n "pages.settings.fragment"}}'>
  27. <a-setting-list-item paddings="small">
  28. <template #title>{{ i18n "pages.settings.fragment"}}</template>
  29. <template #description>{{ i18n "pages.settings.fragmentDesc"}}</template>
  30. <template #control>
  31. <a-switch v-model="fragment"></a-switch>
  32. </template>
  33. </a-setting-list-item>
  34. <a-list-item v-if="fragment" :style="{ padding: '10px 20px' }">
  35. <a-collapse>
  36. <a-collapse-panel header='{{ i18n "pages.settings.fragmentSett"}}' v-if="fragment">
  37. <a-setting-list-item paddings="small">
  38. <template #title>Packets</template>
  39. <template #control>
  40. <a-input type="text" v-model="fragmentPackets"
  41. placeholder="1-1 | 1-3 | tlshello | ..."></a-input>
  42. </template>
  43. </a-setting-list-item>
  44. <a-setting-list-item paddings="small">
  45. <template #title>Length</template>
  46. <template #control>
  47. <a-input type="text" v-model="fragmentLength" placeholder="100-200"></a-input>
  48. </template>
  49. </a-setting-list-item>
  50. <a-setting-list-item paddings="small">
  51. <template #title>Interval</template>
  52. <template #control>
  53. <a-input type="text" v-model="fragmentInterval" placeholder="10-20"></a-input>
  54. </template>
  55. </a-setting-list-item>
  56. </a-collapse-panel>
  57. </a-collapse>
  58. </a-list-item>
  59. </a-collapse-panel>
  60. <a-collapse-panel key="3" header="Noises">
  61. <a-setting-list-item paddings="small">
  62. <template #title>Noises</template>
  63. <template #description>{{ i18n "pages.settings.noisesDesc"}}</template>
  64. <template #control>
  65. <a-switch v-model="noises"></a-switch>
  66. </template>
  67. </a-setting-list-item>
  68. <a-list-item v-if="noises" :style="{ padding: '10px 20px' }">
  69. <a-collapse>
  70. <a-collapse-panel v-for="(noise, index) in noisesArray" :key="index" :header="`Noise №${index + 1}`">
  71. <a-setting-list-item paddings="small">
  72. <template #title>Type</template>
  73. <template #control>
  74. <a-select :value="noise.type" :style="{ width: '100%' }"
  75. :dropdown-class-name="themeSwitcher.currentTheme"
  76. @change="(value) => updateNoiseType(index, value)">
  77. <a-select-option :value="p" :label="p" v-for="p in ['rand', 'base64', 'str', 'hex']" :key="p">
  78. <span>[[ p ]]</span>
  79. </a-select-option>
  80. </a-select>
  81. </template>
  82. </a-setting-list-item>
  83. <a-setting-list-item paddings="small">
  84. <template #title>Packet</template>
  85. <template #control>
  86. <a-input type="text" :value="noise.packet"
  87. @input="(value) => updateNoisePacket(index, event.target.value)"
  88. placeholder="5-10"></a-input>
  89. </template>
  90. </a-setting-list-item>
  91. <a-setting-list-item paddings="small">
  92. <template #title>Delay (ms)</template>
  93. <template #control>
  94. <a-input type="text" :value="noise.delay"
  95. @input="(value) => updateNoiseDelay(index, event.target.value)"
  96. placeholder="10-20"></a-input>
  97. </template>
  98. </a-setting-list-item>
  99. <a-setting-list-item paddings="small">
  100. <template #title>ApplyTo</template>
  101. <template #control>
  102. <a-select :value="noise.applyTo" :style="{ width: '100%' }"
  103. :dropdown-class-name="themeSwitcher.currentTheme"
  104. @change="(value) => updateNoiseApplyTo(index, value)">
  105. <a-select-option :value="p" :label="p" v-for="p in ['ip', 'ipv4', 'ipv6']" :key="p">
  106. <span>[[ p ]]</span>
  107. </a-select-option>
  108. </a-select>
  109. </template>
  110. </a-setting-list-item>
  111. <a-space direction="horizontal" :style="{ padding: '10px 20px' }">
  112. <a-button v-if="noisesArray.length > 1" type="danger"
  113. @click="removeNoise(index)">Remove</a-button>
  114. </a-space>
  115. </a-collapse-panel>
  116. </a-collapse>
  117. <a-button v-if="noises" type="primary" @click="addNoise" :style="{ marginTop: '10px' }">Add Noise</a-button>
  118. </a-list-item>
  119. </a-collapse-panel>
  120. <a-collapse-panel key="4" header='{{ i18n "pages.settings.mux"}}'>
  121. <a-setting-list-item paddings="small">
  122. <template #title>{{ i18n "pages.settings.mux"}}</template>
  123. <template #description>{{ i18n "pages.settings.muxDesc"}}</template>
  124. <template #control>
  125. <a-switch v-model="enableMux"></a-switch>
  126. </template>
  127. </a-setting-list-item>
  128. <a-list-item v-if="enableMux" :style="{ padding: '10px 20px' }">
  129. <a-collapse>
  130. <a-collapse-panel header='{{ i18n "pages.settings.muxSett"}}'>
  131. <a-setting-list-item paddings="small">
  132. <template #title>Concurrency</template>
  133. <template #control>
  134. <a-input-number v-model="muxConcurrency" :min="-1" :max="1024"
  135. :style="{ width: '100%' }"></a-input-number>
  136. </template>
  137. </a-setting-list-item>
  138. <a-setting-list-item paddings="small">
  139. <template #title>xudp Concurrency</template>
  140. <template #control>
  141. <a-input-number v-model="muxXudpConcurrency" :min="-1" :max="1024"
  142. :style="{ width: '100%' }"></a-input-number>
  143. </template>
  144. </a-setting-list-item>
  145. <a-setting-list-item paddings="small">
  146. <template #title>xudp UDP 443</template>
  147. <template #control>
  148. <a-select v-model="muxXudpProxyUDP443" :style="{ width: '100%' }"
  149. :dropdown-class-name="themeSwitcher.currentTheme">
  150. <a-select-option :value="p" :label="p" v-for="p in ['reject', 'allow', 'skip']">
  151. <span>[[ p ]]</span>
  152. </a-select-option>
  153. </a-select>
  154. </template>
  155. </a-setting-list-item>
  156. </a-collapse-panel>
  157. </a-collapse>
  158. </a-list-item>
  159. </a-collapse-panel>
  160. <a-collapse-panel key="5" header='{{ i18n "pages.settings.direct" }}'>
  161. <a-setting-list-item paddings="small">
  162. <template #title>{{ i18n "pages.settings.direct"}}</template>
  163. <template #description>{{ i18n "pages.settings.directDesc"}}</template>
  164. <template #control>
  165. <a-switch v-model="enableDirect"></a-switch>
  166. </template>
  167. </a-setting-list-item>
  168. <a-list-item v-if="enableDirect" :style="{ padding: '10px 20px' }">
  169. <a-collapse>
  170. <a-collapse-panel header='{{ i18n "pages.settings.direct"}}'>
  171. <a-setting-list-item paddings="small">
  172. <template #title>{{ i18n "pages.xray.directips" }}</template>
  173. <template #control>
  174. <a-select mode="tags" :style="{ width: '100%' }" v-model="directIPs"
  175. :dropdown-class-name="themeSwitcher.currentTheme">
  176. <a-select-option :value="p.value" :label="p.label" v-for="p in directIPsOptions">
  177. <span>[[ p.label ]]</span>
  178. </a-select-option>
  179. </a-select>
  180. </template>
  181. </a-setting-list-item>
  182. <a-setting-list-item paddings="small">
  183. <template #title>{{ i18n "pages.xray.directdomains" }}</template>
  184. <template #control>
  185. <a-select mode="tags" :style="{ width: '100%' }" v-model="directDomains"
  186. :dropdown-class-name="themeSwitcher.currentTheme">
  187. <a-select-option :value="p.value" :label="p.label" v-for="p in diretDomainsOptions">
  188. <span>[[ p.label ]]</span>
  189. </a-select-option>
  190. </a-select>
  191. </template>
  192. </a-setting-list-item>
  193. </a-collapse-panel>
  194. </a-collapse>
  195. </a-list-item>
  196. </a-collapse-panel>
  197. </a-collapse>
  198. {{end}}