diff --git a/src/common/ClientConnection.ts b/src/common/ClientConnection.ts index 8c921d5..932b1cd 100644 --- a/src/common/ClientConnection.ts +++ b/src/common/ClientConnection.ts @@ -1443,6 +1443,18 @@ export default class ClientConnection { ); } + public async setCloudServerSetting( + cloud_server_address: string, + cloud_server_verify_key: string, + cloud_server_use_wss: boolean, + cloud_server_enable: boolean + ) { + this.setConfigure("cloud_server_address", cloud_server_address); + this.setConfigure("cloud_server_verify_key", cloud_server_verify_key); + this.setConfigure("cloud_server_use_wss", cloud_server_use_wss ? "1" : "0"); + this.setConfigure("cloud_server_enable", cloud_server_enable ? "1" : "0"); + } + public destory() { this.ws?.close(); if (this.ws) { diff --git a/src/components/SystemSettingDialog.vue b/src/components/SystemSettingDialog.vue index ef3e677..5f4fff6 100644 --- a/src/components/SystemSettingDialog.vue +++ b/src/components/SystemSettingDialog.vue @@ -103,6 +103,14 @@ :label="$t('other setting')" :disable="loading" /> + + + + + + + + {{ + $t("enable") + $t(" ") + $t("server") + ":" + }} + + + + + + {{ + $t("server address") + ":" + }} + + + + + + {{ + $t("device verify key") + ":" + }} + + + + + + {{ + $t("use wss") + ":" + }} + + + + + + + + + + @@ -1395,41 +1500,45 @@ import vue3ResizeDrag from "src/third_lib/vue3-resize-drag/components/vue3-resiz export default defineComponent({ name: "ComponentSystemSettingDialog", - components: { TimingTaskDialog, SystenSettingAdvancedNetworkDialog ,vue3ResizeDrag}, + components: { + TimingTaskDialog, + SystenSettingAdvancedNetworkDialog, + vue3ResizeDrag, + }, setup() { - let $store = useStore(); - let $q = useQuasar(); - let $t = useI18n(); + const $store = useStore(); + const $q = useQuasar(); + const $t = useI18n(); - let show_dialog = ref(false); - let loading = ref(false); + const show_dialog = ref(false); + const loading = ref(false); const timing_task_dialog: Ref = ref(null); const system_setting_advanced_network_dialog: Ref = ref(null); - let tab = ref("network"); + const tab = ref("network"); - let auto_ip = ref($t.t("enable")); - let ip_address = ref("127.0.0.1"); - let gateway = ref("127.0.0.1"); - let netmask = ref("127.0.0.1"); - let dns1 = ref(); - let dns2 = ref(); - let mac_address = ref("11:22:33:44:55:66"); + const auto_ip = ref($t.t("enable")); + const ip_address = ref("127.0.0.1"); + const gateway = ref("127.0.0.1"); + const netmask = ref("127.0.0.1"); + const dns1 = ref(); + const dns2 = ref(); + const mac_address = ref("11:22:33:44:55:66"); let ip_address_list: AdvancedIpAddressEntity[] = []; let host_name = "player"; - let brightness = ref(0); - let contrast = ref(0); - let hue = ref(0); + const brightness = ref(0); + const contrast = ref(0); + const hue = ref(0); const mirroring_output = ref(false); - let device_resolution = ref(""); - let device_resolution_options: Ref = ref([]); - let device_rotate = ref(0); - let device_rotate_options = ref([ + const device_resolution = ref(""); + const device_resolution_options: Ref = ref([]); + const device_rotate = ref(0); + const device_rotate_options = ref([ { label: "0°", value: 0, @@ -1463,8 +1572,8 @@ export default defineComponent({ // value: 7, // }, ]); - let device_resolution_type = ref("EDID"); - let device_resolution_type_options = ref([ + const device_resolution_type = ref("EDID"); + const device_resolution_type_options = ref([ { label: "EDID", value: "EDID" }, { label: $t.t("force output") /*+ "(CVT)"*/, value: "CVT" }, { @@ -1472,61 +1581,67 @@ export default defineComponent({ value: "CUSTOM", }, ]); - let device_resolution_timing = ref(""); + const device_resolution_timing = ref(""); - let output_board_resolution = ref(""); - let output_board_resolution_options = ref(["1", "2", "3"]); + const output_board_resolution = ref(""); + const output_board_resolution_options = ref(["1", "2", "3"]); - let system_muted = ref($t.t("off")); - let system_volume = ref(100); - let output_audio_card_options = ref([ + const system_muted = ref($t.t("off")); + const system_volume = ref(100); + const output_audio_card_options = ref([ { label: $t.t("all"), value: "all" }, { label: "3.5mm", value: "3.5mm" }, { label: "HDMI1", value: "HDMI1" }, ]); let old_output_audio_card = ""; - let output_audio_card = ref(output_audio_card_options.value[0].value); - let use_ntp = ref($t.t("enable")); - let ntp_server = ref(""); - let ntp_sync_delay = ref(180); - let current_date = ref(""); - let current_time = ref(""); - let time_zone = ref(""); - let time_zone_options: Ref = ref([]); + const output_audio_card = ref(output_audio_card_options.value[0].value); + const use_ntp = ref($t.t("enable")); + const ntp_server = ref(""); + const ntp_sync_delay = ref(180); + const current_date = ref(""); + const current_time = ref(""); + const time_zone = ref(""); + const time_zone_options: Ref = ref([]); for (const item of _time_zones) { time_zone_options.value.push($t.t(item)); } - let network_form: Ref = ref(null); - let other_form: Ref = ref(null); - let graphics_form: Ref = ref(null); - let output_board_form: Ref = ref(null); + const network_form: Ref = ref(null); + const other_form: Ref = ref(null); + const graphics_form: Ref = ref(null); + const output_board_form: Ref = ref(null); const user_form: Ref = ref(null); + const cloud_server_form: Ref = ref(null); - let output_board_wall_row = ref(2); - let output_board_wall_col = ref(2); - let output_board_splicing = ref($t.t("on")); - let output_board_vertical_blanking = ref(0); - let output_board_horizon_blanking = ref(0); - let output_board_rotate = ref(0); + const output_board_wall_row = ref(2); + const output_board_wall_col = ref(2); + const output_board_splicing = ref($t.t("on")); + const output_board_vertical_blanking = ref(0); + const output_board_horizon_blanking = ref(0); + const output_board_rotate = ref(0); const output_board_rotate_options = ref([ { label: "0°", value: 0 }, { label: "180°", value: 1 }, ]); - let output_board_volume = ref(100); - let output_board_mute = ref($t.t("on")); + const output_board_volume = ref(100); + const output_board_mute = ref($t.t("on")); const timing_tasks: Ref = ref([]); - let click_count = ref(0); + const click_count = ref(0); const target_click_count = ref(20); - let client_version = ref(version); - let server_version = ref("unknow"); - let server_commit_hash = ref("unknow"); - let server_build_date = ref("unknow"); - let server_branch_name = ref("unknow"); - let kernel_version = ref("unknow"); - let rootfs_version = ref("unknow"); + const client_version = ref(version); + const server_version = ref("unknow"); + const server_commit_hash = ref("unknow"); + const server_build_date = ref("unknow"); + const server_branch_name = ref("unknow"); + const kernel_version = ref("unknow"); + const rootfs_version = ref("unknow"); + + const cloud_server_enable = ref($t.t("enable")); + const cloud_server_address = ref(""); + const cloud_server_verify_key = ref(""); + const cloud_server_use_wss = ref($t.t("enable")); const refresh_network = () => { const config = GlobalData.getInstance()?.applicationConfig; @@ -1643,11 +1758,28 @@ export default defineComponent({ } }; + const refresh_cloud_server = () => { + const config = GlobalData.getInstance()?.applicationConfig; + if (config) { + cloud_server_enable.value = parseInt(config.cloud_server_enable) + ? $t.t("enable") + : $t.t("disable"); + cloud_server_address.value = + config.cloud_server_address || "192.168.1.1"; + cloud_server_verify_key.value = + config.cloud_server_verify_key || "123456"; + cloud_server_use_wss.value = parseInt(config.cloud_server_use_wss) + ? $t.t("enable") + : $t.t("disable"); + } + }; + const refresh_all = () => { refresh_network(); refresh_graphics(); refresh_other(); refresh_output_board(); + refresh_cloud_server(); }; const wait_for = async (delay_ms: number) => { @@ -1938,12 +2070,46 @@ export default defineComponent({ case "output_board": output_board_form.value.submit(); break; + case "cloud_server": + cloud_server_form.value.submit(); + break; case "user": user_form.value.submit(); break; } }; + const applyCloudServer = async () => { + loading.value = true; + + let success = false; + + try { + await GlobalData.getInstance() + .getCurrentClient() + ?.setCloudServerSetting( + cloud_server_address.value, + cloud_server_verify_key.value, + cloud_server_use_wss.value == $t.t("enable"), + cloud_server_enable.value == $t.t("enable") + ); + + success = true; + } catch {} + + $q.notify({ + color: success ? "positive" : "negative", + icon: success ? "done" : "warning", + message: + $t.t("set system server") + + (success ? $t.t("success") : $t.t("fail")) + + "!", + position: "top", + timeout: 2500, + }); + loading.value = false; + }; + const applyUser = async () => { loading.value = true; console.log("zzz"); @@ -2117,6 +2283,7 @@ export default defineComponent({ other_form, graphics_form, output_board_form, + cloud_server_form, user_form, mirroring_output, click_count, @@ -2128,6 +2295,10 @@ export default defineComponent({ server_branch_name, kernel_version, rootfs_version, + cloud_server_enable, + cloud_server_address, + cloud_server_verify_key, + cloud_server_use_wss, user_name, old_password, new_password, @@ -2140,6 +2311,7 @@ export default defineComponent({ applyGraphics, applyOther, applyOutputBoard, + applyCloudServer, applyUser, loga(a: any) { console.log(a); diff --git a/src/entities/ApplicationConfigEntity.ts b/src/entities/ApplicationConfigEntity.ts index 333b3e9..7d85277 100644 --- a/src/entities/ApplicationConfigEntity.ts +++ b/src/entities/ApplicationConfigEntity.ts @@ -41,4 +41,8 @@ export default class ApplicationConfigEntity { image_suffix_filter: string | null = ""; special_video_layout_rotation: string | undefined = "0"; device_hdmi_rotation: number = 0; + cloud_server_address = ""; + cloud_server_verify_key = ""; + cloud_server_use_wss = "0"; + cloud_server_enable = "0"; } diff --git a/src/i18n/en-US/index.ts b/src/i18n/en-US/index.ts index fbf65d5..6bdef0a 100644 --- a/src/i18n/en-US/index.ts +++ b/src/i18n/en-US/index.ts @@ -425,4 +425,10 @@ export default { resetall: "reset all", "save config": "save config", "Whether to enable mixing": "Whether to enable mixing", + "device verify key": "Device Verify Key", + "use wss": "Use Wss", + "server address": "Server Address", + "cloud server": "Cloud Server", + "verify key length is 6": "Verify Key Length Is 6", + server: "Server", }; diff --git a/src/i18n/zh-CN/index.ts b/src/i18n/zh-CN/index.ts index 26d435e..42ba2cc 100644 --- a/src/i18n/zh-CN/index.ts +++ b/src/i18n/zh-CN/index.ts @@ -673,24 +673,30 @@ export default { "Please input vaild host. example: 192.168.1.1 or 192.168.1.1:8080": "请输入合法地址. 例: 192.168.1.1 或 192.168.1.1:8080", "equipment data": "联动设备", - "fusion settings":"融合设置", - "FusionLocale":"融合区域设置", - "FourPointCalibration":"四点校正", - "SurfaceCorrection":"曲面校正", - "DensityCorrection":"疏密校正", - "GridSettings":"网格设置", - "point":"点", - "reset":"重置", - "upper fusion zone parameters":"上融合带参数", - "Left fusion Band Parameters":"左融合带参数", - "Lower fusion Zone Parameters":"下融合带参数", - "Right fusion Band Parameters":"右融合带参数", - "Set the fusion band width":"设置融合带宽度", - "Please enter a number":"请输入数字", - "Please enter 0-100":"请输入 0-你的分辨率", - "Set Fusion Band Parameters":"设置融合带参数", - "Projector":"投影机", - "resetall":"重置所有", - "save config":"保存配置", - "Whether to enable mixing":"是否启用混合" + "fusion settings": "融合设置", + FusionLocale: "融合区域设置", + FourPointCalibration: "四点校正", + SurfaceCorrection: "曲面校正", + DensityCorrection: "疏密校正", + GridSettings: "网格设置", + point: "点", + reset: "重置", + "upper fusion zone parameters": "上融合带参数", + "Left fusion Band Parameters": "左融合带参数", + "Lower fusion Zone Parameters": "下融合带参数", + "Right fusion Band Parameters": "右融合带参数", + "Set the fusion band width": "设置融合带宽度", + "Please enter a number": "请输入数字", + "Please enter 0-100": "请输入 0-你的分辨率", + "Set Fusion Band Parameters": "设置融合带参数", + Projector: "投影机", + resetall: "重置所有", + "save config": "保存配置", + "Whether to enable mixing": "是否启用混合", + "device verify key": "设备校验码", + "use wss": "使用Wss", + "server address": "服务器地址", + "cloud server": "云服务器", + "verify key length is 6": "校验码长度必须为6", + server: "服务", };