|
|
@@ -1,4 +1,4 @@
|
|
|
-import React, { useState, useCallback } from 'react';
|
|
|
+import React, { useState, useCallback, useEffect } from 'react';
|
|
|
import { useQuery, useMutation } from '@tanstack/react-query';
|
|
|
import { format } from 'date-fns';
|
|
|
import { zhCN } from 'date-fns/locale';
|
|
|
@@ -21,6 +21,8 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@
|
|
|
|
|
|
import { goodsClient, goodsClientManager } from '../api/goodsClient';
|
|
|
import { AdminCreateGoodsDto, AdminUpdateGoodsDto } from '@d8d/goods-module-mt/schemas';
|
|
|
+import { supplierClientManager } from '@d8d/supplier-management-ui-mt/api';
|
|
|
+import { merchantClientManager } from '@d8d/merchant-management-ui-mt/api';
|
|
|
import { DataTablePagination } from '@d8d/shared-ui-components/components/admin/DataTablePagination';
|
|
|
import { FileSelector } from '@d8d/file-management-ui-mt';
|
|
|
import { GoodsCategoryCascadeSelector } from '@d8d/goods-category-management-ui-mt/components';
|
|
|
@@ -98,6 +100,57 @@ export const GoodsManagement: React.FC = () => {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+ // 获取供应商列表(用于默认选择第一个)
|
|
|
+ const { data: suppliersData, isLoading: isLoadingSuppliers } = useQuery({
|
|
|
+ queryKey: ['suppliers-for-goods'],
|
|
|
+ queryFn: async () => {
|
|
|
+ const res = await supplierClientManager.get().index.$get({
|
|
|
+ query: {
|
|
|
+ page: 1,
|
|
|
+ pageSize: 100
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (res.status !== 200) throw new Error('获取供应商列表失败');
|
|
|
+ const result = await res.json();
|
|
|
+ return result.data || [];
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 获取商户列表(用于默认选择第一个)
|
|
|
+ const { data: merchantsData, isLoading: isLoadingMerchants } = useQuery({
|
|
|
+ queryKey: ['merchants-for-goods'],
|
|
|
+ queryFn: async () => {
|
|
|
+ const res = await merchantClientManager.get().index.$get({
|
|
|
+ query: {
|
|
|
+ page: 1,
|
|
|
+ pageSize: 100
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (res.status !== 200) throw new Error('获取商户列表失败');
|
|
|
+ const result = await res.json();
|
|
|
+ return result.data || [];
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 默认选择第一个供应商和商户(仅创建表单且值为空时)
|
|
|
+ useEffect(() => {
|
|
|
+ if (isCreateForm && isModalOpen) {
|
|
|
+ // 检查是否需要设置默认供应商
|
|
|
+ const currentSupplierId = createForm.getValues('supplierId');
|
|
|
+ if (!currentSupplierId && suppliersData && suppliersData.length > 0) {
|
|
|
+ const firstSupplier = suppliersData[0];
|
|
|
+ createForm.setValue('supplierId', firstSupplier.id, { shouldValidate: true });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检查是否需要设置默认商户
|
|
|
+ const currentMerchantId = createForm.getValues('merchantId');
|
|
|
+ if (!currentMerchantId && merchantsData && merchantsData.length > 0) {
|
|
|
+ const firstMerchant = merchantsData[0];
|
|
|
+ createForm.setValue('merchantId', firstMerchant.id, { shouldValidate: true });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, [isCreateForm, isModalOpen, suppliersData, merchantsData, createForm]);
|
|
|
+
|
|
|
// 创建商品
|
|
|
const createMutation = useMutation({
|
|
|
mutationFn: async (data: CreateRequest) => {
|
|
|
@@ -513,7 +566,7 @@ export const GoodsManagement: React.FC = () => {
|
|
|
|
|
|
<GoodsCategoryCascadeSelector required={true} />
|
|
|
|
|
|
- <div className="grid grid-cols-2 gap-4">
|
|
|
+ <div className="grid grid-cols-2 gap-4" style={{ display: 'none' }}>
|
|
|
<FormField
|
|
|
control={createForm.control}
|
|
|
name="supplierId"
|