index.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <template>
  2. <div class="form-container">
  3. <el-row :gutter="20">
  4. <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
  5. <el-form
  6. ref="ruleForm"
  7. :model="ruleForm"
  8. :rules="rules"
  9. label-width="100px"
  10. class="demo-ruleForm"
  11. >
  12. <el-form-item label="活动名称" prop="name">
  13. <el-input v-model="ruleForm.name"></el-input>
  14. </el-form-item>
  15. <el-form-item label="活动区域" prop="region">
  16. <el-select v-model="ruleForm.region" placeholder="请选择活动区域">
  17. <el-option label="区域一" value="shanghai"></el-option>
  18. <el-option label="区域二" value="beijing"></el-option>
  19. </el-select>
  20. </el-form-item>
  21. <el-form-item label="即时配送" prop="delivery">
  22. <el-switch v-model="ruleForm.delivery"></el-switch>
  23. </el-form-item>
  24. <el-form-item label="活动性质" prop="type">
  25. <el-checkbox-group v-model="ruleForm.type">
  26. <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
  27. <el-checkbox label="地推活动" name="type"></el-checkbox>
  28. <el-checkbox label="线下主题活动" name="type"></el-checkbox>
  29. <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
  30. </el-checkbox-group>
  31. </el-form-item>
  32. <el-form-item label="特殊资源" prop="resource">
  33. <el-radio-group v-model="ruleForm.resource">
  34. <el-radio label="线上品牌商赞助"></el-radio>
  35. <el-radio label="线下场地免费"></el-radio>
  36. </el-radio-group>
  37. </el-form-item>
  38. <el-form-item label="活动形式" prop="desc">
  39. <el-input v-model="ruleForm.desc" type="textarea"></el-input>
  40. </el-form-item>
  41. <el-form-item>
  42. <el-button type="primary" @click="submitForm('ruleForm')">
  43. 立即创建
  44. </el-button>
  45. <el-button @click="resetForm('ruleForm')">重置</el-button>
  46. </el-form-item>
  47. </el-form>
  48. </el-col>
  49. </el-row>
  50. </div>
  51. </template>
  52. <script>
  53. export default {
  54. name: "Form",
  55. data() {
  56. return {
  57. ruleForm: {
  58. name: "",
  59. region: "",
  60. delivery: false,
  61. type: [],
  62. resource: "",
  63. desc: "",
  64. },
  65. rules: {
  66. name: [
  67. { required: true, message: "请输入活动名称", trigger: "blur" },
  68. {
  69. min: 3,
  70. max: 5,
  71. message: "长度在 3 到 5 个字符",
  72. trigger: "blur",
  73. },
  74. ],
  75. region: [
  76. { required: true, message: "请选择活动区域", trigger: "change" },
  77. ],
  78. type: [
  79. {
  80. type: "array",
  81. required: true,
  82. message: "请至少选择一个活动性质",
  83. trigger: "change",
  84. },
  85. ],
  86. resource: [
  87. { required: true, message: "请选择活动资源", trigger: "change" },
  88. ],
  89. desc: [
  90. { required: true, message: "请填写活动形式", trigger: "blur" },
  91. ],
  92. },
  93. };
  94. },
  95. methods: {
  96. submitForm(formName) {
  97. this.$refs[formName].validate((valid) => {
  98. if (valid) {
  99. alert("submit!");
  100. } else {
  101. return false;
  102. }
  103. });
  104. },
  105. resetForm(formName) {
  106. this.$refs[formName].resetFields();
  107. },
  108. },
  109. };
  110. </script>