import dxui from '../../../../dxmodules/dxUi.js' import std from '../../../../dxmodules/dxStd.js' import viewUtils from "../../viewUtils.js" import topView from "../../topView.js" import configView from '../configView.js' import i18n from "../../i18n.js" import screen from '../../../screen.js' const networkSettingView = {} networkSettingView.init = function () { /**************************************************创建屏幕*****************************************************/ const screenMain = dxui.View.build('networkSettingView', dxui.Utils.LAYER.MAIN) networkSettingView.screenMain = screenMain screenMain.scroll(false) screenMain.bgColor(0xffffff) screenMain.on(dxui.Utils.ENUM.LV_EVENT_SCREEN_LOADED, () => { topView.changeTheme(true) let devType = screen.getConfig()["sys.devType"] let netTypes = [] netTypes = devType == 1 ? [i18n.t('networkSettingView.ethernet'), i18n.t('networkSettingView._4G')] : [i18n.t('networkSettingView.ethernet'), i18n.t('networkSettingView.wifi'), i18n.t('networkSettingView._4G')] networkSettingView.netInfo[0].value = netTypes networkSettingView.netInfo[0].dropdown.setOptions(networkSettingView.netInfo[0].value) const configAll = screen.getConfig() networkSettingView.changeNetType(configAll["net.type"] - 1) networkSettingView.netInfo[0].dropdown.setSelected(configAll["net.type"] - 1) networkSettingView.netInfo[1].dropdown.setOptions([configAll["net.ssid"]]) networkSettingView.netInfo[1].dropdown.setSelected(0) networkSettingView.netInfo[2].input.text(configAll["net.psk"]) networkSettingView.netInfo[3].switch.select(configAll["net.dhcp"] == 2) networkSettingView.netInfo[4].input.text(configAll["net.ip"]) networkSettingView.netInfo[5].input.text(configAll["net.mask"]) networkSettingView.netInfo[6].input.text(configAll["net.gateway"]) networkSettingView.netInfo[7].input.text(configAll["net.dns"].split(",")[0]) networkSettingView.netInfo[8].input.text(configAll["net.dns"].split(",")[1]) networkSettingView.netInfo[9].label.text(configAll["net.mac"]) }) screenMain.on(dxui.Utils.ENUM.LV_EVENT_SCREEN_UNLOADED, () => { wifiListBoxClose.send(dxui.Utils.EVENT.CLICK) }) const titleBox = viewUtils.title(screenMain, configView.screenMain, 'networkSettingViewTitle', 'networkSettingView.title') titleBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 70) const networkSettingBox = dxui.View.build('networkSettingBox', screenMain) viewUtils._clearStyle(networkSettingBox) networkSettingBox.setSize(screen.screenSize.width, 830) networkSettingBox.bgColor(0xeeeeee) networkSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 142) networkSettingBox.borderWidth(1) networkSettingBox.setBorderColor(0xDEDEDE) networkSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_TOP, 0) networkSettingBox.bgOpa(0) networkSettingBox.flexFlow(dxui.Utils.FLEX_FLOW.ROW_WRAP) networkSettingBox.flexAlign(dxui.Utils.FLEX_ALIGN.CENTER, dxui.Utils.FLEX_ALIGN.START, dxui.Utils.FLEX_ALIGN.START) networkSettingBox.obj.lvObjSetStylePadGap(0, dxui.Utils.ENUM._LV_STYLE_STATE_CMP_SAME) networkSettingView.netInfo = [ { title: 'networkSettingView.type', value: [i18n.t('networkSettingView.ethernet'), i18n.t('networkSettingView.wifi'), i18n.t('networkSettingView._4G')], type: 'dropdown', obj: null, dropdown: null }, { title: 'networkSettingView.wifiName', value: [], type: 'dropdown', obj: null, dropdown: null }, { title: 'networkSettingView.wifiPwd', value: null, type: 'input', obj: null }, { title: 'networkSettingView.dhcp', value: null, type: 'switch', obj: null }, { title: 'networkSettingView.ip', value: null, type: 'input', obj: null }, { title: 'networkSettingView.mask', value: null, type: 'input', obj: null }, { title: 'networkSettingView.gateway', value: null, type: 'input', obj: null }, { title: 'networkSettingView.dns', value: null, type: 'input', obj: null }, { title: 'networkSettingView.dns2', value: null, type: 'input', obj: null }, { title: 'networkSettingView.mac', value: 'DC-87-F2-97-3B-26', type: 'label', obj: null, label: null }, { title: 'networkSettingView.status', value: i18n.t('networkSettingView.networkUnconnected'), type: 'label', obj: null, label: null } ] networkSettingView.netInfo.forEach((item, index) => { const networkSettingItem = dxui.View.build(networkSettingBox.id + item.title, networkSettingBox) viewUtils._clearStyle(networkSettingItem) item.obj = networkSettingItem networkSettingItem.setSize(760, 76) networkSettingItem.bgColor(0xffffff) networkSettingItem.borderWidth(1) networkSettingItem.setBorderColor(0xDEDEDE) networkSettingItem.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const title = dxui.Label.build(item.title, networkSettingItem) title.textFont(viewUtils.font(26)) title.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) title.dataI18n = item.title if (item.type === 'input') { const input = viewUtils.input(networkSettingItem, item.title + 'input', undefined, undefined, 'networkSettingView.input') input.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) input.setSize(400, 60) item.input = input } if (item.type === 'switch') { const __switch = dxui.Switch.build(item.title + 'switch', networkSettingItem) __switch.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) __switch.setSize(70, 35) item.switch = __switch } if (item.type === 'dropdown') { const dropdown = dxui.Dropdown.build(item.title + 'dropdown', networkSettingItem) dropdown.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) dropdown.setSize(200, 60) dropdown.textFont(viewUtils.font(26)) dropdown.getList().textFont(viewUtils.font(26)) dropdown.setSymbol('/app/code/resource/image/down.png') dropdown.setOptions(item.value) item.dropdown = dropdown if (item.title === 'networkSettingView.type') { dropdown.on(dxui.Utils.EVENT.VALUE_CHANGED, () => { networkSettingView.changeNetType(dropdown.getSelected()) if(dropdown.getSelected() == 2) { // screen.switchNetworkType(dropdown.getSelected() + 2) } else { screen.switchNetworkType(dropdown.getSelected() + 1) } }) } if (item.title === 'networkSettingView.wifiName') { dropdown.on(dxui.Utils.EVENT.CLICK, () => { screen.netGetWifiSsidList() wifiList.refresh() wifiListBoxbg.moveForeground() wifiListBoxbg.show() }) } } if (item.type === 'label') { const label = dxui.Label.build(item.title + 'label', networkSettingItem) label.textFont(viewUtils.font(26)) label.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) label.text(item.value) label.textColor(0x333333) item.label = label } }) // wifi列表 const wifiListBoxbg = dxui.View.build('wifiListBoxbg', screenMain) viewUtils._clearStyle(wifiListBoxbg) wifiListBoxbg.setSize(screen.screenSize.width, screen.screenSize.height) wifiListBoxbg.bgColor(0x000000) wifiListBoxbg.bgOpa(50) wifiListBoxbg.hide() wifiListBoxbg.on(dxui.Utils.EVENT.CLICK, () => { wifiListBoxClose.send(dxui.Utils.EVENT.CLICK) }) const wifiListBox = dxui.View.build('wifiListBox', wifiListBoxbg) viewUtils._clearStyle(wifiListBox) wifiListBox.setSize(520, 560) wifiListBox.bgColor(0xffffff) wifiListBox.radius(20) wifiListBox.align(dxui.Utils.ALIGN.CENTER, 0, 0) const wifiListBoxTitle = dxui.Label.build('wifiListBoxTitle', wifiListBox) wifiListBoxTitle.textFont(viewUtils.font(28)) wifiListBoxTitle.align(dxui.Utils.ALIGN.TOP_MID, 0, 32) wifiListBoxTitle.dataI18n = 'networkSettingView.wifiList' const wifiListBoxClose = viewUtils.imageBtn(wifiListBox, 'wifiListBoxClose', '/app/code/resource/image/close_small.png') wifiListBoxClose.align(dxui.Utils.ALIGN.TOP_RIGHT, -36, 30) wifiListBoxClose.on(dxui.Utils.EVENT.CLICK, () => { wifiListBoxbg.hide() }) const closeBtn = dxui.Button.build('closeBtn', wifiListBox) closeBtn.setSize(172, 50) closeBtn.radius(10) closeBtn.bgColor(0xEAEAEA) closeBtn.align(dxui.Utils.ALIGN.BOTTOM_LEFT, 69, -53) closeBtn.on(dxui.Utils.EVENT.CLICK, () => { wifiListBoxClose.send(dxui.Utils.EVENT.CLICK) }) const closeBtnText = dxui.Label.build('closeBtnText', closeBtn) closeBtnText.textFont(viewUtils.font(24)) closeBtnText.dataI18n = 'networkSettingView.close' closeBtnText.align(dxui.Utils.ALIGN.CENTER, 0, 0) closeBtnText.textColor(0x000000) const confirmBtn = dxui.Button.build('confirmBtn', wifiListBox) confirmBtn.setSize(172, 50) confirmBtn.radius(10) confirmBtn.bgColor(0x000000) confirmBtn.align(dxui.Utils.ALIGN.BOTTOM_RIGHT, -69, -53) confirmBtn.on(dxui.Utils.EVENT.CLICK, () => { wifiListBoxClose.send(dxui.Utils.EVENT.CLICK) networkSettingView.netInfo[1].dropdown.setOptions([networkSettingView.selectedValue]) }) const confirmBtnText = dxui.Label.build('confirmBtnText', confirmBtn) confirmBtnText.textFont(viewUtils.font(24)) confirmBtnText.dataI18n = 'networkSettingView.confirm' confirmBtnText.align(dxui.Utils.ALIGN.CENTER, 0, 0) confirmBtnText.textColor(0xffffff) networkSettingView.wifiListData = [] networkSettingView.selectedValue = '' networkSettingView.selectedItem = 0 const wifiList = viewUtils.cycleList(wifiListBox, 'wifiList', [440, 300], 5, (item) => { const wifiItemLbl = dxui.Label.build(item.id + 'wifiItemLbl', item) wifiItemLbl.align(dxui.Utils.ALIGN.LEFT_MID, 25, 0) wifiItemLbl.textFont(viewUtils.font(26)) wifiItemLbl.textColor(0x888888) wifiItemLbl.width(300) wifiItemLbl.longMode(dxui.Utils.LABEL_LONG_MODE.SCROLL_CIRCULAR) item.radius(10) item.on(dxui.Utils.EVENT.CLICK, () => { if (networkSettingView.selectedItem) { networkSettingView.selectedItem.bgOpa(0) } networkSettingView.selectedItem = item networkSettingView.selectedValue = wifiItemLbl.text() item.bgColor(0xEAEAEA) item.bgOpa(100) }) const wifiItemImg = dxui.Image.build(item.id + 'wifi', item) wifiItemImg.align(dxui.Utils.ALIGN.RIGHT_MID, -24, 0) wifiItemImg.source('/app/code/resource/image/wifi.png') const lockItemImg = dxui.Image.build(item.id + 'lock', item) lockItemImg.align(dxui.Utils.ALIGN.RIGHT_MID, -55, 0) lockItemImg.source('/app/code/resource/image/lock.png') return { wifiItemLbl, wifiItemImg, lockItemImg } }, (userdata, index) => { const txt = networkSettingView.wifiListData[Math.abs((index % 5))] if (txt) { userdata.wifiItemLbl.text(txt) userdata.wifiItemImg.show() userdata.lockItemImg.show() } else { userdata.wifiItemLbl.text(' ') userdata.wifiItemImg.hide() userdata.lockItemImg.hide() } }) wifiList.align(dxui.Utils.ALIGN.TOP_MID, 0, 110) wifiList.bgOpa(0) networkSettingView.wifiList = wifiList const saveBtn = viewUtils.bottomBtn(screenMain, screenMain.id + 'saveBtn', 'networkSettingView.save', () => { // 获取WiFi SSID,优先使用下拉选择的值,如果没有则使用配置中的值 let wifiSsid = networkSettingView.selectedValue || "" let saveConfigData = { "net": { "type": networkSettingView.netInfo[0].dropdown.getSelected() + 1, "dhcp": networkSettingView.netInfo[3].switch.isSelect() ? 2 : 1, "ip": networkSettingView.netInfo[4].input.text(), "mask": networkSettingView.netInfo[5].input.text(), "gateway": networkSettingView.netInfo[6].input.text(), "dns": networkSettingView.netInfo[7].input.text() + ',' + networkSettingView.netInfo[8].input.text(), "psk": networkSettingView.netInfo[2].input.text(), "ssid": wifiSsid } } if (!networkSettingView.netInfo[3].switch.isSelect()) { // 静态ip if (networkSettingView.netInfo[0].dropdown.getSelected() + 1 == 1) { // 以太网 saveConfigData = { "net": { "type": networkSettingView.netInfo[0].dropdown.getSelected() + 1, "dhcp": networkSettingView.netInfo[3].switch.isSelect() ? 2 : 1, "ip": networkSettingView.netInfo[4].input.text(), "mask": networkSettingView.netInfo[5].input.text(), "gateway": networkSettingView.netInfo[6].input.text(), "dns": networkSettingView.netInfo[7].input.text() + ',' + networkSettingView.netInfo[8].input.text(), } } } else if (networkSettingView.netInfo[0].dropdown.getSelected() + 1 == 2) { // WIFI saveConfigData = { "net": { "type": networkSettingView.netInfo[0].dropdown.getSelected() + 1, "dhcp": networkSettingView.netInfo[3].switch.isSelect() ? 2 : 1, "ip": networkSettingView.netInfo[4].input.text(), "mask": networkSettingView.netInfo[5].input.text(), "gateway": networkSettingView.netInfo[6].input.text(), "dns": networkSettingView.netInfo[7].input.text() + ',' + networkSettingView.netInfo[8].input.text(), "psk": networkSettingView.netInfo[2].input.text(), "ssid": wifiSsid } } } else { //4G saveConfigData = { "net": { "type": 4, } } } } else { // 动态ip if (networkSettingView.netInfo[0].dropdown.getSelected() + 1 == 1) { // 以太网 saveConfigData = { "net": { "type": networkSettingView.netInfo[0].dropdown.getSelected() + 1, "dhcp": networkSettingView.netInfo[3].switch.isSelect() ? 2 : 1, } } } else if (networkSettingView.netInfo[0].dropdown.getSelected() + 1 == 2) { // WIFI saveConfigData = { "net": { "type": networkSettingView.netInfo[0].dropdown.getSelected() + 1, "dhcp": networkSettingView.netInfo[3].switch.isSelect() ? 2 : 1, "psk": networkSettingView.netInfo[2].input.text(), "ssid": wifiSsid } } } else { //4G saveConfigData = { "net": { "type": 4, } } } } const res = screen.saveConfig(saveConfigData) if (res === true) { networkSettingView.statusPanel.success() std.setTimeout(() => { // 成功返回上一层界面 dxui.loadMain(configView.screenMain) }, 500) } else { networkSettingView.statusPanel.fail() } }) saveBtn.align(dxui.Utils.ALIGN.BOTTOM_MID, 0, -83) networkSettingView.changeNetType(0) networkSettingView.statusPanel = viewUtils.statusPanel(screenMain, 'networkSettingView.success', 'networkSettingView.fail') } // 0:以太网 1:wifi 3:4G networkSettingView.changeNetType = function (type) { if (type === 0) { networkSettingView.netInfo[1].obj.hide() networkSettingView.netInfo[2].obj.hide() networkSettingView.netInfo[3].obj.show() networkSettingView.netInfo[4].obj.show() networkSettingView.netInfo[5].obj.show() networkSettingView.netInfo[6].obj.show() networkSettingView.netInfo[7].obj.show() networkSettingView.netInfo[8].obj.show() } else if (type === 1) { networkSettingView.netInfo[1].obj.show() networkSettingView.netInfo[2].obj.show() networkSettingView.netInfo[3].obj.show() networkSettingView.netInfo[4].obj.show() networkSettingView.netInfo[5].obj.show() networkSettingView.netInfo[6].obj.show() networkSettingView.netInfo[7].obj.show() networkSettingView.netInfo[8].obj.show() } else { networkSettingView.netInfo[1].obj.hide() networkSettingView.netInfo[2].obj.hide() networkSettingView.netInfo[3].obj.hide() networkSettingView.netInfo[4].obj.hide() networkSettingView.netInfo[5].obj.hide() networkSettingView.netInfo[6].obj.hide() networkSettingView.netInfo[7].obj.hide() networkSettingView.netInfo[8].obj.hide() } } export default networkSettingView