diff --git a/src/assets/js/toolbox-data.js b/src/assets/js/toolbox-data.js
index e5be450..853ddfb 100644
--- a/src/assets/js/toolbox-data.js
+++ b/src/assets/js/toolbox-data.js
@@ -312,6 +312,17 @@ export const toolList = [
version: '1',
enabled: true,
},
+ {
+ id: 'visualized-working-hours',
+ component: 'Other/VisualizedWorkingHours/VisualizedWorkingHours',
+ title: '工作时间可视化',
+ iconClass: 'mdi mdi-clock-digital',
+ desc: '用趣味化的方式呈现工作收益与时间进度,让薪资进度和下班期待看得见。',
+ createdAt: '',
+ updatedAt: '',
+ version: '0',
+ enabled: false,
+ },
],
},
];
diff --git a/src/views/ToolboxView/Other/VisualizedWorkingHours/VisualizedWorkingHours.vue b/src/views/ToolboxView/Other/VisualizedWorkingHours/VisualizedWorkingHours.vue
new file mode 100644
index 0000000..5973296
--- /dev/null
+++ b/src/views/ToolboxView/Other/VisualizedWorkingHours/VisualizedWorkingHours.vue
@@ -0,0 +1,243 @@
+
+
+
+
+
+
+
+
+ 配置选项
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 实时进度
+
+
+
+
+
+ 本月已赚
+ 1000 ¥
+
+
+
+
+
+ 35%
+ 剩余 20.5 天
+
+
+
+
+
+ 今日已赚
+ 100 ¥
+
+
+
+
+
+ 60%
+ 剩余 5.6 小时
+
+
+
+
+
+
+
+
+
+
+ 下班冲刺
+
+
+
+
+ 距离下班还剩
+
+
+ 05:30:20
+
+
+ 漫长的一天才过一半,加油吧!
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/ToolboxView/Other/VisualizedWorkingHours/data.js b/src/views/ToolboxView/Other/VisualizedWorkingHours/data.js
new file mode 100644
index 0000000..44c7e5b
--- /dev/null
+++ b/src/views/ToolboxView/Other/VisualizedWorkingHours/data.js
@@ -0,0 +1,50 @@
+import { useLocalStorage } from '@vueuse/core';
+import { KEY_PREFIX } from '@/assets/js/local-storage';
+
+/** 模块名称 */
+const STORAGE_PREFIX = KEY_PREFIX + 'visualized-working-hours/';
+
+/** 配置选项 */
+export const configData = {
+
+ /** 收入币种 */
+ currencyOfIncome: useLocalStorage(STORAGE_PREFIX + 'currencyOfIncome', ''),
+
+ /** 日薪 */
+ dailyWage: useLocalStorage(STORAGE_PREFIX + 'dailyWage', 100),
+
+ /** 午休时长 */
+ lunchBreakDuration: useLocalStorage(STORAGE_PREFIX + 'lunchBreakDuration', 1),
+
+ /** 工作开始时间 */
+ workTimeStart: useLocalStorage(STORAGE_PREFIX + 'workTimeStart', ''),
+
+ /** 工作结束时间 */
+ workTimeStop: useLocalStorage(STORAGE_PREFIX + 'workTimeStop', ''),
+
+};
+
+/** 初始化数据 */
+export function initData() {
+
+ let {
+ currencyOfIncome,
+ workTimeStart,
+ workTimeStop,
+ } = configData;
+
+ let timeRegExp = new RegExp(/^\d{2}:\d{2}$/);
+
+ if (!currencyOfIncome.value) {
+ currencyOfIncome.value = '¥';
+ }
+
+ if (!workTimeStart.value.match(timeRegExp)) {
+ workTimeStart.value = '09:00';
+ }
+
+ if (!workTimeStop.value.match(timeRegExp)) {
+ workTimeStop.value = '18:00';
+ }
+
+}