CameraParams.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <template>
  2. <el-form :model="cameraDetailStore" label-width="130px" lable-position="left">
  3. <el-form-item label="分辨率:">
  4. <el-select
  5. v-model="cameraDetailStore.params.imageResolution"
  6. style="width: 100%"
  7. size="small"
  8. >
  9. <el-option
  10. v-for="x in videoResolutionList"
  11. :label="x.label"
  12. :value="x.value"
  13. :key="x.value"
  14. />
  15. </el-select>
  16. </el-form-item>
  17. <el-form-item label="录制周期:">
  18. <el-select v-model="cameraDetailStore.params.recordPeriod" style="width: 100%" size="small">
  19. <el-option label="10天" :value="10" />
  20. <el-option label="5天" :value="5" />
  21. <el-option label="1天" :value="1" />
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item label="录制时间:">
  25. <el-col :span="11">
  26. <el-time-picker
  27. v-model="cameraDetailStore.params.startTime"
  28. style="width: 100%"
  29. size="small"
  30. />
  31. </el-col>
  32. <el-col :span="1">
  33. <span class="text-center">-</span>
  34. </el-col>
  35. <el-col :span="11">
  36. <el-time-picker
  37. v-model="cameraDetailStore.params.endTime"
  38. style="width: 100%"
  39. size="small"
  40. />
  41. </el-col>
  42. </el-form-item>
  43. <el-form-item label="返回预置位:">
  44. <el-input v-model="cameraDetailStore.params.reservation" size="small" />
  45. </el-form-item>
  46. <el-form-item>
  47. <el-button type="primary" @click="onSubmit">保存</el-button>
  48. </el-form-item>
  49. </el-form>
  50. </template>
  51. <script lang="ts" setup>
  52. import { getCameraParamsApi, saveCameraParamsApi } from '@/api/camera/camera-preview';
  53. import { formatToDateTime } from '@/utils/dateUtil';
  54. import { ElMessage } from 'element-plus';
  55. import useCameraDetailStore from '../../store/useCameraDetailStore';
  56. import { onMounted } from 'vue';
  57. import { videoResolutionList } from './types';
  58. const cameraDetailStore = useCameraDetailStore();
  59. onMounted(() => {
  60. getCameraParamsApi(cameraDetailStore.cameraId).then((res) => {
  61. cameraDetailStore.params = res;
  62. });
  63. });
  64. const onSubmit = () => {
  65. const params = cameraDetailStore.params;
  66. const DATE_TIME_STR = 'YYYY-MM-DD HH:mm:ss';
  67. const endTime = formatToDateTime(params.endTime, DATE_TIME_STR);
  68. const startTime = formatToDateTime(params.startTime, DATE_TIME_STR);
  69. saveCameraParamsApi({
  70. ...params,
  71. startTime,
  72. endTime,
  73. cameraId: cameraDetailStore.cameraId,
  74. }).then((res) => {
  75. ElMessage.success('保存成功');
  76. });
  77. };
  78. </script>
  79. <style scoped>
  80. .text-center {
  81. /* text-align: center; */
  82. margin-left: 2px;
  83. }
  84. </style>