Browse Source

fix:更改日期与时间

master
guoapeng 4 months ago
parent
commit
4ad09500b6
  1. 83
      src/pages/Index/Settings/Device.vue
  2. 1
      src/pages/Login/index.vue
  3. 13
      src/services/Index/settings/settings.ts

83
src/pages/Index/Settings/Device.vue

@ -1,8 +1,18 @@
<template> <template>
<div class="device-management"> <div class="device-management">
<div class="setting-item"> <div class="setting-item">
<span class="label">日期</span>
<span class="value">{{ formattedDate }}</span>
<span class="label">日期与时间</span>
<el-date-picker
class="date-input"
v-model="time"
type="datetime"
placeholder="修改日期与时间"
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
@change="(val) => updateSetting('date', val)"
@focus="pauseTimer"
@blur="resumeTimer"
/>
</div> </div>
<!-- <div class="setting-item"> <!-- <div class="setting-item">
@ -180,7 +190,7 @@ import {
getTemperatureRange, getTemperatureRange,
setDHCP, setDHCP,
setLocalIP, setLocalIP,
setAutoLogoutTime, setAllTemperature, setIncubateBoxTemperature, setPlateBoxTemperature
setAutoLogoutTime, setAllTemperature, setIncubateBoxTemperature, setPlateBoxTemperature, setDateAndTime
} from '@/services' } from '@/services'
import { eMessage, isValidIPv4 } from '../utils' import { eMessage, isValidIPv4 } from '../utils'
@ -280,6 +290,13 @@ const updateSetting = async (key: string, value: any) => {
try { try {
let res let res
switch (key) { switch (key) {
case 'date':
//
clearInterval(intervalId.value)
res = await setDateAndTime(value)
//
startTimer()
break
case 'language': case 'language':
res = await setLanguage(value) res = await setLanguage(value)
break break
@ -330,12 +347,12 @@ const updateSetting = async (key: string, value: any) => {
if (res?.success) { if (res?.success) {
settings.value = { ...settings.value, [key]: value } settings.value = { ...settings.value, [key]: value }
if(key === 'allTemperature') {
if (key === 'allTemperature') {
settings.value.incubateBoxTemperature = settings.value.plateBoxTemperature = value settings.value.incubateBoxTemperature = settings.value.plateBoxTemperature = value
} }
if(settings.value.incubateBoxTemperature === settings.value.plateBoxTemperature) {
if (settings.value.incubateBoxTemperature === settings.value.plateBoxTemperature) {
settings.value.allTemperature = settings.value.incubateBoxTemperature settings.value.allTemperature = settings.value.incubateBoxTemperature
}else {
} else {
settings.value.allTemperature = undefined settings.value.allTemperature = undefined
} }
} }
@ -345,18 +362,26 @@ const updateSetting = async (key: string, value: any) => {
} }
} }
//
const intervalId = ref<number | null>(null)
//
const startTimer = () => {
intervalId.value = setInterval(() => {
const now = new Date()
currentDate.value = now
time.value = format(now, 'yyyy.MM.dd HH:mm:ss');
}, 1000)
}
const temperatures = ref<number[]>([]) const temperatures = ref<number[]>([])
// //
onMounted(async () => { onMounted(async () => {
await fetchSettings() await fetchSettings()
//
setInterval(() => {
const now = new Date()
currentDate.value = now
time.value = now.toLocaleTimeString()
}, 1000)
//
startTimer()
const res = await getTemperatureRange() const res = await getTemperatureRange()
if (res && res.success) { if (res && res.success) {
@ -366,6 +391,14 @@ onMounted(async () => {
} }
}) })
//
onUnmounted(() => {
if (intervalId.value) {
clearInterval(intervalId.value)
}
hideKeyboard()
})
// //
const keyboardVisible = ref(false) const keyboardVisible = ref(false)
const currentInputValue = ref('') const currentInputValue = ref('')
@ -427,6 +460,23 @@ const hideKeyboard = () => {
onUnmounted(() => { onUnmounted(() => {
hideKeyboard() hideKeyboard()
}) })
//
const pauseTimer = () => {
if (intervalId.value) {
console.log(111)
clearInterval(intervalId.value);
intervalId.value = null;
}
};
//
const resumeTimer = () => {
if (!intervalId.value) {
startTimer();
}
};
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
@ -528,4 +578,13 @@ onUnmounted(() => {
.slide-up-leave-to { .slide-up-leave-to {
transform: translateY(100%); transform: translateY(100%);
} }
:deep(.date-input) {
width: 250px;
.el-input__wrapper {
height: 40px;
}
.el-input__inner {
font-size: 18px;
}
}
</style> </style>

1
src/pages/Login/index.vue

@ -68,6 +68,7 @@ const submitPin = async () => {
if (!resData.data) { if (!resData.data) {
// //
eMessage.error('设备正在初始化,请稍候重试') eMessage.error('设备正在初始化,请稍候重试')
password.value = ''
return return
} }
const params = { const params = {

13
src/services/Index/settings/settings.ts

@ -1,5 +1,18 @@
import apiClient from '../../../utils/axios' import apiClient from '../../../utils/axios'
export const setDateAndTime = async (data: any) => {
try {
const res = await apiClient.post(
`/api/v1/app/DeviceSetting/setDateAndTime?datetime=${data}`,
)
return res.data
} catch (error) {
console.log('修改时间出错', error)
}
}
// 设置设备温度 // 设置设备温度
export const setAllTemperature = async (data: any) => { export const setAllTemperature = async (data: any) => {
try { try {

Loading…
Cancel
Save