Detail.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <template>
  2. <div class="data-detail">
  3. <a-card
  4. title="账户使用详情"
  5. :headStyle="[{ fontSize: '14px' }]"
  6. :bordered="false"
  7. style="width: 100%; margin-bottom: 10px"
  8. >
  9. <CustomSelect
  10. style="margin-bottom: 20px"
  11. title="类型:"
  12. :options="typeOptions"
  13. v-model="param.content.usertype"
  14. @update:modelValue="typeChange"
  15. />
  16. <CustomSelect
  17. title="时间:"
  18. :options="timeOptions"
  19. v-model="param.content.where.type"
  20. @update:modelValue="timeChange"
  21. >
  22. <template #custom>
  23. <a-range-picker
  24. :allowClear="false"
  25. style="width: 250px"
  26. v-model:value="ranges"
  27. value-format="YYYY-MM-DD"
  28. @change="dateRangeChange"
  29. />
  30. </template>
  31. </CustomSelect>
  32. </a-card>
  33. <normalTable
  34. :noQuery="true"
  35. @listData="handleData"
  36. rowKey="sat_coursewaredetailid"
  37. :is-select="false"
  38. ref="table"
  39. size="small"
  40. :columns="utils.TBLayout('panelTable')"
  41. :param="param"
  42. >
  43. <template #tb_cell="{ data }">
  44. <template v-if="data.column.dataIndex === 'attinfos'"> </template>
  45. <template v-else-if="data.column.dataIndex == 'operation'"> </template>
  46. </template>
  47. </normalTable>
  48. </div>
  49. </template>
  50. <script setup>
  51. import { onMounted, ref } from "vue";
  52. import utils from "@/utils/utils";
  53. import CustomSelect from "./select.vue";
  54. import normalTable from "@/template/normalTable/index.vue";
  55. import { useRouter } from "vue-router";
  56. const router = useRouter();
  57. let time = ref("近30天");
  58. let ranges = ref([]);
  59. let typeOptions = ref([
  60. { label: "公司人员", value: 1 },
  61. { label: "经销商", value: 21 },
  62. { label: "经销商员工", value: 22 },
  63. ]);
  64. let timeOptions = ref([
  65. { label: "今日", value: "1" },
  66. { label: "昨日", value: "2" },
  67. { label: "近7日", value: "3" },
  68. { label: "近30日", value: "4" },
  69. ]);
  70. let table = ref();
  71. let param = ref({
  72. id: "2024061114184602",
  73. content: {
  74. usertype: router.currentRoute.value.query.type,
  75. pageNumber: 1,
  76. pageSize: 20,
  77. where: {
  78. type: 4, //1当日,2昨日,3近七日,4近30日
  79. begindate: "",
  80. enddate: "",
  81. },
  82. },
  83. });
  84. const typeChange = (value) => {
  85. param.value.content.pageNumber = 1;
  86. table.value.listData();
  87. };
  88. const timeChange = (value) => {
  89. let today = new Date();
  90. switch (value) {
  91. case "1":
  92. ranges.value = [calcTime(today), calcTime(today)];
  93. break;
  94. case "2":
  95. ranges.value = [
  96. calcTime(new Date(new Date().setDate(new Date().getDate() - 1))),
  97. calcTime(new Date(new Date().setDate(new Date().getDate() - 1))),
  98. ];
  99. break;
  100. case "3":
  101. ranges.value = [
  102. calcTime(new Date(new Date().setDate(new Date().getDate() - 7))),
  103. calcTime(new Date()),
  104. ];
  105. break;
  106. default:
  107. ranges.value = [
  108. calcTime(new Date(new Date().setDate(new Date().getDate() - 30))),
  109. calcTime(new Date()),
  110. ];
  111. break;
  112. }
  113. param.value.content.where.begindate = "";
  114. param.value.content.where.enddate = "";
  115. param.value.content.pageNumber = 1;
  116. table.value.listData();
  117. };
  118. const calcTime = (date) => {
  119. const year = date.getFullYear();
  120. const month = String(date.getMonth() + 1).padStart(2, "0");
  121. const day = String(date.getDate()).padStart(2, "0");
  122. const yyyymmdd = year + "-" + month + "-" + day;
  123. return yyyymmdd;
  124. };
  125. const dateRangeChange = (time) => {
  126. if (time) {
  127. param.value.content.where.begindate = ranges.value[0];
  128. param.value.content.where.enddate = ranges.value[1];
  129. param.value.content.where.type = "";
  130. } else {
  131. param.value.content.where.begindate = "";
  132. param.value.content.where.enddate = "";
  133. param.value.content.where.type = 4;
  134. }
  135. param.value.content.pageNumber = 1;
  136. table.value.listData();
  137. };
  138. onMounted(() => {
  139. timeChange(4);
  140. });
  141. </script>
  142. <style scoped>
  143. /deep/.ant-card-head {
  144. padding: 0 10px !important;
  145. min-height: 48px !important;
  146. font-size: "14px" !important;
  147. }
  148. /deep/.ant-card-body {
  149. padding: 24px 24px 24px 10px;
  150. }
  151. </style>