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

fix: contsants中订单能力,支付能力,商品能力常量抽离

parent 7069a4d5
/**
* ****商品能力 相关常量****
*/
/**
*
* 其中包括:品类属性管理、品牌管理,商品管理,价格管理,仓位管理和进销存
*
*/
// 单据类型
/**
* 采购入库单
*/
export const DOC_TYPE_PURCHASE_RECEIPT = 1;
/**
* 销售发货单
*/
export const DOC_TYPE_SALES_INVOICE = 2;
/**
* 加工入库单
*/
export const DOC_TYPE_PROCESS_RECEIPT = 3;
/**
* 加工发货单
*/
export const DOC_TYPE_PROCESS_INVOICE = 4;
/**
* 退货发货单
*/
export const DOC_TYPE_RETURN_INVOICE = 5;
/**
* 退货入库单
*/
export const DOC_TYPE_RETURN_RECEIPT = 6;
/**
* 换货退货发货单
*/
export const DOC_TYPE_EXCHANGE_RETURN_INVOICE = 11;
/**
* 换货退货入货单
*/
export const DOC_TYPE_EXCHANGE_RETURN_RECEIPT = 12;
/**
* 换货发货单
*/
export const DOC_TYPE_EXCHANGE_INVOICE = 7;
/**
* 换货入库单
*/
export const DOC_TYPE_EXCHANGE_RECEIPT = 8;
// 单据状态
/**
* 未审核
*/
export const DOC_STATUS_UNREVIEWED = 1;
/**
* 已审核
*/
export const DOC_STATUS_REVIEWED = 2;
export const DOC_STATUS = {
[DOC_STATUS_UNREVIEWED]: '未审核',
[DOC_STATUS_REVIEWED]: '已审核',
};
// 对应单据
/**
* 订单
*/
export const DEPENDENT_DOC_ORDER = 1;
/**
* 换货
*/
export const DEPENDENT_DOC_EXCHANGE = 2;
/**
* 退货
*/
export const DEPENDENT_DOC_RETURN = 3;
/**
* 生产
*/
export const DEPENDENT_DOC_PRODUCTION = 4;
/**
* 内部
*/
export const DEPENDENT_DOC_INTERNAL = 5;
// 单据类型状态
/**
* 有效的
*/
export const DOC_TYPE_STATUS_EFFECTIVE = 1;
/**
* 无效的
*/
export const DOC_TYPE_STATUS_INVALID = 0;
export const DOC_TYPE_STATUS = {
[DOC_TYPE_STATUS_EFFECTIVE]: '有效',
[DOC_TYPE_STATUS_INVALID]: '无效',
};
// 单据类型方向
/**
* 入库
*/
export const DOC_DIRECTION_WAREHOUSING = 1;
/**
* 出库
*/
export const DOC_DIRECTION_OUTGOING = 2;
export const DOC_DIRECTION = {
[DOC_DIRECTION_WAREHOUSING]: '入库 + ',
[DOC_DIRECTION_OUTGOING]: '出库 - ',
};
// 仓位状态
/**
* 有效的
*/
export const POSITION_STATUS_EFFECTIVE = 1;
/**
* 无效的
*/
export const POSITION_STATUS_INVALID = 0;
export const POSITION_STATUS = {
[POSITION_STATUS_EFFECTIVE]: '有效',
[POSITION_STATUS_INVALID]: '无效',
};
This diff is collapsed.
This diff is collapsed.
/**
* ****支付能力 相关常量****
*/
/**
*
* 其中包括:支付方式管理,授信申请,授信管理,资金账户和资金账户管理
*
*/
// 授信内部状态(上级)
/**
* 待提交审核
*/
export const CREDIT_INNER_STATUS_UNCOMMITTED = 1;
/**
* 提交审核失败
*/
export const CREDIT_INNER_STATUS_COMMITTED_FAILED = 2;
/**
* 提交审核成功
*/
export const CREDIT_INNER_STATUS_COMMITTED_SUCCESS = 3;
/**
* 一级审核失败
*/
export const CREDIT_INNER_STATUS_FAILED_1 = 4;
/**
* 一级审核通过
*/
export const CREDIT_INNER_STATUS_SUCCESS_1 = 5;
/**
* 二级审核失败
*/
export const CREDIT_INNER_STATUS_FAILED_2 = 6;
/**
* 二级审核通过
*/
export const CREDIT_INNER_STATUS_SUCCESS_2 = 7;
/**
* 三级审核失败
*/
export const CREDIT_INNER_STATUS_FAILED_3 = 8;
/**
* 三级审核通过
*/
export const CREDIT_INNER_STATUS_SUCCESS_3 = 9;
/**
* 审核不通过
*/
export const CREDIT_INNER_STATUS_FAILED = 10;
/**
* 审核通过
*/
export const CREDIT_INNER_STATUS_CONFIRM_SUCCESS = 11;
export const CREDIT_INNER_STATUS = {
[CREDIT_INNER_STATUS_UNCOMMITTED]: '待提交审核',
[CREDIT_INNER_STATUS_COMMITTED_FAILED]: '提交审核失败',
[CREDIT_INNER_STATUS_COMMITTED_SUCCESS]: '提交审核成功',
[CREDIT_INNER_STATUS_FAILED_1]: '一级审核失败',
[CREDIT_INNER_STATUS_SUCCESS_1]: '一级审核通过',
[CREDIT_INNER_STATUS_FAILED_2]: '二级审核失败',
[CREDIT_INNER_STATUS_SUCCESS_2]: '二级审核通过',
[CREDIT_INNER_STATUS_FAILED_3]: '三级审核失败',
[CREDIT_INNER_STATUS_SUCCESS_3]: '三级审核通过',
[CREDIT_INNER_STATUS_FAILED]: '审核不通过',
[CREDIT_INNER_STATUS_CONFIRM_SUCCESS]: '审核通过',
};
// 授信内部状态(下级)
/**
* 待提交
*/
export const CREDIT_INNER_STATUS_UNCOMMITTED_PURCHASER = 1;
/**
* 已提交
*/
export const CREDIT_INNER_STATUS_COMMITTED_PURCHASER = 2;
export const CREDIT_INNER_STATUS_PURCHASER = {
[CREDIT_INNER_STATUS_UNCOMMITTED_PURCHASER]: '待提交',
[CREDIT_INNER_STATUS_COMMITTED_PURCHASER]: '已提交',
};
// 授信外部状态
/**
* 待提交
*/
export const CREDIT_OUTER_STATUS_UNCOMMITTED = 1;
/**
* 待确认
*/
export const CREDIT_OUTER_STATUS_UNCONFIRMED = 2;
/**
* 接受申请
*/
export const CREDIT_OUTER_STATUS_SUCCESS = 3;
/**
* 不接受申请
*/
export const CREDIT_OUTER_STATUS_FAILED = 4;
export const CREDIT_OUTER_STATUS = {
[CREDIT_OUTER_STATUS_UNCOMMITTED]: '待提交',
[CREDIT_OUTER_STATUS_UNCONFIRMED]: '待确认',
[CREDIT_OUTER_STATUS_SUCCESS]: '接受申请',
[CREDIT_OUTER_STATUS_FAILED]: '不接受申请',
};
// 授信还款状态
/**
* 账单待还
*/
export const CREDIT_REPAYMENT_STATUS_OUTSTANDING = 1;
/**
* 待确认还款结果
*/
export const CREDIT_REPAYMENT_STATUS_UNCONFIRMED = 2;
/**
* 账单已还
*/
export const CREDIT_REPAYMENT_STATUS_PAID = 3;
/**
* 逾期
*/
export const CREDIT_REPAYMENT_STATUS_OVERDUE = 4;
export const CREDIT_REPAYMENT_STATUS = {
[CREDIT_REPAYMENT_STATUS_OUTSTANDING]: '账单待还',
[CREDIT_REPAYMENT_STATUS_UNCONFIRMED]: '待确认还款结果',
[CREDIT_REPAYMENT_STATUS_PAID]: '账单已还',
[CREDIT_REPAYMENT_STATUS_OVERDUE]: '逾期',
};
// 授信状态
/**
* 未申请
*/
export const CREDIT_STATUS_NOT_APPLIED = 1;
/**
* 申请中
*/
export const CREDIT_STATUS_APPLYING = 2;
/**
* 正常
*/
export const CREDIT_STATUS_NORMAL = 3;
/**
* 已冻结
*/
export const CREDIT_STATUS_FROZEN = 4;
export const CREDIT_STATUS = {
[CREDIT_STATUS_NOT_APPLIED]: '未申请',
[CREDIT_STATUS_APPLYING]: '申请中',
[CREDIT_STATUS_NORMAL]: '正常',
[CREDIT_STATUS_FROZEN]: '已冻结',
};
// 账单交易项目
/**
* 订单支付
*/
export const BILL_TRADE_OPERATION_ORDER_PAY = 1;
/**
* 订单退款
*/
export const BILL_TRADE_OPERATION_ORDER_RETURN = 2;
/**
* 还款
*/
export const BILL_TRADE_OPERATION_REPAYMENT = 3;
export const BILL_TRADE_OPERATION = {
[BILL_TRADE_OPERATION_ORDER_PAY]: '订单支付',
[BILL_TRADE_OPERATION_ORDER_RETURN]: '订单退款',
[BILL_TRADE_OPERATION_REPAYMENT]: '还款',
};
// 支付渠道
/**
* 积分支付
*/
export const PAY_CHANNEL_INTEGRAL = 0;
/**
* 支付宝
*/
export const PAY_CHANNEL_ALI = 1;
/**
* 微信
*/
export const PAY_CHANNEL_WECHAT = 2;
/**
* 银联
*/
export const PAY_CHANNEL_UNION = 3;
/**
* 余额
*/
export const PAY_CHANNEL_BALANCE = 4;
/**
* 线下支付线上确认
*/
export const PAY_CHANNEL_OFFLINE = 5;
/**
* 授信
*/
export const PAY_CHANNEL_CREDIT = 6;
/**
* 货到付款
*/
export const PAY_CHANNEL_COD = 7;
/**
* 支付渠道对应中文
*/
export const PAY_CHANNEL = {
[PAY_CHANNEL_INTEGRAL]: '积分支付',
[PAY_CHANNEL_ALI]: '支付宝',
[PAY_CHANNEL_WECHAT]: '微信',
[PAY_CHANNEL_UNION]: '银联',
[PAY_CHANNEL_BALANCE]: '余额',
[PAY_CHANNEL_OFFLINE]: '线下支付线上确认',
[PAY_CHANNEL_CREDIT]: '授信',
[PAY_CHANNEL_COD]: '货到付款',
};
......@@ -4,9 +4,10 @@ import { Button, Row, Col, Modal } from 'antd'
import { PublicApi } from '@/services/api'
import EyePreview from '@/components/EyePreview'
import { formatTimeString } from '@/utils'
import { ORDER_TYPE, PurchaseOrderInsideWorkState, DOC_TYPE_PURCHASE_RECEIPT, DOC_TYPE_SALES_INVOICE } from '@/constants'
import StatusColors from '@/pages/transaction/components/StatusColors'
import { FieldTimeOutlined } from '@ant-design/icons'
import { ORDER_TYPE, PurchaseOrderInsideWorkState } from '@/constants/order'
import { DOC_TYPE_PURCHASE_RECEIPT } from '@/constants/commodity'
// 业务hooks, 待支付订单
export const useSelfTable = () => {
......
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import React from 'react'
import { Tag } from 'antd'
import { PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts, PurchaseOrderInsideWorkState, PurchaseOrderOutWorkState, SaleOrderInsideWorkState, SaleOrderInsideWorkStateTexts } from '@/constants'
export interface IStatusColor {
[key: string]: {
value: string | number,
color: string
}
}
// 用于标签状态控制
export interface StatusColorsProps {
status: number,
type: 'out' | 'inside' | 'saleInside'
}
export enum ORDER_EXAMINE_ENUM {
/**
* 新增订单
*/
ADD_ORDER = 1,
/**
* 一级审核
*/
ONE_LEVEL_VALIDATE,
/**
* 二级审核
*/
TWO_LEVEL_VALIDATE,
/**
* 提交订单中
*/
SUBMIT_ORDER_PROCESS,
/**
* 提交订单成功
*/
SUBMIT_ORDER_SUCCESS,
/**
* 一级审核失败
*/
ONE_LEVEL_VALIDATE_ERROR,
/**
* 二级审核失败
*/
TWO_LEVEL_VALIDATE_ERROR
}
export const ORDER_EXAMINE_LIST = ['',
'新增订单',
'一级审核中',
'二级审核中',
'提交订单',
'提交成功',
'一级审核不通过',
'二级审核不通过'
]
// 状态颜色映射
export const StatusColorsMaps = {
ready: '#C0C4CC',
process: '#FFC400',
submit: '#6C9CEB',
success: '#41CC9E',
error: '#EF6260'
}
const matchStatusColor = (status: number): string => {
const maps = {
[ORDER_EXAMINE_ENUM.ADD_ORDER]: StatusColorsMaps.ready,
[ORDER_EXAMINE_ENUM.ONE_LEVEL_VALIDATE]: StatusColorsMaps.process,
[ORDER_EXAMINE_ENUM.TWO_LEVEL_VALIDATE]: StatusColorsMaps.process,
[ORDER_EXAMINE_ENUM.SUBMIT_ORDER_PROCESS]: StatusColorsMaps.submit,
[ORDER_EXAMINE_ENUM.SUBMIT_ORDER_SUCCESS]: StatusColorsMaps.success
}
const READY_LISTS = [
PurchaseOrderInsideWorkState.CANCEL_ORDER,
PurchaseOrderOutWorkState.CANCEL_ORDER
]
// 默认返回错误的状态颜色
return maps[status] || StatusColorsMaps.error
}
const typeMaps = {
'out': PurchaseOrderOutWorkStateTexts,
'inside': PurchaseOrderInsideWorkStateTexts,
'saleInside': SaleOrderInsideWorkStateTexts
}
// 订单内部状态显示
const StatusColors: React.FC<StatusColorsProps> = (props) => {
const { status, type } = props
const statusText = typeMaps[type]
const statusShowColor = matchStatusColor(status)
return (<Tag color={statusShowColor}>{statusText[status]}</Tag>)
}
StatusColors.defaultProps = {}
export default StatusColors
\ No newline at end of file
import React from 'react'
import { Tag } from 'antd'
import { PurchaseOrderInsideWorkState, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkState, PurchaseOrderOutWorkStateTexts, SaleOrderInsideWorkStateTexts } from '@/constants/order'
export interface IStatusColor {
[key: string]: {
value: string | number,
color: string
}
}
// 用于标签状态控制
export interface StatusColorsProps {
status: number,
type: 'out' | 'inside' | 'saleInside'
}
export enum ORDER_EXAMINE_ENUM {
/**
* 新增订单
*/
ADD_ORDER = 1,
/**
* 一级审核
*/
ONE_LEVEL_VALIDATE,
/**
* 二级审核
*/
TWO_LEVEL_VALIDATE,
/**
* 提交订单中
*/
SUBMIT_ORDER_PROCESS,
/**
* 提交订单成功
*/
SUBMIT_ORDER_SUCCESS,
/**
* 一级审核失败
*/
ONE_LEVEL_VALIDATE_ERROR,
/**
* 二级审核失败
*/
TWO_LEVEL_VALIDATE_ERROR
}
export const ORDER_EXAMINE_LIST = ['',
'新增订单',
'一级审核中',
'二级审核中',
'提交订单',
'提交成功',
'一级审核不通过',
'二级审核不通过'
]
// 状态颜色映射
export const StatusColorsMaps = {
ready: '#C0C4CC',
process: '#FFC400',
submit: '#6C9CEB',
success: '#41CC9E',
error: '#EF6260'
}
const matchStatusColor = (status: number): string => {
const maps = {
[ORDER_EXAMINE_ENUM.ADD_ORDER]: StatusColorsMaps.ready,
[ORDER_EXAMINE_ENUM.ONE_LEVEL_VALIDATE]: StatusColorsMaps.process,
[ORDER_EXAMINE_ENUM.TWO_LEVEL_VALIDATE]: StatusColorsMaps.process,
[ORDER_EXAMINE_ENUM.SUBMIT_ORDER_PROCESS]: StatusColorsMaps.submit,
[ORDER_EXAMINE_ENUM.SUBMIT_ORDER_SUCCESS]: StatusColorsMaps.success
}
const READY_LISTS = [
PurchaseOrderInsideWorkState.CANCEL_ORDER,
PurchaseOrderOutWorkState.CANCEL_ORDER
]
// 默认返回错误的状态颜色
return maps[status] || StatusColorsMaps.error
}
const typeMaps = {
'out': PurchaseOrderOutWorkStateTexts,
'inside': PurchaseOrderInsideWorkStateTexts,
'saleInside': SaleOrderInsideWorkStateTexts
}
// 订单内部状态显示
const StatusColors: React.FC<StatusColorsProps> = (props) => {
const { status, type } = props
const statusText = typeMaps[type]
const statusShowColor = matchStatusColor(status)
return (<Tag color={statusShowColor}>{statusText[status]}</Tag>)
}
StatusColors.defaultProps = {}
export default StatusColors
import React from 'react'
import { history } from 'umi'
import { formatTimeString } from '@/utils'
import { ORDER_TYPE, PurchaseOrderOutWorkStateTexts, PurchaseOrderInsideWorkStateTexts } from '@/constants'
import StatusColors from '../components/StatusColors'
import EyePreview from '@/components/EyePreview'
export const baseOrderListColumns: any[] = [
{
title: '订单号',
align: 'center',
dataIndex: 'orderNo',
key: 'orderNo',
render: (text, record) => {
// 查看订单, 需根据状态显示不同schema
return (
<EyePreview url={`${history.location.pathname}/preview?id=${record.id}`}>
{text}
</EyePreview>
)
},
ellipsis: true,
},
{
title: '订单摘要',
align: 'center',
dataIndex: 'orderThe',
key: 'orderThe',
ellipsis: true,
},
{
title: '供应会员',
align: 'center',
dataIndex: 'supplyMembersName',
key: 'supplyMembersName',
ellipsis: true,
},
{
title: '下单时间',
align: 'center',
dataIndex: 'createTime',
key: 'createTime',
render: (text) => formatTimeString(text)
},
{
title: '订单总额',
align: 'center',
dataIndex: 'sumPrice',
key: 'sumPrice',
ellipsis: true,
},
{
title: '订单类型',
align: 'center',
dataIndex: 'type',
key: 'type',
render: (text) => ORDER_TYPE[text],
filters: [
{text: '询价采购', value: 1},
{text: '需求采购', value: 2},
{text: '现货采购', value: 3},
{text: '集采', value: 4},
{text: '积分兑换', value: 5},
{text: '渠道直采', value: 6},
{text: '渠道现货', value: 7},
{text: '渠道积分兑换', value: 8},
],
onFilter: (value, record) => value === record.type,
},
{
title: '外部状态',
align: 'center',
dataIndex: 'externalState',
key: 'externalState',
render: text => <StatusColors status={text} type='out' />,
filters: Object.entries(PurchaseOrderOutWorkStateTexts).map(([key, value]) => ({text: value, value: Number(key)})),
onFilter: (value, record) => value === record.externalState,
},
{
title: '内部状态',
align: 'center',
dataIndex: 'interiorState',
key: 'interiorState',
render: (text) => <StatusColors status={text} type='inside' />,
filters: Object.entries(PurchaseOrderInsideWorkStateTexts).map(([key, value]) => ({text: value, value: Number(key)})),
onFilter: (value, record) => value === record.interiorState,
},
]
\ No newline at end of file
import React from 'react'
import { history } from 'umi'
import { formatTimeString } from '@/utils'
import StatusColors from '../components/StatusColors'
import EyePreview from '@/components/EyePreview'
import { ORDER_TYPE, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants/order'
export const baseOrderListColumns: any[] = [
{
title: '订单号',
align: 'center',
dataIndex: 'orderNo',
key: 'orderNo',
render: (text, record) => {
// 查看订单, 需根据状态显示不同schema
return (
<EyePreview url={`${history.location.pathname}/preview?id=${record.id}`}>
{text}
</EyePreview>
)
},
ellipsis: true,
},
{
title: '订单摘要',
align: 'center',
dataIndex: 'orderThe',
key: 'orderThe',
ellipsis: true,
},
{
title: '供应会员',
align: 'center',
dataIndex: 'supplyMembersName',
key: 'supplyMembersName',
ellipsis: true,
},
{
title: '下单时间',
align: 'center',
dataIndex: 'createTime',
key: 'createTime',
render: (text) => formatTimeString(text)
},
{
title: '订单总额',
align: 'center',
dataIndex: 'sumPrice',
key: 'sumPrice',
ellipsis: true,
},
{
title: '订单类型',
align: 'center',
dataIndex: 'type',
key: 'type',
render: (text) => ORDER_TYPE[text],
filters: [
{text: '询价采购', value: 1},
{text: '需求采购', value: 2},
{text: '现货采购', value: 3},
{text: '集采', value: 4},
{text: '积分兑换', value: 5},
{text: '渠道直采', value: 6},
{text: '渠道现货', value: 7},
{text: '渠道积分兑换', value: 8},
],
onFilter: (value, record) => value === record.type,
},
{
title: '外部状态',
align: 'center',
dataIndex: 'externalState',
key: 'externalState',
render: text => <StatusColors status={text} type='out' />,
filters: Object.entries(PurchaseOrderOutWorkStateTexts).map(([key, value]) => ({text: value, value: Number(key)})),
onFilter: (value, record) => value === record.externalState,
},
{
title: '内部状态',
align: 'center',
dataIndex: 'interiorState',
key: 'interiorState',
render: (text) => <StatusColors status={text} type='inside' />,
filters: Object.entries(PurchaseOrderInsideWorkStateTexts).map(([key, value]) => ({text: value, value: Number(key)})),
onFilter: (value, record) => value === record.interiorState,
},
]
......@@ -9,7 +9,7 @@ import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilte
import { FORM_FILTER_PATH } from '@/formSchema/const'
import Submit from '@/components/NiceForm/components/Submit'
import DateRangePickerUnix from '@/components/NiceForm/components/DateRangePickerUnix'
import { PurchaseOrderInsideWorkState } from '@/constants'
import { PurchaseOrderInsideWorkState } from '@/constants/order'
import { useHttpRequest } from '@/hooks/useHttpRequest'
import '../index.less'
......
import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { history } from 'umi'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { PurchaseOrderInsideWorkState } from '@/constants'
// 业务hooks, 待新增订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const [rowSelection, rowSelectionCtl] = useRowSelectionTable({customKey: 'id', extendsSelection: {
getCheckboxProps: record => ({
// 不等于可提交审核的 都无法通过批量提交
disabled: record.interiorState !== PurchaseOrderInsideWorkState.ONE_LEVEL_AUDIT_ORDER,
interiorState: record.interiorState,
})
}})
const handleSubmit = async (record) => {
if (record.interiorState === PurchaseOrderInsideWorkState.ONE_LEVEL_AUDIT_ORDER) {
history.push(`/memberCenter/tranactionAbility/purchaseOrder/firstApprovedOrder/detail?id=${record.id}`)
}
// await PublicApi.postOrderQuotationBeReviewed({id})
// ref.current.reload()
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
{
record.interiorState === PurchaseOrderInsideWorkState.ONE_LEVEL_AUDIT_ORDER &&
<Button type='link' onClick={() => handleSubmit(record)}>提交审核</Button>
}
</>
}
])
return {
columns: secondColumns,
ref,
rowSelection,
rowSelectionCtl
}
}
import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { history } from 'umi'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { PurchaseOrderInsideWorkState } from '@/constants/order'
// 业务hooks, 待新增订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const [rowSelection, rowSelectionCtl] = useRowSelectionTable({customKey: 'id', extendsSelection: {
getCheckboxProps: record => ({
// 不等于可提交审核的 都无法通过批量提交
disabled: record.interiorState !== PurchaseOrderInsideWorkState.ONE_LEVEL_AUDIT_ORDER,
interiorState: record.interiorState,
})
}})
const handleSubmit = async (record) => {
if (record.interiorState === PurchaseOrderInsideWorkState.ONE_LEVEL_AUDIT_ORDER) {
history.push(`/memberCenter/tranactionAbility/purchaseOrder/firstApprovedOrder/detail?id=${record.id}`)
}
// await PublicApi.postOrderQuotationBeReviewed({id})
// ref.current.reload()
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
{
record.interiorState === PurchaseOrderInsideWorkState.ONE_LEVEL_AUDIT_ORDER &&
<Button type='link' onClick={() => handleSubmit(record)}>提交审核</Button>
}
</>
}
])
return {
columns: secondColumns,
ref,
rowSelection,
rowSelectionCtl
}
}
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
......@@ -4,7 +4,7 @@ import { StandardTable } from 'god'
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import { PublicApi } from '@/services/api'
import { baseOrderListColumns } from './constant'
import { PurchaseOrderOutWorkState } from '@/constants'
import { PurchaseOrderOutWorkState } from '@/constants/order'
import { history } from 'umi'
import { tableListSchema } from '../_public/order/constant'
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch'
......
......@@ -5,8 +5,7 @@ import { useModalTable } from '../../model/useModalTable'
import { ISchemaFormActions, ISchemaFormAsyncActions } from '@formily/antd'
import { contractColumns } from '../../constant'
import { PublicApi } from '@/services/api'
import { filterProductDataById } from '../productModalTable'
import { OrderModalType } from '@/constants'
import { OrderModalType } from '@/constants/order'
export interface ContractModalTableProps extends ModalTableProps {
type?: 'radio' | 'checkbox',
......
......@@ -2,7 +2,6 @@ import React, { useEffect } from 'react'
import ModalTable, { ModalTableProps } from '@/components/ModalTable'
import { fetchOrderApi } from '../../apis'
import { ISchemaFormActions, ISchemaFormAsyncActions } from '@formily/antd'
import { DELIVERY_TYPE } from '@/constants'
import { PublicApi } from '@/services/api'
import { EnvironmentOutlined } from '@ant-design/icons'
import { Popover, Space, Row, message } from 'antd'
......
import React, { useEffect } from 'react'
import ModalTable, { ModalTableProps } from '@/components/ModalTable'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { fetchOrderApi } from '../../apis'
import { useModalTable } from '../../model/useModalTable'
import { FormEffectHooks, ISchemaFormActions, ISchemaFormAsyncActions } from '@formily/antd'
import { DELIVERY_TYPE, OrderModalType } from '@/constants'
import { DELIVERY_TYPE, OrderModalType } from '@/constants/order'
import { PublicApi } from '@/services/api'
import { EnvironmentOutlined } from '@ant-design/icons'
import { Popover, Space, Row, message } from 'antd'
......
import React from 'react'
import { formatTimeString } from '@/utils'
import { Row, Space, Popover } from 'antd'
import { DELIVERY_TYPE, OrderModalType, PurchaseOrderOutWorkStateTexts } from '@/constants'
import { EnvironmentOutlined, MediumOutlined } from '@ant-design/icons'
import { PublicApi } from '@/services/api'
import { Row } from 'antd'
import { DELIVERY_TYPE, OrderModalType, PurchaseOrderOutWorkStateTexts } from '@/constants/order'
import moment from 'moment'
import { AddressPop } from '../components/productModalTable'
......
import { parmas } from './../../../inquiryQuote/components/reviewList';
import { ISchemaFormActions, FormEffectHooks, IFieldState, ISchemaFormAsyncActions, createEffectHook } from '@formily/antd';
import { ISchemaFormActions, FormEffectHooks, ISchemaFormAsyncActions } from '@formily/antd';
import { usePageStatus, PageStatus } from '@/hooks/usePageStatus';
import { useLinkageUtils } from '@/utils/formEffectUtils';
import { orderCombination, orderTypeLabelMap } from '../constant';
import { orderCombination } from '../constant';
import { history } from 'umi';
import { fetchOrderApi } from '../apis';
import { PublicApi } from '@/services/api';
import { filterProductDataById } from '../components/productModalTable'
import { getUnitPriceTotal } from '../model/useProductTable';
import moment from 'moment';
import { OrderModalType } from '@/constants';
import { OrderModalType } from '@/constants/order';
// 异步填充表格字段
......
import React, { useRef, useState, useEffect, useContext } from 'react'
import React, { useRef, useState, useEffect } from 'react'
import { history } from 'umi'
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import ReutrnEle from '@/components/ReturnEle'
import { usePageStatus, PageStatus } from '@/hooks/usePageStatus'
import { Button, Card, Row, Col, Drawer, message, Tooltip } from 'antd'
import { createFormActions, registerVirtualBox, useFormSpy, createAsyncFormActions } from '@formily/antd'
import { SaveOutlined, LinkOutlined, PlusOutlined, CodeSandboxCircleFilled, QuestionCircleOutlined, FilePdfOutlined, FilePdfFilled } from '@ant-design/icons'
import { Button, Card, Row, Col, message, Tooltip } from 'antd'
import { createFormActions, registerVirtualBox, useFormSpy } from '@formily/antd'
import { SaveOutlined, LinkOutlined, PlusOutlined, QuestionCircleOutlined } from '@ant-design/icons'
import NiceForm from '@/components/NiceForm'
import { orderDetailSchema, orderAddSchema, mergeAllSchemas, payInfo, orderMaterial, orderProduct } from './schema'
import { mergeAllSchemas, payInfo, orderMaterial, orderProduct } from './schema'
import { useModelTypeChange, useEditHideField, useOrderFormInitEffect, useProductTableChangeForPay, useOrderUpdateChangeOther } from './effects'
import { orderTypeLabel, orderCombination, orderTypeLabelMap, procurementProcessField, procurementRenderField } from './constant'
import { OrderModalType } from '@/constants'
import { orderCombination, orderTypeLabelMap, procurementProcessField, procurementRenderField } from './constant'
import { OrderModalType } from '@/constants/order'
import ProductModalTable from './components/productModalTable'
import MemberModalTable from './components/memberModalTable'
import InquiryModalTable from './components/inquiryModalTable'
......
import React, { useState, useEffect } from 'react'
import { OrderModalType } from '@/constants'
import { PublicApi } from '@/services/api'
import { useLocation, history } from 'umi'
import { ISchemaFormActions } from '@formily/antd'
import { useLinkageUtils } from '@/utils/formEffectUtils'
interface DetailOrderLocationState {
// 进货单商品列表
productList?: any[],
// 下单模式
modelType?: OrderModalType
}
interface DetailOptionsProps {
addSchemaAction: ISchemaFormActions
}
const mockDefaultValue: DetailOrderLocationState = {
productList: [
{
id: 1,
name: '甲商品',
customerCategoryName: '假品类',
brandName: '假品牌'
}
],
modelType: 5
}
export const useDetailOrder = (options: DetailOptionsProps) => {
const { addSchemaAction } = options
const formilyUtils = useLinkageUtils()
// const [productDataSource, setProductDataSource] = useState
const locationState = useLocation<DetailOrderLocationState>().state || {}
const { productList } = locationState
const { modelType } = history.location.query
// 是否显示选择商品按钮
const [showProBtn, setShowProBtn] = useState(false)
// 是否显示供应会员字段
const [showMemberType, setShowMemberType] = useState(false)
const [visibleMember, setVisibleMember] = useState(false)
// 商品列表, 如果路由state中 带有productList, 说明是进货单下单, 需要回显进货单商品数据
const [proList, setProList] = useState<any[]>(() => productList || [])
// 回显数据写在这
useEffect(() => {
// 页面中有传入下单模式, 需要手动回显数据
if (modelType) {
addSchemaAction.setFieldValue('orderModel', parseInt(modelType))
}
// 在有传入商品列表时 需手动回显
if (proList.length > 0) {
addSchemaAction.setFieldValue('orderProductRequests', proList)
addSchemaAction.setFieldValue('orderThe', proList[0].name)
}
}, [modelType, productList])
// 唤起新增订单
const fetchAddOrder = async (params) => {
await PublicApi.postOrderProcurementOrderAdd(params)
}
return {
showProBtn,
setShowProBtn,
showMemberType,
setShowMemberType,
fetchAddOrder,
proList,
modelType,
visibleMember,
setVisibleMember
}
}
\ No newline at end of file
import React, { useState, useEffect } from 'react'
import { OrderModalType } from '@/constants/order'
import { PublicApi } from '@/services/api'
import { useLocation, history } from 'umi'
import { ISchemaFormActions } from '@formily/antd'
import { useLinkageUtils } from '@/utils/formEffectUtils'
interface DetailOrderLocationState {
// 进货单商品列表
productList?: any[],
// 下单模式
modelType?: OrderModalType
}
interface DetailOptionsProps {
addSchemaAction: ISchemaFormActions
}
const mockDefaultValue: DetailOrderLocationState = {
productList: [
{
id: 1,
name: '甲商品',
customerCategoryName: '假品类',
brandName: '假品牌'
}
],
modelType: 5
}
export const useDetailOrder = (options: DetailOptionsProps) => {
const { addSchemaAction } = options
const formilyUtils = useLinkageUtils()
// const [productDataSource, setProductDataSource] = useState
const locationState = useLocation<DetailOrderLocationState>().state || {}
const { productList } = locationState
const { modelType } = history.location.query
// 是否显示选择商品按钮
const [showProBtn, setShowProBtn] = useState(false)
// 是否显示供应会员字段
const [showMemberType, setShowMemberType] = useState(false)
const [visibleMember, setVisibleMember] = useState(false)
// 商品列表, 如果路由state中 带有productList, 说明是进货单下单, 需要回显进货单商品数据
const [proList, setProList] = useState<any[]>(() => productList || [])
// 回显数据写在这
useEffect(() => {
// 页面中有传入下单模式, 需要手动回显数据
if (modelType) {
addSchemaAction.setFieldValue('orderModel', parseInt(modelType))
}
// 在有传入商品列表时 需手动回显
if (proList.length > 0) {
addSchemaAction.setFieldValue('orderProductRequests', proList)
addSchemaAction.setFieldValue('orderThe', proList[0].name)
}
}, [modelType, productList])
// 唤起新增订单
const fetchAddOrder = async (params) => {
await PublicApi.postOrderProcurementOrderAdd(params)
}
return {
showProBtn,
setShowProBtn,
showMemberType,
setShowMemberType,
fetchAddOrder,
proList,
modelType,
visibleMember,
setVisibleMember
}
}
......@@ -5,8 +5,7 @@ import { PriceComp, materialInfoColumns } from '../constant';
import MaterialTableCell, { MaterialEditableRow } from '../components/materialTableCell';
import { useModalTable } from './useModalTable';
import { usePageStatus, PageStatus } from '@/hooks/usePageStatus';
import { OrderModalType } from '@/constants';
import { history } from "umi";
import { OrderModalType } from '@/constants/order';
const { pageStatus } = usePageStatus()
......
import React, { useRef, useMemo, useState } from 'react'
import { ISchemaFormActions, ISchemaFormAsyncActions, createControllerBox, useFormSpy } from '@formily/antd';
import { Button, Row, Col, message } from 'antd';
import React, { useRef, useState } from 'react'
import { ISchemaFormActions, ISchemaFormAsyncActions } from '@formily/antd';
import { Button, message } from 'antd';
import { PriceComp, productInfoColumns } from '../constant';
import ProductTableCell, { ProductEditableRow } from '../components/productTableCell';
import { useModalTable } from './useModalTable';
import { usePageStatus, PageStatus } from '@/hooks/usePageStatus';
import { OrderModalType } from '@/constants';
import { OrderModalType } from '@/constants/order';
import { history } from "umi";
const { pageStatus } = usePageStatus()
......
......@@ -2,7 +2,6 @@ import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { GlobalConfig } from '@/global/config';
import moment from 'moment'
import { DELIVERY_TYPE_ENUM, SHOP_TYPES } from '@/constants';
// 将获取的商城转化为可用类型
const getShopTypeMap = (() => {
......
import React from 'react'
import { history } from 'umi'
import { Card, Button, Space, Dropdown, Menu, message } from 'antd'
import { Card, Button, Space, Menu, message } from 'antd'
import { StandardTable } from 'god'
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import { PublicApi } from '@/services/api'
import { PlusCircleOutlined, DownOutlined, DeleteOutlined } from '@ant-design/icons'
import { PlusCircleOutlined, DeleteOutlined } from '@ant-design/icons'
import DropDeleteDown from '@/components/DropDeleteDown'
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 { DatePicker } from '@formily/antd-components'
import { useSelfTable } from './model/useReadyAddOrder'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { PurchaseOrderInsideWorkState } from '@/constants'
import { PurchaseOrderInsideWorkState } from '@/constants/order'
import { useHttpRequest } from '@/hooks/useHttpRequest'
import DateRangePickerUnix from '@/components/NiceForm/components/DateRangePickerUnix'
import '../index.less'
......
......@@ -4,7 +4,7 @@ import { baseOrderListColumns } from '../../constant'
import { PublicApi } from '@/services/api'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { history } from 'umi'
import { PurchaseOrderInsideWorkState, PurchaseOrderOutWorkState } from '@/constants'
import { PurchaseOrderInsideWorkState, PurchaseOrderOutWorkState } from '@/constants/order'
// 业务hooks, 待新增订单
export const useSelfTable = () => {
......
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { GlobalConfig } from '@/global/config';
import { OrderModalType, orderCombination } from '../constant';
import moment from 'moment'
import { DELIVERY_TYPE_ENUM, OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import {OrderTypeMap} from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
......@@ -8,7 +8,7 @@ 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 { PurchaseOrderInsideWorkState } from '@/constants'
import { PurchaseOrderInsideWorkState } from '@/constants/order'
import { useHttpRequest } from '@/hooks/useHttpRequest'
import DateRangePickerUnix from '@/components/NiceForm/components/DateRangePickerUnix'
import '../index.less'
......
......@@ -2,9 +2,8 @@ import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { history } from 'umi'
import { PublicApi } from '@/services/api'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { PurchaseOrderInsideWorkState, SaleOrderInsideWorkState } from '@/constants'
import { PurchaseOrderInsideWorkState } from '@/constants/order'
// 业务hooks
export const useSelfTable = () => {
......
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import React, { useRef } from 'react'
import { history, Link } from 'umi'
import { Link } from 'umi'
import { Button, Row, Col, Progress, Popconfirm } from 'antd'
import { PublicApi } from '@/services/api'
import EyePreview from '@/components/EyePreview'
import { formatTimeString } from '@/utils'
import { ORDER_TYPE, PurchaseOrderInsideWorkState, PurchaseOrderOutWorkState } from '@/constants'
import { ORDER_TYPE, PurchaseOrderInsideWorkState, PurchaseOrderOutWorkState } from '@/constants/order'
import StatusColors from '../../components/StatusColors'
import { FieldTimeOutlined } from '@ant-design/icons'
import {
......
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import React, { useState, useCallback, useRef } from 'react';
import { OrderDetailContext } from '../../../_public/order/context';
import { PublicApi } from '@/services/api';
import { Button } from 'antd';
import OrderDetailHeader from '@/pages/transaction/components/OrderDetailHeader';
import OrderDetailWrapper from '@/pages/transaction/components/OrderDetailWrapper';
import PreLoading from '@/components/PreLoading';
import { useOrderDetail } from '../../../_public/order/effects/useOrderDetail';
import ApprovedOrderModal from '../../../components/approvedOrderModal';
import { history } from 'umi'
import { useHttpRequest } from '@/hooks/useHttpRequest';
import OrderDetailSection from '../../../components/orderDetailSection';
import { PurchaseOrderInsideWorkState, DeliverySideState } from '@/constants';
import OrderHandReceivedModal from '@/pages/transaction/components/orderHandReceivedModal';
const ReadyReceiveOrderDetail: React.FC = () => {
const { formContext, id, detailList } = useOrderDetail({type: 'purchaseOrder'})
const approvedRef = useRef<any>({})
// 是否是手工收货
const isHeadReceipt = formContext.data && formContext.data.interiorState === PurchaseOrderInsideWorkState.HAND_RECEIPT_ORDER
// 所有收货订单都是否已经收货了
const isShowBtn = isHeadReceipt || formContext.data?.orderDeliveryDetailsResponses?.some(v => v.interiorState === DeliverySideState.WAREHOUSE_ORDER)
const handleClick = useCallback(() => {
if (isHeadReceipt) {
// 手工收货
approvedRef.current.setVisible(true)
} else {
// 正常收货
const deleveBox = document.querySelector('#deleveBox') as any
window.scrollTo(0, deleveBox.offsetTop)
}
}, [isHeadReceipt])
return (
<div>
<OrderDetailContext.Provider value={formContext}>
<OrderDetailHeader detailList={detailList} detailData={formContext.data} extraRight={
isShowBtn && <Button type='primary' onClick={handleClick}>
{isHeadReceipt ? '手工收货' : '去确认收货'}
</Button>
} />
<OrderDetailWrapper>
<PreLoading loading={!formContext.data} active paragraph={{rows: 6}}>
<OrderDetailSection formContext={formContext}/>
</PreLoading>
</OrderDetailWrapper>
<OrderHandReceivedModal
currentRef={approvedRef}
/>
</OrderDetailContext.Provider>
</div>
);
};
export default ReadyReceiveOrderDetail;
\ No newline at end of file
import React, { useCallback, useRef } from 'react';
import { OrderDetailContext } from '../../../_public/order/context';
import { Button } from 'antd';
import OrderDetailHeader from '@/pages/transaction/components/OrderDetailHeader';
import OrderDetailWrapper from '@/pages/transaction/components/OrderDetailWrapper';
import PreLoading from '@/components/PreLoading';
import { useOrderDetail } from '../../../_public/order/effects/useOrderDetail';
import OrderDetailSection from '../../../components/orderDetailSection';
import { PurchaseOrderInsideWorkState, DeliverySideState } from '@/constants/order';
import OrderHandReceivedModal from '@/pages/transaction/components/orderHandReceivedModal';
const ReadyReceiveOrderDetail: React.FC = () => {
const { formContext, id, detailList } = useOrderDetail({type: 'purchaseOrder'})
const approvedRef = useRef<any>({})
// 是否是手工收货
const isHeadReceipt = formContext.data && formContext.data.interiorState === PurchaseOrderInsideWorkState.HAND_RECEIPT_ORDER
// 所有收货订单都是否已经收货了
const isShowBtn = isHeadReceipt || formContext.data?.orderDeliveryDetailsResponses?.some(v => v.interiorState === DeliverySideState.WAREHOUSE_ORDER)
const handleClick = useCallback(() => {
if (isHeadReceipt) {
// 手工收货
approvedRef.current.setVisible(true)
} else {
// 正常收货
const deleveBox = document.querySelector('#deleveBox') as any
window.scrollTo(0, deleveBox.offsetTop)
}
}, [isHeadReceipt])
return (
<div>
<OrderDetailContext.Provider value={formContext}>
<OrderDetailHeader detailList={detailList} detailData={formContext.data} extraRight={
isShowBtn && <Button type='primary' onClick={handleClick}>
{isHeadReceipt ? '手工收货' : '去确认收货'}
</Button>
} />
<OrderDetailWrapper>
<PreLoading loading={!formContext.data} active paragraph={{rows: 6}}>
<OrderDetailSection formContext={formContext}/>
</PreLoading>
</OrderDetailWrapper>
<OrderHandReceivedModal
currentRef={approvedRef}
/>
</OrderDetailContext.Provider>
</div>
);
};
export default ReadyReceiveOrderDetail;
import React, { useRef } from 'react'
import { history, Link } from 'umi'
import { Button, Row, Col } from 'antd'
import { PublicApi } from '@/services/api'
import { Button } from 'antd'
import EyePreview from '@/components/EyePreview'
import { formatTimeString } from '@/utils'
import { ORDER_TYPE, PurchaseOrderInsideWorkState, SaleOrderInsideWorkState } from '@/constants'
import { ORDER_TYPE, PurchaseOrderInsideWorkState } from '@/constants/order'
import StatusColors from '@/pages/transaction/components/StatusColors'
import { FieldTimeOutlined } from '@ant-design/icons'
import {
Chart,
Interval,
Axis,
Tooltip,
Coordinate,
Legend,
View,
Annotation,
} from 'bizcharts';
import DataSet from "@antv/data-set";
// 业务hooks
export const useSelfTable = () => {
......
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
......@@ -9,7 +9,7 @@ import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilte
import { FORM_FILTER_PATH } from '@/formSchema/const'
import Submit from '@/components/NiceForm/components/Submit'
import DateRangePickerUnix from '@/components/NiceForm/components/DateRangePickerUnix'
import { PurchaseOrderOutWorkState, PurchaseOrderInsideWorkState } from '@/constants'
import { PurchaseOrderOutWorkState, PurchaseOrderInsideWorkState } from '@/constants/order'
import { useHttpRequest } from '@/hooks/useHttpRequest'
import '../index.less'
......
import React, { useRef } from 'react'
import { Button, Popconfirm } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { history } from 'umi'
import { PublicApi } from '@/services/api'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { PurchaseOrderInsideWorkState, PurchaseOrderOutWorkState } from '@/constants'
// 业务hooks, 待新增订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const [rowSelection, rowSelectionCtl] = useRowSelectionTable({customKey: 'id'})
const handleSubmit = async (id) => {
history.push(`/memberCenter/tranactionAbility/purchaseOrder/readySubmitOrder/detail?id=${id}&preview=0`)
}
// 取消订单
const handleCancel = async (id) => {
await PublicApi.postOrderPurchaseOrderCancel({id})
ref.current.reload()
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => {
const canSubmit = record.externalState === PurchaseOrderOutWorkState.SUBMIT_ORDER && record.interiorState === PurchaseOrderInsideWorkState.SUBMIT_ORDER
// 外部状态: 待提交订单 可以取消订单
const showEditOrCancel = record.externalState === PurchaseOrderOutWorkState.SUBMIT_ORDER
return <>
{ canSubmit && <Button type='link' onClick={() => handleSubmit(record.id)}>提交订单</Button>}
{
showEditOrCancel &&
<Popconfirm title='是否要取消该订单' onConfirm={() => handleCancel(record.id)}>
<Button type='link'>取消订单</Button>
</Popconfirm>
}
</>
}
}
])
return {
columns: secondColumns,
ref,
rowSelection,
rowSelectionCtl
}
}
import React, { useRef } from 'react'
import { Button, Popconfirm } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { history } from 'umi'
import { PublicApi } from '@/services/api'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { PurchaseOrderInsideWorkState, PurchaseOrderOutWorkState } from '@/constants/order'
// 业务hooks, 待新增订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const [rowSelection, rowSelectionCtl] = useRowSelectionTable({customKey: 'id'})
const handleSubmit = async (id) => {
history.push(`/memberCenter/tranactionAbility/purchaseOrder/readySubmitOrder/detail?id=${id}&preview=0`)
}
// 取消订单
const handleCancel = async (id) => {
await PublicApi.postOrderPurchaseOrderCancel({id})
ref.current.reload()
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => {
const canSubmit = record.externalState === PurchaseOrderOutWorkState.SUBMIT_ORDER && record.interiorState === PurchaseOrderInsideWorkState.SUBMIT_ORDER
// 外部状态: 待提交订单 可以取消订单
const showEditOrCancel = record.externalState === PurchaseOrderOutWorkState.SUBMIT_ORDER
return <>
{ canSubmit && <Button type='link' onClick={() => handleSubmit(record.id)}>提交订单</Button>}
{
showEditOrCancel &&
<Popconfirm title='是否要取消该订单' onConfirm={() => handleCancel(record.id)}>
<Button type='link'>取消订单</Button>
</Popconfirm>
}
</>
}
}
])
return {
columns: secondColumns,
ref,
rowSelection,
rowSelectionCtl
}
}
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { PublicApi } from '@/services/api'
import { history } from 'umi'
import { PurchaseOrderInsideWorkState } from '@/constants'
// 业务hooks, 待新增订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const handleSubmit = async (record) => {
if (record.interiorState === PurchaseOrderInsideWorkState.TWO_LEVEL_AUDIT_ORDER) {
history.push(`/memberCenter/tranactionAbility/purchaseOrder/secondApprovedOrder/detail?id=${record.id}`)
}
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
<Button type='link' onClick={() => handleSubmit(record)}>提交审核</Button>
</>
}
])
return {
columns: secondColumns,
ref
}
}
import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { history } from 'umi'
import { PurchaseOrderInsideWorkState } from '@/constants/order'
// 业务hooks, 待新增订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const handleSubmit = async (record) => {
if (record.interiorState === PurchaseOrderInsideWorkState.TWO_LEVEL_AUDIT_ORDER) {
history.push(`/memberCenter/tranactionAbility/purchaseOrder/secondApprovedOrder/detail?id=${record.id}`)
}
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
<Button type='link' onClick={() => handleSubmit(record)}>提交审核</Button>
</>
}
])
return {
columns: secondColumns,
ref
}
}
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import React, { useRef } from 'react'
import { history, Link } from 'umi'
import { Button, Row, Col, Modal } from 'antd'
import { Button, Modal } from 'antd'
import { PublicApi } from '@/services/api'
import EyePreview from '@/components/EyePreview'
import { formatTimeString } from '@/utils'
import { ORDER_TYPE, PurchaseOrderInsideWorkState, SaleOrderInsideWorkState, DOC_TYPE_SALES_INVOICE } from '@/constants'
import { ORDER_TYPE, SaleOrderInsideWorkState } from '@/constants/order'
import StatusColors from '@/pages/transaction/components/StatusColors'
import { FieldTimeOutlined } from '@ant-design/icons'
import {
Chart,
Interval,
Axis,
Tooltip,
Coordinate,
Legend,
View,
Annotation,
} from 'bizcharts';
import DataSet from "@antv/data-set";
import { DOC_TYPE_SALES_INVOICE } from '@/constants/commodity'
// 业务hooks, 待支付订单
export const useSelfTable = () => {
......
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import React from 'react'
import { formatTimeString } from '@/utils'
import { ORDER_TYPE, PurchaseOrderInsideWorkStateTexts, SaleOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants'
import { ORDER_TYPE, SaleOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants/order'
import StatusColors from '@/pages/transaction/components/StatusColors'
import EyePreview from '@/components/EyePreview'
import { history } from 'umi'
......
import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { history } from 'umi'
import { PublicApi } from '@/services/api'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { PurchaseOrderInsideWorkState, SaleOrderInsideWorkState } from '@/constants'
// 业务hooks, 待新增订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const [rowSelection, rowSelectionCtl] = useRowSelectionTable({customKey: 'id'})
const handleSubmit = async (record) => {
if (record.purchaseOrderInteriorState === SaleOrderInsideWorkState.ONE_LEVEL_AUDIT_ORDER) {
history.push(`/memberCenter/tranactionAbility/saleOrder/firstApprovedOrder/detail?id=${record.id}`)
}
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
{
record.purchaseOrderInteriorState === SaleOrderInsideWorkState.ONE_LEVEL_AUDIT_ORDER &&
<Button type='link' onClick={() => handleSubmit(record)}>提交审核</Button>
}
</>
}
])
return {
columns: secondColumns,
ref,
rowSelection,
rowSelectionCtl
}
}
import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { history } from 'umi'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { SaleOrderInsideWorkState } from '@/constants/order'
// 业务hooks, 待新增订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const [rowSelection, rowSelectionCtl] = useRowSelectionTable({customKey: 'id'})
const handleSubmit = async (record) => {
if (record.purchaseOrderInteriorState === SaleOrderInsideWorkState.ONE_LEVEL_AUDIT_ORDER) {
history.push(`/memberCenter/tranactionAbility/saleOrder/firstApprovedOrder/detail?id=${record.id}`)
}
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
{
record.purchaseOrderInteriorState === SaleOrderInsideWorkState.ONE_LEVEL_AUDIT_ORDER &&
<Button type='link' onClick={() => handleSubmit(record)}>提交审核</Button>
}
</>
}
])
return {
columns: secondColumns,
ref,
rowSelection,
rowSelectionCtl
}
}
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import React, { useRef, useState } from 'react'
import { Card, Button, Modal } from 'antd'
import { Card, Button } from 'antd'
import { StandardTable } from 'god'
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import { PublicApi } from '@/services/api'
import { baseOrderListColumns } from './constant'
import { history } from 'umi'
import { PurchaseOrderInsideWorkState, PurchaseOrderOutWorkState } from '@/constants'
import { PurchaseOrderOutWorkState } from '@/constants/order'
import { tableListSchema } from '../_public/order/constant'
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch'
import { FORM_FILTER_PATH } from '@/formSchema/const'
import DateRangePickerUnix from '@/components/NiceForm/components/DateRangePickerUnix'
import Submit from '@/components/NiceForm/components/Submit'
import moment from 'moment'
import NiceForm from '@/components/NiceForm'
import { createFormActions } from '@formily/antd'
......
import React, { useRef } from 'react'
import { history, Link } from 'umi'
import { Button, Row, Col } from 'antd'
import { PublicApi } from '@/services/api'
import { Button } from 'antd'
import EyePreview from '@/components/EyePreview'
import { formatTimeString } from '@/utils'
import { ORDER_TYPE, PurchaseOrderInsideWorkState, SaleOrderInsideWorkState } from '@/constants'
import { ORDER_TYPE, SaleOrderInsideWorkState } from '@/constants/order'
import StatusColors from '@/pages/transaction/components/StatusColors'
import { FieldTimeOutlined } from '@ant-design/icons'
import qs from 'querystring'
......
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import React, { useRef } from 'react'
import { Button, Popconfirm } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { PublicApi } from '@/services/api'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { history } from 'umi'
import { PurchaseOrderInsideWorkState, PurchaseOrderOutWorkState } from '@/constants'
// 业务hooks, 待审核订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const [rowSelection, rowSelectionCtl] = useRowSelectionTable({customKey: 'id'})
const handleSubmit = async (id) => {
history.push(`/memberCenter/tranactionAbility/saleOrder/readyApprovedOrder/detail?id=${id}`)
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => {
return <>
<Button type='link' onClick={() => handleSubmit(record.id)}>提交审核</Button>
</>
}
}
])
return {
columns: secondColumns,
ref,
rowSelection,
rowSelectionCtl
}
}
import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { history } from 'umi'
// 业务hooks, 待审核订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const [rowSelection, rowSelectionCtl] = useRowSelectionTable({customKey: 'id'})
const handleSubmit = async (id) => {
history.push(`/memberCenter/tranactionAbility/saleOrder/readyApprovedOrder/detail?id=${id}`)
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => {
return <>
<Button type='link' onClick={() => handleSubmit(record.id)}>提交审核</Button>
</>
}
}
])
return {
columns: secondColumns,
ref,
rowSelection,
rowSelectionCtl
}
}
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import React, { useState, useCallback, useRef } from 'react';
import { OrderDetailContext } from '../../../_public/order/context';
import { PublicApi } from '@/services/api';
import { Button } from 'antd';
import OrderDetailHeader from '@/pages/transaction/components/OrderDetailHeader';
import OrderDetailWrapper from '@/pages/transaction/components/OrderDetailWrapper';
import PreLoading from '@/components/PreLoading';
import { useOrderDetail } from '../../../_public/order/effects/useOrderDetail';
import OrderHandDeleved from '../../../components/orderHandDeleved';
import { history } from 'umi'
import { useHttpRequest } from '@/hooks/useHttpRequest';
import OrderDetailSection from '../../../components/orderDetailSection';
import { SaleOrderInsideWorkState, DeliverySideState } from '@/constants';
const ReadyConfirmDelevedOrderDetail: React.FC = () => {
const { formContext, id, detailList } = useOrderDetail({type: 'saleOrder'})
// 是否是手工发货
const isHandDeleved = formContext.data && formContext.data.purchaseOrderInteriorState === SaleOrderInsideWorkState.HAND_DELEVED_ORDER
// 所有发货单都是否已经发货了
const isShowBtn = isHandDeleved || formContext.data?.orderDeliveryDetailsResponses?.some(v => v.interiorState === DeliverySideState.ADD_LOGISTICS_ORDER)
const approvedRef = useRef<any>({})
const handleClick = useCallback(() => {
if (isHandDeleved) {
approvedRef.current.setVisible(true)
} else {
const deleveBox = document.querySelector('#deleveBox') as any
window.scrollTo(0, deleveBox.offsetTop)
}
}, [isHandDeleved])
return (
<div>
<OrderDetailContext.Provider value={formContext}>
<OrderDetailHeader detailList={detailList} detailData={formContext.data} extraRight={
isShowBtn && <Button type='primary' onClick={handleClick}>
{ isHandDeleved ? '确认手工发货' : '去发货' }
</Button>
} />
<OrderDetailWrapper>
<PreLoading loading={!formContext.data} active paragraph={{rows: 6}}>
<OrderDetailSection formContext={formContext} type='saleOrder'/>
</PreLoading>
</OrderDetailWrapper>
{/* 提交时触发的弹窗集合 */}
<OrderHandDeleved
currentRef={approvedRef}
/>
</OrderDetailContext.Provider>
</div>
);
};
export default ReadyConfirmDelevedOrderDetail;
\ No newline at end of file
import React, { useCallback, useRef } from 'react';
import { OrderDetailContext } from '../../../_public/order/context';
import { Button } from 'antd';
import OrderDetailHeader from '@/pages/transaction/components/OrderDetailHeader';
import OrderDetailWrapper from '@/pages/transaction/components/OrderDetailWrapper';
import PreLoading from '@/components/PreLoading';
import { useOrderDetail } from '../../../_public/order/effects/useOrderDetail';
import OrderHandDeleved from '../../../components/orderHandDeleved';
import OrderDetailSection from '../../../components/orderDetailSection';
import { SaleOrderInsideWorkState, DeliverySideState } from '@/constants/order';
const ReadyConfirmDelevedOrderDetail: React.FC = () => {
const { formContext, id, detailList } = useOrderDetail({type: 'saleOrder'})
// 是否是手工发货
const isHandDeleved = formContext.data && formContext.data.purchaseOrderInteriorState === SaleOrderInsideWorkState.HAND_DELEVED_ORDER
// 所有发货单都是否已经发货了
const isShowBtn = isHandDeleved || formContext.data?.orderDeliveryDetailsResponses?.some(v => v.interiorState === DeliverySideState.ADD_LOGISTICS_ORDER)
const approvedRef = useRef<any>({})
const handleClick = useCallback(() => {
if (isHandDeleved) {
approvedRef.current.setVisible(true)
} else {
const deleveBox = document.querySelector('#deleveBox') as any
window.scrollTo(0, deleveBox.offsetTop)
}
}, [isHandDeleved])
return (
<div>
<OrderDetailContext.Provider value={formContext}>
<OrderDetailHeader detailList={detailList} detailData={formContext.data} extraRight={
isShowBtn && <Button type='primary' onClick={handleClick}>
{ isHandDeleved ? '确认手工发货' : '去发货' }
</Button>
} />
<OrderDetailWrapper>
<PreLoading loading={!formContext.data} active paragraph={{rows: 6}}>
<OrderDetailSection formContext={formContext} type='saleOrder'/>
</PreLoading>
</OrderDetailWrapper>
{/* 提交时触发的弹窗集合 */}
<OrderHandDeleved
currentRef={approvedRef}
/>
</OrderDetailContext.Provider>
</div>
);
};
export default ReadyConfirmDelevedOrderDetail;
import React, { useRef } from 'react'
import { history, Link } from 'umi'
import { Button, Row, Col } from 'antd'
import { PublicApi } from '@/services/api'
import { Button } from 'antd'
import EyePreview from '@/components/EyePreview'
import { formatTimeString } from '@/utils'
import { ORDER_TYPE, PurchaseOrderInsideWorkState, SaleOrderInsideWorkState } from '@/constants'
import { ORDER_TYPE, SaleOrderInsideWorkState } from '@/constants/order'
import StatusColors from '@/pages/transaction/components/StatusColors'
import { FieldTimeOutlined } from '@ant-design/icons'
import {
Chart,
Interval,
Axis,
Tooltip,
Coordinate,
Legend,
View,
Annotation,
} from 'bizcharts';
import DataSet from "@antv/data-set";
// 业务hooks, 待支付订单
export const useSelfTable = () => {
......
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import React, { useRef } from 'react'
import { history, Link } from 'umi'
import { Button, Row, Col } from 'antd'
import { PublicApi } from '@/services/api'
import { Button } from 'antd'
import EyePreview from '@/components/EyePreview'
import { formatTimeString } from '@/utils'
import { ORDER_TYPE, PurchaseOrderInsideWorkState, SaleOrderInsideWorkState } from '@/constants'
import { ORDER_TYPE, SaleOrderInsideWorkState } from '@/constants/order'
import StatusColors from '@/pages/transaction/components/StatusColors'
import { FieldTimeOutlined } from '@ant-design/icons'
import {
Chart,
Interval,
Axis,
Tooltip,
Coordinate,
Legend,
View,
Annotation,
} from 'bizcharts';
import DataSet from "@antv/data-set";
// 业务hooks
export const useSelfTable = () => {
......
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import React, { useRef } from 'react'
import { history } from 'umi'
import { Button, Row, Col } from 'antd'
import { PublicApi } from '@/services/api'
import EyePreview from '@/components/EyePreview'
import { formatTimeString } from '@/utils'
import { ORDER_TYPE } from '@/constants'
import StatusColors from '@/pages/transaction/components/StatusColors'
import { FieldTimeOutlined } from '@ant-design/icons'
import {
Chart,
Interval,
Coordinate,
Legend,
View
} from 'bizcharts';
import DataSet from "@antv/data-set";
// 圆形环状金额显示
const CircleChart = props => {
const { sumPrice = 100, alreadyPay = 10 } = props
const { DataView } = DataSet;
const dv = new DataView();
const userData = [
{ type: '总金额', value: sumPrice - alreadyPay },
{ type: '已支付', value: alreadyPay }
];
const userDv = new DataView();
userDv.source(userData).transform({
type: 'percent',
field: 'value',
dimension: 'type',
as: 'percent',
});
return <Chart placeholder={false} height={40} autoFit>
<Legend visible={false} />
{/* 绘制图形 */}
<View data={userDv.rows}>
<Coordinate type="theta" innerRadius={0.75} />
<Interval
position="percent"
adjust="stack"
color={['type', ['#EEF0F3', '#41CC9E']]}
tooltip={false}
/>
</View>
</Chart>
}
// 业务hooks, 待支付订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const payOrderColumns: any[] = [
{
title: '订单号',
align: 'center',
dataIndex: 'orderNo',
key: 'orderNo',
render: (text, record) => {
// 查看订单, 需根据状态显示不同schema
return (
<EyePreview url={`/memberCenter/tranactionAbility/saleOrder/readyPayResult/preview?id=${record.id}`}>
{text}
</EyePreview>
)
}
},
{
title: '订单摘要/下单时间',
align: 'center',
dataIndex: 'orderThe',
key: 'orderThe',
render: (text, record) => <>
<div>{text}</div>
<div><FieldTimeOutlined />{formatTimeString(record.createTime)}</div>
</>,
width: 200
},
{
title: '采购会员',
align: 'left',
dataIndex: 'memberName',
key: 'memberName',
},
{
title: '总金额/已支付(元)',
align: 'center',
dataIndex: 'sumPrice',
key: 'sumPrice',
render: (text, record) => <Row justify='space-between'>
<Col>
<div><span>总金额:</span><span>{record.sumPrice}</span></div>
<div><span>已支付:</span><span>{record.alreadyPay || 0}</span></div>
</Col>
<Col style={{ width: 40 }}>
<CircleChart sumPrice={record.sumPrice} alreadyPay={record.alreadyPay} />
</Col>
</Row>,
width: 200
},
{ title: '已支付', align: 'center', dataIndex: 'alreadyPay', key: 'alreadyPay' },
{ title: '当前支付', align: 'center', dataIndex: 'currentPayments', render: (text, record) => text },
{
title: '订单类型',
align: 'center',
dataIndex: 'type',
key: 'type',
render: (text) => ORDER_TYPE[text]
},
{
title: '外部状态',
align: 'center',
dataIndex: 'externalState',
key: 'externalState',
render: text => <StatusColors status={text} type='out' />
},
{
title: '内部状态',
align: 'center',
dataIndex: 'purchaseOrderInteriorState',
key: 'purchaseOrderInteriorState',
render: (text) => <StatusColors status={text} type='saleInside' />
},
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
<Button type='link' onClick={() => handleConfirm(record)}>确认</Button>
{/* <Button type='link' onClick={() => handleCancel(record.id)}>取消订单</Button> */}
</>
}
]
const handleConfirm = async (record) => {
history.push(`/memberCenter/tranactionAbility/saleOrder/readyPayResult/detail?id=${record.id}`)
}
const handleCancel = async (id) => {
await PublicApi.postOrderPurchaseOrderCancel({ id })
ref.current.reload()
}
return {
columns: payOrderColumns
}
}
import React, { useRef } from 'react'
import { history } from 'umi'
import { Button, Row, Col } from 'antd'
import { PublicApi } from '@/services/api'
import EyePreview from '@/components/EyePreview'
import { formatTimeString } from '@/utils'
import { ORDER_TYPE } from '@/constants/order'
import StatusColors from '@/pages/transaction/components/StatusColors'
import { FieldTimeOutlined } from '@ant-design/icons'
import {
Chart,
Interval,
Coordinate,
Legend,
View
} from 'bizcharts';
import DataSet from "@antv/data-set";
// 圆形环状金额显示
const CircleChart = props => {
const { sumPrice = 100, alreadyPay = 10 } = props
const { DataView } = DataSet;
const dv = new DataView();
const userData = [
{ type: '总金额', value: sumPrice - alreadyPay },
{ type: '已支付', value: alreadyPay }
];
const userDv = new DataView();
userDv.source(userData).transform({
type: 'percent',
field: 'value',
dimension: 'type',
as: 'percent',
});
return <Chart placeholder={false} height={40} autoFit>
<Legend visible={false} />
{/* 绘制图形 */}
<View data={userDv.rows}>
<Coordinate type="theta" innerRadius={0.75} />
<Interval
position="percent"
adjust="stack"
color={['type', ['#EEF0F3', '#41CC9E']]}
tooltip={false}
/>
</View>
</Chart>
}
// 业务hooks, 待支付订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const payOrderColumns: any[] = [
{
title: '订单号',
align: 'center',
dataIndex: 'orderNo',
key: 'orderNo',
render: (text, record) => {
// 查看订单, 需根据状态显示不同schema
return (
<EyePreview url={`/memberCenter/tranactionAbility/saleOrder/readyPayResult/preview?id=${record.id}`}>
{text}
</EyePreview>
)
}
},
{
title: '订单摘要/下单时间',
align: 'center',
dataIndex: 'orderThe',
key: 'orderThe',
render: (text, record) => <>
<div>{text}</div>
<div><FieldTimeOutlined />{formatTimeString(record.createTime)}</div>
</>,
width: 200
},
{
title: '采购会员',
align: 'left',
dataIndex: 'memberName',
key: 'memberName',
},
{
title: '总金额/已支付(元)',
align: 'center',
dataIndex: 'sumPrice',
key: 'sumPrice',
render: (text, record) => <Row justify='space-between'>
<Col>
<div><span>总金额:</span><span>{record.sumPrice}</span></div>
<div><span>已支付:</span><span>{record.alreadyPay || 0}</span></div>
</Col>
<Col style={{ width: 40 }}>
<CircleChart sumPrice={record.sumPrice} alreadyPay={record.alreadyPay} />
</Col>
</Row>,
width: 200
},
{ title: '已支付', align: 'center', dataIndex: 'alreadyPay', key: 'alreadyPay' },
{ title: '当前支付', align: 'center', dataIndex: 'currentPayments', render: (text, record) => text },
{
title: '订单类型',
align: 'center',
dataIndex: 'type',
key: 'type',
render: (text) => ORDER_TYPE[text]
},
{
title: '外部状态',
align: 'center',
dataIndex: 'externalState',
key: 'externalState',
render: text => <StatusColors status={text} type='out' />
},
{
title: '内部状态',
align: 'center',
dataIndex: 'purchaseOrderInteriorState',
key: 'purchaseOrderInteriorState',
render: (text) => <StatusColors status={text} type='saleInside' />
},
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
<Button type='link' onClick={() => handleConfirm(record)}>确认</Button>
{/* <Button type='link' onClick={() => handleCancel(record.id)}>取消订单</Button> */}
</>
}
]
const handleConfirm = async (record) => {
history.push(`/memberCenter/tranactionAbility/saleOrder/readyPayResult/detail?id=${record.id}`)
}
const handleCancel = async (id) => {
await PublicApi.postOrderPurchaseOrderCancel({ id })
ref.current.reload()
}
return {
columns: payOrderColumns
}
}
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
......@@ -9,7 +9,7 @@ import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilte
import { FORM_FILTER_PATH } from '@/formSchema/const'
import Submit from '@/components/NiceForm/components/Submit'
import DateRangePickerUnix from '@/components/NiceForm/components/DateRangePickerUnix'
import { SaleOrderInsideWorkState } from '@/constants'
import { SaleOrderInsideWorkState } from '@/constants/order'
import { useHttpRequest } from '@/hooks/useHttpRequest'
import '../index.less'
......
import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { history } from 'umi'
import { PublicApi } from '@/services/api'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { PurchaseOrderInsideWorkState, SaleOrderInsideWorkState } from '@/constants'
// 业务hooks
export const useSelfTable = () => {
const ref = useRef<any>({})
const [rowSelection, rowSelectionCtl] = useRowSelectionTable({customKey: 'id'})
const handleSubmit = async (record) => {
if (record.purchaseOrderInteriorState === SaleOrderInsideWorkState.FILLING_ORDER) {
history.push(`/memberCenter/tranactionAbility/saleOrder/readyReturnDocument/detail?id=${record.id}`)
}
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
{
record.purchaseOrderInteriorState === SaleOrderInsideWorkState.FILLING_ORDER &&
<Button type='link' onClick={() => handleSubmit(record)}>归档</Button>
}
</>
}
])
return {
columns: secondColumns,
ref,
rowSelection,
rowSelectionCtl
}
}
import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { history } from 'umi'
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'
import { SaleOrderInsideWorkState } from '@/constants/order'
// 业务hooks
export const useSelfTable = () => {
const ref = useRef<any>({})
const [rowSelection, rowSelectionCtl] = useRowSelectionTable({customKey: 'id'})
const handleSubmit = async (record) => {
if (record.purchaseOrderInteriorState === SaleOrderInsideWorkState.FILLING_ORDER) {
history.push(`/memberCenter/tranactionAbility/saleOrder/readyReturnDocument/detail?id=${record.id}`)
}
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
{
record.purchaseOrderInteriorState === SaleOrderInsideWorkState.FILLING_ORDER &&
<Button type='link' onClick={() => handleSubmit(record)}>归档</Button>
}
</>
}
])
return {
columns: secondColumns,
ref,
rowSelection,
rowSelectionCtl
}
}
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { PublicApi } from '@/services/api'
import { history } from 'umi'
import { PurchaseOrderInsideWorkState, SaleOrderInsideWorkState } from '@/constants'
// 业务hooks, 待新增订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const handleSubmit = async (record) => {
if (record.purchaseOrderInteriorState === SaleOrderInsideWorkState.TWO_LEVEL_AUDIT_ORDER) {
history.push(`/memberCenter/tranactionAbility/saleOrder/secondApprovedOrder/detail?id=${record.id}`)
}
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
<Button type='link' onClick={() => handleSubmit(record)}>提交审核</Button>
</>
}
])
return {
columns: secondColumns,
ref
}
}
import React, { useRef } from 'react'
import { Button } from 'antd'
import { baseOrderListColumns } from '../../constant'
import { history } from 'umi'
import { SaleOrderInsideWorkState } from '@/constants/order'
// 业务hooks, 待新增订单
export const useSelfTable = () => {
const ref = useRef<any>({})
const handleSubmit = async (record) => {
if (record.purchaseOrderInteriorState === SaleOrderInsideWorkState.TWO_LEVEL_AUDIT_ORDER) {
history.push(`/memberCenter/tranactionAbility/saleOrder/secondApprovedOrder/detail?id=${record.id}`)
}
}
const secondColumns: any[] = baseOrderListColumns.concat([
{
title: '操作',
align: 'center',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
<Button type='link' onClick={() => handleSubmit(record)}>提交审核</Button>
</>
}
])
return {
columns: secondColumns,
ref
}
}
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
import { OrderTypeMap } from '@/constants/order';
/**
* 除了订单必填字段, 默认
......
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