diff --git a/static/src/admin/PolicyApp.vue b/static/src/admin/PolicyApp.vue
index 4bd2e229..3a3b7d88 100644
--- a/static/src/admin/PolicyApp.vue
+++ b/static/src/admin/PolicyApp.vue
@@ -109,15 +109,7 @@
:checked="getCategoryDefault(cat.id)"
@change="setCategoryDefault(cat.id, $event.target.checked)"
/>
-
-
-
+
{{ cat.default_enabled ? '开' : '关' }}
@@ -144,15 +136,7 @@
@@ -168,15 +152,7 @@
:checked="!!form.config.ui_blocks[key]"
@change="toggleUiBlock(key, $event)"
/>
-
-
-
+
{{ uiBlockLabel(key) }}
@@ -313,6 +289,7 @@
import { computed, reactive, ref, onMounted, onBeforeUnmount, watch } from 'vue';
import { useSecondaryPass } from './useSecondaryPass';
import SecondaryGate from './SecondaryGate.vue';
+import FancyCheck from '@/components/common/FancyCheck.vue';
type TargetType = 'global' | 'role' | 'user' | 'invite';
@@ -1367,43 +1344,6 @@ button:disabled {
pointer-events: none;
}
-.toggle-row .fancy-check {
- width: 28px;
- height: 28px;
- border-radius: 6px;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- box-shadow: none;
- background: transparent;
-}
-
-.toggle-row .fancy-check svg {
- width: 22px;
- height: 22px;
- overflow: visible;
-}
-
-.fancy-path {
- fill: none;
- stroke: var(--text-secondary);
- stroke-width: 5;
- stroke-linecap: round;
- stroke-linejoin: round;
- transition:
- stroke-dasharray 0.5s ease,
- stroke-dashoffset 0.5s ease,
- stroke 0.2s ease;
- stroke-dasharray: 241 9999999;
- stroke-dashoffset: 0;
-}
-
-.toggle-row input:checked + .fancy-check .fancy-path {
- stroke: var(--accent);
- stroke-dasharray: 70.5096664428711 9999999;
- stroke-dashoffset: -262.2723388671875;
-}
-
.toggle-row span {
color: var(--text-primary);
font-weight: 600;
diff --git a/static/src/components/common/FancyCheck.vue b/static/src/components/common/FancyCheck.vue
new file mode 100644
index 00000000..911506d9
--- /dev/null
+++ b/static/src/components/common/FancyCheck.vue
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
diff --git a/static/src/components/input/EffortSlider.vue b/static/src/components/input/EffortSlider.vue
index c0b1fd42..7feb4027 100644
--- a/static/src/components/input/EffortSlider.vue
+++ b/static/src/components/input/EffortSlider.vue
@@ -1,6 +1,7 @@