Просмотр исходного кода

🎨 修改简化优化表单必填设置

快乐的梦鱼 дней назад: 3
Родитель
Сommit
73e1bb0ec9

+ 1 - 0
src/api/auth/UserApi.ts

@@ -70,6 +70,7 @@ export class UserInfo extends DataModel<UserInfo> {
   username = '';
   regionId = 0;
   openId = '';
+  fruit = 0;
   isReviewer = false;
 }
 

+ 9 - 1
src/pages.json

@@ -94,7 +94,15 @@
       }
     },
     {
-      "path": "pages/home/village/follows",
+      "path": "pages/home/village/follow/list",
+      "style": {
+        "navigationBarTitleText": "村社关注",
+        "navigationStyle": "custom",
+        "enablePullDownRefresh": true
+      }
+    },
+    {
+      "path": "pages/home/village/follow/my-follows",
       "style": {
         "navigationBarTitleText": "我的关注",
         "navigationStyle": "custom",

+ 1 - 1
src/pages/dig/admin/data/volunteer.ts

@@ -142,7 +142,7 @@ export function getVolunteerForm(options: {
             additionalProps: { 
               placeholder: '请输入个人介绍',
               showWordLimit: true,
-              maxLength: 5000,
+              maxLength: 500,
             } as FieldProps,
           },
           ...(options.canSetCatalog ? [{ 

+ 0 - 58
src/pages/dig/forms/data/building.ts

@@ -38,10 +38,6 @@ export function villageInfoBuildingForm(title: string) : SingleForm  {
             additionalProps: {
               placeholder: '请输入建筑编码',
             },
-            rules:  [{
-              required: true,
-              message: '请输入建筑编码',
-            }] 
           },
           {
             label: '产权归属', 
@@ -57,10 +53,6 @@ export function villageInfoBuildingForm(title: string) : SingleForm  {
               ,
             } as PickerIdFieldProps,
             formProps: { showRightArrow: true } as FieldProps,
-            rules: [{
-              required: true,
-              message: '请选择产权归属',
-            }],
           },
           {
             label: '位置', 
@@ -70,10 +62,6 @@ export function villageInfoBuildingForm(title: string) : SingleForm  {
             additionalProps: {
               placeholder: '请输入位置',
             },
-            rules:  [{
-              required: true,
-              message: '请输入位置',
-            }] 
           },
           {
             label: '建筑类型', 
@@ -124,10 +112,6 @@ export function villageInfoBuildingForm(title: string) : SingleForm  {
               maxLength: 5000,
               showWordLimit: true, 
             },
-            rules:  [{
-              required: true,
-              message: '请输入建筑中的故事',
-            }] 
           },
           {
             label: '功能特点', 
@@ -154,8 +138,6 @@ export function villageInfoBuildingForm(title: string) : SingleForm  {
         type: 'flat-group',
         childrenColProps: { span: 24 },
         children: [
-
-
           {
             label: '保护级别', 
             name: 'protectionLevel',
@@ -170,10 +152,6 @@ export function villageInfoBuildingForm(title: string) : SingleForm  {
               ,
             } as PickerIdFieldProps,
             formProps: { showRightArrow: true } as FieldProps,
-            rules: [{
-              required: true,
-              message: '请选择建筑类型',
-            }],
           },
           {
             label: '其他保护级别', 
@@ -195,10 +173,6 @@ export function villageInfoBuildingForm(title: string) : SingleForm  {
             additionalProps: {
               placeholder: '请输入总占地面积',
             },
-            rules:  [{
-              required: true,
-              message: '请输入总占地面积',
-            }] 
           },
           {
             label: '建筑面积', 
@@ -208,10 +182,6 @@ export function villageInfoBuildingForm(title: string) : SingleForm  {
             additionalProps: {
               placeholder: '请输入建筑面积',
             },
-            rules:  [{
-              required: true,
-              message: '请输入建筑面积',
-            }] 
           },
           {
             label: '建筑层数', 
@@ -222,10 +192,6 @@ export function villageInfoBuildingForm(title: string) : SingleForm  {
               min: 0,
               max: 1000,
             },
-            rules:  [{
-              required: true,
-              message: '请输入建筑层数',
-            }] 
           },
           {
             label: '所含建筑幢数', 
@@ -236,10 +202,6 @@ export function villageInfoBuildingForm(title: string) : SingleForm  {
               min: 0,
               max: 1000,
             },
-            rules:  [{
-              required: true,
-              message: '请输入所含建筑幢数',
-            }] 
           },
           {
             label: '始建时间(年)', 
@@ -250,10 +212,6 @@ export function villageInfoBuildingForm(title: string) : SingleForm  {
               min: -50000,
               max: 2000,
             },
-            rules:  [{
-              required: true,
-              message: '请输入始建时间',
-            }] 
           },
           {
             label: '承重结构(多选)', 
@@ -270,10 +228,6 @@ export function villageInfoBuildingForm(title: string) : SingleForm  {
               ,
             } as CheckBoxListProps,
             defaultValue: [],
-            rules: [{
-              required: true,
-              message: '请选择类型',
-            }],
           },
           {
             label: '其他承重结构类型', 
@@ -521,10 +475,6 @@ export const villageInfoDistributionForm : SingleForm = [CommonInfoModel, (r) =>
         min: 0,
         max: 100,
       },
-      rules:  [{
-        required: true,
-        message: '请输入建筑数量',
-      }] 
     }, 
     {
       label: '分布图', 
@@ -539,10 +489,6 @@ export const villageInfoDistributionForm : SingleForm = [CommonInfoModel, (r) =>
         maxFileSize: 1024 * 1024 * 20,
         single: true,
       } as UploaderFieldProps,
-      rules:  [{
-        required: true,
-        message: '请上传分布图',
-      }] 
     }, 
     {
       label: '营造智慧', 
@@ -554,10 +500,6 @@ export const villageInfoDistributionForm : SingleForm = [CommonInfoModel, (r) =>
         maxLength: 5000,
         showWordLimit: true, 
       },
-      rules:  [{
-        required: true,
-        message: '请输入营造智慧',
-      }] 
     }, 
     ...villageCommonContent(r, {
       title: '建筑分布',

+ 0 - 12
src/pages/dig/forms/data/element.ts

@@ -190,10 +190,6 @@ export const vilElementForm : SingleForm = [CommonInfoModel, (r) => ({
           type: 'select-address', 
           defaultValue: '',
           additionalProps: {},
-          rules:  [{
-            required: true,
-            message: '请输入地址',
-          }] 
         },
         {
           label: '方位', 
@@ -230,10 +226,6 @@ export const vilElementForm : SingleForm = [CommonInfoModel, (r) => ({
                 labelPosition: 'left',
                 showBottomBorder: false,
               },
-              rules:  [{
-                required: true,
-                message: '请输入X',
-              }] 
             },
             { 
               label: '', 
@@ -249,10 +241,6 @@ export const vilElementForm : SingleForm = [CommonInfoModel, (r) => ({
                 labelPosition: 'left',
                 showBottomBorder: false,
               },
-              rules:  [{
-                required: true,
-                message: '请输入Y',
-              }] 
             },
           ]
         },

+ 0 - 16
src/pages/dig/forms/data/environment.ts

@@ -42,10 +42,6 @@ export const villageInfoEnvironmentForm : SingleForm= [CommonInfoModel, (r) => (
         maxLength: 5000,
         showWordLimit: true, 
       },
-      rules:  [{
-        required: true,
-        message: '请输入选址',
-      }] 
     }, 
     { 
       label: '格局', 
@@ -57,10 +53,6 @@ export const villageInfoEnvironmentForm : SingleForm= [CommonInfoModel, (r) => (
         maxLength: 5000,
         showWordLimit: true, 
       },
-      rules:  [{
-        required: true,
-        message: '请输入格局',
-      }] 
     }, 
     { 
       label: '整体风貌', 
@@ -72,10 +64,6 @@ export const villageInfoEnvironmentForm : SingleForm= [CommonInfoModel, (r) => (
         maxLength: 5000,
         showWordLimit: true, 
       },
-      rules:  [{
-        required: true,
-        message: '请输入整体风貌',
-      }] 
     }, 
     { 
       label: '农业遗产', 
@@ -87,10 +75,6 @@ export const villageInfoEnvironmentForm : SingleForm= [CommonInfoModel, (r) => (
         maxLength: 5000,
         showWordLimit: true, 
       },
-      rules:  [{
-        required: true,
-        message: '请输入农业遗产',
-      }] 
     }, 
     ...villageCommonContent(r, {
       title: '环境格局',

+ 1 - 37
src/pages/dig/forms/data/ich.ts

@@ -16,7 +16,7 @@ export const ichFormItems : SingleForm = [CommonInfoModel, (m) => ({
       },
       children: [
         {
-          label: '名称及管理编号', 
+          label: '名称', 
           name: 'name', 
           type: 'text', 
           defaultValue: '',
@@ -36,10 +36,6 @@ export const ichFormItems : SingleForm = [CommonInfoModel, (m) => ({
           additionalProps: {
             placeholder: '请输入编号',
           },
-          rules:  [{
-            required: true,
-            message: '请输入编号',
-          }] 
         },
         {
           label: '级别', 
@@ -101,10 +97,6 @@ export const ichFormItems : SingleForm = [CommonInfoModel, (m) => ({
           additionalProps: {
             text: '是',
           } as CheckBoxToIntProps ,
-          rules:  [{
-            required: true,
-            message: '请选择是否确定传承人',
-          }] 
         },
         {
           label: '传承人情况',
@@ -117,10 +109,6 @@ export const ichFormItems : SingleForm = [CommonInfoModel, (m) => ({
             maxLength: 5000,
             showWordLimit: true, 
           },
-          rules:  [{
-            required: true,
-            message: '请输入输入传承人情况',
-          }]
         },
         {
           label: '加入时间', 
@@ -130,10 +118,6 @@ export const ichFormItems : SingleForm = [CommonInfoModel, (m) => ({
             type: 'datetime',
           },
           formProps: { showRightArrow: true } as FieldProps,
-          rules: [{
-            required: true,
-            message: '请选择加入时间',
-          }],
         },
       ]
     },
@@ -160,10 +144,6 @@ export const ichFormItems : SingleForm = [CommonInfoModel, (m) => ({
             ,
           } as PickerIdFieldProps,
           formProps: { showRightArrow: true } as FieldProps,
-          rules: [{
-            required: true,
-            message: '请选择项目续存情况',
-          }],
         },
         {
           label: '与村社依存程度', 
@@ -179,10 +159,6 @@ export const ichFormItems : SingleForm = [CommonInfoModel, (m) => ({
             ,
           } as PickerIdFieldProps,
           formProps: { showRightArrow: true } as FieldProps,
-          rules: [{
-            required: true,
-            message: '请选择与村社依存程度',
-          }],
         },
         {
           label: '活动规模', 
@@ -198,10 +174,6 @@ export const ichFormItems : SingleForm = [CommonInfoModel, (m) => ({
             ,
           } as PickerIdFieldProps,
           formProps: { showRightArrow: true } as FieldProps,
-          rules: [{
-            required: true,
-            message: '请选择活动规模',
-          }],
         },
         {
           label: '传承时间', 
@@ -217,10 +189,6 @@ export const ichFormItems : SingleForm = [CommonInfoModel, (m) => ({
             ,
           } as PickerIdFieldProps,
           formProps: { showRightArrow: true } as FieldProps,
-          rules: [{
-            required: true,
-            message: '请选择传承时间',
-          }],
         },
         {
           label: '具体传承时间', 
@@ -233,10 +201,6 @@ export const ichFormItems : SingleForm = [CommonInfoModel, (m) => ({
             type: 'datetime',
           },
           formProps: { showRightArrow: true } as FieldProps,
-          rules: [{
-            required: true,
-            message: '请选择具体传承时间',
-          }],
         },
       ]
     },

+ 0 - 12
src/pages/dig/forms/data/relic.ts

@@ -36,10 +36,6 @@ export const villageInfoRelicForm : SingleForm = [CommonInfoModel, (r) => ({
           additionalProps: {
             placeholder: '请输入文物编码',
           },
-          rules:  [{
-            required: true,
-            message: '请输入文物编码',
-          }] 
         },
         {
           label: '年代', 
@@ -219,10 +215,6 @@ export const villageInfoRelicForm : SingleForm = [CommonInfoModel, (r) => ({
                 labelPosition: 'left',
                 showBottomBorder: false,
               },
-              rules:  [{
-                required: true,
-                message: '请输入X',
-              }] 
             },
             { 
               label: '', 
@@ -238,10 +230,6 @@ export const villageInfoRelicForm : SingleForm = [CommonInfoModel, (r) => ({
                 labelPosition: 'left',
                 showBottomBorder: false,
               },
-              rules:  [{
-                required: true,
-                message: '请输入Y',
-              }] 
             },
           ]
         },

+ 0 - 81
src/pages/dig/forms/data/travel.ts

@@ -36,10 +36,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           type: 'number', 
           defaultValue: 0,
           additionalProps: { min: 0, addonAfter: 'KM' },
-          rules:  [{
-            required: true,
-            message: '请输入距离县城',
-          }] 
         },
         {
           label: '距离镇区中心', 
@@ -47,10 +43,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           type: 'number', 
           defaultValue: 0,
           additionalProps: { min: 0, addonAfter: 'KM' },
-          rules:  [{
-            required: true,
-            message: '请输入距离镇区中心',
-          }] 
         }, 
         {
           label: '距离市中心', 
@@ -58,10 +50,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           type: 'number', 
           defaultValue: 0,
           additionalProps: { min: 0, addonAfter: 'KM' },
-          rules:  [{
-            required: true,
-            message: '请输入距离市中心',
-          }] 
         }
       ]
     },
@@ -81,10 +69,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           additionalProps: {
             placeholder: '请输入最近高速收费站名称',
           },
-          rules:  [{
-            required: true,
-            message: '请输入最近高速收费站名称',
-          }] 
         },
         {
           label: '最近高速收费站名称', 
@@ -115,11 +99,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           additionalProps: {
             text: '有',
           },
-          rules:  [{
-            required: true,
-            message: '请选择有无公交车',
-            type: 'number',
-          }] 
         },
         {
           label: '公交车介绍', 
@@ -130,10 +109,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           additionalProps: {
             placeholder: '请输入公交车介绍',
           },
-          rules: [{
-            required: true,
-            message: '请输入公交车介绍',
-          }] 
         },
         {
           label: '其他交通方式', 
@@ -204,10 +179,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           additionalProps: {
             text: '有',
           },
-          rules:  [{
-            required: true,
-            message: '请选择有无解说牌',
-          }] 
         },
         {
           label: '其他解说牌', 
@@ -228,10 +199,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           additionalProps: {
             text: '有',
           },
-          rules:  [{
-            required: true,
-            message: '请选择有无指示牌',
-          }] 
         },
         {
           label: '其他指示牌', 
@@ -255,10 +222,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           additionalProps: {
             text: '有',
           },
-          rules:  [{
-            required: true,
-            message: '请选择有无安全告示牌',
-          }] 
         },
         {
           label: '其他安全告示牌', 
@@ -292,10 +255,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           additionalProps: {
             text: '有',
           },
-          rules:  [{
-            required: true,
-            message: '请选择有有无游客服务中心',
-          }] 
         },
         {
           label: '游客服务中心面积', 
@@ -306,10 +265,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           additionalProps: {
             placeholder: '请输入游客服务中心面积',
           },
-          rules: [{
-            required: true,
-            message: '请输入游客服务中心面积',
-          }] 
         },
         {
           label: '商业设施', 
@@ -325,10 +280,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
             ,
           } as PickerIdFieldProps,
           formProps: { showRightArrow: true } as FieldProps,
-          rules: [{
-            required: true,
-            message: '请选择商业设施',
-          }],
         },
         {
           label: '其他商业设施', 
@@ -339,10 +290,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           additionalProps: {
             placeholder: '请输入其他商业设施',
           },
-          rules: [{
-            required: true,
-            message: '请输入其他商业设施',
-          }] 
         }
       ]
     },
@@ -371,10 +318,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           formProps: {
             showRightArrow: true,
           },
-          rules:  [{
-            required: true,
-            message: '请选择有无医疗点',
-          }] 
         },
         {
           label: '其他医疗点', 
@@ -407,10 +350,6 @@ export const villageInfoTravelGuideForm : SingleForm = [CommonInfoModel, (r) =>
           formProps: {
             showRightArrow: true,
           },
-          rules:  [{
-            required: true,
-            message: '请选择有无游览车',
-          }] 
         },
         {
           label: '其他游览车', 
@@ -653,10 +592,6 @@ export const villageInfoRouteForm : SingleForm = [CommonInfoModel, (r) => ({
             maxLength: 1000,
             showWordLimit: true, 
           } as FieldProps,
-          rules:  [{
-            required: true,
-            message: '请输入特色',
-          }] 
         },
         {
           label: '文化背景', 
@@ -668,10 +603,6 @@ export const villageInfoRouteForm : SingleForm = [CommonInfoModel, (r) => ({
             maxLength: 1000,
             showWordLimit: true, 
           } as FieldProps,
-          rules:  [{
-            required: true,
-            message: '请输入文化背景',
-          }] 
         },
         {
           label: '精彩推荐', 
@@ -683,10 +614,6 @@ export const villageInfoRouteForm : SingleForm = [CommonInfoModel, (r) => ({
             maxLength: 1000,
             showWordLimit: true, 
           } as FieldProps,
-          rules:  [{
-            required: true,
-            message: '请输入精彩推荐',
-          }] 
         },
         {
           label: '推荐描述', 
@@ -698,10 +625,6 @@ export const villageInfoRouteForm : SingleForm = [CommonInfoModel, (r) => ({
             maxLength: 1000,
             showWordLimit: true, 
           } as FieldProps,
-          rules:  [{
-            required: true,
-            message: '请输入推荐描述',
-          }] 
         },
         {
           label: '活动亮点', 
@@ -713,10 +636,6 @@ export const villageInfoRouteForm : SingleForm = [CommonInfoModel, (r) => ({
             maxLength: 1000,
             showWordLimit: true, 
           } as FieldProps,
-          rules:  [{
-            required: true,
-            message: '请输入活动亮点',
-          }] 
         },
         ...villageCommonContent(r, {
           title: '路线特色',

+ 1 - 1
src/pages/dig/forms/forms.ts

@@ -123,7 +123,7 @@ const villageInfoForm : Record<number, GroupForm> = {
           defaultValue: '',
           additionalProps: {
             placeholder: '请输入描述',
-            maxLength: 5000,
+            maxLength: 500,
             showWordLimit: true,
           } as FieldProps,
           rules: []

+ 4 - 2
src/pages/home/chat/dependent/post/publish.vue

@@ -75,7 +75,7 @@
 <script setup lang="ts">
 import { onMounted, ref, watch } from 'vue';
 import { useLoadQuerys } from '@/components/composeabe/LoadQuerys';
-import { Debounce } from '@imengyu/imengyu-utils';
+import { Debounce, formatError } from '@imengyu/imengyu-utils';
 import { confirm, toast, alert } from '@/components/dialog/CommonRoot';
 import { useAuthStore } from '@/store/auth';
 import { useSimpleDataLoader } from '@/components/composeabe/loader/SimpleDataLoader';
@@ -238,7 +238,9 @@ function publish() {
     },
     fail: (error: any) => {
       console.error(error);
-      toast('发布失败');
+      const errmsg = formatError(error);
+      if (!errmsg.includes('cancel')) 
+        toast('发布失败: ' + errmsg);
     },
   });
 }

+ 10 - 3
src/pages/home/village/upgrade/components/BuyFruitInfo.vue

@@ -7,13 +7,20 @@
           <Icon icon="https://xy.wenlvti.net/app_static/images/village/IconFruit.png" size="40" />
           <Text text="乡源果支付" fontConfig="lightImportantTitle" :fontSize="42" />
         </FlexRow>
-        <Text :text="`余额 ${authStore.userInfo?.fruit || '0'} 乡源果` + (price ? ` 需要 ${Math.ceil(price * 100)} 乡源果` : '')" fontConfig="lightGoldTitle" :fontSize="30" />
+        <Text :text="`余额 ${authStore.userInfo?.fruit || '0'} 乡源果`" fontConfig="lightGoldTitle" :fontSize="30" />
+        <Text v-if="price" :text="`需要 ${Math.ceil(price * 100)} 乡源果`" fontConfig="lightGoldTitle" :fontSize="30" />   
       </FlexCol>
-      <FrameButton primary text="选择" @click="emit('pay')" />
+      <FlexRow align="center" gap="gap.md">
+        <Text v-if="price && price > (authStore.userInfo?.fruit || 0)" text="乡源果不足" fontConfig="lightGoldTitle" :fontSize="30" color="danger" />
+        <FrameButton v-else primary text="选择" @click="emit('pay')" />
+      </FlexRow>
     </BoxMid>      
     <SimplePageContentLoader :loader="infoLoader">
       <FlexCol gap="gap.md" padding="padding.md">
-        <IconTextBlock icon="prompt" :title="infoLoader.content?.value?.title" />
+        <IconTextBlock icon="prompt" :iconProps="{ 
+          color: 'text.content',
+          size: 40,
+        }" :title="infoLoader.content?.value?.title" />
         <Parse :content="infoLoader.content?.value?.content || ''" />
       </FlexCol>
     </SimplePageContentLoader>