# 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
Create the customer list form

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
Create the customer management menu

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
Create the create-customer form

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
1
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:

Create a customer

After entering a few customers, the list looks like this:

Customer list

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 Details and Update, no Delete, 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).

Last Updated: 9/24/2026, 2:27:35 PM