CameraParams.vue 2.8 KB

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