Commit 2e81de20 authored by 前端-黄佳鑫's avatar 前端-黄佳鑫

1.完善确认询价报价,2.修改需求报价单新增报价单bug

parent b1f775fd
......@@ -36,8 +36,8 @@ const AuditModal: React.FC<Params> = (props) => {
value.id = props.id
switch (props.type) {
case 1:
PublicApi.postOrderProductQuotationtToSubmit(value).then(res => {
if(res.code === 1000) {
PublicApi.postOrderNotarizeEnquiryQuotedPriceAffirm(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
......@@ -45,7 +45,7 @@ const AuditModal: React.FC<Params> = (props) => {
// 待审核报价单1级
case 2:
PublicApi.postOrderNotarizeEnquiryQuotedPriceAudit(value).then(res => {
if(res.code === 1000) {
if (res.code === 1000) {
props.onOK()
}
})
......@@ -53,7 +53,15 @@ const AuditModal: React.FC<Params> = (props) => {
// 待审核报价单2级
case 3:
PublicApi.postOrderNotarizeEnquiryQuotedPriceAuditTwo(value).then(res => {
if(res.code === 1000) {
if (res.code === 1000) {
props.onOK()
}
})
break;
// 确认询价报价-待提交审核报价单-提交审核
case 5:
PublicApi.postOrderNotarizeEnquiryQuotedPriceSubmit(value).then(res => {
if (res.code === 1000) {
props.onOK()
}
})
......
......@@ -278,7 +278,11 @@ const Details: React.FC<{}> = () => {
useEffect(() => {
switch (Number(page_type)) {
case 4:
PublicApi.getOrderNotarizeEnquiryProductQuotationDetails({ id }).then(res => {
if (res.code === 1000) {
setdata(res.data)
}
})
break;
default:
PublicApi.getOrderNotarizeEnquiryQuotedPriceDetails({ id }).then(res => {
......
......@@ -42,12 +42,12 @@ const PendingReviewOne: React.FC<{}> = () => {
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
// PublicApi.getOrderNotarizeEnquiryQuotedPriceAuditList({...params}).then(res => {
// resolve(res.data)
// })
setTimeout(() => {
resolve(data)
}, 500)
PublicApi.getOrderNotarizeEnquiryQuotedPriceAuditList({...params}).then(res => {
resolve(res.data)
})
// setTimeout(() => {
// resolve(data)
// }, 500)
})
}
// 批量操作
......
......@@ -42,12 +42,12 @@ const PendingReviewTwo: React.FC<{}> = () => {
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
// PublicApi.getOrderNotarizeEnquiryQuotedPriceAuditListTwo({...params}).then(res => {
// resolve(res.data)
// })
setTimeout(() => {
resolve(data)
}, 500)
PublicApi.getOrderNotarizeEnquiryQuotedPriceAuditListTwo({...params}).then(res => {
resolve(res.data)
})
// setTimeout(() => {
// resolve(data)
// }, 500)
})
}
// 批量操作
......
......@@ -116,12 +116,12 @@ const PendingSubmit: React.FC<{}> = () => {
const fetchData = (params?: any) => {
console.log(params)//可以直接打印参数
return new Promise((resolve, reject) => {
// PublicApi.getOrderNotarizeEnquiryQuotedPriceAffirmList({ ...params }).then(res => {
// resolve(res.data)
// })
setTimeout(() => {
resolve(data)
}, 500)
PublicApi.getOrderNotarizeEnquiryQuotedPriceAffirmList({ ...params }).then(res => {
resolve(res.data)
})
// setTimeout(() => {
// resolve(data)
// }, 500)
})
}
......
import React, { useRef, useState } from 'react';
import { history, Link } from 'umi';
import { Button, Card, Space, Row, Col} from 'antd';
import { Button, Card, Space, Row, Col, message} from 'antd';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { StandardTable } from 'god';
import { filterInternalState, filterExternalState } from './../../common/statusList';
......@@ -91,11 +91,26 @@ const PendingSubmitReview: React.FC<{}> = () => {
const controllerBtns = <Row>
<Col span={24}>
<Space direction="horizontal" size={16}>
<Button>批量提交审核</Button>
<Button onClick={() => handleSubmitAll(selectedRowKeys)}>批量提交审核</Button>
</Space>
</Col>
</Row>
// 批量操作
const handleSubmitAll = (ids: number[]) => {
if (selectRow.length > 0) {
return new Promise((resolve, reject) => {
PublicApi.postOrderNotarizeEnquiryQuotedPriceSubmitAll({ ids }).then(res => {
if (res.code === 1000) {
resolve(res.data)
ref.current.reload();
}
})
})
} else {
message.error('请选择要操作的审核报价单!')
}
}
// 列表数据
const data = { // 模拟的数据
totalCount: 6,
......@@ -125,12 +140,12 @@ const PendingSubmitReview: React.FC<{}> = () => {
}
const fetchData = (params?: any) => {
return new Promise((resolve, reject) => {
// PublicApi.getOrderNotarizeEnquiryQuotedPriceList({...params}).then(res => {
// resolve(res.data)
// })
setTimeout(() => {
resolve(data)
}, 500)
PublicApi.getOrderNotarizeEnquiryQuotedPriceList({...params}).then(res => {
resolve(res.data)
})
// setTimeout(() => {
// resolve(data)
// }, 500)
})
}
const handleModalOK = () => {
......
......@@ -82,12 +82,12 @@ const EnquiryOrder: React.FC<{}> = (props) => {
}
const fetchData = (params?: any) => {
return new Promise((resolve, reject) => {
// PublicApi.getOrderNotarizeEnquiryQuotedPriceList({...params}).then(res => {
// resolve(res.data)
// })
setTimeout(() => {
resolve(data)
}, 1000)
PublicApi.getOrderNotarizeEnquiryProductQuotationList({...params}).then(res => {
resolve(res.data)
})
// setTimeout(() => {
// resolve(data)
// }, 1000)
})
}
// 搜索
......
......@@ -5,12 +5,12 @@
* @Copyright: 1549414730@qq.com
* @LastEditTime: 2020-09-11 16:51:28
*/
import React, { Component, useState, useEffect } from 'react';
import { Modal, Button, Form, Radio, AutoComplete,Tabs, Input, Select,Checkbox } from 'antd'
import React, { Component, useState, useEffect, Fragment } from 'react';
import { Modal, Button, Form, Radio, AutoComplete, Tabs, Input, Select, Checkbox } from 'antd'
import { PublicApi } from '@/services/api'
const { TabPane } = Tabs
const { Option } = Select
const {TextArea} = Input
const { TextArea } = Input
export interface Params {
sourceData: Array<any>[],
......@@ -39,14 +39,13 @@ const layout = {
* @return {type}
*/
const comfirmDialog: React.FC<Params> = (props) => {
// console.log('数据',props.sourceData)
const [form] = Form.useForm()
const [placeOfOriginList, setplaceOfOriginList] = useState([])//产地
const handleCancel = () => {
}
const handletOk = () => {
form.validateFields().then(v => {
console.log('表单', v)
console.log(v)
props.onOK(v)
})
// if(props.type){
......@@ -63,20 +62,21 @@ const comfirmDialog: React.FC<Params> = (props) => {
return () => {
}
}, [])
const onChange = (value, attrItem) => {
const onChange = (e, attrItem) => {
const { value } = e.target
}
const renderTabPanchildren = (item: any) => {
return (
<>
{
item.attributeList.map((attrItem:any) => {
item.attributeList.map((attrItem: any) => {
const options = attrItem.attributeValueList.map((item: any) => ({
value: item.value
}))
console.log(attrItem, 10086)
return (
<>
<Fragment key={attrItem.id}>
{
attrItem.type === 1 &&
<Form.Item
......@@ -112,35 +112,35 @@ const comfirmDialog: React.FC<Params> = (props) => {
attrItem.type === 2 &&
<Form.Item
label={attrItem.name}
name={attrItem.id}
name={attrItem.name}
rules={attrItem.isEmpty && [{
required: true,
message: '此项为必填项'
}]}
>
{/* <Checkbox.Group onChange={(v)=>onChange(v, attrItem)}>
<Checkbox.Group onChange={(v) => onChange(v, attrItem)}>
{
attrItem.customerAttributeValueList.length && attrItem.customerAttributeValueList.map((item: any, index: string) => (
<Checkbox key={item.id} value={item.id}>{item.value}</Checkbox>
))
}
</Checkbox.Group> */}
</Checkbox.Group>
</Form.Item>
}
{
attrItem.type === 3 &&
<Form.Item
name={attrItem.id}
name={attrItem.name}
label={attrItem.name}
rules={attrItem.isEmpty && [{
required: true,
message: '此项为必填项'
}]}
>
{/* <TextArea onChange={(v)=>onChange(v, attrItem)} maxLength={100} placeholder="最多输入100个字符" rows={4} /> */}
<TextArea onBlur={(v) => onChange(v, attrItem)} maxLength={100} placeholder="最多输入100个字符" rows={4} />
</Form.Item>
}
</>
</Fragment>
)
})
}
......@@ -150,14 +150,13 @@ const comfirmDialog: React.FC<Params> = (props) => {
return (
<>
<Modal
title={props.mode === 0 ? '新增商品' : '查看商品'}
width={800}
visible={props.dialogVisible}
onOk={() => handletOk()}
onCancel={() => props.onCancel()}
destroyOnClose
afterClose={() => { }}
afterClose={() => form.resetFields()}
okText={`确定`}
cancelText='取消'
>
......@@ -198,16 +197,17 @@ const comfirmDialog: React.FC<Params> = (props) => {
*/
}
{
props.sourceData.length > 0 && props.sourceData.map((attributeItem:any) => <>
props.sourceData.length > 0 && props.sourceData.map((attributeItem: any) => {
console.log(attributeItem, 10086)
return(
<TabPane tab={attributeItem.name} key={attributeItem.id}>
{
renderTabPanchildren(attributeItem)
}
</TabPane>
</>
)
})
}
<Tabs.TabPane tab='采购数量' key="tab-7">
<Form.Item
label='单位'
......
......@@ -27,7 +27,7 @@ import { history } from 'umi'
import { LinkOutlined, PlusOutlined, QuestionCircleOutlined, MinusOutlined, MinusCircleOutlined } from '@ant-design/icons'
import {
Row, Col, Card, Button, Table, Popconfirm, Radio, DatePicker,
Form, Spin, Select, Switch, Cascader, Tabs, Input, Tooltip, Space
Form, Spin, Select, Switch, Cascader, Tabs, Input, Tooltip, Space, message
} from 'antd';
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import moment from 'moment'
......@@ -301,7 +301,6 @@ const Detail: React.FC<{}> = () => {
params.categoryId = categoryId
let codeList = tabForm.getFieldValue('requisitionFormAddress') || []
if (categoryId && otherList.length != 0) {
console.log('codeList', codeList)
params.areaRequestList =
codeList.map((v: any) => {
if (Array.isArray(v)) {
......@@ -314,7 +313,6 @@ const Detail: React.FC<{}> = () => {
let productList = []
productSource.forEach((v) => {
// console.log('v',v)
let item: any = {}
Object.keys(v).forEach(child => {
otherList.forEach((j: any) => {
......@@ -331,7 +329,6 @@ const Detail: React.FC<{}> = () => {
params.attributeList = [...productList]
params.current = 1
params.pageSize = 20
console.log('params', JSON.stringify(params))
PublicApi.postOrderSystemMatchingMemberInitializeList(
params
......@@ -354,6 +351,7 @@ const Detail: React.FC<{}> = () => {
PublicApi.getProductPlatformGetCategoryById({ id: seletCategoryId }).then(res => {
if (res.code === 1000) {
let data = res.data
console.log(data, 10086)
settabData([data])//转成数组
let da = []
// data.forEach((item: any) => {
......@@ -366,7 +364,6 @@ const Detail: React.FC<{}> = () => {
align: 'center',
render: (text: any) => {
const name = v.attributeValueList.filter(v => v.id == text).map(v => v.value)
console.log('name', name)
return (
<>{name.length > 0 ? name[0] : text}</>
)
......@@ -389,7 +386,6 @@ const Detail: React.FC<{}> = () => {
* @return {type}
*/
const onCustomerCategoryChange = (value: any, options: any) => {
console.log(3112, value, options)
let seletCategoryId = value[value.length - 1]
setcategoryId(seletCategoryId)
setseletCategoryNameList(options)
......@@ -398,7 +394,6 @@ const Detail: React.FC<{}> = () => {
} else {
sethaschangeCategory(false)
}
console.log(seletCategoryId, 'seleellele')
initCreatePro(seletCategoryId)
}
......@@ -457,7 +452,6 @@ const Detail: React.FC<{}> = () => {
align: 'center',
render: (text: any, records, index) =>
<Switch defaultChecked={text ? true : false} size="small" onChange={(checked) => {
console.log(checked);
dockingList[index].state = checked ? 1 : 0
setdockingList([...dockingList])
}} />
......@@ -537,7 +531,12 @@ const Detail: React.FC<{}> = () => {
const handleOptionBtn = (type: any) => {
switch (type) {
case 1:
if(Object.keys(tabData).length > 0) {
setdialogVisible(true)
}else{
message.error('请选择商品品类!')
}
break;
case 2:
setVisibleChannelMember(true)
......@@ -610,7 +609,7 @@ const Detail: React.FC<{}> = () => {
*/
if (id) {
PublicApi.getOrderRequisitionFormDetails({ id: id }).then(res => {
PublicApi.getOrderRequisitionFormDetails({ id }).then(res => {
if (res.code === 1000) {
let data = res.data
let areaCodeList = []
......@@ -627,8 +626,9 @@ const Detail: React.FC<{}> = () => {
}
//品类
if (data.productCategory) {
setcustomerCategoryId([data.productCategory.key])
initCreatePro(data.productCategory.key, false)//生产弹窗
console.log(10086, '============')
setcustomerCategoryId([data.productCategory.id])
initCreatePro(data.productCategory.id, false)//生产弹窗
}
......@@ -638,9 +638,8 @@ const Detail: React.FC<{}> = () => {
setinitialValues(data)
tabForm.resetFields()
console.log('platType', platType)
//需求单对接列表
PublicApi.getOrderRequisitionFormDemandDockingList({ id: id }).then(res => {
PublicApi.getOrderRequisitionFormDemandDockingList({ id }).then(res => {
if (res.code === 1000) {
let { data } = res.data
if (_plattype == 2) {//系统匹配
......@@ -679,14 +678,12 @@ const Detail: React.FC<{}> = () => {
key: key,
align: 'center'
})
// console.log('key',key,child,child[key])
obj[key] = child[key]
})
});
}
source.push(obj)
})
console.log([...source])
setotherList([...otherColumnkey])//生成列
setproductSource([...source])
}
......@@ -759,7 +756,6 @@ const Detail: React.FC<{}> = () => {
list.push(item)
} else {
areaParams.forEach((v, childIndex) => {
console.log('v', v)
if (v.key == index) {
areaParams.splice(childIndex, 1, item)
} else {
......@@ -770,10 +766,8 @@ const Detail: React.FC<{}> = () => {
}
setAreaParams([...areaParams, ...list])
console.log('list', [...areaParams, ...list], 'area')
}
const changePlatform = (e: any) => {
console.log('e', e.target.value)
setplatType(e.target.value)
if (e.target.value == 2) {
//调用需求单
......@@ -802,7 +796,6 @@ const Detail: React.FC<{}> = () => {
*/
const handleSubmitTabForm = () => {
tabForm.validateFields().then(values => {
// console.log('valiue', values)
if (id) {
if (!haschangeCategory) {
//不做处理
......@@ -862,7 +855,6 @@ const Detail: React.FC<{}> = () => {
})
item.productAttributeJson = JSON.stringify([..._otherList])
productList.push(item)
console.log('item', item)
})
// values['voucherTime'] = null
values['memberIds'] = []// memberRowCtl.selectedRowKeys
......@@ -878,9 +870,7 @@ const Detail: React.FC<{}> = () => {
values['demandDockings'] = []
values['requisitionFormProducts'] = [...productList]
console.log('productList', productList)
values['type'] = platType
console.log((JSON.stringify(values)))
let bb = tabForm.getFieldValue('requisitionFormAddress')
let objList = []
......@@ -938,24 +928,21 @@ const Detail: React.FC<{}> = () => {
* @return {type}
*/
const handleSubmit = (values: any) => {
console.log('弹窗内容', values)
let item = {}
// Object.keys(values).forEach((key) => {
// item[key] = values[key]
// })
let list = []
console.log('item', item)
//先循环所有 再循环有值的
otherList.forEach((vitem: any) => {
Object.keys(values).forEach((key) => {
console.log('key', key)
if (vitem.title == key) {
console.log('vitem.title:', vitem.title)
console.log('value', values[vitem.title])
item[key] = values[vitem.title]
console.log(values, '详情页面1')
} else {
item[key] = values[key]
console.log(values, '详情页面2')
}
})
})
......@@ -971,7 +958,6 @@ const Detail: React.FC<{}> = () => {
'quotationAsTime': fieldsValue['quotationAsTime'].format('YYYY-MM-DD HH:mm')
};
console.log('Received values of form: ', values);
}
const isChecked = (id) => {
......@@ -985,7 +971,6 @@ const Detail: React.FC<{}> = () => {
}
if (goodIds.includes(id)) {
const newValue = findItemAndDelete(goodIds, id)
console.log('new', newValue)
setgoodIds([...newValue])
} else {
setgoodIds([...goodIds, id])
......@@ -998,9 +983,7 @@ const Detail: React.FC<{}> = () => {
* @return {type}
*/
const switchState = (text, record, index) => {
console.log(66, text, record, index)
return <Switch defaultChecked={text ? true : false} size="small" onChange={(checked) => {
console.log(checked);
memberList[index].state = checked
setmemberList([...memberList])
}} />
......@@ -1095,7 +1078,7 @@ const Detail: React.FC<{}> = () => {
</Tooltip>
</span>
}
key={field.key}
key={index}
>
<Form.Item
{...field}
......@@ -1176,7 +1159,7 @@ const Detail: React.FC<{}> = () => {
</TabPane>
<TabPane tab="添加商品" key='2'>
<Button style={{ marginBottom: 16, marginTop: 24 }} block icon={<PlusOutlined />} onClick={() => handleOptionBtn(1)} type='dashed'>添加商品</Button>
<Table dataSource={productSource} columns={equiryColumns} pagination={pagination} />
<Table rowKey={"id"} dataSource={productSource} columns={equiryColumns} pagination={pagination} />
</TabPane>
<TabPane tab="交易条件" key='3'>
<Row>
......
......@@ -96,17 +96,10 @@ const BasicInfo: React.FC<queryProps> = (props) => {
levelTag: '倔强铂金'
}]
const fetchMemberList = async (params) => {
// const res = await PublicApi.getMemberManageLowerMerchantProviderPage(params)
// return res.data
return new Promise((resolve, reject) => {
const queryResult = data.find(v => v.memberId === params.keywords);
setTimeout(() => {
resolve({
code: 200,
message: '',
data: queryResult ? [queryResult] : data,
});
}, 1000);
PublicApi.getMemberManageLowerMerchantProviderPage({...params}).then(res => {
resolve(res.data)
})
});
}
// 选择会员弹框结束
......@@ -166,25 +159,25 @@ const BasicInfo: React.FC<queryProps> = (props) => {
<Form.Item label='报价单摘要' name='details' rules={[{ required: true, message: '请输入询价单摘要' }]}>
<Input />
</Form.Item>
<Form.Item label='对应询价单号' name='memberName' rules={[{ required: true, message: '请选择被询价会员' }]}>
<Form.Item label='对应询价单号' name='inquiryListNo' rules={[{ required: true, message: '请选择被询价会员' }]}>
<Search value={memberList.length > 0 ? memberList[0].name : undefined} readOnly enterButton={<><LinkOutlined /> 选择</>} onSearch={()=>setVisibleChannelMember(true)} />
</Form.Item>
<Form.Item label='报价单号' name='orderNumber'>
<Form.Item label='报价单号' name='quotationNo'>
<span>{Object.keys(editData).length > 0 ? editData.inquiryListNo : '-'}</span>
</Form.Item>
<Form.Item label='询价会员' name='time'>
<Form.Item label='询价会员' name='memberName'>
<span>{Object.keys(editData).length > 0 ? editData.voucherTime : '-'}</span>
</Form.Item>
<Form.Item label='报价截止时间' name='orderNumber'>
<Form.Item label='报价截止时间' name='quotationAsTime'>
<span>{Object.keys(editData).length > 0 ? editData.inquiryListNo : '-'}</span>
</Form.Item>
<Form.Item label='单据时间' name='time'>
<Form.Item label='单据时间' name='voucherTime'>
<span>{Object.keys(editData).length > 0 ? editData.voucherTime : '-'}</span>
</Form.Item>
<Form.Item label='外部状态' name='external'>
<Form.Item label='外部状态' name='externalState'>
<span>{Object.keys(editData).length > 0 ? <StatusColors status={editData.inquiryListNo} type='out' /> : '-'}</span>
</Form.Item>
<Form.Item label='内部状态' name='internal'>
<Form.Item label='内部状态' name='interiorState'>
<span>{Object.keys(editData).length > 0 ? quoteOrderInternalState(editData.inquiryListNo) : '-'}</span>
</Form.Item>
</Form>
......
......@@ -205,18 +205,7 @@ const EnquiryGoods: React.FC<queryProps> = (props) => {
}]
const fetchGoodsList = async (params) => {
// const res = await PublicApi.getMemberManageLowerProviderPage(params)
// return res.data
return new Promise((resolve, reject) => {
console.log(data, params)
setTimeout(() => {
resolve({
code: 200,
message: '',
data: data,
});
}, 1000);
});
}
// 选择会员弹框结束
......
......@@ -79,37 +79,27 @@ const TradingConditions: React.FC<queryProps> = (props) => {
>
<Row gutter={70}>
<Col span={12}>
<Form.Item label='交付日期' name='deliveryTime' rules={[{ required: true, message: '请选择交付日期' }]}>
<DatePicker format="YYYY-MM-DD HH:mm:ss" />
<Form.Item label='最小起订' name='minimumOrder' rules={[{ required: true, message: '请输入最小起订' }]}>
<Input placeholder='最长100个字符,50个汉字' />
</Form.Item>
<Form.Item label='交付地址' name='fullAddress' rules={[{ required: true, message: '请选择交付地址' }]}>
<Select>
{address.map(v => (
<Select.Option key={v.id} value={v.id}>{v.fullAddress}</Select.Option>
))}
</Select>
</Form.Item>
<Form.Item label='报价截止时间' name='quotationAsTime' rules={[{ required: true, message: '请选择报价截止时间' }]}>
<DatePicker format="YYYY-MM-DD HH:mm:ss" />
<Form.Item label='交付说明' name='offer'>
<Input.TextArea placeholder='最长100个字符,50个汉字' />
</Form.Item>
<Form.Item label='报价要求' name='offer'>
<Form.Item label='付款说明' name='paymentType'>
<Input.TextArea placeholder='最长100个字符,50个汉字' />
</Form.Item>
<Form.Item label='付款方式' name='paymentType'>
<Form.Item label='税费说明' name='taxes'>
<Input.TextArea placeholder='最长100个字符,50个汉字' />
</Form.Item>
<Form.Item label='税费要求' name='taxes'>
<Form.Item label='物流说明' name='logistics'>
<Input.TextArea placeholder='最长100个字符,50个汉字' />
</Form.Item>
<Form.Item label='物流要求' name='logistics'>
<Form.Item label='包装说明' name='packRequire'>
<Input.TextArea placeholder='最长100个字符,50个汉字' />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item label='包装要求' name='packRequire'>
<Input.TextArea placeholder='最长100个字符,50个汉字' />
</Form.Item>
<Form.Item label='其他要求' name='otherRequire'>
<Form.Item label='其他说明' name='otherRequire'>
<Input.TextArea placeholder='最长100个字符,50个汉字' />
</Form.Item>
</Col>
......
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