fix(站点编辑): 修复编辑表单中区域数据格式问题
确保编辑表单中的区域数据格式一致,将areas字段转换为code数组 在多个组件中添加数据格式转换逻辑 添加调试信息输出以方便问题排查
This commit is contained in:
parent
d78b587035
commit
2471eb5299
|
|
@ -58,7 +58,7 @@ export interface SiteItem {
|
||||||
const SiteList: React.FC = () => {
|
const SiteList: React.FC = () => {
|
||||||
const actionRef = useRef<ActionType>();
|
const actionRef = useRef<ActionType>();
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
const [editing, setEditing] = useState<SiteItem | null>(null);
|
const [editing, setEditing] = useState<SiteItem & { areas: string[] } | null>(null);
|
||||||
const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]);
|
const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]);
|
||||||
const [batchEditOpen, setBatchEditOpen] = useState(false);
|
const [batchEditOpen, setBatchEditOpen] = useState(false);
|
||||||
const [batchEditForm] = Form.useForm();
|
const [batchEditForm] = Form.useForm();
|
||||||
|
|
@ -292,7 +292,13 @@ const SiteList: React.FC = () => {
|
||||||
<Button
|
<Button
|
||||||
size="small"
|
size="small"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setEditing(row);
|
function normalEditing(row:SiteItem){
|
||||||
|
return {
|
||||||
|
...row,
|
||||||
|
areas: row.areas?.map(area=>area.code) || [],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setEditing(normalEditing(row));
|
||||||
setOpen(true);
|
setOpen(true);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -78,6 +78,7 @@ const EditSiteForm: React.FC<EditSiteFormProps> = ({
|
||||||
}}
|
}}
|
||||||
layout="vertical"
|
layout="vertical"
|
||||||
>
|
>
|
||||||
|
{JSON.stringify(initialValues)}
|
||||||
<ProFormText
|
<ProFormText
|
||||||
name="name"
|
name="name"
|
||||||
label="名称"
|
label="名称"
|
||||||
|
|
|
||||||
|
|
@ -15,11 +15,11 @@ const ShopLayout: React.FC = () => {
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
|
|
||||||
const [editModalOpen, setEditModalOpen] = useState(false);
|
const [editModalOpen, setEditModalOpen] = useState(false);
|
||||||
const [editingSite, setEditingSite] = useState<SiteItem | null>(null);
|
const [editingSite, setEditingSite] = useState<SiteItem & { areas: string[] } | null>(null);
|
||||||
|
|
||||||
const fetchSites = async () => {
|
const fetchSites = async () => {
|
||||||
try {
|
try {
|
||||||
setLoading(true);
|
setEditingSiteLoading(true);
|
||||||
const { data = [] } = await sitecontrollerAll();
|
const { data = [] } = await sitecontrollerAll();
|
||||||
setSites(data);
|
setSites(data);
|
||||||
|
|
||||||
|
|
@ -103,6 +103,7 @@ const ShopLayout: React.FC = () => {
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
flexWrap: 'wrap',
|
flexWrap: 'wrap',
|
||||||
|
gap: '4px'
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Select
|
<Select
|
||||||
|
|
@ -119,13 +120,18 @@ const ShopLayout: React.FC = () => {
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
icon={<EditOutlined />}
|
icon={<EditOutlined />}
|
||||||
style={{ marginLeft: 8 }}
|
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
const currentSite = sites.find(
|
const currentSite = sites.find(
|
||||||
(site) => site.id === Number(siteId),
|
(site) => site.id === Number(siteId),
|
||||||
);
|
);
|
||||||
if (currentSite) {
|
if (currentSite) {
|
||||||
setEditingSite(currentSite);
|
function normalizeEditing (site: SiteItem){
|
||||||
|
return {
|
||||||
|
...site,
|
||||||
|
areas: site.areas?.map(area=>area.code) || [],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setEditingSite(normalizeEditing(currentSite));
|
||||||
setEditModalOpen(true);
|
setEditModalOpen(true);
|
||||||
} else {
|
} else {
|
||||||
message.warning('请先选择一个店铺');
|
message.warning('请先选择一个店铺');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue