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, | ... | ... |