$(function () {
// 接口请求开始
let getUrl = 'https://auto.huawei.com/external/uiapi/ads/v1/queryInit'
let pilotPageContainer = $('<ul id="pilot" class="runNum"></ul>')
let mileagePageContainer = $('<ul id="mileage" class="runNum"></ul>')
let avoidPageContainer = $('<ul id="avoid" class="runNum"></ul>')
let pilotDefaultValue = 0
let mileageDefaultValue = 0
let avoidDefaultValue = 0
$('#numberContainer1').append(pilotPageContainer)
$('#numberContainer2').append(mileagePageContainer)
$('#numberContainer3').append(avoidPageContainer)
let pilotInstance = pilotPageContainer.runNum({
initialValue: 0
})
let mileageInstance = mileagePageContainer.runNum({
initialValue: 0
})
let avoidInstance = avoidPageContainer.runNum({
initialValue: 0
})
let isSuccess = true
/**
* 判断值是否为非空、大于0的整数(即正整数)
* @param {*} value - 待判断的值
* @returns {boolean} - 如果是正整数返回 true,否则返回 false
*/
function isPositiveInteger(value) {
// 1. 类型检查:必须是 number 类型
if (typeof value !== 'number') {
return false
}
// 2. 有效性检查:排除 NaN 和 Infinity
if (!isFinite(value)) {
return false
}
// 3. 整数检查:必须是整数
if (!Number.isInteger(value)) {
return false
}
// 4. 范围检查:必须大于 0
if (value <= 0) {
return false
}
return true
}
// 接口请求
function fetchData() {
$.ajax({
url: getUrl,
type: 'GET',
dataType: 'json',
success: function (res) {
if (res.code == '200') {
if (isSuccess) {
var maxPilot = parseInt(res.data[0].pilot.value)
var minPilot = parseInt(res.data[1].pilot.value)
var maxMileage = parseInt(res.data[0].mileage.value)
var minMileage = parseInt(res.data[1].mileage.value)
var maxAvoid = parseInt(res.data[0].avoid.value)
var minAvoid = parseInt(res.data[1].avoid.value)
}
else {
var secondPilotData = parseInt(res.data.pilot.value)
var secondMileageData = parseInt(res.data.mileage.value)
var secondAvoidData = parseInt(res.data.avoid.value)
}
var localPilotValue = localStorage.getItem("pilot") === null ? 0 : parseInt(localStorage.getItem("pilot"))
var localMileageValue = localStorage.getItem("mileage") === null ? 0 : parseInt(localStorage.getItem("mileage"))
var localAvoidValue = localStorage.getItem("avoid") === null ? 0 : parseInt(localStorage.getItem("avoid"))
if (isPositiveInteger(maxPilot) && maxPilot >= localPilotValue && isPositiveInteger(minPilot) && isPositiveInteger(maxMileage) && maxMileage >= localMileageValue && isPositiveInteger(minMileage) && isPositiveInteger(maxAvoid) && maxAvoid >= localAvoidValue && isPositiveInteger(minAvoid)) {
isSuccess = false
$('.ias-safety-setion1').addClass('on')
getUrl = 'https://auto.huawei.com/external/uiapi/ads/v1/query'
pilotDefaultValue = maxPilot
var remotePilotValue = minPilot
pilotInstance.updateValue(localPilotValue > remotePilotValue ? localPilotValue : remotePilotValue)
mileageDefaultValue = maxMileage
var remoteMileageValue = minMileage
mileageInstance.updateValue(localMileageValue > remoteMileageValue ? localMileageValue : remoteMileageValue)
avoidDefaultValue = maxAvoid
var remoteAvoidValue = minAvoid
avoidInstance.updateValue(localAvoidValue > remoteAvoidValue ? localAvoidValue : remoteAvoidValue)
setTimeout(function () {
pilotInstance.updateValue(maxPilot)
mileageInstance.updateValue(maxMileage)
avoidInstance.updateValue(maxAvoid)
}, 10)
} else if (isPositiveInteger(secondPilotData) && isPositiveInteger(secondMileageData) && isPositiveInteger(secondAvoidData)) {
if (secondPilotData >= pilotDefaultValue) {
pilotDefaultValue = secondPilotData
pilotInstance.updateValue(secondPilotData)
} else {
if (pilotDefaultValue == 0) {
$('.ias-safety-setion1').removeClass('on')
} else {
pilotInstance.updateValue(pilotDefaultValue)
}
}
if (secondMileageData >= mileageDefaultValue) {
mileageDefaultValue = secondMileageData
mileageInstance.updateValue(secondMileageData)
} else {
if (mileageDefaultValue == 0) {
$('.ias-safety-setion1').removeClass('on')
} else {
mileageInstance.updateValue(mileageDefaultValue)
}
}
if (secondAvoidData >= avoidDefaultValue) {
avoidDefaultValue = secondAvoidData
avoidInstance.updateValue(secondAvoidData)
} else {
if (avoidDefaultValue == 0) {
$('.ias-safety-setion1').removeClass('on')
} else {
avoidInstance.updateValue(avoidDefaultValue)
}
}
} else {
if (pilotDefaultValue == 0 || mileageDefaultValue == 0 || avoidDefaultValue == 0) {
$('.ias-safety-setion1').removeClass('on')
} else {
pilotInstance.updateValue(pilotDefaultValue)
mileageInstance.updateValue(mileageDefaultValue)
avoidInstance.updateValue(avoidDefaultValue)
}
}
} else {
if (pilotDefaultValue == 0 || mileageDefaultValue == 0 || avoidDefaultValue == 0) {
$('.ias-safety-setion1').removeClass('on')
} else {
pilotInstance.updateValue(pilotDefaultValue)
mileageInstance.updateValue(mileageDefaultValue)
avoidInstance.updateValue(avoidDefaultValue)
}
}
},
error: function () {
// 请求失败时显示异常
if (pilotDefaultValue == 0 || mileageDefaultValue == 0 || avoidDefaultValue == 0) {
$('.ias-safety-setion1').removeClass('on')
} else {
pilotInstance.updateValue(pilotDefaultValue)
mileageInstance.updateValue(mileageDefaultValue)
avoidInstance.updateValue(avoidDefaultValue)
}
},
})
}
fetchData()
setTimeout(fetchData, 1500)
setInterval(fetchData, 3000)
})