zhangzengfei
2023-10-23 1db7db4bf02259e47d5d906d6b21ecc6451b0a09
src/pages/settings/views/NetSettings.vue
@@ -40,7 +40,7 @@
        <div class="wifi-set" v-if="activePage == 1 && !inWifiDetail">
          <div class="title">无线网络</div>
          <switchBar :barName="`无线网卡`" @switchChange="wifiControl" :value="wifiList.length > 0"></switchBar>
          <switchBar :barName="`无线网卡`" @switchChange="wifiControl" :value="true"></switchBar>
          <div class="wifi-option" v-for="(item, i) in wifiList" :key="i" @click="checkWifi(item)">
            <div class="name">
@@ -55,7 +55,7 @@
            </div>
          </div>
          <el-button type="text" @click="wirelessScan">扫描无线网络</el-button>
          <el-button type="text" @click="wirelessScan" :loading="wifiScanning">扫描无线网络</el-button>
        </div>
        <div class="wifi-detail" v-if="activePage == 1 && inWifiDetail" ref="ipvHolder">
          <div class="title">无线网络</div>
@@ -83,7 +83,7 @@
            </el-form>
          </div>
          <!-- <switchBar :barName="`高级设置`" :value="isHighClass"></switchBar>
          <!-- <switchBar :barName="`高级设置`" :value="isHighClass"></switchBar> -->
          <div class="general-box fold" :class="{ hidden: IPV4_hid }">
            <div class="in-title">
@@ -91,10 +91,16 @@
              <span class="icon iconfont icon-fold" @click="toggleFold('IPV4_hid')">&#xe757;</span>
            </div>
            <el-form :model="ipv4Form" :rules="ipv4FormRules" ref="ipv4Form">
            <el-form :model="wirelessForm" ref="wirelessForm">
              <el-form-item>
                <div class="p-title">方法</div>
                <el-select v-model="value" placeholder="请选择" size="small" :popper-append-to-body="false">
                <el-select
                  v-model="wifiProto"
                  placeholder="请选择"
                  size="small"
                  :popper-append-to-body="false"
                  :disabled="wifiProto == 'dhcp'"
                >
                  <el-option
                    v-for="item in options"
                    :key="item.value"
@@ -105,27 +111,47 @@
              </el-form-item>
              <el-form-item prop="ip">
                <div class="p-title">IP</div>
                <ip-input :ip="ipv4Form.ip" @on-blur="ipv4Form.ip = arguments[0]"></ip-input>
                <ip-input
                  :ip="wirelessForm.ip"
                  @on-blur="wirelessForm.ip = arguments[0]"
                  :disabled="wifiProto == 'dhcp'"
                ></ip-input>
              </el-form-item>
              <el-form-item prop="subMask">
                <div class="p-title">子网掩码</div>
                <ip-input :ip="ipv4Form.subMask" @on-blur="ipv4Form.subMask = arguments[0]"></ip-input>
                <ip-input
                  :ip="wirelessForm.subMask"
                  @on-blur="wirelessForm.subMask = arguments[0]"
                  :disabled="wifiProto == 'dhcp'"
                ></ip-input>
              </el-form-item>
              <el-form-item prop="gateway">
                <div class="p-title">网关</div>
                <ip-input :ip="ipv4Form.gateway" @on-blur="ipv4Form.gateway = arguments[0]"></ip-input>
                <ip-input
                  :ip="wirelessForm.gateway"
                  @on-blur="wirelessForm.gateway = arguments[0]"
                  :disabled="wifiProto == 'dhcp'"
                ></ip-input>
              </el-form-item>
              <el-form-item prop="dns">
                <div class="p-title">首选DNS</div>
                <ip-input :ip="ipv4Form.dns1" @on-blur="ipv4Form.dns1 = arguments[0]"></ip-input>
                <ip-input
                  :ip="wirelessForm.dns1"
                  @on-blur="wirelessForm.dns1 = arguments[0]"
                  :disabled="wifiProto == 'dhcp'"
                ></ip-input>
              </el-form-item>
              <el-form-item prop="dns">
                <div class="p-title">备用DNS</div>
                <ip-input :ip="ipv4Form.dns2" @on-blur="ipv4Form.dns2 = arguments[0]"></ip-input>
                <ip-input
                  :ip="wirelessForm.dns2"
                  @on-blur="wirelessForm.dns2 = arguments[0]"
                  :disabled="wifiProto == 'dhcp'"
                ></ip-input>
              </el-form-item>
            </el-form>
          </div> -->
          </div>
          <div class="btns">
            <div class="cancel" @click="inWifiDetail = false">取消</div>
@@ -248,14 +274,11 @@
        deviceName: "",
        port: ""
      },
      wifiForm: {
        name: "",
        password: ""
      },
      wireArr: [],
      inWifiDetail: false,
      selectedWifi: {},
      wifiList: [],
      wifiScanning: false,
      isOpenWifi: false,
      wifiIfname: "",
      inWireDetail: false,
@@ -307,7 +330,7 @@
      rules: {
        deviceName: [{ required: true, message: "请输入设备名称", trigger: "change" }]
      },
      ipv4Form: {},
      wirelessForm: {},
      ipv6Form: {},
      ipv4FormRules: {},
      tabList: [
@@ -321,15 +344,15 @@
      ipv6FormRules: {},
      options: [
        {
          value: "选项1",
          value: "dhcp",
          label: "自动"
        },
        {
          value: "选项2",
          value: "static",
          label: "手动"
        }
      ],
      value: "",
      wifiProto: "dhcp",
      IPV4_hid: true,
      IPV6_hid: false,
      configLoading: false
@@ -342,13 +365,20 @@
  methods: {
    wirelessScan() {
      this.wifiList = []
      getWifiList({ ifname: this.wifiIfname }).then((rsp) => {
        if (rsp && rsp.success) {
          this.wifiList = rsp.data.filter((e) => {
            return e.essid != ""
          })
        }
      })
      this.wifiScanning = true
      getWifiList({ ifname: this.wifiIfname })
        .then((rsp) => {
          if (rsp && rsp.success) {
            this.wifiList = rsp.data.filter((e) => {
              return e.essid != ""
            })
          }
          this.wifiScanning = false
        })
        .catch(() => {
          this.wifiScanning = false
        })
    },
    minusPrefix() {
      this.ipv6Form.prefix
@@ -505,6 +535,16 @@
    checkWifi(item) {
      this.inWifiDetail = true
      this.selectedWifi = item
      getNetWorkCardInfo({
        ifname: this.wifiIfname
      }).then((res) => {
        if (res && res.success) {
          this.wirelessForm.ip = res.data.ip
          this.wirelessForm.gateway = res.data.gateway
          this.wirelessForm.dns = res.data.dns
          this.wirelessForm.subMask = res.data.subMask
        }
      })
    },
    openWireDetail(item) {
      this.inWireDetail = true