# Create Maintenance Forms for the Customer Model
Screenshots on this page are taken from the Chinese UI. Menu, field and button names in the text use the English UI labels.
Forms are an important component of the system; all data is managed through the corresponding forms. We will create the following maintenance forms for the customer model:
- A list form, plus a menu to access it
- A create form
- An edit form
# Create the List Form
Open System Config > Forms > Forms, click Create, and fill in:
| Field | Value |
|---|---|
| Type | LIST |
| Name | List of Customers |
| Label | ๅฎขๆทๅ่กจ |
| Description | ๅฎขๆทไฟกๆฏๅ่กจ |
| Object type | Customers |
Click Save / Close. Name must be unique in the system; the menu and the CSV files below refer to this form by its name.
# Create the Access Menu
Open System Config > UI > Menus, click Create, and fill in on the right:
| Field | Value |
|---|---|
| Parent menu | Leave empty (top-level menu) |
| Name | Customers |
| Type | Form |
| Label | ๅฎขๆท็ฎก็ |
| Icon | TeamOutlined |
| Form | List of Customers |
| Display sequence | 5 |
After clicking Save, ๅฎขๆท็ฎก็ appears in the menu tree on the left (the label has no English translation, so the English UI also shows it in Chinese). It has the same display sequence (5) as the built-in Business Config menu and currently appears below Business Config. To move it to the top, change the display sequence to a value less than 5.
WARNING
In 1.0.0-beta18, the menu tree on the left of the menu page shows the raw labels of the menus (most system menus are in English, for example Configurations, Development), and the options of the Type drop-down are in English (Menu Group, External Link, Internal Link, Form). Menu names in the navigation bar on the left of the page are not affected and are displayed in the current language.
# Create the Create and Edit Forms
Go back to System Config > Forms > Forms and create two more forms the same way:
| Type | Name | Label | Object type |
|---|---|---|---|
| CREATE | Create Customers | ๆฐๅปบๅฎขๆท | Customers |
| UPDATE | Update Customers | ็ผ่พๅฎขๆท | Customers |
The Create button on the list page opens the model's CREATE form, and Update on a row opens the UPDATE form.
# Set Access Permissions for the Forms
The create and update screens of forms and menus have no access permission field, and a form without an access permission cannot be opened: after clicking ๅฎขๆท็ฎก็, the page stays in the loading state forever (the backend returns 403 NoPermission for the form).
The access permission of a form can only be set with the accessRequirement.name column in CSV. Create DynamicForm_crm.csv under codes/data/csv:
name(*),accessRequirement.name
;; CRM tutorial: add access permissions to the forms created in the UI (the UI has no such field)
List of Customers,USER
Create Customers,USER
Update Customers,USER
2
3
4
5
name(*) finds the three forms you just created in the UI by name and updates only the accessRequirement column; the other attributes stay unchanged. Save the file and restart the backend service.
TIP
Menus do not need their own permission: a menu of type Form without an access permission is shown as long as the user can access its form. Menu groups (Menu Group) are different: a menu group without an access permission is hidden from everyone, which is why this tutorial creates the menu at the top level.
If you want to maintain all forms and menus in a plugin, you can define them directly in DynamicForm.csv and DynamicMenu.csv. For the columns, see CSV Import Templates.
WARNING
The missing access permission field on the form and menu screens, and the page loading forever without an error when a form has no permission, are known issues in 1.0.0-beta18.
# Enter Customer Data
Click ๅฎขๆท็ฎก็ on the left, then click Create and enter a customer:
After entering a few customers, the list looks like this:
Notice that:
- We did not add any fields to the forms. When a form defines no form fields, the system shows all fields of the model by default, and the field titles are the field names (name, contactInfo, etc.). Step 5 sets Chinese labels for them.
- Each row of the list only has
DetailsandUpdate, noDelete, because step 1 did not grant a delete permission on the customer model. - In the create and edit forms, the customer group is shown as a tag input with options, and the options come from the field's
options.
WARNING
In 1.0.0-beta18, a string field with options is shown in the default form as a tag input that allows multiple selections. group is a single-value field, so select only one option.
Next, we will model sales opportunities and show how to establish relationships between objects during modeling. Please click here to continue our CRM building journey.
# Further Reading
Our platform is the Muyan low-code platform, designed to help users build information systems quickly. To learn more about our platform, visit Muyan Low-Code Platform (opens new window).