How to add a custom field to a form
Overview
In addition to the standard form fields, you can create your own custom fields using controls from the Element UI library. Here's an example of how to create a field with DatePicker control and age validation.
In this guide, we will be working with a clone of our public GitHub repository. We strongly recommend that you read the guide on how to build Workflow Server from this repository.
Adding custom control
-
Open or create the Form.
-
In the Fields section, add a new field with the following parameters: Name: "BirthDate", Title: "Birth date", Control: "custom".

-
Replace the
spantag with el-date-picker.
-
Add the attribute
:rules="[WorkflowServer.Rules.age]"to theel-form-item, it will ensure that custom validation is called.
Here is an example of code:
<div wfs-content="fields"><el-form-item name="BirthDate" prop="BirthDate" label="Birth Date":rules="[WorkflowServer.Rules.age]"><el-date-picker v-model="FormData.BirthDate" :readonly="isreadonly()"></el-date-picker></el-form-item></div> -
To add the validation function, open the WorkflowServer.js file.
-
In the Rules field of the WorkflowServer object, create a new validator:

Here is an example of code:
Before the WorkflowServer objectfunction isAgeValid(value) {if (!value) return true;const date = new Date(value);const now = new Date();if (now < date) return false;const age = new Date(now - date);return Math.abs(age.getUTCFullYear() - 1970);}Inside the WorkflowServer objectage: {required: true,validator: (rule, value, callback) => {if (isAgeValid(value)) {callback()} else {callback(new Error(rule.message))}},message: 'You\'re too young'} -
Rebuild the frontend. See this guide for more information.
-
After attaching the form to the process, you can see the result:
