Bladeren bron

💊 修复审核后状态未显示问题

快乐的梦鱼 3 weken geleden
bovenliggende
commit
5cf144fade

+ 4 - 0
src/pages/collect/assessment/components/SelfAssessmentFormDisplay.vue

@@ -9,6 +9,8 @@
       :current-form-check-items="currentFormCheckItems"
       :readonly="readonly"
     />
+    <Divider />
+    <SelfAssessmentResultBlock :current-form="currentForm" />
   </FlexCol>
 </template>
 
@@ -17,7 +19,9 @@ import { computed, ref } from 'vue';
 import type { CheckItemInfo, SelfAssessmentCheckItemAnswer, SelfAssessmentDetail } from '@/api/collect/AssessmentContent';
 import type { IDynamicFormOptions } from '@/components/dynamic';
 import SelfAssessmentFormBlock from './SelfAssessmentFormBlock.vue';
+import SelfAssessmentResultBlock from './SelfAssessmentResultBlock.vue';
 import FlexCol from '@/components/layout/FlexCol.vue';
+import Divider from '@/components/display/Divider.vue';
 
 const props = withDefaults(defineProps<{
   currentForm: SelfAssessmentDetail;

+ 51 - 0
src/pages/collect/assessment/components/SelfAssessmentResultBlock.vue

@@ -0,0 +1,51 @@
+<template>
+  <FlexCol gap="gap.lg">
+    <FlexCol v-for="sec in reviewSections" :key="sec.key" gap="gap.lg">
+      <Text bold :text="sec.title" />
+      <FlexRow wrap align="center" gap="gap.md">
+        <CheckBox
+          v-for="opt in opinionOptions"
+          :key="`${sec.key}-${opt.value}`"
+          disabled
+          :model-value="currentForm[sec.opinionField] === opt.value"
+          :text="opt.label"
+          :check-size="28"
+        />
+      </FlexRow>
+      <FlexRow align="center" gap="gap.sm">
+        <Text text="评分:" />
+        <Text v-if="currentForm[sec.pointsField]" :text="String(currentForm[sec.pointsField])" />
+        <Text v-else color="text.second" text="(待审核填写)" />
+      </FlexRow>
+    </FlexCol>
+  </FlexCol>
+</template>
+
+<script setup lang="ts">
+import type { SelfAssessmentDetail } from '@/api/collect/AssessmentContent';
+import FlexCol from '@/components/layout/FlexCol.vue';
+import FlexRow from '@/components/layout/FlexRow.vue';
+import Text from '@/components/basic/Text.vue';
+import CheckBox from '@/components/form/CheckBox.vue';
+
+type OpinionField = 'ichUnit' | 'county' | 'district' | 'province';
+type PointsField = 'unitPoints' | 'countyPoints' | 'districtPoints' | 'provincePoints';
+
+defineProps<{
+  currentForm: SelfAssessmentDetail;
+}>();
+
+const opinionOptions = [
+  { label: '优秀', value: 1 },
+  { label: '合格', value: 2 },
+  { label: '不合格', value: 3 },
+  { label: '丧失传承能力', value: 4 },
+  { label: '取消资格', value: 5 },
+];
+const reviewSections: { key: string; title: string; opinionField: OpinionField; pointsField: PointsField }[] = [
+  { key: 'ichUnit', title: '1. 项目保护单位意见', opinionField: 'ichUnit', pointsField: 'unitPoints' },
+  { key: 'county', title: '2. 县(区)文旅部门审核意见', opinionField: 'county', pointsField: 'countyPoints' },
+  { key: 'district', title: '3. 设区市文旅部门、省非遗中心审核意见', opinionField: 'district', pointsField: 'districtPoints' },
+  { key: 'province', title: '4. 省文化和旅游厅意见', opinionField: 'province', pointsField: 'provincePoints' },
+];
+</script>

+ 0 - 44
src/pages/collect/assessment/evaluation-form.vue

@@ -22,37 +22,6 @@
               :readonly="false"
             />
             <Divider />
-            <FlexCol gap="gap.lg">
-              <FlexCol v-for="(title, secIdx) in externalReviewSectionTitles" :key="secIdx" gap="gap.sm">
-                <Text bold :text="title.title" />
-                <Field v-model="title.suggestion" :disabled="title.disabled" placeholder="(待终审填写)" />
-                <FlexRow wrap align="center" gap="gap.md">
-                  <CheckBox
-                    v-for="(label, i) in externalReviewScoreRow1"
-                    :key="`${secIdx}-r1-${i}`"
-                    disabled
-                    :model-value="false"
-                    :text="label"
-                    :check-size="28"
-                  />
-                </FlexRow>
-                <FlexRow wrap align="center" gap="gap.md">
-                  <CheckBox
-                    v-for="(label, i) in externalReviewScoreRow2"
-                    :key="`${secIdx}-r2-${i}`"
-                    disabled
-                    :model-value="false"
-                    :text="label"
-                    :check-size="28"
-                  />
-                </FlexRow>
-                <FlexCol align="flex-end">
-                  <Text color="text.second" text="填写单位(盖章)" />
-                  <Text color="text.second" text="年 月 日" />
-                </FlexCol>
-              </FlexCol>
-            </FlexCol>
-            <Divider />
             <Button type="primary" block :loading="submitLoading" @click="saveForm">保存评估表</Button>
             <Button v-if="currentForm?.progress === 0" type="primary" block :loading="submitLoading" @click="submitForm">提交审核</Button>
             <Button :loading="submitLoading" @click="downloadForm">下载评估表PDF</Button>
@@ -82,26 +51,13 @@ import Result from '@/components/feedback/Result.vue';
 import FlexCol from '@/components/layout/FlexCol.vue';
 import Height from '@/components/layout/space/Height.vue';
 import SimplePageContentLoader from '@/components/loader/SimplePageContentLoader.vue';
-import FlexRow from '@/components/layout/FlexRow.vue';
-import Text from '@/components/basic/Text.vue';
 import XBarSpace from '@/components/layout/space/XBarSpace.vue';
 import Divider from '@/components/display/Divider.vue';
-import CheckBox from '@/components/form/CheckBox.vue';
-import Field from '@/components/form/Field.vue';
 import SelfAssessmentFormDisplay from './components/SelfAssessmentFormDisplay.vue';
 import { buildSelfAssessmentFormOptions } from './evaluationFormOptions';
 import { useImageSimpleUploadCo } from '@/common/components/upload/ImageUploadCo';
 import { injectAppConfiguration } from '@/api/system/useAppConfiguration';
 
-/** 评估表下方展示用:各级审核意见(不接数据、禁用) */
-const externalReviewSectionTitles = ref([
-  { title: '1. 项目保护单位意见', suggestion: '', disabled: true },
-  { title: '2. 县(区)文旅部门审核意见', suggestion: '', disabled: true },
-  { title: '3. 设区市文旅部门、省非遗中心审核意见', suggestion: '', disabled: true },
-]);
-const externalReviewScoreRow1 = ['优秀', '合格', '不合格'] as const;
-const externalReviewScoreRow2 = ['丧失传承能力', '取消资格'] as const;
-
 let loaded = false;
 
 const { querys } = useLoadQuerys({