Kaynağa Gözat

🎨 优化审核悬浮窗支持展开收起

快乐的梦鱼 3 hafta önce
ebeveyn
işleme
2b856cca92

+ 9 - 0
.claude/settings.local.json

@@ -0,0 +1,9 @@
+{
+  "permissions": {
+    "allow": [
+      "Read(//Users/**)",
+      "Bash(find . -path \"*/composeables/useMemorizeVar*\" -o -path \"*/composables/useMemorizeVar*\")",
+      "Bash(find . -name \"useMemorizeVar*\")"
+    ]
+  }
+}

+ 19 - 2
src/pages/collect/assessment/evaluation-form-review.vue

@@ -29,7 +29,17 @@
               :readonly="true"
             />
             <a-divider />
-            <a-card title="审核提交" size="small" class="review-submit-card">
+            <a-card title="审核提交" size="small" class="review-submit-card" :class="{ collapsed: reviewCardCollapsed }">
+              <template #extra>
+                <a-button
+                  size="small"
+                  type="text"
+                  :icon="h(reviewCardCollapsed ? UpOutlined : DownOutlined)"
+                  @click="reviewCardCollapsed = !reviewCardCollapsed"
+                >
+                  {{ reviewCardCollapsed ? '展开' : '收起' }}
+                </a-button>
+              </template>
               <a-alert
                 v-if="!canSubmitReview"
                 type="warning"
@@ -110,7 +120,7 @@ import { computed, h, onMounted, ref, watch } from 'vue';
 import { useRoute, useRouter } from 'vue-router';
 import { message, Modal } from 'ant-design-vue';
 import { RequestApiError } from '@imengyu/imengyu-utils';
-import { ArrowLeftOutlined } from '@ant-design/icons-vue';
+import { ArrowLeftOutlined, UpOutlined, DownOutlined } from '@ant-design/icons-vue';
 import AssessmentContentApi, {
   type CheckItemInfo,
   type SelfAssessmentCheckItemAnswer,
@@ -119,6 +129,7 @@ import AssessmentContentApi, {
 import SelfAssessmentFormDisplay from './components/SelfAssessmentFormDisplay.vue';
 import { useSimpleDataLoader } from '@/composeables/useSimpleDataLoader';
 import { useAuthStore } from '@/stores/auth';
+import { useMemorizeVar } from '@/composeables/useMemorizeVar';
 
 function formatErr(e: unknown): string {
   if (e instanceof RequestApiError)
@@ -146,6 +157,8 @@ const currentForm = ref<SelfAssessmentDetail | null>(null);
 const currentFormCheckItems = ref([] as SelfAssessmentCheckItemAnswer[]);
 const checkItemList = ref([] as CheckItemInfo[]);
 
+const { variable: reviewCardCollapsed } = useMemorizeVar<boolean>('evaluation-form-review-card-collapsed', false);
+
 const submitLoading = ref(false);
 const rejectLoading = ref(false);
 const reviewOpinion = ref<number | null>(null);
@@ -372,5 +385,9 @@ async function submitReview() {
   :deep(.ant-form-item) {
     margin-bottom: 0!important;
   }
+
+  &.collapsed :deep(.ant-card-body) {
+    display: none;
+  }
 }
 </style>