update
This commit is contained in:
parent
70a3b9e4ec
commit
31a0a71e48
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ant-design-pro",
|
"name": "ant-design-pro",
|
||||||
"version": "4.5.95",
|
"version": "4.5.111",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "An out-of-box UI solution for enterprise applications",
|
"description": "An out-of-box UI solution for enterprise applications",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
BIN
src/assets/refreshIcon.png
Normal file
BIN
src/assets/refreshIcon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.9 KiB |
@ -461,7 +461,7 @@ const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
|
|||||||
|
|
||||||
|
|
||||||
// 商品属性
|
// 商品属性
|
||||||
getFieldEnumTree({ FieldExplainField: 'COMMODITY_NATURE' }).then((COMMODITYNATURE: any) => {
|
getFieldEnumTree({ FieldExplainField: 'COMMODITY_NATURE', FieldEnumStatus: true }).then((COMMODITYNATURE: any) => {
|
||||||
if (COMMODITYNATURE && COMMODITYNATURE.length > 0) {
|
if (COMMODITYNATURE && COMMODITYNATURE.length > 0) {
|
||||||
const obj: any = {}
|
const obj: any = {}
|
||||||
const list: any = []
|
const list: any = []
|
||||||
|
|||||||
@ -20,7 +20,6 @@ import { handeGetMERCHANTSList } from "@/pages/travelMember/service";
|
|||||||
// 提交账号数据
|
// 提交账号数据
|
||||||
const handleAddUpdate = async (item: any, type: boolean) => {
|
const handleAddUpdate = async (item: any, type: boolean) => {
|
||||||
console.log('handleAddUpdate', item);
|
console.log('handleAddUpdate', item);
|
||||||
|
|
||||||
const loading = message.loading("正在提交...")
|
const loading = message.loading("正在提交...")
|
||||||
const result = await updataUser(item)
|
const result = await updataUser(item)
|
||||||
|
|
||||||
@ -382,7 +381,6 @@ const Edit = ({ tableTab, openType, detail, reloadTable, currentUser, selectTab,
|
|||||||
// setShowServiceList(initDetail.PushList[0].type)
|
// setShowServiceList(initDetail.PushList[0].type)
|
||||||
setShowWeChatFlag(initDetail.PushPermission)
|
setShowWeChatFlag(initDetail.PushPermission)
|
||||||
|
|
||||||
|
|
||||||
// 请求获取该账户绑定的角色拥有的模块权限
|
// 请求获取该账户绑定的角色拥有的模块权限
|
||||||
if (initDetail.SystemRoleList.length > 0) {
|
if (initDetail.SystemRoleList.length > 0) {
|
||||||
getRoleMenu(initDetail.SystemRoleList.toString())
|
getRoleMenu(initDetail.SystemRoleList.toString())
|
||||||
@ -393,7 +391,7 @@ const Edit = ({ tableTab, openType, detail, reloadTable, currentUser, selectTab,
|
|||||||
|
|
||||||
handleGetMerchantTree()
|
handleGetMerchantTree()
|
||||||
|
|
||||||
|
setSelectDetail('530000')
|
||||||
// , USER_PATTERN: currentUser?.UserPattern
|
// , USER_PATTERN: currentUser?.UserPattern
|
||||||
setInitialDetail({ USER_STATUS: 1, USER_REPEATLOGON: 1, SUPER_ADMIN: 0 })
|
setInitialDetail({ USER_STATUS: 1, USER_REPEATLOGON: 1, SUPER_ADMIN: 0 })
|
||||||
// , USER_PATTERN: currentUser?.UserPattern
|
// , USER_PATTERN: currentUser?.UserPattern
|
||||||
@ -407,6 +405,7 @@ const Edit = ({ tableTab, openType, detail, reloadTable, currentUser, selectTab,
|
|||||||
setCheckedServerpart([]) // 清空选择的服务区/门店
|
setCheckedServerpart([]) // 清空选择的服务区/门店
|
||||||
getShopTree(BUSINESSMAN_ID?.value)
|
getShopTree(BUSINESSMAN_ID?.value)
|
||||||
}
|
}
|
||||||
|
console.log('没有');
|
||||||
|
|
||||||
|
|
||||||
return { USER_STATUS: 1, USER_REPEATLOGON: 1, SUPER_ADMIN: 0, USER_PROVINCE: 911 }
|
return { USER_STATUS: 1, USER_REPEATLOGON: 1, SUPER_ADMIN: 0, USER_PROVINCE: 911 }
|
||||||
@ -830,7 +829,6 @@ const Edit = ({ tableTab, openType, detail, reloadTable, currentUser, selectTab,
|
|||||||
<Form.Item
|
<Form.Item
|
||||||
name="BUSINESSMAN_ID"
|
name="BUSINESSMAN_ID"
|
||||||
label="所属供应商"
|
label="所属供应商"
|
||||||
|
|
||||||
rules={[
|
rules={[
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
@ -844,7 +842,10 @@ const Edit = ({ tableTab, openType, detail, reloadTable, currentUser, selectTab,
|
|||||||
showSearch
|
showSearch
|
||||||
treeNodeFilterProp="label"
|
treeNodeFilterProp="label"
|
||||||
onSelect={(value: any, options: any) => {
|
onSelect={(value: any, options: any) => {
|
||||||
|
detailForm.current?.setFieldsValue({ USERTYPE_ID: '' })
|
||||||
|
setInitialDetail({ ...initialDetail, BUSINESSMAN_NAME: options.label })
|
||||||
|
setCheckedServerpart([]) // 清空选择的服务区/门店
|
||||||
|
getShopTree(value)
|
||||||
}}
|
}}
|
||||||
placeholder="请选择所属供应商"
|
placeholder="请选择所属供应商"
|
||||||
allowClear
|
allowClear
|
||||||
@ -852,6 +853,12 @@ const Edit = ({ tableTab, openType, detail, reloadTable, currentUser, selectTab,
|
|||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col> : ''
|
</Col> : ''
|
||||||
}
|
}
|
||||||
|
<Col span={6} style={{ display: 'none' }}>
|
||||||
|
<ProFormText
|
||||||
|
label="所属供应商"
|
||||||
|
name="BUSINESSMAN_NAME"
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
<Col span={16}>
|
<Col span={16}>
|
||||||
<ProFormText
|
<ProFormText
|
||||||
label="备注"
|
label="备注"
|
||||||
|
|||||||
@ -28,7 +28,7 @@ import defaultIcon from '../../../assets/brand/defaultIcon.png'
|
|||||||
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
|
import ModalFooter from '../scenicSpotConfig/component/modalFooter';
|
||||||
import { handleSetlogSave } from '@/utils/format';
|
import { handleSetlogSave } from '@/utils/format';
|
||||||
import { highlightText } from '@/utils/highlightText';
|
import { highlightText } from '@/utils/highlightText';
|
||||||
import { handlesyncWeChatGetMallGoodsType } from '@/pages/operatingMerchants/service';
|
import { handlecsyncWeChatGetMallGoodsInfo, handlesyncWeChatGetMallGoodsType } from '@/pages/operatingMerchants/service';
|
||||||
|
|
||||||
|
|
||||||
const beforeUpload = (file: any) => {
|
const beforeUpload = (file: any) => {
|
||||||
@ -284,6 +284,9 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
STAFF_ID: currentUser?.ID,
|
STAFF_ID: currentUser?.ID,
|
||||||
STAFF_NAME: currentUser?.Name,
|
STAFF_NAME: currentUser?.Name,
|
||||||
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),
|
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),
|
||||||
|
WECHATAPP_APPID: "wxee018fb96955552a",
|
||||||
|
WECHATAPPSIGN_NAME: "彩云驿出行",
|
||||||
|
WECHATAPPSIGN_ID: 38
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
req = {
|
req = {
|
||||||
@ -299,6 +302,9 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
STAFF_NAME: currentUser?.Name,
|
STAFF_NAME: currentUser?.Name,
|
||||||
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),
|
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),
|
||||||
USERDEFINEDTYPE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),
|
USERDEFINEDTYPE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),
|
||||||
|
WECHATAPP_APPID: "wxee018fb96955552a",
|
||||||
|
WECHATAPPSIGN_NAME: "彩云驿出行",
|
||||||
|
WECHATAPPSIGN_ID: 38
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const data = await handlSynchroUSERDEFINEDTYPE(req)
|
const data = await handlSynchroUSERDEFINEDTYPE(req)
|
||||||
@ -314,6 +320,8 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
actionRef.current?.reload()
|
actionRef.current?.reload()
|
||||||
|
|
||||||
handlesyncWeChatGetMallGoodsType({ appId: 'wxee018fb96955552a' })
|
handlesyncWeChatGetMallGoodsType({ appId: 'wxee018fb96955552a' })
|
||||||
|
handlecsyncWeChatGetMallGoodsInfo({ appId: 'wxee018fb96955552a', userdefinedTypeId: data.Result_Data.USERDEFINEDTYPE_PID === -1 ? data.Result_Data.USERDEFINEDTYPE_ID : data.Result_Data.USERDEFINEDTYPE_PID })
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
message.error(data.Result_Desc)
|
message.error(data.Result_Desc)
|
||||||
}
|
}
|
||||||
@ -473,7 +481,7 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
<ProForm
|
<ProForm
|
||||||
layout={'horizontal'}
|
layout={'horizontal'}
|
||||||
formRef={formRef}
|
formRef={formRef}
|
||||||
labelCol={{ style: { width: 80 } }}
|
labelCol={{ style: { width: 100 } }}
|
||||||
autoFocusFirstInput
|
autoFocusFirstInput
|
||||||
submitter={false}
|
submitter={false}
|
||||||
preserve={false}
|
preserve={false}
|
||||||
@ -697,6 +705,18 @@ const MallClassificationManage: React.FC<{ currentUser: CurrentUser | undefined
|
|||||||
disabled
|
disabled
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
|
<Col span={12}>
|
||||||
|
<ProFormSelect
|
||||||
|
name="SERVERPARTSHOP_ID"
|
||||||
|
label="小程序显示"
|
||||||
|
options={[
|
||||||
|
{ label: '精选商城', value: '1' },
|
||||||
|
{ label: '工会商城', value: '2' },
|
||||||
|
{ label: '不显示', value: '0' },
|
||||||
|
]}
|
||||||
|
initialValue={0}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
<Col span={24}>
|
<Col span={24}>
|
||||||
<ProFormTextArea
|
<ProFormTextArea
|
||||||
name="USERDEFINEDTYPE_DESC"
|
name="USERDEFINEDTYPE_DESC"
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import { connect } from "umi";
|
|||||||
import type { ConnectState } from "@/models/connect";
|
import type { ConnectState } from "@/models/connect";
|
||||||
import ProCard from "@ant-design/pro-card";
|
import ProCard from "@ant-design/pro-card";
|
||||||
import searchIcon from '@/assets/ai/searchIcon.png'
|
import searchIcon from '@/assets/ai/searchIcon.png'
|
||||||
|
import refreshIcon from '@/assets/refreshIcon.png'
|
||||||
import { useRef, useState } from "react";
|
import { useRef, useState } from "react";
|
||||||
import { MenuFoldOutlined } from "@ant-design/icons";
|
import { MenuFoldOutlined } from "@ant-design/icons";
|
||||||
import ProForm, { ProFormText } from "@ant-design/pro-form";
|
import ProForm, { ProFormText } from "@ant-design/pro-form";
|
||||||
@ -130,7 +131,6 @@ const LeftSelectMallType = ({ setSelectedId, reload, actionRef, currentUser, wid
|
|||||||
console.log('res', res);
|
console.log('res', res);
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
// 仅支持单选一个服务区的时候 调用的方法
|
// 仅支持单选一个服务区的时候 调用的方法
|
||||||
const convertTreeForSelectOnly = (treeData: any[]): any[] => {
|
const convertTreeForSelectOnly = (treeData: any[]): any[] => {
|
||||||
return treeData.map(item => {
|
return treeData.map(item => {
|
||||||
@ -144,6 +144,23 @@ const LeftSelectMallType = ({ setSelectedId, reload, actionRef, currentUser, wid
|
|||||||
return newItem;
|
return newItem;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 因为现在要添加一个刷新 所以将获取左侧列数据的方法 包成一个方法 可以去调用
|
||||||
|
const handleRefreshData = async () => {
|
||||||
|
const req = {
|
||||||
|
OWNERUNIT_ID: '911',
|
||||||
|
PROVINCE_CODE: "",
|
||||||
|
GOODSTYPE: 4000,
|
||||||
|
USERDEFINEDTYPE_STATE: 1,
|
||||||
|
SCANCODE_ORDER: 1
|
||||||
|
}
|
||||||
|
const data = await handlGetUSERDEFINEDTYPEList(req);
|
||||||
|
setTreeView(data)
|
||||||
|
setData(data)
|
||||||
|
|
||||||
|
session.set("USERDEFINEDTYPEList", data)
|
||||||
|
setAllTreeViews(data)
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
@ -152,6 +169,9 @@ const LeftSelectMallType = ({ setSelectedId, reload, actionRef, currentUser, wid
|
|||||||
className="pageTable-leftnav"
|
className="pageTable-leftnav"
|
||||||
bodyStyle={{ padding: 0, paddingTop: 20, paddingLeft: 20, width: !collapsible ? width ? `${width}px` : "300px" : "60px" }}
|
bodyStyle={{ padding: 0, paddingTop: 20, paddingLeft: 20, width: !collapsible ? width ? `${width}px` : "300px" : "60px" }}
|
||||||
extra={<div className="leftSelectBox">
|
extra={<div className="leftSelectBox">
|
||||||
|
<img className="refreshIcon" src={refreshIcon} onClick={() => {
|
||||||
|
handleRefreshData()
|
||||||
|
}} />
|
||||||
<img className="searchIcon" src={searchIcon} onClick={() => {
|
<img className="searchIcon" src={searchIcon} onClick={() => {
|
||||||
setShowServiceSearchBox(true)
|
setShowServiceSearchBox(true)
|
||||||
}} />
|
}} />
|
||||||
|
|||||||
@ -19,9 +19,10 @@ type DetailProps = {
|
|||||||
leftTreeData?: TreeDataType[]
|
leftTreeData?: TreeDataType[]
|
||||||
onRef?: any
|
onRef?: any
|
||||||
comboCommodityDetail?: any // 查询到的套餐数据
|
comboCommodityDetail?: any // 查询到的套餐数据
|
||||||
|
parentFormRef?: any // 父级的表单实例
|
||||||
};
|
};
|
||||||
|
|
||||||
const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail }: DetailProps) => {
|
const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail, parentFormRef }: DetailProps) => {
|
||||||
// 判断用户是否点击了 添加套餐商品的按钮
|
// 判断用户是否点击了 添加套餐商品的按钮
|
||||||
const [isClickAdd, setIsClickAdd] = useState<boolean>(comboCommodityDetail && comboCommodityDetail.length > 0 ? true : false);
|
const [isClickAdd, setIsClickAdd] = useState<boolean>(comboCommodityDetail && comboCommodityDetail.length > 0 ? true : false);
|
||||||
// 表格数据
|
// 表格数据
|
||||||
@ -82,7 +83,7 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail }: Detai
|
|||||||
placeholder="请输入商品名称"
|
placeholder="请输入商品名称"
|
||||||
onBlur={(e) => {
|
onBlur={(e) => {
|
||||||
const newData = tableData.map((item: any) => {
|
const newData = tableData.map((item: any) => {
|
||||||
if ((item.id && record.id && item.id === record.id) || item.COMMODITY_BARCODE === record.COMMODITY_BARCODE) {
|
if (item.id !== 'addRow' && item.id === record?.id) {
|
||||||
return { ...item, COMMODITY_NAME: e.target.value };
|
return { ...item, COMMODITY_NAME: e.target.value };
|
||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
@ -111,11 +112,11 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail }: Detai
|
|||||||
onBlur={(e) => {
|
onBlur={(e) => {
|
||||||
console.log('tableDatatableDatatableData', tableData);
|
console.log('tableDatatableDatatableData', tableData);
|
||||||
console.log('recordrecordrecordrecord', record);
|
console.log('recordrecordrecordrecord', record);
|
||||||
|
|
||||||
const newData = tableData.map((item: any) => {
|
const newData = tableData.map((item: any) => {
|
||||||
if ((item.id && record.id && item.id === record.id) || item.COMMODITY_BARCODE === record.COMMODITY_BARCODE) {
|
if (item.id !== 'addRow' && item.id === record?.id) {
|
||||||
return { ...item, COMMODITY_BARCODE: e.target.value };
|
return { ...item, COMMODITY_BARCODE: e.target.value };
|
||||||
}
|
}
|
||||||
|
|
||||||
return item;
|
return item;
|
||||||
});
|
});
|
||||||
setTableData(newData);
|
setTableData(newData);
|
||||||
@ -175,7 +176,7 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail }: Detai
|
|||||||
placeholder="请输入商品单位"
|
placeholder="请输入商品单位"
|
||||||
onBlur={(e) => {
|
onBlur={(e) => {
|
||||||
const newData = tableData.map((item: any) => {
|
const newData = tableData.map((item: any) => {
|
||||||
if ((item.id && record.id && item.id === record.id) || item.COMMODITY_BARCODE === record.COMMODITY_BARCODE) {
|
if (item.id !== 'addRow' && item.id === record?.id) {
|
||||||
return { ...item, COMMODITY_UNIT: e.target.value };
|
return { ...item, COMMODITY_UNIT: e.target.value };
|
||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
@ -203,7 +204,7 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail }: Detai
|
|||||||
placeholder="请输入商品规格"
|
placeholder="请输入商品规格"
|
||||||
onBlur={(e) => {
|
onBlur={(e) => {
|
||||||
const newData = tableData.map((item: any) => {
|
const newData = tableData.map((item: any) => {
|
||||||
if ((item.id && record.id && item.id === record.id) || item.COMMODITY_BARCODE === record.COMMODITY_BARCODE) {
|
if (item.id !== 'addRow' && item.id === record?.id) {
|
||||||
return { ...item, COMMODITY_RULE: e.target.value };
|
return { ...item, COMMODITY_RULE: e.target.value };
|
||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
@ -231,12 +232,25 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail }: Detai
|
|||||||
placeholder="请输入市场价"
|
placeholder="请输入市场价"
|
||||||
onBlur={(e) => {
|
onBlur={(e) => {
|
||||||
const newData = tableData.map((item: any) => {
|
const newData = tableData.map((item: any) => {
|
||||||
if ((item.id && record.id && item.id === record.id) || item.COMMODITY_BARCODE === record.COMMODITY_BARCODE) {
|
if (item.id !== 'addRow' && item.id === record?.id) {
|
||||||
return { ...item, COMMODITY_RETAILPRICE: e.target.value };
|
return { ...item, COMMODITY_RETAILPRICE: Number(e.target.value) };
|
||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
});
|
});
|
||||||
|
console.log('newDatanewDatanewDatanewData', JSON.parse(JSON.stringify(newData)));
|
||||||
setTableData(newData);
|
setTableData(newData);
|
||||||
|
// 重新算合计
|
||||||
|
if (parentFormRef) {
|
||||||
|
console.log('newDatanewDatanewDatanewData', newData);
|
||||||
|
|
||||||
|
let COMMODITY_RETAILPRICESUM: number = 0
|
||||||
|
newData.forEach((item: any) => {
|
||||||
|
if (item.id !== 'addRow') {
|
||||||
|
COMMODITY_RETAILPRICESUM += item.COMMODITY_RETAILPRICE ? Number(item.COMMODITY_RETAILPRICE) : 0
|
||||||
|
}
|
||||||
|
})
|
||||||
|
parentFormRef.current.setFieldsValue({ COMMODITY_RETAILPRICE: Number(COMMODITY_RETAILPRICESUM.toFixed(2)) })
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
},
|
},
|
||||||
@ -259,12 +273,23 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail }: Detai
|
|||||||
placeholder="请输入零售价格"
|
placeholder="请输入零售价格"
|
||||||
onBlur={(e) => {
|
onBlur={(e) => {
|
||||||
const newData = tableData.map((item: any) => {
|
const newData = tableData.map((item: any) => {
|
||||||
if ((item.id && record.id && item.id === record.id) || item.COMMODITY_BARCODE === record.COMMODITY_BARCODE) {
|
if (item.id !== 'addRow' && item.id === record?.id) {
|
||||||
return { ...item, COMMODITY_MEMBERPRICE: e.target.value };
|
return { ...item, COMMODITY_MEMBERPRICE: e.target.value };
|
||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
});
|
});
|
||||||
setTableData(newData);
|
setTableData(newData);
|
||||||
|
|
||||||
|
// 重新算合计
|
||||||
|
if (parentFormRef) {
|
||||||
|
let COMMODITY_MEMBERPRICESUM: number = 0
|
||||||
|
newData.forEach((item: any) => {
|
||||||
|
if (item.id !== 'addRow') {
|
||||||
|
COMMODITY_MEMBERPRICESUM += item.COMMODITY_MEMBERPRICE ? Number(item.COMMODITY_MEMBERPRICE) : 0
|
||||||
|
}
|
||||||
|
})
|
||||||
|
parentFormRef.current.setFieldsValue({ COMMODITY_MEMBERPRICE: Number(COMMODITY_MEMBERPRICESUM.toFixed(2)) })
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
},
|
},
|
||||||
@ -287,12 +312,23 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail }: Detai
|
|||||||
placeholder="请输入商品成本"
|
placeholder="请输入商品成本"
|
||||||
onBlur={(e) => {
|
onBlur={(e) => {
|
||||||
const newData = tableData.map((item: any) => {
|
const newData = tableData.map((item: any) => {
|
||||||
if ((item.id && record.id && item.id === record.id) || item.COMMODITY_BARCODE === record.COMMODITY_BARCODE) {
|
if (item.id !== 'addRow' && item.id === record?.id) {
|
||||||
return { ...item, COMMODITY_PURCHASEPRICE: e.target.value };
|
return { ...item, COMMODITY_PURCHASEPRICE: e.target.value };
|
||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
});
|
});
|
||||||
setTableData(newData);
|
setTableData(newData);
|
||||||
|
|
||||||
|
// 重新算合计
|
||||||
|
if (parentFormRef) {
|
||||||
|
let COMMODITY_PURCHASEPRICESUM: number = 0
|
||||||
|
newData.forEach((item: any) => {
|
||||||
|
if (item.id !== 'addRow') {
|
||||||
|
COMMODITY_PURCHASEPRICESUM += item.COMMODITY_PURCHASEPRICE ? Number(item.COMMODITY_PURCHASEPRICE) : 0
|
||||||
|
}
|
||||||
|
})
|
||||||
|
parentFormRef.current.setFieldsValue({ COMMODITY_PURCHASEPRICE: Number(COMMODITY_PURCHASEPRICESUM.toFixed(2)) })
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
},
|
},
|
||||||
@ -317,7 +353,7 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail }: Detai
|
|||||||
placeholder="请输入商品税率"
|
placeholder="请输入商品税率"
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
const newData = tableData.map((item: any) => {
|
const newData = tableData.map((item: any) => {
|
||||||
if ((item.id && record.id && item.id === record.id) || item.COMMODITY_BARCODE === record.COMMODITY_BARCODE) {
|
if (item.id !== 'addRow' && item.id === record?.id) {
|
||||||
return { ...item, DUTY_PARAGRAPH: e };
|
return { ...item, DUTY_PARAGRAPH: e };
|
||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
@ -361,7 +397,7 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail }: Detai
|
|||||||
placeholder="请输入商品税务代码"
|
placeholder="请输入商品税务代码"
|
||||||
onBlur={(e) => {
|
onBlur={(e) => {
|
||||||
const newData = tableData.map((item: any) => {
|
const newData = tableData.map((item: any) => {
|
||||||
if ((item.id && record.id && item.id === record.id) || item.COMMODITY_BARCODE === record.COMMODITY_BARCODE) {
|
if (item.id !== 'addRow' && item.id === record?.id) {
|
||||||
return { ...item, TAX_CODE: e.target.value };
|
return { ...item, TAX_CODE: e.target.value };
|
||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
@ -387,9 +423,26 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail }: Detai
|
|||||||
<a
|
<a
|
||||||
key="delete"
|
key="delete"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
console.log('tableDatatableDatatableData', tableData);
|
console.log('22222', JSON.parse(JSON.stringify(record)));
|
||||||
const newData = tableData.filter((item: any) => item.COMMODITY_BARCODE !== record.COMMODITY_BARCODE && item.id !== 'addRow');
|
console.log('tableData', JSON.parse(JSON.stringify(tableData)));
|
||||||
console.log('newDatanewDatanewData', newData);
|
const newData = tableData.filter((item: any) => item.id !== record.id && item?.id !== 'addRow');
|
||||||
|
|
||||||
|
|
||||||
|
if (parentFormRef) {
|
||||||
|
let COMMODITY_RETAILPRICESUM: number = 0
|
||||||
|
let COMMODITY_MEMBERPRICESUM: number = 0
|
||||||
|
let COMMODITY_PURCHASEPRICESUM: number = 0
|
||||||
|
|
||||||
|
newData.forEach((item: any) => {
|
||||||
|
if (item.id !== 'addRow') {
|
||||||
|
COMMODITY_RETAILPRICESUM += item.COMMODITY_RETAILPRICE ? Number(item.COMMODITY_RETAILPRICE) : 0
|
||||||
|
COMMODITY_MEMBERPRICESUM += item.COMMODITY_MEMBERPRICE ? Number(item.COMMODITY_MEMBERPRICE) : 0
|
||||||
|
COMMODITY_PURCHASEPRICESUM += item.COMMODITY_PURCHASEPRICE ? Number(item.COMMODITY_PURCHASEPRICE) : 0
|
||||||
|
}
|
||||||
|
})
|
||||||
|
parentFormRef.current.setFieldsValue({ COMMODITY_RETAILPRICE: Number(COMMODITY_RETAILPRICESUM.toFixed(2)), COMMODITY_MEMBERPRICE: Number(COMMODITY_MEMBERPRICESUM.toFixed(2)), COMMODITY_PURCHASEPRICE: Number(COMMODITY_PURCHASEPRICESUM.toFixed(2)) })
|
||||||
|
}
|
||||||
|
|
||||||
setTableData([...newData, {
|
setTableData([...newData, {
|
||||||
id: "addRow",
|
id: "addRow",
|
||||||
}]);
|
}]);
|
||||||
@ -405,7 +458,8 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail }: Detai
|
|||||||
// 暴露表格数据
|
// 暴露表格数据
|
||||||
useImperativeHandle(onRef, () => ({
|
useImperativeHandle(onRef, () => ({
|
||||||
tableData,
|
tableData,
|
||||||
setIsClickAdd
|
setIsClickAdd,
|
||||||
|
isClickAdd
|
||||||
}));
|
}));
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@ -1,29 +1,39 @@
|
|||||||
.pageTable-leftnav{
|
.pageTable-leftnav {
|
||||||
.leftSelectBox{
|
.leftSelectBox {
|
||||||
position: relative;
|
position: relative;
|
||||||
.searchIcon{
|
|
||||||
width: 20px;
|
.searchIcon {
|
||||||
height: 20px;
|
width: 20px;
|
||||||
cursor: pointer;
|
height: 20px;
|
||||||
margin-right: 15px;
|
cursor: pointer;
|
||||||
}
|
margin-right: 15px;
|
||||||
.fixedBox{
|
}
|
||||||
position: absolute;
|
|
||||||
width: 275px;
|
.refreshIcon {
|
||||||
background: #fff;
|
width: 18px;
|
||||||
right: -10px;
|
height: 18px;
|
||||||
box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
|
cursor: pointer;
|
||||||
border-radius: 8px;
|
margin-right: 15px;
|
||||||
box-sizing: border-box;
|
}
|
||||||
padding: 12px;
|
|
||||||
z-index: 2;
|
.fixedBox {
|
||||||
display: flex;
|
position: absolute;
|
||||||
align-items: center;
|
width: 275px;
|
||||||
.noBottom{
|
background: #fff;
|
||||||
.ant-form-item{
|
right: -10px;
|
||||||
margin-bottom: 0!important;
|
box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
|
||||||
}
|
border-radius: 8px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 12px;
|
||||||
|
z-index: 2;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.noBottom {
|
||||||
|
.ant-form-item {
|
||||||
|
margin-bottom: 0 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
@ -742,13 +742,35 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
|
|
||||||
const handleAddUpdate = async (res: any, type?: string) => {
|
const handleAddUpdate = async (res: any, type?: string) => {
|
||||||
let itemList = setSelectSetMealItemsRef.current.tableData
|
let itemList = setSelectSetMealItemsRef.current.tableData
|
||||||
if (itemList && itemList.length > 0) {
|
let isClickAdd = setSelectSetMealItemsRef.current.isClickAdd
|
||||||
|
|
||||||
|
console.log('itemListitemList', itemList);
|
||||||
|
// 判断一下是不是套餐商品 即itemList 长度为1时 id是否为addRow
|
||||||
|
let isCombo: boolean = false
|
||||||
|
if (itemList && itemList.length > 1) {
|
||||||
|
isCombo = true
|
||||||
|
} else if (itemList && itemList.length === 1) {
|
||||||
|
if (itemList[0].id !== 'addRow') {
|
||||||
|
isCombo = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isCombo && isClickAdd) {
|
||||||
|
// 拿到市场价、零售价格、商品成本的 合计值
|
||||||
|
let COMMODITY_RETAILPRICESUM: number = 0
|
||||||
|
let COMMODITY_MEMBERPRICESUM: number = 0
|
||||||
|
let COMMODITY_PURCHASEPRICESUM: number = 0
|
||||||
|
|
||||||
|
|
||||||
itemList = itemList.filter((item: any) => item.id !== 'addRow')
|
itemList = itemList.filter((item: any) => item.id !== 'addRow')
|
||||||
// 判断条码 是否都填了
|
// 判断条码 是否都填了
|
||||||
let isCodeAllOK: boolean = true
|
let isCodeAllOK: boolean = true
|
||||||
itemList.forEach((item: any) => {
|
itemList.forEach((item: any) => {
|
||||||
|
COMMODITY_RETAILPRICESUM += Number(item.COMMODITY_RETAILPRICE)
|
||||||
|
COMMODITY_MEMBERPRICESUM += Number(item.COMMODITY_MEMBERPRICE)
|
||||||
|
COMMODITY_PURCHASEPRICESUM += Number(item.COMMODITY_PURCHASEPRICE)
|
||||||
// item.USERDEFINEDTYPE_ID = item.USERDEFINEDTYPE_ID && item.USERDEFINEDTYPE_ID.length > 0 ? item.USERDEFINEDTYPE_ID.toString() : item.USERDEFINEDTYPE_ID
|
// item.USERDEFINEDTYPE_ID = item.USERDEFINEDTYPE_ID && item.USERDEFINEDTYPE_ID.length > 0 ? item.USERDEFINEDTYPE_ID.toString() : item.USERDEFINEDTYPE_ID
|
||||||
item.COMMODITY_TYPE = 4000
|
item.COMMODITY_TYPE = 5000
|
||||||
item.UPPER_STATE = 1
|
item.UPPER_STATE = 1
|
||||||
item.PROVINCE_CODE = currentUser?.ProvinceCode
|
item.PROVINCE_CODE = currentUser?.ProvinceCode
|
||||||
item.COMMODITY_STATE = 1
|
item.COMMODITY_STATE = 1
|
||||||
@ -759,12 +781,33 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
isCodeAllOK = false
|
isCodeAllOK = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!isCodeAllOK) {
|
if (!isCodeAllOK) {
|
||||||
message.error('请填写完整的套餐内单品信息!');
|
message.error('请填写完整的套餐内单品信息!');
|
||||||
handleConfirmLoading(false)
|
handleConfirmLoading(false)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if (Number(COMMODITY_RETAILPRICESUM.toFixed(2)) !== Number(res.COMMODITY_RETAILPRICE.toFixed(2))) {
|
||||||
|
message.error('套餐内单品市场价合计值与套餐市场价不一致');
|
||||||
|
handleConfirmLoading(false)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Number(COMMODITY_MEMBERPRICESUM.toFixed(2)) !== Number(res.COMMODITY_MEMBERPRICE.toFixed(2))) {
|
||||||
|
message.error('套餐内单品零售价合计值与套餐零售价不一致');
|
||||||
|
handleConfirmLoading(false)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Number(COMMODITY_PURCHASEPRICESUM.toFixed(2)) !== Number(res.COMMODITY_PURCHASEPRICE.toFixed(2))) {
|
||||||
|
message.error('套餐内单品成本价合计值与套餐成本价不一致');
|
||||||
|
handleConfirmLoading(false)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let req: any = {}
|
let req: any = {}
|
||||||
if (currentRow?.USERDEFINEDTYPE_ID && type !== 'saveAs') {
|
if (currentRow?.USERDEFINEDTYPE_ID && type !== 'saveAs') {
|
||||||
req = {
|
req = {
|
||||||
@ -784,11 +827,18 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
COMMODITY_TYPE: 4000,
|
COMMODITY_TYPE: 4000,
|
||||||
COMMODITY_STATE: 1,
|
COMMODITY_STATE: 1,
|
||||||
USERDEFINEDTYPE_ID: "",
|
USERDEFINEDTYPE_ID: "",
|
||||||
|
DATAFORMAT: currentUser?.UserPattern === 4000 ? 1 : res?.DATAFORMAT,
|
||||||
OPERATE_TIME: moment().format('YYYY-MM-DD HH:mm:ss'),
|
OPERATE_TIME: moment().format('YYYY-MM-DD HH:mm:ss'),
|
||||||
UPPER_DATE: res.UPPER_DATE && res.UPPER_DATE.length > 0 ? moment(res.UPPER_DATE[0]).format('YYYY-MM-DD HH:mm:ss') : "",
|
UPPER_DATE: res.UPPER_DATE && res.UPPER_DATE.length > 0 ? moment(res.UPPER_DATE[0]).format('YYYY-MM-DD HH:mm:ss') : "",
|
||||||
OFF_DATE: res.UPPER_DATE && res.UPPER_DATE.length > 0 ? moment(res.UPPER_DATE[1]).format('YYYY-MM-DD HH:mm:ss') : "",
|
OFF_DATE: res.UPPER_DATE && res.UPPER_DATE.length > 0 ? moment(res.UPPER_DATE[1]).format('YYYY-MM-DD HH:mm:ss') : "",
|
||||||
WECHATAPP_APPID: "wxee018fb96955552a",
|
WECHATAPP_APPID: "wxee018fb96955552a",
|
||||||
WECHATAPPSIGN_NAME: "彩云驿出行"
|
WECHATAPPSIGN_NAME: "彩云驿出行",
|
||||||
|
COMMODITY_EN: res.COMMODITY_EN || "",
|
||||||
|
COMMODITY_INDEX: res.COMMODITY_INDEX || "",
|
||||||
|
COMMODITY_POINT: res.COMMODITY_POINT || "",
|
||||||
|
REMINDER_DAY: res.REMINDER_DAY || "",
|
||||||
|
LIMIT_TOTALCOUNT: res.LIMIT_TOTALCOUNT || "",
|
||||||
|
LIMIT_DAILYCOUNT: res.LIMIT_DAILYCOUNT || "",
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
req = {
|
req = {
|
||||||
@ -805,20 +855,26 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
OPERATE_PERSON: currentUser?.Name,
|
OPERATE_PERSON: currentUser?.Name,
|
||||||
SELLER_ID: currentUser?.ID,
|
SELLER_ID: currentUser?.ID,
|
||||||
COMMODITY_TYPE: 4000,
|
COMMODITY_TYPE: 4000,
|
||||||
|
DATAFORMAT: currentUser?.UserPattern === 4000 ? 1 : res?.DATAFORMAT,
|
||||||
COMMODITY_STATE: 1,
|
COMMODITY_STATE: 1,
|
||||||
USERDEFINEDTYPE_ID: "",
|
USERDEFINEDTYPE_ID: "",
|
||||||
OPERATE_TIME: moment().format('YYYY-MM-DD HH:mm:ss'),
|
OPERATE_TIME: moment().format('YYYY-MM-DD HH:mm:ss'),
|
||||||
UPPER_DATE: res.UPPER_DATE && res.UPPER_DATE.length > 0 ? moment(res.UPPER_DATE[0]).format('YYYY-MM-DD HH:mm:ss') : "",
|
UPPER_DATE: res.UPPER_DATE && res.UPPER_DATE.length > 0 ? moment(res.UPPER_DATE[0]).format('YYYY-MM-DD HH:mm:ss') : "",
|
||||||
OFF_DATE: res.UPPER_DATE && res.UPPER_DATE.length > 0 ? moment(res.UPPER_DATE[1]).format('YYYY-MM-DD HH:mm:ss') : "",
|
OFF_DATE: res.UPPER_DATE && res.UPPER_DATE.length > 0 ? moment(res.UPPER_DATE[1]).format('YYYY-MM-DD HH:mm:ss') : "",
|
||||||
WECHATAPP_APPID: "wxee018fb96955552a",
|
WECHATAPP_APPID: "wxee018fb96955552a",
|
||||||
WECHATAPPSIGN_NAME: "彩云驿出行"
|
WECHATAPPSIGN_NAME: "彩云驿出行",
|
||||||
|
COMMODITY_EN: res.COMMODITY_EN || "",
|
||||||
|
COMMODITY_INDEX: res.COMMODITY_INDEX || "",
|
||||||
|
COMMODITY_POINT: res.COMMODITY_POINT || "",
|
||||||
|
REMINDER_DAY: res.REMINDER_DAY || "",
|
||||||
|
LIMIT_TOTALCOUNT: res.LIMIT_TOTALCOUNT || "",
|
||||||
|
LIMIT_DAILYCOUNT: res.LIMIT_DAILYCOUNT || "",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 同步商品数据 因为添加了套餐数据 最方便的方法 就是在当前基础上 换接口 所以换入参
|
// 同步商品数据 因为添加了套餐数据 最方便的方法 就是在当前基础上 换接口 所以换入参
|
||||||
const newReq: any = {
|
const newReq: any = {
|
||||||
commodityModel: req,
|
commodityModel: req,
|
||||||
singleCommodityList: itemList && itemList.length > 0 ? itemList : ''
|
singleCommodityList: isCombo && isClickAdd ? itemList && itemList.length > 0 ? itemList : '' : ''
|
||||||
}
|
}
|
||||||
console.log('newReqnewReq', newReq);
|
console.log('newReqnewReq', newReq);
|
||||||
|
|
||||||
@ -1087,6 +1143,18 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const addDisabledForParent = (list: any[]): any[] => {
|
||||||
|
return list.map(item => {
|
||||||
|
const hasChildren = Array.isArray(item.children) && item.children.length > 0;
|
||||||
|
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
disabled: hasChildren, // ⭐ 只新增这一行
|
||||||
|
children: hasChildren ? addDisabledForParent(item.children) : item.children,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div style={{ backgroundColor: '#fff', display: 'flex' }}>
|
<div style={{ backgroundColor: '#fff', display: 'flex' }}>
|
||||||
@ -1156,6 +1224,11 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
]
|
]
|
||||||
res = formatTreeData(JSON.parse(JSON.stringify(data.List)), [], enumList, [COMMODITYNATUREList, PAY_METHODList, UPPER_STATEList, COMMODITY_STATEList], [])
|
res = formatTreeData(JSON.parse(JSON.stringify(data.List)), [], enumList, [COMMODITYNATUREList, PAY_METHODList, UPPER_STATEList, COMMODITY_STATEList], [])
|
||||||
console.log('resresresres', res);
|
console.log('resresresres', res);
|
||||||
|
let nameList: any = []
|
||||||
|
res.forEach((item: any) => {
|
||||||
|
nameList.push(item.COMMODITY_NAME)
|
||||||
|
})
|
||||||
|
console.log('nameListnameList', nameList);
|
||||||
setReqDetailList(res)
|
setReqDetailList(res)
|
||||||
return { data: data.List, success: true, total: data.TotalCount }
|
return { data: data.List, success: true, total: data.TotalCount }
|
||||||
}
|
}
|
||||||
@ -1303,6 +1376,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
setDetailImgList([])
|
setDetailImgList([])
|
||||||
setRelevanceCouponList([])
|
setRelevanceCouponList([])
|
||||||
setSelectRelevanceId([])
|
setSelectRelevanceId([])
|
||||||
|
setComboCommodityDetail([])
|
||||||
// setBRAND_NAMEList([])
|
// setBRAND_NAMEList([])
|
||||||
}}
|
}}
|
||||||
footer={<div style={{ width: '100%', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
|
footer={<div style={{ width: '100%', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
|
||||||
@ -1457,7 +1531,12 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
let data: any = res.commodityModel
|
let data: any = res.commodityModel
|
||||||
|
|
||||||
setCurrentRowDetail(data)
|
setCurrentRowDetail(data)
|
||||||
setComboCommodityDetail(res.singleCommodityList || [])
|
// 处理一下 多个id字段 让商品条码等于id字段 这样就可以有唯一行号了
|
||||||
|
let list: any = res.singleCommodityList && res.singleCommodityList.length > 0 ? JSON.parse(JSON.stringify(res.singleCommodityList)) : []
|
||||||
|
list.forEach((item: any) => {
|
||||||
|
item.id = item.COMMODITY_BARCODE
|
||||||
|
})
|
||||||
|
setComboCommodityDetail(list || [])
|
||||||
|
|
||||||
let mainImgList: any = []
|
let mainImgList: any = []
|
||||||
let headerImgList: any = []
|
let headerImgList: any = []
|
||||||
@ -1518,7 +1597,8 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
} else {
|
} else {
|
||||||
return {
|
return {
|
||||||
OPERATE_PERSON: currentUser?.Name,
|
OPERATE_PERSON: currentUser?.Name,
|
||||||
UPPER_STATE: currentUser?.SupplierID ? 0 : ""
|
UPPER_STATE: currentUser?.SupplierID ? 0 : "",
|
||||||
|
MERCHANTS_ID: currentUser?.UserPattern === 4000 ? `${currentUser?.SupplierName}-${currentUser?.SupplierID}` : "",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1561,7 +1641,27 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
<ProFormSelect
|
<ProFormSelect
|
||||||
name="COMMODITY_NATURE"
|
name="COMMODITY_NATURE"
|
||||||
label="商品性质"
|
label="商品性质"
|
||||||
options={COMMODITYNATUREList}
|
// options={COMMODITYNATUREList}
|
||||||
|
request={async () => {
|
||||||
|
if (COMMODITYNATUREList && COMMODITYNATUREList.length > 0) {
|
||||||
|
return COMMODITYNATUREList
|
||||||
|
} else {
|
||||||
|
const COMMODITYNATURE = await getFieldEnumTree({ FieldExplainField: 'COMMODITY_NATURE', FieldEnumStatus: true })
|
||||||
|
if (COMMODITYNATURE && COMMODITYNATURE.length > 0) {
|
||||||
|
const obj: any = {}
|
||||||
|
const list: any = []
|
||||||
|
COMMODITYNATURE.forEach((item: any) => {
|
||||||
|
list.push({ label: item.label, value: item.value })
|
||||||
|
obj[item.value] = item.label
|
||||||
|
})
|
||||||
|
session.set('COMMODITYNATUREList', list);
|
||||||
|
session.set('COMMODITYNATUREObj', obj);
|
||||||
|
session.set('COMMODITYNATURETree', COMMODITYNATURE);
|
||||||
|
return list
|
||||||
|
}
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
}}
|
||||||
rules={[
|
rules={[
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
@ -1625,7 +1725,15 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
name="USERDEFINEDTYPE_ID"
|
name="USERDEFINEDTYPE_ID"
|
||||||
label="商品分类"
|
label="商品分类"
|
||||||
request={async () => {
|
request={async () => {
|
||||||
return leftTreeData
|
if (leftTreeData && leftTreeData.length > 0) {
|
||||||
|
let list: any = JSON.parse(JSON.stringify(leftTreeData))
|
||||||
|
list = addDisabledForParent(list)
|
||||||
|
console.log('listlist', list);
|
||||||
|
|
||||||
|
return list
|
||||||
|
} else {
|
||||||
|
return []
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
fieldProps={{
|
fieldProps={{
|
||||||
fieldNames: {
|
fieldNames: {
|
||||||
@ -1635,6 +1743,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
showSearch: true,
|
showSearch: true,
|
||||||
multiple: true, // 支持多选
|
multiple: true, // 支持多选
|
||||||
allowClear: true, // 允许清除和删除
|
allowClear: true, // 允许清除和删除
|
||||||
|
treeDefaultExpandAll: true,
|
||||||
filterTreeNode: (input, node) =>
|
filterTreeNode: (input, node) =>
|
||||||
(node.USERDEFINEDTYPE_NAME || '').toLowerCase().includes(input.toLowerCase())
|
(node.USERDEFINEDTYPE_NAME || '').toLowerCase().includes(input.toLowerCase())
|
||||||
}}
|
}}
|
||||||
@ -1701,6 +1810,12 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
<ProFormText
|
<ProFormText
|
||||||
name="COMMODITY_BARCODE"
|
name="COMMODITY_BARCODE"
|
||||||
label="商品条码"
|
label="商品条码"
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "请输入商品条码!"
|
||||||
|
}
|
||||||
|
]}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={6}>
|
<Col span={6}>
|
||||||
@ -1777,7 +1892,27 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
<ProFormSelect
|
<ProFormSelect
|
||||||
name="PAY_METHOD"
|
name="PAY_METHOD"
|
||||||
label="消费模式"
|
label="消费模式"
|
||||||
options={PAYMETHODList}
|
// options={PAYMETHODList}
|
||||||
|
request={async () => {
|
||||||
|
if (PAYMETHODList && PAYMETHODList.length > 0) {
|
||||||
|
return PAYMETHODList
|
||||||
|
} else {
|
||||||
|
const PAYMETHOD = await getFieldEnumTree({ FieldExplainField: 'PAY_METHOD' })
|
||||||
|
if (PAYMETHOD && PAYMETHOD.length > 0) {
|
||||||
|
const obj: any = {}
|
||||||
|
const list: any = []
|
||||||
|
PAYMETHOD.forEach((item: any) => {
|
||||||
|
list.push({ label: item.label, value: item.value })
|
||||||
|
obj[item.value] = item.label
|
||||||
|
})
|
||||||
|
session.set('PAYMETHODList', list);
|
||||||
|
session.set('PAYMETHODObj', obj);
|
||||||
|
session.set('PAYMETHODTree', PAYMETHOD);
|
||||||
|
return list
|
||||||
|
}
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
}}
|
||||||
rules={[
|
rules={[
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
@ -1790,7 +1925,27 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
<ProFormSelect
|
<ProFormSelect
|
||||||
name="DUTY_PARAGRAPH"
|
name="DUTY_PARAGRAPH"
|
||||||
label="商品税率"
|
label="商品税率"
|
||||||
options={DUTYPARAGRAPHList}
|
// options={DUTYPARAGRAPHList}
|
||||||
|
request={async () => {
|
||||||
|
if (DUTYPARAGRAPHList && DUTYPARAGRAPHList.length > 0) {
|
||||||
|
return DUTYPARAGRAPHList
|
||||||
|
} else {
|
||||||
|
const DUTYPARAGRAPH = await getFieldEnumTree({ FieldExplainField: 'DUTY_PARAGRAPH' })
|
||||||
|
if (DUTYPARAGRAPH && DUTYPARAGRAPH.length > 0) {
|
||||||
|
const obj: any = {}
|
||||||
|
const list: any = []
|
||||||
|
DUTYPARAGRAPH.forEach((item: any) => {
|
||||||
|
list.push({ label: item.label, value: item.value })
|
||||||
|
obj[item.value] = item.label
|
||||||
|
})
|
||||||
|
session.set('DUTYPARAGRAPHList', list);
|
||||||
|
session.set('DUTYPARAGRAPHObj', obj);
|
||||||
|
session.set('DUTYPARAGRAPHTree', DUTYPARAGRAPH);
|
||||||
|
return list
|
||||||
|
}
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
}}
|
||||||
rules={[
|
rules={[
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
@ -1857,7 +2012,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
|
|
||||||
{/* 若是一个套餐商品 那么这里就要有一个录入套餐商品的地方 */}
|
{/* 若是一个套餐商品 那么这里就要有一个录入套餐商品的地方 */}
|
||||||
<Col span={24}>
|
<Col span={24}>
|
||||||
<SelectSetMealItems onRef={setSelectSetMealItemsRef} leftTreeData={leftTreeData} comboCommodityDetail={comboCommodityDetail} />
|
<SelectSetMealItems onRef={setSelectSetMealItemsRef} leftTreeData={leftTreeData} comboCommodityDetail={comboCommodityDetail} parentFormRef={formRef} />
|
||||||
</Col>
|
</Col>
|
||||||
|
|
||||||
<Divider orientation="left">配送信息</Divider>
|
<Divider orientation="left">配送信息</Divider>
|
||||||
@ -1890,7 +2045,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
<Divider orientation="left">上架信息</Divider>
|
<Divider orientation="left">上架信息</Divider>
|
||||||
<Col span={12}>
|
<Col span={12}>
|
||||||
<ProFormDateRangePicker
|
<ProFormDateRangePicker
|
||||||
width={'lg'}
|
width={'100%'}
|
||||||
name="UPPER_DATE"
|
name="UPPER_DATE"
|
||||||
label="上架时间"
|
label="上架时间"
|
||||||
// rules={[{
|
// rules={[{
|
||||||
@ -1917,7 +2072,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
label="小程序"
|
label="小程序"
|
||||||
options={[
|
options={[
|
||||||
{ label: "彩云驿", value: 37 },
|
{ label: "彩云驿", value: 37 },
|
||||||
{ label: "彩云驿商城", value: 38 },
|
{ label: "彩云驿出行", value: 38 },
|
||||||
]}
|
]}
|
||||||
rules={[
|
rules={[
|
||||||
{
|
{
|
||||||
@ -1946,23 +2101,28 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
disabled={currentUser?.SupplierID || currentUser?.UserPattern === 4000 ? true : false}
|
disabled={currentUser?.SupplierID || currentUser?.UserPattern === 4000 ? true : false}
|
||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={6}>
|
{
|
||||||
<ProFormSelect
|
currentUser?.UserPattern === 4000 ?
|
||||||
name="DATAFORMAT"
|
'' :
|
||||||
label="数据形式"
|
<Col span={6}>
|
||||||
options={[
|
<ProFormSelect
|
||||||
{ label: "正式数据", value: 1 },
|
name="DATAFORMAT"
|
||||||
{ label: "测试数据", value: 0 },
|
label="数据形式"
|
||||||
{ label: "品诺数据", value: 2 },
|
options={[
|
||||||
]}
|
{ label: "正式数据", value: 1 },
|
||||||
rules={[
|
{ label: "测试数据", value: 0 },
|
||||||
{
|
{ label: "品诺数据", value: 2 },
|
||||||
required: true,
|
]}
|
||||||
message: "请选择数据形式!"
|
rules={[
|
||||||
}
|
{
|
||||||
]}
|
required: true,
|
||||||
/>
|
message: "请选择数据形式!"
|
||||||
</Col>
|
}
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
}
|
||||||
|
|
||||||
<Col span={6}>
|
<Col span={6}>
|
||||||
<ProFormText
|
<ProFormText
|
||||||
name="OPERATE_PERSON"
|
name="OPERATE_PERSON"
|
||||||
@ -2014,6 +2174,14 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
|
|||||||
handlePreview(1)
|
handlePreview(1)
|
||||||
},
|
},
|
||||||
fileList: mainImgList, // 绑定 fileList
|
fileList: mainImgList, // 绑定 fileList
|
||||||
|
customRequest: ({ file, onSuccess }) => {
|
||||||
|
// 自定义上传,不实际发送请求
|
||||||
|
setTimeout(() => {
|
||||||
|
if (onSuccess) {
|
||||||
|
onSuccess({});
|
||||||
|
}
|
||||||
|
}, 0);
|
||||||
|
},
|
||||||
onChange: async (info: any) => {
|
onChange: async (info: any) => {
|
||||||
if (info.file.status === 'removed') {
|
if (info.file.status === 'removed') {
|
||||||
const index = mainImgList.findIndex(n => n.uid === info.file.uid);
|
const index = mainImgList.findIndex(n => n.uid === info.file.uid);
|
||||||
|
|||||||
@ -349,7 +349,7 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
{
|
{
|
||||||
title: "商品条码",
|
title: "商品条码",
|
||||||
width: 150,
|
width: 150,
|
||||||
dataIndex: "商品条码",
|
dataIndex: "CommodityBarcode",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "供货商",
|
title: "供货商",
|
||||||
|
|||||||
@ -51,13 +51,6 @@ function resizeToHalfDimensions(
|
|||||||
resolve: (file: File) => void,
|
resolve: (file: File) => void,
|
||||||
reject: (error: Error) => void
|
reject: (error: Error) => void
|
||||||
) {
|
) {
|
||||||
// 判断是否需要压缩:只有当长或宽任意一边大于500px时才压缩
|
|
||||||
if (img.width <= 500 && img.height <= 500) {
|
|
||||||
console.log(`图片尺寸 ${img.width}x${img.height} 不大于500px,无需压缩,返回原图`);
|
|
||||||
resolve(originalFile);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const canvas = document.createElement('canvas');
|
const canvas = document.createElement('canvas');
|
||||||
const ctx = canvas.getContext('2d');
|
const ctx = canvas.getContext('2d');
|
||||||
|
|
||||||
@ -91,8 +84,11 @@ function resizeToHalfDimensions(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 保持原始文件名不变,避免服务器端根据文件名做特殊处理
|
// 创建新的文件名,添加_resize_half后缀
|
||||||
const newFileName = originalFile.name;
|
const fileNameParts = originalFile.name.split('.');
|
||||||
|
const extension = fileNameParts.pop();
|
||||||
|
const fileNameWithoutExtension = fileNameParts.join('.');
|
||||||
|
const newFileName = `${fileNameWithoutExtension}_half.${extension}`;
|
||||||
|
|
||||||
// 创建压缩后的文件对象
|
// 创建压缩后的文件对象
|
||||||
const resizedFile = new File([blob], newFileName, {
|
const resizedFile = new File([blob], newFileName, {
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
// 由 scripts/writeVersion.js 自动生成
|
// 由 scripts/writeVersion.js 自动生成
|
||||||
export const VERSION = "4.5.95";
|
export const VERSION = "4.5.111";
|
||||||
export const GIT_HASH = "1f17ff8";
|
export const GIT_HASH = "70a3b9e";
|
||||||
export const BUILD_TIME = "2025-12-22T03:06:07.263Z";
|
export const BUILD_TIME = "2026-01-08T08:04:25.225Z";
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user