Commit c3955490d2759289b0128f0a7b796b8e54091fce
1 parent
0e61865e
fix: DEFECT-819 call interface happend error modal confirm button will continue loading
Showing
1 changed file
with
68 additions
and
61 deletions
| ... | ... | @@ -110,72 +110,79 @@ |
| 110 | 110 | // 提交 |
| 111 | 111 | const msg = computed(() => (unref(isUpdate) ? '更新设备成功' : '新增设备成功')); |
| 112 | 112 | async function handleOk() { |
| 113 | - if (current.value === 0) { | |
| 114 | - // 验证 | |
| 115 | - const valid = await unref(DeviceStep1Ref)?.parentValidate(); | |
| 116 | - if (!valid) return; | |
| 117 | - stepState.value = unref(DeviceStep1Ref)?.parentGetFieldsValue(); | |
| 118 | - } else { | |
| 119 | - // !!!此处需要删除地图的属性,否则会报堆栈溢出的错误 Uncaught RangeError: Maximum call stack size exceeded | |
| 120 | - Reflect.deleteProperty(stepState.value, 'map'); | |
| 121 | - Reflect.deleteProperty(stepState.value, 'marker'); | |
| 122 | - if (unref(DeviceStep2Ref)?.getFieldsValue().addAgree) { | |
| 123 | - const valid = await unref(DeviceStep2Ref)?.validate(); | |
| 113 | + try { | |
| 114 | + if (current.value === 0) { | |
| 115 | + // 验证 | |
| 116 | + const valid = await unref(DeviceStep1Ref)?.parentValidate(); | |
| 124 | 117 | if (!valid) return; |
| 125 | - // 第二页验证通过情况 | |
| 126 | - stepState.value = { | |
| 118 | + stepState.value = unref(DeviceStep1Ref)?.parentGetFieldsValue(); | |
| 119 | + } else { | |
| 120 | + // !!!此处需要删除地图的属性,否则会报堆栈溢出的错误 Uncaught RangeError: Maximum call stack size exceeded | |
| 121 | + Reflect.deleteProperty(stepState.value, 'map'); | |
| 122 | + Reflect.deleteProperty(stepState.value, 'marker'); | |
| 123 | + if (unref(DeviceStep2Ref)?.getFieldsValue().addAgree) { | |
| 124 | + const valid = await unref(DeviceStep2Ref)?.validate(); | |
| 125 | + if (!valid) return; | |
| 126 | + // 第二页验证通过情况 | |
| 127 | + stepState.value = { | |
| 128 | + ...unref(stepState), | |
| 129 | + ...unref(DeviceStep2Ref)?.getFieldsValue(), | |
| 130 | + }; | |
| 131 | + } | |
| 132 | + } | |
| 133 | + // 验证成功 --调-- 新增或者编辑接口 | |
| 134 | + // !!!此处需要删除地图的属性,否则会报堆栈溢出的错误 Uncaught RangeError: Maximum call stack size exceeded | |
| 135 | + Reflect.deleteProperty(DeviceStep1Ref.value.positionState, 'map'); | |
| 136 | + Reflect.deleteProperty(DeviceStep1Ref.value.positionState, 'marker'); | |
| 137 | + setModalProps({ | |
| 138 | + confirmLoading: true, | |
| 139 | + }); | |
| 140 | + if (unref(isUpdate)) { | |
| 141 | + const editData = { | |
| 127 | 142 | ...unref(stepState), |
| 128 | - ...unref(DeviceStep2Ref)?.getFieldsValue(), | |
| 143 | + deviceInfo: { | |
| 144 | + avatar: DeviceStep1Ref.value?.devicePic, | |
| 145 | + ...DeviceStep1Ref.value?.positionState, | |
| 146 | + }, | |
| 129 | 147 | }; |
| 148 | + await createOrEditDevice(editData); | |
| 149 | + } else { | |
| 150 | + const createData = { | |
| 151 | + ...unref(stepState), | |
| 152 | + deviceInfo: { | |
| 153 | + avatar: DeviceStep1Ref.value?.devicePic, | |
| 154 | + ...DeviceStep1Ref.value?.positionState, | |
| 155 | + }, | |
| 156 | + deviceToken: | |
| 157 | + unref(current) === 0 || !unref(stepState).addAgree | |
| 158 | + ? null | |
| 159 | + : { | |
| 160 | + credentialsType: unref(stepState).credentialType, | |
| 161 | + credentialsId: unref(stepState).credentialsId, | |
| 162 | + credentialsValue: | |
| 163 | + unref(stepState).credentialType === credentialTypeEnum.MQTT_BASIC | |
| 164 | + ? JSON.stringify({ | |
| 165 | + userName: unref(stepState).username, | |
| 166 | + password: unref(stepState).password, | |
| 167 | + clientId: unref(stepState).clientId, | |
| 168 | + }) | |
| 169 | + : unref(stepState).credentialType === credentialTypeEnum.X_509 | |
| 170 | + ? unref(stepState).publicKey | |
| 171 | + : null, | |
| 172 | + }, | |
| 173 | + }; | |
| 174 | + await createOrEditDevice(createData); | |
| 130 | 175 | } |
| 176 | + createMessage.success(unref(msg)); | |
| 177 | + handleCancel(); | |
| 178 | + closeModal(); | |
| 179 | + emit('reload'); | |
| 180 | + } catch (error) { | |
| 181 | + } finally { | |
| 182 | + setModalProps({ | |
| 183 | + confirmLoading: false, | |
| 184 | + }); | |
| 131 | 185 | } |
| 132 | - // 验证成功 --调-- 新增或者编辑接口 | |
| 133 | - // !!!此处需要删除地图的属性,否则会报堆栈溢出的错误 Uncaught RangeError: Maximum call stack size exceeded | |
| 134 | - Reflect.deleteProperty(DeviceStep1Ref.value.positionState, 'map'); | |
| 135 | - Reflect.deleteProperty(DeviceStep1Ref.value.positionState, 'marker'); | |
| 136 | - setModalProps({ | |
| 137 | - confirmLoading: true, | |
| 138 | - }); | |
| 139 | - if (unref(isUpdate)) { | |
| 140 | - const editData = { | |
| 141 | - ...unref(stepState), | |
| 142 | - deviceInfo: { | |
| 143 | - avatar: DeviceStep1Ref.value?.devicePic, | |
| 144 | - ...DeviceStep1Ref.value?.positionState, | |
| 145 | - }, | |
| 146 | - }; | |
| 147 | - await createOrEditDevice(editData); | |
| 148 | - } else { | |
| 149 | - const createData = { | |
| 150 | - ...unref(stepState), | |
| 151 | - deviceInfo: { | |
| 152 | - avatar: DeviceStep1Ref.value?.devicePic, | |
| 153 | - ...DeviceStep1Ref.value?.positionState, | |
| 154 | - }, | |
| 155 | - deviceToken: | |
| 156 | - unref(current) === 0 || !unref(stepState).addAgree | |
| 157 | - ? null | |
| 158 | - : { | |
| 159 | - credentialsType: unref(stepState).credentialType, | |
| 160 | - credentialsId: unref(stepState).credentialsId, | |
| 161 | - credentialsValue: | |
| 162 | - unref(stepState).credentialType === credentialTypeEnum.MQTT_BASIC | |
| 163 | - ? JSON.stringify({ | |
| 164 | - userName: unref(stepState).username, | |
| 165 | - password: unref(stepState).password, | |
| 166 | - clientId: unref(stepState).clientId, | |
| 167 | - }) | |
| 168 | - : unref(stepState).credentialType === credentialTypeEnum.X_509 | |
| 169 | - ? unref(stepState).publicKey | |
| 170 | - : null, | |
| 171 | - }, | |
| 172 | - }; | |
| 173 | - await createOrEditDevice(createData); | |
| 174 | - } | |
| 175 | - createMessage.success(unref(msg)); | |
| 176 | - handleCancel(); | |
| 177 | - closeModal(); | |
| 178 | - emit('reload'); | |
| 179 | 186 | } |
| 180 | 187 | return { |
| 181 | 188 | getTitle, | ... | ... |