index.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <template>
  2. <view>
  3. <u-sticky bgColor="#fff" class="sticky_wrap">
  4. <u-tabs class="uTabsWrap" :list="list" :activeStyle="{
  5. color: '#303133',
  6. fontWeight: 'bold',
  7. fontSize : '36rpx'
  8. }" :inactiveStyle="{
  9. color: '#606266',
  10. fontWeight: 'bold',
  11. fontSize : '32rpx'}" @change="handleTabChange">
  12. </u-tabs>
  13. <view class="dayNum_wrap" @click="handleClickDayNum">
  14. {{dayName}}
  15. </view>
  16. </u-sticky>
  17. <view class="main_warp" id="main_warp">
  18. <brief-report :class="['teamReport_wrap',activeTab !== 'teamReport' ? 'hidden' : '' ]"
  19. :type="1" :queryParams="queryParams" ref="teamReport"></brief-report>
  20. <brief-report :class="[activeTab !== 'personReport' ? 'hidden' : '' ]" ref="personReport"
  21. :type="2" :queryParams="queryParams"></brief-report>
  22. </view>
  23. <ld-select :list="dayNumDict" label-key="name" value-key="value" placeholder="" v-model="dayNum" clearable
  24. @change="handleDayNumChange" ref="dayNum" class="dayNumSelect"></ld-select>
  25. </view>
  26. </template>
  27. <script>
  28. import briefReport from "./briefReport/index.vue";
  29. import dayjs from "dayjs";
  30. export default {
  31. components: {
  32. briefReport
  33. },
  34. data() {
  35. return {
  36. list: [{
  37. name: '团队简报',
  38. value: "teamReport"
  39. }, {
  40. name: '个人简报',
  41. value: "personReport"
  42. }],
  43. activeTab: "teamReport",
  44. dayNumDict: [{
  45. name: "今天",
  46. value: "0"
  47. }, {
  48. name: "昨天",
  49. value: "1"
  50. },{
  51. name: "7天",
  52. value: "7"
  53. }, {
  54. name: "30天",
  55. value: "30"
  56. },
  57. ],
  58. dayNum: 0,
  59. dayName: "今日",
  60. queryParams: {
  61. createTimeStart: "",
  62. createTimeEnd: "",
  63. },
  64. };
  65. },
  66. mounted(){
  67. this.handleDayNumChange({ name : this.dayName , value : this.dayNum });
  68. },
  69. methods: {
  70. handleClickDayNum() {
  71. this.$refs.dayNum.showModal();
  72. },
  73. handleDayNumChange(val) {
  74. const {
  75. name,
  76. value
  77. } = val;
  78. this.dayName = name;
  79. this.dayNum = value;
  80. this.queryParams.createTimeStart = dayjs().subtract(this.dayNum, 'day').format("YYYY-MM-DD ") + "00:00:00";
  81. if (this.dayNum === '1') {
  82. this.queryParams.createTimeEnd = dayjs().subtract(this.dayNum, 'day').format("YYYY-MM-DD ") + "23:59:59";
  83. } else {
  84. this.queryParams.createTimeEnd = dayjs().format("YYYY-MM-DD ") + "23:59:59";
  85. }
  86. this.$refs.teamReport.handleInit();
  87. this.$refs.personReport.handleInit();
  88. },
  89. handleTabChange({
  90. value
  91. }) {
  92. this.activeTab = value;
  93. }
  94. },
  95. }
  96. </script>
  97. <style lang="scss" scoped>
  98. .dayNumSelect{
  99. height: 0px;
  100. overflow: hidden;
  101. }
  102. .sticky_wrap {
  103. position: relative;
  104. .dayNum_wrap {
  105. position: absolute;
  106. right: 20px;
  107. top: 10px;
  108. }
  109. }
  110. .hidden {
  111. padding: 0;
  112. height: 0;
  113. overflow: hidden;
  114. }
  115. .personClue {
  116. background-color: #fff;
  117. display: flex;
  118. justify-content: flex-start;
  119. }
  120. </style>