Commit 25c2beda authored by 前端-黄佳鑫's avatar 前端-黄佳鑫

商品询价

parent d6037f0b
......@@ -297,6 +297,12 @@ const TranactionRoute = {
path: '/memberCenter/tranactionAbility/goodsOffer/pendingSubmit',
name: 'pendingSubmit',
component: '@/pages/transaction/goodsOffer/pendingSubmit'
},
{
path: '/memberCenter/tranactionAbility/goodsOffer/components/details',
name: 'details',
hideInMenu: true,
component: '@/pages/transaction/goodsOffer/components/details'
}
]
},
......
......@@ -126,6 +126,7 @@ export default {
'menu.tranactionAbility.goodsOffer.enquiryOrder': '询价单查询',
'menu.tranactionAbility.goodsOffer.addEnquiryOrder': '待新增询价单',
'menu.tranactionAbility.goodsOffer.add': '新建询价单',
'menu.tranactionAbility.goodsOffer.details': '新建询价单',
'menu.tranactionAbility.goodsOffer.pendingReviewOne': '待审核询价单(一级)',
'menu.tranactionAbility.goodsOffer.pendingReviewTwo': '待审核询价单(二级)',
'menu.tranactionAbility.goodsOffer.pendingSubmit': '待提交询价单',
......
......@@ -75,8 +75,8 @@ const AddContract: React.FC<{}> = (props) => {
name: res.name,
version: res.version,
description: res.description,
fileExampleUrl: fileExampleUrl.contractName,
fileExampleName: fileExampleUrl.contractUrl,
fileExampleUrl: fileExampleUrl.contractUrl,
fileExampleName: fileExampleUrl.contractName,
fileUrl,
fileName: uploadFile.name
}
......
......@@ -711,7 +711,6 @@ const detailInfo: React.FC<{}> = () => {
},
)}
</div>
</div>
</Col>
......
import React from 'react';
import React, { useState, useRef } from 'react';
import { history } from 'umi';
import { Button, Card, Tabs } from 'antd';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
......@@ -8,9 +8,19 @@ import EnquiryGoods from './components/enquiryGoods'; // 询价商品
import TradingConditions from './components/tradingConditions'; // 交易条件
import Attached from './components/attached'; // 附件
import FlowRecord from './components/flowRecord'; // 流转记录
import { PublicApi } from '@/services/api'
const { TabPane } = Tabs;
const AddQuotes: React.FC<{}> = () => {
const ref = useRef<any>({})
const [memberList, setmemberList] = useState([]);
/************* 页面的一些操作start *************/
const onSumbit = async (params: any) => {
}
const getMemberList = (list: any) => {
setmemberList(list);
}
/************* 页面的一些操作end *************/
return (
<PageHeaderWrapper
onBack={() => history.goBack()}
......@@ -23,13 +33,17 @@ const AddQuotes: React.FC<{}> = () => {
<Card>
<Tabs type="card">
<TabPane tab="基本信息" key="1">
<BasicInfo />
<BasicInfo
getMemberList={getMemberList}
/>
</TabPane>
<TabPane tab="询价商品" key="2">
<EnquiryGoods />
<EnquiryGoods
memberList={memberList}
/>
</TabPane>
<TabPane tab="交易条件" key="3">
<TradingConditions />
<TradingConditions/>
</TabPane>
<TabPane tab="附件" key="4">
<Attached />
......
import React from 'react';
import React, { useState, useEffect } from 'react';
import { Form, Input, Button } from 'antd';
import styles from './index.less';
import { LinkOutlined } from '@ant-design/icons';
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable';
import { ISchema } from '@formily/antd';
import ModalTable from '@/components/ModalTable'
import { PublicApi } from '@/services/api'
const layout: any = {
colon: false,
......@@ -10,33 +14,152 @@ const layout: any = {
labelAlign: "left"
};
const { Search } = Input;
const BasicInfo: React.FC<{}> = (porps) => {
interface queryProps {
getMemberList?: Function
}
const BasicInfo: React.FC<queryProps> = (props) => {
const [basicform] = Form.useForm();
const { getMemberList } = props;
// 会员添加弹窗控制
const [visibleChannelMember, setVisibleChannelMember] = useState(false);
const [memberList, setmemberList] = useState([]);
const [memberRowSelection, memberRowCtl] = useRowSelectionTable({ customKey: 'memberId', type: 'radio' });
const handleOkAddMember = () => {
setVisibleChannelMember(false)
setmemberList(memberRowCtl.selectRow);
getMemberList(memberRowCtl.selectRow); // 回传给父级
}
const handleCancelAddMember = () => {
setVisibleChannelMember(false)
}
const columnsSetMember: any[] = [
{
title: 'ID',
dataIndex: 'memberId',
key: 'memberId',
},
{
title: '会员名称',
dataIndex: 'name',
key: 'name',
},
{
title: '会员类型',
dataIndex: 'memberTypeName',
key: 'memberTypeName',
},
{
title: '会员角色',
dataIndex: 'roleName',
key: 'roleName',
},
{
title: '会员等级',
dataIndex: 'levelTag',
key: 'levelTag',
}
]
const formSearch: ISchema = {
type: 'object',
properties: {
name: {
type: 'string',
"x-component": 'Search',
"x-component-props": {
placeholder: '请输入会员名称'
}
}
}
}
// 模拟数据
const data = [{
memberId: 6,
name: '测试会员数据',
roleId: 5,
roleName: '可可西',
memberTypeName: '超级会员',
level: 1,
levelTag: '倔强铂金'
},{
memberId: 7,
name: '测试会员数据',
roleId: 5,
roleName: '可可西',
memberTypeName: '超级会员',
level: 1,
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);
});
}
// 选择会员弹框结束
useEffect(() => {
if(memberList.length > 0) {
basicform.setFieldsValue({'memberName': memberList[0].name ? memberList[0].name : undefined})
}
},[memberList])
/************* 页面的一些操作start *************/
/************* 页面的一些操作end *************/
return (
<Form
{...layout}
className={styles.revise_style}
>
<Form.Item label='询价单摘要'>
<Input />
</Form.Item>
<Form.Item label='被询价会员'>
<Search readOnly enterButton={<><LinkOutlined /> 选择</>} />
<Button type='link'>查看会员详情</Button>
</Form.Item>
<Form.Item label='询价单号'>
<span>SPTY12</span>
</Form.Item>
<Form.Item label='单据时间'>
<span>2020-08-20 12:56:25</span>
</Form.Item>
<Form.Item label='外部状态'>
<span>待提交</span>
</Form.Item>
<Form.Item label='内部状态'>
<span>待提交审核</span>
</Form.Item>
</Form>
<>
<Form
{...layout}
form={basicform}
className={styles.revise_style}
>
<Form.Item label='询价单摘要' name='details' rules={[{ required: true, message: '请输入询价单摘要' }]}>
<Input />
</Form.Item>
<Form.Item label='被询价会员' name='memberName' rules={[{ required: true, message: '请选择被询价会员' }]}>
<Search value={memberList.length > 0 ? memberList[0].name : undefined} readOnly enterButton={<><LinkOutlined /> 选择</>} onSearch={()=>setVisibleChannelMember(true)} />
<Button type='link'>查看会员详情</Button>
</Form.Item>
<Form.Item label='询价单号' name='orderNumber'>
<span>-</span>
</Form.Item>
<Form.Item label='单据时间' name='time'>
<span>-</span>
</Form.Item>
<Form.Item label='外部状态' name='external'>
<span>-</span>
</Form.Item>
<Form.Item label='内部状态' name='internal'>
<span>-</span>
</Form.Item>
</Form>
{/* 选择会员弹框 */}
<ModalTable
modalTitle='选择会员'
confirm={handleOkAddMember}
cancel={handleCancelAddMember}
visible={visibleChannelMember}
resetModal={{destroyOnClose: true, forceRender: true}}
columns={columnsSetMember}
rowSelection={memberRowSelection}
fetchTableData={params => fetchMemberList(params)}
formilyProps={
{
ctx: { schema: formSearch }
}
}
tableProps={{
rowKey: 'memberId',
}}
/>
</>
)
}
......
import React, { useState } from 'react';
import styles from './index.less';
import { Button } from 'antd';
import { StandardTable } from 'god';
import { Button, message, Input,Table } from 'antd';
import { ColumnType } from 'antd/lib/table/interface';
import { PlusOutlined } from '@ant-design/icons';
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable';
import { ISchema, createAsyncFormActions } from '@formily/antd';
import ModalTable, { ModalTableProps } from '@/components/ModalTable';
import { PublicApi } from '@/services/api';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import SearchSelect from '@/components/NiceForm/components/SearchSelect'
import Search from '@/components/NiceForm/components/Search'
import Submit from '@/components/NiceForm/components/Submit'
const EnquiryGoods:React.FC<{}> = () => {
const columns:ColumnType<any>[] = [{
interface queryProps extends ModalTableProps {
memberList?: any
}
const EnquiryGoods: React.FC<queryProps> = (props) => {
const { memberList, ...restProps } = props
const productFormActions = createAsyncFormActions()
const columns: ColumnType<any>[] = [{
title: '序号',
dataIndex: 'productId',
},{
}, {
title: '商品名称',
dataIndex: 'productName',
},{
}, {
title: '品类',
dataIndex: 'inquiryListNo',
},{
}, {
title: '品牌',
dataIndex: 'brand',
},{
}, {
title: '单位',
dataIndex: 'nuit',
},{
}, {
title: '采购数量',
dataIndex: 'purchaseQuantity',
},{
render:(text:any, recode: any) => <Input />
}, {
title: '操作',
dataIndex: 'operation',
}]
return(
// 会员添加弹窗控制
const [visibleChannelMember, setVisibleChannelMember] = useState(false);
const [goodsList, setgoodsList] = useState([]);
const [memberRowSelection, memberRowCtl] = useRowSelectionTable({ customKey: 'commodityId' });
const handleOkAddMember = () => {
setVisibleChannelMember(false);
const arr : any[] = []
memberRowCtl.selectRow.forEach((v, i) => {
arr.push({
productId: v.commodityId,
productName: v.name,
inquiryListNo: v.customerCategoryName,
brand: v.brandName,
nuit: v.unitName
})
setgoodsList(arr)
})
}
const handleCancelAddMember = () => {
setVisibleChannelMember(false)
}
const columnsSetMember: any[] = [
{
title: 'ID',
dataIndex: 'commodityId',
key: 'commodityId',
},
{
title: '商品名称',
dataIndex: 'name',
key: 'name',
},
{
title: '品类',
dataIndex: 'customerCategoryName',
key: 'customerCategoryName',
},
{
title: '品牌',
dataIndex: 'brandName',
key: 'brandName',
}
]
const formSearch: ISchema = {
type: 'object',
properties: {
name: {
type: 'string',
'x-component': 'ModalSearch',
'x-component-props': {
placeholder: '商品名称',
align: 'flex-left',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'flex-layout',
'x-component-props': {
rowStyle: {
flexWrap: 'nowrap',
style: {
marginRight: 0
}
},
colStyle: {
marginTop: 20,
},
},
properties: {
customerCategoryName: {
type: 'string',
"x-component-props": {
placeholder: '请输入品类',
}
},
brandName: {
type: 'string',
"x-component-props": {
placeholder: '请输入品牌',
}
},
submit: {
"x-component": 'Submit',
"x-mega-props": {
span: 1
},
"x-component-props": {
children: '查询'
}
}
}
}
}
}
// 模拟数据
const data = [{
commodityId: 1,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 2,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 3,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 4,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 5,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 6,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 7,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 8,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 9,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 10,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 11,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 12,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 13,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 14,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
},{
commodityId: 15,
name: '进口头层黄牛皮荔枝纹/红色/XXL',
customerCategoryName: '牛皮',
brandName: 'PELLE',
unitName: '个',
}]
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);
});
}
// 选择会员弹框结束
/************* 页面的一些操作start *************/
// 添加商品
const addGoods = () => {
if(memberList.length > 0 && memberList[0].memberId) {
setVisibleChannelMember(true);
} else {
message.error('请选择被询价会员')
}
}
/************* 页面的一些操作end *************/
return (
<div className={styles.revise_style}>
<Button block type='dashed'><PlusOutlined />添加商品</Button>
<StandardTable
<Button block type='dashed' onClick={addGoods}><PlusOutlined />添加商品</Button>
<Table style={{marginTop: '16px'}} columns={columns} dataSource={goodsList} pagination={false} />
{/* 选择商品弹框 */}
<ModalTable
modalTitle='选择商品'
confirm={handleOkAddMember}
cancel={handleCancelAddMember}
visible={visibleChannelMember}
resetModal={{destroyOnClose: true, forceRender: true}}
columns={columnsSetMember}
rowSelection={memberRowSelection}
fetchTableData={params => fetchGoodsList(params)}
formilyProps={
{
ctx: {
schema: formSearch,
actions: productFormActions,
components: { ModalSearch: Search, SearchSelect, Submit },
effects: ($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'name',
FORM_FILTER_PATH,
);
}
}
}
}
tableProps={{
rowKey: 'id',
pagination: false
rowKey: 'commodityId'
}}
columns={columns}
{...restProps}
/>
</div>
)
......
import React, { ReactNode, useRef, useState, useEffect } from 'react';
import React, { useRef, useState } from 'react';
import { history } from 'umi';
import {
Button,
Card,
Space,
Row,
Col,
Dropdown,
Menu,
Popconfirm
} from 'antd';
import { Button, Card, Space, Row, Col, Dropdown, Menu, Popconfirm } from 'antd';
import { PlusOutlined,DownOutlined,DeleteOutlined } from '@ant-design/icons';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import {
PlusOutlined, DownOutlined, DeleteOutlined
} from '@ant-design/icons';
import { StandardTable } from 'god';
import { ColumnType } from 'antd/lib/table/interface';
import {
IFormFilter,
IButtonFilter,
} from 'god/dist/src/standard-table/TableController';
import {filterInteriorStateList,filterExternalStateList} from './../../common/statusList';
import {interiorState,interiorStateTwo,
enquirySearchInteriorState,enquirySearchexternalState} from '../../common/tableStatusList';
import EyePreview from '@/components/EyePreview';
import StatusSwitch from '@/components/StatusSwitch';
import { interiorState } from '../../common/tableStatusList'
import statuStyle from '../../common/colorTag'
import moment from 'moment';
import { timeRange } from '@/utils/index';
import { ColumnType } from 'antd/lib/table/interface';
import NiceForm from '@/components/NiceForm';
import { timeRange } from '@/utils/index'
import moment from 'moment'
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { PageStatus } from '@/hooks/usePageStatus'
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { commonEnquieryOfferSchema } from '../schema';
import { PublicApi } from '@/services/api';
import { PageStatus } from '@/hooks/usePageStatus';
import { values, action } from 'mobx';
import { PublicApi } from '@/services/api';
const formActions = createFormActions();
const fetchData = async (params: any) => {
const res = await PublicApi.getOrderStayProductQuotationList(params);
return res.data
}
const AddEnquiryOrder: React.FC<{}> = () => {
const ref = useRef<any>({})
const [more, setmore] = useState(false)
const ref = useRef<any>({});
const [selectRow, setSelectRow] = useState([])
const [selectedRowKeys, setSelectedRowKeys] = useState<Array<number>>([])
const format = (text) => {
return <>{moment(text).format("YYYY-MM-DD HH:mm:ss")}</>
}
const columns: ColumnType<any>[] = [
{
title: '询价单号',
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
width: '9%',
render: (text: any,records: any) => <EyePreview type="button">{text}</EyePreview>
},
{
title: '询价单摘要',
key: 'details',
dataIndex: 'details',
width: '12%',
},
{
title: '被询价会员',
key: 'memberName',
dataIndex: 'memberName',
width: '12%',
},
{
title: '交付日期',
key: 'deliveryTime',
dataIndex: 'deliveryTime',
width: '11%',
},
{
title: '报价截止时间',
key: 'quotationAsTime',
dataIndex: 'quotationAsTime',
width: '12%',
render: (text: any) => format(text)
},
{
title: '询价时间',
key: 'voucherTime',
dataIndex: 'voucherTime',
width: '12%',
render: (text: any) => format(text)
},
{
title: '外部状态',
key: 'externalState',
dataIndex: 'externalState',
width: '10%',
render: (text: any, reconds) => {
let component: ReactNode = null
if (text == 3) {
component = <><span style={statuStyle.warn}>审核不通过</span></>
} else if (text == 1) {
component = <><span style={statuStyle.default}>待提交</span></>
}
return component
}
filters: filterExternalStateList,
filterMultiple: false,
onFilter: (value, record) => record.externalState === value,
render: (text: any, reconds) =>
enquirySearchexternalState(text)
},
{
title: '内部状态',
key: 'interiorState',
dataIndex: 'interiorState',
width: '10%',
render: (text: any) => interiorState(text)
filters: filterInteriorStateList,
filterMultiple: false,
onFilter: (value, record) => record.interiorState === value,
render:(text:any) =>
enquirySearchInteriorState(text)
},
{
title: '操作',
key: 'options',
dataIndex: 'options',
width: '12%',
render: (_: any, record: any) => {
return (
<>
{
(record.interiorState !== 3 &&
<Button type="link" onClick={() => toEdit(record.id)}>编辑</Button>
)
}
{
(record.interiorState === 1) &&
<>
<Popconfirm title="确定要删除吗?" okText="是" cancelText="否" onConfirm={() => handleDelete([record.id])}>
<Button type='link'>
删除
</Button>
</Popconfirm>
{/* <Popconfirm title="确定要提交吗?" okText="是" cancelText="否" onConfirm={() => handleSubmit(record.id)}>
<Button type='link'>提交</Button>
</Popconfirm> */}
</>
}
</>
)
}
},
]
useEffect(() => {
}, [])
const toEdit = (id: number | string) => {
history.push(`/memberCenter/tranactionAbility/enquiryOffer/addEnquiry?id=${id}`)
}
/**
* @description: 删除
* @param {type}
* @return {type}
*/
const handleDelete = (arr: number[] | string[]) => {
PublicApi.postOrderQuotationDelete({ ids: arr }).then(res => {
ref.current.reload()
})
}
//批量提交
const handleSubmitAll = (ids: number[]) => {
PublicApi.postOrderQuotationSubmitAuditAll({ ids: ids }).then(res => {
ref.current.reload()
})
}
//提交审核
const handleSubmit = (id) => {
PublicApi.postOrderQuotationSubmitAudit({ id: id }).then(res => {
ref.current.reload()
})
}
const handleSumbit = (values: any) => {
if (values.voucherTime) {
values.startDocumentsTime = timeRange(values.voucherTime).st
values.endDocumentsTime = timeRange(values.voucherTime).et
}
delete values.voucherTime
ref.current.reload(values)
}
const menu = (
<Menu onClick={() => handleDelete(selectedRowKeys)}>
<Menu.Item key='1' icon={<DeleteOutlined />}>
批量删除
</Menu.Item>
</Menu>
)
const handleBatchDel = (e: any) => {
const format = (text) => {
return <>{moment(text).format("YYYY-MM-DD HH:mm:ss")}</>
}
/**多选 */
const rowSelection = {
selectedRowKeys: selectedRowKeys,
onChange: (selectedRowKeys: any, selectedRows: any) => {
......@@ -200,11 +95,20 @@ const AddEnquiryOrder: React.FC<{}> = () => {
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows)
},
}
/**批量删除 */
const menu = (
<Menu>
<Menu.Item key='1' icon={<DeleteOutlined/>}>
批量删除
</Menu.Item>
</Menu>
)
/**批量审核通过按钮 */
const controllerBtns = <Row>
<Col span={24}>
<Space direction="horizontal" size={16}>
<Button type="primary" onClick={() => history.push('/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder/add')} icon={<PlusOutlined />}>新建</Button>
<Button onClick={() => handleSubmitAll(selectedRowKeys)}>批量提交审核</Button>
<Button type="primary" icon={<PlusOutlined />} onClick={() => history.push(`/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder/add`)}>新建</Button>
<Button>批量提交审核</Button>
<Dropdown.Button
overlay={menu}
trigger={['click']}
......@@ -216,6 +120,12 @@ const AddEnquiryOrder: React.FC<{}> = () => {
</Col>
</Row>
/************* 页面的一些操作start *************/
const fetchData = async (params: any) => {
const res = await PublicApi.getOrderInquiryList(params);
return res.data
}
/************* 页面的一些操作end *************/
return (
<PageHeaderWrapper>
<Card>
......@@ -223,12 +133,11 @@ const AddEnquiryOrder: React.FC<{}> = () => {
currentRef={ref}
columns={columns}
tableProps={{ rowKew: 'id' }}
fetchTableData={(params: any) => fetchData(params)}
rowSelection={rowSelection}
fetchTableData={(params: any) => fetchData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => handleSumbit(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect($, actions, 'quotationNo', FORM_FILTER_PATH)
}}
......@@ -239,7 +148,9 @@ const AddEnquiryOrder: React.FC<{}> = () => {
>
</NiceForm>
}
/>
>
</StandardTable>
</Card>
</PageHeaderWrapper>
)
......
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
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