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

修改支付, 询价报价状态文字不对的问题

parent dfb140f2
......@@ -23,6 +23,12 @@ const payandSettleRoute: RouterChild = {
name:'payParamsSetting',
component:'@/pages/payandSettle/paySetting'
},
{
path:'/memberCenter/payandSettle/paySetting/newPay',
name:'payParamsSetting',
hideInMenu: true,
component:'@/pages/payandSettle/paySetting/newPay'
},
]
},
// 授信申请
......
......@@ -109,6 +109,7 @@ const BasicInfo: React.FC<interfaceinfo> = (props) => {
]
// 确定
const handleShipping = (type:any, values:any, param:any) => {
console.log(values, 'handleShipping')
handleRevise(values[0], 1);
form.setFieldsValue({
shipmentOrderCode: values[0].invoicesNo
......@@ -116,6 +117,7 @@ const BasicInfo: React.FC<interfaceinfo> = (props) => {
setshippingvisible(false);
}
const handleInvoices = (type:any, values:any, param:any) => {
console.log(values, 'handleInvoices')
handleRevise(values[0], 2);
form.setFieldsValue({
invoicesNo: values[0].orderNo
......
......@@ -40,14 +40,20 @@ const AddEditLogistics: React.FC<{}> = () => {
data.receiverAddressId = value.deliveryAddresId;//收货方id
data.shipmentOrderId = value.id;//发货单id
data.shipmentOrderCode = value.invoicesNo;//发货单号
} else if (index === 2) {
data.phone = value.phone;
data.receiverName = value.receiverName;//收货方名称
data.receiverFullAddress = value.fullAddress;
data.memberName = value.supplyMembersName
data.memberName = value.memberName;
setParmas(data)
} else if (index === 2 && !data.invoicesNo) {
data.phone = value.phone;
data.receiverName = value.receiverName;//收货方名称
data.receiverFullAddress = value.fullAddress;
data.memberName = value.memberName;
setParmas(data)
}
setParmas(data)
}
// 提交数据
const handleSubmit = () => {
......
......@@ -322,7 +322,7 @@ const Deatail: React.FC<{}> = () => {
if (query.orderDeliveryDetailsId) {//发货单
PublicApi.getWarehouseInvoicesList({
current: '1',
pageSize: '100000'
pageSize: '1000'
}).then(res => {
if (res.code === 1000) {
console.log(res.data, 100086)
......@@ -458,7 +458,7 @@ const Deatail: React.FC<{}> = () => {
*/
const FormSubmit = (values: any) => {
let value = { ...values }
console.log(value)
if (query.orderId) {//销售订单过来的
// value['orderId'] = query.orderId
// value['orderDeliveryDetailsId'] = query.orderDeliveryDetailsId
......@@ -719,7 +719,7 @@ const Deatail: React.FC<{}> = () => {
effects={() => useTabEffect()}
>
<Tabs key='tabs' type="card" defaultActiveKey={'tab-1'}>
<TabPane key='tab-1' tab='基本信息'>
<TabPane key='tab-1' tab='基本信息' forceRender>
<Row>
<Col span={12}>
<FormItem name="companyId" label="物流服务商" dataSource={companyList} required component={Select} />
......@@ -767,7 +767,7 @@ const Deatail: React.FC<{}> = () => {
</Col>
</Row>
</TabPane>
<TabPane key="tab-2" tab="物流单明细">
<TabPane key="tab-2" tab="物流单明细" forceRender>
<FieldList
name="detailList"
// initialValue={[
......@@ -922,7 +922,7 @@ const Deatail: React.FC<{}> = () => {
}}
</FieldList>
</TabPane>
<TabPane key='tab-3' tab='运费'>
<TabPane key='tab-3' tab='运费' forceRender>
<FormItem labelAlign="left" labelCol={{ span: 2 }} editable={false} name="fregint" label="运费">
<>{initialValues.freightPrice || '未报价'}</>
</FormItem>
......@@ -930,10 +930,9 @@ const Deatail: React.FC<{}> = () => {
<>{initialValues.freightPrice || '-'}</>
</FormItem>
</TabPane>
<TabPane key='tab-4' tab='流转记录'>
<TabPane key='tab-4' tab='流转记录' forceRender>
<OrderLog id={id} type="Submit" />
</TabPane>
</Tabs>
</Form>
</Col>
......
import React, { useState, useEffect } from 'react';
import { Space, Radio, Form } from 'antd';
import '../../components/index.less'
interface params {
name: string,
value: number,
selectId: number,
onChange: Function
}
const PayWayRadio: React.FC<params> = (props) => {
const { value, selectId, onChange, name } = props;
const [form] = Form.useForm();
useEffect(() => {
form.resetFields()
}, [value])
const options = [{ label: '是', value: 1 }, { label: '否', value: 0 }]
return (
<Space size={49}>
<span>是否开启{name}</span>
<Form form={form}>
<Form.Item
name={`radio-${selectId}`}
noStyle
initialValue={value}
>
<Radio.Group
options={options}
className='radio-group-box'
size="small"
buttonStyle="solid"
optionType="button"
onChange={(e) => onChange(e)}
/>
</Form.Item>
</Form>
</Space>
)
}
export default PayWayRadio;
\ No newline at end of file
/*
* @Author: HJX
* @Date: 2020-11-19 15:25:54
* @LastEditors: HJX
* @LastEditTime: 2020-11-19 15:25:54
*/
import React, { useState, useEffect } from 'react';
import { Button, Card, Tabs } from 'antd';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { PublicApi } from '@/services/api';
import PayWayRadio from './components/payWayRadio';
const { TabPane } = Tabs
const PayWaySetTemplate:React.FC<{}> = () => {
const [config, setconfig] = useState<any>([]);
const [name, setname] = useState<string>('');
const [isPitchOn, setisPitchOn] = useState<number>(0);
const [selectId, setselectId] = useState<number>(1);
const payWayConfigInfo = () => {
// 支付配置信息
return new Promise(resolve => {
PublicApi.getPayMemberPayConfig().then(res => {
if(res.code === 1000) {
resolve(res.data)
}
})
})
}
const initPayWayStart = async (id:any) => {
await PublicApi.getPayMemberQueryPlatformIsStart({id}).then(res => {
if(res.code === 1000) {
setisPitchOn(res.data.isPitchOn)
setname(res.data.way);
setselectId(res.data.id)
}
})
}
const handleTabClick = (e:any) => {
initPayWayStart(e)
}
const handleChangeRadio = (e:any) => {
setisPitchOn(e.target.value)
}
useEffect(() => {
// 支付配置信息
payWayConfigInfo().then(res => {
setconfig(res);
initPayWayStart(res[0].id);
})
}, [])
return(
<PageHeaderWrapper
extra={<Button type='primary'>保存</Button>}
>
<Card>
<Tabs type="card" onTabClick={handleTabClick}>
{config.map(item =>
<TabPane tab={item.way} key={item.id} forceRender>
<PayWayRadio
name={name}
value={isPitchOn}
selectId={selectId}
onChange={handleChangeRadio}
/>
</TabPane>
)}
</Tabs>
</Card>
</PageHeaderWrapper>
)
};
export default PayWaySetTemplate;
\ No newline at end of file
......@@ -264,21 +264,21 @@ export const demandQuoteInteriorState = (text:any) => {
// 询价查询, 询价报价, 确认询价报价单 通用外部状态
// export const generalExternalState = (status:any) => {
// let component: ReactNode = null;
// PublicApi.getOrderQuotationExternalStateEnum().then(res => {
// if(res.code === 1000) {
// }
// })
// }
export const generalExternalState = (status:any) => {
let component: ReactNode = null;
PublicApi.getOrderQuotationExternalStateEnum({}).then(res => {
if(res.code === 1000) {
console.log(res.data)
}
})
}
// 询价查询, 询价报价, 确认询价报价单 通用内部状态
// export const generalInteriorState = (status:any) => {
// let component: ReactNode = null;
// PublicApi.getOrderProductInquiryInteriorStateEnum().then(res => {
// if(res.code === 1000) {
// }
// })
// }
export const generalInteriorState = (status:any) => {
let component: ReactNode = null;
PublicApi.getOrderProductInquiryInteriorStateEnum().then(res => {
if(res.code === 1000) {
console.log(res.data)
}
})
}
......@@ -38,7 +38,7 @@ const Details: React.FC<parmas> = (props) => {
}
//page_type: 1.待确认报价单,2.待审核报价单1级,3.待审核报价单2级,4.报价单查询,5.待提交审核报价单
//view: 1.询价单号,2.报价单号
const { id, page_type } = props;
const { id, page_type } = props;
const [headerWrapperData, setheaderWrapperData] = useState<Array<any>>([]);
// 拿到pathname,通过判断来显示询价单号或报价单号
const { pathname } = history.location;
......@@ -186,7 +186,7 @@ const Details: React.FC<parmas> = (props) => {
title: '状态',
key: 'state',
dataIndex: 'state',
render:(text:any, record:any) => confirmExternalState(record.externalState)
render: (text: any, record: any) => confirmExternalState(record.state)
}, {
title: '操作',
key: 'operation',
......@@ -195,7 +195,7 @@ const Details: React.FC<parmas> = (props) => {
title: '操作时间',
key: 'operationTime',
dataIndex: 'operationTime',
render:(text:any, record:any) => format(text)
render: (text: any, record: any) => format(text)
}, {
title: '审核意见',
key: 'auditOpinion',
......@@ -203,8 +203,8 @@ const Details: React.FC<parmas> = (props) => {
}],
interior: [{
title: '流转记录',
key: 'inquiryListId',
dataIndex: 'inquiryListId',
key: 'id',
dataIndex: 'id',
}, {
title: '操作人',
key: 'roleName',
......@@ -221,7 +221,7 @@ const Details: React.FC<parmas> = (props) => {
title: '状态',
key: 'state',
dataIndex: 'state',
render:(text:any, record:any) => confirmInteriorState(record.interiorState)
render: (text: any, record: any) => confirmInteriorState(record.state)
}, {
title: '操作',
key: 'operation',
......@@ -230,7 +230,7 @@ const Details: React.FC<parmas> = (props) => {
title: '操作时间',
key: 'operationTime',
dataIndex: 'operationTime',
render:(text:any, record:any) => format(text)
render: (text: any, record: any) => format(text)
}, {
title: '审核意见',
key: 'auditOpinion',
......@@ -239,7 +239,7 @@ const Details: React.FC<parmas> = (props) => {
}
// 详情请求
useEffect(() => {
if(type === 'rfq') {
if (type === 'rfq') {
// 代表的是查看询价
setview(1)
PublicApi.getOrderProductInquiryDetails({ id }).then(res => {
......@@ -258,13 +258,13 @@ const Details: React.FC<parmas> = (props) => {
}
}, [])
const fetchData = (params:any) => {
const fetchData = (params: any) => {
return new Promise(resolve => {
PublicApi.getOrderInquiryDetails({...params,id}).then(res => {
PublicApi.getOrderInquiryDetails({ ...params, id }).then(res => {
console.log(res, 10086)
resolve(res.data)
})
})
})
}
useEffect(() => {
......@@ -307,7 +307,7 @@ const Details: React.FC<parmas> = (props) => {
<div className={style['headerTop']}>
<div className={style['headerTop-prefix']}></div>
<div className={style['headerTop-name']}>
{ Number(view) === 1 ? '询价单号' : '报价单号'}{ Number(view) === 1 ? data.inquiryListNo : data.quotationNo}
{Number(view) === 1 ? '询价单号' : '报价单号'}{Number(view) === 1 ? data.inquiryListNo : data.quotationNo}
</div>
<div className={style[`levelIcon${'1'}`]}></div>
</div>
......@@ -316,19 +316,19 @@ const Details: React.FC<parmas> = (props) => {
extra={
<>
{
(Number(page_type) ===5 && data.interiorState === 1) &&
<Button className={style['saveBtn']} onClick={()=>setvisible(true)}>
(Number(page_type) === 5 && data.interiorState === 1) &&
<Button className={style['saveBtn']} onClick={() => setvisible(true)}>
<CheckSquareOutlined />提交审核
</Button>
}
{
((Number(page_type) ===2 ||Number(page_type) ===3) && data.interiorState === 2) &&
<Button className={style['saveBtn']} onClick={()=>setvisible(true)}>
((Number(page_type) === 2 || Number(page_type) === 3) && data.interiorState === 2) &&
<Button className={style['saveBtn']} onClick={() => setvisible(true)}>
<CheckSquareOutlined />审核
</Button>
}{
(Number(page_type) ===1 && (data.interiorState === 3 || data.interiorState === 4)) &&
<Button className={style['saveBtn']} onClick={()=>setvisible(true)}>
(Number(page_type) === 1 && (data.interiorState === 3 || data.interiorState === 4)) &&
<Button className={style['saveBtn']} onClick={() => setvisible(true)}>
<CheckSquareOutlined />提交报价单
</Button>
}
......@@ -352,13 +352,13 @@ const Details: React.FC<parmas> = (props) => {
<div key={item.name} className={style['headerMain-left-option']}>
<div>{item.label}</div>
<div>
{ item.name === 'externalState' ?
{item.name === 'externalState' ?
inquiryQuoteOuterState(item.value) :
item.name === 'interiorState' ?
quoteOrderInternalState(item.value) :
(item.name === 'voucherTime' || item.name === 'quotationAsTime' ) ?
format(item.value) :
item.value
item.name === 'interiorState' ?
quoteOrderInternalState(item.value) :
(item.name === 'voucherTime' || item.name === 'quotationAsTime') ?
format(item.value) :
item.value
}
</div>
</div>
......@@ -429,9 +429,9 @@ const Details: React.FC<parmas> = (props) => {
</div>
<div className={style.item_wrap}>
<div className={style.mainCol_title} style={view === 2 ? {paddingBottom: '0px'}: {paddingBottom: '24px'}}>询价商品</div>
<div className={style.mainCol_title} style={view === 2 ? { paddingBottom: '0px' } : { paddingBottom: '24px' }}>询价商品</div>
{view === 1 && <Table columns={inquiryGoods} pagination={false} rowKey='id' dataSource={data.inquiryListProductRequests} />}
{view === 2 &&
{view === 2 &&
<StandardTable
currentRef={ref}
columns={inquiryGoods}
......@@ -496,7 +496,7 @@ const Details: React.FC<parmas> = (props) => {
<div className={style.upload_data}>
{
data.enclosureUrls &&
data.enclosureUrls.map((v,i) => (
data.enclosureUrls.map((v, i) => (
<div key={i} className={style.upload_item} onClick={() => onDownload(v)}>
<div className={style.upload_left}>
<LinkOutlined />
......@@ -508,22 +508,14 @@ const Details: React.FC<parmas> = (props) => {
</div>
</div>
<div className={style.item_wrap}>
{
Number(page_type) === 4 ?
<>
<div className={style.mainCol_title}>外部流转记录</div>
<Table columns={flowRecord.external} rowKey='id' pagination={false} dataSource={data.externalInquiryListLogResponses} />
</>
:
<Tabs>
<TabPane tab="外部流转记录" key="1">
<Table columns={flowRecord.external} rowKey='id' pagination={false} dataSource={data.externalInquiryListLogResponses} />
</TabPane>
<TabPane tab="内部流转记录" key="2">
<Table columns={flowRecord.interior} rowKey='id' pagination={false} dataSource={data.interiorInquiryListLogResponses} />
</TabPane>
</Tabs>
}
<Tabs>
<TabPane tab="外部流转记录" key="1">
<Table columns={flowRecord.external} rowKey='id' pagination={false} dataSource={view === 2 ? data.externalRequisitionFormResponses : data.externalInquiryListLogResponses} />
</TabPane>
<TabPane tab="内部流转记录" key="2">
<Table columns={flowRecord.interior} rowKey='id' pagination={false} dataSource={view === 2 ? data.interiorQuotationLogResponses : data.interiorInquiryListLogResponses} />
</TabPane>
</Tabs>
</div>
<AuditModal
id={id}
......
......@@ -69,7 +69,7 @@ const ReviewList: React.FC<parmas> = (props) => {
render: (text: any, record: any) => format(text)
},
{
title: '询价时间',
title: '单据时间',
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => format(text)
......
......@@ -101,7 +101,7 @@ const EnquiryOrder: React.FC<{}> = (props) => {
actions={formActions}
onSubmit={values => search(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect($, actions, 'inquiryListNo', FORM_FILTER_PATH)
useStateFilterSearchLinkageEffect($, actions, 'quotationNo', FORM_FILTER_PATH)
FormEffectHooks.onFieldChange$('category').subscribe(state => {
searchSelectGetSelectCategoryOptionEffect(actions, 'category')
})
......
......@@ -385,14 +385,14 @@ export const quoteFormSearch: ISchema = {
type:'object',
"x-component":'mega-layout',
properties:{
inquiryListNo:{
quotationNo:{
type:'string',
"x-component":"Search",
"x-mega-props":{
},
"x-component-props":{
placeholder:'搜索',
placeholder:'报价单号',
align: 'flex-left',
}
}
......@@ -421,16 +421,28 @@ export const quoteFormSearch: ISchema = {
inline: true
},
properties:{
inquiryListNo:{
type:'string',
"x-component-props":{
placeholder:'询价单号'
}
},
details:{
type:'string',
"x-component-props":{
placeholder:'报价单摘要'
}
},
memberName:{
type:'string',
"x-component-props":{
placeholder:'价会员'
placeholder:'价会员'
}
},
voucherTime:{
type:'string',
"x-component-props":{
placeholder:'请选择单据时间'
placeholder:'单据时间'
},
enum: TimeList
},
......
......@@ -113,6 +113,7 @@ const AddQuotes: React.FC<parmas> = (props) => {
// 获取到会员信息
const getMemberList = (list: any) => {
setmember(list);
console.log(list, '会员信息')
}
// 获取添加的商品列表
const getGoodsList = (list: any) => {
......
......@@ -58,7 +58,7 @@ const AddEnquiryOrder: React.FC<{}> = () => {
format(text)
},
{
title: '询价时间',
title: '单据时间',
key: 'createTime',
dataIndex: 'createTime',
render: (text: any) =>
......
......@@ -144,16 +144,17 @@ const Details: React.FC<parmas> = (props) => {
freight: {
title: '其他报价说明',
leftElem: [
{ title: '最小起订', key: '', value: data.minimumOrder },
// { title: '最小起订', key: '', value: data.minimumOrder },
{ title: '交付说明', key: '', value: data.fullAddress },
{ title: '付款说明', key: '', value: data.paymentType }
{ title: '付款说明', key: '', value: data.paymentType },
],
centerElem: [
{ title: '税费说明', key: '', value: data.taxes },
{ title: '物流说明', key: '', value: data.logistics },
{ title: '包装说明', key: '', value: data.packRequire },
// { title: '包装说明', key: '', value: data.packRequire },
],
rightElem: [
{ title: '包装说明', key: '', value: data.packRequire },
{ title: '其他说明', key: '', value: data.otherRequire }
],
},
......
......@@ -73,7 +73,7 @@ const ReviewList: React.FC<parmas> = (props) => {
render: (text: any, record: any) => format(text)
},
{
title: '询价时间',
title: '单据时间',
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => format(text)
......
......@@ -47,7 +47,7 @@ const EnquiryOrder: React.FC<{}> = (props) => {
dataIndex: 'quotationAsTime',
render: (text: any, record: any) => format(text)
}, {
title: '询价时间',
title: '单据时间',
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => format(text)
......
......@@ -55,7 +55,7 @@ const PendingSubmit: React.FC<{}> = () => {
render: (text: any, record: any) => format(text)
},
{
title: '询价时间',
title: '单据时间',
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => format(text)
......
......@@ -196,8 +196,8 @@ const Details: React.FC<parmas> = (props) => {
const flowRecord = {
external: [{
title: '序号',
key: 'inquiryListId',
dataIndex: 'inquiryListId',
key: 'id',
dataIndex: 'id',
}, {
title: '操作角色',
key: 'roleName',
......@@ -206,7 +206,7 @@ const Details: React.FC<parmas> = (props) => {
title: '状态',
key: 'state',
dataIndex: 'state',
render: (text: any, record: any) => externalTextState(text)
render: (text: any, record: any) => inquiryQuoteOuterState(record.state)
}, {
title: '操作',
key: 'operation',
......@@ -223,8 +223,8 @@ const Details: React.FC<parmas> = (props) => {
}],
interior: [{
title: '流转记录',
key: 'inquiryListId',
dataIndex: 'inquiryListId',
key: 'id',
dataIndex: 'id',
}, {
title: '操作人',
key: 'roleName',
......@@ -241,7 +241,7 @@ const Details: React.FC<parmas> = (props) => {
title: '状态',
key: 'state',
dataIndex: 'state',
render: (text: any, record: any) => interiorTextState(text)
render: (text: any, record: any) => quoteOrderInternalState(record.state)
}, {
title: '操作',
key: 'operation',
......@@ -477,10 +477,10 @@ const Details: React.FC<parmas> = (props) => {
}
</div>
<div className={style.item_wrap}>
<div className={style.mainCol_title}>{infoTem[type === 'quote' ? 'freight' : 'base'].title}</div>
<div className={style.mainCol_title}>{infoTem[type !== 'rfq' ? 'freight' : 'base'].title}</div>
<div className={style['mainCol-rows']}>
<div className={style['mainCol-rows-cols']}>
{infoTem[type === 'quote' ? 'freight' : 'base'].leftElem.map(
{infoTem[type !== 'rfq' ? 'freight' : 'base'].leftElem.map(
(item: any, index: number) => {
return (
<div className={style['cols-main']} key={index}>
......@@ -496,7 +496,7 @@ const Details: React.FC<parmas> = (props) => {
)}
</div>
<div className={style['mainCol-rows-cols']}>
{infoTem[type === 'quote' ? 'freight' : 'base'].centerElem.map(
{infoTem[type !== 'rfq' ? 'freight' : 'base'].centerElem.map(
(item: any, index: number) => {
return (
<div className={style['cols-main']} key={index}>
......@@ -511,7 +511,7 @@ const Details: React.FC<parmas> = (props) => {
)}
</div>
<div className={style['mainCol-rows-cols']}>
{infoTem[type === 'quote' ? 'freight' : 'base'].rightElem.map(
{infoTem[type !== 'rfq' ? 'freight' : 'base'].rightElem.map(
(item: any, index: number) => {
return (
<div className={style['cols-main']} key={index}>
......@@ -553,10 +553,10 @@ const Details: React.FC<parmas> = (props) => {
:
<Tabs>
<TabPane tab="外部流转记录" key="1">
<Table columns={flowRecord.external} rowKey='id' pagination={false} dataSource={data.externalInquiryListLogResponses} />
<Table columns={flowRecord.external} rowKey='id' pagination={false} dataSource={view === 1 ? data.externalInquiryListLogResponses : data.externalRequisitionFormResponses} />
</TabPane>
<TabPane tab="内部流转记录" key="2">
<Table columns={flowRecord.interior} rowKey='id' pagination={false} dataSource={data.interiorInquiryListLogResponses} />
<Table columns={flowRecord.interior} rowKey='id' pagination={false} dataSource={view === 1 ? data.interiorInquiryListLogResponses : data.interiorQuotationLogResponses} />
</TabPane>
</Tabs>
}
......
......@@ -48,7 +48,7 @@ const EnquiryOrder: React.FC<{}> = (props) => {
dataIndex: 'quotationAsTime',
render: (text: any, record: any) => format(text)
}, {
title: '询价时间',
title: '单据时间',
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => format(text)
......@@ -64,7 +64,7 @@ const EnquiryOrder: React.FC<{}> = (props) => {
title: '操作',
key: 'options',
dataIndex: 'options',
render: (text: any, record: any) => <Button disabled={record.externalState!==2 && record.externalState!==5 && record.isQuoted !==1} type='link'><Link to={`/memberCenter/tranactionAbility/inquiryQuote/addInquiryOrder/quote?id=${record.id}`}>报价</Link></Button>
render: (text: any, record: any) => <Button disabled={record.isQuoted ===1} type='link'><Link to={`/memberCenter/tranactionAbility/inquiryQuote/addInquiryOrder/quote?id=${record.id}`}>报价</Link></Button>
}];
//交易能力 询价报价 询价单查询
const fetchData = (params?: any) => {
......
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