|
@@ -3,8 +3,9 @@
|
|
|
<Form
|
|
|
:formModel="formModel"
|
|
|
:formOptions="formOptions"
|
|
|
+ :extendFormModel="formExtendModel"
|
|
|
+ :extendFormOptions="formExtendOptions"
|
|
|
:load="loadData"
|
|
|
- :save="saveData"
|
|
|
/>
|
|
|
</template>
|
|
|
|
|
@@ -12,7 +13,7 @@
|
|
|
import { ref, type Ref } from 'vue';
|
|
|
import { useImageSimpleUploadCo } from '@/common/upload/ImageUploadCo';
|
|
|
import Form from './form.vue';
|
|
|
-import InheritorContent, { IchInfo } from '@/api/inheritor/InheritorContent';
|
|
|
+import InheritorContent, { IchExpandInfo, IchInfo } from '@/api/inheritor/InheritorContent';
|
|
|
import CommonContent from '@/api/CommonContent';
|
|
|
import type { IDynamicFormOptions } from '@imengyu/vue-dynamic-form';
|
|
|
import type { SelectProps } from 'ant-design-vue';
|
|
@@ -226,61 +227,8 @@ const formOptions = ref<IDynamicFormOptions>({
|
|
|
},
|
|
|
]
|
|
|
},
|
|
|
- {
|
|
|
- type: 'group-object', label: '扩展信息', name: 'expandInfo',
|
|
|
- childrenColProps: { span: 24 },
|
|
|
- children: [
|
|
|
- {
|
|
|
- type: 'select-id', label: '保护级别', name: 'protectLevel',
|
|
|
- additionalProps: {
|
|
|
- placeholder: '请选择保护级别',
|
|
|
- loadData: async () => (await CommonContent.getCategoryList(171)).map(p => ({ label: p.title, value: p.id, raw: p }))
|
|
|
- }
|
|
|
- },
|
|
|
- { type: 'text', label: '其他名称', name: 'otherNames', additionalProps: { placeholder: '请输入其他名称' } },
|
|
|
- { type: 'text', label: '实践方式', name: 'practice', additionalProps: { placeholder: '请输入实践方式' } },
|
|
|
- { type: 'text', label: '表现形式', name: 'expression', additionalProps: { placeholder: '请输入表现形式' } },
|
|
|
- { type: 'text', label: '遗产持有者', name: 'holders', additionalProps: { placeholder: '请输入遗产持有者' } },
|
|
|
- { type: 'text', label: '列入名录时间', name: 'joinday', additionalProps: { placeholder: '请选择列入名录时间' } },
|
|
|
- { type: 'text', label: '形成时间', name: 'formation', additionalProps: { placeholder: '请选择形成时间' } },
|
|
|
- { type: 'text', label: '分布区域', name: 'area', additionalProps: { placeholder: '请输入分布区域' } },
|
|
|
- { type: 'text', label: '源流', name: 'origin', additionalProps: { placeholder: '请输入源流' } },
|
|
|
- { type: 'text', label: '主要特点', name: 'feature', additionalProps: { placeholder: '请输入主要特点' } },
|
|
|
- { type: 'text', label: '重要功能', name: 'functions', additionalProps: { placeholder: '请输入重要功能' } },
|
|
|
- { type: 'text', label: '代表作品', name: 'works', additionalProps: { placeholder: '请输入代表作品' } },
|
|
|
- { type: 'text', label: '保护单位', name: 'unit', additionalProps: { placeholder: '请输入保护单位' } },
|
|
|
- { type: 'text', label: '保护情况', name: 'protect', additionalProps: { placeholder: '请输入保护情况' } },
|
|
|
- { type: 'text-area', label: '综合概述', name: 'overview', additionalProps: { placeholder: '请输入综合概述' } },
|
|
|
- { type: 'text', label: '代表人物', name: 'figures', additionalProps: { placeholder: '请输入代表人物' } },
|
|
|
- { type: 'text', label: '传承群体', name: 'group', additionalProps: { placeholder: '请输入传承群体' } },
|
|
|
- { type: 'text', label: '传承方式', name: 'inherit', additionalProps: { placeholder: '请输入传承方式' } },
|
|
|
- { type: 'text', label: '发展现状', name: 'develop', additionalProps: { placeholder: '请输入发展现状' } },
|
|
|
- { type: 'text', label: '相关民俗', name: 'customs', additionalProps: { placeholder: '请输入相关民俗' } },
|
|
|
- { type: 'text', label: '相关信仰', name: 'religion', additionalProps: { placeholder: '请输入相关信仰' } },
|
|
|
- { type: 'text', label: '文化空间', name: 'space', additionalProps: { placeholder: '请输入文化空间' } },
|
|
|
- { type: 'text', label: '自然环境', name: 'natural', additionalProps: { placeholder: '请输入自然环境' } },
|
|
|
- { type: 'text', label: '社会环境', name: 'social', additionalProps: { placeholder: '请输入社会环境' } },
|
|
|
- { type: 'text', label: '历史沿革', name: 'history', additionalProps: { placeholder: '请输入历史沿革' } },
|
|
|
- { type: 'text', label: '续存状态', name: 'existence', additionalProps: { placeholder: '请输入续存状态' } },
|
|
|
- { type: 'text', label: '价值', name: 'meaning', additionalProps: { placeholder: '请输入价值' } },
|
|
|
- { type: 'text', label: '相关实物', name: 'prop', additionalProps: { placeholder: '请输入相关实物' } },
|
|
|
- { type: 'text', label: '其他基本情况', name: 'other', additionalProps: { placeholder: '请输入其他基本情况' } },
|
|
|
- { type: 'mulit-image', label: '相关图片', name: 'images', additionalProps: { placeholder: '请上传相关图片', uploadCo: useImageSimpleUploadCo() } },
|
|
|
- { type: 'text', label: '相关习俗', name: 'folkCulture', additionalProps: { placeholder: '请输入相关习俗' } },
|
|
|
- { type: 'text', label: '文物古迹', name: 'culturalRelic', additionalProps: { placeholder: '请输入文物古迹' } },
|
|
|
- { type: 'text', label: '文献资料', name: 'literature', additionalProps: { placeholder: '请输入文献资料' } },
|
|
|
- { type: 'text', label: '组织机构', name: 'organization', additionalProps: { placeholder: '请输入组织机构' } },
|
|
|
- { type: 'text-area', label: '项目描述', name: 'description', additionalProps: { placeholder: '请输入项目描述' } },
|
|
|
- { type: 'text-area', label: '简介', name: 'desc', additionalProps: { placeholder: '请输入简介' } },
|
|
|
- { type: 'text', label: '申报地区', name: 'declarationRegion', additionalProps: { placeholder: '请输入申报地区' } },
|
|
|
- { type: 'text', label: '流行地区', name: 'popularRegion', additionalProps: { placeholder: '请输入流行地区' } },
|
|
|
- ]
|
|
|
- },
|
|
|
],
|
|
|
formRules: {
|
|
|
- expandInfo: {
|
|
|
- protectLevel: [{ required: true, message: '请选择保护级别' }],
|
|
|
- },
|
|
|
title: [{ required: true, message: '请输入标题' }],
|
|
|
region: [{ required: true, message: '请选择地区' }],
|
|
|
type: [{ required: true, message: '请选择类型' }],
|
|
@@ -291,12 +239,70 @@ const formOptions = ref<IDynamicFormOptions>({
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+const formExtendModel = ref(new IchExpandInfo()) as Ref<IchExpandInfo>;
|
|
|
+const formExtendOptions = ref<IDynamicFormOptions>({
|
|
|
+ formLabelCol: { span: 6 },
|
|
|
+ formWrapperCol: { span: 24 },
|
|
|
+ formAdditionaProps: {
|
|
|
+ layout: 'vertical',
|
|
|
+ scrollToFirstError: true,
|
|
|
+ },
|
|
|
+ formNestNameGenerateType: 'array',
|
|
|
+ formItems: [
|
|
|
+ {
|
|
|
+ type: 'select-id', label: '保护级别', name: 'protectLevel',
|
|
|
+ additionalProps: {
|
|
|
+ placeholder: '请选择保护级别',
|
|
|
+ loadData: async () => (await CommonContent.getCategoryList(171)).map(p => ({ label: p.title, value: p.id, raw: p }))
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { type: 'text', label: '其他名称', name: 'otherNames', additionalProps: { placeholder: '请输入其他名称' } },
|
|
|
+ { type: 'text', label: '实践方式', name: 'practice', additionalProps: { placeholder: '请输入实践方式' } },
|
|
|
+ { type: 'text', label: '表现形式', name: 'expression', additionalProps: { placeholder: '请输入表现形式' } },
|
|
|
+ { type: 'text', label: '遗产持有者', name: 'holders', additionalProps: { placeholder: '请输入遗产持有者' } },
|
|
|
+ { type: 'text', label: '列入名录时间', name: 'joinday', additionalProps: { placeholder: '请选择列入名录时间' } },
|
|
|
+ { type: 'text', label: '形成时间', name: 'formation', additionalProps: { placeholder: '请选择形成时间' } },
|
|
|
+ { type: 'text', label: '分布区域', name: 'area', additionalProps: { placeholder: '请输入分布区域' } },
|
|
|
+ { type: 'text', label: '源流', name: 'origin', additionalProps: { placeholder: '请输入源流' } },
|
|
|
+ { type: 'text', label: '主要特点', name: 'feature', additionalProps: { placeholder: '请输入主要特点' } },
|
|
|
+ { type: 'text', label: '重要功能', name: 'functions', additionalProps: { placeholder: '请输入重要功能' } },
|
|
|
+ { type: 'text', label: '代表作品', name: 'works', additionalProps: { placeholder: '请输入代表作品' } },
|
|
|
+ { type: 'text', label: '保护单位', name: 'unit', additionalProps: { placeholder: '请输入保护单位' } },
|
|
|
+ { type: 'text', label: '保护情况', name: 'protect', additionalProps: { placeholder: '请输入保护情况' } },
|
|
|
+ { type: 'text-area', label: '综合概述', name: 'overview', additionalProps: { placeholder: '请输入综合概述' } },
|
|
|
+ { type: 'text', label: '代表人物', name: 'figures', additionalProps: { placeholder: '请输入代表人物' } },
|
|
|
+ { type: 'text', label: '传承群体', name: 'group', additionalProps: { placeholder: '请输入传承群体' } },
|
|
|
+ { type: 'text', label: '传承方式', name: 'inherit', additionalProps: { placeholder: '请输入传承方式' } },
|
|
|
+ { type: 'text', label: '发展现状', name: 'develop', additionalProps: { placeholder: '请输入发展现状' } },
|
|
|
+ { type: 'text', label: '相关民俗', name: 'customs', additionalProps: { placeholder: '请输入相关民俗' } },
|
|
|
+ { type: 'text', label: '相关信仰', name: 'religion', additionalProps: { placeholder: '请输入相关信仰' } },
|
|
|
+ { type: 'text', label: '文化空间', name: 'space', additionalProps: { placeholder: '请输入文化空间' } },
|
|
|
+ { type: 'text', label: '自然环境', name: 'natural', additionalProps: { placeholder: '请输入自然环境' } },
|
|
|
+ { type: 'text', label: '社会环境', name: 'social', additionalProps: { placeholder: '请输入社会环境' } },
|
|
|
+ { type: 'text', label: '历史沿革', name: 'history', additionalProps: { placeholder: '请输入历史沿革' } },
|
|
|
+ { type: 'text', label: '续存状态', name: 'existence', additionalProps: { placeholder: '请输入续存状态' } },
|
|
|
+ { type: 'text', label: '价值', name: 'meaning', additionalProps: { placeholder: '请输入价值' } },
|
|
|
+ { type: 'text', label: '相关实物', name: 'prop', additionalProps: { placeholder: '请输入相关实物' } },
|
|
|
+ { type: 'text', label: '其他基本情况', name: 'other', additionalProps: { placeholder: '请输入其他基本情况' } },
|
|
|
+ { type: 'mulit-image', label: '相关图片', name: 'images', additionalProps: { placeholder: '请上传相关图片', uploadCo: useImageSimpleUploadCo() } },
|
|
|
+ { type: 'text', label: '相关习俗', name: 'folkCulture', additionalProps: { placeholder: '请输入相关习俗' } },
|
|
|
+ { type: 'text', label: '文物古迹', name: 'culturalRelic', additionalProps: { placeholder: '请输入文物古迹' } },
|
|
|
+ { type: 'text', label: '文献资料', name: 'literature', additionalProps: { placeholder: '请输入文献资料' } },
|
|
|
+ { type: 'text', label: '组织机构', name: 'organization', additionalProps: { placeholder: '请输入组织机构' } },
|
|
|
+ { type: 'text-area', label: '项目描述', name: 'description', additionalProps: { placeholder: '请输入项目描述' } },
|
|
|
+ { type: 'text-area', label: '简介', name: 'desc', additionalProps: { placeholder: '请输入简介' } },
|
|
|
+ { type: 'text', label: '申报地区', name: 'declarationRegion', additionalProps: { placeholder: '请输入申报地区' } },
|
|
|
+ { type: 'text', label: '流行地区', name: 'popularRegion', additionalProps: { placeholder: '请输入流行地区' } },
|
|
|
+ ],
|
|
|
+ formRules: {
|
|
|
+ protectLevel: [{ required: true, message: '请选择保护级别' }],
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
async function loadData() {
|
|
|
formModel.value = await InheritorContent.getIchInfo();
|
|
|
formModel.value.expandInfo = await InheritorContent.getIchExpandInfo();
|
|
|
-}
|
|
|
-async function saveData(model: IchInfo) {
|
|
|
- await InheritorContent.saveExpandInfo(model.expandInfo);
|
|
|
+ formExtendModel.value = formModel.value.expandInfo;
|
|
|
}
|
|
|
|
|
|
</script>
|