advance.html 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <div>
  2. <div class="page-title" data-content="PageTitle4NetworkAdvance"></div>
  3. <div class="page-desc" data-content="PageDesc4NetworkAdvance"></div>
  4. <div class="layui-form page-form" lay-filter="FormSonoAdvancce">
  5. <div class="layui-form-item" style="padding-left: 20px">
  6. <div class="layui-inline">
  7. <input type="checkbox"
  8. id="advanceSwitch"
  9. name="IsEnable"
  10. lay-filter="IsEnable"
  11. lay-skin="switch" />
  12. <label class="layui-form-label"
  13. style="float: right; width: 160px"
  14. data-content="EnableDualNetwork"></label>
  15. </div>
  16. </div>
  17. <div id="advanceContainer">
  18. <div id="networkInterfaceList"></div>
  19. <div>
  20. <button class="layui-btn layui-btn-normal"
  21. id="btnSave"
  22. data-content="SaveConfig"></button>
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. <script>
  28. function Page(app, runtime) {
  29. const { $api, $t, $c } = runtime;
  30. const { form, layer } = layui;
  31. let settingForms = [];
  32. let advanceSettingOpend = false;
  33. this.onload = async function () {
  34. await $c("NetworkAdapterItem");
  35. loadNetworkInfo();
  36. $("#btnSave").on("click", async function (data) {
  37. if (settingForms.length < 2) {
  38. layer.msg.error($t("NoEnoughNetworkError"));
  39. return;
  40. }
  41. var networks = settingForms.filter((x) => x.checked());
  42. if (networks.length > 1) {
  43. layer.msg.error($t("SetOutSideNetworkError"));
  44. return;
  45. }
  46. if (networks.length == 0) {
  47. layer.msg.error($t("SetOutSideNetworkError2"));
  48. return;
  49. }
  50. let item = settingForms
  51. .map((x) => x.val())
  52. .find((x) => x.IsOutSideNetwork === true);
  53. let res = await $api("network", "SaveAdvanceSetting", item);
  54. if (res.IsSuccess) {
  55. if (res.Data.NeedReboot) {
  56. layer.msg.success($t("RestartEffect"));
  57. } else {
  58. layer.msg.success($t("SaveSuccess"));
  59. }
  60. } else {
  61. layer.msg.error($t(res.Code));
  62. }
  63. });
  64. };
  65. function loadNetworkInfo() {
  66. $api("network", "GetNetworkInterfaces").then((res) => {
  67. if (res.IsSuccess) {
  68. let container = $("#networkInterfaceList");
  69. res.Data.Interfaces.forEach((x) => {
  70. let item = new NetworkAdapterItem(x);
  71. item.addTo(container);
  72. settingForms.push(item);
  73. if (x.IsOutSideNetwork === true) {
  74. advanceSettingOpend = true;
  75. }
  76. });
  77. $("#advanceSwitch").prop("checked", advanceSettingOpend);
  78. if (advanceSettingOpend) {
  79. $("#advanceContainer").show();
  80. } else {
  81. $("#advanceContainer").hide();
  82. }
  83. form.render();
  84. } else {
  85. layer.msg.error($t(res.Code));
  86. }
  87. });
  88. }
  89. form.on("switch(IsEnable)", async function (data) {
  90. let checked = data.elem.checked;
  91. if (checked) {
  92. $("#advanceContainer").show();
  93. } else {
  94. $("#advanceContainer").hide();
  95. let res = await $api("network", "SaveAdvanceSetting", null);
  96. if (res.IsSuccess) {
  97. if (res.Data.NeedReboot) {
  98. layer.msg.success($t("RestartEffect"));
  99. } else {
  100. layer.msg.success($t("SaveSuccess"));
  101. }
  102. } else {
  103. layer.msg.error($t(res.Code));
  104. }
  105. }
  106. });
  107. }
  108. </script>