Commit cac87ce8 authored by 武广's avatar 武广

feat: 添加外卖商品列表逻辑

parent 45a70a0a
import React, { useState } from 'react'; import React, { useState } from 'react';
import { Form, Select, Modal, Table, Input, Button, Pagination } from 'antd'; import { Form, Select, Modal, Table, Input, Button, Pagination } from 'antd';
import { SearchOutlined } from '@ant-design/icons'; import { SearchOutlined } from '@ant-design/icons';
import { apiTakeawayList } from '../service/api'; import { apiTakeawayList } from '../service';
import { SelectGoodsColumn } from '../staticData/goods'; import { SelectGoodsColumn } from '../staticData/goods';
import style from '../style/index.less'; import style from '../style/index.less';
......
import request from '@/utils/request';
import config from '@/../config/env.config';
// import qs from 'qs';
const { kdspApi, goodsApi } = config;
/**
* 获取企业外卖商品列表
* http://yapi.quantgroups.com/project/389/interface/api/64794
*/
export async function apiTakeawayList(param) {
return request.post('/v1/channels/products/pick/b/pageList', {
data: param,
prefix: goodsApi,
});
}
import { apiEnterpriseList } from './index';
// 获取企业列表
export const getEnterpriseList = async (name = '') => {
const res = await apiEnterpriseList({ name });
return {
id: res[res.length - 1].id,
list: res.map(item => ({
[item.id]: { text: item.name },
})),
};
};
import request from '@/utils/request';
import config from '@/../config/env.config';
const { kdspApi, goodsApi } = config;
/**
* 获取企业外卖商品列表
* http://yapi.quantgroups.com/project/389/interface/api/64794
*/
export async function apiTakeawayList(param) {
return request.post('/api/consoles/product/enterprise/main/pageList', {
data: param,
prefix: goodsApi,
});
}
/**
* 模糊查询店铺列表
* http://yapi.quantgroups.com/project/389/interface/api/65289
*/
export async function apiEnterpriseList(param) {
return request.post('/api/consoles/shops/getListByName', {
data: param,
prefix: goodsApi,
});
}
/**
* 企业团餐-查询餐段配置
* http://yapi.quantgroups.com/project/389/interface/api/65444
*/
export async function apiMealTimePeriod(param) {
return request.post('/api/consoles/product/enterprise/getMealTimePeriod', {
data: param,
prefix: goodsApi,
});
}
/**
* 企业团餐->信息修改
* http://yapi.quantgroups.com/project/389/interface/api/65099
*/
export async function apiMealInfoUpdate(param) {
return request.post('/api/consoles/product/enterprise/main/update', {
data: param,
prefix: goodsApi,
});
}
/**
* 企业团餐->删除
* http://yapi.quantgroups.com/project/389/interface/api/65109
*/
export async function apiMealInfoDel(param) {
return request.post('/api/consoles/product/enterprise/main/deleteById', {
data: param,
prefix: goodsApi,
});
}
/**
* 企业团餐->根据企业ID查询已选择自提点
* http://yapi.quantgroups.com/project/389/interface/api/65449
*/
export async function apiSelPickSelfList(param) {
return request.post('/api/consoles/product/enterprise/queryByEnterpriseId', {
data: param,
prefix: goodsApi,
});
}
/**
* 企业团餐->查询商品 - 选择商品弹窗
* http://yapi.quantgroups.com/project/389/interface/api/65479
*/
export async function apiSelGoodsList(param) {
return request.post('/api/consoles/product/enterprise/sku/page', {
data: param,
prefix: goodsApi,
});
}
/**
* 企业团餐->添加商品保存
* http://yapi.quantgroups.com/project/389/interface/api/65094
*/
export async function apiSaveGoodsList(param) {
return request.post('/api/consoles/product/enterprise/add', {
data: param,
prefix: goodsApi,
});
}
...@@ -27,13 +27,13 @@ export const weekOptions = { ...@@ -27,13 +27,13 @@ export const weekOptions = {
}; };
export const takeawayGoodsColumn = options => { export const takeawayGoodsColumn = options => {
const { onDel, companyEnum, shopEnum, onChangeFlag, setVisibleSaleDate } = options; const { onDel, companyEnum, shopEnum, onChangeFlag, setVisibleSaleDate, enterprises } = options;
return [ return [
{ {
title: '企业名称', title: '企业名称',
dataIndex: 'enterpriseId', dataIndex: 'enterpriseId',
hideInTable: true, hideInTable: true,
valueEnum: {}, // companyEnum, valueEnum: enterprises, // companyEnum,
}, },
{ {
title: '微店名称', title: '微店名称',
......
import React, { useState, useRef } from 'react'; import React, { useState, useEffect, useRef } from 'react';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import { ProTable } from '@ant-design/pro-components'; import { ProTable } from '@ant-design/pro-components';
import { Button, Space } from 'antd'; import { Button, Space } from 'antd';
import { PlusOutlined } from '@ant-design/icons'; import { PlusOutlined } from '@ant-design/icons';
import { takeawayGoodsColumn } from './staticData/goods'; import { takeawayGoodsColumn } from './staticData/goods';
import utilStyle from '@/utils/utils.less'; import utilStyle from '@/utils/utils.less';
import { apiTakeawayList } from './service/api'; import { apiTakeawayList } from './service';
import { getEnterpriseList } from './service/bll';
import SaleDateModal from './components/SaleDateModal'; import SaleDateModal from './components/SaleDateModal';
import SaleSectionModal from './components/SaleSectionModal'; import SaleSectionModal from './components/SaleSectionModal';
import GoodPriceModal from './components/GoodPriceModal'; import GoodPriceModal from './components/GoodPriceModal';
...@@ -14,19 +15,22 @@ import { getToUrlQuery } from '@/utils/utils'; ...@@ -14,19 +15,22 @@ import { getToUrlQuery } from '@/utils/utils';
const BusinessCustomer = () => { const BusinessCustomer = () => {
const history = useHistory(); const history = useHistory();
const refTable = useRef();
const [pageLoading, setPageLoading] = useState(false); // 可售日期弹窗
const [visibleSaleDate, setVisibleSaleDate] = useState(false); // 可售日期弹窗 const [visibleSaleDate, setVisibleSaleDate] = useState(false); // 可售日期弹窗
const [visibleSaleSection, setVisibleSaleSection] = useState(false); // 可售餐段弹窗 const [visibleSaleSection, setVisibleSaleSection] = useState(false); // 可售餐段弹窗
const [visiblePrice, setVisiblePrice] = useState(false); // 修改企业商品价格弹窗 const [visiblePrice, setVisiblePrice] = useState(false); // 修改企业商品价格弹窗
const [visibleSort, setVisibleSort] = useState(false); // 商品排序弹窗 const [visibleSort, setVisibleSort] = useState(false); // 商品排序弹窗
const [visibleGoods, setVisibleGoods] = useState(false); // 添加外卖商品弹窗 const [enterprises, setEnterprises] = useState([]); // 企业列表
const [activeKey, setActiveKey] = useState('tab1'); const [activeKey, setActiveKey] = useState('tab1');
const [enterpriseId, setEnterpriseId] = useState('10');
const searchList = async params => { const searchList = async params => {
const data = { const data = {
page: params.current, page: params.current,
size: params.pageSize, size: params.pageSize,
data: params, data: params,
}; };
// return apiTakeawayList(data); return apiTakeawayList(data);
}; };
const onDel = async () => {}; const onDel = async () => {};
const onAdd = async () => { const onAdd = async () => {
...@@ -41,56 +45,75 @@ const BusinessCustomer = () => { ...@@ -41,56 +45,75 @@ const BusinessCustomer = () => {
setVisibleSaleSection, setVisibleSaleSection,
setVisiblePrice, setVisiblePrice,
setVisibleSort, setVisibleSort,
setVisibleGoods,
onDel, onDel,
enterprises,
}; };
// 获取企业列表
const getList = async name => {
const obj = getEnterpriseList(name);
setEnterprises(obj.list);
setEnterpriseId(obj.id);
setPageLoading(true);
};
useEffect(() => {
getList('');
// setTimeout(() => {
// // refTable.current.reload();
// }, 1000);
}, []);
return ( return (
<div> <div>
<ProTable {pageLoading && (
search={{ <ProTable
span: 6, search={{
className: utilStyle.formSearch, span: 6,
collapsed: false, className: utilStyle.formSearch,
collapseRender: () => null, collapsed: false,
}} collapseRender: () => null,
tableClassName={utilStyle.formTable} }}
columns={takeawayGoodsColumn(options)} actionRef={refTable}
request={params => searchList({ ...params })} tableClassName={utilStyle.formTable}
rowKey={r => r.id} columns={takeawayGoodsColumn(options)}
expandIconColumnIndex={10} request={params => searchList({ ...params })}
bordered rowKey={r => r.id}
options={false} expandIconColumnIndex={10}
toolbar={{ bordered
menu: { options={false}
type: 'tab', form={{ initialValues: { enterpriseId } }}
activeKey, toolbar={{
items: [ menu: {
{ type: 'tab',
key: 'tab1', activeKey,
label: <span>取餐点1</span>, items: [
}, {
{ key: 'tab1',
key: 'tab2', label: <span>取餐点1</span>,
label: <span>取餐点2</span>, },
}, {
{ key: 'tab2',
key: 'tab3', label: <span>取餐点2</span>,
label: <span>取餐点3</span>, },
{
key: 'tab3',
label: <span>取餐点3</span>,
},
],
onChange: key => {
setActiveKey(key);
}, },
],
onChange: key => {
setActiveKey(key);
}, },
}, actions: [
actions: [ <Button key="1" icon={<PlusOutlined />} type="primary" onClick={onAdd}>
<Button key="1" icon={<PlusOutlined />} type="primary" onClick={onAdd}> 添加外卖商品
添加外卖商品 </Button>,
</Button>, ],
], }}
}} scroll={{ x: '100%', y: 400 }}
scroll={{ x: '100%', y: 400 }} />
/> )}
{/* 可售日期弹窗 */} {/* 可售日期弹窗 */}
{visibleSaleDate && ( {visibleSaleDate && (
<SaleDateModal visible={visibleSaleDate} handleClose={() => setVisibleSaleDate(false)} /> <SaleDateModal visible={visibleSaleDate} handleClose={() => setVisibleSaleDate(false)} />
......
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