# 【新增场景】示例

# 举个例子:新增司机页面

在这个页面中有一个表单,表单有创建司机的多个字段,点击【返回列表】按钮返回到列表查询页面,点击【取消】按钮返回到上一级,点击【提交】按钮验证表单各字段的合规性,然后把数据提交到服务端保存。

# 实战开发

搜索页面开发示例

<template>
<div style='height:1000px;'>
  <bst-page padding backgroundColor="#edeff4">
    <bst-form-create ref="form" :formConfig="formConfig"></bst-form-create>
  </bst-page>
</div>
</template>

<script>
  export default {
    name: "create",
    data() {
      return {
        formConfig: [
                  {
                    name: '个人信息',
                    span: 24,
                    formItems: [
                      {
                        key: 'name',
                        label: '姓名',
                        type: 'input',
                        span: 24,
                        props: {
                          disabled: false,
                        },
                        events: {
                          input: (value) => {
                            console.log(this.$refs.form.getData())
                          },
                          change(value) {
                            console.log('name change ', value)
                          },
                        },
                        rules: [
                          {required: true, message: '请输入姓名', trigger: 'blur'},
                        ]
                      },
                      {
                        label: '性别',
                        type: 'radio',
                        key: 'sex',
                        defaultValue: '',
                        span: 24,
                        props: {
                          disabled: false,
                        },
                        rules: [
                          {required: true, message: '请输入经纬度', trigger: 'blur'},
                        ],
                        options: [
                          {label: '男', value: 'male'},
                          {label: '女', value: 'female'},
                        ],
                      },
                      {
                        label: '头发长度',
                        type: 'input',
                        key: 'hair_length',
                        defaultValue: 30,
                        span: 12,
                        props: {
                          append: '厘米'
                        },
                        show: ({sex}) => {
                          return sex === 'female';
                        },
                      },
                      {
                        label: '出生日期',
                        type: 'date-picker',
                        key: 'birthday',
                        span: 24,
                        rules: [
                          {required: true, message: '请选择出生日期', trigger: 'blur'},
                        ]
                      },
                      {
                        label: '爱好',
                        type: 'checkbox',
                        key: 'hobby',
                        defaultValue: [],
                        span: 24,
                        options: [
                          {label: '游戏', value: 'v1'},
                          {label: '跑步', value: 'v2'},
                          {label: '游泳', value: 'v3'},
                          {label: '篮球', value: 'v4'},
                        ],
                        props: {
                          disabled: false,
                          showAll: true,
                        },
                        rules: [
                          {required: true, message: '请选择爱好', trigger: 'blur'},
                        ]
                      },
                      {
                        label: '技能',
                        type: 'select',
                        key: 'city',
                        defaultValue: [],
                        span: 24,
                        class: 'effective-scope',
                        style: {'color': 'red'},
                        options: [
                          {label: '北京', value: 'bj'},
                          {label: '上海', value: 'sh'},
                          {label: '广州', value: 'gz'},
                          {label: '成都', value: 'cd'},
                        ],
                        props: {
                          disabled: false,
                          multiple: true,
                        },
                        rules: [
                          {required: true, message: '请选择生效范围', trigger: 'blur'},
                        ]
                      },
                      {
                        label: '自我介绍',
                        type: 'textarea',
                        key: 'selfIntroduce',
                        defaultValue: '',
                        span: 24,
                      },
                    ]
                  },
                  {
                    name: '员工信息',
                    span: 24,
                    formItems: [
                      {
                        key: 'poiName',
                        label: 'POI 名称',
                        type: 'input',
                        span: 24,
                        props: {
                          disabled: false,
                        },
                        events: {
                          input: (value) => {
                            console.log("poiName input ", value)
                            console.log(this.$refs.form.getData())
                          },
                          change(value) {
                            console.log('poiName change ', value)
                          },
                        },
                        rules: [
                          {required: true, message: '请输入POI 名称', trigger: 'blur'},
                        ]
                      },
                    ],
                  },
                  {
                    name: "车辆信息",
                    span: 12,
                    formItems: [
                      {
                        label: '车座数',
                        type: 'input',
                        key: 'vehicle_seat_num',
                        defaultValue: '',
                        span: 12,
                        labelWidth: '100px',
                        props: {
                          disabled: false,
                        },
                        rules: [
                          {required: true, message: '请输入车座数', trigger: 'blur'},
                        ],
                      },
                      {
                        label: '车辆颜色',
                        type: 'input',
                        key: 'vehicle_color',
                        defaultValue: '',
                        span: 12,
                        props: {
                          disabled: false,
                        },
                        rules: [
                          {required: true, message: '请选择车辆颜色', trigger: 'blur'},
                        ],
                      },
                    ],
                  },
                  {
                    name: '驾驶证信息',
                    span: 12,
                    formItems: [
                      {
                        label: '准驾车型',
                        type: 'input',
                        key: 'poiId',
                        defaultValue: 1,
                        span: 24,
                      },
                      {
                        key: 'drivingAge',
                        slotName: 'drivingAge',
                        span: 24,
                      },
                    ],
                  },
                ],
      }
    },
  }
</script>
显示代码