Commit 59f25fd9 authored by 前端-黄佳鑫's avatar 前端-黄佳鑫

询价报价&商品询价

parent a904cacf
...@@ -22,27 +22,32 @@ const TranactionRoute = { ...@@ -22,27 +22,32 @@ const TranactionRoute = {
name:'electronicContracts', name:'electronicContracts',
key:'electronicContracts', key:'electronicContracts',
routes: [ routes: [
// 电子签章申请
{ {
path: '/memberCenter/tranactionAbility/electronicContracts/apply', path: '/memberCenter/tranactionAbility/electronicContracts/apply',
name: 'apply', name: 'apply',
component: '@/pages/transaction/electronicContracts/apply/index', component: '@/pages/transaction/electronicContracts/apply/index',
}, },
// 合同模板参数查询
{ {
path: '/memberCenter/tranactionAbility/electronicContracts/classSearch', path: '/memberCenter/tranactionAbility/electronicContracts/classSearch',
name: 'classSearch', name: 'classSearch',
component: '@/pages/transaction/electronicContracts/classSearch/index', component: '@/pages/transaction/electronicContracts/classSearch/index',
}, },
// 合同模板
{ {
path: '/memberCenter/tranactionAbility/electronicContracts/template', path: '/memberCenter/tranactionAbility/electronicContracts/template',
name: 'template', name: 'template',
component: '@/pages/transaction/electronicContracts/template/index', component: '@/pages/transaction/electronicContracts/template/index',
}, },
// 企业信息核验
{ {
path: '/memberCenter/tranactionAbility/electronicContracts/enterpriseCertified', path: '/memberCenter/tranactionAbility/electronicContracts/enterpriseCertified',
name: 'enterpriseCertified', name: 'enterpriseCertified',
hideInMenu: true, hideInMenu: true,
component: '@/pages/transaction/electronicContracts/enterpriseCertified/index', component: '@/pages/transaction/electronicContracts/enterpriseCertified/index',
}, },
// 新建合同模板
{ {
path: '/memberCenter/tranactionAbility/electronicContracts/addContract', path: '/memberCenter/tranactionAbility/electronicContracts/addContract',
name: 'addContract', name: 'addContract',
...@@ -265,6 +270,49 @@ const TranactionRoute = { ...@@ -265,6 +270,49 @@ const TranactionRoute = {
] ]
}, },
/** /**
* @description: 询价报价
* @param {type}
* @return {type}
*/
{
path:'/memberCenter/tranactionAbility/inquiryQuote',
name:'inquiryQuote',
key:'inquiryQuote',
routes: [
//询价单查询
{
path: '/memberCenter/tranactionAbility/inquiryQuote/enquiryOrder',
name: 'enquiryOrder',
component: '@/pages/transaction/inquiryQuote/enquiryOrder'
},
//报价单查询
{
path: '/memberCenter/tranactionAbility/inquiryQuote/quoteOrder',
name: 'quoteOrder',
component: '@/pages/transaction/inquiryQuote/quoteOrder'
},
// 待审核询价单(一级)
{
path: '/memberCenter/tranactionAbility/inquiryQuote/pendingReviewOne',
name: 'pendingReviewOne',
component: '@/pages/transaction/inquiryQuote/pendingReviewOne'
},
// 待审核询价单(二级)
{
path: '/memberCenter/tranactionAbility/inquiryQuote/pendingReviewTwo',
name: 'pendingReviewTwo',
component: '@/pages/transaction/inquiryQuote/pendingReviewTwo'
},
// 详情
{
path: '/memberCenter/tranactionAbility/inquiryQuote/components/details',
name: 'details',
hideInMenu: true,
component: '@/pages/transaction/inquiryQuote/components/details'
},
]
},
/**
* @description: 商品询价 * @description: 商品询价
* @param {type} * @param {type}
* @return {type} * @return {type}
...@@ -274,37 +322,44 @@ const TranactionRoute = { ...@@ -274,37 +322,44 @@ const TranactionRoute = {
name:'goodsOffer', name:'goodsOffer',
key:'goodsOffer', key:'goodsOffer',
routes:[ routes:[
// 询价单查询
{ {
path: '/memberCenter/tranactionAbility/goodsOffer/enquiryOrder', path: '/memberCenter/tranactionAbility/goodsOffer/enquiryOrder',
name: 'enquiryOrder', name: 'enquiryOrder',
component: '@/pages/transaction/goodsOffer/enquiryOrder' component: '@/pages/transaction/goodsOffer/enquiryOrder'
}, },
// 待新增询价单
{ {
path: '/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder', path: '/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder',
name: 'addEnquiryOrder', name: 'addEnquiryOrder',
component: '@/pages/transaction/goodsOffer/addEnquiryOrder' component: '@/pages/transaction/goodsOffer/addEnquiryOrder'
}, },
// 新建报价单
{ {
path: '/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder/add', path: '/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder/add',
name: 'add', name: 'add',
hideInMenu: true, hideInMenu: true,
component: '@/pages/transaction/goodsOffer/addEnquiryOrder/add' component: '@/pages/transaction/goodsOffer/addEnquiryOrder/add'
}, },
// 待审核询价单(一级)
{ {
path: '/memberCenter/tranactionAbility/goodsOffer/pendingReviewOne', path: '/memberCenter/tranactionAbility/goodsOffer/pendingReviewOne',
name: 'pendingReviewOne', name: 'pendingReviewOne',
component: '@/pages/transaction/goodsOffer/pendingReviewOne' component: '@/pages/transaction/goodsOffer/pendingReviewOne'
}, },
// 待审核询价单(二级)
{ {
path: '/memberCenter/tranactionAbility/goodsOffer/pendingReviewTwo', path: '/memberCenter/tranactionAbility/goodsOffer/pendingReviewTwo',
name: 'pendingReviewTwo', name: 'pendingReviewTwo',
component: '@/pages/transaction/goodsOffer/pendingReviewTwo' component: '@/pages/transaction/goodsOffer/pendingReviewTwo'
}, },
// 待提交询价单
{ {
path: '/memberCenter/tranactionAbility/goodsOffer/pendingSubmit', path: '/memberCenter/tranactionAbility/goodsOffer/pendingSubmit',
name: 'pendingSubmit', name: 'pendingSubmit',
component: '@/pages/transaction/goodsOffer/pendingSubmit' component: '@/pages/transaction/goodsOffer/pendingSubmit'
}, },
// 详情
{ {
path: '/memberCenter/tranactionAbility/goodsOffer/components/details', path: '/memberCenter/tranactionAbility/goodsOffer/components/details',
name: 'details', name: 'details',
......
...@@ -831,3 +831,11 @@ export const DeliverySideStateTexts = { ...@@ -831,3 +831,11 @@ export const DeliverySideStateTexts = {
5: '待回单订单', 5: '待回单订单',
6: '已回单', 6: '已回单',
} }
// 询价外部状态
export const InquiryStateTexts = {
1: '待提交',
2: '待确认',
3: '接受报价',
4: '不接受报价',
}
\ No newline at end of file
...@@ -120,8 +120,7 @@ export default { ...@@ -120,8 +120,7 @@ export default {
'menu.tranactionAbility.electronicContracts.classSearch': '合同模板参数查询', 'menu.tranactionAbility.electronicContracts.classSearch': '合同模板参数查询',
'menu.tranactionAbility.electronicContracts.template': '合同模板', 'menu.tranactionAbility.electronicContracts.template': '合同模板',
'menu.tranactionAbility.electronicContracts.addContract': '新建合同模板', 'menu.tranactionAbility.electronicContracts.addContract': '新建合同模板',
// 询价报价
// 商品询价
'menu.tranactionAbility.goodsOffer': '商品询价', 'menu.tranactionAbility.goodsOffer': '商品询价',
'menu.tranactionAbility.goodsOffer.enquiryOrder': '询价单查询', 'menu.tranactionAbility.goodsOffer.enquiryOrder': '询价单查询',
'menu.tranactionAbility.goodsOffer.addEnquiryOrder': '待新增询价单', 'menu.tranactionAbility.goodsOffer.addEnquiryOrder': '待新增询价单',
...@@ -130,6 +129,16 @@ export default { ...@@ -130,6 +129,16 @@ export default {
'menu.tranactionAbility.goodsOffer.pendingReviewOne': '待审核询价单(一级)', 'menu.tranactionAbility.goodsOffer.pendingReviewOne': '待审核询价单(一级)',
'menu.tranactionAbility.goodsOffer.pendingReviewTwo': '待审核询价单(二级)', 'menu.tranactionAbility.goodsOffer.pendingReviewTwo': '待审核询价单(二级)',
'menu.tranactionAbility.goodsOffer.pendingSubmit': '待提交询价单', 'menu.tranactionAbility.goodsOffer.pendingSubmit': '待提交询价单',
// 商品询价
'menu.tranactionAbility.inquiryQuote': '询价报价',
'menu.tranactionAbility.inquiryQuote.enquiryOrder': '询价单查询',
'menu.tranactionAbility.inquiryQuote.quoteOrder': '报价单查询',
'menu.tranactionAbility.inquiryQuote.addEnquiryOrder': '待新增询价单',
'menu.tranactionAbility.inquiryQuote.add': '新建询价单',
'menu.tranactionAbility.inquiryQuote.details': '新建询价单',
'menu.tranactionAbility.inquiryQuote.pendingReviewOne': '待审核询价单(一级)',
'menu.tranactionAbility.inquiryQuote.pendingReviewTwo': '待审核询价单(二级)',
'menu.tranactionAbility.inquiryQuote.pendingSubmit': '待提交询价单',
//进销存 //进销存
'menu.tranactionAbility.stockSellStorage': '进销存', 'menu.tranactionAbility.stockSellStorage': '进销存',
'menu.tranactionAbility.stockSellStorage.warehouse': '仓库', 'menu.tranactionAbility.stockSellStorage.warehouse': '仓库',
......
...@@ -98,23 +98,19 @@ export const filterInteriorStateList = [ ...@@ -98,23 +98,19 @@ export const filterInteriorStateList = [
*/ */
export const filterExternalState = [ export const filterExternalState = [
{ {
text: '提交询价单', value: 1 text: '待提交', value: 1
}, },
{ {
text: '提交报价单', value: 2 text: '待确认', value: 2
}, },
{ {
text: '确认报价单', value: 3 text: '接受报价', value: 3
}, },
{ {
text: '报价通过', value: 4 text: '不接受报价', value: 4
},
{
text: '报价不通过', value: 5
} }
] ]
/** /**
* @description: 商品询价内部状态筛选 * @description: 商品询价内部状态筛选
* @param {type} * @param {type}
...@@ -136,3 +132,4 @@ export const filterInternalState = [ ...@@ -136,3 +132,4 @@ export const filterInternalState = [
] ]
import React from 'react' import React from 'react'
import { Tag } from 'antd' import { Tag } from 'antd'
import { PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts, PurchaseOrderInsideWorkState, PurchaseOrderOutWorkState, SaleOrderInsideWorkState, SaleOrderInsideWorkStateTexts, PayOutWorkStateTexts, DeliverySideState, DeliverySideStateTexts } from '@/constants' import { PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts, PurchaseOrderInsideWorkState, PurchaseOrderOutWorkState, SaleOrderInsideWorkState, SaleOrderInsideWorkStateTexts, PayOutWorkStateTexts, DeliverySideState, DeliverySideStateTexts, InquiryStateTexts } from '@/constants'
export interface IStatusColor { export interface IStatusColor {
[key: string]: { [key: string]: {
...@@ -12,7 +12,7 @@ export interface IStatusColor { ...@@ -12,7 +12,7 @@ export interface IStatusColor {
// 用于标签状态控制 // 用于标签状态控制
export interface StatusColorsProps { export interface StatusColorsProps {
status: number, status: number,
type: 'out' | 'inside' | 'saleInside' | 'payOut' | 'deliveInside' type: 'out' | 'inside' | 'saleInside' | 'payOut' | 'deliveInside' | 'inquiry'
} }
export enum ORDER_EXAMINE_ENUM { export enum ORDER_EXAMINE_ENUM {
...@@ -92,7 +92,8 @@ const typeMaps = { ...@@ -92,7 +92,8 @@ const typeMaps = {
'inside': PurchaseOrderInsideWorkStateTexts, 'inside': PurchaseOrderInsideWorkStateTexts,
'saleInside': SaleOrderInsideWorkStateTexts, 'saleInside': SaleOrderInsideWorkStateTexts,
'payOut': PayOutWorkStateTexts, 'payOut': PayOutWorkStateTexts,
'deliveInside': DeliverySideStateTexts 'deliveInside': DeliverySideStateTexts,
'inquiry': InquiryStateTexts,
} }
// 订单内部状态显示 // 订单内部状态显示
......
...@@ -13,6 +13,7 @@ import { PublicApi } from '@/services/api' ...@@ -13,6 +13,7 @@ import { PublicApi } from '@/services/api'
const { TabPane } = Tabs; const { TabPane } = Tabs;
const AddQuotes: React.FC<{}> = () => { const AddQuotes: React.FC<{}> = () => {
const { id } = history.location.query; const { id } = history.location.query;
const [count, setCount] = useState<string>('1')
const [memberList, setmemberList] = useState([]); //存放用户信息 const [memberList, setmemberList] = useState([]); //存放用户信息
const [goodsList, setgoodsList] = useState([]); //存放商品 const [goodsList, setgoodsList] = useState([]); //存放商品
const basicInfoRef = useRef<any>({}); const basicInfoRef = useRef<any>({});
...@@ -20,53 +21,61 @@ const AddQuotes: React.FC<{}> = () => { ...@@ -20,53 +21,61 @@ const AddQuotes: React.FC<{}> = () => {
const [editData, setEditData] = useState<any>({}); const [editData, setEditData] = useState<any>({});
useEffect(() => { useEffect(() => {
if(id) { if (id) {
PublicApi.getOrderInquiryListDetails({id}).then(res => { PublicApi.getOrderInquiryListDetails({ id }).then(res => {
if(res.code === 1000) { if (res.code === 1000) {
setEditData(res.data) setEditData(res.data)
} }
}) })
} }
},[]) }, [])
/************* 页面的一些操作start *************/ /************* 页面的一些操作start *************/
const onSumbit = async (params: any) => { const onSumbit = async (params: any) => {
const basicInfo = await basicInfoRef.current.validateFields(); const basicInfo = await basicInfoRef.current.validateFields();
const tradingConditions = await tradingConditionsRef.current.validateFields(); if (count === '3') {
const basicInfoData = basicInfo.data; const tradingConditions = await tradingConditionsRef.current.validateFields();
const tradingConditionsData = tradingConditions.data; const basicInfoData = basicInfo.data;
if( basicInfo.state && tradingConditions.state) { const tradingConditionsData = tradingConditions.data;
const parmas = { if (basicInfo.state && tradingConditions.state) {
inquiryListProductRequests: goodsList, // 商品列表 ,InquiryListProductRequest const parmas = {
...basicInfoData, inquiryListProductRequests: goodsList, // 商品列表 ,InquiryListProductRequest
...tradingConditionsData, ...basicInfoData,
memberName: memberList[0].name, ...tradingConditionsData,
memberId: memberList[0].memberId memberName: memberList[0].name,
} memberId: memberList[0].memberId
if(id) { }
console.log(parmas) if (id) {
console.log(parmas)
} else {
await PublicApi.postOrderInquiryListAdd(parmas).then(res => {
if (res.code === 1000) {
console.log(res.data)
}
})
}
} else { } else {
await PublicApi.postOrderInquiryListAdd(parmas).then(res => { message.error('有必填字段没选择,请检查!');
if(res.code === 1000) {
console.log(res.data)
}
})
} }
} else { }else {
message.error('有必填字段没选择,请检查!'); message.error('有必填字段没选择,请检查!');
} }
} }
// 获取到会员信息 // 获取到会员信息
const getMemberList = (list: any) => { const getMemberList = (list: any) => {
setmemberList(list); setmemberList(list);
} }
// 获取添加的商品列表 // 获取添加的商品列表
const getGoodsList = (list:any) => { const getGoodsList = (list: any) => {
setgoodsList(list) setgoodsList(list)
} }
/************* 页面的一些操作end *************/ /************* 页面的一些操作end *************/
const handleClick = (key: string) => {
if (key === '3') {
setCount(key)
}
}
return ( return (
<PageHeaderWrapper <PageHeaderWrapper
onBack={() => history.goBack()} onBack={() => history.goBack()}
...@@ -77,7 +86,7 @@ const AddQuotes: React.FC<{}> = () => { ...@@ -77,7 +86,7 @@ const AddQuotes: React.FC<{}> = () => {
} }
> >
<Card> <Card>
<Tabs> <Tabs onTabClick={handleClick}>
<TabPane tab="基本信息" key="1"> <TabPane tab="基本信息" key="1">
<BasicInfo <BasicInfo
currentRef={basicInfoRef} currentRef={basicInfoRef}
...@@ -102,7 +111,9 @@ const AddQuotes: React.FC<{}> = () => { ...@@ -102,7 +111,9 @@ const AddQuotes: React.FC<{}> = () => {
<Attached /> <Attached />
</TabPane> </TabPane>
<TabPane tab="流转记录" key="5"> <TabPane tab="流转记录" key="5">
<FlowRecord /> <FlowRecord
editData={editData}
/>
</TabPane> </TabPane>
</Tabs> </Tabs>
</Card> </Card>
......
...@@ -34,7 +34,7 @@ const Attached: React.FC<{}> = () => { ...@@ -34,7 +34,7 @@ const Attached: React.FC<{}> = () => {
{...layout} {...layout}
className={styles.revise_style} className={styles.revise_style}
> >
<Form.Item label='附件'> <Form.Item label='附件' name='upload'>
<div className={styles.upload_data}> <div className={styles.upload_data}>
{files.length > 0 && files.map(v => ( {files.length > 0 && files.map(v => (
<div className={styles.upload_item}> <div className={styles.upload_item}>
......
import React, { useState } from 'react'; import React, { useState } from 'react';
import styles from './index.less'; import styles from './index.less';
import { Radio } from 'antd'; import { Radio } from 'antd';
import { StandardTable } from 'god'; import PolymericTable from '@/components/PolymericTable';
import { ColumnType } from 'antd/lib/table/interface'; import { EditableColumns } from '@/components/PolymericTable/interface';
const FlowRecord: React.FC<{}> = () => { export interface parmas {
editData?: any
}
const FlowRecord: React.FC<parmas> = (props) => {
const { editData } = props;
const [radio, setRadio] = useState<string>('outer'); //切换单据 const [radio, setRadio] = useState<string>('outer'); //切换单据
const outerColumns: ColumnType<any>[] = [{ const outerColumns: EditableColumns[] = [{
title: '序号', title: '序号',
dataIndex: 'inquiryListId', dataIndex: 'inquiryListId',
}, { }, {
...@@ -25,7 +30,7 @@ const FlowRecord: React.FC<{}> = () => { ...@@ -25,7 +30,7 @@ const FlowRecord: React.FC<{}> = () => {
title: '审核意见', title: '审核意见',
dataIndex: 'auditOpinion', dataIndex: 'auditOpinion',
}] }]
const insideColumns: ColumnType<any>[] = [{ const insideColumns: EditableColumns[] = [{
title: '序号', title: '序号',
dataIndex: 'inquiryListId', dataIndex: 'inquiryListId',
}, { }, {
...@@ -50,7 +55,7 @@ const FlowRecord: React.FC<{}> = () => { ...@@ -50,7 +55,7 @@ const FlowRecord: React.FC<{}> = () => {
title: '审核意见', title: '审核意见',
dataIndex: 'auditOpinion', dataIndex: 'auditOpinion',
}] }]
const onChange = (e:any) => { const onChange = (e: any) => {
setRadio(e.target.value) setRadio(e.target.value)
} }
return ( return (
...@@ -60,20 +65,18 @@ const FlowRecord: React.FC<{}> = () => { ...@@ -60,20 +65,18 @@ const FlowRecord: React.FC<{}> = () => {
<Radio.Button value="inside">内部单据(0)</Radio.Button> <Radio.Button value="inside">内部单据(0)</Radio.Button>
</Radio.Group> </Radio.Group>
{radio === 'outer' ? {radio === 'outer' ?
<StandardTable <PolymericTable
tableProps={{ dataSource={editData.interiorInquiryListLogResponses}
rowKey: 'id',
pagination: false
}}
columns={outerColumns} columns={outerColumns}
loading={false}
pagination={null}
/> />
: :
<StandardTable <PolymericTable
tableProps={{ dataSource={editData.externalInquiryListLogResponses}
rowKey: 'id',
pagination: false
}}
columns={insideColumns} columns={insideColumns}
loading={false}
pagination={null}
/> />
} }
</div> </div>
......
...@@ -18,8 +18,6 @@ export interface Params { ...@@ -18,8 +18,6 @@ export interface Params {
} }
const AuditModal: React.FC<Params> = (props) => { const AuditModal: React.FC<Params> = (props) => {
const actions = createFormActions()
const useFormEffects = () => { const useFormEffects = () => {
const { setFieldState } = createFormActions() const { setFieldState } = createFormActions()
onFieldChange$('state').subscribe(({ value }) => { onFieldChange$('state').subscribe(({ value }) => {
......
import React, { useRef, useState } from 'react'; import React, { useRef, useState, useEffect } from 'react';
import { Card, Button, Row, Col } from 'antd'; import { Card, Button, Row, Col } from 'antd';
import { history } from 'umi'
import { PageHeaderWrapper } from '@ant-design/pro-layout'; import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { StandardTable } from 'god'; import { StandardTable } from 'god';
import moment from 'moment'; import moment from 'moment';
...@@ -8,21 +9,54 @@ import { ColumnType } from 'antd/lib/table/interface'; ...@@ -8,21 +9,54 @@ import { ColumnType } from 'antd/lib/table/interface';
import NiceForm from '@/components/NiceForm'; import NiceForm from '@/components/NiceForm';
import { createFormActions, FormEffectHooks } from '@formily/antd'; import { createFormActions, FormEffectHooks } from '@formily/antd';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch'; import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { filterInternalState, filterExternalState } from './../../common/statusList';
import { quoteOrderInternalState } from '../../common/tableStatusList';
import StatusColors from '@/pages/transaction/components/StatusColors';
import { FORM_FILTER_PATH } from '@/formSchema/const'; import { FORM_FILTER_PATH } from '@/formSchema/const';
import { pendingReviewSchema } from '../schema/pendingReview'; import { pendingReviewSchema } from '../schema/pendingReview';
import { PageStatus } from '@/hooks/usePageStatus'; import { PageStatus } from '@/hooks/usePageStatus';
import { values, action } from 'mobx'; import { values, action } from 'mobx';
import AuditModal from './auditModel';
import EyePreview from '@/components/EyePreview';
const formActions = createFormActions(); const formActions = createFormActions();
const ReviewList: React.FC<{}> = () => { export interface parmas {
fetchData?: Function,
selectAll?: Function,
batchAction?: Function,
reloadRef?: any,
type?: number,
}
const ReviewList: React.FC<parmas> = (props) => {
const ref = useRef<any>({}); const ref = useRef<any>({});
const { fetchData, selectAll, batchAction, reloadRef, type } = props;
const [selectRow, setSelectRow] = useState([]) const [selectRow, setSelectRow] = useState([])
const [selectedRowKeys, setSelectedRowKeys] = useState<Array<number>>([]) const [selectedRowKeys, setSelectedRowKeys] = useState<Array<number>>([]);
const [id, setId] = useState<number>();
const [visible, setvisible] = useState<boolean>(false);
useEffect(() => {
if (reloadRef) {
const userAction = {
reload: () => ref.current.reload()
}
if (reloadRef && typeof reloadRef === 'function') {
reloadRef(userAction);
}
if (reloadRef && typeof reloadRef !== 'function') {
reloadRef.current = userAction;
}
}
})
const columns: ColumnType<any>[] = [ const columns: ColumnType<any>[] = [
{ {
title: '询价单号', title: '询价单号',
key: 'inquiryListNo', key: 'inquiryListNo',
dataIndex: 'inquiryListNo', dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/goodsOffer/components/details?id=${record.id}`}>{text}</EyePreview>
}, },
{ {
title: '询价单摘要', title: '询价单摘要',
...@@ -53,16 +87,25 @@ const ReviewList: React.FC<{}> = () => { ...@@ -53,16 +87,25 @@ const ReviewList: React.FC<{}> = () => {
title: '外部状态', title: '外部状态',
key: 'externalState', key: 'externalState',
dataIndex: 'externalState', dataIndex: 'externalState',
}, filters: filterExternalState,
{ filterMultiple: false,
onFilter: (value, record) => record.externalState === value,
render: text => <StatusColors status={text} type='out' />
}, {
title: '内部状态', title: '内部状态',
key: 'interiorState', key: 'interiorState',
dataIndex: 'interiorState', dataIndex: 'interiorState',
filters: filterInternalState,
filterMultiple: false,
onFilter: (value, record) => record.interiorState === value,
render: (text: any) =>
quoteOrderInternalState(text)
}, },
{ {
title: '操作', title: '操作',
key: 'options', key: 'options',
dataIndex: 'options', dataIndex: 'options',
render: (text: any, record: any) => <Button type='link' onClick={()=>{setId(record.id);setvisible(true);}}>审核</Button>
}, },
] ]
const format = (text) => { const format = (text) => {
...@@ -74,16 +117,32 @@ const ReviewList: React.FC<{}> = () => { ...@@ -74,16 +117,32 @@ const ReviewList: React.FC<{}> = () => {
onChange: (selectedRowKeys: any, selectedRows: any) => { onChange: (selectedRowKeys: any, selectedRows: any) => {
setSelectRow(selectedRows); setSelectRow(selectedRows);
setSelectedRowKeys(selectedRowKeys); setSelectedRowKeys(selectedRowKeys);
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows) selectAll(selectedRowKeys) // 返回给父级
}, },
} }
// 搜索
const search = (values: any) => {
if (values.voucherTime) {
values.startVoucherTime = timeRange(values.voucherTime).st
values.endVoucherTime = timeRange(values.voucherTime).et
delete values.voucherTime
}
ref.current.reload(values)
}
/**批量审核通过按钮 */ /**批量审核通过按钮 */
const controllerBtns = <Row> const controllerBtns = <Row>
<Col span={6}> <Col span={6}>
<Button>批量提交审核</Button> <Button onClick={() => batchAction()}>批量提交审核</Button>
</Col> </Col>
</Row> </Row>
// 单个审核
const handleModalOK = () => {
setvisible(false)
setTimeout(()=> {
ref.current.reload()
},1000)
}
return ( return (
<PageHeaderWrapper> <PageHeaderWrapper>
...@@ -93,9 +152,11 @@ const ReviewList: React.FC<{}> = () => { ...@@ -93,9 +152,11 @@ const ReviewList: React.FC<{}> = () => {
columns={columns} columns={columns}
tableProps={{ rowKew: 'id' }} tableProps={{ rowKew: 'id' }}
rowSelection={rowSelection} rowSelection={rowSelection}
fetchTableData={(params: any) => fetchData(params)}
controlRender={ controlRender={
<NiceForm <NiceForm
actions={formActions} actions={formActions}
onSubmit={values => search(values)}
effects={($, actions) => { effects={($, actions) => {
useStateFilterSearchLinkageEffect($, actions, 'inquiryListNo', FORM_FILTER_PATH) useStateFilterSearchLinkageEffect($, actions, 'inquiryListNo', FORM_FILTER_PATH)
}} }}
...@@ -110,6 +171,13 @@ const ReviewList: React.FC<{}> = () => { ...@@ -110,6 +171,13 @@ const ReviewList: React.FC<{}> = () => {
</StandardTable> </StandardTable>
</Card> </Card>
<AuditModal
id={id}
type={type}
dialogVisible={visible}
onCancel={() => setvisible(false)}
onOK={ handleModalOK}
/>
</PageHeaderWrapper> </PageHeaderWrapper>
) )
} }
......
...@@ -12,6 +12,8 @@ import { ColumnType } from 'antd/lib/table/interface'; ...@@ -12,6 +12,8 @@ import { ColumnType } from 'antd/lib/table/interface';
import { filterInternalState, filterExternalState } from './../../common/statusList'; import { filterInternalState, filterExternalState } from './../../common/statusList';
import { quoteOrderInternalState } from '../../common/tableStatusList'; import { quoteOrderInternalState } from '../../common/tableStatusList';
import StatusColors from '@/pages/transaction/components/StatusColors'; import StatusColors from '@/pages/transaction/components/StatusColors';
import EyePreview from '@/components/EyePreview';
import { timeRange } from '@/utils/index';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
const formActions = createFormActions(); const formActions = createFormActions();
...@@ -21,6 +23,8 @@ const EnquiryOrder: React.FC<{}> = (props) => { ...@@ -21,6 +23,8 @@ const EnquiryOrder: React.FC<{}> = (props) => {
title: '询价单号', title: '询价单号',
key: 'inquiryListNo', key: 'inquiryListNo',
dataIndex: 'inquiryListNo', dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/goodsOffer/components/details?id=${record.id}`}>{text}</EyePreview>
}, { }, {
title: '询价单摘要', title: '询价单摘要',
key: 'details', key: 'details',
...@@ -60,9 +64,39 @@ const EnquiryOrder: React.FC<{}> = (props) => { ...@@ -60,9 +64,39 @@ const EnquiryOrder: React.FC<{}> = (props) => {
quoteOrderInternalState(text) quoteOrderInternalState(text)
}]; }];
//交易能力 询价报价 询价单查询 //交易能力 询价报价 询价单查询
const fetchData = async (params: any) => { const data = {
const res = await PublicApi.getOrderProductInquiryList(params); totalCount: 1,
return res.data data: [{
id: 91,
inquiryListNo: 'SD2015PPLJ',
details: '阿珍爱上阿强',
memberName: 'wutiaoren',
memberId: 5,
deliveryTime: '2020-10-14 15:37:00',
quotationAsTime: '2020-10-13 15:37:00',
voucherTime: '2020-10-13 15:37:00',
externalState: 1,
interiorState: 2
}]
}
const fetchData = (params?: any) => {
return new Promise((resolve, reject) => {
// PublicApi.getOrderProductInquiryList({...params}).then(res => {
// resolve(res.data)
// })
setTimeout(() => {
resolve(data)
}, 1000)
})
}
// 搜索
const search = (values: any) => {
if (values.voucherTime) {
values.startVoucherTime = timeRange(values.voucherTime).st
values.endVoucherTime = timeRange(values.voucherTime).et
delete values.voucherTime
}
ref.current.reload(values)
} }
return ( return (
...@@ -76,6 +110,7 @@ const EnquiryOrder: React.FC<{}> = (props) => { ...@@ -76,6 +110,7 @@ const EnquiryOrder: React.FC<{}> = (props) => {
controlRender={ controlRender={
<NiceForm <NiceForm
actions={formActions} actions={formActions}
onSubmit={values => search(values)}
effects={($, actions) => { effects={($, actions) => {
useStateFilterSearchLinkageEffect($,actions,'inquiryListNo',FORM_FILTER_PATH) useStateFilterSearchLinkageEffect($,actions,'inquiryListNo',FORM_FILTER_PATH)
FormEffectHooks.onFieldChange$('category').subscribe(state => { FormEffectHooks.onFieldChange$('category').subscribe(state => {
......
import React, { useRef, useState } from 'react'; import React, { useRef, useState } from 'react';
import { message } from 'antd';
import ReviewList from '../components/reviewList'; import ReviewList from '../components/reviewList';
import { timeRange } from '@/utils/index';
import { PublicApi } from '@/services/api';
const PendingReviewOne: React.FC<{}> = () => { const PendingReviewOne: React.FC<{}> = () => {
const [selectRow, setSelectRow] = useState<Array<number>>([]);
const ref = useRef<any>({});
// 多选
const selectAll = (values: any) => {
setSelectRow(values);
console.log(values, '我是多选的id')
}
// 列表数据
const data = { // 模拟的数据
totalCount: 6,
data: [{
id: 1,
inquiryListNo: 'SZX125KJS',
details: '模拟的数据',
memberName: '冰红茶',
memberId: 10,
deliveryTime: '2020-10-13 13:59:00',
quotationAsTime: '2020-10-13 23:59:00',
voucherTime: '2020-10-13 13:59:00',
externalState: 1,
interiorState: 1
}, {
id: 2,
inquiryListNo: 'SZX125LIP',
details: '模拟的数据10086',
memberName: '打喷嚏',
memberId: 1,
deliveryTime: '2020-10-12 13:59:00',
quotationAsTime: '2020-10-14 23:59:00',
voucherTime: '2020-10-12 13:59:00',
externalState: 1,
interiorState: 1
}]
}
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
// PublicApi.getOrderInquiryToAuditList({...params}).then(res => {
// resolve(res.data)
// })
setTimeout(() => {
resolve(data)
}, 500)
})
}
// 批量操作
const batchAction = () => {
if (selectRow.length > 0) {
return new Promise((resolve, reject) => {
PublicApi.postOrderInquiryDocumentsReviewAll({ ids: selectRow }).then(res => {
if (res.code === 1000) {
resolve(res.data)
ref.current.reload();
}
})
})
} else {
message.error('请选择要操作的询价单!')
}
}
return ( return (
<ReviewList /> <ReviewList
reloadRef={ref}
fetchData={fetchData}
selectAll={selectAll}
batchAction={batchAction}
type={2}
/>
) )
} }
......
import React, { useRef, useState } from 'react'; import React, { useRef, useState } from 'react';
import { message } from 'antd';
import ReviewList from '../components/reviewList'; import ReviewList from '../components/reviewList';
import { timeRange } from '@/utils/index';
import { PublicApi } from '@/services/api';
const PendingReviewTwo: React.FC<{}> = () => { const PendingReviewTwo: React.FC<{}> = () => {
const [selectRow, setSelectRow] = useState<Array<number>>([]);
const ref = useRef<any>({});
// 多选
const selectAll = (values: any) => {
setSelectRow(values);
console.log(values, '我是多选的id')
}
// 列表数据
const data = { // 模拟的数据
totalCount: 6,
data: [{
id: 1,
inquiryListNo: 'SZX125KJS',
details: '模拟的数据',
memberName: '冰红茶',
memberId: 10,
deliveryTime: '2020-10-13 13:59:00',
quotationAsTime: '2020-10-13 23:59:00',
voucherTime: '2020-10-13 13:59:00',
externalState: 1,
interiorState: 1
}, {
id: 2,
inquiryListNo: 'SZX125LIP',
details: '模拟的数据10086',
memberName: '打喷嚏',
memberId: 1,
deliveryTime: '2020-10-12 13:59:00',
quotationAsTime: '2020-10-14 23:59:00',
voucherTime: '2020-10-12 13:59:00',
externalState: 1,
interiorState: 1
}]
}
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
// PublicApi.getOrderInquiryToAuditListTwo({...params}).then(res => {
// resolve(res.data)
// })
setTimeout(() => {
resolve(data)
}, 500)
})
}
// 批量操作
const batchAction = () => {
if (selectRow.length > 0) {
return new Promise((resolve, reject) => {
PublicApi.postOrderInquiryDocumentsReviewAllTwo({ ids: selectRow }).then(res => {
if (res.code === 1000) {
resolve(res.data)
ref.current.reload();
}
})
})
} else {
message.error('请选择要操作的询价单!')
}
}
return ( return (
<ReviewList /> <ReviewList
reloadRef={ref}
fetchData={fetchData}
selectAll={selectAll}
batchAction={batchAction}
type={3}
/>
) )
} }
......
...@@ -10,6 +10,7 @@ import NiceForm from '@/components/NiceForm'; ...@@ -10,6 +10,7 @@ import NiceForm from '@/components/NiceForm';
import { createFormActions, FormEffectHooks } from '@formily/antd'; import { createFormActions, FormEffectHooks } from '@formily/antd';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch'; import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { FORM_FILTER_PATH } from '@/formSchema/const'; import { FORM_FILTER_PATH } from '@/formSchema/const';
import EyePreview from '@/components/EyePreview';
import { pendingReviewSchema } from '../schema/pendingReview'; import { pendingReviewSchema } from '../schema/pendingReview';
import { PageStatus } from '@/hooks/usePageStatus'; import { PageStatus } from '@/hooks/usePageStatus';
import { values, action } from 'mobx'; import { values, action } from 'mobx';
...@@ -31,6 +32,8 @@ const PendingSubmit: React.FC<{}> = () => { ...@@ -31,6 +32,8 @@ const PendingSubmit: React.FC<{}> = () => {
title: '询价单号', title: '询价单号',
key: 'inquiryListNo', key: 'inquiryListNo',
dataIndex: 'inquiryListNo', dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/goodsOffer/components/details?id=${record.id}`}>{text}</EyePreview>
}, },
{ {
title: '询价单摘要', title: '询价单摘要',
...@@ -79,7 +82,7 @@ const PendingSubmit: React.FC<{}> = () => { ...@@ -79,7 +82,7 @@ const PendingSubmit: React.FC<{}> = () => {
title: '操作', title: '操作',
key: 'options', key: 'options',
dataIndex: 'options', dataIndex: 'options',
render: (text: any,record:any) => <Button type='link' onClick={() => {setId(record.id);setvisible(true)}}>审核</Button> render: (text: any, record: any) => <Button type='link' onClick={() => { setId(record.id); setvisible(true) }}>审核</Button>
}, },
] ]
const format = (text) => { const format = (text) => {
...@@ -102,12 +105,30 @@ const PendingSubmit: React.FC<{}> = () => { ...@@ -102,12 +105,30 @@ const PendingSubmit: React.FC<{}> = () => {
</Row> </Row>
/**列表数据 */ /**列表数据 */
const data = {
totalCount: 2,
data: [{
id: 1,
inquiryListNo: 'SZX125KJS',
details: '模拟的数据',
memberName: '冰红茶',
memberId: 10,
deliveryTime: '2020-10-13 13:59:00',
quotationAsTime: '2020-10-13 23:59:00',
voucherTime: '2020-10-13 13:59:00',
externalState: 1,
interiorState: 1
}]
}
const fetchData = (params?: any) => { const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数 console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
PublicApi.getOrderSubmitInquirySheetList({ ...params }).then(res => { // PublicApi.getOrderSubmitInquirySheetList({ ...params }).then(res => {
resolve(res.data) // resolve(res.data)
}) // })
setTimeout(() => {
resolve(data)
}, 500)
}) })
} }
...@@ -130,9 +151,9 @@ const PendingSubmit: React.FC<{}> = () => { ...@@ -130,9 +151,9 @@ const PendingSubmit: React.FC<{}> = () => {
const handleModalOK = () => { const handleModalOK = () => {
setvisible(false) setvisible(false)
setTimeout(()=> { setTimeout(() => {
history.goBack() history.goBack()
},1000) }, 1000)
} }
...@@ -163,12 +184,12 @@ const PendingSubmit: React.FC<{}> = () => { ...@@ -163,12 +184,12 @@ const PendingSubmit: React.FC<{}> = () => {
</StandardTable> </StandardTable>
</Card> </Card>
<AuditModal <AuditModal
id={id} id={id}
type={1} type={1}
dialogVisible={visible} dialogVisible={visible}
onCancel={() => setvisible(false)} onCancel={() => setvisible(false)}
onOK={ handleModalOK} onOK={handleModalOK}
/> />
</PageHeaderWrapper> </PageHeaderWrapper>
) )
......
...@@ -291,7 +291,7 @@ export const enquieryOfferSearchSchema: ISchema = { ...@@ -291,7 +291,7 @@ export const enquieryOfferSearchSchema: ISchema = {
"x-component-props":{ "x-component-props":{
placeholder:'外部状态' placeholder:'外部状态'
}, },
enum: TimeList enum: []
}, },
interiorState :{ interiorState :{
type:'string', type:'string',
...@@ -299,7 +299,7 @@ export const enquieryOfferSearchSchema: ISchema = { ...@@ -299,7 +299,7 @@ export const enquieryOfferSearchSchema: ISchema = {
"x-component-props":{ "x-component-props":{
placeholder:'内部状态' placeholder:'内部状态'
}, },
enum: TimeList enum: []
}, },
} }
}, },
...@@ -401,4 +401,5 @@ export const dialogEqformSearch: ISchema = { ...@@ -401,4 +401,5 @@ export const dialogEqformSearch: ISchema = {
} }
} }
} }
} }
\ No newline at end of file
import React from 'react';
import { Modal } from 'antd';
import {
SchemaForm, SchemaMarkupField as Field,
createFormActions,
FormEffectHooks
} from '@formily/antd'
import { Input, Radio, FormMegaLayout } from '@formily/antd-components'
import { PublicApi } from '@/services/api';
const actions = createFormActions()
const { onFieldChange$ } = FormEffectHooks;
export interface Params {
id: number | string;
type: number | string; //1是待提交询价单 2是一级 3是二级
dialogVisible: boolean;
onCancel: Function;
onOK?: Function;
}
const AuditModal: React.FC<Params> = (props) => {
const useFormEffects = () => {
const { setFieldState } = createFormActions()
onFieldChange$('state').subscribe(({ value }) => {
setFieldState('cause', state => {
if (value == 1) {
state.visible = false
} else {
state.visible = true
}
})
})
}
const handletOk = (values: any) => {
let value = { ...values }
value.id = props.id
switch (props.type) {
case 1:
PublicApi.postOrderInquirySubmit(value).then(res => {
if(res.code === 1000) {
props.onOK()
}
})
break;
case 2:
PublicApi.postOrderProductQuotationtAuditSubmit(value).then(res => {
if(res.code === 1000) {
props.onOK()
}
})
break;
case 3:
PublicApi.postOrderProductQuotationtAuditSubmitTwo(value).then(res => {
if(res.code === 1000) {
props.onOK()
}
})
break;
}
}
/**操作 */
return (
<Modal
title='单据审核'
width={576}
visible={props.dialogVisible}
onOk={() => actions.submit()}
onCancel={() => props.onCancel()}
destroyOnClose
afterClose={() => actions.reset()}
okText='确定'
cancelText={`取消`}
>
<SchemaForm
layout="vertical"
labelCol={6}
components={{
Input, Radio: Radio.Group, TextArea: Input.TextArea
}}
actions={actions}
effects={() => useFormEffects()}
onSubmit={(values) => handletOk(values)}
initialValues={{
state: 1
}}
>
<Field
enum={
[
{ label: '审核通过', value: 1 },
{ label: '审核不通过', value: 0 }
]}
name='state'
required
x-component="Radio"
x-component-props={{
}}
/>
<Field
title='审核不通过原因'
name="cause"
x-component="TextArea"
required
x-component-props={{
placeholder: '在此输入你的内容,最多60个汉字'
}}
x-rules={{
max: 60,
// maximum:10,//最大数值
message: '原因最多60个汉字'
}}
/>
</SchemaForm>
</Modal>
)
}
export default AuditModal
\ No newline at end of file
This diff is collapsed.
@import "../../../member/components/index.less";
.item_wrap {
margin-bottom: 24px;
background-color: #FFF;
border-radius: 8px;
&:last-child {
margin-bottom: 0px;
}
.mainCol_title {
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #303133;
padding: 0px 0 20px;
}
:global {
.ant-tabs-nav {
&::before {
border-bottom-color: #FFF;
}
}
}
}
\ No newline at end of file
import React, { useRef, useState, useEffect } from 'react';
import { Card, Button, Row, Col } from 'antd';
import { history } from 'umi'
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { StandardTable } from 'god';
import moment from 'moment';
import { timeRange } from '@/utils/index';
import { ColumnType } from 'antd/lib/table/interface';
import NiceForm from '@/components/NiceForm';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { filterInternalState, filterExternalState } from './../../common/statusList';
import { quoteOrderInternalState } from '../../common/tableStatusList';
import StatusColors from '@/pages/transaction/components/StatusColors';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { pendingReviewSchema } from '../schema/pendingReview';
import { PageStatus } from '@/hooks/usePageStatus';
import { values, action } from 'mobx';
import AuditModal from './auditModel';
import EyePreview from '@/components/EyePreview';
const formActions = createFormActions();
export interface parmas {
fetchData?: Function,
selectAll?: Function,
batchAction?: Function,
reloadRef?: any,
type?: number,
}
const ReviewList: React.FC<parmas> = (props) => {
const ref = useRef<any>({});
const { fetchData, selectAll, batchAction, reloadRef, type } = props;
const [selectRow, setSelectRow] = useState([])
const [selectedRowKeys, setSelectedRowKeys] = useState<Array<number>>([]);
const [id, setId] = useState<number>();
const [visible, setvisible] = useState<boolean>(false);
useEffect(() => {
if (reloadRef) {
const userAction = {
reload: () => ref.current.reload()
}
if (reloadRef && typeof reloadRef === 'function') {
reloadRef(userAction);
}
if (reloadRef && typeof reloadRef !== 'function') {
reloadRef.current = userAction;
}
}
})
const columns: ColumnType<any>[] = [
{
title: '报价单号',
key: 'quotationNo',
dataIndex: 'quotationNo',
},
{
title: '询价单号',
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/inquiryQuote/components/details?id=${record.id}`}>{text}</EyePreview>
},
{
title: '询价单摘要',
key: 'details',
dataIndex: 'details',
},
{
title: '被询价会员',
key: 'memberName',
dataIndex: 'memberName',
},
{
title: '报价截止时间',
key: 'quotationAsTime',
dataIndex: 'quotationAsTime',
},
{
title: '询价时间',
key: 'voucherTime',
dataIndex: 'voucherTime',
},
{
title: '外部状态',
key: 'externalState',
dataIndex: 'externalState',
filters: filterExternalState,
filterMultiple: false,
onFilter: (value, record) => record.externalState === value,
render: text => <StatusColors status={text} type='out' />
}, {
title: '内部状态',
key: 'interiorState',
dataIndex: 'interiorState',
filters: filterInternalState,
filterMultiple: false,
onFilter: (value, record) => record.interiorState === value,
render: (text: any) =>
quoteOrderInternalState(text)
},
{
title: '操作',
key: 'options',
dataIndex: 'options',
render: (text: any, record: any) => <Button type='link' onClick={()=>{setId(record.id);setvisible(true);}}>审核</Button>
},
]
const format = (text) => {
return <>{moment(text).format("YYYY-MM-DD HH:mm:ss")}</>
}
/**多选 */
const rowSelection = {
selectedRowKeys: selectedRowKeys,
onChange: (selectedRowKeys: any, selectedRows: any) => {
setSelectRow(selectedRows);
setSelectedRowKeys(selectedRowKeys);
selectAll(selectedRowKeys) // 返回给父级
},
}
// 搜索
const search = (values: any) => {
if (values.voucherTime) {
values.startVoucherTime = timeRange(values.voucherTime).st
values.endVoucherTime = timeRange(values.voucherTime).et
delete values.voucherTime
}
ref.current.reload(values)
}
/**批量审核通过按钮 */
const controllerBtns = <Row>
<Col span={6}>
<Button onClick={() => batchAction()}>批量提交审核</Button>
</Col>
</Row>
// 单个审核
const handleModalOK = () => {
setvisible(false)
setTimeout(()=> {
ref.current.reload()
},1000)
}
return (
<PageHeaderWrapper>
<Card>
<StandardTable
currentRef={ref}
columns={columns}
tableProps={{ rowKew: 'id' }}
rowSelection={rowSelection}
fetchTableData={(params: any) => fetchData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => search(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect($, actions, 'inquiryListNo', FORM_FILTER_PATH)
}}
expressionScope={{
controllerBtns
}}
schema={pendingReviewSchema}
>
</NiceForm>
}
>
</StandardTable>
</Card>
<AuditModal
id={id}
type={type}
dialogVisible={visible}
onCancel={() => setvisible(false)}
onOK={ handleModalOK}
/>
</PageHeaderWrapper>
)
}
export default ReviewList
\ No newline at end of file
import React, { useRef, useEffect } from 'react';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { Card, Button } from 'antd';
import { StandardTable } from 'god';
import NiceForm from '@/components/NiceForm';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { enquieryOfferSearchSchema } from '../schema';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import {searchSelectGetSelectCategoryOptionEffect} from '../../effect/index'
import { ColumnType } from 'antd/lib/table/interface';
import { filterInternalState, filterExternalState } from './../../common/statusList';
import { quoteOrderInternalState } from '../../common/tableStatusList';
import StatusColors from '@/pages/transaction/components/StatusColors';
import EyePreview from '@/components/EyePreview';
import { timeRange } from '@/utils/index';
import { PublicApi } from '@/services/api';
const formActions = createFormActions();
const EnquiryOrder: React.FC<{}> = (props) => {
const ref = useRef<any>({});
const columns: ColumnType<any>[] = [{
title: '询价单号',
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/inquiryQuote/components/details?id=${record.id}`}>{text}</EyePreview>
}, {
title: '询价单摘要',
key: 'details',
dataIndex: 'details',
}, {
title: '询价会员',
key: 'memberName',
dataIndex: 'memberName',
}, {
title: '交付日期',
key: 'deliveryTime',
dataIndex: 'deliveryTime',
}, {
title: '报价截止时间',
key: 'quotationAsTime',
dataIndex: 'quotationAsTime',
}, {
title: '询价时间',
key: 'voucherTime',
dataIndex: 'voucherTime',
}, {
title: '外部状态',
key: 'externalState',
dataIndex: 'externalState',
filters: filterExternalState,
filterMultiple: false,
onFilter: (value, record) => record.externalState === value,
render: text => <StatusColors status={text} type='inquiry' />
}, {
title: '操作',
key: 'options',
dataIndex: 'options',
render: (text: any, record: any) => <Button type='link'>报价</Button>
}];
//交易能力 询价报价 询价单查询
const data = {
totalCount: 1,
data: [{
id: 91,
inquiryListNo: 'SD2015PPLJ',
details: '阿珍爱上阿强',
memberName: 'wutiaoren',
memberId: 5,
deliveryTime: '2020-10-14 15:37:00',
quotationAsTime: '2020-10-13 15:37:00',
voucherTime: '2020-10-13 15:37:00',
externalState: 1,
}]
}
const fetchData = (params?: any) => {
return new Promise((resolve, reject) => {
// PublicApi.getOrderProductInquiryList({...params}).then(res => {
// resolve(res.data)
// })
setTimeout(() => {
resolve(data)
}, 1000)
})
}
// 搜索
const search = (values: any) => {
if (values.voucherTime) {
values.startVoucherTime = timeRange(values.voucherTime).st
values.endVoucherTime = timeRange(values.voucherTime).et
delete values.voucherTime
}
ref.current.reload(values)
}
return (
<PageHeaderWrapper>
<Card>
<StandardTable
currentRef={ref}
columns={columns}
tableProps={{ rowKew: 'id' }}
fetchTableData={(params: any) => fetchData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => search(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect($,actions,'inquiryListNo',FORM_FILTER_PATH)
FormEffectHooks.onFieldChange$('category').subscribe(state => {
searchSelectGetSelectCategoryOptionEffect(actions,'category')
})
}}
schema={enquieryOfferSearchSchema}
>
</NiceForm>
}
/>
</Card>
</PageHeaderWrapper>
)
}
export default EnquiryOrder;
\ No newline at end of file
import React, { useRef, useState } from 'react';
import { message } from 'antd';
import ReviewList from '../components/reviewList';
import { timeRange } from '@/utils/index';
import { PublicApi } from '@/services/api';
const PendingReviewOne: React.FC<{}> = () => {
const [selectRow, setSelectRow] = useState<Array<number>>([]);
const ref = useRef<any>({});
// 多选
const selectAll = (values: any) => {
setSelectRow(values);
console.log(values, '我是多选的id')
}
// 列表数据
const data = { // 模拟的数据
totalCount: 6,
data: [{
id: 1,
quotationNo: 'BPTY12',
inquiryListNo: 'SZX125KJS',
details: '模拟的数据',
memberName: '冰红茶',
memberId: 10,
quotationAsTime: '2020-10-13 23:59:00',
voucherTime: '2020-10-13 13:59:00',
externalState: 1,
interiorState: 2
}, {
id: 2,
quotationNo: 'BPTY12',
inquiryListNo: 'SZX125LIP',
details: '模拟的数据10086',
memberName: '打喷嚏',
memberId: 1,
quotationAsTime: '2020-10-14 23:59:00',
voucherTime: '2020-10-12 13:59:00',
externalState: 1,
interiorState: 1
}]
}
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
// PublicApi.getOrderAuditProductQuotationList({...params}).then(res => {
// resolve(res.data)
// })
setTimeout(() => {
resolve(data)
}, 500)
})
}
// 批量操作
const batchAction = () => {
if (selectRow.length > 0) {
return new Promise((resolve, reject) => {
PublicApi.postOrderProductQuotationtAuditAll({ ids: selectRow }).then(res => {
if (res.code === 1000) {
resolve(res.data)
ref.current.reload();
}
})
})
} else {
message.error('请选择要操作的询价单!')
}
}
return (
<ReviewList
reloadRef={ref}
fetchData={fetchData}
selectAll={selectAll}
batchAction={batchAction}
type={2}
/>
)
}
export default PendingReviewOne
\ No newline at end of file
import React, { useRef, useState } from 'react';
import { message } from 'antd';
import ReviewList from '../components/reviewList';
import { timeRange } from '@/utils/index';
import { PublicApi } from '@/services/api';
const PendingReviewTwo: React.FC<{}> = () => {
const [selectRow, setSelectRow] = useState<Array<number>>([]);
const ref = useRef<any>({});
// 多选
const selectAll = (values: any) => {
setSelectRow(values);
console.log(values, '我是多选的id')
}
// 列表数据
const data = { // 模拟的数据
totalCount: 6,
data: [{
id: 1,
quotationNo: 'BPTY12',
inquiryListNo: 'SZX125KJS',
details: '模拟的数据',
memberName: '冰红茶',
memberId: 10,
quotationAsTime: '2020-10-13 23:59:00',
voucherTime: '2020-10-13 13:59:00',
externalState: 1,
interiorState: 1
}, {
id: 2,
quotationNo: 'BPTY12',
inquiryListNo: 'SZX125LIP',
details: '模拟的数据10086',
memberName: '打喷嚏',
memberId: 1,
quotationAsTime: '2020-10-14 23:59:00',
voucherTime: '2020-10-12 13:59:00',
externalState: 1,
interiorState: 1
}]
}
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
// PublicApi.getOrderAuditProductQuotationListTwo({...params}).then(res => {
// resolve(res.data)
// })
setTimeout(() => {
resolve(data)
}, 500)
})
}
// 批量操作
const batchAction = () => {
if (selectRow.length > 0) {
return new Promise((resolve, reject) => {
PublicApi.postOrderProductQuotationtAuditAllTwo({ ids: selectRow }).then(res => {
if (res.code === 1000) {
resolve(res.data)
ref.current.reload();
}
})
})
} else {
message.error('请选择要操作的询价单!')
}
}
return (
<ReviewList
reloadRef={ref}
fetchData={fetchData}
selectAll={selectAll}
batchAction={batchAction}
type={3}
/>
)
}
export default PendingReviewTwo
\ No newline at end of file
import React, { useRef, useEffect } from 'react';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { Card, Button } from 'antd';
import { StandardTable } from 'god';
import NiceForm from '@/components/NiceForm';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { quoteFormSearch } from '../schema';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { searchSelectGetSelectCategoryOptionEffect } from '../../effect/index'
import { ColumnType } from 'antd/lib/table/interface';
import { filterInternalState, filterExternalState } from './../../common/statusList';
import { quoteOrderInternalState } from '../../common/tableStatusList';
import StatusColors from '@/pages/transaction/components/StatusColors';
import EyePreview from '@/components/EyePreview';
import { timeRange } from '@/utils/index';
import { PublicApi } from '@/services/api';
const formActions = createFormActions();
const EnquiryOrder: React.FC<{}> = (props) => {
const ref = useRef<any>({});
const columns: ColumnType<any>[] = [{
title: '报价单号',
key: 'quotationNo',
dataIndex: 'quotationNo',
},{
title: '询价单号',
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/inquiryQuote/components/details?id=${record.id}`}>{text}</EyePreview>
}, {
title: '询价单摘要',
key: 'details',
dataIndex: 'details',
}, {
title: '询价会员',
key: 'memberName',
dataIndex: 'memberName',
},{
title: '报价截止时间',
key: 'quotationAsTime',
dataIndex: 'quotationAsTime',
}, {
title: '单据时间',
key: 'voucherTime',
dataIndex: 'voucherTime',
}, {
title: '外部状态',
key: 'externalState',
dataIndex: 'externalState',
filters: filterExternalState,
filterMultiple: false,
onFilter: (value, record) => record.externalState === value,
render: text => <StatusColors status={text} type='inquiry' />
}, {
title: '内部状态',
key: 'interiorState',
dataIndex: 'interiorState',
filters: filterInternalState,
filterMultiple: false,
onFilter: (value, record) => record.interiorState === value,
render: (text: any) =>
quoteOrderInternalState(text)
}];
//交易能力 询价报价 询价单查询
const data = {
totalCount: 1,
data: [{
id: 91,
quotationNo: 'BPTY12',
inquiryListNo: 'SD2015PPLJ',
details: '阿珍爱上阿强',
memberName: 'wutiaoren',
memberId: 5,
quotationAsTime: '2020-10-13 15:37:00',
voucherTime: '2020-10-13 15:37:00',
externalState: 1,
interiorState: 2
}]
}
const fetchData = (params?: any) => {
return new Promise((resolve, reject) => {
// PublicApi.getOrderProductQuotationList({...params}).then(res => {
// resolve(res.data)
// })
setTimeout(() => {
resolve(data)
}, 1000)
})
}
// 搜索
const search = (values: any) => {
if (values.voucherTime) {
values.startVoucherTime = timeRange(values.voucherTime).st
values.endVoucherTime = timeRange(values.voucherTime).et
delete values.voucherTime
}
ref.current.reload(values)
}
return (
<PageHeaderWrapper>
<Card>
<StandardTable
currentRef={ref}
columns={columns}
tableProps={{ rowKew: 'id' }}
fetchTableData={(params: any) => fetchData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => search(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect($, actions, 'inquiryListNo', FORM_FILTER_PATH)
FormEffectHooks.onFieldChange$('category').subscribe(state => {
searchSelectGetSelectCategoryOptionEffect(actions, 'category')
})
}}
schema={quoteFormSearch}
>
</NiceForm>
}
/>
</Card>
</PageHeaderWrapper>
)
}
export default EnquiryOrder;
\ No newline at end of file
This diff is collapsed.
import { ISchema} from '@formily/antd'
import { FORM_FILTER_PATH } from '@/formSchema/const'
import {TimeList} from '../../common/statusList'
import TranactionRoute from 'config/routes/tranactionRoute'
/**
* @description: 待审核询价单
* @param {type}
* @return {type}
*/
export const pendingReviewSchema: ISchema = {
type:'object',
properties:{
megalayout:{
type:'object',
"x-component":'mega-layout',
"x-component-props":{
grid:true
},
properties:{
ctl:{
type:'object',
"x-component":"Children",
"x-component-props":{
children:"{{controllerBtns}}"
}
},
inquiryListNo:{//报价单号
type:'string',
"x-component":"Search",
"x-mega-props":{
},
"x-component-props":{
placeholder:'报价单搜索'
}
}
}
},
[FORM_FILTER_PATH]:{
type:'object',
"x-component":"flex-layout",
"x-component-props":{
rowStyle:{
flexWrap:'nowrap'
},
colStyle:{
marginLeft: 20
}
},
properties:{
PRO_LAYOUT:{
type:'object',
"x-component":'mega-layout',
"x-mega-props":{
span: 5
},
"x-component-props":{
inline: true
},
properties:{
details:{
type:'string',
"x-component-props":{
placeholder:'询价单摘要'
}
},
memberName:{
type:'string',
"x-component-props":{
placeholder:'被询价会员'
}
},
voucherTime:{
type:'string',
default: 0,
"x-component-props":{
placeholder:'请选择单据时间'
},
enum: TimeList
},
}
},
sumbit:{
"x-component":'Submit',
"x-mega-props":{
span:1
},
"x-component-props":{
children:'查询'
}
}
}
}
}
}
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