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
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 |
|
} |
|
}
|
|
|