vue+element-ui创建表单(公益内容)

<template>
  <div>
    <el-form ref="form" :model="form" label-width="120px">
      <el-form-item label="公益名称">
        <el-input v-model="form.name"></el-input>
      </el-form-item>
      <el-form-item label="公益所在地点">
        <el-input v-model="form.location"></el-input>
      </el-form-item>
      <el-form-item label="公益开始时间">
        <el-date-picker v-model="form.startTime" type="date"></el-date-picker>
      </el-form-item>
      <el-form-item label="受益群体">
        <el-checkbox-group v-model="form.beneficiaries">
          <el-checkbox label="流浪动物"></el-checkbox>
          <el-checkbox label="野生动物/生物"></el-checkbox>
          <el-checkbox label="困难人民"></el-checkbox>
        </el-checkbox-group>
      </el-form-item>
      <el-form-item label="资金预估">
        <el-input-number v-model="form.funding"></el-input-number>
      </el-form-item>
      <el-form-item label="计划书">
        <el-input type="textarea" v-model="form.plan"></el-input>
      </el-form-item>
      <el-form-item label="公益共识">
        <el-radio-group v-model="form.consensus">
          <el-radio label="是"></el-radio>
          <el-radio label="否"></el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="上传凭证">
        <el-upload
          action="/upload"
          :on-success="handleUploadSuccess"
          :on-remove="handleUploadRemove"
          :file-list="form.files"
          multiple
        >
          <el-button slot="trigger" size="small" type="primary">选择文件</el-button>
        </el-upload>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="handleSubmit">立即创建</el-button>
        <el-button @click="handleReset">重置</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      form: {
        name: '',
        location: '',
        startTime: '',
        beneficiaries: [],
        funding: 0,
        plan: '',
        consensus: '',
        files: []
      }
    };
  },
  methods: {
    handleSubmit() {
      this.$refs.form.validate(valid => {
        if (valid) {
          // 提交表单逻辑
          console.log(this.form);
        } else {
          console.log('表单校验失败');
          return false;
        }
      });
    },
    handleReset() {
      this.$refs.form.resetFields();
    },
    handleUploadSuccess(response, file, fileList) {
      // 上传成功回调
      console.log(response);
      this.form.files = fileList;
    },
    handleUploadRemove(file, fileList) {
      // 删除文件回调
      console.log(file, fileList);
      this.form.files = fileList;
    }
  }
};
</script>

代码效果:

<template>
  <div>
    <el-form ref="form" :model="form" label-width="120px">
      <el-form-item label="公益名称">
        <el-input v-model="form.name"></el-input>
      </el-form-item>
      <el-form-item label="公益所在地点">
        <el-input v-model="form.location"></el-input>
      </el-form-item>
      <el-form-item label="公益时间范围">
        <el-date-picker
          v-model="form.timeRange"
          type="daterange"
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
        ></el-date-picker>
      </el-form-item>
      <el-form-item label="受益群体">
        <el-checkbox-group v-model="form.beneficiaries">
          <el-checkbox label="流浪动物"></el-checkbox>
          <el-checkbox label="野生动物/生物"></el-checkbox>
          <el-checkbox label="困难人民"></el-checkbox>
        </el-checkbox-group>
      </el-form-item>
      <el-form-item label="资金预估">
        <el-input-number v-model="form.funding"></el-input-number>
      </el-form-item>
      <el-form-item label="计划书">
        <el-input type="textarea" v-model="form.plan"></el-input>
      </el-form-item>
      <el-form-item label="公益共识">
        <el-radio-group v-model="form.consensus">
          <el-radio label="是"></el-radio>
          <el-radio label="否"></el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="上传凭证">
        <el-upload
          action="/upload"
          :on-success="handleUploadSuccess"
          :on-remove="handleUploadRemove"
          :file-list="form.files"
          multiple
        >
          <el-button slot="trigger" size="small" type="primary">选择文件</el-button>
        </el-upload>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="handleSubmit">立即创建</el-button>
        <el-button @click="handleReset">重置</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      form: {
        name: '',
        location: '',
        timeRange: [],
        beneficiaries: [],
        funding: 0,
        plan: '',
        consensus: '',
        files: []
      }
    };
  },
  methods: {
    handleSubmit() {
      this.$refs.form.validate(valid => {
        if (valid) {
          // 提交表单逻辑
          console.log(this.form);
        } else {
          console.log('表单校验失败');
          return false;
        }
      });
    },
    handleReset() {
      this.$refs.form.resetFields();
    },
    handleUploadSuccess(response, file, fileList) {
      // 上传成功回调
      console.log(response);
      this.form.files = fileList;
    },
    handleUploadRemove(file, fileList) {
      // 删除文件回调
      console.log(file, fileList);
      this.form.files = fileList;
    }
  }
};
</script>

代码效果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值