This commit is contained in:
ylj20011123 2026-01-24 21:46:20 +08:00
parent 772dc231fd
commit 83cb30fc12
8 changed files with 606 additions and 428 deletions

BIN
dist.zip

Binary file not shown.

View File

@ -1,6 +1,6 @@
{ {
"name": "ant-design-pro", "name": "ant-design-pro",
"version": "4.5.121", "version": "4.5.128",
"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": {

View File

@ -123,12 +123,28 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
width: 150, width: 150,
ellipsis: true, ellipsis: true,
}, },
{
dataIndex: 'COMMODITY_UNIT',
title: '商品单位',
align: 'center',
hideInSearch: true,
width: 120,
ellipsis: true,
},
{
dataIndex: 'COMMODITY_RULE',
title: '商品规格',
align: 'center',
hideInSearch: true,
width: 120,
ellipsis: true,
},
{ {
dataIndex: 'ORDER_COUNT', dataIndex: 'ORDER_COUNT',
title: '数量', title: '数量',
align: 'center', align: 'center',
hideInSearch: true, hideInSearch: true,
width: 150, width: 120,
ellipsis: true, ellipsis: true,
}, },
{ {
@ -136,7 +152,7 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
title: '单价', title: '单价',
align: 'center', align: 'center',
hideInSearch: true, hideInSearch: true,
width: 150, width: 120,
ellipsis: true, ellipsis: true,
}, },
{ {
@ -144,9 +160,17 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
title: '金额', title: '金额',
align: 'center', align: 'center',
hideInSearch: true, hideInSearch: true,
width: 150, width: 120,
ellipsis: true, ellipsis: true,
}, },
{
dataIndex: 'SALEDETAIL_DESC',
title: '备注',
align: 'center',
hideInSearch: true,
width: 150,
// ellipsis: true,
}
] ]
// 商品发货 // 商品发货
@ -384,7 +408,6 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
formRef={modalRef} formRef={modalRef}
submitter={false} submitter={false}
request={async () => { request={async () => {
console.log('currentRow', currentRow);
if (currentRow?.SALEBILL_ID || currentRow?.OrderId) { if (currentRow?.SALEBILL_ID || currentRow?.OrderId) {
const req: any = { const req: any = {
SALEBILLId: currentRow?.SALEBILL_ID || currentRow?.OrderId SALEBILLId: currentRow?.SALEBILL_ID || currentRow?.OrderId
@ -398,7 +421,6 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
PageIndex: 1, PageIndex: 1,
PageSize: 10, PageSize: 10,
}) })
console.log('dasdas44444', addressData);
let addressObj: any = addressData.List[0] let addressObj: any = addressData.List[0]
// 物流公司和快递单号的回显 // 物流公司和快递单号的回显
@ -420,17 +442,6 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
setLogisticsList([{ id: '1', company: '', trackingNumber: '' }]); setLogisticsList([{ id: '1', company: '', trackingNumber: '' }]);
} }
} }
console.log('32131', {
...data,
ORDER_PERSON: currentRow?.AddressInfo ? `${currentRow?.AddressInfo.USER_NAME}${currentRow?.AddressInfo?.MOBILEPHONE ? `${currentRow?.AddressInfo?.MOBILEPHONE}` : ""}` || "" : "",
ORDER_ADDRESS: `${addressObj?.ADDRESS || ""}${addressObj?.DOORPLATE || ""}`,
CURRENT_POINT: currentRow?.CURRENT_POINT || "",
ORDER_DATE: currentRow?.ORDER_DATE ? moment(currentRow?.ORDER_DATE).format('YYYY-MM-DD HH:mm:ss') : '',
CHANNEL_TYPE: currentRow?.CHANNEL_TYPE || "",
});
return { return {
...data, ...data,
ORDER_PERSON: currentRow?.AddressInfo ? `${currentRow?.AddressInfo.USER_NAME}${currentRow?.AddressInfo?.MOBILEPHONE ? `${currentRow?.AddressInfo?.MOBILEPHONE}` : ""}` || "" : "", ORDER_PERSON: currentRow?.AddressInfo ? `${currentRow?.AddressInfo.USER_NAME}${currentRow?.AddressInfo?.MOBILEPHONE ? `${currentRow?.AddressInfo?.MOBILEPHONE}` : ""}` || "" : "",
@ -438,7 +449,9 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
CURRENT_POINT: currentRow?.CURRENT_POINT || "", CURRENT_POINT: currentRow?.CURRENT_POINT || "",
ORDER_DATE: currentRow?.ORDER_DATE ? moment(currentRow?.ORDER_DATE).format('YYYY-MM-DD HH:mm:ss') : '', ORDER_DATE: currentRow?.ORDER_DATE ? moment(currentRow?.ORDER_DATE).format('YYYY-MM-DD HH:mm:ss') : '',
CHANNEL_TYPE: currentRow?.CHANNEL_TYPE || "", CHANNEL_TYPE: currentRow?.CHANNEL_TYPE || "",
TAKE_TYPE: data.TAKE_TYPE === 1000 ? "自提" : data.TAKE_TYPE === 3000 ? '免发货' : '邮寄' TAKE_TYPE: data.TAKE_TYPE === 1000 ? "自提" : data.TAKE_TYPE === 3000 ? '免发货' : '邮寄',
SALEBILL_STATE: currentRow?.SALEBILL_STATE || data?.SALEBILL_STATE,
SALEBILL_CODELIST: currentRow?.SALEBILL_CODE || ''
} }
} else { } else {
const req: any = { const req: any = {
@ -449,14 +462,12 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
PageSize: 1, PageSize: 1,
} }
const data = await handeGetSALEBILLList(req) const data = await handeGetSALEBILLList(req)
console.log('dasdas22222', data);
if (data.List && data.List.length > 0) { if (data.List && data.List.length > 0) {
let obj: any = data.List[0] let obj: any = data.List[0]
const req: any = { const req: any = {
SALEBILLId: obj?.SALEBILL_ID || currentRow?.OrderId SALEBILLId: obj?.SALEBILL_ID || currentRow?.OrderId
} }
const res = await handeGetSALEBILLDetail(req) const res = await handeGetSALEBILLDetail(req)
console.log('dasdas33333', res);
// 查地址信息 // 查地址信息
const addressData = await handeGetSALEADDRESSList({ const addressData = await handeGetSALEADDRESSList({
searchParameter: { searchParameter: {
@ -465,15 +476,7 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
PageIndex: 1, PageIndex: 1,
PageSize: 10, PageSize: 10,
}) })
console.log('dasdas44444', addressData);
let addressObj: any = addressData.List && addressData.List.length > 0 ? addressData.List[0] : {} let addressObj: any = addressData.List && addressData.List.length > 0 ? addressData.List[0] : {}
console.log('dmsakldmas', {
...res,
ORDER_PERSON: currentRow?.AddressInfo ? `${currentRow?.AddressInfo.USER_NAME}${currentRow?.AddressInfo?.MOBILEPHONE ? `${currentRow?.AddressInfo?.MOBILEPHONE}` : ""}` || "" : "",
ORDER_ADDRESS: `${addressObj?.ADDRESS || ""}${addressObj?.DOORPLATE || ""}`,
CHANNEL_TYPE: currentRow?.CHANNEL_TYPE || "",
});
return { return {
...res, ...res,
ORDER_PERSON: currentRow?.AddressInfo ? `${currentRow?.AddressInfo.USER_NAME}${currentRow?.AddressInfo?.MOBILEPHONE ? `${currentRow?.AddressInfo?.MOBILEPHONE}` : ""}` || "" : "", ORDER_PERSON: currentRow?.AddressInfo ? `${currentRow?.AddressInfo.USER_NAME}${currentRow?.AddressInfo?.MOBILEPHONE ? `${currentRow?.AddressInfo?.MOBILEPHONE}` : ""}` || "" : "",
@ -481,7 +484,9 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
CURRENT_POINT: currentRow?.CURRENT_POINT || "", CURRENT_POINT: currentRow?.CURRENT_POINT || "",
ORDER_DATE: res?.ORDER_DATE ? moment(res?.ORDER_DATE).format('YYYY-MM-DD HH:mm:ss') : '', ORDER_DATE: res?.ORDER_DATE ? moment(res?.ORDER_DATE).format('YYYY-MM-DD HH:mm:ss') : '',
CHANNEL_TYPE: currentRow?.CHANNEL_TYPE || "", CHANNEL_TYPE: currentRow?.CHANNEL_TYPE || "",
TAKE_TYPE: res.TAKE_TYPE === 1000 ? "自提" : res.TAKE_TYPE === 3000 ? '免发货' : '邮寄' TAKE_TYPE: res.TAKE_TYPE === 1000 ? "自提" : res.TAKE_TYPE === 3000 ? '免发货' : '邮寄',
SALEBILL_STATE: currentRow?.SALEBILL_STATE || data?.SALEBILL_STATE,
SALEBILL_CODELIST: currentRow?.SALEBILL_CODE || ''
} }
} else { } else {
message.error('当前订单数据异常,请联系管理员!') message.error('当前订单数据异常,请联系管理员!')
@ -510,21 +515,92 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
</div> </div>
<div className="bookingOrderModalCenter"> <div className="bookingOrderModalCenter">
{/* <div className="smallTitle">订单信息</div> */} < Row gutter={8}>
{/* <div className="smallTitle">订单信息</div> */}
<Row gutter={8}> {
detailType === 'food' ? '' :
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"ORDER_PERSON"}
label={"收货人"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
}
<Col span={8} className="memberInfoDetailItem"> <Col span={8} className="memberInfoDetailItem">
<ProFormText <ProFormText
name={"SALEBILL_CODE"} name={"ORDER_DATE"}
label={"订单编码"} label={"下单时间"}
readonly readonly
style={{ marginBottom: '16px' }} style={{ marginBottom: '16px' }}
/> />
</Col> </Col>
<Col span={8} className="memberInfoDetailItem"> <Col span={8} className="memberInfoDetailItem">
<ProFormText <ProFormText
name={"ORDER_DATE"} name={"SALEBILL_CODELIST"}
label={"下单时间"} label={"订单编码"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={8} className="memberInfoDetailItem SALEBILLSTATE">
<ProFormText
name={"ORDER_AMOUNT"}
label={"订单金额"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={8} className="memberInfoDetailItem SALEBILLSTATE">
<ProFormText
name={"PAY_AMOUNT"}
label={"实付金额"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"COUPON_AMOUNT"}
label={"优惠金额"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"TOTAL_COUNT"}
label={"商品件数"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={8} className="memberInfoDetailItem">
<ProFormSelect
// name={"PAY_METHOD"}
name={"CHANNEL_TYPE"}
label={"支付方式"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
{
detailType === 'food' ? '' :
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"COST_AMOUNT"}
label={"成本金额"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
}
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"SALEBILL_CODE"}
label={"支付单号"}
readonly readonly
style={{ marginBottom: '16px' }} style={{ marginBottom: '16px' }}
/> />
@ -566,33 +642,48 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
/> />
} }
</Col> </Col>
<Col span={8} className="memberInfoDetailItem">
<Col span={8} className="memberInfoDetailItem SALEBILLSTATE"> <ProFormSelect
<ProFormText name={"COMMENT_STATE"}
name={"ORDER_AMOUNT"} label={"订单评价状态"}
label={"订单金额"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={8} className="memberInfoDetailItem SALEBILLSTATE">
<ProFormText
name={"PAY_AMOUNT"}
label={"实付金额"}
readonly readonly
style={{ marginBottom: '16px' }} style={{ marginBottom: '16px' }}
options={[
{ label: "未评价", value: 0 },
{ label: "已评价", value: 1 },
]}
/> />
</Col> </Col>
<Col span={8} className="memberInfoDetailItem"> <Col span={8} className="memberInfoDetailItem">
<ProFormText <ProFormSelect
name={"COUPON_AMOUNT"} name={"TAKE_TYPE"}
label={"优惠金额"} label={"发货模式"}
readonly readonly
style={{ marginBottom: '16px' }} style={{ marginBottom: '16px' }}
/> />
</Col> </Col>
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"CURRENT_POINT"}
label={"获得积分"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"CONSUME_SCORE"}
label={"获得成长值"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
{ {
detailType === 'food' ? detailType === 'food' ?
<> <>
@ -638,62 +729,14 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
</Col> </Col>
</> : </> :
<> <>
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"COST_AMOUNT"}
label={"成本金额"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"ORDER_PERSON"}
label={"收货人"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"ORDER_ADDRESS"}
label={"收货地址"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
</> </>
} }
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"TOTAL_COUNT"}
label={"商品件数"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={8} className="memberInfoDetailItem">
<ProFormSelect
// name={"PAY_METHOD"}
name={"CHANNEL_TYPE"}
label={"支付方式"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={8} className="memberInfoDetailItem">
<ProFormSelect
name={"COMMENT_STATE"}
label={"订单评价状态"}
readonly
style={{ marginBottom: '16px' }}
options={[
{ label: "未评价", value: 0 },
{ label: "已评价", value: 1 },
]}
/>
</Col>
{ {
detailType === 'food' ? detailType === 'food' ?
@ -719,128 +762,122 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
} }
<Col span={8} className="memberInfoDetailItem"> {/* <Col span={8} className="memberInfoDetailItem">
<ProFormText <ProFormText
name={"RECORD_COUNT"} name={"RECORD_COUNT"}
label={"商品种类"} label={"商品种类"}
readonly readonly
style={{ marginBottom: '16px' }} style={{ marginBottom: '16px' }}
/> />
</Col> </Col> */}
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"CURRENT_POINT"}
label={"获得积分"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"CONSUME_SCORE"}
label={"获得成长值"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
<Col span={8} className="memberInfoDetailItem">
<ProFormSelect
name={"TAKE_TYPE"}
label={"发货模式"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
{ {
showShipment ? detailType === 'food' ? '' :
<> <Col span={24} className="memberInfoDetailItem">
<Col span={24} className="memberInfoDetailItem"> <ProFormText
<div style={{ marginBottom: '16px' }}> name={"ORDER_ADDRESS"}
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: '12px' }}> label={"收货地址"}
<span style={{ fontWeight: 'bold', fontSize: '14px' }}></span> readonly
<Button style={{ marginBottom: '16px' }}
type="dashed" />
icon={<PlusOutlined />} </Col>
size="small"
onClick={addLogistics}
style={{ borderStyle: 'dashed' }}
>
</Button>
</div>
{logisticsList.map((logistics, index) => (
<div key={logistics.id} style={{ marginBottom: '12px', padding: '12px', border: '1px solid #d9d9d9', borderRadius: '6px', backgroundColor: '#fafafa' }}>
<Row gutter={8} align="middle">
<Col span={1}>
<span style={{ fontWeight: 'bold', color: '#666' }}>{index + 1}.</span>
</Col>
<Col span={8}>
<div style={{ marginBottom: '8px' }}>
<label style={{ color: '#666', fontSize: '14px', marginBottom: '4px', display: 'block' }}>
</label>
<input
type="text"
placeholder="请输入物流公司"
value={logistics.company}
onChange={(e) => updateLogistics(logistics.id, 'company', e.target.value)}
style={{
width: '100%',
padding: '4px 11px',
border: '1px solid #d9d9d9',
borderRadius: '6px',
fontSize: '14px'
}}
/>
</div>
</Col>
<Col span={8}>
<div style={{ marginBottom: '8px' }}>
<label style={{ color: '#666', fontSize: '14px', marginBottom: '4px', display: 'block' }}>
</label>
<input
type="text"
placeholder="请输入快递单号"
value={logistics.trackingNumber}
onChange={(e) => updateLogistics(logistics.id, 'trackingNumber', e.target.value)}
style={{
width: '100%',
padding: '4px 11px',
border: '1px solid #d9d9d9',
borderRadius: '6px',
fontSize: '14px'
}}
/>
</div>
</Col>
<Col span={6}>
<Button
type="text"
danger
icon={<DeleteOutlined />}
onClick={() => removeLogistics(logistics.id)}
style={{ marginTop: '24px' }}
disabled={logisticsList.length === 1}
>
</Button>
</Col>
</Row>
</div>
))}
</div>
</Col>
</> : ""
} }
<Col span={8} className="memberInfoDetailItem">
<ProFormText
name={"OrderDesc"}
label={"订单备注"}
readonly
style={{ marginBottom: '16px' }}
/>
</Col>
</Row> </Row>
{
showShipment ?
<>
<Col span={24} className="memberInfoDetailItem">
<div style={{ marginBottom: '16px' }}>
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: '12px' }}>
<span style={{ fontWeight: 'bold', fontSize: '14px' }}></span>
<Button
type="dashed"
icon={<PlusOutlined />}
size="small"
onClick={addLogistics}
style={{ borderStyle: 'dashed' }}
>
</Button>
</div>
{logisticsList.map((logistics, index) => (
<div key={logistics.id} style={{ marginBottom: '12px', padding: '12px', border: '1px solid #d9d9d9', borderRadius: '6px', backgroundColor: '#fafafa' }}>
<Row gutter={8} align="middle">
<Col span={1}>
<span style={{ fontWeight: 'bold', color: '#666' }}>{index + 1}.</span>
</Col>
<Col span={8}>
<div style={{ marginBottom: '8px' }}>
<label style={{ color: '#666', fontSize: '14px', marginBottom: '4px', display: 'block' }}>
</label>
<input
type="text"
placeholder="请输入物流公司"
value={logistics.company}
onChange={(e) => updateLogistics(logistics.id, 'company', e.target.value)}
style={{
width: '100%',
padding: '4px 11px',
border: '1px solid #d9d9d9',
borderRadius: '6px',
fontSize: '14px'
}}
/>
</div>
</Col>
<Col span={8}>
<div style={{ marginBottom: '8px' }}>
<label style={{ color: '#666', fontSize: '14px', marginBottom: '4px', display: 'block' }}>
</label>
<input
type="text"
placeholder="请输入快递单号"
value={logistics.trackingNumber}
onChange={(e) => updateLogistics(logistics.id, 'trackingNumber', e.target.value)}
style={{
width: '100%',
padding: '4px 11px',
border: '1px solid #d9d9d9',
borderRadius: '6px',
fontSize: '14px'
}}
/>
</div>
</Col>
<Col span={6}>
<Button
type="text"
danger
icon={<DeleteOutlined />}
onClick={() => removeLogistics(logistics.id)}
style={{ marginTop: '24px' }}
disabled={logisticsList.length === 1}
>
</Button>
</Col>
</Row>
</div>
))}
</div>
</Col>
</> : ""
}
</div> </div>
</ProForm> </ProForm>
@ -922,9 +959,12 @@ const OrderDetailModal = ({ modalVisible, handleCloseModal, currentRow, detailTy
<tr> <tr>
<td colSpan={2} style={{ textAlign: 'center', fontWeight: 'bold' }}></td> <td colSpan={2} style={{ textAlign: 'center', fontWeight: 'bold' }}></td>
<td /> <td />
<td />
<td />
<td style={{ textAlign: 'center', fontWeight: 'bold' }}>{orderDetail?.TOTAL_COUNT || orderDetail?.ORDER_COUNT || 0}</td> <td style={{ textAlign: 'center', fontWeight: 'bold' }}>{orderDetail?.TOTAL_COUNT || orderDetail?.ORDER_COUNT || 0}</td>
<td /> <td />
<td style={{ textAlign: 'center', fontWeight: 'bold' }}>{orderDetail?.ORDER_AMOUNT?.toFixed(2) || '0.00'}</td> <td style={{ textAlign: 'center', fontWeight: 'bold' }}>{orderDetail?.ORDER_AMOUNT?.toFixed(2) || '0.00'}</td>
<td />
</tr> </tr>
) )
}} }}

View File

@ -8,7 +8,7 @@ import type { ActionType } from "@ant-design/pro-table";
import ProTable from "@ant-design/pro-table"; import ProTable from "@ant-design/pro-table";
import PageTitleBox from "@/components/PageTitleBox"; import PageTitleBox from "@/components/PageTitleBox";
import moment from 'moment' import moment from 'moment'
import { handeGetCOMPANYList, handeGetMEMBERSHIPVIPList, handeGetMERCHANTSList, handeGetNestingAUTOTYPEList, handeGetSALEBILLList, handeGetSaleBillWholeList, handeGetSALEDETAILList } from "../service"; import { handeGetCOMPANYList, handeGetMEMBERSHIPVIPList, handeGetMERCHANTSList, handeGetNestingAUTOTYPEList, handeGetOnlineBillAccountList, handeGetSALEBILLList, handeGetSaleBillWholeList, handeGetSALEDETAILList } from "../service";
import './style.less' import './style.less'
import Draggable from "react-draggable"; import Draggable from "react-draggable";
import ProForm, { ProFormSelect, ProFormText } from "@ant-design/pro-form"; import ProForm, { ProFormSelect, ProFormText } from "@ant-design/pro-form";
@ -59,6 +59,10 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser, isComponent?: boolea
}) })
// 获取导出数据的loading
const [getExportDataLoading, setGetExportDataLoading] = useState<boolean>(false);
const onDraggaleStart = (event, uiData) => { const onDraggaleStart = (event, uiData) => {
const { clientWidth, clientHeight } = window.document.documentElement; const { clientWidth, clientHeight } = window.document.documentElement;
const targetRect = draggleRef.current?.getBoundingClientRect(); const targetRect = draggleRef.current?.getBoundingClientRect();
@ -139,20 +143,19 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser, isComponent?: boolea
initialValue: '0', initialValue: '0',
hideInTable: true, hideInTable: true,
}, },
// { {
// title: "支付方式", title: "支付方式",
// dataIndex: "PAYMETHOD", dataIndex: "CHANNEL_TYPE",
// valueType: "select", valueType: "select",
// valueEnum: { valueEnum: {
// "0": "全部", "0": "全部",
// "支付宝": "支付宝", "工会余额": "工会余额",
// "微信": "微信", "组合支付": "组合支付",
// "积分兑换": "积分兑换", "微信": "微信"
// "余额支付": "余额支付", },
// }, initialValue: '0',
// initialValue: '0', hideInTable: true,
// hideInTable: true, },
// },
{ {
title: "序号", title: "序号",
dataIndex: "index", dataIndex: "index",
@ -332,7 +335,7 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser, isComponent?: boolea
// "余额支付": "余额支付", // "余额支付": "余额支付",
// }, // },
width: 120, width: 120,
// hideInSearch: true, hideInSearch: true,
ellipsis: true, ellipsis: true,
align: "center", align: "center",
}, },
@ -589,189 +592,156 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser, isComponent?: boolea
setCurrentRow(undefined); setCurrentRow(undefined);
} }
//导出的columns 普通
const exportColumnsNomal: any = [ // 导出excel的表格内容
const exportColumns: any = [
{ {
title: "订单编号", title: "订单编码",
dataIndex: "", width: 250,
dataIndex: "OrderCode",
}, },
{ {
title: "会员名称", title: "会员名称",
dataIndex: "", width: 150,
dataIndex: "OrderPerson",
}, },
{ {
title: "收货人", title: "收货人",
dataIndex: "", width: 150,
dataIndex: "ReceiverName",
}, },
{ {
title: "收货人电话", title: "收货人电话",
dataIndex: "", width: 150,
dataIndex: "ReceiverPhone",
}, },
{ {
title: "收货地址", title: "收货地址",
dataIndex: "", width: 250,
dataIndex: "ReceiverAddress",
}, },
{ {
title: "物流信息", title: "物流信息",
dataIndex: "", width: 250,
dataIndex: "LogisticsInfo",
}, },
{ {
title: "商品名称", title: "商品名称",
dataIndex: "", width: 250,
dataIndex: "CommodityName",
}, },
{ {
title: "商品条码", title: "商品条码",
dataIndex: "", width: 150,
dataIndex: "CommodityBarcode",
}, },
{ {
title: "供货商", title: "供货商",
dataIndex: "", width: 250,
dataIndex: "SupplierName",
}, },
{ {
title: "商品规格", title: "商品规格",
dataIndex: "", width: 120,
dataIndex: "CommodityRule",
}, },
{
title: "商品备注",
width: 120,
dataIndex: "DetailDesc",
},
{ {
title: "下单数量", title: "下单数量",
dataIndex: "", width: 120,
dataIndex: "OrderCount",
valueType: "digit",
}, },
{ {
title: "采购单价", title: "采购单价",
dataIndex: "", width: 120,
dataIndex: "PurchaseTaxPrice",
valueType: "digit",
}, },
{ {
title: "采购合计金额", title: "采购合计金额",
dataIndex: "", width: 120,
dataIndex: "PurchaseTotalTaxAmount",
valueType: "digit",
}, },
{ {
title: "采购不含税合计金额", title: "采购不含税合计金额",
dataIndex: "", width: 120,
dataIndex: "PurchaseTotalAmount",
valueType: "digit",
}, },
{ {
title: "销售单价", title: "销售单价",
dataIndex: "", width: 120,
dataIndex: "SaleTaxPrice",
valueType: "digit",
}, },
{ {
title: "销售合计金额", title: "销售合计金额",
dataIndex: "", width: 120,
dataIndex: "SaleTotalTaxAmount",
valueType: "digit",
}, },
{ {
title: "销售不含税合计金额", title: "销售不含税合计金额",
dataIndex: "", width: 120,
}, dataIndex: "SaleTotalAmount",
{ valueType: "digit",
title: "平台手续费",
dataIndex: "",
},
{
title: "财务到账含税金额",
dataIndex: "",
}, },
{ {
title: "税率", title: "税率",
dataIndex: "", width: 120,
}, dataIndex: "TaxRate",
{
title: "单位名称",
dataIndex: "",
}, },
{ {
title: "付款积分", title: "付款积分",
dataIndex: "", width: 120,
dataIndex: "BalancePayment",
}, },
{ {
title: "实付总金额", title: "实付总金额",
dataIndex: "", width: 120,
dataIndex: "PayAmount",
valueType: "digit",
}, },
{ {
title: "支付方式", title: "支付方式",
dataIndex: "", width: 150,
dataIndex: "PaymentMethod",
}, },
{ {
title: "支付时间", title: "支付时间",
dataIndex: "", width: 180,
dataIndex: "PaymentTime",
}, },
{ {
title: "支付订单号", title: "支付订单号",
dataIndex: "", width: 150,
dataIndex: "PaymentOrderCode",
}, },
{ {
title: "订单状态", title: "订单状态",
dataIndex: "", width: 150,
dataIndex: "OrderStatus",
}, },
{ {
title: "工会订单", title: "工会订单",
dataIndex: "", width: 150,
} dataIndex: "IsUnionOrder",
] },
{
title: "订单备注",
width: 120,
dataIndex: "OrderDesc",
},
//导出的columns 财务
const exportColumns: any = [
{
title: "支付订单号",
dataIndex: "PAYMENT_CODE",
},
{
title: "会员名称",
dataIndex: "ORDER_PERSON",
},
{
title: "支付时间",
dataIndex: "ORDER_DATE",
},
{
title: "下单数量",
dataIndex: "TOTAL_COUNT",
},
{
title: "采购合计金额",
dataIndex: "COST_AMOUNT",
},
{
title: "采购不含税合计金额",
dataIndex: "",
},
{
title: "销售合计金额",
dataIndex: "",
},
{
title: "销售不含税合计金额",
dataIndex: "",
},
{
title: "平台手续费",
dataIndex: "",
},
{
title: "财务到账含税金额",
dataIndex: "",
},
{
title: "单位名称",
dataIndex: "OWNERUNIT_NAME",
},
{
title: "付款积分",
dataIndex: "",
},
{
title: "实付总金额",
dataIndex: "",
},
{
title: "支付方式",
dataIndex: "",
},
{
title: "订单状态",
dataIndex: "",
},
{
title: "工会订单",
dataIndex: "",
},
] ]
const exportTable = (e) => { const exportTable = (e) => {
@ -817,6 +787,73 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser, isComponent?: boolea
setUserList(list) setUserList(list)
} }
// 跟交易台账保持一致的 导出Excel
const handleGetExportData = async () => {
setGetExportDataLoading(true)
const req: any = {
ExportType: 1,
OwnerUnitId: "911",
CompanyId: searchParams?.CompanyId || "",
MerchantId: currentUser?.SupplierID || "",
SaleBillState: searchParams?.OrderStatus === '0' ? '' : (searchParams?.OrderStatus || ""),
SaleBillType: searchParams?.OrderType === '0' ? '' : (searchParams?.OrderType || ""),
ChannelType: searchParams?.PaymentMethod || "",
StartDate: searchParams?.ORDER_DATE_Start || "",
EndDate: searchParams?.ORDER_DATE_End || "",
// SearchKeyName: "SupplierName,CommodityName,OrderCode",
// SearchKeyValue: searchParams?.searchText || "",
// SortStr: ""
}
console.log('reqreqreq', req);
const data = await handeGetOnlineBillAccountList(req)
console.log('djskadjas', data);
setGetExportDataLoading(false)
if (data && data.length > 0) {
// 用于导出的最后数据
let res: any = []
let enumList: any = ["PaymentMethod", "OrderStatus", "IsUnionOrder"]
let PaymentMethodList: any = [
{ label: "支付宝", value: "支付宝" },
{ label: "微信", value: "微信" },
{ label: "积分兑换", value: "积分兑换" },
{ label: "余额支付", value: "余额支付" },
]
let OrderStatusList: any = [
{ label: "订单待支付", value: 1005 },
{ label: "订单待发货", value: 1010 },
{ label: "订单已发货", value: 2010 },
{ label: "订单已完成", value: 3000 },
{ label: "退款申请中", value: 8000 },
{ label: "订单已退款", value: 8900 },
{ label: "订单已关闭", value: 9000 },
{ label: "订单已撤销", value: 9999 },
]
let IsUnionOrder: any = [
{ label: "是", value: 1 },
{ label: "否", value: 0 }
]
res = formatTreeData(JSON.parse(JSON.stringify(data)), [], enumList, [PaymentMethodList, OrderStatusList, IsUnionOrder], [])
console.log('resresres', res);
exportXlsxFromProColumnsExcelJS(exportColumns,
res,
`${`商城订单报表${searchParams?.ORDER_DATE_Start}-${searchParams?.ORDER_DATE_End}`}`,
{
topTitle: `${`商城订单报表${searchParams?.ORDER_DATE_Start}-${searchParams?.ORDER_DATE_End}`}`
// footerItems: [
// { label: "审核", value: "", labelSpan: 1, valueSpan: 2, labelAlign: "left", align: "left", startCol: 7 },
// { label: "验收", value: "", labelSpan: 1, valueSpan: 2, labelAlign: "left", align: "left", startCol: 12 },
// { label: "经办", value: "", labelSpan: 1, valueSpan: 2, labelAlign: "left", align: "left", startCol: 15 }
// ]
}
)
} else {
message.error('暂无导出数据!')
}
}
return ( return (
<div> <div>
{ {
@ -895,9 +932,9 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser, isComponent?: boolea
ORDER_DATE_Start: params?.ORDER_DATE_Start || "", ORDER_DATE_Start: params?.ORDER_DATE_Start || "",
ORDER_DATE_End: params?.ORDER_DATE_End || "", ORDER_DATE_End: params?.ORDER_DATE_End || "",
SALEBILL_STATES: params?.orderStatus === "0" ? "1010,2010,3000" : params?.orderStatus, SALEBILL_STATES: params?.orderStatus === "0" ? "1010,2010,3000" : params?.orderStatus,
CHANNEL_TYPE: params?.PAY_METHOD === "0" ? "" : params?.PAY_METHOD, CHANNEL_TYPE: params?.CHANNEL_TYPE === "0" ? "" : params?.CHANNEL_TYPE,
SearchKeyValue: params?.searchText || "", SearchKeyValue: params?.searchText || "",
MERCHANTS_IDS: params?.MERCHANTS_IDS || "", MERCHANTS_IDS: currentUser?.UserPattern === 4000 ? currentUser?.SupplierID : params?.MERCHANTS_IDS || "",
MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : "", MEMBERSHIP_TARGET: params?.MEMBERSHIP_TARGET && params?.MEMBERSHIP_TARGET.length > 0 ? params?.MEMBERSHIP_TARGET.toString() : "",
PAYMETHOD: params?.PAYMETHOD || "", PAYMETHOD: params?.PAYMETHOD || "",
COMPANY_IDS: params?.COMPANY_IDS || "", COMPANY_IDS: params?.COMPANY_IDS || "",
@ -940,18 +977,23 @@ const MallOrderManage: React.FC<{ currentUser: CurrentUser, isComponent?: boolea
<Button <Button
key="new" key="new"
type="primary" type="primary"
loading={getExportDataLoading}
onClick={(e) => { onClick={(e) => {
if (reqDetailList && reqDetailList.length > 0) { // if (reqDetailList && reqDetailList.length > 0) {
setShowLoading(true) // setShowLoading(true)
setTimeout(() => { // setTimeout(() => {
setShowExportTable(true) // setShowExportTable(true)
setTimeout(() => { // setTimeout(() => {
exportTable(e) // exportTable(e)
}, 100) // }, 100)
}, 100) // }, 100)
} else { // } else {
message.error('暂无数据可导出!') // message.error('暂无数据可导出!')
} // }
// 2026-01-24 20:59 说是导出跟交易台账页面的 导出Excel相同
handleGetExportData()
}} }}
> >
excel excel

View File

@ -20,9 +20,11 @@ type DetailProps = {
onRef?: any onRef?: any
comboCommodityDetail?: any // 查询到的套餐数据 comboCommodityDetail?: any // 查询到的套餐数据
parentFormRef?: any // 父级的表单实例 parentFormRef?: any // 父级的表单实例
parentRow?: any // 父级商品信息
currentUser: any // 当前用户信息
}; };
const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail, parentFormRef }: DetailProps) => { const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail, parentFormRef, parentRow, currentUser }: DetailProps) => {
// 判断用户是否点击了 添加套餐商品的按钮 // 判断用户是否点击了 添加套餐商品的按钮
const [isClickAdd, setIsClickAdd] = useState<boolean>(comboCommodityDetail && comboCommodityDetail.length > 0 ? true : false); const [isClickAdd, setIsClickAdd] = useState<boolean>(comboCommodityDetail && comboCommodityDetail.length > 0 ? true : false);
// 表格数据 // 表格数据
@ -239,18 +241,23 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail, parentF
}); });
console.log('newDatanewDatanewDatanewData', JSON.parse(JSON.stringify(newData))); console.log('newDatanewDatanewDatanewData', JSON.parse(JSON.stringify(newData)));
setTableData(newData); setTableData(newData);
// 重新算合计
if (parentFormRef) {
console.log('newDatanewDatanewDatanewData', newData);
let COMMODITY_RETAILPRICESUM: number = 0 if (currentUser?.UserPattern === 4000 && parentRow?.UPPER_STATE === 1) {
newData.forEach((item: any) => { } else {
if (item.id !== 'addRow') { // 重新算合计
COMMODITY_RETAILPRICESUM += item.COMMODITY_RETAILPRICE ? Number(item.COMMODITY_RETAILPRICE) : 0 if (parentFormRef) {
} console.log('newDatanewDatanewDatanewData', newData);
})
parentFormRef.current.setFieldsValue({ COMMODITY_RETAILPRICE: Number(COMMODITY_RETAILPRICESUM.toFixed(2)) }) 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)) })
}
} }
}} }}
/> />
}, },
@ -279,18 +286,21 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail, parentF
return item; return item;
}); });
setTableData(newData); setTableData(newData);
if (currentUser?.UserPattern === 4000 && parentRow?.UPPER_STATE === 1) {
// 重新算合计 } else {
if (parentFormRef) { // 重新算合计
let COMMODITY_MEMBERPRICESUM: number = 0 if (parentFormRef) {
newData.forEach((item: any) => { let COMMODITY_MEMBERPRICESUM: number = 0
if (item.id !== 'addRow') { newData.forEach((item: any) => {
COMMODITY_MEMBERPRICESUM += item.COMMODITY_MEMBERPRICE ? Number(item.COMMODITY_MEMBERPRICE) : 0 if (item.id !== 'addRow') {
} COMMODITY_MEMBERPRICESUM += item.COMMODITY_MEMBERPRICE ? Number(item.COMMODITY_MEMBERPRICE) : 0
}) }
parentFormRef.current.setFieldsValue({ COMMODITY_MEMBERPRICE: Number(COMMODITY_MEMBERPRICESUM.toFixed(2)) }) })
parentFormRef.current.setFieldsValue({ COMMODITY_MEMBERPRICE: Number(COMMODITY_MEMBERPRICESUM.toFixed(2)) })
}
} }
}} }
}
/> />
}, },
}, },
@ -319,15 +329,18 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail, parentF
}); });
setTableData(newData); setTableData(newData);
// 重新算合计 if (currentUser?.UserPattern === 4000 && parentRow?.UPPER_STATE === 1) {
if (parentFormRef) { } else {
let COMMODITY_PURCHASEPRICESUM: number = 0 // 重新算合计
newData.forEach((item: any) => { if (parentFormRef) {
if (item.id !== 'addRow') { let COMMODITY_PURCHASEPRICESUM: number = 0
COMMODITY_PURCHASEPRICESUM += item.COMMODITY_PURCHASEPRICE ? Number(item.COMMODITY_PURCHASEPRICE) : 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)) }) }
})
parentFormRef.current.setFieldsValue({ COMMODITY_PURCHASEPRICE: Number(COMMODITY_PURCHASEPRICESUM.toFixed(2)) })
}
} }
}} }}
/> />
@ -427,22 +440,23 @@ const SelectSetMealItems = ({ leftTreeData, onRef, comboCommodityDetail, parentF
console.log('tableData', JSON.parse(JSON.stringify(tableData))); console.log('tableData', JSON.parse(JSON.stringify(tableData)));
const newData = tableData.filter((item: any) => item.id !== record.id && item?.id !== 'addRow'); const newData = tableData.filter((item: any) => item.id !== record.id && item?.id !== 'addRow');
if (currentUser?.UserPattern === 4000 && parentRow?.UPPER_STATE === 1) {
} else {
if (parentFormRef) {
let COMMODITY_RETAILPRICESUM: number = 0
let COMMODITY_MEMBERPRICESUM: number = 0
let COMMODITY_PURCHASEPRICESUM: number = 0
if (parentFormRef) { newData.forEach((item: any) => {
let COMMODITY_RETAILPRICESUM: number = 0 if (item.id !== 'addRow') {
let COMMODITY_MEMBERPRICESUM: number = 0 COMMODITY_RETAILPRICESUM += item.COMMODITY_RETAILPRICE ? Number(item.COMMODITY_RETAILPRICE) : 0
let COMMODITY_PURCHASEPRICESUM: number = 0 COMMODITY_MEMBERPRICESUM += item.COMMODITY_MEMBERPRICE ? Number(item.COMMODITY_MEMBERPRICE) : 0
COMMODITY_PURCHASEPRICESUM += item.COMMODITY_PURCHASEPRICE ? Number(item.COMMODITY_PURCHASEPRICE) : 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)), COMMODITY_MEMBERPRICE: Number(COMMODITY_MEMBERPRICESUM.toFixed(2)), COMMODITY_PURCHASEPRICE: Number(COMMODITY_PURCHASEPRICESUM.toFixed(2)) })
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",
}]); }]);

View File

@ -88,6 +88,8 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
const [leftTreeData, setLeftTreeData] = useState<any>() const [leftTreeData, setLeftTreeData] = useState<any>()
// 多规格 // 多规格
const [showMoreSpecs, setShowMoreSpecs] = useState<boolean>(false) const [showMoreSpecs, setShowMoreSpecs] = useState<boolean>(false)
// 多规格的确认加载
const [showMoreSpecsLoading, setShowMoreSpecsLoading] = useState<boolean>(false)
// 新增规格的 悬浮框 // 新增规格的 悬浮框
const [showAddSpecsModal, setShowAddSpecsModal] = useState<boolean>(false) const [showAddSpecsModal, setShowAddSpecsModal] = useState<boolean>(false)
// 树相关的属性和方法 // 树相关的属性和方法
@ -725,7 +727,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
ellipsis: true, ellipsis: true,
render: (_, record) => { render: (_, record) => {
return ( return (
<Space> currentUser?.UserPattern === 4000 && currentRow?.UPPER_STATE === 1 ? '' : <Space>
<Popconfirm <Popconfirm
title="确认删除该商品规格嘛?" title="确认删除该商品规格嘛?"
onConfirm={async () => { onConfirm={async () => {
@ -884,7 +886,9 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
item.OWNERUNIT_NAME = currentUser?.OwnerUnitName item.OWNERUNIT_NAME = currentUser?.OwnerUnitName
if (!item.COMMODITY_NAME || !item.COMMODITY_BARCODE || !item.COMMODITY_UNIT || !item.COMMODITY_RULE || if (!item.COMMODITY_NAME || !item.COMMODITY_BARCODE || !item.COMMODITY_UNIT || !item.COMMODITY_RULE ||
!item.COMMODITY_MEMBERPRICE || !item.COMMODITY_PURCHASEPRICE || !item.DUTY_PARAGRAPH || !item.TAX_CODE) { !item.COMMODITY_MEMBERPRICE || !item.COMMODITY_PURCHASEPRICE || !item.DUTY_PARAGRAPH || !item.TAX_CODE) {
isCodeAllOK = false if (item.DUTY_PARAGRAPH !== 0) {
isCodeAllOK = false
}
} }
}) })
@ -916,7 +920,6 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
console.log('isComboisCombo', isCombo); console.log('isComboisCombo', isCombo);
console.log('isClickAddisClickAdd', isClickAdd); console.log('isClickAddisClickAdd', isClickAdd);
let req: any = {} let req: any = {}
if (currentRow?.USERDEFINEDTYPE_ID && type !== 'saveAs') { if (currentRow?.USERDEFINEDTYPE_ID && type !== 'saveAs') {
req = { req = {
@ -993,7 +996,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
await handleUploadShopImg(res, data.Result_Data?.commodityModel) await handleUploadShopImg(res, data.Result_Data?.commodityModel)
handleSetlogSave(`${currentRow?.USERDEFINEDTYPE_ID ? '更新' : '新增'}商品【${data.Result_Data?.COMMODITY_NAME}`) handleSetlogSave(`${currentRow?.USERDEFINEDTYPE_ID ? '更新' : '新增'}商品【${data.Result_Data?.commodityModel.COMMODITY_NAME}`)
message.success(currentRow ? "同步成功!" : "新增成功!") message.success(currentRow ? "同步成功!" : "新增成功!")
setCurrentRow(undefined) setCurrentRow(undefined)
@ -1027,6 +1030,10 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
session.set("USERDEFINEDTYPEList", data) session.set("USERDEFINEDTYPEList", data)
list = data list = data
} }
console.log('listlist', list);
console.log('datadatadata', data);
let resPid: any = [] let resPid: any = []
if (list && list.length > 0) { if (list && list.length > 0) {
let obj: any = {} let obj: any = {}
@ -1042,11 +1049,13 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
// 可能存在多个大类的情况 // 可能存在多个大类的情况
let UserDefinedTypeIdsList = data.Result_Data?.commodityModel?.UserDefinedTypeIds.split(',') let UserDefinedTypeIdsList = data.Result_Data?.commodityModel?.UserDefinedTypeIds.split(',')
console.log('UserDefinedTypeIdsListUserDefinedTypeIdsList', UserDefinedTypeIdsList);
console.log('objobjobj', obj);
for (let key in obj) { for (let key in obj) {
if (UserDefinedTypeIdsList && UserDefinedTypeIdsList.length > 0) { if (UserDefinedTypeIdsList && UserDefinedTypeIdsList.length > 0) {
UserDefinedTypeIdsList.forEach((item: any) => { UserDefinedTypeIdsList.forEach((item: any) => {
if (obj[key].indexOf(Number(item)) !== -1) { if (obj[key].indexOf(Number(item)) !== -1 || Number(item) === Number(key)) {
// resPid = key // resPid = key
resPid.push(key) resPid.push(key)
} }
@ -1057,6 +1066,8 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
// } // }
} }
} }
console.log('resPidresPid', resPid);
if (resPid && resPid.length > 0) { if (resPid && resPid.length > 0) {
for (let i = 0; i < resPid.length; i++) { for (let i = 0; i < resPid.length; i++) {
handlecsyncWeChatGetMallGoodsInfo({ appId: 'wxee018fb96955552a', userdefinedTypeId: resPid[i] }) handlecsyncWeChatGetMallGoodsInfo({ appId: 'wxee018fb96955552a', userdefinedTypeId: resPid[i] })
@ -1490,7 +1501,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
setComboCommodityDetail([]) setComboCommodityDetail([])
// setBRAND_NAMEList([]) // setBRAND_NAMEList([])
}} }}
footer={currentUser?.UserPattern === 4000 && currentRow?.UPPER_STATE === 1 ? '' : <div style={{ width: '100%', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> footer={<div style={{ width: '100%', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
<div style={{ display: 'flex', alignItems: 'center' }}> <div style={{ display: 'flex', alignItems: 'center' }}>
<Button type={'primary'} onClick={() => { <Button type={'primary'} onClick={() => {
// setIsClickAdd(true) // setIsClickAdd(true)
@ -1501,27 +1512,33 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
setSelectRelevanceId(data && data.length > 0 && data[0] ? data : []) setSelectRelevanceId(data && data.length > 0 && data[0] ? data : [])
setAssociatedCouponsModal(true) setAssociatedCouponsModal(true)
}}></Button> }}></Button>
{ {
currentRow ? currentRow ?
<div> <div>
<Button type={"primary"} onClick={() => { <Button type={"primary"} onClick={() => {
setShowMoreSpecs(true) setShowMoreSpecs(true)
}}></Button> }}></Button>
{
<Popconfirm currentUser?.UserPattern === 4000 && currentRow?.UPPER_STATE === 1 ? '' :
title="确认删除该商品?" <Popconfirm
onConfirm={async (e: any) => { title="确认删除该商品?"
await handelDelete(currentRow?.COMMODITY_ID); onConfirm={async (e: any) => {
}} await handelDelete(currentRow?.COMMODITY_ID);
> }}
<Button danger> >
<Button danger>
</Button>
</Popconfirm> </Button>
</Popconfirm>
}
</div> </div>
: "" : ""
} }
</div> </div>
{/* 供应商不能编辑上架的商品判断添加 因为要显示多规格管理 所以不能在父级加 只能这样加 */}
<div> <div>
<Button loading={confirmLoading} onClick={() => { <Button loading={confirmLoading} onClick={() => {
handleConfirmLoading(true) handleConfirmLoading(true)
@ -1645,7 +1662,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
// 处理一下 多个id字段 让商品条码等于id字段 这样就可以有唯一行号了 // 处理一下 多个id字段 让商品条码等于id字段 这样就可以有唯一行号了
let list: any = res.singleCommodityList && res.singleCommodityList.length > 0 ? JSON.parse(JSON.stringify(res.singleCommodityList)) : [] let list: any = res.singleCommodityList && res.singleCommodityList.length > 0 ? JSON.parse(JSON.stringify(res.singleCommodityList)) : []
list.forEach((item: any) => { list.forEach((item: any) => {
item.id = item.COMMODITY_BARCODE item.id = item.COMMODITY_ID
}) })
setComboCommodityDetail(list || []) setComboCommodityDetail(list || [])
@ -1691,6 +1708,8 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
setHeaderImgList(headerImgList) setHeaderImgList(headerImgList)
setDetailImgList(detailImgList) setDetailImgList(detailImgList)
console.log('dsadasa', data.UserDefinedTypeIds.split(',').map(Number));
return { return {
...data, ...data,
USERDEFINEDTYPE_ID: data.UserDefinedTypeIds ? data.UserDefinedTypeIds.split(',').map(Number) : [], USERDEFINEDTYPE_ID: data.UserDefinedTypeIds ? data.UserDefinedTypeIds.split(',').map(Number) : [],
@ -1857,12 +1876,13 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
<Col span={12}> <Col span={12}>
<ProFormTreeSelect <ProFormTreeSelect
name="USERDEFINEDTYPE_ID" name="USERDEFINEDTYPE_ID"
// name="UserDefinedTypeIds"
label="商品分类" label="商品分类"
request={async () => { request={async () => {
if (leftTreeData && leftTreeData.length > 0) { if (leftTreeData && leftTreeData.length > 0) {
let list: any = JSON.parse(JSON.stringify(leftTreeData)) let list: any = JSON.parse(JSON.stringify(leftTreeData))
list = addDisabledForParent(list) // list = addDisabledForParent(list)
console.log('listlist', list); // console.log('listlist', list);
return list return list
} else { } else {
@ -2111,6 +2131,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
message: "请输入市场价!" message: "请输入市场价!"
} }
]} ]}
disabled={currentUser?.UserPattern === 4000 && currentRow?.UPPER_STATE === 1}
/> />
</Col> </Col>
<Col span={6}> <Col span={6}>
@ -2123,6 +2144,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
message: "请输入零售价格!" message: "请输入零售价格!"
} }
]} ]}
disabled={currentUser?.UserPattern === 4000 && currentRow?.UPPER_STATE === 1}
/> />
</Col> </Col>
<Col span={6}> <Col span={6}>
@ -2135,6 +2157,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
message: "请输入商品成本!" message: "请输入商品成本!"
} }
]} ]}
disabled={currentUser?.UserPattern === 4000 && currentRow?.UPPER_STATE === 1}
/> />
</Col> </Col>
<Col span={6}> <Col span={6}>
@ -2146,7 +2169,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
{/* 若是一个套餐商品 那么这里就要有一个录入套餐商品的地方 */} {/* 若是一个套餐商品 那么这里就要有一个录入套餐商品的地方 */}
<Col span={24}> <Col span={24}>
<SelectSetMealItems onRef={setSelectSetMealItemsRef} leftTreeData={leftTreeData} comboCommodityDetail={comboCommodityDetail} parentFormRef={formRef} /> <SelectSetMealItems currentUser={currentUser} parentRow={currentRow} onRef={setSelectSetMealItemsRef} leftTreeData={leftTreeData} comboCommodityDetail={comboCommodityDetail} parentFormRef={formRef} />
</Col> </Col>
<Divider orientation="left"></Divider> <Divider orientation="left"></Divider>
@ -2490,6 +2513,65 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
setShowMoreSpecs(false) setShowMoreSpecs(false)
setSpecsData([]) setSpecsData([])
}} }}
footer={currentUser?.UserPattern === 4000 && currentRow?.UPPER_STATE === 1 ? false :
<div>
<Button style={{ marginRight: '8px' }} onClick={() => {
setShowMoreSpecs(false)
setSpecsData([])
}}></Button>
<Button type={'primary'} loading={showMoreSpecsLoading} onClick={async () => {
// 判断表格数据是不是都填了
let isAllOk: boolean = true
if (specsData && specsData.length > 0) {
specsData.forEach((item: any) => {
if (!item.COMMODITY_STOCK || !item.COMMODITY_RETAILPRICE || !item.COMMODITY_MEMBERPRICE || !item.COMMODITY_PURCHASEPRICE) {
isAllOk = false
}
})
}
if (!isAllOk) {
message.error('请先完善表格数据!')
return
}
if (specsData && specsData.length > 0) {
setShowMoreSpecsLoading(true)
let list: any = []
specsData.forEach((item: any) => {
list.push({
RTCOMMODITY_MULTI_ID: item.RTCOMMODITY_MULTI_ID ? item.RTCOMMODITY_MULTI_ID : "",
COMMODITY_ID: currentRow?.COMMODITY_ID,
COMMODITY_MULTI_ID: item.COMMODITY_MULTI_ID,
COMMODITY_STOCK: item.COMMODITY_STOCK,
COMMODITY_RETAILPRICE: item.COMMODITY_RETAILPRICE,
COMMODITY_PURCHASEPRICE: item.COMMODITY_PURCHASEPRICE,
COMMODITY_MEMBERPRICE: item.COMMODITY_MEMBERPRICE,
STAFF_ID: currentUser?.ID,
STAFF_NAME: currentUser?.Name,
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss')
})
})
// return
const req: any = {
list: list
}
const data = await handeSynchroRTCOMMODITYMULTIList(req)
setShowMoreSpecsLoading(false)
if (data.Result_Code === 100) {
message.success("同步成功!")
setShowMoreSpecs(false)
setSpecsData([])
} else {
message.error(data.Result_Desc)
}
} else {
setShowMoreSpecs(false)
setSpecsData([])
}
}}></Button>
</div>
}
onOk={async () => { // 提交框内的数据 onOk={async () => { // 提交框内的数据
// 判断表格数据是不是都填了 // 判断表格数据是不是都填了
let isAllOk: boolean = true let isAllOk: boolean = true
@ -2507,6 +2589,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
if (specsData && specsData.length > 0) { if (specsData && specsData.length > 0) {
setShowMoreSpecsLoading(true)
let list: any = [] let list: any = []
specsData.forEach((item: any) => { specsData.forEach((item: any) => {
list.push({ list.push({
@ -2528,6 +2611,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
} }
const data = await handeSynchroRTCOMMODITYMULTIList(req) const data = await handeSynchroRTCOMMODITYMULTIList(req)
setShowMoreSpecsLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
message.success("同步成功!") message.success("同步成功!")
setShowMoreSpecs(false) setShowMoreSpecs(false)
@ -2539,8 +2623,6 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
setShowMoreSpecs(false) setShowMoreSpecs(false)
setSpecsData([]) setSpecsData([])
} }
}} }}
> >
<ProTable <ProTable
@ -2552,7 +2634,7 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
scroll={{ x: "100%" }} scroll={{ x: "100%" }}
bordered bordered
toolbar={{ toolbar={{
actions: [ actions: currentUser?.UserPattern === 4000 && currentRow?.UPPER_STATE === 1 ? [] : [
<Button type={"primary"} onClick={() => { <Button type={"primary"} onClick={() => {
setShowAddSpecsModal(true) setShowAddSpecsModal(true)
}}></Button> }}></Button>

View File

@ -575,7 +575,7 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
ExportType: type, ExportType: type,
OwnerUnitId: "911", OwnerUnitId: "911",
CompanyId: searchParams?.CompanyId || "", CompanyId: searchParams?.CompanyId || "",
MerchantId: "", MerchantId: currentUser?.SupplierID || "",
SaleBillState: searchParams?.OrderStatus === '0' ? '' : (searchParams?.OrderStatus || ""), SaleBillState: searchParams?.OrderStatus === '0' ? '' : (searchParams?.OrderStatus || ""),
SaleBillType: searchParams?.OrderType === '0' ? '' : (searchParams?.OrderType || ""), SaleBillType: searchParams?.OrderType === '0' ? '' : (searchParams?.OrderType || ""),
ChannelType: searchParams?.PaymentMethod || "", ChannelType: searchParams?.PaymentMethod || "",
@ -620,11 +620,11 @@ const TradingLedger: React.FC<{ currentUser: CurrentUser }> = (props) => {
exportXlsxFromProColumnsExcelJS(type === 1 ? exportColumns : type === 2 ? exportFinanceColumns : [], exportXlsxFromProColumnsExcelJS(type === 1 ? exportColumns : type === 2 ? exportFinanceColumns : [],
res, res,
`${type === 1 ? `云南交投集团经营开发有限公司彩云驿商业管理分公司销售出库单(${searchParams.ORDER_DATE_Start}-${searchParams.ORDER_DATE_End})` : `${type === 1 ? `云南交投集团经营开发有限公司彩云驿商业管理分公司\n销售出库单(${searchParams.ORDER_DATE_Start}-${searchParams.ORDER_DATE_End})` :
`云南交投集团经营开发有限公司彩云驿商业管理分公司财务结算单(${searchParams.ORDER_DATE_Start}-${searchParams.ORDER_DATE_End})`}`, `云南交投集团经营开发有限公司彩云驿商业管理分公司\n财务结算单(${searchParams.ORDER_DATE_Start}-${searchParams.ORDER_DATE_End})`}`,
{ {
topTitle: `${type === 1 ? `云南交投集团经营开发有限公司彩云驿商业管理分公司销售出库单(${searchParams.ORDER_DATE_Start}-${searchParams.ORDER_DATE_End})` : topTitle: `${type === 1 ? `云南交投集团经营开发有限公司彩云驿商业管理分公司\n销售出库单(${searchParams.ORDER_DATE_Start}-${searchParams.ORDER_DATE_End})` :
`云南交投集团经营开发有限公司彩云驿商业管理分公司财务结算单(${searchParams.ORDER_DATE_Start}-${searchParams.ORDER_DATE_End})`}`, `云南交投集团经营开发有限公司彩云驿商业管理分公司\n财务结算单(${searchParams.ORDER_DATE_Start}-${searchParams.ORDER_DATE_End})`}`,
footerItems: type === 1 ? [ footerItems: type === 1 ? [
{ label: "审核", value: "", labelSpan: 1, valueSpan: 2, labelAlign: "left", align: "left", startCol: 7 }, { label: "审核", value: "", labelSpan: 1, valueSpan: 2, labelAlign: "left", align: "left", startCol: 7 },
{ label: "验收", value: "", labelSpan: 1, valueSpan: 2, labelAlign: "left", align: "left", startCol: 12 }, { label: "验收", value: "", labelSpan: 1, valueSpan: 2, labelAlign: "left", align: "left", startCol: 12 },

View File

@ -1,4 +1,4 @@
// 由 scripts/writeVersion.js 自动生成 // 由 scripts/writeVersion.js 自动生成
export const VERSION = "4.5.121"; export const VERSION = "4.5.128";
export const GIT_HASH = "31a0a71"; export const GIT_HASH = "772dc23";
export const BUILD_TIME = "2026-01-21T02:40:21.103Z"; export const BUILD_TIME = "2026-01-23T11:34:36.109Z";