Commit 26738ceb authored by XieZhiXiong's avatar XieZhiXiong

fix: 修复现有地址无法点击确认的问题

parent aeb13370
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: XieZhiXiong * @Author: XieZhiXiong
* @Date: 2021-08-05 10:28:06 * @Date: 2021-08-05 10:28:06
* @LastEditors: XieZhiXiong * @LastEditors: XieZhiXiong
* @LastEditTime: 2021-08-09 16:52:37 * @LastEditTime: 2021-08-10 10:20:55
* @Description: 地址选择 FormItem * @Description: 地址选择 FormItem
*/ */
import React, { useState, useEffect, useMemo, useRef } from 'react'; import React, { useState, useEffect, useMemo, useRef } from 'react';
...@@ -204,99 +204,102 @@ const AddressSelect: React.FC<IProps> = (props) => { ...@@ -204,99 +204,102 @@ const AddressSelect: React.FC<IProps> = (props) => {
const handleSubmit = async (values: SubmitValuesType) => { const handleSubmit = async (values: SubmitValuesType) => {
let next = values.address; let next = values.address;
const originData = formActions.getFieldState('provinceCode', (fieldState) => { // 有值表示是新增 或 修改操作
return fieldState.originData; if (values.name) {
}); const originData = formActions.getFieldState('provinceCode', (fieldState) => {
if (!originData) { return fieldState.originData;
message.warn('未找到地区信息'); });
return; if (!originData) {
} message.warn('未找到地区信息');
const currentProvince = originData.find((item) => item.code === values.provinceCode); return;
const currentCity = currentProvince?.areaResponses?.find((item) => item.code === values.cityCode); }
const currentDistrict = currentCity?.areaResponses?.find((item) => item.code === values.districtCode); const currentProvince = originData.find((item) => item.code === values.provinceCode);
const provinceName = currentProvince?.name; const currentCity = currentProvince?.areaResponses?.find((item) => item.code === values.cityCode);
const cityName = currentCity?.name; const currentDistrict = currentCity?.areaResponses?.find((item) => item.code === values.districtCode);
const districtName = currentDistrict?.name; const provinceName = currentProvince?.name;
const cityName = currentCity?.name;
const { name, detailed, isDefault, ...rest } = values; const districtName = currentDistrict?.name;
const commonPayload = {
...rest, const { name, detailed, isDefault, ...rest } = values;
id: 0, const commonPayload = {
provinceName, ...rest,
cityName, id: 0,
districtName, provinceName,
address: detailed, cityName,
isDefault: isDefault ? 1 : 0, districtName,
}; address: detailed,
isDefault: isDefault ? 1 : 0,
// 新增地址 };
if (values.name && !editAddressId.current) {
try { // 新增地址
setSubmitLoading(true); if (!editAddressId.current) {
const addRes = addressType === 2 try {
? await PublicApi.postLogisticsShipperAddressAdd({ setSubmitLoading(true);
...commonPayload, const addRes = addressType === 2
shipperName: name, ? await PublicApi.postLogisticsShipperAddressAdd({
}) ...commonPayload,
: await PublicApi.postLogisticsReceiverAddressAdd({ shipperName: name,
...commonPayload, })
receiverName: name, : await PublicApi.postLogisticsReceiverAddressAdd({
}); ...commonPayload,
receiverName: name,
if (addRes.code === 1000) { });
next = {
fullAddress: `${provinceName}${cityName}${districtName}`, if (addRes.code === 1000) {
id: addRes.data?.id, next = {
isDefault: values.isDefault ? 1 : 0, fullAddress: `${provinceName}${cityName}${districtName}`,
name: values.name, id: addRes.data?.id,
phone: values.tel, isDefault: values.isDefault ? 1 : 0,
}; name: values.name,
// 重新获取列表,打新添加的内容加载出来 phone: values.tel,
getAddressList(); };
// 重新获取列表,打新添加的内容加载出来
formActions.reset({ selector: 'ADDRESS_NEW.*', validate: false }); getAddressList();
formActions.setFieldState('ADDRESS_NEW', state => {
state.visible = false; formActions.reset({ selector: 'ADDRESS_NEW.*', validate: false });
}); formActions.setFieldState('ADDRESS_NEW', state => {
state.visible = false;
});
}
setSubmitLoading(false);
} catch (error) {
console.warn(error)
} }
setSubmitLoading(false);
} catch (error) {
console.warn(error)
} }
} // 编辑地址
// 编辑地址 if (editAddressId.current) {
if (values.name && editAddressId.current) { try {
try { setSubmitLoading(true);
setSubmitLoading(true); const addRes = addressType === 2
const addRes = addressType === 2 ? await PublicApi.postLogisticsShipperAddressUpdate({
? await PublicApi.postLogisticsShipperAddressUpdate({ ...commonPayload,
...commonPayload, id: editAddressId.current,
id: editAddressId.current, shipperName: name,
shipperName: name, })
}) : await PublicApi.postLogisticsReceiverAddressUpdate({
: await PublicApi.postLogisticsReceiverAddressUpdate({ ...commonPayload,
...commonPayload, id: editAddressId.current,
id: editAddressId.current, receiverName: name,
receiverName: name, });
});
if (addRes.code === 1000) {
if (addRes.code === 1000) { next = {
next = { fullAddress: `${provinceName}${cityName}${districtName}`,
fullAddress: `${provinceName}${cityName}${districtName}`, id: editAddressId.current,
id: editAddressId.current, isDefault: values.isDefault ? 1 : 0,
isDefault: values.isDefault ? 1 : 0, name: values.name,
name: values.name, phone: values.tel,
phone: values.tel, };
}; // 重新获取列表,打新添加的内容加载出来
// 重新获取列表,打新添加的内容加载出来 getAddressList();
getAddressList();
editAddressId.current = null;
editAddressId.current = null; formActions.reset({ selector: 'ADDRESS_NEW.*' });
formActions.reset({ selector: 'ADDRESS_NEW.*' }); }
setSubmitLoading(false);
} catch (error) {
console.warn(error)
} }
setSubmitLoading(false);
} catch (error) {
console.warn(error)
} }
} }
if (!('value' in props)) { if (!('value' in props)) {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: XieZhiXiong * @Author: XieZhiXiong
* @Date: 2021-08-05 14:02:46 * @Date: 2021-08-05 14:02:46
* @LastEditors: XieZhiXiong * @LastEditors: XieZhiXiong
* @LastEditTime: 2021-08-06 14:46:35 * @LastEditTime: 2021-08-10 14:05:13
* @Description: * @Description:
*/ */
import { ISchema } from '@formily/antd'; import { ISchema } from '@formily/antd';
...@@ -35,12 +35,6 @@ export const createSchema = (addressType = 2): ISchema => { ...@@ -35,12 +35,6 @@ export const createSchema = (addressType = 2): ISchema => {
'x-component-props': { 'x-component-props': {
onClickEdit: '{{ handleEditAddress }}', onClickEdit: '{{ handleEditAddress }}',
}, },
'x-rules': [
{
required: true,
message: '请选择地址',
},
],
}, },
}, },
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment