Commit e8a67109 authored by 前端-钟卫鹏's avatar 前端-钟卫鹏

feat: 新增待分配订单页面

parent ed7530ce
......@@ -306,20 +306,20 @@ export default [
hideInMenu: true,
noMargin: true,
},
// 待新增入库单订单
{
path: '/memberCenter/tranactionAbility/purchaseOrder/addPurchaseWarehouseOrder',
name: 'addPurchaseWarehouseOrder',
component: '@/pages/transaction/purchaseOrder/addPurchaseWarehouseOrder'
},
// 待新增入库单订单-查看
{
path: '/memberCenter/tranactionAbility/purchaseOrder/addPurchaseWarehouseOrder/preview',
name: 'orderPreview',
hideInMenu: true,
noMargin: true,
component: '@/pages/transaction/purchaseOrder/orderPreview'
},
// // 待新增入库单订单
// {
// path: '/memberCenter/tranactionAbility/purchaseOrder/addPurchaseWarehouseOrder',
// name: 'addPurchaseWarehouseOrder',
// component: '@/pages/transaction/purchaseOrder/addPurchaseWarehouseOrder'
// },
// // 待新增入库单订单-查看
// {
// path: '/memberCenter/tranactionAbility/purchaseOrder/addPurchaseWarehouseOrder/preview',
// name: 'orderPreview',
// hideInMenu: true,
// noMargin: true,
// component: '@/pages/transaction/purchaseOrder/orderPreview'
// },
// 待收货订单
{
path: '/memberCenter/tranactionAbility/purchaseOrder/readyReceiveOrder',
......@@ -378,6 +378,20 @@ export default [
hideInMenu: true,
noMargin: true,
},
// 待分配订单
{
path: '/memberCenter/tranactionAbility/purchaseOrder/readyDistributionOrder',
name: 'readyDistributionOrder',
component: '@/pages/transaction/purchaseOrder/readyDistributionOrder'
},
// 待分配订单-查看
{
path: '/memberCenter/tranactionAbility/purchaseOrder/readyDistributionOrder/preview',
name: 'orderPreview',
hideInMenu: true,
noMargin: true,
component: '@/pages/transaction/purchaseOrder/orderPreview'
},
]
}
]
import React from 'react'
import { Card, Button, Space, message } from 'antd'
import StandardTable from '@/components/StandardTable';
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import { useSelfTable } from './model/useSelfTable'
import { tableListSchema } from './schema'
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch'
import { FORM_FILTER_PATH } from '@/formSchema/const'
import Submit from '@/components/NiceForm/components/Submit'
import DateRangePickerUnix from '@/components/NiceForm/components/DateRangePickerUnix'
import { useHttpRequest } from '@/hooks/useHttpRequest'
import '../index.less'
import { getOrderBuyerValidateSubmitPage, postOrderBuyerValidateSubmitBatch } from '@/services/OrderNewV2Api'
import { useIntl } from 'umi'
// 待分配订单
export interface ReadyDistributionOrderProps {}
const fetchTableData = async (params) => {
const { data } = await getOrderBuyerValidateSubmitPage(params)
return data
}
const ReadyDistributionOrder:React.FC<ReadyDistributionOrderProps> = (props) => {
const {
columns,
ref,
rowSelection,
rowSelectionCtl
} = useSelfTable()
const { run, loading } = useHttpRequest(postOrderBuyerValidateSubmitBatch)
const intl = useIntl()
const handleBitchPush = async () => {
if (rowSelectionCtl.selectRow.length === 0) {
return message.error(intl.formatMessage({ id: 'purchaseOrder.qingxiangouxuanding', defaultMessage: '请先勾选订单' }))
}
const { code } = await run(rowSelectionCtl.selectedRowKeys.map(item => ({ orderId: item })))
if (code === 1000) {
ref.current.reload()
rowSelectionCtl.setSelectRow([])
rowSelectionCtl.setSelectedRowKeys([])
}
}
return <PageHeaderWrapper>
<Card>
<StandardTable
rowSelection={rowSelection}
fetchTableData={params => fetchTableData(params)}
columns={columns}
currentRef={ref}
rowKey={'orderId'}
formilyLayouts={{
justify: 'space-between'
}}
formilyProps={{
ctx: {
inline: false,
schema: tableListSchema(),
effects: ($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'orderNo',
FORM_FILTER_PATH,
);
},
components: {
DateRangePickerUnix,
Submit
}
},
layouts: {
order: 2,
span: 16
}
}}
formilyChilds={{
children: <Space>
<Button onClick={handleBitchPush} loading={loading}>{intl.formatMessage({ id: 'purchaseOrder.piliangtijiao', defaultMessage: '批量提交' })}</Button>
</Space>,
layouts: {
span: 8
}
}}
/>
</Card>
</PageHeaderWrapper>
}
ReadyDistributionOrder.defaultProps = {}
export default ReadyDistributionOrder
import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { history, useIntl } from 'umi'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
export const useSelfTable = () => {
const ref = useRef<any>({})
const [rowSelection, rowSelectionCtl] = useRowSelectionTable({customKey: 'orderId'})
const intl = useIntl()
const handleSubmit = async (id) => {
history.push(`/memberCenter/tranactionAbility/purchaseOrder/readySubmitOrder/detail?id=${id}&preview=0`)
}
const secondColumns: any[] = baseOrderListColumns().concat([
{
title: intl.formatMessage({ id: 'purchaseOrder.caozuo', defaultMessage: '操作' }),
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <Button type='link' onClick={() => handleSubmit(record.orderId)}>{intl.formatMessage({ id: 'purchaseOrder.tijiaodingdan', defaultMessage: '提交订单' })}</Button>
}
])
return {
columns: secondColumns,
ref,
rowSelection,
rowSelectionCtl
}
}
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { getPurchaseOrderSelectOption } from '@/pages/transaction/effect';
import { useIntl } from 'umi';
export const tableListSchema: any = () => {
const intl = useIntl()
const res = getPurchaseOrderSelectOption()
if(res) {
const {
orderTypes: OrderType,
} = res
return {
type: 'object',
properties: {
orderNo: {
type: 'string',
"x-component": 'SearchFilter',
'x-component-props': {
placeholder: intl.formatMessage({ id: 'purchaseOrder.qingshurudingdanOrderNo', defaultMessage: '请输入订单编号' }),
align: 'flex-end',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'flex-layout',
'x-component-props': {
inline: true,
colStyle: {
marginLeft: 20
}
},
properties: {
digest: {
type: 'string',
'x-component-props': {
placeholder: intl.formatMessage({ id: 'purchaseOrder.qingshurudingdanDigest', defaultMessage: '请输入订单摘要' }),
}
},
"memberName": {
type: 'string',
"x-component-props": {
placeholder: intl.formatMessage({ id: 'purchaseOrder.qingshurudingdanMemberName', defaultMessage: '请输入供应会员名称' })
}
},
"orderType": {
type: 'string',
"x-component-props": {
placeholder: intl.formatMessage({ id: 'purchaseOrder.qingxuanzedingdanOrderType', defaultMessage: '请选择订单类型' })
},
enum: OrderType.map(item => ({
label: item['text'],
value: item['id'],
}))
},
"[startDate, endDate]": {
type: 'daterange',
// "x-component": 'DateRangePickerUnix',
'x-component-props': {
// showTime: true,
placeholder: [intl.formatMessage({ id: 'purchaseOrder.kaishishijian', defaultMessage: '开始时间' }),intl.formatMessage({ id: 'purchaseOrder.jieshushijian', defaultMessage: '结束时间' })],
},
},
submit: {
'x-component': 'Submit',
'x-component-props': {
children: intl.formatMessage({ id: 'purchaseOrder.chaxun', defaultMessage: '查询' }),
},
},
},
},
}
}
}
}
import React from 'react'
import { Card, Button, Space, message } from 'antd'
import StandardTable from '@/components/StandardTable';
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import { useSelfTable } from './model/useSelfTable'
import { tableListSchema } from './schema'
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch'
import { FORM_FILTER_PATH } from '@/formSchema/const'
import Submit from '@/components/NiceForm/components/Submit'
import DateRangePickerUnix from '@/components/NiceForm/components/DateRangePickerUnix'
import { useHttpRequest } from '@/hooks/useHttpRequest'
import '../index.less'
import { getOrderBuyerValidateSubmitPage, postOrderBuyerValidateSubmitBatch } from '@/services/OrderNewV2Api'
import { useIntl } from 'umi'
// 待分配订单
export interface ReadyDistributionOrderProps {}
const fetchTableData = async (params) => {
const { data } = await getOrderBuyerValidateSubmitPage(params)
return data
}
const ReadyDistributionOrder:React.FC<ReadyDistributionOrderProps> = (props) => {
const {
columns,
ref,
rowSelection,
rowSelectionCtl
} = useSelfTable()
const { run, loading } = useHttpRequest(postOrderBuyerValidateSubmitBatch)
const intl = useIntl()
const handleBitchPush = async () => {
if (rowSelectionCtl.selectRow.length === 0) {
return message.error(intl.formatMessage({ id: 'purchaseOrder.qingxiangouxuanding', defaultMessage: '请先勾选订单' }))
}
const { code } = await run(rowSelectionCtl.selectedRowKeys.map(item => ({ orderId: item })))
if (code === 1000) {
ref.current.reload()
rowSelectionCtl.setSelectRow([])
rowSelectionCtl.setSelectedRowKeys([])
}
}
return <PageHeaderWrapper>
<Card>
<StandardTable
rowSelection={rowSelection}
fetchTableData={params => fetchTableData(params)}
columns={columns}
currentRef={ref}
rowKey={'orderId'}
formilyLayouts={{
justify: 'space-between'
}}
formilyProps={{
ctx: {
inline: false,
schema: tableListSchema(),
effects: ($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'orderNo',
FORM_FILTER_PATH,
);
},
components: {
DateRangePickerUnix,
Submit
}
},
layouts: {
order: 2,
span: 16
}
}}
formilyChilds={{
children: <Space>
<Button onClick={handleBitchPush} loading={loading}>{intl.formatMessage({ id: 'purchaseOrder.piliangtijiao', defaultMessage: '批量提交' })}</Button>
</Space>,
layouts: {
span: 8
}
}}
/>
</Card>
</PageHeaderWrapper>
}
ReadyDistributionOrder.defaultProps = {}
export default ReadyDistributionOrder
import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { history, useIntl } from 'umi'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
export const useSelfTable = () => {
const ref = useRef<any>({})
const [rowSelection, rowSelectionCtl] = useRowSelectionTable({customKey: 'orderId'})
const intl = useIntl()
const handleSubmit = async (id) => {
history.push(`/memberCenter/tranactionAbility/purchaseOrder/readySubmitOrder/detail?id=${id}&preview=0`)
}
const secondColumns: any[] = baseOrderListColumns().concat([
{
title: intl.formatMessage({ id: 'purchaseOrder.caozuo', defaultMessage: '操作' }),
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <Button type='link' onClick={() => handleSubmit(record.orderId)}>{intl.formatMessage({ id: 'purchaseOrder.tijiaodingdan', defaultMessage: '提交订单' })}</Button>
}
])
return {
columns: secondColumns,
ref,
rowSelection,
rowSelectionCtl
}
}
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { getPurchaseOrderSelectOption } from '@/pages/transaction/effect';
import { useIntl } from 'umi';
export const tableListSchema: any = () => {
const intl = useIntl()
const res = getPurchaseOrderSelectOption()
if(res) {
const {
orderTypes: OrderType,
} = res
return {
type: 'object',
properties: {
orderNo: {
type: 'string',
"x-component": 'SearchFilter',
'x-component-props': {
placeholder: intl.formatMessage({ id: 'purchaseOrder.qingshurudingdanOrderNo', defaultMessage: '请输入订单编号' }),
align: 'flex-end',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'flex-layout',
'x-component-props': {
inline: true,
colStyle: {
marginLeft: 20
}
},
properties: {
digest: {
type: 'string',
'x-component-props': {
placeholder: intl.formatMessage({ id: 'purchaseOrder.qingshurudingdanDigest', defaultMessage: '请输入订单摘要' }),
}
},
"memberName": {
type: 'string',
"x-component-props": {
placeholder: intl.formatMessage({ id: 'purchaseOrder.qingshurudingdanMemberName', defaultMessage: '请输入供应会员名称' })
}
},
"orderType": {
type: 'string',
"x-component-props": {
placeholder: intl.formatMessage({ id: 'purchaseOrder.qingxuanzedingdanOrderType', defaultMessage: '请选择订单类型' })
},
enum: OrderType.map(item => ({
label: item['text'],
value: item['id'],
}))
},
"[startDate, endDate]": {
type: 'daterange',
// "x-component": 'DateRangePickerUnix',
'x-component-props': {
// showTime: true,
placeholder: [intl.formatMessage({ id: 'purchaseOrder.kaishishijian', defaultMessage: '开始时间' }),intl.formatMessage({ id: 'purchaseOrder.jieshushijian', defaultMessage: '结束时间' })],
},
},
submit: {
'x-component': 'Submit',
'x-component-props': {
children: intl.formatMessage({ id: 'purchaseOrder.chaxun', defaultMessage: '查询' }),
},
},
},
},
}
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment