Commit 328623dd authored by 前端-黄佳鑫's avatar 前端-黄佳鑫

修改需求发布, 物流缺少的东西

parent 68a7b01c
...@@ -38,14 +38,14 @@ export default [ ...@@ -38,14 +38,14 @@ export default [
{ {
path: '/memberCenter/tranactionAbility/enquirySubmit/addDemandOrder/add', path: '/memberCenter/tranactionAbility/enquirySubmit/addDemandOrder/add',
name: 'addEnquiry', name: 'addEnquiry',
component: '@/pages/transaction/enquirySubmit/addDemandOrder', component: '@/pages/transaction/enquirySubmit/addDemandOrder/addForm',
hideInMenu: true, hideInMenu: true,
}, },
// 待新增需求单-编辑 // 待新增需求单-编辑
{ {
path: '/memberCenter/tranactionAbility/enquirySubmit/addDemandOrder/edit', path: '/memberCenter/tranactionAbility/enquirySubmit/addDemandOrder/edit',
name: 'editEnquiry', name: 'editEnquiry',
component: '@/pages/transaction/enquirySubmit/addDemandOrder', component: '@/pages/transaction/enquirySubmit/addDemandOrder/addForm',
hideInMenu: true, hideInMenu: true,
}, },
// 待新增需求单-编辑 // 待新增需求单-编辑
......
...@@ -196,18 +196,18 @@ export const confirmLogisticsOrderSchema: ISchema = { ...@@ -196,18 +196,18 @@ export const confirmLogisticsOrderSchema: ISchema = {
placeholder: '发货方', placeholder: '发货方',
}, },
}, },
status: { // status: {
type: 'string', // type: 'string',
"x-component-props": { // "x-component-props": {
placeholder: '外部状态' // placeholder: '外部状态'
}, // },
enum: [ // enum: [
{ label: '待提交', value: 1 }, // { label: '待提交', value: 1 },
{ label: '待确认', value: 2 }, // { label: '待确认', value: 2 },
{ label: '不接受物流单', value: 3 }, // { label: '不接受物流单', value: 3 },
{ label: '接受物流单', value: 4 }, // { label: '接受物流单', value: 4 },
] // ]
}, // },
"[invoicesTimeStart,invoicesTimeEnd]": { "[invoicesTimeStart,invoicesTimeEnd]": {
type: 'string', type: 'string',
"x-component": "dateSelect", "x-component": "dateSelect",
...@@ -363,21 +363,21 @@ export const confirmLogisticsOrderSearchSchema: ISchema = { ...@@ -363,21 +363,21 @@ export const confirmLogisticsOrderSearchSchema: ISchema = {
placeholder: '对应订单号', placeholder: '对应订单号',
}, },
}, },
status: { // status: {
type: 'string', // type: 'string',
"x-component-props": { // "x-component-props": {
placeholder: '外部状态', // placeholder: '外部状态',
style: { // style: {
width: 160 // width: 160
} // }
}, // },
enum: [ // enum: [
{ label: '待提交', value: 1 }, // { label: '待提交', value: 1 },
{ label: '待确认', value: 2 }, // { label: '待确认', value: 2 },
{ label: '不接受物流单', value: 3 }, // { label: '不接受物流单', value: 3 },
{ label: '接受物流单', value: 4 }, // { label: '接受物流单', value: 4 },
] // ]
}, // },
companyId: { companyId: {
type: 'string', type: 'string',
"x-component": 'SearchSelect', "x-component": 'SearchSelect',
...@@ -497,9 +497,9 @@ export const submitLogisticsOrderSchema: ISchema = { ...@@ -497,9 +497,9 @@ export const submitLogisticsOrderSchema: ISchema = {
}, },
enum: [ enum: [
{ label: '待提交', value: 1 }, { label: '待提交', value: 1 },
{ label: '待确认', value: 2 }, // { label: '待确认', value: 2 },
{ label: '不接受物流单', value: 3 }, { label: '不接受物流单', value: 3 },
{ label: '接受物流单', value: 4 }, // { label: '接受物流单', value: 4 },
] ]
}, },
} }
......
...@@ -2,6 +2,7 @@ import React from 'react'; ...@@ -2,6 +2,7 @@ import React from 'react';
import { Button, Input, Table, Row, Col, Statistic } from 'antd'; import { Button, Input, Table, Row, Col, Statistic } from 'antd';
import { ColumnType } from 'antd/lib/table/interface'; import { ColumnType } from 'antd/lib/table/interface';
import { PlusOutlined } from '@ant-design/icons'; import { PlusOutlined } from '@ant-design/icons';
import ModalTable from '@/components/ModalTable'
const AddGoods: React.FC<{}> = () => { const AddGoods: React.FC<{}> = () => {
const columns: ColumnType<any>[] = [ const columns: ColumnType<any>[] = [
...@@ -15,53 +16,53 @@ const AddGoods: React.FC<{}> = () => { ...@@ -15,53 +16,53 @@ const AddGoods: React.FC<{}> = () => {
}, },
{ {
title: '品类', title: '品类',
dataIndex: 'productName' dataIndex: 'categoryName'
}, },
{ {
title: '品牌', title: '品牌',
dataIndex: 'productName' dataIndex: 'brandName'
}, },
{ {
title: '单位', title: '单位',
dataIndex: 'productName' dataIndex: 'unitName'
}, },
{ {
title: '数量', title: '数量',
dataIndex: 'productName', dataIndex: 'amount',
render:(text:any, record:any) => render: (text: any, record: any) =>
<Input /> <Input />
}, },
{ {
title: '箱数', title: '箱数',
dataIndex: 'productName', dataIndex: 'carton',
render:(text:any, record:any) => render: (text: any, record: any) =>
<Input /> <Input />
}, },
{ {
title: '重量 (KG)', title: '重量 (KG)',
dataIndex: 'productName', dataIndex: 'weight',
render:(text:any, record:any) => render: (text: any, record: any) =>
<Input /> <Input />
}, },
{ {
title: '体积 (M3)', title: '体积 (M3)',
dataIndex: 'productName', dataIndex: 'volume',
render:(text:any, record:any) => render: (text: any, record: any) =>
<Input /> <Input />
}, },
{ {
title: '操作', title: '操作',
dataIndex: 'options', dataIndex: 'options',
render:(text:any, record:any) => render: (text: any, record: any) =>
<Input /> <Input />
} }
] ]
return ( return (
<> <>
<Button block type='dashed' style={{marginBottom: '24px'}}><PlusOutlined />添加商品</Button> <Button block type='dashed' style={{ marginBottom: '24px' }}><PlusOutlined />添加商品</Button>
<Table columns={columns} /> <Table columns={columns} />
<Row gutter={[24,24]} style={{margin: '0 0 0 65%',width: '35%'}}> <Row gutter={[24, 24]} style={{ margin: '0 0 0 65%', width: '35%' }}>
<Col span={8}><Statistic title="总箱数(箱)" value={112893} /></Col> <Col span={8}><Statistic title="总箱数(箱)" value={112893} /></Col>
<Col span={8}><Statistic title="总重量(KG)" value={112893} /></Col> <Col span={8}><Statistic title="总重量(KG)" value={112893} /></Col>
<Col span={8}><Statistic title="总体积(M3)" value={112893} /></Col> <Col span={8}><Statistic title="总体积(M3)" value={112893} /></Col>
......
...@@ -7,7 +7,8 @@ import { ColumnType } from 'antd/lib/table/interface'; ...@@ -7,7 +7,8 @@ import { ColumnType } from 'antd/lib/table/interface';
import { CheckSquareOutlined } from '@ant-design/icons' import { CheckSquareOutlined } from '@ant-design/icons'
import { StandardTable } from 'god'; import { StandardTable } from 'god';
import { PageHeaderWrapper } from '@ant-design/pro-layout'; import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { confirmExternalState, confirmInteriorState, inquiryQuoteOuterState, quoteOrderInternalState } from '../../common/tableStatusList'; import GeneralExternalState from '@/pages/transaction/common/externalState';
import GeneralInteriorState from '@/pages/transaction/common/interiorState';
import AuditModal from '../components/auditModel'; import AuditModal from '../components/auditModel';
import EyePreview from '@/components/EyePreview'; import EyePreview from '@/components/EyePreview';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
...@@ -186,7 +187,7 @@ const Details: React.FC<parmas> = (props) => { ...@@ -186,7 +187,7 @@ const Details: React.FC<parmas> = (props) => {
title: '状态', title: '状态',
key: 'state', key: 'state',
dataIndex: 'state', dataIndex: 'state',
render: (text: any, record: any) => confirmExternalState(record.state) render: (text: any, record: any) => <GeneralExternalState colorType={2} state={text} data={externalState} />
}, { }, {
title: '操作', title: '操作',
key: 'operation', key: 'operation',
...@@ -221,7 +222,7 @@ const Details: React.FC<parmas> = (props) => { ...@@ -221,7 +222,7 @@ const Details: React.FC<parmas> = (props) => {
title: '状态', title: '状态',
key: 'state', key: 'state',
dataIndex: 'state', dataIndex: 'state',
render: (text: any, record: any) => confirmInteriorState(record.state) render: (text: any, record: any) => <GeneralInteriorState colorType={2} state={text} data={interiorState} />
}, { }, {
title: '操作', title: '操作',
key: 'operation', key: 'operation',
...@@ -298,6 +299,31 @@ const Details: React.FC<parmas> = (props) => { ...@@ -298,6 +299,31 @@ const Details: React.FC<parmas> = (props) => {
window.location.href = `/api/order/contractTemplate/downloadContract?contractName=${file.name}&contractUrl=${file.url}` window.location.href = `/api/order/contractTemplate/downloadContract?contractName=${file.name}&contractUrl=${file.url}`
} }
const [externalState, setExternalState] = useState<any>([]);
const [interiorState, setInteriorState] = useState<any>([]);
useEffect(() => {
const external = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用外部状态
PublicApi.getOrderProductInquiryExternalStateEnum().then((res: any) => {
if (res.code === 1000) {
resolve(res.data)
}
})
})
const interior = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用内部状态
PublicApi.getOrderProductInquiryInteriorStateEnum().then((res: any) => {
if (res.code === 1000) {
resolve(res.data)
}
})
})
Promise.all([external, interior]).then(res => {
setExternalState(res[0])
setInteriorState(res[1])
})
}, [])
return ( return (
<PageHeaderWrapper <PageHeaderWrapper
className={style.header} className={style.header}
...@@ -353,9 +379,9 @@ const Details: React.FC<parmas> = (props) => { ...@@ -353,9 +379,9 @@ const Details: React.FC<parmas> = (props) => {
<div>{item.label}</div> <div>{item.label}</div>
<div> <div>
{item.name === 'externalState' ? {item.name === 'externalState' ?
inquiryQuoteOuterState(item.value) : <GeneralExternalState colorType={2} state={item.value} data={externalState} /> :
item.name === 'interiorState' ? item.name === 'interiorState' ?
quoteOrderInternalState(item.value) : <GeneralInteriorState colorType={2} state={item.value} data={interiorState} /> :
(item.name === 'voucherTime' || item.name === 'quotationAsTime') ? (item.name === 'voucherTime' || item.name === 'quotationAsTime') ?
format(item.value) : format(item.value) :
item.value item.value
...@@ -369,13 +395,12 @@ const Details: React.FC<parmas> = (props) => { ...@@ -369,13 +395,12 @@ const Details: React.FC<parmas> = (props) => {
> >
<div className={style.item_wrap}> <div className={style.item_wrap}>
{ {
Number(page_type) === 4 ? <Tabs>
<> <TabPane tab="外部流转" key="1">
<div className={style.mainCol_title}>外部流转</div>
<Steps <Steps
style={{ padding: '20px 0' }} style={{ padding: '20px 0' }}
progressDot progressDot
current={1} current={Number(data.externalState - 1)}
> >
{detailData.externalStateStep.items.map((item, index) => { {detailData.externalStateStep.items.map((item, index) => {
return ( return (
...@@ -387,44 +412,25 @@ const Details: React.FC<parmas> = (props) => { ...@@ -387,44 +412,25 @@ const Details: React.FC<parmas> = (props) => {
); );
})} })}
</Steps> </Steps>
</> </TabPane>
: <TabPane tab="内部流转" key="2">
<Tabs> <Steps
<TabPane tab="外部流转" key="1"> style={{ padding: '20px 0' }}
<Steps progressDot
style={{ padding: '20px 0' }} current={Number(data.interiorState - 1)}
progressDot >
current={1} {detailData.interiorStateStep.items.map((item, index) => {
> return (
{detailData.externalStateStep.items.map((item, index) => { <Step
return ( key={index}
<Step title={item.title}
key={index} description={item.desc}
title={item.title} />
description={item.desc} );
/> })}
); </Steps>
})} </TabPane>
</Steps> </Tabs>
</TabPane>
<TabPane tab="内部流转" key="2">
<Steps
style={{ padding: '20px 0' }}
progressDot
current={0}
>
{detailData.interiorStateStep.items.map((item, index) => {
return (
<Step
key={index}
title={item.title}
description={item.desc}
/>
);
})}
</Steps>
</TabPane>
</Tabs>
} }
</div> </div>
......
...@@ -52,12 +52,12 @@ const ReviewList: React.FC<parmas> = (props) => { ...@@ -52,12 +52,12 @@ const ReviewList: React.FC<parmas> = (props) => {
const columns: ColumnType<any>[] = [ const columns: ColumnType<any>[] = [
...column, ...column,
{ {
title: '价单摘要', title: '价单摘要',
key: 'details', key: 'details',
dataIndex: 'details', dataIndex: 'details',
}, },
{ {
title: '被询价会员', title: '价会员',
key: 'memberName', key: 'memberName',
dataIndex: 'memberName', dataIndex: 'memberName',
}, },
...@@ -171,7 +171,7 @@ const ReviewList: React.FC<parmas> = (props) => { ...@@ -171,7 +171,7 @@ const ReviewList: React.FC<parmas> = (props) => {
actions={formActions} actions={formActions}
onSubmit={values => search(values)} onSubmit={values => search(values)}
effects={($, actions) => { effects={($, actions) => {
useStateFilterSearchLinkageEffect($, actions, 'inquiryListNo', FORM_FILTER_PATH) useStateFilterSearchLinkageEffect($, actions, 'quotationNo', FORM_FILTER_PATH)
}} }}
expressionScope={{ expressionScope={{
controllerBtns controllerBtns
......
...@@ -79,7 +79,7 @@ export const commonEnquieryOfferSchema: ISchema = { ...@@ -79,7 +79,7 @@ export const commonEnquieryOfferSchema: ISchema = {
memberName:{ memberName:{
type:'string', type:'string',
"x-component-props":{ "x-component-props":{
placeholder:'价会员' placeholder:'价会员'
} }
}, },
voucherTime:{ voucherTime:{
......
...@@ -25,14 +25,14 @@ export const pendingReviewSchema: ISchema = { ...@@ -25,14 +25,14 @@ export const pendingReviewSchema: ISchema = {
children: "{{controllerBtns}}" children: "{{controllerBtns}}"
} }
}, },
inquiryListNo: {//报价单号 quotationNo: {//报价单号
type: 'string', type: 'string',
"x-component": "Search", "x-component": "Search",
"x-mega-props": { "x-mega-props": {
}, },
"x-component-props": { "x-component-props": {
placeholder: '报价单搜索' placeholder: '报价单'
} }
} }
} }
...@@ -59,16 +59,22 @@ export const pendingReviewSchema: ISchema = { ...@@ -59,16 +59,22 @@ export const pendingReviewSchema: ISchema = {
inline: true inline: true
}, },
properties: { properties: {
inquiryListNo: {
type: 'string',
"x-component-props": {
placeholder: '询价单号'
}
},
details: { details: {
type: 'string', type: 'string',
"x-component-props": { "x-component-props": {
placeholder: '价单摘要' placeholder: '价单摘要'
} }
}, },
memberName: { memberName: {
type: 'string', type: 'string',
"x-component-props": { "x-component-props": {
placeholder: '被询价会员' placeholder: '价会员'
} }
}, },
voucherTime: { voucherTime: {
......
import React, { useState } from 'react'; import React, { useRef, useState } from 'react';
import { Form, Radio, Tooltip, Row, Col, Checkbox, Avatar, Space, Button, Table } from 'antd'; import { Form, Radio, Tooltip, Row, Col, Checkbox, Avatar, Space, Button, Input } from 'antd';
import { QuestionCircleOutlined, PlusOutlined } from '@ant-design/icons'; import { QuestionCircleOutlined, PlusOutlined } from '@ant-design/icons';
import style from './index.less'; import style from './index.less';
import { StandardTable } from 'god'; import { StandardTable } from 'god';
import { ColumnType } from 'antd/lib/table/interface'; import { ColumnType } from 'antd/lib/table/interface';
import { PublicApi } from '@/services/api';
const layout: any = { const layout: any = {
colon: false, colon: false,
...@@ -17,7 +18,22 @@ export interface faceSetData { ...@@ -17,7 +18,22 @@ export interface faceSetData {
} }
const DemandDbutted: React.FC<faceSetData> = (props) => { const DemandDbutted: React.FC<faceSetData> = (props) => {
const { set, get } = props const { set, get } = props
const [shopId, setShopId] = useState<Number>(0) const [shopId, setShopId] = useState<Number>(0);
const ref = useRef<any>({});
const [filterParams, setFilterParams] = useState<any>({});
// 搜索
const handleSearch = (val: string) => {
let obj = { ...filterParams, name: val }
setFilterParams(obj)
ref.current.reload(obj)
}
// 重置
const handleReset = () => {
setFilterParams({})
setTimeout(() => {
ref.current.reload()
}, 500)
}
// 系统匹配表头 // 系统匹配表头
const columns: ColumnType<any>[] = [ const columns: ColumnType<any>[] = [
{ {
...@@ -102,8 +118,20 @@ const DemandDbutted: React.FC<faceSetData> = (props) => { ...@@ -102,8 +118,20 @@ const DemandDbutted: React.FC<faceSetData> = (props) => {
} }
// 请求系统匹配列表数据 // 请求系统匹配列表数据
const fetchSystemMateData = (params:any) => { const fetchSystemMateData = (params: any, index: number) => {
if (index === 1) {
} else if (index === 2) {
} else {
return new Promise(resolve => {
PublicApi.getMemberManageUpperProviderPage({ ...filterParams, ...params }).then(res => {
if (res.code === 1000) {
resolve(res.data)
}
})
})
}
} }
return ( return (
<Form <Form
...@@ -140,7 +168,7 @@ const DemandDbutted: React.FC<faceSetData> = (props) => { ...@@ -140,7 +168,7 @@ const DemandDbutted: React.FC<faceSetData> = (props) => {
<StandardTable <StandardTable
rowSelection={rowSelection} rowSelection={rowSelection}
columns={columns} columns={columns}
// fetchTableData={(params) => fetchSystemMateData(params)} // fetchTableData={(params) => fetchSystemMateData(params)}
/> />
</Form.Item> </Form.Item>
} }
...@@ -150,9 +178,27 @@ const DemandDbutted: React.FC<faceSetData> = (props) => { ...@@ -150,9 +178,27 @@ const DemandDbutted: React.FC<faceSetData> = (props) => {
<Form.Item noStyle> <Form.Item noStyle>
{/* <Button type='dashed' block style={{ marginBottom: '24px' }}><PlusOutlined />选择会员</Button> */} {/* <Button type='dashed' block style={{ marginBottom: '24px' }}><PlusOutlined />选择会员</Button> */}
<StandardTable <StandardTable
tableProps={{
rowKey: 'id',
}}
currentRef={ref}
rowSelection={rowSelection} rowSelection={rowSelection}
columns={memberColumns} columns={memberColumns}
// fetchTableData={(params) => fetchSystemMateData(params)} fetchTableData={(params) => fetchSystemMateData(params, 3)}
controlRender={
<Row>
<Col span={12}>
<Input.Search
style={{ width: '256px', marginRight: '24px', marginBottom: '24px' }}
placeholder='搜索'
value={filterParams.name}
onChange={(e) => setFilterParams({ ...filterParams, name: e.target.value })}
onSearch={(val) => handleSearch(val)}
/>
<Button onClick={handleReset}>重置</Button>
</Col>
</Row>
}
/> />
</Form.Item> </Form.Item>
} }
......
export const setUpdata = {
requisitionFormAddress: [], /** 需求单地址列表 ,RequisitionFormAddresRequest */
requisitionFormProducts: [],/** 商品列表 ,RequisitionFormProductRequest */
demandDockings: [],/** 需求对接-系统匹配列表 ,DemandDockingRequest */
shopIds: [],/** 需求对接-发布至平台 ,Long */
memberIds: [],/** 需求对接-指定会员ID列表 ,Long */
details: '',/** 需求摘要 */
deliveryTime: '',/** 交付日期 */
quotationAsTime: '',/** 报价截止时间 */
voucherTime: '',/** 单据时间 */
defaultAddres: null,/** 适用地市:1.默认全部省市区 0.选中项 */
addres: '',/** 交付地址 */
addresId: null,/** 交付地址Id */
offer: '',/** 报价要求 */
paymentType: '',/** 付款方式 */
taxes: '',/** 税费要求 */
logistics: '',/** 物流要求 */
packRequire: '',/** 包装要求 */
otherRequire: '',/** 其他要求 */
type: null,/** 需求对接类型:1.发布至平台 2.系统匹配 3.指定会员 */
}
\ No newline at end of file
...@@ -238,28 +238,28 @@ const List: React.FC<{}> = () => { ...@@ -238,28 +238,28 @@ const List: React.FC<{}> = () => {
const [externalState, setExternalState] = useState<any>([]); const [externalState, setExternalState] = useState<any>([]);
const [interiorState, setInteriorState] = useState<any>([]); const [interiorState, setInteriorState] = useState<any>([]);
// useEffect(() => { useEffect(() => {
// const external = new Promise(resolve => { const external = new Promise(resolve => {
// //查询需求单外部状态枚举列表 //查询需求单外部状态枚举列表
// PublicApi.getOrderRequisitionFormExternalStateEnum().then((res: any) => { PublicApi.getOrderRequisitionFormExternalStateEnum().then((res: any) => {
// if (res.code === 1000) { if (res.code === 1000) {
// resolve(res.data) resolve(res.data)
// } }
// }) })
// }) })
// const interior = new Promise(resolve => { const interior = new Promise(resolve => {
// // 查询需求单内部状态枚举列表 // 查询需求单内部状态枚举列表
// PublicApi.getOrderRequisitionFormInteriorStateEnum().then((res: any) => { PublicApi.getOrderRequisitionFormInteriorStateEnum().then((res: any) => {
// if (res.code === 1000) { if (res.code === 1000) {
// resolve(res.data) resolve(res.data)
// } }
// }) })
// }) })
// Promise.all([external, interior]).then(res => { Promise.all([external, interior]).then(res => {
// setExternalState(res[0]) setExternalState(res[0])
// setInteriorState(res[1]) setInteriorState(res[1])
// }) })
// }, []) }, [])
return ( return (
<PageHeaderWrapper> <PageHeaderWrapper>
......
...@@ -35,13 +35,6 @@ const AuditModal: React.FC<Params> = (props) => { ...@@ -35,13 +35,6 @@ const AuditModal: React.FC<Params> = (props) => {
let value = { ...values } let value = { ...values }
value.id = props.id value.id = props.id
switch (props.type) { switch (props.type) {
case 6:
PublicApi.postOrderInquirySubmit(value).then(res => {
if(res.code === 1000) {
props.onOK()
}
})
break;
case 2: case 2:
PublicApi.postOrderInquiryDocumentsReview(value).then(res => { PublicApi.postOrderInquiryDocumentsReview(value).then(res => {
if(res.code === 1000) { if(res.code === 1000) {
...@@ -56,7 +49,7 @@ const AuditModal: React.FC<Params> = (props) => { ...@@ -56,7 +49,7 @@ const AuditModal: React.FC<Params> = (props) => {
} }
}) })
break; break;
case 4: case 6:
PublicApi.postOrderInquiryListSubmit(value).then(res => { PublicApi.postOrderInquiryListSubmit(value).then(res => {
if(res.code === 1000) { if(res.code === 1000) {
props.onOK() props.onOK()
......
...@@ -9,6 +9,8 @@ import { quoteOrderInternalState, inquiryQuoteOuterState } from '../../common/ta ...@@ -9,6 +9,8 @@ import { quoteOrderInternalState, inquiryQuoteOuterState } from '../../common/ta
import AuditModal from '../components/auditModel'; import AuditModal from '../components/auditModel';
import moment from 'moment'; import moment from 'moment';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
import GeneralExternalState from '@/pages/transaction/common/externalState';
import GeneralInteriorState from '@/pages/transaction/common/interiorState';
const { TabPane } = Tabs; const { TabPane } = Tabs;
const { Step } = Steps; const { Step } = Steps;
...@@ -34,7 +36,7 @@ const Details: React.FC<parmas> = (props) => { ...@@ -34,7 +36,7 @@ const Details: React.FC<parmas> = (props) => {
//action: 审核按钮 //action: 审核按钮
const { id, page_type, view, action } = props; const { id, page_type, view, action } = props;
const { pathname } = history.location; const { pathname } = history.location;
const last = pathname.split('/')[pathname.split('/').length - 1]; const last = pathname.split('/')[pathname.split('/').length - 1];
const [headerWrapperData, setheaderWrapperData] = useState<Array<any>>([]); const [headerWrapperData, setheaderWrapperData] = useState<Array<any>>([]);
const format = (text) => { const format = (text) => {
return <>{moment(text).format("YYYY-MM-DD HH:mm:ss")}</> return <>{moment(text).format("YYYY-MM-DD HH:mm:ss")}</>
...@@ -57,7 +59,6 @@ const Details: React.FC<parmas> = (props) => { ...@@ -57,7 +59,6 @@ const Details: React.FC<parmas> = (props) => {
title: '采购商', title: '采购商',
desc: '确认报价单', desc: '确认报价单',
}, },
,
{ {
title: '完成', title: '完成',
desc: '' desc: ''
...@@ -126,7 +127,7 @@ const Details: React.FC<parmas> = (props) => { ...@@ -126,7 +127,7 @@ const Details: React.FC<parmas> = (props) => {
base: { base: {
title: '交易条件', title: '交易条件',
leftElem: [ leftElem: [
{ title: '交付日期', key: '', value: format(data.deliveryTime)}, { title: '交付日期', key: '', value: format(data.deliveryTime) },
{ title: '交付地址', key: '', value: data.fullAddress }, { title: '交付地址', key: '', value: data.fullAddress },
{ title: '物流要求', key: '', value: data.logistics } { title: '物流要求', key: '', value: data.logistics }
], ],
...@@ -169,7 +170,7 @@ const Details: React.FC<parmas> = (props) => { ...@@ -169,7 +170,7 @@ const Details: React.FC<parmas> = (props) => {
}) })
}) })
}, []) }, [])
// 外部流转记录&内部流转记录 // 外部流转记录&内部流转记录
const flowRecord = { const flowRecord = {
external: [{ external: [{
...@@ -184,7 +185,7 @@ const Details: React.FC<parmas> = (props) => { ...@@ -184,7 +185,7 @@ const Details: React.FC<parmas> = (props) => {
title: '状态', title: '状态',
key: 'state', key: 'state',
dataIndex: 'state', dataIndex: 'state',
render: (text: any, record: any) => externalTextState(text) render: (text: any, record: any) => <GeneralExternalState colorType={2} state={text} data={externalState} />
}, { }, {
title: '操作', title: '操作',
key: 'operation', key: 'operation',
...@@ -219,7 +220,7 @@ const Details: React.FC<parmas> = (props) => { ...@@ -219,7 +220,7 @@ const Details: React.FC<parmas> = (props) => {
title: '状态', title: '状态',
key: 'state', key: 'state',
dataIndex: 'state', dataIndex: 'state',
render: (text: any, record: any) => interiorTextState(text) render: (text: any, record: any) => <GeneralInteriorState colorType={2} state={text} data={interiorState} />
}, { }, {
title: '操作', title: '操作',
key: 'operation', key: 'operation',
...@@ -262,42 +263,36 @@ const Details: React.FC<parmas> = (props) => { ...@@ -262,42 +263,36 @@ const Details: React.FC<parmas> = (props) => {
}, 1000) }, 1000)
} }
/**
* @description: 外部流转记录
* @param {type}
* @return {type}
*/
const externalTextState = (text) => {
let name = ''
console.log(data)
data.externalInquiryListStateResponses.forEach(element => {
if (element.state === text) {
name = element.operationalProcess
}
})
return <>{name}</>
}
/**
* @description: 内部流转记录
* @param {type}
* @return {type}
*/
const interiorTextState = (text) => {
let name = ''
data.interiorInquiryListLogResponses.forEach(element => {
if (element.state === text) {
name = element.operationalProcess
}
})
return <>{name}</>
}
/**下载 */ /**下载 */
const onDownload = (file: any) => { const onDownload = (file: any) => {
window.location.href = `/api/order/contractTemplate/downloadContract?contractName=${file.name}&contractUrl=${file.url}` window.location.href = `/api/order/contractTemplate/downloadContract?contractName=${file.name}&contractUrl=${file.url}`
} }
const [externalState, setExternalState] = useState<any>([]);
const [interiorState, setInteriorState] = useState<any>([]);
useEffect(() => {
const external = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用外部状态
PublicApi.getOrderProductInquiryExternalStateEnum().then((res: any) => {
if (res.code === 1000) {
resolve(res.data)
}
})
})
const interior = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用内部状态
PublicApi.getOrderProductInquiryInteriorStateEnum().then((res: any) => {
if (res.code === 1000) {
resolve(res.data)
}
})
})
Promise.all([external, interior]).then(res => {
setExternalState(res[0])
setInteriorState(res[1])
})
}, [])
return ( return (
<PageHeaderWrapper <PageHeaderWrapper
className={style.header} className={style.header}
...@@ -316,7 +311,7 @@ const Details: React.FC<parmas> = (props) => { ...@@ -316,7 +311,7 @@ const Details: React.FC<parmas> = (props) => {
extra={ extra={
<> <>
{ {
(last==='details' && (Number(page_type) === 2 || Number(page_type) === 3) && (data.interiorState === 2 || data.interiorState === 3)) && (last === 'details' && (Number(page_type) === 2 || Number(page_type) === 3) && (data.interiorState === 2 || data.interiorState === 3)) &&
<> <>
<Button type='primary' className={style['saveBtn']} onClick={() => { setvisible(true) }}> <Button type='primary' className={style['saveBtn']} onClick={() => { setvisible(true) }}>
<CheckSquareOutlined />单据审核 <CheckSquareOutlined />单据审核
...@@ -324,7 +319,7 @@ const Details: React.FC<parmas> = (props) => { ...@@ -324,7 +319,7 @@ const Details: React.FC<parmas> = (props) => {
</> </>
} }
{ {
( last==='details' && Number(page_type) === 6 && data.interiorState === 1) && (last === 'details' && Number(page_type) === 6 && data.interiorState === 1) &&
<Button className={style['saveBtn']} onClick={() => setvisible(true)}> <Button className={style['saveBtn']} onClick={() => setvisible(true)}>
<CheckSquareOutlined />提交 <CheckSquareOutlined />提交
</Button> </Button>
...@@ -343,10 +338,10 @@ const Details: React.FC<parmas> = (props) => { ...@@ -343,10 +338,10 @@ const Details: React.FC<parmas> = (props) => {
<div>{item.label}</div> <div>{item.label}</div>
<div> <div>
{item.name === 'externalState' ? {item.name === 'externalState' ?
inquiryQuoteOuterState(item.value) : <GeneralExternalState colorType={2} state={item.value} data={externalState} /> :
item.name === 'interiorState' ? item.name === 'interiorState' ?
quoteOrderInternalState(item.value) : <GeneralInteriorState colorType={2} state={item.value} data={interiorState} /> :
item.name === 'voucherTime' ? format(item.value) : item.value} item.name === 'voucherTime' ? format(item.value) : item.value}
</div> </div>
</div> </div>
))} ))}
......
...@@ -203,6 +203,16 @@ const AddInquiryOrder: React.FC<{}> = () => { ...@@ -203,6 +203,16 @@ const AddInquiryOrder: React.FC<{}> = () => {
}) })
},[]) },[])
// 搜索
const search = (values: any) => {
if (values.voucherTime) {
values.startDocumentsTime = timeRange(values.voucherTime).st
values.endDocumentsTime = timeRange(values.voucherTime).et
delete values.voucherTime
}
ref.current.reload(values)
}
return ( return (
<PageHeaderWrapper> <PageHeaderWrapper>
<Card> <Card>
...@@ -215,6 +225,7 @@ const AddInquiryOrder: React.FC<{}> = () => { ...@@ -215,6 +225,7 @@ const AddInquiryOrder: React.FC<{}> = () => {
controlRender={ controlRender={
<NiceForm <NiceForm
actions={formActions} actions={formActions}
onSubmit={values => search(values)}
effects={($, actions) => { effects={($, actions) => {
useStateFilterSearchLinkageEffect($, actions, 'quotationNo', FORM_FILTER_PATH) useStateFilterSearchLinkageEffect($, actions, 'quotationNo', FORM_FILTER_PATH)
}} }}
......
...@@ -10,6 +10,8 @@ import { quoteOrderInternalState, inquiryQuoteOuterState } from '../../common/ta ...@@ -10,6 +10,8 @@ import { quoteOrderInternalState, inquiryQuoteOuterState } from '../../common/ta
import AuditModal from '../components/auditModel'; import AuditModal from '../components/auditModel';
import moment from 'moment'; import moment from 'moment';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
import GeneralExternalState from '@/pages/transaction/common/externalState';
import GeneralInteriorState from '@/pages/transaction/common/interiorState';
const { TabPane } = Tabs; const { TabPane } = Tabs;
const { Step } = Steps; const { Step } = Steps;
...@@ -206,7 +208,7 @@ const Details: React.FC<parmas> = (props) => { ...@@ -206,7 +208,7 @@ const Details: React.FC<parmas> = (props) => {
title: '状态', title: '状态',
key: 'state', key: 'state',
dataIndex: 'state', dataIndex: 'state',
render: (text: any, record: any) => inquiryQuoteOuterState(record.state) render: (text: any, record: any) => <GeneralExternalState colorType={2} state={text} data={externalState} />
}, { }, {
title: '操作', title: '操作',
key: 'operation', key: 'operation',
...@@ -241,7 +243,7 @@ const Details: React.FC<parmas> = (props) => { ...@@ -241,7 +243,7 @@ const Details: React.FC<parmas> = (props) => {
title: '状态', title: '状态',
key: 'state', key: 'state',
dataIndex: 'state', dataIndex: 'state',
render: (text: any, record: any) => quoteOrderInternalState(record.state) render: (text: any, record: any) => <GeneralInteriorState colorType={2} state={text} data={interiorState} />
}, { }, {
title: '操作', title: '操作',
key: 'operation', key: 'operation',
...@@ -259,7 +261,6 @@ const Details: React.FC<parmas> = (props) => { ...@@ -259,7 +261,6 @@ const Details: React.FC<parmas> = (props) => {
} }
// 详情请求 // 详情请求
useEffect(() => { useEffect(() => {
console.log(page_type, 10086)
if (type === 'rfq') { if (type === 'rfq') {
// 代表的是查看询价 // 代表的是查看询价
setview(1) setview(1)
...@@ -268,7 +269,7 @@ const Details: React.FC<parmas> = (props) => { ...@@ -268,7 +269,7 @@ const Details: React.FC<parmas> = (props) => {
setdata(res.data) setdata(res.data)
} }
}) })
} else if(type === 'quote') { } else if (type === 'quote') {
// 代表的是查看报价 // 代表的是查看报价
setview(2) setview(2)
PublicApi.getOrderProductQuotationDetails({ id }).then(res => { PublicApi.getOrderProductQuotationDetails({ id }).then(res => {
...@@ -287,13 +288,13 @@ const Details: React.FC<parmas> = (props) => { ...@@ -287,13 +288,13 @@ const Details: React.FC<parmas> = (props) => {
} }
}, []) }, [])
const fetchData = (params:any) => { const fetchData = (params: any) => {
return new Promise(resolve => { return new Promise(resolve => {
PublicApi.getOrderInquiryDetails({...params,id}).then(res => { PublicApi.getOrderInquiryDetails({ ...params, id }).then(res => {
console.log(res, 10086) console.log(res, 10086)
resolve(res.data) resolve(res.data)
}) })
}) })
} }
useEffect(() => { useEffect(() => {
...@@ -331,10 +332,10 @@ const Details: React.FC<parmas> = (props) => { ...@@ -331,10 +332,10 @@ const Details: React.FC<parmas> = (props) => {
name = format(value); name = format(value);
break; break;
case 'externalState': case 'externalState':
name = quoteOrderInternalState(value); name = <GeneralExternalState colorType={2} state={value} data={externalState} />;
break; break;
case 'interiorState': case 'interiorState':
name = inquiryQuoteOuterState(value); name = <GeneralInteriorState colorType={2} state={value} data={interiorState} />;
break; break;
default: default:
name = value; name = value;
...@@ -348,6 +349,31 @@ const Details: React.FC<parmas> = (props) => { ...@@ -348,6 +349,31 @@ const Details: React.FC<parmas> = (props) => {
window.location.href = `/api/order/contractTemplate/downloadContract?contractName=${file.name}&contractUrl=${file.url}` window.location.href = `/api/order/contractTemplate/downloadContract?contractName=${file.name}&contractUrl=${file.url}`
} }
const [externalState, setExternalState] = useState<any>([]);
const [interiorState, setInteriorState] = useState<any>([]);
useEffect(() => {
const external = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用外部状态
PublicApi.getOrderProductInquiryExternalStateEnum().then((res: any) => {
if (res.code === 1000) {
resolve(res.data)
}
})
})
const interior = new Promise(resolve => {
// 询价查询, 询价报价, 确认询价报价单 通用内部状态
PublicApi.getOrderProductInquiryInteriorStateEnum().then((res: any) => {
if (res.code === 1000) {
resolve(res.data)
}
})
})
Promise.all([external, interior]).then(res => {
setExternalState(res[0])
setInteriorState(res[1])
})
}, [])
return ( return (
<PageHeaderWrapper <PageHeaderWrapper
className={style.header} className={style.header}
...@@ -366,13 +392,13 @@ const Details: React.FC<parmas> = (props) => { ...@@ -366,13 +392,13 @@ const Details: React.FC<parmas> = (props) => {
extra={ extra={
<> <>
{ {
((page_type === 2 || page_type === 3 || page_type === 6) && show ) && ((page_type === 2 || page_type === 3 || page_type === 6) && show) &&
<Button type='primary' className={style['saveBtn']} onClick={() => setvisible(true)}> <Button type='primary' className={style['saveBtn']} onClick={() => setvisible(true)}>
<CheckSquareOutlined />单据审核 <CheckSquareOutlined />单据审核
</Button> </Button>
} }
{ {
(page_type === 1 && show ) && (page_type === 1 && show) &&
<Button className={style['saveBtn']} onClick={() => setvisible(true)}> <Button className={style['saveBtn']} onClick={() => setvisible(true)}>
<CheckSquareOutlined />提交 <CheckSquareOutlined />提交
</Button> </Button>
...@@ -404,70 +430,60 @@ const Details: React.FC<parmas> = (props) => { ...@@ -404,70 +430,60 @@ const Details: React.FC<parmas> = (props) => {
} }
> >
<div className={style.item_wrap}> <div className={style.item_wrap}>
{ <Tabs>
Number(page_type) === 4 ? {
Object.keys(data).length > 0 &&
<> <>
<div className={style.mainCol_title}>外部流转</div> {
<Steps (type === 'quote' ? data.externalQuotationStateResponses.length > 0 : data.externalInquiryListStateResponses.length > 0)
style={{ padding: '20px 0' }} &&
progressDot <TabPane tab="外部流转" key="1">
current={Number(data.externalState - 1)} <Steps
> style={{ padding: '20px 0' }}
{detailData.externalStateStep.items.map((item, index) => { progressDot
return ( current={data.externalState - 1}
<Step >
key={index} {detailData.externalStateStep.items.map((item, index) => {
title={item.title} return (
description={item.desc} <Step
/> key={index}
); title={item.title}
})} description={item.desc}
</Steps> />
);
})}
</Steps>
</TabPane>
}
{
(type === 'quote' ? data.interiorQuotationStateResponses.length > 0 : data.interiorInquiryListLogResponses.length > 0)
&&
<TabPane tab="内部流转" key="2">
<Steps
style={{ padding: '20px 0' }}
progressDot
current={Number(data.interiorState - 1)}
>
{detailData.interiorStateStep.items.map((item, index) => {
return (
<Step
key={index}
title={item.title}
description={item.desc}
/>
);
})}
</Steps>
</TabPane>
}
</> </>
: }
<Tabs> </Tabs>
<TabPane tab="外部流转" key="1">
<Steps
style={{ padding: '20px 0' }}
progressDot
current={1}
>
{detailData.externalStateStep.items.map((item, index) => {
return (
<Step
key={index}
title={item.title}
description={item.desc}
/>
);
})}
</Steps>
</TabPane>
<TabPane tab="内部流转" key="2">
<Steps
style={{ padding: '20px 0' }}
progressDot
current={Number(data.interiorState - 1)}
>
{detailData.interiorStateStep.items.map((item, index) => {
return (
<Step
key={index}
title={item.title}
description={item.desc}
/>
);
})}
</Steps>
</TabPane>
</Tabs>
}
</div> </div>
<div className={style.item_wrap}> <div className={style.item_wrap}>
<div className={style.mainCol_title}>询价商品</div> <div className={style.mainCol_title}>询价商品</div>
{view === 1 && <Table columns={inquiryGoods} pagination={false} rowKey='id' dataSource={data.inquiryListProductRequests} />} {view === 1 && <Table columns={inquiryGoods} pagination={false} rowKey='id' dataSource={data.inquiryListProductRequests} />}
{view === 2 && {view === 2 &&
<StandardTable <StandardTable
currentRef={ref} currentRef={ref}
columns={inquiryGoods} columns={inquiryGoods}
...@@ -545,7 +561,7 @@ const Details: React.FC<parmas> = (props) => { ...@@ -545,7 +561,7 @@ const Details: React.FC<parmas> = (props) => {
</div> </div>
<div className={style.item_wrap}> <div className={style.item_wrap}>
{ {
Number(page_type) === 4 ? type === 'rfq' ?
<> <>
<div className={style.mainCol_title}>外部流转记录</div> <div className={style.mainCol_title}>外部流转记录</div>
<Table columns={flowRecord.external} rowKey='id' pagination={false} dataSource={data.externalInquiryListLogResponses} /> <Table columns={flowRecord.external} rowKey='id' pagination={false} dataSource={data.externalInquiryListLogResponses} />
......
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