From 8393c854b312abf616367f797c3d300217dcd9d3 Mon Sep 17 00:00:00 2001 From: viarotel Date: Fri, 19 Jul 2024 19:21:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=9A=80=20Add=20timing=20task=20en?= =?UTF-8?q?trance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .husky/pre-commit | 2 - components.d.ts | 3 + .../components/BatchActions/Tasks/index.vue | 18 ++++ .../Device/components/BatchActions/index.vue | 6 ++ .../Tasks/components/TaskDialog/index.vue | 97 +++++++++++++++++++ .../components/ControlBar/Tasks/index.vue | 28 ++++++ .../Device/components/ControlBar/index.vue | 7 ++ src/locales/languages/en-US.json | 1 + src/locales/languages/zh-CN.json | 1 + src/locales/languages/zh-TW.json | 1 + .../components/EleFormItemCol/index.vue | 21 ++++ .../components/EleFormRow/index.vue | 21 ++++ src/plugins/element-plus/index.js | 5 + 13 files changed, 209 insertions(+), 2 deletions(-) create mode 100644 src/components/Device/components/BatchActions/Tasks/index.vue create mode 100644 src/components/Device/components/ControlBar/Tasks/components/TaskDialog/index.vue create mode 100644 src/components/Device/components/ControlBar/Tasks/index.vue create mode 100644 src/plugins/element-plus/components/EleFormItemCol/index.vue create mode 100644 src/plugins/element-plus/components/EleFormRow/index.vue diff --git a/.husky/pre-commit b/.husky/pre-commit index 68d66ec..4f7c675 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,2 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" find "electron/resources/extra" -type f -exec git update-index --chmod=+x {} + \ No newline at end of file diff --git a/components.d.ts b/components.d.ts index ab50cdb..d9f551d 100644 --- a/components.d.ts +++ b/components.d.ts @@ -9,6 +9,7 @@ declare module 'vue' { export interface GlobalComponents { ElAutocomplete: typeof import('element-plus/es')['ElAutocomplete'] ElButton: typeof import('element-plus/es')['ElButton'] + ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup'] ElCol: typeof import('element-plus/es')['ElCol'] ElCollapse: typeof import('element-plus/es')['ElCollapse'] ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] @@ -25,6 +26,8 @@ declare module 'vue' { ElLink: typeof import('element-plus/es')['ElLink'] ElOption: typeof import('element-plus/es')['ElOption'] ElPopover: typeof import('element-plus/es')['ElPopover'] + ElRadio: typeof import('element-plus/es')['ElRadio'] + ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRow: typeof import('element-plus/es')['ElRow'] ElSelect: typeof import('element-plus/es')['ElSelect'] ElSwitch: typeof import('element-plus/es')['ElSwitch'] diff --git a/src/components/Device/components/BatchActions/Tasks/index.vue b/src/components/Device/components/BatchActions/Tasks/index.vue new file mode 100644 index 0000000..8d18015 --- /dev/null +++ b/src/components/Device/components/BatchActions/Tasks/index.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/components/Device/components/BatchActions/index.vue b/src/components/Device/components/BatchActions/index.vue index 566b065..d8a1146 100644 --- a/src/components/Device/components/BatchActions/index.vue +++ b/src/components/Device/components/BatchActions/index.vue @@ -43,6 +43,7 @@ import Application from './Application/index.vue' import Screenshot from './Screenshot/index.vue' import FileManage from './FileManage/index.vue' import Shell from './Shell/index.vue' +import Tasks from './Tasks/index.vue' const props = defineProps({ devices: { @@ -72,6 +73,11 @@ const actionModel = [ svgIcon: 'command', component: Shell, }, + { + label: 'device.control.task.name', + elIcon: 'Clock', + component: Tasks, + }, ] diff --git a/src/components/Device/components/ControlBar/Tasks/components/TaskDialog/index.vue b/src/components/Device/components/ControlBar/Tasks/components/TaskDialog/index.vue new file mode 100644 index 0000000..28da8c0 --- /dev/null +++ b/src/components/Device/components/ControlBar/Tasks/components/TaskDialog/index.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/src/components/Device/components/ControlBar/Tasks/index.vue b/src/components/Device/components/ControlBar/Tasks/index.vue new file mode 100644 index 0000000..395c198 --- /dev/null +++ b/src/components/Device/components/ControlBar/Tasks/index.vue @@ -0,0 +1,28 @@ + + + + + diff --git a/src/components/Device/components/ControlBar/index.vue b/src/components/Device/components/ControlBar/index.vue index 6fa4f62..444cf45 100644 --- a/src/components/Device/components/ControlBar/index.vue +++ b/src/components/Device/components/ControlBar/index.vue @@ -73,6 +73,7 @@ import Rotation from './Rotation/index.vue' import Volume from './Volume/index.vue' import FileManage from './FileManage/index.vue' import Shell from './Shell/index.vue' +import Tasks from './Tasks/index.vue' export default { components: { @@ -84,6 +85,7 @@ export default { Volume, FileManage, Shell, + Tasks, }, props: { device: { @@ -157,6 +159,11 @@ export default { component: 'Shell', tips: 'device.control.shell.tips', }, + { + label: 'device.control.task.name', + elIcon: 'Clock', + component: 'Tasks', + }, { label: 'device.control.gnirehtet', elIcon: 'Link', diff --git a/src/locales/languages/en-US.json b/src/locales/languages/en-US.json index 1a69794..f2990fa 100644 --- a/src/locales/languages/en-US.json +++ b/src/locales/languages/en-US.json @@ -113,6 +113,7 @@ "device.control.shell.push.success": "Push script success", "device.control.shell.enter": "Please enter the Enter key to confirm the execution of the script", "device.control.shell.success": "Script execution successfully", + "device.control.task.name": "Timing Task", "device.control.capture": "Screenshot", "device.control.capture.progress": "Capturing screenshot for {deviceName}...", "device.control.capture.success.message": "Open screenshot location?", diff --git a/src/locales/languages/zh-CN.json b/src/locales/languages/zh-CN.json index be2df16..754b320 100644 --- a/src/locales/languages/zh-CN.json +++ b/src/locales/languages/zh-CN.json @@ -113,6 +113,7 @@ "device.control.shell.push.success": "推送脚本成功", "device.control.shell.enter": "请输入回车键确认执行该脚本", "device.control.shell.success": "脚本执行成功", + "device.control.task.name": "定时任务", "device.control.capture": "截取屏幕", "device.control.capture.progress": "正在截取 {deviceName} 的屏幕快照...", "device.control.capture.success.message": "是否前往截屏位置进行查看?", diff --git a/src/locales/languages/zh-TW.json b/src/locales/languages/zh-TW.json index 98393a7..5a43a3a 100644 --- a/src/locales/languages/zh-TW.json +++ b/src/locales/languages/zh-TW.json @@ -113,6 +113,7 @@ "device.control.shell.push.success": "推送腳本成功", "device.control.shell.enter": "請輸入回車鍵確認執行該腳本", "device.control.shell.success": "腳本執行成功", + "device.control.task.name": "定時任務", "device.control.capture": "擷取螢幕", "device.control.capture.progress": "正在擷取 {deviceName} 的螢幕快照...", "device.control.capture.success.message": "是否前往截圖位置進行檢視?", diff --git a/src/plugins/element-plus/components/EleFormItemCol/index.vue b/src/plugins/element-plus/components/EleFormItemCol/index.vue new file mode 100644 index 0000000..570e463 --- /dev/null +++ b/src/plugins/element-plus/components/EleFormItemCol/index.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/src/plugins/element-plus/components/EleFormRow/index.vue b/src/plugins/element-plus/components/EleFormRow/index.vue new file mode 100644 index 0000000..572f59d --- /dev/null +++ b/src/plugins/element-plus/components/EleFormRow/index.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/src/plugins/element-plus/index.js b/src/plugins/element-plus/index.js index d1ad307..3a2f85c 100644 --- a/src/plugins/element-plus/index.js +++ b/src/plugins/element-plus/index.js @@ -11,6 +11,8 @@ import * as ElementPlusIcons from '@element-plus/icons-vue' import { ElLoading, ElMessage, ElMessageBox } from 'element-plus' import EleIconLoading from './components/EleIconLoading/index.vue' +import EleFormRow from './components/EleFormRow/index.vue' +import EleFormItemCol from './components/EleFormItemCol/index.vue' export default { install(app) { @@ -29,5 +31,8 @@ export default { app.use(ElMessage) app.use(ElMessageBox) app.use(ElLoading) + + app.component('EleFormRow', EleFormRow) + app.component('EleFormItemCol', EleFormItemCol) }, }