xray_fakedns_modal.html 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. {{define "modals/fakednsModal"}}
  2. <a-modal id="fakedns-modal" v-model="fakednsModal.visible" :title="fakednsModal.title" @ok="fakednsModal.ok"
  3. :closable="true" :mask-closable="false" :ok-text="fakednsModal.okText" cancel-text='{{ i18n "close" }}'
  4. :class="themeSwitcher.currentTheme">
  5. <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }">
  6. <a-form-item label='{{ i18n "pages.xray.fakedns.ipPool" }}'>
  7. <a-input v-model.trim="fakednsModal.fakeDns.ipPool"></a-input>
  8. </a-form-item>
  9. <a-form-item label='{{ i18n "pages.xray.fakedns.poolSize" }}'>
  10. <a-input-number v-model.number="fakednsModal.fakeDns.poolSize" :min="1"></a-input-number>
  11. </a-form-item>
  12. </a-form>
  13. </a-modal>
  14. <script>
  15. const fakednsDefaultData = {
  16. ipPool: "198.18.0.0/16",
  17. poolSize: 65535,
  18. }
  19. const fakednsModal = {
  20. title: '',
  21. visible: false,
  22. okText: '{{ i18n "confirm" }}',
  23. isEdit: false,
  24. confirm: null,
  25. fakeDns: {
  26. ...fakednsDefaultData
  27. },
  28. ok() {
  29. ObjectUtil.execute(fakednsModal.confirm, fakednsModal.fakeDns);
  30. },
  31. show({
  32. title = '',
  33. okText = '{{ i18n "confirm" }}',
  34. fakeDns,
  35. confirm = (fakeDns) => {},
  36. isEdit = false
  37. }) {
  38. this.title = title;
  39. this.okText = okText;
  40. this.confirm = confirm;
  41. this.visible = true;
  42. if (isEdit) {
  43. this.fakeDns = fakeDns;
  44. } else {
  45. this.fakeDns = {
  46. ...fakednsDefaultData
  47. }
  48. }
  49. this.isEdit = isEdit;
  50. },
  51. close() {
  52. fakednsModal.visible = false;
  53. },
  54. };
  55. new Vue({
  56. delimiters: ['[[', ']]'],
  57. el: '#fakedns-modal',
  58. data: {
  59. fakednsModal: fakednsModal,
  60. }
  61. });
  62. </script>
  63. {{end}}