search.vue 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <script setup name="search">
  2. import { onMounted, reactive, ref } from 'vue'
  3. import request from '@/api/axios.js'
  4. import SubmitBtn from '@com/SubmitBtn.vue'
  5. // import configStationJson from './configStation.json'
  6. const queryForm = reactive({
  7. station: '',
  8. st: Date.now() - 30 * 24 * 60 * 60 * 1000,
  9. et: Date.now(),
  10. interval: 3
  11. })
  12. /**场站 */
  13. const stationList = ref([])
  14. const funGetStation = async () => {
  15. const res = await request.get("/agc/config")
  16. // stationList.value = Object.values(configStationJson) // configStationJson
  17. stationList.value = Object.values(res)
  18. if (stationList.value.length) {
  19. queryForm.station = stationList.value[0].id
  20. }
  21. funSubmit()
  22. }
  23. /**导出 */
  24. const emits = defineEmits(['submit'])
  25. const funSubmit = async () => {
  26. const startDate = new Date(queryForm.st).setHours(0,0,0,0)
  27. const endDate = new Date(queryForm.et).setHours(0,0,0,0)
  28. const query = {
  29. id: queryForm.station,
  30. startTs: new Date(startDate).getTime(),
  31. endTs: new Date(endDate).getTime(),
  32. interval: queryForm.interval
  33. }
  34. switch (queryForm.interval) {
  35. case 2:
  36. query.interval = 60
  37. break;
  38. case 3:
  39. query.interval = 600
  40. break;
  41. case 4:
  42. query.interval = 900
  43. break;
  44. }
  45. emits('submit', query)
  46. }
  47. /**created */
  48. funGetStation()
  49. </script>
  50. <template>
  51. <div class="pl-[20px] flex items-center h-[80px] relative">
  52. <div class="absolute top-[-7px] left-[20px] text-[#838383] text-[14px]">操作面板</div>
  53. <el-form class="" :inline="true" :model="queryForm">
  54. <el-form-item label="场站" class="!mb-0">
  55. <el-select v-model="queryForm.station" class="w-[150px]">
  56. <el-option v-for="item in stationList" :key="item.id" :label="item.title" :value="item.id"></el-option>
  57. </el-select>
  58. </el-form-item>
  59. <el-form-item label="开始时间" class="!mb-0">
  60. <el-date-picker type="date" class="!w-[150px]" v-model="queryForm.st"></el-date-picker>
  61. </el-form-item>
  62. <el-form-item label="结束时间" class="!mb-0">
  63. <el-date-picker type="date" class="!w-[150px]" v-model="queryForm.et"></el-date-picker>
  64. </el-form-item>
  65. <el-form-item label="等间隔" class="!mb-0">
  66. <el-radio-group v-model="queryForm.interval">
  67. <el-radio :label="1">一秒钟</el-radio>
  68. <el-radio :label="2">一分钟</el-radio>
  69. <el-radio :label="3">十分钟</el-radio>
  70. <el-radio :label="4">十五分钟</el-radio>
  71. </el-radio-group>
  72. </el-form-item>
  73. <el-form-item class="!mb-0">
  74. <submit-btn v-prevdbclick:5000="funSubmit" desc="执行"></submit-btn>
  75. </el-form-item>
  76. </el-form>
  77. </div>
  78. </template>