|
@@ -20,6 +20,10 @@
|
|
|
<Text v-if="currentForm[sec.pointsField]" :text="String(currentForm[sec.pointsField])" />
|
|
<Text v-if="currentForm[sec.pointsField]" :text="String(currentForm[sec.pointsField])" />
|
|
|
<Text v-else color="text.second" text="(待审核填写)" />
|
|
<Text v-else color="text.second" text="(待审核填写)" />
|
|
|
</FlexRow>
|
|
</FlexRow>
|
|
|
|
|
+ <FlexRow v-if="sec.reason" align="start" gap="gap.sm">
|
|
|
|
|
+ <Text text="退回/修改意见:" color="text.warning" />
|
|
|
|
|
+ <Text :text="sec.reason" color="text.warning" />
|
|
|
|
|
+ </FlexRow>
|
|
|
<Alert
|
|
<Alert
|
|
|
v-if="currentForm.rejectType === sec.rejectTypeValue && currentForm.rejectReason"
|
|
v-if="currentForm.rejectType === sec.rejectTypeValue && currentForm.rejectReason"
|
|
|
type="danger"
|
|
type="danger"
|
|
@@ -31,7 +35,10 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
|
|
+import { computed } from 'vue';
|
|
|
import type { SelfAssessmentDetail } from '@/api/collect/AssessmentContent';
|
|
import type { SelfAssessmentDetail } from '@/api/collect/AssessmentContent';
|
|
|
|
|
+import { LEVEL_NATIONAL } from '@/api/collect/AssessmentConsts';
|
|
|
|
|
+import { GROUP_PROTECT_UNIT, GROUP_DISTRICT, GROUP_DISTRICT_CENTER, GROUP_DISTRICT_ST, GROUP_DISTRICT_ND, GROUP_DISTRICT_RD, GROUP_DISTRICT_TH, GROUP_PROVINCE } from '../composeabe/GroupData';
|
|
|
import FlexCol from '@/components/layout/FlexCol.vue';
|
|
import FlexCol from '@/components/layout/FlexCol.vue';
|
|
|
import FlexRow from '@/components/layout/FlexRow.vue';
|
|
import FlexRow from '@/components/layout/FlexRow.vue';
|
|
|
import Text from '@/components/basic/Text.vue';
|
|
import Text from '@/components/basic/Text.vue';
|
|
@@ -39,8 +46,17 @@ import CheckBox from '@/components/form/CheckBox.vue';
|
|
|
import Tag from '@/components/display/Tag.vue';
|
|
import Tag from '@/components/display/Tag.vue';
|
|
|
import Alert from '@/components/feedback/Alert.vue';
|
|
import Alert from '@/components/feedback/Alert.vue';
|
|
|
|
|
|
|
|
-type OpinionField = 'ichUnit' | 'county' | 'district' | 'province';
|
|
|
|
|
-type PointsField = 'unitPoints' | 'countyPoints' | 'districtPoints' | 'provincePoints';
|
|
|
|
|
|
|
+type OpinionField = 'ichUnit' | 'county' | 'district' | 'province' | 'districtSt' | 'districtNd' | 'districtRd' | 'districtTh';
|
|
|
|
|
+type PointsField = 'unitPoints' | 'countyPoints' | 'districtPoints' | 'provincePoints' | 'districtStPoints' | 'districtNdPoints' | 'districtRdPoints' | 'districtThPoints';
|
|
|
|
|
+
|
|
|
|
|
+interface ReviewSection {
|
|
|
|
|
+ key: string;
|
|
|
|
|
+ title: string;
|
|
|
|
|
+ opinionField: OpinionField;
|
|
|
|
|
+ pointsField: PointsField;
|
|
|
|
|
+ rejectTypeValue: number;
|
|
|
|
|
+ reason: string;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
const props = defineProps<{
|
|
const props = defineProps<{
|
|
|
currentForm: SelfAssessmentDetail;
|
|
currentForm: SelfAssessmentDetail;
|
|
@@ -53,10 +69,21 @@ const opinionOptions = [
|
|
|
{ label: '丧失传承能力', value: 4 },
|
|
{ label: '丧失传承能力', value: 4 },
|
|
|
{ label: '取消资格', value: 5 },
|
|
{ label: '取消资格', value: 5 },
|
|
|
];
|
|
];
|
|
|
-const reviewSections: { key: string; title: string; opinionField: OpinionField; pointsField: PointsField; rejectTypeValue: number }[] = [
|
|
|
|
|
- { key: 'ichUnit', title: '1. 项目保护单位意见', opinionField: 'ichUnit', pointsField: 'unitPoints', rejectTypeValue: 2 },
|
|
|
|
|
- { key: 'county', title: '2. 县(区)文旅部门审核意见', opinionField: 'county', pointsField: 'countyPoints', rejectTypeValue: 3 },
|
|
|
|
|
- { key: 'district', title: '3. 设区市文旅部门、省非遗中心审核意见', opinionField: 'district', pointsField: 'districtPoints', rejectTypeValue: 4 },
|
|
|
|
|
- { key: 'province', title: '4. 省文化和旅游厅意见', opinionField: 'province', pointsField: 'provincePoints', rejectTypeValue: 5 },
|
|
|
|
|
-];
|
|
|
|
|
|
|
+
|
|
|
|
|
+const reviewSections = computed<ReviewSection[]>(() => {
|
|
|
|
|
+ const reasons = props.currentForm.reasons || {};
|
|
|
|
|
+ const result: (Omit<ReviewSection, 'reason'> & { groupId: number })[] = [
|
|
|
|
|
+ { key: 'ichUnit', title: '1. 项目保护单位意见', opinionField: 'ichUnit', pointsField: 'unitPoints', rejectTypeValue: 2, groupId: GROUP_PROTECT_UNIT },
|
|
|
|
|
+ { key: 'county', title: '2. 县(区)文旅部门审核意见', opinionField: 'county', pointsField: 'countyPoints', rejectTypeValue: 3, groupId: GROUP_DISTRICT },
|
|
|
|
|
+ { key: 'district', title: '3. 设区市文旅部门、省非遗中心审核意见', opinionField: 'district', pointsField: 'districtPoints', rejectTypeValue: 4, groupId: GROUP_DISTRICT_CENTER },
|
|
|
|
|
+ { key: 'districtSt', title: '\u20033.1 项目负责人意见', opinionField: 'districtSt', pointsField: 'districtStPoints', rejectTypeValue: -1, groupId: GROUP_DISTRICT_ST },
|
|
|
|
|
+ { key: 'districtNd', title: '\u20033.2 部门主任意见', opinionField: 'districtNd', pointsField: 'districtNdPoints', rejectTypeValue: -1, groupId: GROUP_DISTRICT_ND },
|
|
|
|
|
+ { key: 'districtRd', title: '\u20033.3 分管领导意见', opinionField: 'districtRd', pointsField: 'districtRdPoints', rejectTypeValue: -1, groupId: GROUP_DISTRICT_RD },
|
|
|
|
|
+ { key: 'districtTh', title: '\u20033.4 公服处意见', opinionField: 'districtTh', pointsField: 'districtThPoints', rejectTypeValue: 4, groupId: GROUP_DISTRICT_TH },
|
|
|
|
|
+ ];
|
|
|
|
|
+ if (props.currentForm.level === LEVEL_NATIONAL) {
|
|
|
|
|
+ result.push({ key: 'province', title: '5. 省文化和旅游厅意见', opinionField: 'province', pointsField: 'provincePoints', rejectTypeValue: 5, groupId: GROUP_PROVINCE });
|
|
|
|
|
+ }
|
|
|
|
|
+ return result.map((sec) => ({ ...sec, reason: reasons[sec.groupId] || '' }));
|
|
|
|
|
+});
|
|
|
</script>
|
|
</script>
|