You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

56 lines
2.3 KiB

import { message } from 'ant-design-vue'
import { putDeviceProps, PutDevicePropsBody } from '/@/api/device-setting'
import { DeviceSettingKeyEnum, DeviceSettingFormModel, ObstacleAvoidanceStatusEnum, NightLightsStateEnum, DistanceLimitStatusEnum } from '/@/types/device-setting'
export function useDeviceSetting () {
// 生成参数
function genDevicePropsBySettingKey (key: DeviceSettingKeyEnum, fromModel: DeviceSettingFormModel) {
const body = {} as PutDevicePropsBody
if (key === DeviceSettingKeyEnum.NIGHT_LIGHTS_MODE_SET) {
body.night_lights_state = fromModel.nightLightsState ? NightLightsStateEnum.OPEN : NightLightsStateEnum.CLOSE
} else if (key === DeviceSettingKeyEnum.HEIGHT_LIMIT_SET) {
body.height_limit = fromModel.heightLimit
} else if (key === DeviceSettingKeyEnum.DISTANCE_LIMIT_SET) {
body.distance_limit_status = {}
if (fromModel.distanceLimitStatus.state) {
body.distance_limit_status.state = DistanceLimitStatusEnum.SET
body.distance_limit_status.distance_limit = fromModel.distanceLimitStatus.distanceLimit
} else {
body.distance_limit_status.state = DistanceLimitStatusEnum.UNSET
}
} else if (key === DeviceSettingKeyEnum.OBSTACLE_AVOIDANCE_HORIZON) {
body.obstacle_avoidance = {
horizon: fromModel.obstacleAvoidanceHorizon ? ObstacleAvoidanceStatusEnum.OPEN : ObstacleAvoidanceStatusEnum.CLOSE
}
} else if (key === DeviceSettingKeyEnum.OBSTACLE_AVOIDANCE_UPSIDE) {
body.obstacle_avoidance = {
upside: fromModel.obstacleAvoidanceUpside ? ObstacleAvoidanceStatusEnum.OPEN : ObstacleAvoidanceStatusEnum.CLOSE
}
} else if (key === DeviceSettingKeyEnum.OBSTACLE_AVOIDANCE_DOWNSIDE) {
body.obstacle_avoidance = {
downside: fromModel.obstacleAvoidanceDownside ? ObstacleAvoidanceStatusEnum.OPEN : ObstacleAvoidanceStatusEnum.CLOSE
}
}
return body
}
// 设置设备属性
async function setDeviceProps (sn: string, body: PutDevicePropsBody) {
try {
const { code, message: msg } = await putDeviceProps(sn, body)
if (code === 0) {
// message.success('指令发送成功')
return true
}
throw (msg)
} catch (e) {
message.error('设备属性设置失败')
return false
}
}
return {
genDevicePropsBySettingKey,
setDeviceProps
}
}