five.vue 1.5 KB

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