forked from yoone/WEB
1
0
Fork 0

fix(站点编辑): 修复编辑表单中区域数据格式问题

确保编辑表单中的区域数据格式一致,将areas字段转换为code数组
在多个组件中添加数据格式转换逻辑
添加调试信息输出以方便问题排查
This commit is contained in:
tikkhun 2026-01-20 18:00:13 +08:00
parent d78b587035
commit 2471eb5299
3 changed files with 19 additions and 6 deletions

View File

@ -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);
}} }}
> >

View File

@ -78,6 +78,7 @@ const EditSiteForm: React.FC<EditSiteFormProps> = ({
}} }}
layout="vertical" layout="vertical"
> >
{JSON.stringify(initialValues)}
<ProFormText <ProFormText
name="name" name="name"
label="名称" label="名称"

View File

@ -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('请先选择一个店铺');