search-bar.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <el-card>
  3. <el-form :model="selects" size="mini" :inline="true">
  4. <el-form-item label="培训批次" v-if="display('planBatch')">
  5. <el-select v-model="selects.planBatch" placeholder="">
  6. <!-- <el-option :label="" :value=""></el-option> -->
  7. </el-select>
  8. </el-form-item>
  9. <el-form-item label="年度计划" v-if="display('plan')">
  10. <el-select v-model="selects.plan" placeholder="">
  11. <!-- <el-option :label="" :value=""></el-option> -->
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item label="期" v-if="display('term')">
  15. <el-select v-model="selects.term" placeholder="">
  16. <!-- <el-option :label="" :value=""></el-option> -->
  17. </el-select>
  18. </el-form-item>
  19. <el-form-item label="批次" v-if="display('batch')">
  20. <el-select v-model="selects.batch" placeholder="">
  21. <!-- <el-option :label="" :value=""></el-option> -->
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item label="班级" v-if="display('classes')">
  25. <el-select v-model="selects.classes" placeholder="">
  26. <!-- <el-option :label="" :value=""></el-option> -->
  27. </el-select>
  28. </el-form-item>
  29. </el-form>
  30. </el-card>
  31. </template>
  32. <script>
  33. import _ from 'lodash';
  34. import { mapState, createNamespacedHelpers } from 'vuex';
  35. export default {
  36. name: 'search-bar',
  37. props: {
  38. allow: { type: Array, default: () => [] }, //type:'planBatch', 'plan', 'term', 'batch', 'classes'
  39. },
  40. components: {},
  41. data: function() {
  42. return {
  43. selects: {},
  44. allowed: [],
  45. };
  46. },
  47. created() {},
  48. methods: {
  49. display(type) {
  50. return _.find(this.allow, f => f == type);
  51. },
  52. },
  53. // watch: {
  54. // planBatch,
  55. // },
  56. computed: {
  57. ...mapState(['user', 'planBatch', 'plan', 'term', 'batch', 'classes']),
  58. pageTitle() {
  59. return `${this.$route.meta.title}`;
  60. },
  61. },
  62. metaInfo() {
  63. return { title: this.$route.meta.title };
  64. },
  65. };
  66. </script>
  67. <style lang="less" scoped></style>