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

🐞 fix: 修复采购询价BUG

parent 5f4aa527
......@@ -28,6 +28,8 @@ const defaultCityData = { index: 0, provinceCode: 0, province: '', cityCode: 0,
const LogisticsInfo: React.FC<LogisticsInfoPropsType> = (props) => {
const { siteUrl, siteId } = props.SiteStore
const [door, setDoor] = useState<string>('');
const [resUrl, setResUrl] = useState<string>('');
const [formIsHalfFilledOut, setFormIsHalfFilledOut] = useState(false)
const [form] = Form.useForm()
const [allMallList, setAllMallList] = useState([])
......@@ -352,7 +354,7 @@ const LogisticsInfo: React.FC<LogisticsInfoPropsType> = (props) => {
slideshowBOList: result
})
}
/**
const handleMallSelectChange = (mallId: number) => {
setShopId(mallId)
if (!shopInfo) {
......@@ -395,10 +397,6 @@ const LogisticsInfo: React.FC<LogisticsInfoPropsType> = (props) => {
return result
}
const handleFormValueChange = () => {
setFormIsHalfFilledOut(true)
}
const getSelectMallStoreUrl = () => {
if (!shopInfo) {
return null
......@@ -415,6 +413,28 @@ const LogisticsInfo: React.FC<LogisticsInfoPropsType> = (props) => {
}
return null
}
*/
const handleFormValueChange = () => {
setFormIsHalfFilledOut(true)
}
/** 获取店铺链接 */
const checkUrl = (url) => {
if (url && typeof url === 'string') {
if (url.indexOf('/') === 0) {
return url.replace('/', '').trim()
} else {
return `${url}`.trim()
}
}
}
const handleMallSelectChange = (val, option) => {
setDoor(option.children);
if (option.url) {
setResUrl(`${checkUrl(option.url)}.${siteUrl}`)
}
}
return (
<PageHeaderWrapper
......@@ -587,9 +607,13 @@ const LogisticsInfo: React.FC<LogisticsInfoPropsType> = (props) => {
))
}
</Select>
{
getSelectMallStoreUrl()
}
{resUrl && (
<div className={styles.shop_url}>
<span>当前{door}链接:</span>
<label>{resUrl}</label>
<CopyOutlined className={styles.copy_icon} onClick={() => handleCopyLinke(resUrl)} />
</div>
)}
</Form.Item>
</TabPane>
<TabPane tab='SEO' key='2' forceRender>
......
......@@ -148,8 +148,8 @@ const ContrastLyout1: React.FC<IProps> = (props: any) => {
if (data.length > 0) {
formatting(data, i);
} else {
message.error('当前暂无比价信息');
setDisabled(true);
// message.error('当前暂无比价信息');
setDisabled(false);
}
setLoading(false);
......
......@@ -2,7 +2,7 @@ import React, { useEffect } from 'react';
import { Modal } from 'antd';
import {
SchemaForm, SchemaMarkupField as Field,
createAsyncFormActions ,
createFormActions,
FormEffectHooks,
} from '@formily/antd'
import { Input, Radio, DatePicker, Checkbox } from '@formily/antd-components'
......@@ -11,7 +11,7 @@ import moment from 'moment';
import styles from './index.less';
import { isEmpty } from 'lodash';
const actions = createAsyncFormActions ()
const actions = createFormActions()
const { onFieldChange$ } = FormEffectHooks;
export interface IProps {
......@@ -40,7 +40,7 @@ const ModalOperate: React.FC<IProps> = (props: any) => {
} = props;
const useFormEffects = () => {
const { setFieldState } = createAsyncFormActions ()
const { setFieldState } = createFormActions()
if (modalType === 'audit') {
onFieldChange$('state').subscribe(({ value }) => {
setFieldState('auditOpinion', state => {
......
......@@ -81,6 +81,8 @@ const CrossSellProducts: React.FC<IProps> = (props: any) => {
const handleClose = () => {
onClose()
resetValue()
setFiles([])
setProductId(0)
}
/** 确定 */
const handleConfirm = () => {
......@@ -89,6 +91,8 @@ const CrossSellProducts: React.FC<IProps> = (props: any) => {
attribute,
files,
})
setProductId(0)
setFiles([])
resetValue()
}
......@@ -146,9 +150,18 @@ const CrossSellProducts: React.FC<IProps> = (props: any) => {
if (record.productId) {
GetCommodityAttribute(record.productId);
}
record.enclosureUrls && setFiles(record.enclosureUrls)
}
}, [rel, record])
const handleSelProduct = (data) => {
console.log(data);
data.id && setProductId(data.id);
data.productId && setProductId(data.productId);
setFlag(true)
}
return (
<>
<Drawer
......@@ -169,10 +182,10 @@ const CrossSellProducts: React.FC<IProps> = (props: any) => {
>
<Button onClick={handleClose} style={{ marginRight: 8 }}>
取消
</Button>
</Button>
<Button onClick={handleConfirm} type="primary">
确定
</Button>
</Button>
</div>
)}
</>
......@@ -226,7 +239,7 @@ const CrossSellProducts: React.FC<IProps> = (props: any) => {
}}
>
基本信息
</span>
</span>
</>
}
/>
......@@ -261,7 +274,7 @@ const CrossSellProducts: React.FC<IProps> = (props: any) => {
<div className={cx(style.box, style.boxBlue)}>
<div className={cx(style.title, style.tagBlue)}>
报价商品
<Text type='danger'>*</Text>
<Text type='danger'>*</Text>
</div>
<div className={style.content}>
{Object.keys(product).length > 0
......@@ -282,7 +295,7 @@ const CrossSellProducts: React.FC<IProps> = (props: any) => {
</>
)}
{!preview && (
<Button onClick={() => { setFlag(true); setProductId(product.id); console.log(product) }} block type="dashed" style={{ margin: '16px 0px' }}>
<Button onClick={() => handleSelProduct(product)} block type="dashed" style={{ margin: '16px 0px' }}>
<PlusSquareOutlined />
选择商品
</Button>
......@@ -349,7 +362,7 @@ const CrossSellProducts: React.FC<IProps> = (props: any) => {
}}
>
附件
</span>
</span>
</>
}
/>
......
......@@ -159,9 +159,12 @@ const SelectProduct: React.FC<Iprops> = (props: any) => {
}
useEffect(() => {
console.log(id)
if (id) {
console.log(2)
RowCtl.setSelectedRowKeys([id]);
} else {
console.log(1)
RowCtl.setSelectedRowKeys([]);
}
}, [visible])
......
......@@ -316,7 +316,6 @@ const PurchasInfo: React.FC<PurchasInfoPropsType> = (props) => {
const { value } = e.target;
const result = [...slideshowBOList];
result[index].link = value;
console.log(result)
setSlideshowBOList(result)
form.setFieldsValue({
slideshowBOList: result
......@@ -385,9 +384,10 @@ const PurchasInfo: React.FC<PurchasInfoPropsType> = (props) => {
setFormIsHalfFilledOut(true)
}
/** 获取店铺链接 */
const checkUrl = (url) => {
if (url && typeof url === 'string') {
if (url.indexOf('/') > -1) {
if (url.indexOf('/') === 0) {
return url.replace('/', '').trim()
} else {
return `${url}`.trim()
......@@ -395,11 +395,10 @@ const PurchasInfo: React.FC<PurchasInfoPropsType> = (props) => {
}
}
/** 获取店铺链接 */
const handleMallSelectChange = (val, option) => {
setDoor(option.children);
if (option.url) {
setResUrl(`${siteUrl}/${checkUrl(option.url)}`)
setResUrl(`${checkUrl(option.url)}.${siteUrl}`)
}
}
......
......@@ -15,6 +15,7 @@ import style from './index.less';
import DrawerWrite from '../modal/drawerWrite';
import { PublicApi } from '@/services/api';
import UploadImport from '@/components/UploadImport';
import EyePreview from '@/components/EyePreview';
const layout: any = {
colon: false,
......@@ -40,7 +41,9 @@ const Material: React.FC<Iprops> = (props: any) => {
/** 表单表头 */
const [flag, setFlag] = useState<boolean>(false);
const [edit, setEdit] = useState<any>({});
const [dataSource, setDataSource] = useState<any>([])
const [dataSource, setDataSource] = useState<any>([]);
const [eidtIndex, setEditIndex] = useState<number | null>();
const [isPreview, setIsPreview] = useState<boolean>(false);
/** 删除列表 */
const handleRemove = (index: number) => {
......@@ -50,9 +53,11 @@ const Material: React.FC<Iprops> = (props: any) => {
}
/** 编辑列表 */
const handleEdit = (data) => {
const handleEdit = (data, index, preview?) => {
setEditIndex(index)
setEdit(data);
setFlag(true)
setIsPreview(preview)
}
const columns: ColumnType<Object>[] = [
......@@ -65,6 +70,9 @@ const Material: React.FC<Iprops> = (props: any) => {
title: '物料名称',
key: 'name',
dataIndex: 'name',
render: (text: any, record: any, index: number) => (
<EyePreview type='button' handleClick={() => handleEdit(record, index, true) } >{text}</EyePreview>
)
},
{
title: '规格型号',
......@@ -97,7 +105,7 @@ const Material: React.FC<Iprops> = (props: any) => {
dataIndex: 'operate',
render: (_text: any, record: any, index: number) => (
<>
<Button type='link' onClick={() => handleEdit(record) }>编辑</Button>
<Button type='link' onClick={() => handleEdit(record, index)}>编辑</Button>
<Button onClick={() => handleRemove(index)} type='link'>删除</Button>
</>
)
......@@ -113,12 +121,23 @@ const Material: React.FC<Iprops> = (props: any) => {
/** 打开添加方式 */
const handleAddmode = () => {
setFlag(true)
setEdit({})
setEditIndex(null)
}
/** 关闭 */
const handleClose = () => {
setFlag(false)
setIsPreview(false)
}
/** 添加列表 */
const fetchTableList = (data: any) => {
if (Object.keys(data).length > 0) {
console.log(data, 98)
setDataSource([...dataSource, data]);
if (eidtIndex || eidtIndex === 0) {
dataSource[eidtIndex] = data;
setDataSource([...dataSource]);
} else {
setDataSource([...dataSource, data]);
}
setFlag(false);
}
}
......@@ -202,9 +221,10 @@ const Material: React.FC<Iprops> = (props: any) => {
{materielMode === 1
&& (
<DrawerWrite
preview={isPreview}
edit={edit}
flag={flag}
onClose={() => setFlag(false)}
onClose={handleClose}
onConfirm={fetchTableList}
/>
)}
......
......@@ -95,7 +95,7 @@ const SelectProduct: React.FC<Iprops> = (props: any) => {
<StandardTable
currentRef={ref}
columns={columns}
tableProps={{ rowKew: 'id' }}
tableProps={{ rowkey: 'id' }}
rowSelection={rowSelection}
fetchTableData={(params) => fetchGoodsData(params)}
controlRender={
......
......@@ -20,7 +20,7 @@ const tokenList = [
{ name: 'TransactionV2', token: '3ad04435494d01c359b9f07948338e019133a3e6c0fccdbe1bc3adc19cf1e0b1', categoryIds: [0] }, // 交易服务V2
{ name: 'ContractV2', token: 'bbf1f327cfe7c59d1e7fd9c5d25119829dd79d238b1f1c79ed97331e220721a4', categoryIds: [0] }, // 合同能力V2
{ name: 'OrderV2', token: '033f83bd5f519506f65f46d1513b1f8028a1dc1b5238d22edd0a2feb53cd3a19', categoryIds: [0], }, //订单服务V2
{ name: 'Platform', token: 'cadc3b13452c3ec67b5ef0c57063f12142e857a9eaa64669e80165adf42f5861', categoryIds: [0] }, // 平台后台v2
{ name: 'Platform', token: 'db3b086157528c865a1a1a9fafffa574e9c3f098c0518a7c374a72988ba1edbb', categoryIds: [0] }, // 平台后台v2
{ name: 'ProductV2', token: 'b915026587fa1f6edf056f3335817fe2d4b350b0aa84da456786e15e83d45827', categoryIds: [0], }, // 商品服务V2
{ name: 'TemplateV2', token: 'f0187aed046ac19accbed5c780cade01cf11b50a37099dab9d456195a4abd0d3', categoryIds: [0], }, // 页面模板服务V2
{ name: 'MemberV2', token: '87f86a297246fbf1c0dff7d34f13729cb194935a95db077a5009ac4ea48cea6f', categoryIds: [0]}, //会员服务 V2
......
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