fix: 修复拨码开关数字孪生无法正常工作的问题
This commit is contained in:
		@@ -114,7 +114,7 @@ public class SwitchController : ControllerBase
 | 
			
		||||
 | 
			
		||||
        for (int i = 0; i < keyStatus.Length; i++)
 | 
			
		||||
        {
 | 
			
		||||
            var result = await switchCtrl.SetSwitchOnOff(i, keyStatus[i]);
 | 
			
		||||
            var result = await switchCtrl.SetSwitchOnOff(i + 1, keyStatus[i]);
 | 
			
		||||
            if (!result.IsSuccessful)
 | 
			
		||||
            {
 | 
			
		||||
                logger.Error(result.Error, $"SetSwitchOnOff({i}, {keyStatus[i]}) failed");
 | 
			
		||||
 
 | 
			
		||||
@@ -127,6 +127,10 @@ const switchCount = computed(() => {
 | 
			
		||||
  else return props.switchCount;
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
function getClient() {
 | 
			
		||||
  return AuthManager.createClient(SwitchClient);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 解析初始值
 | 
			
		||||
function parseInitialValues(): boolean[] {
 | 
			
		||||
  if (Array.isArray(props.initialValues)) {
 | 
			
		||||
@@ -162,7 +166,7 @@ function updateStatus(newStates: boolean[], index?: number) {
 | 
			
		||||
  btnStatus.value = newStates.slice(0, switchCount.value);
 | 
			
		||||
  if (props.enableDigitalTwin) {
 | 
			
		||||
    try {
 | 
			
		||||
      const client = AuthManager.createClient(SwitchClient);
 | 
			
		||||
      const client = getClient();
 | 
			
		||||
      if (!isUndefined(index)) client.setSwitchOnOff(index, newStates[index]);
 | 
			
		||||
      else client.setMultiSwitchsOnOff(btnStatus.value);
 | 
			
		||||
    } catch (error: any) {}
 | 
			
		||||
@@ -186,6 +190,15 @@ function setBtnStatus(idx: number, isOn: boolean) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 监听 props 变化只同步一次
 | 
			
		||||
watch(
 | 
			
		||||
  () => props.enableDigitalTwin,
 | 
			
		||||
  (newVal) => {
 | 
			
		||||
    const client = getClient();
 | 
			
		||||
    client.setEnable(newVal);
 | 
			
		||||
  },
 | 
			
		||||
  { immediate: true },
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
watch(
 | 
			
		||||
  () => [switchCount.value, props.initialValues],
 | 
			
		||||
  () => {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user