Commit 814acebb authored by 前端-钟卫鹏's avatar 前端-钟卫鹏
parents fe38862f ed5f0b49
This diff is collapsed.
...@@ -15,6 +15,7 @@ import styles from './index.less' ...@@ -15,6 +15,7 @@ import styles from './index.less'
import { GetTemplateChannelFindChannelResponse } from '@/services/TemplateApi' import { GetTemplateChannelFindChannelResponse } from '@/services/TemplateApi'
import { isEmpty } from '@formily/antd/esm/shared' import { isEmpty } from '@formily/antd/esm/shared'
import { GlobalConfig } from '@/global/config' import { GlobalConfig } from '@/global/config'
import { getAuth } from '@/utils/auth'
interface ShopInfoPropsType { interface ShopInfoPropsType {
SiteStore: { SiteStore: {
...@@ -46,8 +47,11 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -46,8 +47,11 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
// 根据站点获取商城信息 // 根据站点获取商城信息
const fetchAllShop = () => { const fetchAllShop = () => {
//@ts-ignore const param: any = {
PublicApi.getManageShopFindShopsBySiteId({ siteId, type: 2 }).then(res => { siteId,
type: 2
}
PublicApi.getManageShopFindShopsBySiteId(param).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
setAllMallList(res.data) setAllMallList(res.data)
} }
...@@ -58,7 +62,11 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -58,7 +62,11 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
* 获取渠道信息 * 获取渠道信息
*/ */
const fetchShopInfo = () => { const fetchShopInfo = () => {
PublicApi.getTemplateChannelFindChannel().then(res => { const { memberId } = getAuth() || {}
const param: any = {
memberId
}
PublicApi.getTemplateChannelFindChannel(param).then(res => {
const data = res.data const data = res.data
if (res.code === 1000) { if (res.code === 1000) {
setShopInfo(data) setShopInfo(data)
...@@ -92,7 +100,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -92,7 +100,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
} }
const handleAddNewCitySelect = (item: any) => { const handleAddNewCitySelect = (item: any) => {
let temp = [...selectCityData] const temp = [...selectCityData]
temp.push(item) temp.push(item)
setSelectCityData(temp) setSelectCityData(temp)
form.setFieldsValue({ form.setFieldsValue({
...@@ -136,7 +144,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -136,7 +144,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
const handleSave = (e: any) => { const handleSave = (e: any) => {
e.preventDefault() e.preventDefault()
form.validateFields().then(value => { form.validateFields().then((value: any) => {
if (!checkmemberChannelAreas(value.memberChannelAreas)) { if (!checkmemberChannelAreas(value.memberChannelAreas)) {
return return
} }
...@@ -147,7 +155,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -147,7 +155,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
value.storeUrl = storeUrl || `${siteUrl}/${GlobalConfig.channelRootRoute}` value.storeUrl = storeUrl || `${siteUrl}/${GlobalConfig.channelRootRoute}`
value.shopId = shopId value.shopId = shopId
setConfirmLoading(true) setConfirmLoading(true)
//@ts-ignore
PublicApi.postTemplateChannelSaveChannel(value).then(res => { PublicApi.postTemplateChannelSaveChannel(value).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
fetchShopInfo() fetchShopInfo()
...@@ -200,7 +208,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -200,7 +208,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
} }
/** /**
* 添加荣誉图片 * 添加荣誉图片
* @param url * @param url
*/ */
const handleAddhonorPics = (url: string) => { const handleAddhonorPics = (url: string) => {
setHonorPics([...honorPics, url]) setHonorPics([...honorPics, url])
...@@ -215,7 +223,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -215,7 +223,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
return return
} }
if (shopInfo.shopId && shopInfo.memberId) { if (shopInfo.shopId && shopInfo.memberId) {
let resUrl = getMallItemAndSetUrl(mallId) const resUrl = getMallItemAndSetUrl(mallId)
setStoreUrl(resUrl) setStoreUrl(resUrl)
} else { } else {
setStoreUrl(null) setStoreUrl(null)
...@@ -225,7 +233,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -225,7 +233,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
const getMallItemAndSetUrl = (mallId) => { const getMallItemAndSetUrl = (mallId) => {
let result = "" let result = ""
let mallItem = allMallList.filter(item => item.id === mallId)[0] const mallItem = allMallList.filter(item => item.id === mallId)[0]
if (!mallItem) { if (!mallItem) {
return "" return ""
} }
...@@ -261,7 +269,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -261,7 +269,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
return null return null
} }
if (shopId && shopInfo.shopId && shopInfo.memberId) { if (shopId && shopInfo.shopId && shopInfo.memberId) {
let resUrl = getMallItemAndSetUrl(shopId) const resUrl = getMallItemAndSetUrl(shopId)
return resUrl ? ( return resUrl ? (
<div className={styles.shop_url}> <div className={styles.shop_url}>
<span>当前店铺链接:</span> <span>当前店铺链接:</span>
...@@ -396,7 +404,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -396,7 +404,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
labelAlign="left" labelAlign="left"
name="customerUrl" name="customerUrl"
label={<RequireItem label="客服链接" />} label={<RequireItem label="客服链接" />}
rules={[{ pattern: /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/, message: '请输入正确的客服链接' }]} rules={[{ pattern: /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-.,@?^=%&:/~+#]*[\w\-@?^=%&/~+#])?/, message: '请输入正确的客服链接' }]}
> >
<Input allowClear className={styles.form_item} /> <Input allowClear className={styles.form_item} />
</Form.Item> </Form.Item>
......
...@@ -5,7 +5,7 @@ import SettingList from '../../../../components/SettingList' ...@@ -5,7 +5,7 @@ import SettingList from '../../../../components/SettingList'
import GoodsItem from './GoodsItem' import GoodsItem from './GoodsItem'
import SettingPanel from '../../../../components/SettingPanel' import SettingPanel from '../../../../components/SettingPanel'
import { CaretUpOutlined, CaretDownOutlined } from '@ant-design/icons' import { CaretUpOutlined, CaretDownOutlined } from '@ant-design/icons'
import { GetTemplatePlatformFindGoodsListResponseDetail } from '@/services' import { GetTemplatePlatformFindGoodsListResponseDetail } from '@/services/TemplateApi'
import { PublicApi } from '@/services/api' import { PublicApi } from '@/services/api'
import { filterProps } from '../../../../utils' import { filterProps } from '../../../../utils'
import styles from './index.less' import styles from './index.less'
...@@ -44,7 +44,6 @@ const GoodsSetting: React.FC<GoodsSettingPropsType> = (props) => { ...@@ -44,7 +44,6 @@ const GoodsSetting: React.FC<GoodsSettingPropsType> = (props) => {
const [totalCount, setTotalCount] = useState<number>(0) const [totalCount, setTotalCount] = useState<number>(0)
const [filterParam, setFilterParam] = useState() const [filterParam, setFilterParam] = useState()
const [spinLoading, setSpinLoading] = useState<boolean>(false) const [spinLoading, setSpinLoading] = useState<boolean>(false)
const [newProps, setNewProps] = useState(props)
const [categoryResponseList, setCategoryResponseList] = useState<any>([]) const [categoryResponseList, setCategoryResponseList] = useState<any>([])
const [noSelectBrands, setNoSelectBrands] = useState<any[]>([]) const [noSelectBrands, setNoSelectBrands] = useState<any[]>([])
...@@ -59,8 +58,7 @@ const GoodsSetting: React.FC<GoodsSettingPropsType> = (props) => { ...@@ -59,8 +58,7 @@ const GoodsSetting: React.FC<GoodsSettingPropsType> = (props) => {
categoryId: categoryid, categoryId: categoryid,
templateId: templateid templateId: templateid
} }
PublicApi.getTemplateShopFindCategoryList(param).then(res => {
PublicApi.getTemplatePlatformFindCategoryList(param).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
const data = res.data const data = res.data
setCategoryResponseList(data.categoryBOList || []) setCategoryResponseList(data.categoryBOList || [])
...@@ -283,7 +281,10 @@ const GoodsSetting: React.FC<GoodsSettingPropsType> = (props) => { ...@@ -283,7 +281,10 @@ const GoodsSetting: React.FC<GoodsSettingPropsType> = (props) => {
</Button> </Button>
) : ( ) : (
<Button <Button
onClick={() => setOprationType('list')} onClick={() => {
setOprationType('list')
setIsHighSearch(false)
}}
> >
查看已选择商品({selectGoodsList.length}) 查看已选择商品({selectGoodsList.length})
</Button> </Button>
......
...@@ -21,7 +21,7 @@ import { useRowSelectionTable } from '@/hooks/useRowSelectionTable'; ...@@ -21,7 +21,7 @@ import { useRowSelectionTable } from '@/hooks/useRowSelectionTable';
* @Date: 2020-10-12 11:36:38 * @Date: 2020-10-12 11:36:38
* @Description: 新增生产通知单 * @Description: 新增生产通知单
*/ */
const formActions = createFormActions(); const formActions = createFormActions();
const { onFieldValueChange$, onFieldMount$ } = FormEffectHooks const { onFieldValueChange$, onFieldMount$ } = FormEffectHooks
...@@ -35,11 +35,11 @@ const Add: React.FC<{}> = () => { ...@@ -35,11 +35,11 @@ const Add: React.FC<{}> = () => {
// 加工订单 modal 框 // 加工订单 modal 框
const [modalOrderVisible, setModalOrderVisible] = useState<boolean>(false); const [modalOrderVisible, setModalOrderVisible] = useState<boolean>(false);
const [rowSelection, selectRowCtl] = useRowSelectionTable({ const [rowSelection, selectRowCtl] = useRowSelectionTable({
customKey: 'fullId', customKey: 'fullId',
extendsSelection: { extendsSelection: {
getCheckboxProps: record => ({ getCheckboxProps: record => ({
disabled: record.purchaseCount - (record.processNum || 0) <= 0, disabled: record.purchaseCount - (record.processNum || 0) <= 0,
}), }),
} }
}); });
...@@ -69,13 +69,13 @@ const Add: React.FC<{}> = () => { ...@@ -69,13 +69,13 @@ const Add: React.FC<{}> = () => {
{ title: '加工数量', dataIndex: 'processNum' }, { title: '加工数量', dataIndex: 'processNum' },
{ title: '加工单价', dataIndex: 'processUnitPrice' }, { title: '加工单价', dataIndex: 'processUnitPrice' },
{ title: '加工费', dataIndex: 'processTotalPrice'}, { title: '加工费', dataIndex: 'processTotalPrice'},
{ {
title: '操作', title: '操作',
render: (text, record) => { render: (text, record) => {
const uniqueID = activeSource == '加工订单'? record.fullId : record.id const uniqueID = activeSource == '加工订单'? record.fullId : record.id
return ( return (
<Space> <Space>
<ProcessDetail <ProcessDetail
skuId={record.id} skuId={record.id}
uniqueID={uniqueID} uniqueID={uniqueID}
type={"view"} type={"view"}
...@@ -89,10 +89,10 @@ const Add: React.FC<{}> = () => { ...@@ -89,10 +89,10 @@ const Add: React.FC<{}> = () => {
> >
<a>查看</a> <a>查看</a>
</ProcessDetail> </ProcessDetail>
<ProcessDetail <ProcessDetail
skuId={record.id} skuId={record.id}
uniqueID={uniqueID} uniqueID={uniqueID}
type={"edit"} type={"edit"}
submit={handleChangeSomeList} submit={handleChangeSomeList}
quantity={record.processNum} quantity={record.processNum}
processUnitPrice={record.processUnitPrice} processUnitPrice={record.processUnitPrice}
...@@ -107,24 +107,24 @@ const Add: React.FC<{}> = () => { ...@@ -107,24 +107,24 @@ const Add: React.FC<{}> = () => {
<a onClick={() => handleRemoveRow(uniqueID)}>删除</a> <a onClick={() => handleRemoveRow(uniqueID)}>删除</a>
</Space> </Space>
) )
} }
}, },
] ]
return activeSource !== '加工订单' ? tempColumns.filter((item) => !blackList.includes(item.dataIndex)) : tempColumns; return activeSource !== '加工订单' ? tempColumns.filter((item) => !blackList.includes(item.dataIndex)) : tempColumns;
} }
// 选择弹框 element // 选择弹框 element
const tableAddButton = () => { const tableAddButton = () => {
return ( return (
<div> <div>
<Button <Button
onClick={handleShowProcessModal} onClick={handleShowProcessModal}
style={{marginBottom: 16}} style={{marginBottom: 16}}
block block
icon={<PlusOutlined/>} icon={<PlusOutlined/>}
type='dashed' type='dashed'
> >
选择{activeSource} 选择{activeSource}
</Button> </Button>
</div> </div>
) )
} }
...@@ -134,7 +134,7 @@ const Add: React.FC<{}> = () => { ...@@ -134,7 +134,7 @@ const Add: React.FC<{}> = () => {
<Radio checked={true}>{activeSource}</Radio> <Radio checked={true}>{activeSource}</Radio>
) )
} }
// 流转记录 // 流转记录
const RadioBtnGroup = () => { const RadioBtnGroup = () => {
return ( return (
<Radio.Group <Radio.Group
...@@ -151,7 +151,7 @@ const Add: React.FC<{}> = () => { ...@@ -151,7 +151,7 @@ const Add: React.FC<{}> = () => {
/** /**
* formEffect, 表单联动操作放这里操作,包括表单的生命周期等操作 * formEffect, 表单联动操作放这里操作,包括表单的生命周期等操作
*/ */
const formEffects = () => () => { const formEffects = () => () => {
onFieldValueChange$('source').subscribe((state) => { onFieldValueChange$('source').subscribe((state) => {
if(state.mounted) { if(state.mounted) {
...@@ -167,9 +167,9 @@ const Add: React.FC<{}> = () => { ...@@ -167,9 +167,9 @@ const Add: React.FC<{}> = () => {
let options = []; let options = [];
if(res.code === 1000) { if(res.code === 1000) {
options = res.data.data.map((item) => { options = res.data.data.map((item) => {
return { return {
label: `${item.fullAddress} / ${item.receiverName} / ${item.phone}`, label: `${item.fullAddress} / ${item.receiverName} / ${item.phone}`,
value: item.id value: item.id
}} }}
) )
} }
...@@ -178,7 +178,7 @@ const Add: React.FC<{}> = () => { ...@@ -178,7 +178,7 @@ const Add: React.FC<{}> = () => {
}) })
}) })
}) })
/** /**
* 当改变物流地址的时候,那么修改隐藏的3个字段, * 当改变物流地址的时候,那么修改隐藏的3个字段,
* 1. receiveAddress 详细的物流地址 * 1. receiveAddress 详细的物流地址
...@@ -196,7 +196,7 @@ const Add: React.FC<{}> = () => { ...@@ -196,7 +196,7 @@ const Add: React.FC<{}> = () => {
formActions.setFieldValue("receiveUserTel", receiveUserTel.trim()); formActions.setFieldValue("receiveUserTel", receiveUserTel.trim());
formActions.setFieldValue("receiverAddressId", state.value) formActions.setFieldValue("receiverAddressId", state.value)
} }
} }
}) })
} }
...@@ -205,7 +205,7 @@ const Add: React.FC<{}> = () => { ...@@ -205,7 +205,7 @@ const Add: React.FC<{}> = () => {
const handleShowProcessModal = () => { const handleShowProcessModal = () => {
const source = formActions.getFieldValue('source'); const source = formActions.getFieldValue('source');
if(source == 1) { if(source == 1) {
setModalOrderVisible(true); setModalOrderVisible(true);
} else { } else {
setModalProductVisible(true) setModalProductVisible(true)
} }
...@@ -213,7 +213,7 @@ const Add: React.FC<{}> = () => { ...@@ -213,7 +213,7 @@ const Add: React.FC<{}> = () => {
/** /**
* 加工企业modal框 行勾选 * 加工企业modal框 行勾选
* @param rows * @param rows
*/ */
const enterPriseOnOk = (rows) => { const enterPriseOnOk = (rows) => {
const { memberId, name, roleId } = rows.selectRow[0]; const { memberId, name, roleId } = rows.selectRow[0];
...@@ -246,7 +246,7 @@ const Add: React.FC<{}> = () => { ...@@ -246,7 +246,7 @@ const Add: React.FC<{}> = () => {
/** /**
* 加工商品Modal框 行勾选回调 * 加工商品Modal框 行勾选回调
* @param rows * @param rows
*/ */
const processProductSelected = () => { const processProductSelected = () => {
console.log(productSelectRowCtl); console.log(productSelectRowCtl);
...@@ -257,7 +257,7 @@ const Add: React.FC<{}> = () => { ...@@ -257,7 +257,7 @@ const Add: React.FC<{}> = () => {
/** /**
* 加工订单Modal框 行勾选回调 * 加工订单Modal框 行勾选回调
* @param row * @param row
*/ */
const processOrderOnok = () => { const processOrderOnok = () => {
console.log(selectRowCtl); console.log(selectRowCtl);
...@@ -270,13 +270,12 @@ const Add: React.FC<{}> = () => { ...@@ -270,13 +270,12 @@ const Add: React.FC<{}> = () => {
* 提交表单 * 提交表单
*/ */
const handleSubmit = (values: any) => { const handleSubmit = (values: any) => {
console.log(values)
const SELF_MENTION = 2; // 自提 const SELF_MENTION = 2; // 自提
const { const {
deliveryDate, deliveryDate,
receivefullAddress, receivefullAddress,
// receiveAddressID, // receiveAddressID,
enclosure = [], enclosure = [],
deliveryDesc = '', deliveryDesc = '',
payDesc = '', payDesc = '',
taxDesc = '', taxDesc = '',
...@@ -293,13 +292,13 @@ const Add: React.FC<{}> = () => { ...@@ -293,13 +292,13 @@ const Add: React.FC<{}> = () => {
if(isSomeFieldNotFill) { if(isSomeFieldNotFill) {
message.error("通知单明细中有加工商品的加工数量或加工单价未填写"); message.error("通知单明细中有加工商品的加工数量或加工单价未填写");
return return
} }
setSubmitLoading(true); setSubmitLoading(true);
const detailList = someLists.map((item) => { const detailList = someLists.map((item) => {
return { return {
orederNo: item.orderNo, // 如果是商品加工,那么他没有订单号 orederNo: item.orderNo, // 如果是商品加工,那么他没有订单号
productId: item.id, // skuid productId: item.id, // skuid
productName: item.name, productName: item.name,
category: item.customerCategoryName, category: item.customerCategoryName,
brand: item.brandName, brand: item.brandName,
...@@ -332,7 +331,7 @@ const Add: React.FC<{}> = () => { ...@@ -332,7 +331,7 @@ const Add: React.FC<{}> = () => {
}, },
details:detailList details:detailList
} }
if(values.deliveryType == SELF_MENTION) { if(values.deliveryType == SELF_MENTION) {
delete postData.receiveAddress; delete postData.receiveAddress;
delete postData.receiveUserName; delete postData.receiveUserName;
...@@ -340,7 +339,6 @@ const Add: React.FC<{}> = () => { ...@@ -340,7 +339,6 @@ const Add: React.FC<{}> = () => {
delete postData.receiverAddressId delete postData.receiverAddressId
} }
console.log(postData); console.log(postData);
// return ;
PublicApi.postEnhanceSupplierToBeAddAdd(postData) PublicApi.postEnhanceSupplierToBeAddAdd(postData)
.then(data => { .then(data => {
setSubmitLoading(false); setSubmitLoading(false);
...@@ -373,7 +371,7 @@ const Add: React.FC<{}> = () => { ...@@ -373,7 +371,7 @@ const Add: React.FC<{}> = () => {
/** /**
* 移除数据, 这里有个bug,移除数据时,对应的modal的rowSelection 没有跟着删除 * 移除数据, 这里有个bug,移除数据时,对应的modal的rowSelection 没有跟着删除
* 尝试从父组件给rowSelection * 尝试从父组件给rowSelection
* @param id * @param id
*/ */
const handleRemoveRow = (id: number) => { const handleRemoveRow = (id: number) => {
const currentList = formActions.getFieldValue('Tabs.tab-2.layout.someLists'); const currentList = formActions.getFieldValue('Tabs.tab-2.layout.someLists');
...@@ -403,7 +401,7 @@ const Add: React.FC<{}> = () => { ...@@ -403,7 +401,7 @@ const Add: React.FC<{}> = () => {
icon={<SaveOutlined />} icon={<SaveOutlined />}
loading={submitLoading} loading={submitLoading}
onClick={() => formActions.submit()} onClick={() => formActions.submit()}
> >
保存 保存
</Button>, </Button>,
]} ]}
...@@ -424,22 +422,22 @@ const Add: React.FC<{}> = () => { ...@@ -424,22 +422,22 @@ const Add: React.FC<{}> = () => {
effects={formEffects()} effects={formEffects()}
/> />
{/* 加工企业 Modal 框 */} {/* 加工企业 Modal 框 */}
<EnterPrise <EnterPrise
visible={modalEnterPriseVisible} visible={modalEnterPriseVisible}
cancel={() => setEnterPriseModalVisible(false)} cancel={() => setEnterPriseModalVisible(false)}
onOk={enterPriseOnOk} onOk={enterPriseOnOk}
></EnterPrise> ></EnterPrise>
{/* 加工商品Modal框 */} {/* 加工商品Modal框 */}
<ProcessProducts <ProcessProducts
visible={modalProductVisible} visible={modalProductVisible}
cancel={() => setModalProductVisible(false)} cancel={() => setModalProductVisible(false)}
onOk={processProductSelected} onOk={processProductSelected}
rowSelection={productRowSelection} rowSelection={productRowSelection}
></ProcessProducts> ></ProcessProducts>
<ProcessOrder <ProcessOrder
visible={modalOrderVisible} visible={modalOrderVisible}
cancel={() => setModalOrderVisible(false)} cancel={() => setModalOrderVisible(false)}
onOk={processOrderOnok} onOk={processOrderOnok}
rowSelection={rowSelection} rowSelection={rowSelection}
> >
......
...@@ -5,8 +5,7 @@ import classnames from 'classnames'; ...@@ -5,8 +5,7 @@ import classnames from 'classnames';
import {FileList, UploadFile} from '../../components/UploadFile'; import {FileList, UploadFile} from '../../components/UploadFile';
import NiceForm from '@/components/NiceForm'; import NiceForm from '@/components/NiceForm';
import { createFormActions } from '@formily/antd' import { createFormActions } from '@formily/antd'
import {useScroll, useDebounceFn } from '@umijs/hooks'; import {useScroll } from '@umijs/hooks';
import { min } from 'lodash';
const actions = createFormActions(); const actions = createFormActions();
const schema = { const schema = {
...@@ -64,7 +63,6 @@ interface Iprops { ...@@ -64,7 +63,6 @@ interface Iprops {
const Content: React.FC<Iprops> = React.forwardRef((props, conftentRef) => { const Content: React.FC<Iprops> = React.forwardRef((props, conftentRef) => {
const { id, name, category, brand, unitName, files, productProps, quantity, processUnitPrice } = props; const { id, name, category, brand, unitName, files, productProps, quantity, processUnitPrice } = props;
const [active, setActive] = useState<string>("基本信息");
const [menu, setMenu] = useState([]) const [menu, setMenu] = useState([])
// const ref = useRef(null); // const ref = useRef(null);
const [scroll, ref] = useScroll<HTMLDivElement>(); const [scroll, ref] = useScroll<HTMLDivElement>();
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
.container { .container {
// width: 1206px; // width: 1206px;
.header { .header {
padding: 0 24px; padding: 0 24px;
display: flex; display: flex;
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
font-weight: 400; font-weight: 400;
} }
} }
.images { .images {
width: 216px; width: 216px;
height: 100%; height: 100%;
...@@ -60,10 +60,23 @@ ...@@ -60,10 +60,23 @@
margin-right: 12px; margin-right: 12px;
border-radius: 50%; border-radius: 50%;
// background-color: red; // background-color: red;
overflow: hidden;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.randomLogo {
width: 100%;
height: 100%;
background: linear-gradient(135deg, #4981CC 0%, #1A4F97 100%) #255BA3;
border-radius: 50%;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
font-size: 18px;
}
} }
.wrapper { .wrapper {
...@@ -90,10 +103,10 @@ ...@@ -90,10 +103,10 @@
} }
} }
} }
} }
...@@ -16,7 +16,7 @@ const WEEKDAYS = ["天", "一","二", "三", "四", "五","六"]; ...@@ -16,7 +16,7 @@ const WEEKDAYS = ["天", "一","二", "三", "四", "五","六"];
const LEVEL_IMAGE = [level1, level2, level3, level4]; const LEVEL_IMAGE = [level1, level2, level3, level4];
const EDIT_USER_URL = '/memberCenter/memberAbility/query'; const EDIT_USER_URL = '/memberCenter/memberAbility/query';
const USER_CENTER_URL = '/memberCenter/memberAbility/manage/maintain' const USER_CENTER_URL = '/memberCenter/memberAbility/manage/maintain'
const STATUS_COLOR = ["default", "processing", "error", "success"] const STATUS_COLOR: ("default" | "processing" | "error" | "success")[] = ["default", "processing", "error", "success"]
const UserCenter: React.FC<Iprops> = () => { const UserCenter: React.FC<Iprops> = () => {
const today = moment(); const today = moment();
...@@ -37,7 +37,7 @@ const UserCenter: React.FC<Iprops> = () => { ...@@ -37,7 +37,7 @@ const UserCenter: React.FC<Iprops> = () => {
</div> </div>
<div className={styles.date}> <div className={styles.date}>
{today.format('YYYY年MM月DD日')} 星期{WEEKDAYS[today.day()]} {today.format('YYYY年MM月DD日')} 星期{WEEKDAYS[today.day()]}
</div> </div>
</div> </div>
<div className={styles.images}> <div className={styles.images}>
<img src={home_user} /> <img src={home_user} />
...@@ -46,13 +46,14 @@ const UserCenter: React.FC<Iprops> = () => { ...@@ -46,13 +46,14 @@ const UserCenter: React.FC<Iprops> = () => {
<div className={styles.content}> <div className={styles.content}>
<Row className={styles.row}> <Row className={styles.row}>
<Col span={11} className={styles.user}> <Col span={11} className={styles.user}>
{/* http://10.0.0.25:4000/project/15/interface/api/38926 上传用户头像 */}
<div className={styles.pic} > <div className={styles.pic} >
{ {
userAuth.logo userAuth.logo
? <img src={userAuth.logo || ''} /> ? <img src={userAuth.logo || ''} />
: <div></div> : <div className={styles.randomLogo}>H</div>
} }
</div> </div>
<div className={styles.wrapper}> <div className={styles.wrapper}>
<div className={styles.company}> <div className={styles.company}>
...@@ -91,4 +92,4 @@ const UserCenter: React.FC<Iprops> = () => { ...@@ -91,4 +92,4 @@ const UserCenter: React.FC<Iprops> = () => {
) )
} }
export default UserCenter export default UserCenter
\ No newline at end of file
...@@ -371,7 +371,13 @@ const CommodityDetail = (props) => { ...@@ -371,7 +371,13 @@ const CommodityDetail = (props) => {
postFn = PublicApi.postSearchShopPurchaseSaveOrUpdatePurchase postFn = PublicApi.postSearchShopPurchaseSaveOrUpdatePurchase
break; break;
} }
PublicApi.postOrderDirectPayment({ productId: selectCommodityId, memberId }).then(res => {
const directParam: any = {
productId: selectCommodityId,
memberId,
shopId
}
PublicApi.postOrderDirectPayment(directParam).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
message.destroy() message.destroy()
postFn && postFn(param).then(res => { postFn && postFn(param).then(res => {
...@@ -483,8 +489,12 @@ const CommodityDetail = (props) => { ...@@ -483,8 +489,12 @@ const CommodityDetail = (props) => {
if (clickFlag) { if (clickFlag) {
clickFlag = false clickFlag = false
const param: any = {
PublicApi.postOrderDirectPayment({ productId: selectCommodityId, memberId }).then(res => { productId: selectCommodityId,
memberId,
shopId
}
PublicApi.postOrderDirectPayment(param).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
message.destroy() message.destroy()
const buyCommodityInfo = { const buyCommodityInfo = {
......
...@@ -6,6 +6,7 @@ import { LAYOUT_TYPE, FILTER_TYPE } from '@/constants' ...@@ -6,6 +6,7 @@ import { LAYOUT_TYPE, FILTER_TYPE } from '@/constants'
import { PublicApi } from '@/services/api' import { PublicApi } from '@/services/api'
import isEmpty from 'lodash/isEmpty' import isEmpty from 'lodash/isEmpty'
import styles from './index.less' import styles from './index.less'
import { Layout } from '@formily/antd'
const CheckboxGroup = Checkbox.Group const CheckboxGroup = Checkbox.Group
...@@ -29,6 +30,7 @@ const Category: React.FC<CategoryPropsType> = (props) => { ...@@ -29,6 +30,7 @@ const Category: React.FC<CategoryPropsType> = (props) => {
const [initSelectAttributeList, setInitSelectAttributeList] = useState<any>([]) const [initSelectAttributeList, setInitSelectAttributeList] = useState<any>([])
useEffect(() => { useEffect(() => {
console.log(JSON.stringify(filterList))
if (isEmpty(filterList)) { if (isEmpty(filterList)) {
setSelectedKeys([]) setSelectedKeys([])
setLastCategoryId(null) setLastCategoryId(null)
...@@ -39,6 +41,8 @@ const Category: React.FC<CategoryPropsType> = (props) => { ...@@ -39,6 +41,8 @@ const Category: React.FC<CategoryPropsType> = (props) => {
for (const item of filterList) { for (const item of filterList) {
if (item.type === FILTER_TYPE.category) { if (item.type === FILTER_TYPE.category) {
initKeys.push(String(item.key)) initKeys.push(String(item.key))
} else if(item.type === FILTER_TYPE.customerCategory) {
initKeys.push(String(item.key))
} }
if (item.type === FILTER_TYPE.attribute) { if (item.type === FILTER_TYPE.attribute) {
setInitSelectAttributeList(item.key) setInitSelectAttributeList(item.key)
...@@ -186,7 +190,6 @@ const Category: React.FC<CategoryPropsType> = (props) => { ...@@ -186,7 +190,6 @@ const Category: React.FC<CategoryPropsType> = (props) => {
} }
const handleSelect = (selectedKeys, info) => { const handleSelect = (selectedKeys, info) => {
console.log(info)
const { title, children, name } = info.node const { title, children, name } = info.node
setSelectedKeys(selectedKeys) setSelectedKeys(selectedKeys)
if (children.length === 0) { if (children.length === 0) {
...@@ -196,17 +199,31 @@ const Category: React.FC<CategoryPropsType> = (props) => { ...@@ -196,17 +199,31 @@ const Category: React.FC<CategoryPropsType> = (props) => {
} else { } else {
setLastCategoryId(null) setLastCategoryId(null)
setAttributeList([]) setAttributeList([])
onFilter({ if(filterList.some(item => item.type === FILTER_TYPE.attribute)) {
type: FILTER_TYPE.attribute, onFilter({
key: null, type: FILTER_TYPE.attribute,
title: `` key: null,
}) title: ``
})
}
} }
onFilter({ switch(layoutType) {
type: FILTER_TYPE.category, case LAYOUT_TYPE.mall:
key: selectedKeys, onFilter({
title: typeof title === 'string' ? title : name type: FILTER_TYPE.category,
}) key: selectedKeys,
title: typeof title === 'string' ? title : name
})
break
default:
onFilter({
type: FILTER_TYPE.customerCategory,
key: selectedKeys,
title: typeof title === 'string' ? title : name
})
break
}
} }
const handleExpand = (expandedKeys) => { const handleExpand = (expandedKeys) => {
......
...@@ -35,7 +35,7 @@ const LXChannelLayout: React.FC<LXChannelLayoutPropsType> = (props) => { ...@@ -35,7 +35,7 @@ const LXChannelLayout: React.FC<LXChannelLayoutPropsType> = (props) => {
const [loading, setLoading] = useState<boolean>(true) const [loading, setLoading] = useState<boolean>(true)
const getMenuRouter = (routes: any, pathname: any) => { const getMenuRouter = (routes: any, pathname: any) => {
let list = routes.filter((item: any) => pathname.indexOf(item.key) > -1) const list = routes.filter((item: any) => pathname.indexOf(item.key) > -1)
return list[0] || {} return list[0] || {}
} }
...@@ -61,7 +61,7 @@ const LXChannelLayout: React.FC<LXChannelLayoutPropsType> = (props) => { ...@@ -61,7 +61,7 @@ const LXChannelLayout: React.FC<LXChannelLayoutPropsType> = (props) => {
}, [query]) }, [query])
const fetchShopInfo = (memberId) => { const fetchShopInfo = (memberId) => {
//@ts-ignore
PublicApi.getTemplateChannelFindChannel({ memberId }).then(res => { PublicApi.getTemplateChannelFindChannel({ memberId }).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
setShopInfo(res.data) setShopInfo(res.data)
...@@ -73,7 +73,7 @@ const LXChannelLayout: React.FC<LXChannelLayoutPropsType> = (props) => { ...@@ -73,7 +73,7 @@ const LXChannelLayout: React.FC<LXChannelLayoutPropsType> = (props) => {
} }
useEffect(() => { useEffect(() => {
let body = document.getElementsByTagName('body')[0]; const body = document.getElementsByTagName('body')[0];
if (shopInfo) { if (shopInfo) {
body.className = shopInfo.channelShopTemplateFileName ? `theme-channel-${shopInfo.channelShopTemplateFileName}` : templateName; body.className = shopInfo.channelShopTemplateFileName ? `theme-channel-${shopInfo.channelShopTemplateFileName}` : templateName;
} else { } else {
......
...@@ -35,7 +35,7 @@ const LXIChannelLayout: React.FC<LXIChannelLayoutPropsType> = (props) => { ...@@ -35,7 +35,7 @@ const LXIChannelLayout: React.FC<LXIChannelLayoutPropsType> = (props) => {
const [loading, setLoading] = useState<boolean>(true) const [loading, setLoading] = useState<boolean>(true)
const getMenuRouter = (routes: any, pathname: any) => { const getMenuRouter = (routes: any, pathname: any) => {
let list = routes.filter((item: any) => pathname.indexOf(item.key) > -1) const list = routes.filter((item: any) => pathname.indexOf(item.key) > -1)
return list[0] || {} return list[0] || {}
} }
const { formatMessage } = useIntl(); const { formatMessage } = useIntl();
...@@ -61,7 +61,7 @@ const LXIChannelLayout: React.FC<LXIChannelLayoutPropsType> = (props) => { ...@@ -61,7 +61,7 @@ const LXIChannelLayout: React.FC<LXIChannelLayoutPropsType> = (props) => {
}, [query]) }, [query])
const fetchShopInfo = (memberId) => { const fetchShopInfo = (memberId) => {
//@ts-ignore
PublicApi.getTemplateChannelFindChannel({ memberId }).then(res => { PublicApi.getTemplateChannelFindChannel({ memberId }).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
setShopInfo(res.data) setShopInfo(res.data)
...@@ -73,7 +73,7 @@ const LXIChannelLayout: React.FC<LXIChannelLayoutPropsType> = (props) => { ...@@ -73,7 +73,7 @@ const LXIChannelLayout: React.FC<LXIChannelLayoutPropsType> = (props) => {
} }
useEffect(() => { useEffect(() => {
let body = document.getElementsByTagName('body')[0]; const body = document.getElementsByTagName('body')[0];
if (shopInfo) { if (shopInfo) {
body.className = shopInfo.channelOwnShopTemplateFileName ? `theme-channel-${shopInfo.channelOwnShopTemplateFileName}` : templateName; body.className = shopInfo.channelOwnShopTemplateFileName ? `theme-channel-${shopInfo.channelOwnShopTemplateFileName}` : templateName;
} else { } else {
......
...@@ -32,7 +32,7 @@ const LXMallLayout: React.FC<LXMallLayoutPropsType> = (props) => { ...@@ -32,7 +32,7 @@ const LXMallLayout: React.FC<LXMallLayoutPropsType> = (props) => {
const [mallInfo, setMallInfo] = useState<any>({}) const [mallInfo, setMallInfo] = useState<any>({})
const getMenuRouter = (routes: any, pathname: any) => { const getMenuRouter = (routes: any, pathname: any) => {
let list = routes.filter((item: any) => pathname.indexOf(item.key) > -1) const list = routes.filter((item: any) => pathname.indexOf(item.key) > -1)
return list[0] || {} return list[0] || {}
} }
...@@ -50,12 +50,12 @@ const LXMallLayout: React.FC<LXMallLayoutPropsType> = (props) => { ...@@ -50,12 +50,12 @@ const LXMallLayout: React.FC<LXMallLayoutPropsType> = (props) => {
const getWebMallInfo = () => { const getWebMallInfo = () => {
const shopInfo = GlobalConfig.web.shopInfo const shopInfo = GlobalConfig.web.shopInfo
let webMallInfo = shopInfo.filter(item => item.environment === 1 && item.type === 1)[0] const webMallInfo = shopInfo.filter(item => item.environment === 1 && item.type === 1)[0]
setMallInfo(webMallInfo) setMallInfo(webMallInfo)
} }
useEffect(() => { useEffect(() => {
let body = document.getElementsByTagName('body')[0]; const body = document.getElementsByTagName('body')[0];
if (!isEmpty(mallTemplateInfo)) { if (!isEmpty(mallTemplateInfo)) {
body.className = mallTemplateInfo.fileName ? `theme-mall-${mallTemplateInfo.fileName}` : templateName; body.className = mallTemplateInfo.fileName ? `theme-mall-${mallTemplateInfo.fileName}` : templateName;
} else { } else {
......
...@@ -25,12 +25,13 @@ interface OrderPropsType { ...@@ -25,12 +25,13 @@ interface OrderPropsType {
mallInfo: any; mallInfo: any;
layoutType: LAYOUT_TYPE; layoutType: LAYOUT_TYPE;
shopUrlParam: string; shopUrlParam: string;
shopId: number;
} }
const Order: React.FC<OrderPropsType> = (props) => { const Order: React.FC<OrderPropsType> = (props) => {
let checkoutCount = 0 let checkoutCount = 0
const userInfo = getAuth() const userInfo = getAuth()
const { shopInfo, mallInfo, layoutType, shopUrlParam } = props const { shopInfo, mallInfo, layoutType, shopUrlParam, shopId } = props
const { query: { type = COMMODITY_TYPE.prompt } } = props.location const { query: { type = COMMODITY_TYPE.prompt } } = props.location
const [signModalVisible, setSignModalVisible] = useState<boolean>(false) const [signModalVisible, setSignModalVisible] = useState<boolean>(false)
const { spam_id } = props.location.query const { spam_id } = props.location.query
...@@ -266,6 +267,7 @@ const Order: React.FC<OrderPropsType> = (props) => { ...@@ -266,6 +267,7 @@ const Order: React.FC<OrderPropsType> = (props) => {
const params: any = { const params: any = {
orderModel: getOrderMode(), // 下单模式 orderModel: getOrderMode(), // 下单模式
needTheInvoice: needTheInvoice ? 1 : 0, needTheInvoice: needTheInvoice ? 1 : 0,
shopId
} }
if (orderInfo.logistics.deliveryType === 1 && !!selectAddressInfo) { if (orderInfo.logistics.deliveryType === 1 && !!selectAddressInfo) {
......
...@@ -16,5 +16,6 @@ ...@@ -16,5 +16,6 @@
font-weight: 500; font-weight: 500;
// color: #303133; // color: #303133;
display: inline-block; display: inline-block;
cursor: pointer;
} }
} }
\ No newline at end of file
...@@ -3,13 +3,11 @@ import { history } from 'umi'; ...@@ -3,13 +3,11 @@ import { history } from 'umi';
import { Card, List, Avatar } from 'antd'; import { Card, List, Avatar } from 'antd';
import styles from './index.less' import styles from './index.less'
import { PageHeaderWrapper } from '@ant-design/pro-layout'; import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { PlusOutlined } from '@ant-design/icons';
import StatusTag from '@/components/StatusTag'; import StatusTag from '@/components/StatusTag';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
import moment from 'moment'; import moment from 'moment';
import msg_system from '@/assets/imgs/msg_system.png' import msg_system from '@/assets/imgs/msg_system.png'
import msg_platform from '@/assets/imgs/msg_platform.png'; import msg_platform from '@/assets/imgs/msg_platform.png';
import cx from 'classnames';
const Message: React.FC<{}> = () => { const Message: React.FC<{}> = () => {
const [dataSource, setDataSource] = useState<any>([]) const [dataSource, setDataSource] = useState<any>([])
...@@ -17,7 +15,7 @@ const Message: React.FC<{}> = () => { ...@@ -17,7 +15,7 @@ const Message: React.FC<{}> = () => {
current: 1, current: 1,
pageSize: 10, pageSize: 10,
} }
useEffect(() => { useEffect(() => {
// @ts-ignore // @ts-ignore
...@@ -41,7 +39,6 @@ const Message: React.FC<{}> = () => { ...@@ -41,7 +39,6 @@ const Message: React.FC<{}> = () => {
} }
const handlePaginationChange = (page, pageSize) => { const handlePaginationChange = (page, pageSize) => {
console.log(page,pageSize);
getList({page, pageSize}) getList({page, pageSize})
.then((data) => { .then((data) => {
console.log(data); console.log(data);
...@@ -51,17 +48,20 @@ const Message: React.FC<{}> = () => { ...@@ -51,17 +48,20 @@ const Message: React.FC<{}> = () => {
const handleRead = (id, url: string) => { const handleRead = (id, url: string) => {
console.log(url); console.log(url);
// /report/message/member/read
PublicApi.getReportMessageMemberRead({id: id}) PublicApi.getReportMessageMemberRead({id: id})
.then((data) => { .then((data) => {
if(url) { if(url) {
history.push(url); if(/http/.test(url)) {
location.href = url
} else {
history.push(url);
}
} }
}) })
} }
const renderMessage = (data) => { const renderMessage = (data) => {
return ( return (
<> <>
<StatusTag type={data.type == 1 ? 'primary' : 'success'} title={data.type == 1 ? '系统消息': '平台消息'} /> <StatusTag type={data.type == 1 ? 'primary' : 'success'} title={data.type == 1 ? '系统消息': '平台消息'} />
...@@ -79,7 +79,7 @@ const Message: React.FC<{}> = () => { ...@@ -79,7 +79,7 @@ const Message: React.FC<{}> = () => {
<PageHeaderWrapper> <PageHeaderWrapper>
<Card <Card
title="消息列表" title="消息列表"
> >
<List <List
itemLayout="horizontal" itemLayout="horizontal"
dataSource={dataSource.data} dataSource={dataSource.data}
......
...@@ -138,6 +138,9 @@ class FilterStore { ...@@ -138,6 +138,9 @@ class FilterStore {
case FILTER_TYPE.category: case FILTER_TYPE.category:
tempFilterParam.categoryId = Number(filterItem.key[0]) tempFilterParam.categoryId = Number(filterItem.key[0])
break break
case FILTER_TYPE.customerCategory:
tempFilterParam.customerCategoryId = Number(filterItem.key[0])
break
case FILTER_TYPE.commodityType: case FILTER_TYPE.commodityType:
tempFilterParam.priceTypeList = [filterItem.key] tempFilterParam.priceTypeList = [filterItem.key]
break break
...@@ -202,6 +205,10 @@ class FilterStore { ...@@ -202,6 +205,10 @@ class FilterStore {
tempFilterParam.customerCategoryId = filterItem.key[0] tempFilterParam.customerCategoryId = filterItem.key[0]
tempFilterParam.customerCategoryName = filterItem.title tempFilterParam.customerCategoryName = filterItem.title
break break
case FILTER_TYPE.customerCategory:
tempFilterParam.customerCategoryId = filterItem.key[0]
tempFilterParam.customerCategoryName = filterItem.title
break
case FILTER_TYPE.brand: case FILTER_TYPE.brand:
tempFilterParam.brandId = filterItem.key tempFilterParam.brandId = filterItem.key
tempFilterParam.brandName = filterItem.title tempFilterParam.brandName = filterItem.title
......
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