elementui中的form表单布局

82 阅读1分钟
 <div class="new-user">
    <el-row>
      <el-col
        :offset="7"
        :span="10"
        style="padding:16px 0px;"
      >
        <el-form
          ref="dataForm"
          :model="dataForm"
          label-width="150px"
        >
          <el-form-item
            label="车辆编号"
            prop="number"
            required
          >
            <el-input
              v-model="dataForm.number"
              placeholder="请输入车辆编号"
            />
          </el-form-item>
          <el-form-item
            label="地铁线路"
            prop="subway_line"
            required
          >
            <el-select
              v-model="dataForm.subway_line"
              placeholder="请选择地铁线路"
              style="width:250px"
            >
              <el-option
                v-for="line in lineList"
                :key="line.id+'_line'"
                :label="line.name"
                :value="line.id"
              />
            </el-select>
          </el-form-item>
          <el-form-item
            label="车辆类型"
            prop="type_id"
            required
          >
            <el-select
              v-model="dataForm.type_id"
              placeholder="请选择车辆类型"
              style="width:250px"
            >
              <el-option
                v-for="type in trainTypeList"
                :key="type.id"
                :label="type.name"
                :value="type.id"
              />
            </el-select>
          </el-form-item>
          <el-form-item
            label="出厂日期"
            prop="out_date"
            required
          >
            <el-date-picker
              v-model="dataForm.out_date"
              format="yyyy 年 MM 月 dd 日"
              value-format="yyyy-MM-dd"
              type="date"
              placeholder="请选择日期"
            />
          </el-form-item>
          <el-form-item
            label="一车里程数"
            prop="one_mileage"
            required
          >
            <el-input
              v-model="dataForm.one_mileage"
              placeholder="请输入一车里程数"
            />
          </el-form-item>
          <el-form-item
            label="六车里程数"
            prop="six_mileage"
            required
          >
            <el-input
              v-model="dataForm.six_mileage"
              placeholder="请输入六车里程数"
            />
          </el-form-item>
          <el-form-item>
            <el-button
              type="primary"
              @click="submit('dataForm')"
            >
              {{ modeName }}
            </el-button>
            <el-button @click="$router.back()">
              返回
            </el-button>
            <el-button @click="resetForm('dataForm')">
              重置
            </el-button>
          </el-form-item>
        </el-form>
      </el-col>
    </el-row>
  </div>

image.png

<div class="new-user">
    <el-form ref="dataForm" :model="dataForm" label-width="100px" :rules="rules">
      <el-row>
        <el-col :offset="5" :span="7">
          <el-form-item label="用户名" prop="username">
            <el-input v-model="dataForm.username" />
          </el-form-item>
          <el-form-item label="姓名" prop="name">
            <el-input v-model="dataForm.name" />
          </el-form-item>
          <el-form-item label="工龄" prop="age">
            <el-input v-model="dataForm.age" />
          </el-form-item>
          <el-form-item label="工号" prop="number">
            <el-input v-model="dataForm.number" />
          </el-form-item>
          <el-form-item label="部门" prop="department_id">
            <el-select v-model="dataForm.department_id" placeholder="请选择部门">
              <el-option v-for="dep in departments" :key="dep.id" :label="dep.dep_name" :value="dep.id" />
            </el-select>
          </el-form-item>
          <el-form-item label="职位" prop="post_id_list">
            <el-select v-model="dataForm.post_id_list" multiple placeholder="请选择职位">
              <el-option v-for="post in posts" :key="post.id" :label="post.name" :value="post.id" />
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="7">
          <el-form-item v-if="mode=='new'" label="密码" prop="password">
            <el-input v-model="dataForm.password" type="password" />
          </el-form-item>
          <el-form-item label="电话号码" prop="phone_number">
            <el-input v-model="dataForm.phone_number" />
          </el-form-item>
          <el-form-item label="人员状态" prop="status">
            <el-select v-model="dataForm.status">
              <el-option v-for="item of stateList" :key="item.id" :label="item.label" :value="item.id" />
            </el-select>
          </el-form-item>
          <el-form-item label="站点" prop="station_id">
            <el-input v-model="dataForm.station_id" />
          </el-form-item>
          <el-upload class="avatar-uploader" action="https://jsonplaceholder.typicode.com/posts/"
            :show-file-list="false" :before-upload="beforeAvatarUpload" :auto-upload="false" :on-change="onChange">
            <!-- <img
              v-if="imageUrl"
              :src="imageUrl"
              class="avatar"
            >
            <i
              v-if="!imageUrl"
              class="el-icon-plus avatar-uploader-icon"
            />
            <p
              v-if="!imageUrl"
              class="avatar-uploader-text"
            >
              上传用户头像
            </p> -->
          </el-upload>
        </el-col>
        <el-col :offset="5" :span="14">
          <el-form-item>
            <el-button type="primary" @click="submit('dataForm')">
              {{ modeName }}
            </el-button>
            <el-button @click="$router.back()">
              返回
            </el-button>
            <el-button @click="resetForm('dataForm')">
              重置
            </el-button>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
  </div>

image.png

<template>
  <div class="route-form">
    <el-form :model="dataForm">
      <el-row
        :gutter="20"
        style="display:flex; align-items:center">
        <el-col
          :span="12">
          <el-row :gutter="21">
            <el-col :span="8">
              <el-form-item
                label="子线路名称"
                prop="subLineName"
                required>
                <el-input
                  v-model="dataForm.subLineName"
                  placeholder="请输入线路名称"
                />
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item
                label="时长"
                prop="duration"
                required>
                <el-input
                  v-model="dataForm.duration"
                  placeholder="请输入时长"
                />
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item
                label="车辆类型"
                prop="car_type_id"
                required>
                <el-select
                  v-model="dataForm.car_type_id"
                  placeholder="请车辆类型"
                >
                  <el-option
                    v-for="train of carTypeList"
                    :key="train.id"
                    :label="train.name"
                    :value="train.id" />
                </el-select>
              </el-form-item>
            </el-col>
          </el-row>
        </el-col>
        <el-col :span="12">
          <el-row>
            <el-col :span="3">
              <div class="point_l" />两则设备
            </el-col>
            <el-col :span="3">
              <div class="point_under" />车底设备
            </el-col>
            <el-col :span="3">
              <div class="point_in" />车内设备
            </el-col>
          </el-row>
        </el-col>
      </el-row>
    </el-form>
    <el-row>
      <el-col :span="24">
        <div class="train-form">
          <route-list
            v-if="allPoints.length > 0"
            :modeName="modeName"
            :selected.sync="selectedPoint"
            :all-points="allPoints" />
        </div>
      </el-col>
    </el-row>
    <el-row>
      <el-col
        :span="2"
        :offset="9"
        style="text-align: center;"
      >
        <el-button
          type="primary"
          @click="submit()"
        >
          {{ modeName }}
        </el-button>
      </el-col>
      <el-col
        :span="2"
        style="text-align: center;"
      >
        <el-button @click="$router.back()">
          返回
        </el-button>
      </el-col>
      <el-col
        :span="2"
        style="text-align: center;"
      >
        <el-button
          type="primary"
          @click="dataForm={}"
        >
          重置
        </el-button>
      </el-col>
    </el-row>
  </div>
</template>

image.png

 <el-row>
      <el-col :offset="7" :span="10" style="padding:16px 0px;">
        <el-form ref="dataForm" :model="dataForm" label-width="150px">
          <el-form-item label="车辆设备名称" prop="name" required>
            <el-input v-model="dataForm.name" placeholder="请输入车辆设备名称" />
          </el-form-item>
          <el-form-item label="车辆类型" prop="car_type_id" required>
            <el-select v-model="dataForm.car_type_id" placeholder="请选择车辆设备名称">
              <el-option v-for="item of carTypeList" :key="item.id" :label="item.name" :value="item.id" />
            </el-select>
          </el-form-item>

          <el-form-item label="故障类型" prop="type_id" required>
            <el-tree :data="fault_type" node-key="id" :default-checked-keys="dataForm.type_id" :props="defaultProps" @check="handleCheckChange" style="margin-top:8px;" show-checkbox></el-tree>
            <!-- <el-select
              v-model="dataForm.type_id"
              multiple
              placeholder="请选择故障类型"
            >
              <el-option
                v-for="fault in fault_type"
                :key="fault.id"
                :label="fault.name"
                :value="fault.id"
              />
            </el-select> -->
          </el-form-item>
          <el-form-item label="车厢编号" prop="carriage_id" required>
            <el-input v-model="dataForm.carriage_id" placeholder="请输入车厢号" />
          </el-form-item>
          <el-form-item label="设备位置" prop="position_c" required>
            <el-select v-model="dataForm.position_c" placeholder="请选择设备所在位置">
              <el-option label="车内" :value="1" />
              <el-option label="车两侧" :value="0" />
              <el-option label="车底" :value="-1" />
            </el-select>
          </el-form-item>
          <el-form-item label="是否作为节点" prop="is_position">
            <el-radio-group v-model="dataForm.is_position">
              <el-radio label="1">
                是
              </el-radio>
              <el-radio label="0">
                否
              </el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="submit('dataForm')">
              {{ modeName }}
            </el-button>
            <el-button @click="$router.back()">
              返回
            </el-button>
            <el-button @click="resetForm('dataForm')">
              重置
            </el-button>
          </el-form-item>
        </el-form>
      </el-col>
    </el-row>

image.png

 <div class="new-devices">
    <el-form
      ref="dataForm"
      :model="dataForm"
      label-width="150px"
    >
      <el-row>
        <el-col
          :offset="5"
          :span="7"
        >
          <el-form-item
            label="设备编号"
            prop="no"
            required
          >
            <el-input
              v-model="dataForm.no"
              placeholder="请输入设备编号"
            />
          </el-form-item>
          <el-form-item
            label="设备名称"
            prop="device_name"
            required
          >
            <el-input
              v-model="dataForm.device_name"
              placeholder="请输入设备名称"
            />
          </el-form-item>
          <el-form-item
            label="型号"
            prop="model"
          >
            <el-input
              v-model="dataForm.model"
              placeholder="请输入型号"
            />
          </el-form-item>
          <el-form-item
            label="批次"
            prop="batch"
          >
            <el-input
              v-model="dataForm.batch"
              placeholder="请输入批次"
            />
          </el-form-item>
        </el-col>
        <el-col :span="7">
          <el-form-item
            label="设备类型"
            prop="type_name"
            required
          >
            <el-select
              v-model="dataForm.type_name"
              clearable
              placeholder="请选择设备类型"
            >
              <el-option
                v-for="type in typeOptions"
                :key="type.value"
                :label="type.label"
                :value="type.value"
              />
            </el-select>
          </el-form-item>
          <el-form-item
            label="品牌"
            prop="brand"
          >
            <el-input
              v-model="dataForm.brand"
              placeholder="请输入品牌"
            />
          </el-form-item>
          <el-form-item
            label="颜色"
            prop="color"
          >
            <el-input
              v-model="dataForm.color"
              placeholder="请输入颜色"
            />
          </el-form-item>
          <el-form-item
            label="出厂编号"
            prop="factory_no"
            required
          >
            <el-input
              type="number"
              v-model.number="dataForm.factory_no"
              placeholder="请输入出厂编号"
            />
          </el-form-item>
        </el-col>
        <el-col
          :span="14"
          :offset="5"
        >
          <el-form-item
            label="生产厂家"
            prop="manufacturer"
          >
            <el-input
              v-model="dataForm.manufacturer"
              placeholder="请输入生产厂家"
            />
          </el-form-item>
        </el-col>
        <el-col
          :span="7"
          :offset="5"
        >
          <el-form-item
            label="接收人"
            prop="recevier"
          >
            <el-select
              v-model="dataForm.recevier"
              clearable
              placeholder="请选择接收人"
            >
              <el-option
                v-for="user in person"
                :key="user.id"
                :label="user.name"
                :value="user.id"
              />
            </el-select>
          </el-form-item>
          <el-form-item
            label="设备状态"
            prop="device_status"
            required
          >
            <el-select
              v-model="dataForm.device_status"
              clearable
              placeholder="请选择设备状态"
            >
              <el-option
                label="启用"
                :value="1"
              />
              <el-option
                label="停用"
                :value="0"
              />
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="7">
          <el-form-item
            required
            label="入库时间"
            prop="storage_date"
          >
            <el-date-picker
              v-model="dataForm.storage_date"
              type="date"
              value-format="yyyy-MM-dd"
              placeholder="请选择入库时间"
            />
          </el-form-item>
          <el-form-item
            label="质保期"
            prop="guarantee_period"
          >
            <el-input
              v-model="dataForm.guarantee_period"
              placeholder="请输入质保期" />
          </el-form-item>
        </el-col>
        <el-col
          :span="14"
          :offset="5"
        >
          <el-form-item>
            <el-button
              type="primary"
              @click="submit('dataForm')"
            >
              {{ modeName }}
            </el-button>
            <el-button @click="$router.back()">
              返回
            </el-button>
            <el-button @click="resetForm('dataForm')">
              重置
            </el-button>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
  </div>

image.png