【Vue】Element表单做成表格样式,el-form修改表格样式

<el-dialog
        width="55%"
        top="5vh"
        :title="textMap[dialogStatus]"
        :visible.sync="dialogFormVisible"
        :close-on-click-modal="false"
        destroy-on-close
        @open="dialogOpen"
        @close="resetTemp"
      >
        <h2 style="margin: 0 auto; text-align: center">党内职务基本信息表</h2>
        <el-form
          ref="dataForm"
          v-loading="dialogLoading"
          :rules="rules"
          :model="temp"
          label-position="right"
          label-width="111px"
          class="dataForm"
        >
          <el-row>
            <el-row>
              <el-col :span="20">
                <el-row>
                  <el-col :span="8">
                    <el-form-item label="姓名" prop="memberId" class="formItemDuty" style="border-top: 0px;">
                      <perSelector :per-selector="temp.perSelector" :edit-visible="dialogStatus === 'detail' || dialogStatus === 'update'" class="formItemDutyIn" @handleConfirm="selectorPers" />
                      <!-- <el-input v-model="temp.memberName" :readonly='true' :disabled="dialogStatus === 'detail' || dialogStatus === 'update'" @focus="selectPerson" class="formItemDutyIn" placeholder="请选择"></el-input> -->
                      <!-- <el-button
                        v-show="dialogStatus === 'create'"
                        style="margin-left: 20px"
                        type="primary"
                        size="small"
                        @click="innerVisible = true"
                      >
                        选择人员
                      </el-button> -->
                    </el-form-item>
                  </el-col>
                  <el-col :span="8">
                    <el-form-item label="性别" prop="" class="formItemDuty" style="border-top: 0px;">
                      <el-input v-model="temp.sex" disabled class="formItemDutyIn" />
                    </el-form-item>
                  </el-col>
                  <el-col :span="8">
                    <el-form-item label="出生日期" prop="" class="formItemDuty" style="border-top: 0px;">
                      <el-input v-model="temp.birthday" disabled class="formItemDutyIn" />
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row>
                  <el-col :span="8">
                    <el-form-item label="民族" prop="" class="formItemDuty">
                      <el-input v-model="temp.nation" disabled class="formItemDutyIn" />
                    </el-form-item>
                  </el-col>
                  <el-col :span="8">
                    <el-form-item label="文化程度" prop="" class="formItemDuty">
                      <el-input v-model="temp.educationBackground" disabled class="formItemDutyIn" />
                    </el-form-item>
                  </el-col>
                  <el-col :span="8">
                    <el-form-item label="入党时间" prop="" class="formItemDuty">
                      <el-input v-model="temp.partyDate" disabled class="formItemDutyIn" />
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row>
                  <el-col :span="12">
                    <el-form-item label="参加工作时间" prop="" class="formItemDuty">
                      <el-date-picker
                        v-model="temp.startWorkDate"
                        :disabled="dialogStatus === 'detail'"
                        :editable="false"
                        value-format="yyyy-MM-dd HH:mm:ss"
                        type="date"
                        class="formItemDutyIn"
                        style="border-left: 1px solid #000000;width: 100%;"
                      />
                    </el-form-item>
                  </el-col>
                  <el-col :span="12">
                    <el-form-item label="联系方式" prop="" class="formItemDuty">
                      <el-input v-model="temp.phone" disabled class="formItemDutyIn" />
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row>
                  <el-col :span="24">
                    <el-form-item label="身份证号" prop="" class="formItemDuty">
                      <el-input v-model="temp.idNo" disabled class="formItemDutyIn" />
                    </el-form-item>
                  </el-col>
                </el-row>
              </el-col>
              <el-col :span="4">
                <div style="text-align:center">
                  <img :src="temp.avatar" class="DutyAvatar" draggable="false">
                </div>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="24">
                <el-form-item label="所在支部" prop="orgId" class="formItemDuty">
                  <el-popover
                    v-model="popoverShow"
                    disabled
                    placement="bottom"
                    trigger="click"
                  >
                    <el-tree
                      class="tree"
                      style="max-height: 274px;overflow-y: auto;"
                      width="200px"
                      :data="tree"
                      :props="defaultProps"
                      :default-expand-all="true"
                      :expand-on-click-node="false"
                      @node-click="selectOrg"
                    />
                    <el-input
                      slot="reference"
                      class="formItemDutyIn"
                      style="border-right: 0px;"
                      disabled
                      :value="temp.parentOrgName"
                      :readonly="true"
                    />
                  </el-popover>
                </el-form-item>
              </el-col>
            </el-row>
          </el-row>
          <el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="是否党委成员" prop="dutyType" class="formItemDuty">
                  <div class="formItemDutyIn" style="background-color: white;text-align: center;">
                    <el-radio-group v-model="temp.dutyType" :disabled="dialogStatus === 'detail'">
                      <el-radio :label="1">是</el-radio>
                      <el-radio :label="2">否</el-radio>
                    </el-radio-group>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="是否纪委成员" prop="dutyTypeDiscipline" class="formItemDuty">
                  <div class="formItemDutyIn" style="background-color: white;text-align: center;border-right: 0px;">
                    <el-radio-group v-model="temp.dutyTypeDiscipline" :disabled="dialogStatus === 'detail'">
                      <el-radio :label="1">是</el-radio>
                      <el-radio :label="2">否</el-radio>
                    </el-radio-group>
                  </div>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="党内职务及任职时间" prop="duty" class="formItemDuty">
                  <div style="border-bottom: 1px solid #000000;">
                    <el-select
                      v-model="temp.duty"
                      :disabled="dialogStatus === 'detail'"
                      placeholder="请选择"
                      style="border-left: 1px solid #000000;"
                    >
                      <el-option
                        v-for="item in partyMemberDutyList"
                        :key="item.id"
                        :label="item.dictName"
                        :value="Number(item.dictCode)"
                      />
                    </el-select>
                  </div>
                  <el-date-picker
                    v-model="temp.employmentDateStr"
                    :disabled="dialogStatus === 'detail'"
                    :editable="false"
                    value-format="yyyy-MM-dd"
                    type="date"
                    style="border-left: 1px solid #000000;width: 99.6%;"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="专兼职情况" prop="partTime" style="height: 75.6px;border-left: 1px solid #000000;margin-left: -1px;" class="formItemDuty partTimeCenter">
                  <el-select
                    v-model="temp.partTime"
                    :disabled="dialogStatus === 'detail'"
                    placeholder="请选择"
                    style="border-left: 1px solid #000000;"
                    class="partTime-select"
                  >
                    <el-option
                      v-for="item in partTimeList"
                      :key="item.key"
                      :label="item.value"
                      :value="item.key"
                    />
                  </el-select>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="新任职书记" prop="" class="formItemDuty">
                  <div class="formItemDutyIn" style="background-color: white;text-align: center;">
                    <el-radio-group v-model="temp.isNewTakeOffice" :disabled="dialogStatus === 'detail'">
                      <el-radio :label="1">是</el-radio>
                      <el-radio :label="2">否</el-radio>
                    </el-radio-group>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="新任职时间" prop="" class="formItemDuty">
                  <el-date-picker
                    v-model="temp.takeOfficeDate"
                    :disabled="dialogStatus === 'detail'||temp.isNewTakeOffice === 2"
                    :editable="false"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    type="date"
                    style="border-left: 1px solid #000000;width: 100%;"
                  />
                </el-form-item>
              </el-col>
            </el-row>
          </el-row>
          <el-row>
            <el-col :span="24">
              <el-form-item label="任职培训情况" prop="" class="formItemDuty center">
                <el-input v-model="temp.takeOfficeTrain" type="textarea" maxlength="250" show-word-limit :rows="8" class="formItemDutyIn" style="border-right: 0px;" :disabled="dialogStatus === 'detail'" />
              </el-form-item>
            </el-col>
          </el-row>
        </el-form>

        <div slot="footer" class="dialog-footer">
          <el-button
            v-show="dialogStatus !== 'detail'"
            type="primary"
            :loading="dutyBtnLoading"
            @click="dialogStatus === 'create' ? createDuty() : updateDuty()"
          >
            保存
          </el-button>
          <el-button @click="dialogFormVisible = false"> 关闭 </el-button>
        </div>
      </el-dialog>
<style lang="scss" scoped>
.dataForm{
  margin-top: 20px;
  border-left: 1px solid #000000;
  border-right: 1px solid #000000;
  border-top: 1px solid #000000;
  border-bottom: 1px solid #000000;
}
.formItemDuty{
  border-top: 1px solid #000000;
  margin: 0px;
}
.formItemDutyIn{
  border-left: 1px solid #000000;
  border-right: 1px solid #000000;
}
.DutyAvatar {
  margin-top: 10px;
  width: 95%;
  height: 130px;
  // overflow: auto;
}
</style>
<style lang="scss">
  //label文字居中
  .formItemDuty .el-form-item__label {
      text-align: center;
      font-size: 13px;
  }
  //专兼职情况label上下剧中
  .partTimeCenter .el-form-item__label {
      margin-top: 20px;
  }
  //任职培训情况label上下剧中
  .center .el-form-item__label {
      margin-top: 70px;
  }
  //去除组件下边距,设置为0
  .formItemDuty .el-form-item {
    margin-bottom: 0px;
    border-bottom: 1px solid #ccc;
  }
  //改变input框中文字 居中
  .formItemDuty .el-input.is-disabled .el-input__inner {
      text-align: center;
      border-radius: 0px;
  }
  //改变input框中文字 居中
  .formItemDuty .el-input .el-input__inner {
      text-align: center;
      border-radius: 0px;
  }
  .formItemDuty .el-select {
      width: 99.6%;
  }
  /* selecte 框的高度设置,默认是 75.6px*/
  .partTime-select .el-input .el-input__inner{
      width: 100%;
      height: 75.6px;
  }
</style>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-formElement UI 提供的表单组件,用于快构建表单界面。el-form 表单校验是指对表单中的输入内容进行验证,确保用户输入的数据符合预期的格式和要求。 在 el-form 中进行表单校验时,可以通过设置 rules 属性来定义校验规则。每个表单项(el-form-item)可以设置 prop 属性来指定校验规则所对应的字段名。校验规则可以是一个数组,每个规则对象包含 validator 和 message 两个属性,validator 是一个函数,用于自定义校验逻辑,message 是校验失败时显示的错误提示信息。 以下是 el-form 表单校验的示例代码: ```html <template> <el-form :model="form" :rules="rules" ref="form"> <el-form-item label="用户名" prop="username"> <el-input v-model="form.username"></el-input> </el-form-item> <el-form-item label="密码" prop="password"> <el-input type="password" v-model="form.password"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> </el-form-item> </el-form> </template> <script> export default { data() { return { form: { username: '', password: '' }, rules: { username: [ { required: true, message: '请输入用户名', trigger: 'blur' }, { min: 3, max: 10, message: '用户名长度在 3 到 10 个字符之间', trigger: 'blur' } ], password: [ { required: true, message: '请输入密码', trigger: 'blur' }, { min: 6, max: 20, message: '密码长度在 6 到 20 个字符之间', trigger: 'blur' } ] } }; }, methods: { submitForm() { this.$refs.form.validate(valid => { if (valid) { // 表单校验通过,提交表单 // TODO: 提交表单的逻辑 } else { // 表单校验不通过,显示错误信息 return false; } }); } } }; </script> ``` 在上述示例中,通过设置 rules 属性来定义了两个校验规则,分别对应用户名和密码字段。在 submitForm 方法中,通过调用 this.$refs.form.validate 方法来触发表单校验,校验结果会通过回调函数的参数 valid 返回,如果 valid 为 true,则表示表单校验通过,可以提交表单;如果 valid 为 false,则表示表单校验不通过,需要显示错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值