diff --git a/app/src/components/CodeEditor/CodeEditor.vue b/app/src/components/CodeEditor/CodeEditor.vue
index e14feaba..3c875171 100644
--- a/app/src/components/CodeEditor/CodeEditor.vue
+++ b/app/src/components/CodeEditor/CodeEditor.vue
@@ -4,7 +4,6 @@ import 'ace-builds/src-noconflict/mode-nginx'
import ace from 'ace-builds'
import 'ace-builds/src-noconflict/theme-monokai'
import extSearchboxUrl from 'ace-builds/src-noconflict/ext-searchbox?url'
-import { computed } from 'vue'
const props = defineProps<{
content?: string
diff --git a/app/src/components/EnvIndicator/EnvIndicator.vue b/app/src/components/EnvIndicator/EnvIndicator.vue
index 0af86ca3..b547e860 100644
--- a/app/src/components/EnvIndicator/EnvIndicator.vue
+++ b/app/src/components/EnvIndicator/EnvIndicator.vue
@@ -2,7 +2,6 @@
import { CloseOutlined, DashboardOutlined, DatabaseOutlined } from '@ant-design/icons-vue'
import { storeToRefs } from 'pinia'
import { useRouter } from 'vue-router'
-import { computed, watch } from 'vue'
import { useSettingsStore } from '@/pinia'
const settingsStore = useSettingsStore()
diff --git a/app/src/components/SwitchAppearance/SwitchAppearance.vue b/app/src/components/SwitchAppearance/SwitchAppearance.vue
index 496a5dfc..1ca3b860 100644
--- a/app/src/components/SwitchAppearance/SwitchAppearance.vue
+++ b/app/src/components/SwitchAppearance/SwitchAppearance.vue
@@ -1,6 +1,5 @@
+
+
+
+
+
+
+ {{ $gettext('Import') }}
+
+
+ refWildcard.open()"
+ >
+
+ {{ $gettext('Issue wildcard certificate') }}
+
+
+ $router.push(`/certificates/${id}`)"
+ />
+ refTable.get_list()"
+ />
+
+
+
+
diff --git a/app/src/views/certificate/Certificate.vue b/app/src/views/certificate/CertificateList/certColumns.tsx
similarity index 50%
rename from app/src/views/certificate/Certificate.vue
rename to app/src/views/certificate/CertificateList/certColumns.tsx
index f383724e..8211c5f5 100644
--- a/app/src/views/certificate/Certificate.vue
+++ b/app/src/views/certificate/CertificateList/certColumns.tsx
@@ -1,20 +1,10 @@
-
-
-
-
-
-
-
- {{ $gettext('Import') }}
-
-
- refWildcard.open()"
- >
-
- {{ $gettext('Issue wildcard certificate') }}
-
-
- $router.push(`/certificates/${id}`)"
- />
- refTable.get_list()"
- />
-
-
-
-
+export default columns
diff --git a/app/src/views/config/Config.vue b/app/src/views/config/Config.vue
index 5fba101c..a3152fd3 100644
--- a/app/src/views/config/Config.vue
+++ b/app/src/views/config/Config.vue
@@ -1,6 +1,4 @@
-
-
-
-
- {{ $gettext('Change Certificate') }}
-
-
-
-
-
-
-
-
diff --git a/app/src/views/domain/cert/IssueCert.vue b/app/src/views/domain/cert/IssueCert.vue
index f5e1e4f2..8fef5095 100644
--- a/app/src/views/domain/cert/IssueCert.vue
+++ b/app/src/views/domain/cert/IssueCert.vue
@@ -9,7 +9,7 @@ export interface Props {
const props = defineProps()
-const emit = defineEmits(['callback', 'update:enabled'])
+const emit = defineEmits(['update:enabled'])
const issuing_cert = ref(false)
const obtain_cert = ref()
diff --git a/app/src/views/domain/cert/components/ChangeCert/ChangeCert.vue b/app/src/views/domain/cert/components/ChangeCert/ChangeCert.vue
new file mode 100644
index 00000000..49dd6f15
--- /dev/null
+++ b/app/src/views/domain/cert/components/ChangeCert/ChangeCert.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+ {{ $gettext('Change Certificate') }}
+
+
+
+
+
+
+
+
diff --git a/app/src/views/domain/ngx_conf/LocationEditor.vue b/app/src/views/domain/ngx_conf/LocationEditor.vue
index b3539c24..84db6cc5 100644
--- a/app/src/views/domain/ngx_conf/LocationEditor.vue
+++ b/app/src/views/domain/ngx_conf/LocationEditor.vue
@@ -1,5 +1,4 @@