|
@@ -6,127 +6,128 @@
|
|
|
<!-- 表单 -->
|
|
|
<section class="main-section ">
|
|
|
<div class="content">
|
|
|
- <div class="title">
|
|
|
+ <div class="title left-right">
|
|
|
+ <span style="width:160px;"></span>
|
|
|
<h2>非遗数字化资源信息校对</h2>
|
|
|
+ <small class="text-secondary">技术支持:18649931391</small>
|
|
|
</div>
|
|
|
|
|
|
<a-tabs v-model:activeKey="activeKey" centered>
|
|
|
<a-tab-pane key="1" tab="非遗项目">
|
|
|
- <EmptyToRecord title="非遗项目" :model="ichData" @edit="router.push({ name: 'FormIch' })">
|
|
|
- <a-alert v-if="ichData?.progress == -1" message="提交的信息被退回,您可以去修改" type="error" class="mt-3" showIcon>
|
|
|
+ <EmptyToRecord title="非遗项目" :loader="ichData" @edit="router.push({ name: 'FormIch' })">
|
|
|
+ <a-alert v-if="ichData.content.value!.progress == -1" message="提交的信息被退回,您可以去修改" type="error" class="mt-3" showIcon>
|
|
|
<template #action>
|
|
|
<a-button size="small" type="primary" @click="router.push({ name: 'FormIch' })">去修改</a-button>
|
|
|
</template>
|
|
|
</a-alert>
|
|
|
- <a-descriptions class="mt-3" title="非遗项目信息" v-if="ichData" bordered :column="{ xs: 1, sm: 1, md: 1, lg: 2 }">
|
|
|
- <a-descriptions-item label="标题"><ShowValueOrNull :value="ichData.title" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="简介" :span="3"><SimpleRichHtml :contents="[ ichData.intro ]" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="描述" :span="3"><SimpleRichHtml :contents="[ ichData.description ]" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="类别"><ShowValueOrNull :value="ichData.ichTypeText" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="级别"><ShowValueOrNull :value="ichData.levelText" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="级别"><ShowValueOrNull :value="ichData.levelText" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="批次"><ShowValueOrNull :value="ichData.batchText" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="区域"><ShowValueOrNull :value="ichData.regionText" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="保护单位"><ShowValueOrNull :value="ichData.unit" /></a-descriptions-item>
|
|
|
- <a-descriptions-item v-if="ichData.image" label="图片">
|
|
|
- <a-image :src="ichData.image" style="max-width:300px;" />
|
|
|
+ <a-descriptions class="mt-3" title="非遗项目信息" v-if="ichData.content.value" bordered :column="{ xs: 1, sm: 1, md: 1, lg: 2 }">
|
|
|
+ <a-descriptions-item label="标题"><ShowValueOrNull :value="ichData.content.value.title" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="简介" :span="3"><SimpleRichHtml :contents="[ ichData.content.value.intro ]" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="类别"><ShowValueOrNull :value="ichData.content.value.ichTypeText" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="级别"><ShowValueOrNull :value="ichData.content.value.levelText" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="级别"><ShowValueOrNull :value="ichData.content.value.levelText" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="批次"><ShowValueOrNull :value="ichData.content.value.batchText" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="区域"><ShowValueOrNull :value="ichData.content.value.regionText" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="保护单位"><ShowValueOrNull :value="ichData.content.value.unit" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item v-if="ichData.content.value.image" label="图片">
|
|
|
+ <a-image :src="ichData.content.value.image" style="max-width:300px;" />
|
|
|
</a-descriptions-item>
|
|
|
- <a-descriptions-item v-if="ichData.video" label="视频">
|
|
|
- <video controls :src="ichData.video" style="max-width:300px;" />
|
|
|
+ <a-descriptions-item v-if="ichData.content.value.video" label="视频">
|
|
|
+ <video controls :src="ichData.content.value.video" style="max-width:300px;" />
|
|
|
</a-descriptions-item>
|
|
|
- <a-descriptions-item v-if="ichData.audio" label="音频">
|
|
|
- <audio controls :src="ichData.audio" style="max-width:300px;" />
|
|
|
+ <a-descriptions-item v-if="ichData.content.value.audio" label="音频">
|
|
|
+ <audio controls :src="ichData.content.value.audio" style="max-width:300px;" />
|
|
|
</a-descriptions-item>
|
|
|
- <a-descriptions-item label="类型"><ShowValueOrNull :value="ichData.typeText" /></a-descriptions-item>
|
|
|
- <a-descriptions-item v-if="ichData.latitude && ichData.longitude" label="地图">
|
|
|
- <SimplePointedMap :longitude="ichData.longitude" :latitude="ichData.latitude" :zoom="15" height="300px" />
|
|
|
+ <a-descriptions-item label="类型"><ShowValueOrNull :value="ichData.content.value.typeText" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item v-if="ichData.content.value.latitude && ichData.content.value.longitude" label="地图">
|
|
|
+ <SimplePointedMap :longitude="ichData.content.value.longitude" :latitude="ichData.content.value.latitude" :zoom="15" height="300px" />
|
|
|
</a-descriptions-item>
|
|
|
</a-descriptions>
|
|
|
</EmptyToRecord>
|
|
|
</a-tab-pane>
|
|
|
<a-tab-pane key="2" tab="传承人">
|
|
|
- <EmptyToRecord title="传承人" :model="inheritorData" @edit="router.push({ name: 'FormInheritor' })">
|
|
|
- <a-alert v-if="inheritorData?.progress == -1" message="提交的信息被退回,您可以去修改" type="error" class="mt-3" showIcon>
|
|
|
+ <EmptyToRecord title="传承人" :loader="inheritorData" @edit="router.push({ name: 'FormInheritor' })">
|
|
|
+ <a-alert v-if="inheritorData.content.value!.progress == -1" message="提交的信息被退回,您可以去修改" type="error" class="mt-3" showIcon>
|
|
|
<template #action>
|
|
|
<a-button size="small" type="primary" @click="router.push({ name: 'FormInheritor' })">去修改</a-button>
|
|
|
</template>
|
|
|
</a-alert>
|
|
|
- <a-descriptions class="mt-3" title="传承人信息" v-if="inheritorData" bordered :column="{ xs: 1, sm: 1, md: 1, lg: 2 }">
|
|
|
- <a-descriptions-item label="名字"><ShowValueOrNull :value="inheritorData.title" /></a-descriptions-item>
|
|
|
- <a-descriptions-item v-if="inheritorData.image" label="头像">
|
|
|
- <a-avatar :src="inheritorData.image" size="large" />
|
|
|
+ <a-descriptions class="mt-3" title="传承人信息" v-if="inheritorData.content.value" bordered :column="{ xs: 1, sm: 1, md: 1, lg: 2 }">
|
|
|
+ <a-descriptions-item label="名字"><ShowValueOrNull :value="inheritorData.content.value.title" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item v-if="inheritorData.content.value.image" label="头像">
|
|
|
+ <a-avatar :src="inheritorData.content.value.image" size="large" />
|
|
|
</a-descriptions-item>
|
|
|
- <a-descriptions-item label="传承人等级"><ShowValueOrNull :value="inheritorData.levelText" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="传承人批次"><ShowValueOrNull :value="inheritorData.batchText" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="别称"><ShowValueOrNull :value="inheritorData.alsoName" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="时代"><ShowValueOrNull :value="inheritorData.age" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="出生地"><ShowValueOrNull :value="inheritorData.birthplace" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="民族"><ShowValueOrNull :value="inheritorData.nation" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="出生日期"><ShowValueOrNull :value="inheritorData.dateBirth" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="逝世日期"><ShowValueOrNull :value="inheritorData.deathBirth" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="单位"><ShowValueOrNull :value="inheritorData.unit" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="区域"><ShowValueOrNull :value="inheritorData.regionText" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="传承人等级"><ShowValueOrNull :value="inheritorData.content.value.levelText" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="传承人批次"><ShowValueOrNull :value="inheritorData.content.value.batchText" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="别称"><ShowValueOrNull :value="inheritorData.content.value.alsoName" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="时代"><ShowValueOrNull :value="inheritorData.content.value.age" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="出生地"><ShowValueOrNull :value="inheritorData.content.value.birthplace" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="民族"><ShowValueOrNull :value="inheritorData.content.value.nation" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="出生日期"><ShowValueOrNull :value="inheritorData.content.value.dateBirth" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="逝世日期"><ShowValueOrNull :value="inheritorData.content.value.deathBirth" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="单位"><ShowValueOrNull :value="inheritorData.content.value.unit" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="区域"><ShowValueOrNull :value="inheritorData.content.value.regionText" /></a-descriptions-item>
|
|
|
|
|
|
- <a-descriptions-item label="简介" :span="3"><SimpleRichHtml :contents="[ inheritorData.intro ]" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="描述" :span="3"><SimpleRichHtml :contents="[ inheritorData.content! ]" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="奖项/成就" :span="3"><SimpleRichHtml :contents="[ inheritorData.prize ]" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="简介" :span="3"><SimpleRichHtml :contents="[ inheritorData.content.value.intro ]" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="描述" :span="3"><SimpleRichHtml :contents="[ inheritorData.content.value.content! ]" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="奖项/成就" :span="3"><SimpleRichHtml :contents="[ inheritorData.content.value.prize ]" /></a-descriptions-item>
|
|
|
|
|
|
- <a-descriptions-item v-if="inheritorData.typicalImages" label="代表性图片">
|
|
|
- <ImageGrid :data="inheritorData.typicalImages" />
|
|
|
+ <a-descriptions-item v-if="inheritorData.content.value.images" label="代表性图片">
|
|
|
+ <ImageGrid :data="inheritorData.content.value.images" />
|
|
|
</a-descriptions-item>
|
|
|
- <a-descriptions-item v-if="inheritorData.video" label="视频">
|
|
|
- <video controls :src="inheritorData.video" style="max-width:300px;" />
|
|
|
+ <a-descriptions-item v-if="inheritorData.content.value.video" label="视频">
|
|
|
+ <video controls :src="inheritorData.content.value.video" style="max-width:300px;" />
|
|
|
</a-descriptions-item>
|
|
|
- <a-descriptions-item v-if="inheritorData.audio" label="音频">
|
|
|
- <audio controls :src="inheritorData.audio" style="max-width:300px;" />
|
|
|
+ <a-descriptions-item v-if="inheritorData.content.value.audio" label="音频">
|
|
|
+ <audio controls :src="inheritorData.content.value.audio" style="max-width:300px;" />
|
|
|
</a-descriptions-item>
|
|
|
</a-descriptions>
|
|
|
</EmptyToRecord>
|
|
|
</a-tab-pane>
|
|
|
<a-tab-pane key="3" tab="传习所">
|
|
|
- <EmptyToRecord title="传习所" :model="seminarData" @edit="router.push({ name: 'FormSeminar' })">
|
|
|
- <a-alert v-if="seminarData?.progress == -1" message="提交的信息被退回,您可以去修改" type="warning" showIcon></a-alert>
|
|
|
- <a-descriptions class="mt-3" title="传习所信息" v-if="seminarData" bordered :column="{ xs: 1, sm: 1, md: 1, lg: 2 }">
|
|
|
- <a-descriptions-item label="标题"><ShowValueOrNull :value="seminarData.title" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="简介" :span="3"><SimpleRichHtml :contents="[ seminarData.desc as string ]" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="介绍" :span="3"><SimpleRichHtml :contents="[ seminarData.content as string ]" /></a-descriptions-item>
|
|
|
- <a-descriptions-item v-if="seminarData.latitude && seminarData.longitude" label="地图">
|
|
|
- <SimplePointedMap :longitude="seminarData.longitude" :latitude="seminarData.latitude" :zoom="15" height="300px" />
|
|
|
+ <EmptyToRecord title="传习所" :loader="seminarData" @edit="router.push({ name: 'FormSeminar' })">
|
|
|
+ <a-alert v-if="seminarData.content.value?.progress == -1" message="提交的信息被退回,您可以去修改" type="warning" showIcon></a-alert>
|
|
|
+ <a-descriptions class="mt-3" title="传习所信息" v-if="seminarData.content.value" bordered :column="{ xs: 1, sm: 1, md: 1, lg: 2 }">
|
|
|
+ <a-descriptions-item label="标题"><ShowValueOrNull :value="seminarData.content.value.title" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="简介" :span="3"><SimpleRichHtml :contents="[ seminarData.content.value.desc as string ]" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="介绍" :span="3"><SimpleRichHtml :contents="[ seminarData.content.value.content as string ]" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item v-if="seminarData.content.value.latitude && seminarData.content.value.longitude" label="地图">
|
|
|
+ <SimplePointedMap :longitude="seminarData.content.value.longitude" :latitude="seminarData.content.value.latitude" :zoom="15" height="300px" />
|
|
|
</a-descriptions-item>
|
|
|
- <a-descriptions-item label="地址"><ShowValueOrNull :value="seminarData.address" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="批次"><ShowValueOrNull :value="seminarData.batchText" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="级别"><ShowValueOrNull :value="seminarData.levelText" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="地址"><ShowValueOrNull :value="seminarData.content.value.address" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="批次"><ShowValueOrNull :value="seminarData.content.value.batchText" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="级别"><ShowValueOrNull :value="seminarData.content.value.levelText" /></a-descriptions-item>
|
|
|
|
|
|
- <a-descriptions-item label="联系人"><ShowValueOrNull :value="seminarData.contact" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="联系电话"><ShowValueOrNull :value="seminarData.mobile" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="联系人"><ShowValueOrNull :value="seminarData.content.value.contact" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="联系电话"><ShowValueOrNull :value="seminarData.content.value.mobile" /></a-descriptions-item>
|
|
|
|
|
|
- <a-descriptions-item label="单位类型"><ShowValueOrNull :value="seminarData.ichSiteTypeText" /></a-descriptions-item>
|
|
|
- <a-descriptions-item label="单位"><ShowValueOrNull :value="seminarData.unit" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="单位类型"><ShowValueOrNull :value="seminarData.content.value.ichSiteTypeText" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="单位"><ShowValueOrNull :value="seminarData.content.value.unit" /></a-descriptions-item>
|
|
|
|
|
|
- <a-descriptions-item v-if="seminarData.latitude && seminarData.longitude" label="地图">
|
|
|
- <SimplePointedMap :longitude="seminarData.longitude" :latitude="seminarData.latitude" :zoom="15" height="300px" />
|
|
|
+ <a-descriptions-item v-if="seminarData.content.value.latitude && seminarData.content.value.longitude" label="地图">
|
|
|
+ <SimplePointedMap :longitude="seminarData.content.value.longitude" :latitude="seminarData.content.value.latitude" :zoom="15" height="300px" />
|
|
|
</a-descriptions-item>
|
|
|
|
|
|
- <a-descriptions-item v-if="seminarData.image" label="图片">
|
|
|
- <a-image :src="seminarData.image" style="max-width:300px;" />
|
|
|
+ <a-descriptions-item v-if="seminarData.content.value.image" label="图片">
|
|
|
+ <a-image :src="seminarData.content.value.image" style="max-width:300px;" />
|
|
|
</a-descriptions-item>
|
|
|
- <a-descriptions-item v-if="seminarData.video" label="视频">
|
|
|
- <video controls :src="seminarData.video" style="max-width:300px;" />
|
|
|
+ <a-descriptions-item v-if="seminarData.content.value.video" label="视频">
|
|
|
+ <video controls :src="seminarData.content.value.video" style="max-width:300px;" />
|
|
|
</a-descriptions-item>
|
|
|
- <a-descriptions-item v-if="seminarData.audio" label="音频">
|
|
|
- <audio controls :src="seminarData.audio" style="max-width:300px;" />
|
|
|
+ <a-descriptions-item v-if="seminarData.content.value.audio" label="音频">
|
|
|
+ <audio controls :src="seminarData.content.value.audio" style="max-width:300px;" />
|
|
|
</a-descriptions-item>
|
|
|
- <a-descriptions-item label="类型"><ShowValueOrNull :value="seminarData.typeText" /></a-descriptions-item>
|
|
|
+ <a-descriptions-item label="类型"><ShowValueOrNull :value="seminarData.content.value.typeText" /></a-descriptions-item>
|
|
|
|
|
|
</a-descriptions>
|
|
|
</EmptyToRecord>
|
|
|
</a-tab-pane>
|
|
|
<a-tab-pane key="4" tab="作品">
|
|
|
- <EmptyToRecord title="作品" buttonText="新增作品" :model="inheritorData?.works" :showEdited="false" @edit="router.push({ name: 'FormWork' })">
|
|
|
+ <EmptyToRecord title="作品" buttonText="新增作品" :loader="inheritorData" :showEdited="false" @edit="router.push({ name: 'FormWork' })">
|
|
|
<div class="d-flex justify-content-end">
|
|
|
<a-button type="primary" @click="router.push({ name: 'FormWork' })">+ 新增</a-button>
|
|
|
</div>
|
|
|
- <a-list item-layout="horizontal" :data-source="inheritorData?.works || []">
|
|
|
+ <a-list item-layout="horizontal" :data-source="inheritorData?.content.value?.works || []">
|
|
|
<template #renderItem="{ item }">
|
|
|
<a-list-item>
|
|
|
<a-list-item-meta
|
|
@@ -193,35 +194,26 @@ import SimpleRichHtml from '@/components/display/SimpleRichHtml.vue';
|
|
|
import ShowValueOrNull from '@/components/dynamicf/Display/ShowValueOrNull.vue';
|
|
|
import EmptyToRecord from '@/components/parts/EmptyToRecord.vue';
|
|
|
import { SettingsUtils } from '@imengyu/imengyu-utils';
|
|
|
+import { useSimpleDataLoader } from '@/composeable/SimpleDataLoader';
|
|
|
|
|
|
const router = useRouter();
|
|
|
const route = useRoute();
|
|
|
const activeKey = ref(route.query.tab as string || '1');
|
|
|
-const ichData = ref<IchInfo>();
|
|
|
-const inheritorData = ref<InheritorInfo>();
|
|
|
-const seminarData = ref<SeminarInfo>();
|
|
|
const planData = ref<PlanInfo[]>([]);
|
|
|
const showInMessage = ref(false);
|
|
|
|
|
|
watch(activeKey, (newValue) => {
|
|
|
router.replace({ query: { tab: newValue } });
|
|
|
-})
|
|
|
-onMounted(() => {
|
|
|
- InheritorContent.getIchInfo(undefined).then(data => {
|
|
|
- ichData.value = data;
|
|
|
- InheritorContent.getPlanList(ichData.value.id).then(data => {
|
|
|
- planData.value = data;
|
|
|
- });
|
|
|
- });
|
|
|
- InheritorContent.getInheritorInfo(undefined).then(data => {
|
|
|
- inheritorData.value = data;
|
|
|
- openInMessage();
|
|
|
- });
|
|
|
- InheritorContent.getSeminarInfo(undefined).then(data => {
|
|
|
- seminarData.value = data;
|
|
|
- });
|
|
|
+});
|
|
|
+
|
|
|
+const ichData = useSimpleDataLoader(async () => {
|
|
|
+ const data = await InheritorContent.getIchInfo(undefined);
|
|
|
+ planData.value = await InheritorContent.getPlanList(data.id);
|
|
|
+ return data;
|
|
|
+});
|
|
|
+const inheritorData = useSimpleDataLoader(async () => await InheritorContent.getInheritorInfo(undefined));
|
|
|
+const seminarData = useSimpleDataLoader(async () => await InheritorContent.getSeminarInfo(undefined));
|
|
|
|
|
|
-})
|
|
|
|
|
|
function openInMessage() {
|
|
|
const lastTime = new Date(parseInt('' + SettingsUtils.getSettings('inheritorShowInMessageLastTime', 0)));
|