Browse Source

fix:更改日期与时间

master
guoapeng 3 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>
<div class="device-management">
<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 class="setting-item">
@ -180,7 +190,7 @@ import {
getTemperatureRange,
setDHCP,
setLocalIP,
setAutoLogoutTime, setAllTemperature, setIncubateBoxTemperature, setPlateBoxTemperature
setAutoLogoutTime, setAllTemperature, setIncubateBoxTemperature, setPlateBoxTemperature, setDateAndTime
} from '@/services'
import { eMessage, isValidIPv4 } from '../utils'
@ -280,6 +290,13 @@ const updateSetting = async (key: string, value: any) => {
try {
let res
switch (key) {
case 'date':
//
clearInterval(intervalId.value)
res = await setDateAndTime(value)
//
startTimer()
break
case 'language':
res = await setLanguage(value)
break
@ -330,12 +347,12 @@ const updateSetting = async (key: string, value: any) => {
if (res?.success) {
settings.value = { ...settings.value, [key]: value }
if(key === 'allTemperature') {
if (key === 'allTemperature') {
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
}else {
} else {
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[]>([])
//
onMounted(async () => {
await fetchSettings()
//
setInterval(() => {
const now = new Date()
currentDate.value = now
time.value = now.toLocaleTimeString()
}, 1000)
//
startTimer()
const res = await getTemperatureRange()
if (res && res.success) {
@ -366,6 +391,14 @@ onMounted(async () => {
}
})
//
onUnmounted(() => {
if (intervalId.value) {
clearInterval(intervalId.value)
}
hideKeyboard()
})
//
const keyboardVisible = ref(false)
const currentInputValue = ref('')
@ -427,6 +460,23 @@ const hideKeyboard = () => {
onUnmounted(() => {
hideKeyboard()
})
//
const pauseTimer = () => {
if (intervalId.value) {
console.log(111)
clearInterval(intervalId.value);
intervalId.value = null;
}
};
//
const resumeTimer = () => {
if (!intervalId.value) {
startTimer();
}
};
</script>
<style scoped lang="less">
@ -528,4 +578,13 @@ onUnmounted(() => {
.slide-up-leave-to {
transform: translateY(100%);
}
:deep(.date-input) {
width: 250px;
.el-input__wrapper {
height: 40px;
}
.el-input__inner {
font-size: 18px;
}
}
</style>

1
src/pages/Login/index.vue

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

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

@ -1,5 +1,18 @@
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) => {
try {

Loading…
Cancel
Save