selectForm.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <el-card class="select-form-card" shadow="none" style="padding: 10px 14px 0;">
  3. <div class="card-title no-padding">{{ title }}</div>
  4. <div class="select-form">
  5. <el-form :inline="true" :model="form" label-width="0">
  6. <el-form-item label="">
  7. <div class="card-tabs">
  8. <div class="card-tab" v-for="item in tabList" :key="item.value"
  9. :class="{ active: form.tab === item.value }" @click="handleTabChange(item.value)"
  10. >
  11. {{ item.label }}
  12. </div>
  13. </div>
  14. </el-form-item>
  15. <el-form-item label="">
  16. <el-select v-model="form.version" placeholder="">
  17. <el-option label="全部版本" value="all" />
  18. <el-option label="1.0.0" value="1" />
  19. <el-option label="1.0.1" value="2" />
  20. </el-select>
  21. </el-form-item>
  22. <el-form-item label="">
  23. <el-select v-model="form.channel" placeholder="">
  24. <el-option label="全部渠道" value="all" />
  25. <el-option label="应用宝" value="1" />
  26. <el-option label="华为应用市场" value="2" />
  27. </el-select>
  28. </el-form-item>
  29. <el-form-item label="">
  30. <el-date-picker :type="'daterange'" :clearable="false" style="width: 242px;" v-model="form.dateArray"
  31. range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
  32. </el-form-item>
  33. </el-form>
  34. </div>
  35. </el-card>
  36. </template>
  37. <script lang="ts" name="selectForm" setup>
  38. import { ref, PropType } from 'vue'
  39. const props = defineProps({
  40. tabList: {
  41. type: Array as PropType<{ label: string, value: number }[]>,
  42. default: () => []
  43. },
  44. title: {
  45. type: String,
  46. default: ''
  47. },
  48. form: {
  49. type: Object as PropType<{
  50. tab: number,
  51. version: string,
  52. channel: string,
  53. dateArray: Date[]
  54. }>,
  55. default: () => ({})
  56. }
  57. })
  58. // const form = ref({
  59. // tab: 1,
  60. // version: 'all',
  61. // channel: 'all',
  62. // dateArray: [new Date(new Date().setDate(new Date().getDate() - 7)), new Date()]
  63. // })
  64. const handleTabChange = (tab: number) => {
  65. props.form!.tab = tab;
  66. }
  67. </script>
  68. <style scoped lang="scss">
  69. @import '/@/views/count/styles/common.scss';
  70. .select-form-card {
  71. .card-tabs {
  72. margin-bottom: 0;
  73. }
  74. }
  75. </style>