index.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <template>
  2. <div class='m-container'>
  3. <h2>
  4. <div class="squrt"></div>保存表单演示
  5. </h2>
  6. <div class="m-core">
  7. <saveform ref="form" :model.sync="form" inline>
  8. <el-form-item
  9. label="内容"
  10. prop="input"
  11. :rules="[{required: true}]"
  12. >
  13. <el-input v-model="form.input" placeholder="请输入内容"/>
  14. </el-form-item>
  15. <el-form-item
  16. label="内容2"
  17. prop="input2"
  18. :rules="[{required: true}]"
  19. >
  20. <el-input v-model="form.input2" placeholder="请输入内容2"/>
  21. </el-form-item>
  22. <el-form-item label="活动区域" prop="region">
  23. <el-select v-model="form.region" placeholder="请选择活动区域">
  24. <el-option label="区域一" value="shanghai"></el-option>
  25. <el-option label="区域二" value="beijing"></el-option>
  26. </el-select>
  27. </el-form-item>
  28. <el-form-item label="活动时间" required>
  29. <el-col :span="11">
  30. <el-form-item prop="date1">
  31. <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;"></el-date-picker>
  32. </el-form-item>
  33. </el-col>
  34. <el-col class="line" :span="2">-</el-col>
  35. <el-col :span="11">
  36. <el-form-item prop="date2">
  37. <el-time-picker placeholder="选择时间" v-model="form.date2" style="width: 100%;"></el-time-picker>
  38. </el-form-item>
  39. </el-col>
  40. </el-form-item>
  41. <el-form-item label="即时配送" prop="delivery">
  42. <el-switch v-model="form.delivery"></el-switch>
  43. </el-form-item>
  44. <el-form-item label="活动性质" prop="type">
  45. <el-checkbox-group v-model="form.type">
  46. <el-checkbox label="美食/餐厅线上活动" value="1" name="type"></el-checkbox>
  47. <el-checkbox label="地推活动" value="2" name="type"></el-checkbox>
  48. <el-checkbox label="线下主题活动" value="3" name="type"></el-checkbox>
  49. <el-checkbox label="单纯品牌曝光" value="4" name="type"></el-checkbox>
  50. </el-checkbox-group>
  51. </el-form-item>
  52. <el-form-item label="特殊资源" prop="resource">
  53. <el-radio-group v-model="form.resource">
  54. <el-radio label="线上品牌商赞助"></el-radio>
  55. <el-radio label="线下场地免费"></el-radio>
  56. </el-radio-group>
  57. </el-form-item>
  58. <el-form-item label="活动形式" prop="desc">
  59. <el-input type="textarea" v-model="form.desc"></el-input>
  60. </el-form-item>
  61. <el-form-item label="活动时间范围" prop="times">
  62. <el-date-picker
  63. v-model="form.times"
  64. type="daterange"
  65. range-separator="至"
  66. start-placeholder="开始日期"
  67. end-placeholder="结束日期">
  68. </el-date-picker>
  69. </el-form-item>
  70. <el-button @click="submit">提交</el-button>
  71. <el-button @click="reset">重置</el-button>
  72. <el-button @click="testvisible = true">打开弹窗</el-button>
  73. </saveform>
  74. </div>
  75. <pagination :total="rules.total"
  76. :page.sync="rules.page"
  77. :limit.sync="rules.limit"
  78. :page-sizes="rules.page_size"
  79. :sync="true"
  80. @pagination="getList" />
  81. <el-dialog :visible.sync="testvisible" destroy-on-close>
  82. <test v-if="testvisible"/>
  83. <template #footer>
  84. <el-button @click="testvisible = false">关闭</el-button>
  85. </template>
  86. </el-dialog>
  87. </div>
  88. </template>
  89. <script>
  90. import saveform from '@/components/save-form'
  91. import pagination from "@/components/Pagination/index";
  92. import test from './modals/test'
  93. export default {
  94. components: {
  95. saveform,
  96. test,
  97. pagination
  98. },
  99. data() {
  100. return {
  101. testvisible: false,
  102. rules: {
  103. // 分页规则
  104. limit: 10, // 限制显示条数
  105. page: 1, // 当前页
  106. total: 30, // 总条数
  107. page_size: [10, 20, 40, 50] // 选择限制显示条数
  108. },
  109. form: {
  110. input: '',
  111. input2: '',
  112. region: '',
  113. date1: '',
  114. date2: '',
  115. delivery: '',
  116. type: [],
  117. resource: '',
  118. desc: '',
  119. times: []
  120. }
  121. }
  122. },
  123. mounted() {
  124. },
  125. methods: {
  126. getList() {
  127. return Promise.resolve()
  128. },
  129. submit() {
  130. this.$refs.form.validate(valid => {
  131. console.log(valid)
  132. })
  133. },
  134. reset() {
  135. this.$refs.form.resetFields()
  136. }
  137. }
  138. }
  139. </script>