Commit 4d563ba1 authored by Bill's avatar Bill

feat: 分离加工能力

parent 19e62fad
......@@ -13,7 +13,7 @@ import ChannelRoute from './channelRoute' // 渠道能力路由
// import PayandSettleRoute from './payandSettle' //支付与结算
// import AuthConfigRoute from './authConfigRoute'
// import AfterService from './afterServiceRoute' // 售后
// import HandlingRoute from './handlingRoute'; // 加工能力
import HandlingRoute from './handlingRoute'; // 加工能力
import asyncRoutes from '../router.config.json';
// import ProcurementRoute from './procurementRoute';
// import { callForBidsRoute } from './procurementRoute/callForBids';
......@@ -63,7 +63,6 @@ const memberCenterRoute = {
// name: 'home',
// icon: 'home',
// key: 'home',
// // component: '@/pages/index',
// component: '@/pages/home',
// },
// ShopRoute,
......@@ -77,6 +76,7 @@ const memberCenterRoute = {
//...
// AuthConfigRoute,
// MemberRoute,
// HandlingRoute,
...asyncRoutes,
{
path: '/memberCenter/noAuth',
......
import React, { useCallback, useRef } from 'react';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { Card } from 'antd';
import { querySchema } from '../../common/schemas/query';
import { StandardTable } from 'god';
import NiceForm from '@/components/NiceForm';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { useAsyncInitSelect } from '@/formSchema/effects/useAsyncInitSelect';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { useRowSelectionTable } from '@/hooks/useRowSelectionTable';
import { createFormActions } from '@formily/antd';
import { timeRange } from '@/utils';
import { queryColumns } from '../../common/columns/query';
import { PublicApi } from '@/services/api';
import useFetchData from '../../common/hooks/useFetchData';
import useFetchFilterData from '../../common/hooks/useFetchFilterData';
const formActions = createFormActions();
const AllQuery = () => {
const ref = useRef<any>({});
const { fetchListData, onFormatSearchData } = useFetchData()
const { filterRes, fetchSelectOptions} = useFetchFilterData()
const handleSearch = useCallback((values: any) => {
const searchData = onFormatSearchData(values)
ref.current.reload(searchData)
}, [ref])
return (
<PageHeaderWrapper
title={'生产通知单查询'}
>
<Card>
<StandardTable
tableProps={{
rowKey: 'id',
// rowSelection: selectRow
}}
columns={queryColumns}
currentRef={ref}
fetchTableData={(params: any) => fetchListData(PublicApi.getEnhanceSupplierAllList, params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={handleSearch}
effects={($, actions) => {
useStateFilterSearchLinkageEffect($, actions, 'noticeNo', FORM_FILTER_PATH);
useAsyncInitSelect(
['innerStatus', 'outerStatus'],
fetchSelectOptions,
);
}}
schema={querySchema}
/>
}
/>
</Card>
</PageHeaderWrapper>
)
}
export default AllQuery
import React from 'react';
import { ColumnsType } from 'antd/es/table';
import moment from 'moment';
import { Badge } from 'antd';
import EyePreview from '@/components/EyePreview';
export const queryColumns: ColumnsType<any> = [
{
title: '通知单号/摘要',
dataIndex: 'des',
render: (text, record) => {
return (
<div>
<EyePreview url={`http://www.baidu.com?id=${record.id}`}>{text}</EyePreview>
</div>
)
}
},
{
title: '加工企业名称',
dataIndex: "processName"
},
{
title: '单据时间',
dataIndex: 'createTime',
sorter: (a, b) => a.createTime - b.createTime,
render: (text, record) => moment(text).format('YYYY-MM-DD'),
},
{
title: '外部状态',
dataIndex: 'outerStatusName',
// render: (text, record: any) => {
// return <StatusTag title={text} type={SUPPLIER_OUTER_STATUS_COLOR[record.outerStatus]}></StatusTag>
// }
},
{
title: '内部状态',
dataIndex: 'innerStatusName',
render: (text, record: any) => {
return (
<Badge status={"success"} text={text}></Badge>
)
}
}
]
import { timeRange } from '@/utils';
import React, { useCallback, useMemo } from 'react';
interface ResponseDataType {
code: number,
message: string
}
function useFetchData() {
const fetchListData = useCallback(async <T, P>(fn: (postData: P, headers: { [key: string]: string }) => Promise<ResponseDataType & { data: T }>, params: P, headers?: { [key: string]: string }) => {
const { code, data, message } = await fn(params, headers);
if (code === 1000) {
return data;
}
return {
totalCount: 0,
data: [],
}
}, [])
const onFormatSearchData = useCallback(<Q,>(values: Q) => {
const { docTime, ...rest} = values as Q & { [key: string]: any };
const {st, et} = timeRange(docTime);
let searchData = {
...rest,
startTime: st,
endTime: et
}
return searchData
}, [])
return { fetchListData, onFormatSearchData }
}
export default useFetchData;
import { PublicApi } from '@/services/api';
import React, { useCallback, useState } from 'react';
type FilterResType = {
innerStatus: {label: string, value: number}[],
outerStatus: {label: string, value: number}[],
}
/**
* 获取列表页,搜索条件
* 暂时写死
*/
function useFetchFilterData() {
const [filterRes, setFilterRes] = useState<FilterResType>({
innerStatus: [],
outerStatus: [],
})
const fetchSelectOptions = useCallback(async () => {
const { data, code } = await PublicApi.getEnhanceSupplierAllOuterAndInner()
if(code === 1000) {
const res = {
innerStatus: data.innerList.map((item: any) => ({label: item.message, value: item.code})),
outerStatus: data.outerList.map((item: any) => ({label: item.message, value: item.code})),
}
setFilterRes(res);
return res;
}
return {
innerStatus: [],
outerStatus: [],
}
}, []);
return { fetchSelectOptions, filterRes}
}
export default useFetchFilterData;
import { FORM_FILTER_PATH } from "@/formSchema/const";
import { ISchema } from "@formily/antd";
/**
* 列表页schema,无创建按钮
*/
export const querySchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
type: 'object',
'x-component': 'mega-layout',
properties: {
noticeNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索通知单号',
align: 'flex-left',
tip: '输入通知单号进行搜索',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
grid: true,
full: true,
autoRow: true,
columns: 6,
},
properties: {
summary: {
type: 'string',
'x-component-props': {
placeholder: '通知单摘要',
allowClear: true,
},
},
processName: {
type: 'string',
'x-component-props': {
placeholder: '加工企业名',
allowClear: true,
},
},
docTime: {
type: 'string',
default: 0,
enum: docTime,
'x-component-props': {
placeholder: '单据时间(全部)',
allowClear: true,
},
},
outerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '外部状态(全部)',
allowClear: true,
},
},
innerStatus: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '内部状态(全部)',
allowClear: true,
},
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
span: 1,
},
'x-component-props': {
children: '查询',
},
},
},
},
},
},
},
};
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