2

<!DOCTYPE html>
<html class="over_hidd">
    <head>
        <meta charset="UTF-8">
        <title>vue+element后台系统"</title>        
        <meta name="Author" content="Lee">
        <meta name="Keywords" content="vue+element后台系统">
        <link rel="stylesheet" href="css/public.css" />
        <link rel="stylesheet" href="css/element.css" />
    </head>
    <body class="over_hidd">
      <div id="app" class="over_hidd">
            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
                  <el-form-item label="活动名称" prop="name">
                    <el-input v-model="ruleForm.name"></el-input>
                  </el-form-item>
                  <el-form-item label="活动区域" prop="region">
                    <el-select v-model="ruleForm.region" placeholder="请选择活动区域">
                          <el-option label="区域一" value="shanghai"></el-option>
                          <el-option label="区域二" value="beijing"></el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item label="活动时间" required>
                    <el-col :span="11">
                          <el-form-item prop="date1">
                            <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.date1" style="width: 100%;"></el-date-picker>
                          </el-form-item>
                    </el-col>
                    <el-col class="line" :span="2">-</el-col>
                    <el-col :span="11">
                          <el-form-item prop="date2">
                            <el-time-picker type="fixed-time" placeholder="选择时间" v-model="ruleForm.date2" style="width: 100%;"></el-time-picker>
                          </el-form-item>
                    </el-col>
                  </el-form-item>
                  <el-form-item label="即时配送" prop="delivery">
                    <el-switch v-model="ruleForm.delivery"></el-switch>
                  </el-form-item>
                  <el-form-item label="颜色值" prop="color">
                      <el-color-picker
                          v-model="ruleForm.color"
                          show-alpha
                          :predefine="predefineColors">
                    </el-color-picker>
                  </el-form-item>
                  <div>
                      <span v-for="key in ruleForm.upload">{{key.url}}</span><br/>
                  </div>
                  <el-form-item label="上传图片" prop="upload">
                    <el-upload
                        v-model="ruleForm.upload"
                          action="https://jsonplaceholder.typicode.com/posts/"
                          list-type="picture-card"
                          :on-preview="handlePictureCardPreview"
                          :on-success="uploadImg"
                          :on-remove="handleRemove" multiple>
                          <i class="el-icon-plus"></i>
                    </el-upload>
                    <el-dialog :visible.sync="dialogVisible">
                          <img width="100%" :src="dialogImageUrl" alt="">
                    </el-dialog>
                  </el-form-item>
                  <el-form-item label="活动性质" prop="type">
                    <el-checkbox-group v-model="ruleForm.type">
                          <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
                          <el-checkbox label="地推活动" name="type"></el-checkbox>
                          <el-checkbox label="线下主题活动" name="type"></el-checkbox>
                          <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
                    </el-checkbox-group>
                  </el-form-item>
                  <el-form-item label="特殊资源" prop="resource">
                    <el-radio-group v-model="ruleForm.resource">
                          <el-radio label="线上品牌商赞助"></el-radio>
                          <el-radio label="线下场地免费"></el-radio>
                    </el-radio-group>
                  </el-form-item>
                  <el-form-item label="活动形式" prop="desc">
                    <el-input type="textarea" v-model="ruleForm.desc"></el-input>
                  </el-form-item>
                  <el-form-item>
                    <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
                    <el-button @click="resetForm('ruleForm')">重置</el-button>
                  </el-form-item>
            </el-form>
          </div>
    </body>
    <script type="text/javascript" src="js/vue.js" ></script>
    <script type="text/javascript" src="js/element.js" ></script>
      <script>
        new Vue({
              el: '#app',
              data() {
                  return {
                      dialogImageUrl: '',
                        dialogVisible: false,
                      predefineColors: [
                          '#ff4500',
                          '#ff8c00',
                          '#ffd700',
                          '#90ee90',
                          '#00ced1',
                          '#1e90ff',
                          '#c71585',
                          'rgba(255, 69, 0, 0.68)',
                          'rgb(255, 120, 0)',
                          'hsv(51, 100, 98)',
                          'hsva(120, 40, 94, 0.5)',
                          'hsl(181, 100%, 37%)',
                          'hsla(209, 100%, 56%, 0.73)',
                          '#c7158577'
                    ],
                    ruleForm: {
                        color:'rgba(255, 69, 0, 0.68)',
                          name: '',
                          region: '',
                          date1: '',
                          date2: '',
                          delivery: false,
                          type: [],
                          resource: '',
                          desc: '',
                          upload:[]
                    },
                    rules: {
                          name: [
                            { required: true, message: '请输入活动名称', trigger: 'blur' },
                            { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
                        ],
                        region: [
                            { required: true, message: '请选择活动区域', trigger: 'change' }
                        ],
                        date1: [
                            { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
                        ],
                        date2: [
                            { type: 'date', required: true, message: '请选择时间', trigger: 'change' }
                        ],
                        type: [
                            { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' }
                        ],
                        resource: [
                            { required: true, message: '请选择活动资源', trigger: 'change' }
                        ],
                        desc: [
                            { required: true, message: '请填写活动形式', trigger: 'blur' }
                        ],
                        upload:[
                            {type: 'array'}    
                        ]
                    }
                  };
            },
            methods: {
                  submitForm(formName) {
                    this.$refs[formName].validate((valid) => {
                          if (valid) {
                            this.$message({
                                  showClose: true,
                                  message: '提交成功!',
                                  type: 'success'
                            });
                            console.log(this.ruleForm)
                          } else {
                            this.$message.error('提交失败');
                            return false;
                          }
                    });
                  },
                  resetForm(formName) {
                    this.$refs[formName].resetFields();
                  },
                  handleRemove(file, fileList) {//删除图片
                      var self = this;
                      console.log(self.ruleForm.upload)
                      for(var i in self.ruleForm.upload){
                          if(fileList.response.id==this.ruleForm.upload[i].id){
                              delete this.ruleForm.upload[i];
                          }
                      }
                  },
                  handlePictureCardPreview(file) {
                    this.dialogImageUrl = file.url;
                    this.dialogVisible = true;
                  },
                  uploadImg(response, file, fileList){//长传成功
                      this.ruleForm.upload = [];
                      for(var i in fileList){
                          this.ruleForm.upload.push({
                              id:response.id,
                              url:fileList[i].url
                          });
                      }
                      
                  }
            }
        })
  </script>
</html>
--------------------- 
作者:攻城狮Lee丶 
来源:CSDN 
原文:https://blog.csdn.net/zhuoganliwanjin/article/details/83506089 
版权声明:本文为博主原创文章,转载请附上博文链接!

攻城狮Lee丶
2.8k 声望19 粉丝

90后码农一枚。关注互粉。