four.vue 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <template>
  2. <div id="four">
  3. <el-row>
  4. <el-col :span="24" class="main">
  5. <el-form :model="form" :rules="rules" ref="form" label-width="180px">
  6. <el-col :span="12" v-for="(i, index) in question" :key="`four${index}`">
  7. <el-form-item v-if="i.type === 'select'" :prop="`${index}`" :key="`select${index}`" :label="`${i.label}`">
  8. <el-select v-model="form[i.model]">
  9. <el-option v-for="(item, index) in getList(i.list)" :key="index" :value="item" :label="item"></el-option>
  10. </el-select>
  11. </el-form-item>
  12. <el-form-item v-else-if="i.type === 'checkbox'" :prop="`${index}`" :key="`checkbox${index}`" :label="`${i.label}`">
  13. <el-select v-model="form[i.model]" multiple>
  14. <el-option v-for="(item, index) in getList(i.list)" :key="index" :value="item" :label="item"></el-option>
  15. </el-select>
  16. </el-form-item>
  17. </el-col>
  18. </el-form>
  19. </el-col>
  20. </el-row>
  21. </div>
  22. </template>
  23. <script>
  24. import { four } from '../fields.js';
  25. import * as select from '../select.js';
  26. import { mapState, createNamespacedHelpers } from 'vuex';
  27. export default {
  28. name: 'four',
  29. props: {
  30. form: { type: Object },
  31. rules: { type: Object },
  32. },
  33. model: {
  34. prop: 'form',
  35. event: 'change',
  36. },
  37. components: {},
  38. data: function() {
  39. return {
  40. question: four,
  41. };
  42. },
  43. created() {},
  44. methods: {
  45. // 获取列表
  46. getList(type) {
  47. return select[type];
  48. },
  49. },
  50. computed: {
  51. ...mapState(['user']),
  52. },
  53. metaInfo() {
  54. return { title: this.$route.meta.title };
  55. },
  56. watch: {
  57. test: {
  58. deep: true,
  59. immediate: true,
  60. handler(val) {},
  61. },
  62. },
  63. };
  64. </script>
  65. <style lang="less" scoped></style>