vue+element 後臺管理系統(二)表單

<!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 
版權聲明:本文爲博主原創文章,轉載請附上博文連接!
相關文章
相關標籤/搜索