From d47f61302cafaa6ffb4ddfc3ae20be5e4a1c40de Mon Sep 17 00:00:00 2001 From: fangxiang Date: Sat, 7 May 2022 16:37:45 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=AE=BE=E7=BD=AE=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=B7=BB=E5=8A=A0=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- public/new_icon/timing_task.png | Bin 0 -> 1831 bytes src/common/ClientConnection.ts | 40 +++ src/components/PlanDialog.vue | 50 +--- src/components/SystemSettingDialog.vue | 244 +++++++++++++++- src/components/TimingTaskDialog.vue | 375 +++++++++++++++++++++++++ src/entities/EWeekDays.ts | 52 ++++ src/entities/TimingTaskEntity.ts | 16 ++ src/entities/WSProtocol.ts | 105 +++++++ src/i18n/en-US/index.ts | 1 + src/i18n/zh-CN/index.ts | 10 + src/pad/TopToolbar.vue | 15 + 12 files changed, 857 insertions(+), 53 deletions(-) create mode 100644 public/new_icon/timing_task.png create mode 100644 src/components/TimingTaskDialog.vue create mode 100644 src/entities/EWeekDays.ts create mode 100644 src/entities/TimingTaskEntity.ts diff --git a/package.json b/package.json index 4b2561b..894f8d3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "media_player_client", - "version": "1.4.3", + "version": "1.4.4", "description": "A Quasar Framework app", "productName": "MediaPlayerClient", "author": "fangxiang ", diff --git a/public/new_icon/timing_task.png b/public/new_icon/timing_task.png new file mode 100644 index 0000000000000000000000000000000000000000..ca0f24b50e4bcd055d75ebef4cd951ed4a032cdf GIT binary patch literal 1831 zcmbVNZEVzJ9PeIOHgv-&aZ0jKJB?H6_2sVZUBijn-LV~bbGu!#DSYs`_UT>OwNGuk z-EA>(5{we!2NN)EIKl@rBnCe~fFK_n(GMe8BJnLK2_eRpEXFK`4_hwKc)g+iEvXLz2*2-=x6T~MG+r>nvcg^ptDma8L^^cX=Jjk{qA zTUv6#u&T7CQw|dj7*hZi!}(axr6N#OsyJ)h&J~rb3IlV{fTrtUELX)^S>z%oi|#^Q zJ-$N$4s9Y))v>BAhEY}FxUmWBMmZp>qMg*F1(_st(73I@*aSAS%k##PBQ^vsvQr4< zDv27bm`p|@UScG&dqg)?ly{z~k%3X*!Z5|NINYp2vr>u^WPz92&~t21X4w)nfmB_a zTooFW19w7k)u_M)_XVqptRdR~*k|1U8OT^>h9awxlp`pIY^)et=daz5MeNE!F4pdzn&@|px#RpMyi2SHj=0~(zMno6sx!ikcfXO(oYBL9-D z<1Pfb|IOp|rdK|4zwY3~PL{i87`|3s<#e)GF)~oRP6$(qR{~I_%G>&C5m=K4CE9!z zV$yrmMG590&CLTF_GECh)>3-R-RyV3#C@z^Q~vH@eQl|($$B1-i`uR!2`O1%W+0xd z4COh)cr&P!7v{eyE1uQNs|p+sL2p@|zWAd$zoCh#Z9JXp8>xTrWdAuH?MY>?{xNg@ z@h{lseKSi3rskLSjdfgn`an4UQO{e{gfmwwr}Y5EM&J~w)qIC*2};D&YNm8NUm#MvVk8!y#;uyK~U z`s2GNiJ{}epEdQKerU(sD?)qY!igt4SKj<&NWFRJy>FIc(`|uAyI0!g>&dT~#uvKw z^byAv_e?J~^)*~>J(FtRHM@H!v0P6cj&(l!>lS144-f8~_{j>Lh<}y*?&IwT7S0{& vZ$2V^dvfd{MCE?u+VT+__E=t-8X+5qK{wqer564K=jkzSNHx4MYmPk literal 0 HcmV?d00001 diff --git a/src/common/ClientConnection.ts b/src/common/ClientConnection.ts index 15ef25f..ffa58e1 100644 --- a/src/common/ClientConnection.ts +++ b/src/common/ClientConnection.ts @@ -11,6 +11,7 @@ import EventBus, { EventNamesDefine } from "./EventBus"; import { EdgeBlendingPoint } from "src/entities/EdgeBlendingEntities"; import { ExternalControlTableEntity } from "src/entities/ExternalControlTableEntity"; import { SerialPortConfigEntity } from "src/entities/SerialPortConfigEntity"; +import TimingTaskEntity from "src/entities/TimingTaskEntity"; class _RpcInfo { send_timestamp: number; @@ -1004,6 +1005,45 @@ export default class ClientConnection { ); } + public async getTimingTasks() { + try { + return await this.doRpc( + new Protocol.GetTimingTasksRequestEntity() + ); + } catch (e) { + console.error(e); + } + } + + public async addTimingTask(task: TimingTaskEntity) { + try { + return await this.doRpc( + new Protocol.AddTimingTaskRequestEntity(task) + ); + } catch (e) { + console.error(e); + } + } + + public async editTimingTask(task: TimingTaskEntity) { + try { + return await this.doRpc( + new Protocol.EditTimingTaskRequestEntity(task) + ); + } catch (e) { + console.error(e); + } + } + public async deleteTimingTask(uuid: string) { + try { + return await this.doRpc( + new Protocol.DeleteTimingTaskRequestEntity(uuid) + ); + } catch (e) { + console.error(e); + } + } + public destory() { if (this.ws) { this.ws.onclose = null; diff --git a/src/components/PlanDialog.vue b/src/components/PlanDialog.vue index 36cff56..70aff80 100644 --- a/src/components/PlanDialog.vue +++ b/src/components/PlanDialog.vue @@ -389,55 +389,7 @@ import { useQuasar, date as $date } from "quasar"; import { useI18n } from "vue-i18n"; import { StringKeyValueEntity } from "src/entities/StringKeyValueEntity"; import { PlanEntity } from "src/entities/PlanEntity"; - -enum EWeekDays { - EWeekNone = 0x00, - EWeekMonday = 0x01, - EWeekTuesday = 0x02, - EWeekWednesday = 0x04, - EWeekThursday = 0x08, - EWeekFriday = 0x10, - EWeekSaturday = 0x20, - EWeekSunday = 0x40, - - EWeekAll = EWeekMonday | - EWeekTuesday | - EWeekWednesday | - EWeekThursday | - EWeekFriday | - EWeekSaturday | - EWeekSunday, -} - -const _week_days_map = new Map([ - ["EWeekDays.EWeekNone", EWeekDays.EWeekNone], - ["EWeekDays.EWeekMonday", EWeekDays.EWeekMonday], - ["EWeekDays.EWeekTuesday", EWeekDays.EWeekTuesday], - ["EWeekDays.EWeekWednesday", EWeekDays.EWeekWednesday], - ["EWeekDays.EWeekThursday", EWeekDays.EWeekThursday], - ["EWeekDays.EWeekFriday", EWeekDays.EWeekFriday], - ["EWeekDays.EWeekSaturday", EWeekDays.EWeekSaturday], - ["EWeekDays.EWeekSunday", EWeekDays.EWeekSunday], - ["EWeekDays.EWeekAll", EWeekDays.EWeekAll], -]); - -const eWeekDaysToStr = (week_days: EWeekDays) => { - let ret = "EWeekDays.EWeekNone"; - _week_days_map.forEach((v, k, m) => { - if (v == week_days) { - ret = k; - } - }); - return ret; -}; - -const getEWeekDays = (str: string) => { - try { - return _week_days_map.get(str); - } catch (e) { - return EWeekDays.EWeekNone; - } -}; +import { EWeekDays } from "src/entities/EWeekDays"; const __MIN_DELAY = 10; diff --git a/src/components/SystemSettingDialog.vue b/src/components/SystemSettingDialog.vue index a5eee6a..4fd3748 100644 --- a/src/components/SystemSettingDialog.vue +++ b/src/components/SystemSettingDialog.vue @@ -46,19 +46,26 @@ align="justify" narrow-indicator class="bg-grey-2 text-teal" + @update:model-value="onTabChanged" > + + + + + + +
+ + + + {{ getTaskTypeName(item.task_type) }} + + + + {{ item.task_name }} + {{ item.timing_time }} + {{ $t("monday") }} + {{ $t("tuesday") }} + {{ $t("wednesday") }} + {{ $t("thursday") }} + {{ $t("friday") }} + {{ $t("saturday") }} + {{ $t("sunday") }} + + + + + + {{ $t("delete") }}{{ $t("timing task") }} + + + + +
+
+
+
+
+
+ @@ -792,28 +890,43 @@ + + + + + diff --git a/src/entities/EWeekDays.ts b/src/entities/EWeekDays.ts new file mode 100644 index 0000000..3c8cd16 --- /dev/null +++ b/src/entities/EWeekDays.ts @@ -0,0 +1,52 @@ +enum EWeekDays { + EWeekNone = 0x00, + EWeekMonday = 0x01, + EWeekTuesday = 0x02, + EWeekWednesday = 0x04, + EWeekThursday = 0x08, + EWeekFriday = 0x10, + EWeekSaturday = 0x20, + EWeekSunday = 0x40, + + EWeekAll = EWeekMonday | + EWeekTuesday | + EWeekWednesday | + EWeekThursday | + EWeekFriday | + EWeekSaturday | + EWeekSunday, +} + +class EWeekDaysHelper { + static _week_days_map = new Map([ + ["EWeekDays::EWeekNone", EWeekDays.EWeekNone], + ["EWeekDays::EWeekMonday", EWeekDays.EWeekMonday], + ["EWeekDays::EWeekTuesday", EWeekDays.EWeekTuesday], + ["EWeekDays::EWeekWednesday", EWeekDays.EWeekWednesday], + ["EWeekDays::EWeekThursday", EWeekDays.EWeekThursday], + ["EWeekDays::EWeekFriday", EWeekDays.EWeekFriday], + ["EWeekDays::EWeekSaturday", EWeekDays.EWeekSaturday], + ["EWeekDays::EWeekSunday", EWeekDays.EWeekSunday], + ["EWeekDays::EWeekAll", EWeekDays.EWeekAll], + ]); + + static eWeekDaysToStr(week_days: EWeekDays) { + let ret = "EWeekDays::EWeekNone"; + EWeekDaysHelper._week_days_map.forEach((v, k, m) => { + if (v == week_days) { + ret = k; + } + }); + return ret; + } + + static getEWeekDays(str: string) { + try { + return EWeekDaysHelper._week_days_map.get(str); + } catch (e) { + return EWeekDays.EWeekNone; + } + } +} + +export { EWeekDays }; diff --git a/src/entities/TimingTaskEntity.ts b/src/entities/TimingTaskEntity.ts new file mode 100644 index 0000000..ab3820c --- /dev/null +++ b/src/entities/TimingTaskEntity.ts @@ -0,0 +1,16 @@ +import BaseEntity from "./BaseEntity"; + +export default class TimingTaskEntity extends BaseEntity { + enabled = false; + task_name = ""; + timing_time = "00:00:00"; + timing_week_days: number = 0; + task_type = 0; + ext_data = ""; +} + +export enum TimingTaskType { + UnKnow = 0, + TaskPowerOn, + TaskPowerOff, +} diff --git a/src/entities/WSProtocol.ts b/src/entities/WSProtocol.ts index a4907d4..77801ce 100644 --- a/src/entities/WSProtocol.ts +++ b/src/entities/WSProtocol.ts @@ -9,6 +9,7 @@ import { EdgeBlendingPoint } from "./EdgeBlendingEntities"; import { ExternalControlTableEntity } from "./ExternalControlTableEntity"; import { SerialPortConfigEntity } from "./SerialPortConfigEntity"; import { ConnectTableEntity } from "./ConnectTableEntity"; +import TimingTaskEntity from "./TimingTaskEntity"; export namespace Protocol { export class Commands { @@ -382,19 +383,39 @@ export namespace Protocol { public static get kRpcGetConnectionList() { return Commands.PROTOCOL_PREFIX + "RpcGetConnectionList"; } + public static get kRpcSetConnectionItem() { return Commands.PROTOCOL_PREFIX + "RpcSetConnectionItem"; } + public static get kWindowFullScreen() { return Commands.PROTOCOL_PREFIX + "WindowFullScreen"; } + public static get kSetDeviceAttribute() { return Commands.PROTOCOL_PREFIX + "SetDeviceAttribute"; } + public static get kRpcGetDeviceAttribute() { return Commands.PROTOCOL_PREFIX + "RpcGetDeviceAttribute"; } + public static get kRpcGetTimingTasks() { + return Commands.PROTOCOL_PREFIX + "RpcGetTimingTasks"; + } + + public static get kRpcDeleteTimingTask() { + return Commands.PROTOCOL_PREFIX + "RpcDeleteTimingTask"; + } + + public static get kRpcEditTimingTask() { + return Commands.PROTOCOL_PREFIX + "RpcEditTimingTask"; + } + + public static get kRpcAddTimingTask() { + return Commands.PROTOCOL_PREFIX + "RpcAddTimingTask"; + } + static _all_commands = new Set([ Commands.kUnKnowCommand, Commands.kSearchDevice, @@ -494,6 +515,10 @@ export namespace Protocol { Commands.kWindowFullScreen, Commands.kRpcGetDeviceAttribute, Commands.kSetDeviceAttribute, + Commands.kRpcAddTimingTask, + Commands.kRpcEditTimingTask, + Commands.kRpcDeleteTimingTask, + Commands.kRpcGetTimingTasks, ]); public static get AllCommands() { return this._all_commands; @@ -2533,4 +2558,84 @@ export namespace Protocol { this.command = Commands.kSetDeviceAttribute; } } + + export class GetTimingTasksRequestEntity extends PacketEntity { + constructor(rpc_id = 0) { + super(); + super.command = Commands.kRpcGetTimingTasks; + super.flag = PacketEntity.FLAG_REQUEST; + super.rpc_id = rpc_id; + } + timestamp = 0; + } + + export class GetTimingTasksResponseEntity extends PacketEntity { + constructor() { + super(); + super.flag = PacketEntity.FLAG_RESPONSE; + } + + tasks: TimingTaskEntity[] = []; + } + export class AddTimingTaskRequestEntity extends PacketEntity { + constructor(task: TimingTaskEntity, rpc_id = 0) { + super(); + super.command = Commands.kRpcAddTimingTask; + super.flag = PacketEntity.FLAG_REQUEST; + super.rpc_id = rpc_id; + + this.task = task; + } + task: TimingTaskEntity; + } + + export class AddTimingTaskResponseEntity extends PacketEntity { + constructor() { + super(); + super.flag = PacketEntity.FLAG_RESPONSE; + } + + success = false; + uuid = ""; + } + + export class DeleteTimingTaskRequestEntity extends PacketEntity { + constructor(uuid: string, rpc_id = 0) { + super(); + super.command = Commands.kRpcDeleteTimingTask; + super.flag = PacketEntity.FLAG_REQUEST; + super.rpc_id = rpc_id; + this.uuid = uuid; + } + uuid: string; + } + + export class DeleteTimingTaskResponseEntity extends PacketEntity { + constructor() { + super(); + super.flag = PacketEntity.FLAG_RESPONSE; + } + + success = false; + } + + export class EditTimingTaskRequestEntity extends PacketEntity { + constructor(task: TimingTaskEntity, rpc_id = 0) { + super(); + super.command = Commands.kRpcEditTimingTask; + super.flag = PacketEntity.FLAG_REQUEST; + super.rpc_id = rpc_id; + this.task = task; + } + task: TimingTaskEntity; + } + + export class EditTimingTaskResponseEntity extends PacketEntity { + constructor() { + super(); + super.flag = PacketEntity.FLAG_RESPONSE; + } + + success = false; + } } diff --git a/src/i18n/en-US/index.ts b/src/i18n/en-US/index.ts index eec29a4..d2aac4a 100644 --- a/src/i18n/en-US/index.ts +++ b/src/i18n/en-US/index.ts @@ -18,6 +18,7 @@ export default { "other setting": "Other", close: "Close", logout: "Logout", + all: "All", "window rect": "Window Size", "toolbar edit window rect": "Window Size", "edit window rect": "Window Size Adjust", diff --git a/src/i18n/zh-CN/index.ts b/src/i18n/zh-CN/index.ts index db5cf43..8032bc5 100644 --- a/src/i18n/zh-CN/index.ts +++ b/src/i18n/zh-CN/index.ts @@ -498,4 +498,14 @@ export default { "set device function": "设置设备功能成功", operator_play_signal_source: "信号源", "toolbar edit window rect": "窗口大小", + exit: "退出", + "add timing task": "添加定时任务", + "timing task": "定时任务", + "task type": "任务类型", + "please input task name": "请输入任务名称", + "task name": "任务名称", + add: "添加", + "new task": "新建任务", + all: "全部", + unknow: "未知", }; diff --git a/src/pad/TopToolbar.vue b/src/pad/TopToolbar.vue index 16cc7ca..3b305be 100644 --- a/src/pad/TopToolbar.vue +++ b/src/pad/TopToolbar.vue @@ -143,6 +143,18 @@ > + + + + + + {{ $t("system setting") }} + + +