diff --git a/src/components/common/FormColorPicker.vue b/src/components/common/FormColorPicker.vue
new file mode 100644
index 0000000000..44ee382d8b
--- /dev/null
+++ b/src/components/common/FormColorPicker.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+ {{ props.label }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/common/FormImageUpload.vue b/src/components/common/FormImageUpload.vue
new file mode 100644
index 0000000000..7d5e8d9d0b
--- /dev/null
+++ b/src/components/common/FormImageUpload.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/common/FormItem.vue b/src/components/common/FormItem.vue
index df7da773c0..863f6346e6 100644
--- a/src/components/common/FormItem.vue
+++ b/src/components/common/FormItem.vue
@@ -31,6 +31,8 @@ import Select from 'primevue/select'
import ToggleSwitch from 'primevue/toggleswitch'
import CustomFormValue from '@/components/common/CustomFormValue.vue'
import InputSlider from '@/components/common/InputSlider.vue'
+import FormImageUpload from '@/components/common/FormImageUpload.vue'
+import FormColorPicker from '@/components/common/FormColorPicker.vue'
const formValue = defineModel('formValue')
const props = defineProps<{
@@ -82,6 +84,10 @@ function getFormComponent(item: FormItem): Component {
return InputSlider
case 'combo':
return Select
+ case 'image':
+ return FormImageUpload
+ case 'color':
+ return FormColorPicker
default:
return InputText
}
diff --git a/src/locales/en/main.json b/src/locales/en/main.json
index 12e2ca065f..05092dd479 100644
--- a/src/locales/en/main.json
+++ b/src/locales/en/main.json
@@ -63,7 +63,8 @@
"enableAll": "Enable All",
"disableAll": "Disable All",
"command": "Command",
- "keybinding": "Keybinding"
+ "keybinding": "Keybinding",
+ "upload": "Upload"
},
"color": {
"default": "Default",
diff --git a/src/locales/ja/main.json b/src/locales/ja/main.json
index 4eb3093eb9..e1062cb1b2 100644
--- a/src/locales/ja/main.json
+++ b/src/locales/ja/main.json
@@ -126,6 +126,7 @@
"showReport": "レポートを表示",
"systemInfo": "システム情報",
"terminal": "ターミナル",
+ "upload": "アップロード",
"videoFailedToLoad": "ビデオの読み込みに失敗しました"
},
"graphCanvasMenu": {
diff --git a/src/locales/ko/main.json b/src/locales/ko/main.json
index 62bd5ea5a5..b5ddd550cf 100644
--- a/src/locales/ko/main.json
+++ b/src/locales/ko/main.json
@@ -126,6 +126,7 @@
"showReport": "보고서 보기",
"systemInfo": "시스템 정보",
"terminal": "터미널",
+ "upload": "업로드",
"videoFailedToLoad": "비디오를 로드하지 못했습니다."
},
"graphCanvasMenu": {
diff --git a/src/locales/ru/main.json b/src/locales/ru/main.json
index b1484d651a..d575dd0749 100644
--- a/src/locales/ru/main.json
+++ b/src/locales/ru/main.json
@@ -126,6 +126,7 @@
"showReport": "Показать отчет",
"systemInfo": "Информация о системе",
"terminal": "Терминал",
+ "upload": "Загрузить",
"videoFailedToLoad": "Не удалось загрузить видео"
},
"graphCanvasMenu": {
diff --git a/src/locales/zh/main.json b/src/locales/zh/main.json
index 5054fa3be0..a9bb13ed84 100644
--- a/src/locales/zh/main.json
+++ b/src/locales/zh/main.json
@@ -126,6 +126,7 @@
"showReport": "显示报告",
"systemInfo": "系统信息",
"terminal": "终端",
+ "upload": "上传",
"videoFailedToLoad": "视频加载失败"
},
"graphCanvasMenu": {
diff --git a/src/types/settingTypes.ts b/src/types/settingTypes.ts
index 34251496c2..ec2ea60b20 100644
--- a/src/types/settingTypes.ts
+++ b/src/types/settingTypes.ts
@@ -6,6 +6,8 @@ export type SettingInputType =
| 'slider'
| 'combo'
| 'text'
+ | 'image'
+ | 'color'
| 'hidden'
export type SettingCustomRenderer = (