Bladeren bron

📦 增加乡源荣光表单定义

快乐的梦鱼 1 maand geleden
bovenliggende
commit
c0f4a003b9
3 gewijzigde bestanden met toevoegingen van 113 en 30 verwijderingen
  1. 9 0
      src/api/inhert/VillageInfoApi.ts
  2. 102 0
      src/pages/dig/forms/data/glory.ts
  3. 2 30
      src/pages/dig/forms/forms.ts

+ 9 - 0
src/api/inhert/VillageInfoApi.ts

@@ -39,6 +39,8 @@ export class CommonInfoModel extends DataModel<CommonInfoModel> {
         { clientSide: 'arrayInt', serverSide: 'original' },
       ],
       villageType: { clientSide: 'number', serverSide: 'number' },
+      entityType: { clientSide: 'splitCommaArray', serverSide: 'commaArrayMerge' },
+      honorType: { clientSide: 'number', serverSide: 'number' },
     },
     this._blackList.toServer.push(
       'updatedAt', 'createdAt', 'deletedAt',
@@ -125,6 +127,13 @@ export class CommonInfoModel extends DataModel<CommonInfoModel> {
   publishAt = new Date();
   lonlat?: number[];
   landforms = [] as string[];
+  /** 类型:1=个人,2=团队,3=企业,4=匿名(多选,提交为逗号分隔) */
+  entityType = [] as string[];
+  /** 荣誉类型:1=捐赠,2=志愿服务,3=公益帮扶,4=其他 */
+  honorType = null as number | null;
+  customName = '';
+  occurrenceDate = '';
+  address = '';
 }
 
 export class VillageListItem extends DataModel<VillageListItem> {

+ 102 - 0
src/pages/dig/forms/data/glory.ts

@@ -0,0 +1,102 @@
+import { CommonInfoModel } from '@/api/inhert/VillageInfoApi';
+import type { CheckBoxListProps } from '@/components/dynamic/wrappers/CheckBoxList.vue';
+import type { PickerIdFieldProps } from '@/components/dynamic/wrappers/PickerIdField';
+import type { FieldProps } from '@/components/form/Field.vue';
+import type { SingleForm } from '../forms';
+import { villageCommonContent } from './common';
+
+export const villageInfoGloryFormItems: SingleForm = [
+  CommonInfoModel,
+  (r) => ({
+    formItems: [
+      {
+        label: '标题',
+        name: 'name',
+        type: 'text',
+        defaultValue: '',
+        additionalProps: {
+          placeholder: '请输入标题',
+        },
+        rules: [{
+          required: true,
+          message: '请输入标题',
+        }],
+      },
+      {
+        label: '描述',
+        name: 'desc',
+        type: 'textarea',
+        defaultValue: '',
+        additionalProps: {
+          placeholder: '请输入描述',
+        },
+      },
+      {
+        label: '类型',
+        name: 'entityType',
+        type: 'check-box-list',
+        defaultValue: [],
+        additionalProps: {
+          multiple: true,
+          loadData: async () => [
+            { text: '个人', value: '1' },
+            { text: '团队', value: '2' },
+            { text: '企业', value: '3' },
+            { text: '匿名', value: '4' },
+          ],
+        } as CheckBoxListProps,
+        formProps: {
+          extraMessage: '可多选',
+        },
+      },
+      {
+        label: '荣誉类型',
+        name: 'honorType',
+        type: 'select-id',
+        defaultValue: undefined,
+        additionalProps: {
+          loadData: async () => [
+            { text: '捐赠', value: 1 },
+            { text: '志愿服务', value: 2 },
+            { text: '公益帮扶', value: 3 },
+            { text: '其他', value: 4 },
+          ],
+        } as PickerIdFieldProps,
+        formProps: { showRightArrow: true } as FieldProps,
+      },
+      {
+        label: '表彰对象',
+        name: 'customName',
+        type: 'text',
+        defaultValue: '',
+        additionalProps: {
+          placeholder: '请输入表彰对象',
+        },
+      },
+      {
+        label: '发生时间',
+        name: 'occurrenceDate',
+        type: 'datetime',
+        defaultValue: '',
+        additionalProps: {
+          type: 'date',
+        },
+        formProps: { showRightArrow: true } as FieldProps,
+      },
+      {
+        label: '发生地址',
+        name: 'address',
+        type: 'text',
+        defaultValue: '',
+        additionalProps: {
+          placeholder: '请输入发生地址',
+        },
+      },
+      ...villageCommonContent(r, {
+        title: '记录',
+        showTitle: false,
+      }).formItems,
+    ],
+  }),
+  { title: '乡源荣光', typeName: '' },
+];

+ 2 - 30
src/pages/dig/forms/forms.ts

@@ -17,6 +17,7 @@ import { villageInfoSpeakerForm } from "./data/specker";
 import { ichFormItems } from "./data/ich";
 import type { PickerIdFieldProps } from "@/components/dynamic/wrappers/PickerIdField";
 import { villageInfoSpotsFormItems } from "./data/spots";
+import { villageInfoGloryFormItems } from "./data/glory";
 
 export type SingleForm = [NewDataModel, (formRef: Ref<IDynamicFormRef>) => IDynamicFormOptions, {
   title: string,
@@ -133,36 +134,7 @@ const villageInfoForm : Record<number, GroupForm> = {
     }), { title: '随手记', typeName: '', }]
   },
   23: {//乡源荣光
-    [1]: [CommonInfoModel, (r) => ({
-      formItems: [
-        {
-          label: '标题',
-          name: 'name',
-          type: 'text',
-          defaultValue: '',
-          additionalProps: {
-            placeholder: '请输入标题',
-          } as FieldProps,
-          rules: [{
-            required: true,
-            message: '请输入标题',
-          }]
-        },
-        {
-          label: '描述',
-          name: 'desc',
-          type: 'textarea',
-          defaultValue: '',
-          additionalProps: {
-            placeholder: '请输入描述',
-          } as FieldProps,
-        },
-        ...villageCommonContent(r, {
-          title: '记录',
-          showTitle: false,
-        }).formItems
-      ]
-    }), { title: '乡源荣光', typeName: '', }]
+    [1]: villageInfoGloryFormItems,
   },
 }