@@ -253,7 +266,7 @@ const HomepageAds: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
{
selectTab === "1" ?
= (props)
{
selectTab === "2" ?
= (props)
}}
footer={ {
+ handleConfirmLoading(true)
await handelDelete(currentRow?.USERDEFINEDTYPE_ID)
}}
handleCancel={() => {
@@ -483,7 +498,32 @@ const HomepageAds: React.FC<{ currentUser: CurrentUser | undefined }> = (props)
initialValue={1000}
/>
+ {/* 这个字段暂时用来 判断跳转小程序分类页面的 哪个分类 */}
+ {
+ const req = {
+ OWNERUNIT_ID: currentUser?.OwnerUnitId,
+ PROVINCE_CODE: "",
+ GOODSTYPE: 4000,
+ USERDEFINEDTYPE_STATE: 1
+ }
+ const data = await handlGetUSERDEFINEDTYPEList(req);
+ return data
+ }}
+ fieldProps={{
+ fieldNames: {
+ label: "USERDEFINEDTYPE_NAME",
+ value: "USERDEFINEDTYPE_ID"
+ },
+ showSearch: true,
+ treeDefaultExpandAll: true,
+ }}
+ />
+
+
{
@@ -371,7 +372,10 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
const data = await handeSyncSellerCommodityInfo({ list: [req] })
handleConfirmLoading(false)
if (data.Result_Code === 100) {
+ console.log('currentRowcurrentRowcurrentRow', currentRow);
+
handleSetlogSave(`${currentRow?.COMMODITY_ID ? '更新' : '新增'}【${data.Result_Data?.COMMODITY_NAME}】成功`)
+ handleUpdateCommodityList(JSON.parse(JSON.stringify(currentRow)))
message.success("同步成功!")
setCurrentRow(undefined)
formRef?.current?.resetFields()
@@ -384,6 +388,17 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
}
};
+ // 调用java的更新商户商品的方法
+ const handleUpdateCommodityList = async (obj: any) => {
+ const req: any = {
+ serverpartshopId: obj.SERVERPARTSHOP_IDS,
+ provinceCode: "530000"
+ }
+ const data = await handleNewJavasyncCommodityList(req)
+ console.log('datadata', data);
+
+ }
+
// 上传商品图片
const handleUploadShopImg = async (formRes: any) => {
@@ -841,6 +856,12 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
label="商品图片"
listType="picture-card"
accept="image/*"
+ rules={[
+ {
+ required: true,
+ message: "请上传商品图片!"
+ }
+ ]}
fieldProps={{
beforeUpload,
maxCount: 1,
diff --git a/src/pages/travelMember/ProductListingManagement/component/SelectSetMealItems.tsx b/src/pages/travelMember/ProductListingManagement/component/SelectSetMealItems.tsx
new file mode 100644
index 0000000..41b8e63
--- /dev/null
+++ b/src/pages/travelMember/ProductListingManagement/component/SelectSetMealItems.tsx
@@ -0,0 +1,319 @@
+import { connect } from "umi";
+import type { ConnectState } from "@/models/connect";
+import { useImperativeHandle, useState } from "react";
+import ProTable from '@ant-design/pro-table';
+import { Button, Input, InputNumber, TreeSelect } from 'antd';
+import type { ProColumns } from '@ant-design/pro-table';
+
+// 定义表格数据类型
+type TableDataType = {
+ id: string | number;
+ name?: string;
+ barcode?: string;
+ category?: string;
+ unit?: string;
+ specification?: string;
+ price?: number;
+ taxRate?: number;
+ taxCode?: string;
+};
+
+// 定义树形数据类型
+type TreeDataType = {
+ USERDEFINEDTYPE_ID: string | number;
+ USERDEFINEDTYPE_NAME: string;
+ children?: TreeDataType[];
+};
+
+type DetailProps = {
+ leftTreeData?: TreeDataType[]
+ onRef?: any
+};
+
+const SelectSetMealItems = ({ leftTreeData, onRef }: DetailProps) => {
+ // 判断用户是否点击了 添加套餐商品的按钮
+ const [isClickAdd, setIsClickAdd] = useState(false);
+ // 表格数据
+ const [tableData, setTableData] = useState([
+ {
+ id: Date.now(),
+ name: '',
+ barcode: '',
+ category: '',
+ unit: '',
+ specification: '',
+ price: undefined,
+ taxRate: undefined,
+ taxCode: '',
+ }
+ ]);
+
+ // 表格列定义
+ const columns: ProColumns[] = [
+ {
+ title: '商品名称',
+ width: 250,
+ align: 'center',
+ dataIndex: 'name',
+ render: (_, record: TableDataType) => (
+ {
+ const newData = tableData.map((item: TableDataType) => {
+ if (item.id === record.id) {
+ return { ...item, name: e.target.value };
+ }
+ return item;
+ });
+ setTableData(newData);
+ }}
+ />
+ ),
+ },
+ {
+ title: '条码',
+ width: 150,
+ align: 'center',
+ dataIndex: 'barcode',
+ render: (_, record: TableDataType) => (
+ {
+ const newData = tableData.map((item: TableDataType) => {
+ if (item.id === record.id) {
+ return { ...item, barcode: e.target.value };
+ }
+ return item;
+ });
+ setTableData(newData);
+ }}
+ />
+ ),
+ },
+ {
+ title: 分类
,
+ width: 250,
+ align: 'left',
+ dataIndex: 'category',
+ render: (_, record: TableDataType) => (
+ 0 ? record.category : []}
+ onChange={(e) => {
+ const newData = tableData.map((item: TableDataType) => {
+ if (item.id === record.id) {
+ return { ...item, category: e };
+ }
+ return item;
+ });
+ setTableData(newData);
+ }}
+ fieldNames={{
+ label: "USERDEFINEDTYPE_NAME",
+ value: "USERDEFINEDTYPE_ID",
+ children: "children"
+ }}
+ treeDefaultExpandAll
+ showSearch
+ allowClear
+ multiple
+ treeNodeFilterProp="USERDEFINEDTYPE_NAME"
+ placeholder="请输入商品分类"
+ />
+ ),
+ },
+ {
+ title: '单位',
+ width: 120,
+ align: 'center',
+ dataIndex: 'unit',
+ render: (_, record: TableDataType) => (
+ {
+ const newData = tableData.map((item: TableDataType) => {
+ if (item.id === record.id) {
+ return { ...item, unit: e.target.value };
+ }
+ return item;
+ });
+ setTableData(newData);
+ }}
+ />
+ ),
+ },
+ {
+ title: '规格',
+ width: 120,
+ align: 'center',
+ dataIndex: 'specification',
+ render: (_, record: TableDataType) => (
+ {
+ const newData = tableData.map((item: TableDataType) => {
+ if (item.id === record.id) {
+ return { ...item, specification: e.target.value };
+ }
+ return item;
+ });
+ setTableData(newData);
+ }}
+ />
+ ),
+ },
+ {
+ title: '价格',
+ width: 120,
+ align: 'center',
+ dataIndex: 'price',
+ render: (_, record: TableDataType) => (
+ {
+ const newData = tableData.map((item: TableDataType) => {
+ if (item.id === record.id) {
+ return { ...item, price: value as number };
+ }
+ return item;
+ });
+ setTableData(newData);
+ }}
+ />
+ ),
+ },
+ {
+ title: '税率',
+ width: 120,
+ align: 'center',
+ dataIndex: 'taxRate',
+ render: (_, record: TableDataType) => (
+ {
+ const newData = tableData.map((item: TableDataType) => {
+ if (item.id === record.id) {
+ return { ...item, taxRate: value as number };
+ }
+ return item;
+ });
+ setTableData(newData);
+ }}
+ />
+ ),
+ },
+ {
+ title: '税务代码',
+ width: 120,
+ align: 'center',
+ dataIndex: 'taxCode',
+ render: (_, record: TableDataType) => (
+ {
+ const newData = tableData.map((item: TableDataType) => {
+ if (item.id === record.id) {
+ return { ...item, taxCode: e.target.value };
+ }
+ return item;
+ });
+ setTableData(newData);
+ }}
+ />
+ ),
+ },
+ {
+ title: '操作',
+ align: 'center',
+ valueType: 'option',
+ width: 60,
+ render: (_, record: TableDataType) => [
+ {
+ const newData = tableData.filter((item: TableDataType) => item.id !== record.id);
+ setTableData(newData);
+ }}
+ >
+ 删除
+ ,
+ ],
+ },
+ ];
+
+ // 暴露表格数据
+ useImperativeHandle(onRef, () => ({
+ tableData
+ }));
+ return (
+
+ {
+ isClickAdd ?
+
+
[
+ ,
+
+ ]}
+ />
+ :
+
+
+
+ }
+
+ )
+}
+
+export default connect(({ user, }: ConnectState) => ({
+ currentUser: user.currentUser,
+}))(SelectSetMealItems);
\ No newline at end of file
diff --git a/src/pages/travelMember/ProductListingManagement/index.tsx b/src/pages/travelMember/ProductListingManagement/index.tsx
index a618f77..35c7bd2 100644
--- a/src/pages/travelMember/ProductListingManagement/index.tsx
+++ b/src/pages/travelMember/ProductListingManagement/index.tsx
@@ -33,6 +33,7 @@ import { handlecsyncWeChatGetMallGoodsInfo, handlecsyncWeChatGetMallGoodsInfoAll
import { isEqual } from 'lodash';
import RelevanceCoupon from './component/RelevanceCoupon';
import { handleGetCOUPONList } from '@/pages/CardInformation/service';
+import SelectSetMealItems from './component/SelectSetMealItems';
const beforeUpload = (file: any) => {
@@ -51,6 +52,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
const { currentUser } = props
const { confirm } = Modal;
const associatedCouponsModalRef = useRef()
+ const setSelectSetMealItemsRef = useRef()
const actionRef = useRef();
const ruleActionRef = useRef();
// 税率的表单
@@ -1504,7 +1506,6 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
name="USERDEFINEDTYPE_ID"
label="商品分类"
request={async () => {
-
return leftTreeData
}}
fieldProps={{
@@ -1650,6 +1651,8 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
label="商品简称"
/>
+
+
商品价值
= (prop
}}
/>
+
+ {/* 若是一个套餐商品 那么这里就要有一个录入套餐商品的地方 */}
+
+
+
diff --git a/src/utils/requestNewJava.ts b/src/utils/requestNewJava.ts
index f92663d..45cc344 100644
--- a/src/utils/requestNewJava.ts
+++ b/src/utils/requestNewJava.ts
@@ -59,7 +59,7 @@ const request = extend({
errorHandler, // default error handling
// prefix: '/EShangApiMain',// 开发
prefix: 'https://java.es.eshangtech.com:443', // 正式
- // prefix: 'http://111.229.213.193:18071', // 正式
+ // prefix: 'http://111.229.213.193:18071', // 测试
headers: {
token: '',
ProvinceCode: '',
diff --git a/src/versionEnv.ts b/src/versionEnv.ts
index 6a6d00d..45e93a5 100644
--- a/src/versionEnv.ts
+++ b/src/versionEnv.ts
@@ -1,4 +1,4 @@
// 由 scripts/writeVersion.js 自动生成
-export const VERSION = "4.5.90";
-export const GIT_HASH = "e555058";
-export const BUILD_TIME = "2025-12-12T09:26:16.901Z";
+export const VERSION = "4.5.91";
+export const GIT_HASH = "24088d3";
+export const BUILD_TIME = "2025-12-16T11:26:58.433Z";