Parcourir la source

feat: 完善预算表单组件

lanjianrong il y a 3 ans
Parent
commit
4d55bfd382

+ 1 - 1
src/locales/zh-CN/menu.ts

@@ -27,7 +27,7 @@ export default {
   'menu.institutions.staff': '人员管理',
   'menu.institutions.restrict': '限制登录',
   'menu.business': '业务审批设置',
-  'menu.business.inventory': '资料签收清单模板',
+  'menu.business.inventory': '审核资料清单模板',
   'menu.business.process': '流程用户设置',
   'menu.institutions.company.company-list': '单位列表',
   'menu.institutions.company.company-detail': '单位详情',

+ 115 - 46
src/pages/Schema/Budget/components/Designable/antd/components/Input/preview.tsx

@@ -12,101 +12,110 @@ Input.Behavior = createBehavior(
   {
     name: 'Input',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'gsCode',
+    selector: node => node.props['name'] === 'gcName',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Input)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '项目编号' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '工程名称' } }
   },
   {
     name: 'Input',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'gsName',
+    selector: node => node.props['name'] === 'bScaleUnit',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Input)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '项目名称' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '建设规模(单位)' } }
   },
   {
     name: 'Input',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'gcName',
+    selector: node => node.props['name'] === 'gzAddress',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Input)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '工程名称' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '工程地址' } }
   },
   {
     name: 'Input',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'gzAddress',
+    selector: node => node.props['name'] === 'ministry',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Input)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '工程地址' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '行业主管部门' } }
   },
   {
     name: 'Input',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'institution',
+    selector: node => node.props['name'] === 'institutionID',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Input)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '单位' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '建设单位' } }
   },
   {
     name: 'Input',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'ministry',
+    selector: node => node.props['name'] === 'reviewerMobile',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Input)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '行业主管部门' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '报审人手机' } }
   },
   {
     name: 'Input',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'bUnit',
+    selector: node => node.props['name'] === 'reviewerMail',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Input)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '建设单位' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '报审人邮箱' } }
   },
   {
     name: 'Input',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'fax',
+    selector: node => node.props['name'] === 'reviewerLandline',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Input)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '传真' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '报审人座机' } }
   },
   {
     name: 'Input',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'pCorporation',
+    selector: node => node.props['name'] === 'pMobile',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Input)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '项目法人' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '项目联系手机' } }
   },
   {
     name: 'Input',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'pMobile',
+    selector: node => node.props['name'] === 'pMail',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Input)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '联系电话' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '项目联系人邮箱' } }
   },
   {
     name: 'Input',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'pMail',
+    selector: node => node.props['name'] === 'projectContactLandline',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Input)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '项目联系人邮箱' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '项目联系人座机' } }
+  },
+  {
+    name: 'Input.TextArea',
+    extends: ['Field'],
+    selector: node => node.props['name'] === 'reportingInstructions',
+    designerProps: {
+      propsSchema: createFieldSchema(AllSchemas.Input.TextArea)
+    },
+    designerLocales: { 'zh-CN': { ...AllLocales.Input['zh-CN'], title: '报审说明' } }
   }
 )
 
@@ -118,9 +127,13 @@ Input.Resource = createResource(
         componentName: 'Field',
         props: {
           type: 'string',
-          title: '项目编号',
-          name: 'gsCode',
+          title: '工程名称(业务名称)',
+          name: 'gcName',
+          required: true,
           'x-decorator': 'FormItem',
+          'x-component-props': {
+            placeholder: '请输入'
+          },
           'x-component': 'Input'
         }
       }
@@ -133,9 +146,12 @@ Input.Resource = createResource(
         componentName: 'Field',
         props: {
           type: 'string',
-          title: '项目名称',
-          name: 'gsName',
+          title: '',
+          name: 'bScaleUnit',
           'x-decorator': 'FormItem',
+          'x-component-props': {
+            placeholder: '请输入单位(㎡)'
+          },
           'x-component': 'Input'
         }
       }
@@ -148,9 +164,12 @@ Input.Resource = createResource(
         componentName: 'Field',
         props: {
           type: 'string',
-          title: '工程名称',
-          name: 'gcName',
+          title: '工程地址',
+          name: 'gzAddress',
           'x-decorator': 'FormItem',
+          'x-component-props': {
+            placeholder: '请输入'
+          },
           'x-component': 'Input'
         }
       }
@@ -163,9 +182,12 @@ Input.Resource = createResource(
         componentName: 'Field',
         props: {
           type: 'string',
-          title: '工程地址',
-          name: 'gzAddress',
+          title: '建设单位',
+          name: 'institutionID',
           'x-decorator': 'FormItem',
+          'x-component-props': {
+            placeholder: '请输入'
+          },
           'x-component': 'Input'
         }
       }
@@ -178,9 +200,12 @@ Input.Resource = createResource(
         componentName: 'Field',
         props: {
           type: 'string',
-          title: '单位',
-          name: 'institution',
+          title: '行业主管部门',
+          name: 'ministry',
           'x-decorator': 'FormItem',
+          'x-component-props': {
+            placeholder: '请输入'
+          },
           'x-component': 'Input'
         }
       }
@@ -193,9 +218,14 @@ Input.Resource = createResource(
         componentName: 'Field',
         props: {
           type: 'string',
-          title: '行业主管部门',
-          name: 'ministry',
+          title: '报审人手机',
+          name: 'reviewerMobile',
+          required: true,
+          'x-validator': 'phone',
           'x-decorator': 'FormItem',
+          'x-component-props': {
+            placeholder: '请输入'
+          },
           'x-component': 'Input'
         }
       }
@@ -208,9 +238,14 @@ Input.Resource = createResource(
         componentName: 'Field',
         props: {
           type: 'string',
-          title: '建设单位',
-          name: 'bUnit',
+          title: '报审人邮箱',
+          name: 'reviewerMail',
+          required: true,
+          'x-validator': 'email',
           'x-decorator': 'FormItem',
+          'x-component-props': {
+            placeholder: '请输入'
+          },
           'x-component': 'Input'
         }
       }
@@ -223,9 +258,21 @@ Input.Resource = createResource(
         componentName: 'Field',
         props: {
           type: 'string',
-          title: '传真',
-          name: 'fax',
+          title: '联系座机',
+          name: 'reviewerLandline',
+          required: true,
+          'x-validator': [
+            {
+              triggerType: 'onInput',
+              message: '请输入正确的座机号',
+              pattern: '^(?:(?:\\d{3}-)?\\d{8}|^(?:\\d{4}-)?\\d{7,8})(?:-\\d+)?$',
+              whitespace: true
+            }
+          ],
           'x-decorator': 'FormItem',
+          'x-component-props': {
+            placeholder: '请输入'
+          },
           'x-component': 'Input'
         }
       }
@@ -238,9 +285,13 @@ Input.Resource = createResource(
         componentName: 'Field',
         props: {
           type: 'string',
-          title: '项目法人',
-          name: 'pCorporation',
+          title: '项目联系人邮箱',
+          name: 'pMail',
+          'x-validator': 'email',
           'x-decorator': 'FormItem',
+          'x-component-props': {
+            placeholder: '请输入'
+          },
           'x-component': 'Input'
         }
       }
@@ -253,25 +304,43 @@ Input.Resource = createResource(
         componentName: 'Field',
         props: {
           type: 'string',
-          title: '联系电话',
-          name: 'pMobile',
+          title: '联系座机',
+          name: 'projectContactLandline',
+          required: true,
+          'x-validator': [
+            {
+              triggerType: 'onInput',
+              message: '请输入正确的座机号',
+              pattern: '^(?:(?:\\d{3}-)?\\d{8}|^(?:\\d{4}-)?\\d{7,8})(?:-\\d+)?$',
+              whitespace: true
+            }
+          ],
           'x-decorator': 'FormItem',
+          'x-component-props': {
+            placeholder: '请输入'
+          },
           'x-component': 'Input'
         }
       }
     ]
   },
   {
-    icon: 'InputSource',
+    icon: 'TextAreaSource',
     elements: [
       {
         componentName: 'Field',
         props: {
           type: 'string',
-          title: '项目联系人邮箱',
-          name: 'pMail',
+          title: '报审说明',
+          name: 'reportingInstructions',
           'x-decorator': 'FormItem',
-          'x-component': 'Input'
+          'x-component': 'Input.TextArea',
+          'x-component-props': {
+            placeholder: '请输入'
+          },
+          'x-component-props': {
+            maxLength: 200
+          }
         }
       }
     ]

+ 2 - 2
src/pages/Schema/Budget/components/Designable/antd/components/NumberPicker/preview.ts

@@ -11,7 +11,7 @@ export const NumberPicker: DnFC<React.ComponentProps<typeof FormilyNumberPicker>
 NumberPicker.Behavior = createBehavior({
   name: 'NumberPicker',
   extends: ['Field'],
-  selector: node => node.props['name'] === 'bScale',
+  selector: node => node.props['name'] === 'bScaleVolume',
   designerProps: {
     propsSchema: createFieldSchema(AllSchemas.NumberPicker)
   },
@@ -26,7 +26,7 @@ NumberPicker.Resource = createResource({
       props: {
         type: 'number',
         title: '建设规模',
-        name: 'bScale',
+        name: 'bScaleVolume',
         'x-decorator': 'FormItem',
         'x-component': 'NumberPicker'
       }

+ 97 - 23
src/pages/Schema/Budget/components/Designable/antd/components/Select/preview.tsx

@@ -12,11 +12,11 @@ Select.Behavior = createBehavior(
   {
     name: 'Select',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'linkPID',
+    selector: node => node.props['name'] === 'projectType',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Select)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Select['zh-CN'], title: '关联项目' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Select['zh-CN'], title: '项目类型' } }
   },
   {
     name: 'Select',
@@ -30,34 +30,52 @@ Select.Behavior = createBehavior(
   {
     name: 'Select',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'pType',
+    selector: node => node.props['name'] === 'structureType',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Select)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Select['zh-CN'], title: '项目类型' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Select['zh-CN'], title: '结构类型' } }
   },
   {
     name: 'Select',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'structureType',
+    selector: node => node.props['name'] === 'expendType',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Select)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Select['zh-CN'], title: '结构类型' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Select['zh-CN'], title: '项目支出类别' } }
   },
   {
     name: 'Select',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'expendType',
+    selector: node => node.props['name'] === 'ysbzCompany',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Select)
     },
-    designerLocales: { 'zh-CN': { ...AllLocales.Select['zh-CN'], title: '项目支出类别' } }
+    designerLocales: { 'zh-CN': { ...AllLocales.Select['zh-CN'], title: '预算编制单位' } }
   },
   {
     name: 'Select',
     extends: ['Field'],
-    selector: node => node.props['name'] === 'pLeader',
+    selector: node => node.props['name'] === 'institutionID',
+    designerProps: {
+      propsSchema: createFieldSchema(AllSchemas.Select)
+    },
+    designerLocales: { 'zh-CN': { ...AllLocales.Select['zh-CN'], title: '建设单位' } }
+  },
+  {
+    name: 'Select',
+    extends: ['Field'],
+    selector: node => node.props['name'] === 'reviewer',
+    designerProps: {
+      propsSchema: createFieldSchema(AllSchemas.Select)
+    },
+    designerLocales: { 'zh-CN': { ...AllLocales.Select['zh-CN'], title: '报审人' } }
+  },
+  {
+    name: 'Select',
+    extends: ['Field'],
+    selector: node => node.props['name'] === 'projectContact',
     designerProps: {
       propsSchema: createFieldSchema(AllSchemas.Select)
     },
@@ -72,10 +90,14 @@ Select.Resource = createResource(
       {
         componentName: 'Field',
         props: {
-          title: '关联项目',
-          name: 'linkPID',
+          title: '项目类型',
+          name: 'projectType',
+          required: true,
           'x-decorator': 'FormItem',
-          'x-component': 'Select'
+          'x-component': 'Select',
+          'x-component-props': {
+            placeholder: '请选择'
+          }
         }
       }
     ]
@@ -89,21 +111,28 @@ Select.Resource = createResource(
           title: '工程类型',
           name: 'gcType',
           'x-decorator': 'FormItem',
-          'x-component': 'Select'
+          'x-component': 'Select',
+          'x-component-props': {
+            placeholder: '请选择'
+          }
         }
       }
     ]
   },
+
   {
     icon: 'SelectSource',
     elements: [
       {
         componentName: 'Field',
         props: {
-          title: '项目类型',
-          name: 'pType',
+          title: '结构类型',
+          name: 'structureType',
           'x-decorator': 'FormItem',
-          'x-component': 'Select'
+          'x-component': 'Select',
+          'x-component-props': {
+            placeholder: '请选择'
+          }
         }
       }
     ]
@@ -114,8 +143,9 @@ Select.Resource = createResource(
       {
         componentName: 'Field',
         props: {
-          title: '结构类型',
-          name: 'structureType',
+          title: '项目支出类别',
+          name: 'expendType',
+          required: true,
           'x-decorator': 'FormItem',
           'x-component': 'Select'
         }
@@ -128,10 +158,50 @@ Select.Resource = createResource(
       {
         componentName: 'Field',
         props: {
-          title: '项目支出类别',
-          name: 'expendType',
+          title: '预算编制单位(全称)',
+          name: 'ysbzCompany',
+          required: true,
           'x-decorator': 'FormItem',
-          'x-component': 'Select'
+          'x-component': 'Select',
+          'x-component-props': {
+            placeholder: '请选择'
+          }
+        }
+      }
+    ]
+  },
+  {
+    icon: 'SelectSource',
+    elements: [
+      {
+        componentName: 'Field',
+        props: {
+          title: '建设单位',
+          name: 'institutionID',
+          required: true,
+          'x-decorator': 'FormItem',
+          'x-component': 'Select',
+          'x-component-props': {
+            placeholder: '请选择'
+          }
+        }
+      }
+    ]
+  },
+  {
+    icon: 'SelectSource',
+    elements: [
+      {
+        componentName: 'Field',
+        props: {
+          title: '报审人',
+          name: 'reviewer',
+          required: true,
+          'x-decorator': 'FormItem',
+          'x-component': 'Select',
+          'x-component-props': {
+            placeholder: '请选择'
+          }
         }
       }
     ]
@@ -143,9 +213,13 @@ Select.Resource = createResource(
         componentName: 'Field',
         props: {
           title: '项目联系人',
-          name: 'pLeader',
+          name: 'projectContact',
+          required: true,
           'x-decorator': 'FormItem',
-          'x-component': 'Select'
+          'x-component': 'Select',
+          'x-component-props': {
+            placeholder: '请选择'
+          }
         }
       }
     ]