Commit 9dd58334 authored by Bill's avatar Bill

Merge branch 'dev-srm' of 10.0.0.22:lingxi/lingxi-business-system into dev-srm

parents 9eeacd60 0038ece8
......@@ -31,6 +31,7 @@
// import exchangeManageRoutes from './exchangeManageRoute'; // 换货申请单管理
// import returnManageRoute from './returnManageRoute'; // 退货申请单管理
// import repairManageRoute from './repairManageRoute'; // 维修申请单管理
import purchaseBidRoute from './purchaseBidRoute'; // 采购竞价单审核
//@ts-ignore
import asyncRoutes from '../router.config.json'
......@@ -102,6 +103,7 @@ const router = [
// },
// ...routeList,
...asyncRoutes,
// purchaseBidRoute,
{
path: '/noAuth',
hidePageHeader: true,
......
// 采购竞价单审核
const router = {
path: '/purchaseBid/demand',
name: '采购竞价单审核',
routes: [
{
// 采购竞价单查询
path: '/purchaseBid/demand/search',
name: '采购竞价单查询',
hidePageHeader: true,
component: '@/pages/purchaseAbility/purchaseBid/search',
},
// {
// // 采购竞价单详情
// path: '/purchaseBid/demand/search/preview',
// name: '采购竞价单详情',
// component: '@/pages/purchaseAbility/purchaseBid/detail',
// hidePageHeader: true,
// hideInMenu: true,
// noMargin: true,
// },
{
// 待审核采购竞价单
path: '/purchaseBid/demand/examineSearch',
name: '待审核采购竞价单查询',
hidePageHeader: true,
component: '@/pages/purchaseAbility/purchaseBid/examineSearch',
},
// {
// // 采购竞价单详情 审核
// path: '/purchaseBid/demand/examineSearch/detail',
// name: '待审核采购竞价单详情',
// component: '@/pages/purchaseAbility/purchaseBid/detail',
// hidePageHeader: true,
// hideInMenu: true,
// noMargin: true,
// },
// {
// // 采购竞价单详情
// path: '/purchaseBid/demand/examineSearch/preview',
// name: '待审核采购竞价单详情',
// component: '@/pages/purchaseAbility/purchaseBid/detail',
// hidePageHeader: true,
// hideInMenu: true,
// noMargin: true,
// },
]
}
export default router
\ No newline at end of file
......@@ -41,7 +41,7 @@ const callForBidsSearch: React.FC<{}> = () => {
useStateFilterSearchLinkageEffect(
$,
actions,
'code',
'inviteTenderCode',
FORM_FILTER_PATH,
);
},
......
......@@ -13,14 +13,14 @@ export const useSelfTable = () => {
const callForBidColumns: any[] = [
{
title: '序号',
align: 'center',
align: 'left',
dataIndex: 'id',
key: 'id',
render: (text, record, index) => index + 1
},
{
title: '招标编号/项目',
align: 'center',
align: 'left',
dataIndex: 'code',
key: 'code',
render: (text, record) => <>
......@@ -32,21 +32,21 @@ export const useSelfTable = () => {
},
{
title: '采购类型',
align: 'center',
align: 'left',
dataIndex: 'purchaseType',
key: 'purchaseType',
render: (t) => PURCHASE_TYPE[t]
},
{
title: '招标方式',
align: 'center',
align: 'left',
dataIndex: 'inviteTenderType',
key: 'inviteTenderType',
render: (t) => CALLFORBID_TYPE[t]
},
{
title: '发布时间',
align: 'center',
align: 'left',
dataIndex: 'createTime',
key: 'createTime',
render: (text, record) => formatTimeString(record.createTime),
......@@ -54,7 +54,7 @@ export const useSelfTable = () => {
},
{
title: '报名开始/截止时间',
align: 'center',
align: 'left',
dataIndex: 'registerStartTime',
key: 'registerStartTime',
render: (text, record) => <>
......@@ -65,7 +65,7 @@ export const useSelfTable = () => {
},
{
title: '资格预审开始/截止时间',
align: 'center',
align: 'left',
dataIndex: 'checkStartTime',
key: 'checkStartTime',
render: (text, record) => <>
......@@ -76,7 +76,7 @@ export const useSelfTable = () => {
},
{
title: '投标开始/截止时间',
align: 'center',
align: 'left',
dataIndex: 'inviteTenderStartTime',
key: 'inviteTenderStartTime',
render: (text, record) => <>
......@@ -87,14 +87,14 @@ export const useSelfTable = () => {
},
{
title: '外部状态',
align: 'center',
align: 'left',
dataIndex: 'tenderOutStatus',
key: 'tenderOutStatus',
render: text => <CustomTag status={text} type='out' />
},
// {
// title: '内部状态',
// align: 'center',
// align: 'left',
// dataIndex: 'inviteTenderInStatus',
// key: 'inviteTenderInStatus',
// render: (text) => <CustomBadge status={text} type='inside' />
......
......@@ -8,7 +8,7 @@ import { BidInStateTexts, BidOutStateTexts } from '@/constants';
export const tableListSchema: ISchema = {
type: 'object',
properties: {
code: {
inviteTenderCode: {
type: 'string',
"x-component": 'SearchFilter',
'x-component-props': {
......
......@@ -50,7 +50,7 @@ export const remarkProcessStatus = [
export const baseBidListColumns: any[] = [
{
title: '招标编号/项目',
align: 'center',
align: 'left',
dataIndex: 'code',
key: 'code',
render: (text, record) => <>
......@@ -62,7 +62,7 @@ export const baseBidListColumns: any[] = [
},
{
title: '采购类型',
align: 'center',
align: 'left',
dataIndex: 'purchaseType',
key: 'purchaseType',
render: (t) => PURCHASE_TYPE[t]
......@@ -76,7 +76,7 @@ export const baseBidListColumns: any[] = [
},
{
title: '发布时间',
align: 'center',
align: 'left',
dataIndex: 'createTime',
key: 'createTime',
render: (text, record) => formatTimeString(record.createTime),
......@@ -84,25 +84,25 @@ export const baseBidListColumns: any[] = [
},
{
title: '投标开始/截止时间',
align: 'center',
dataIndex: 'createTime',
key: 'createTime',
align: 'left',
dataIndex: 'inviteTenderStartTime',
key: 'inviteTenderStartTime',
render: (text, record) => <>
<div><PlayCircleOutlined />&nbsp;{formatTimeString(record.createTime)}</div>
<div><PoweroffOutlined />&nbsp;{formatTimeString(record.createTime)}</div>
<div><PlayCircleOutlined />&nbsp;{formatTimeString(text)}</div>
<div><PoweroffOutlined />&nbsp;{formatTimeString(record.inviteTenderEndTime)}</div>
</>,
width: 200
},
{
title: '外部状态',
align: 'center',
align: 'left',
dataIndex: 'tenderOutStatus',
key: 'tenderOutStatus',
render: text => <CustomTag status={text} type='out' />
},
// {
// title: '内部状态',
// align: 'center',
// align: 'left',
// dataIndex: 'inviteTenderInStatus',
// key: 'inviteTenderInStatus',
// render: (text) => <CustomBadge status={text} type='inside' />
......@@ -113,7 +113,7 @@ export const baseBidListColumns: any[] = [
export const baseTenderListColumns: any[] = [
{
title: '投标编号/项目',
align: 'center',
align: 'left',
dataIndex: 'orderNo',
key: 'orderNo',
render: (text, record) => <>
......@@ -125,7 +125,7 @@ export const baseTenderListColumns: any[] = [
},
{
title: '招标编号/会员',
align: 'center',
align: 'left',
dataIndex: 'orderNo',
key: 'orderNo',
render: (text, record) => <>
......@@ -137,7 +137,7 @@ export const baseTenderListColumns: any[] = [
},
{
title: '投标开始/截止时间',
align: 'center',
align: 'left',
dataIndex: 'createTime',
key: 'createTime',
render: (text, record) => <>
......@@ -148,14 +148,14 @@ export const baseTenderListColumns: any[] = [
},
{
title: '外部状态',
align: 'center',
align: 'left',
dataIndex: 'tenderOutStatus',
key: 'tenderOutStatus',
render: text => <CustomTag status={text} type='out' />
},
{
title: '内部状态',
align: 'center',
align: 'left',
dataIndex: 'inviteTenderInStatus',
key: 'inviteTenderInStatus',
render: (text) => <CustomBadge status={text} type='inside' />
......
......@@ -54,47 +54,47 @@ const FirstCheckedBid:React.FC<FirstCheckedBidProps> = (props) => {
}
}
return <Card>
<StandardTable
fetchTableData={params => fetchTableData(params)}
rowSelection={rowSelection}
columns={columns}
currentRef={ref}
rowKey={'id'}
formilyLayouts={{
justify: 'space-between'
}}
formilyProps={{
ctx: {
inline: false,
schema: tableListSchema,
effects: ($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'code',
FORM_FILTER_PATH,
);
},
components: {
DateRangePickerUnix,
Submit
}
<StandardTable
fetchTableData={params => fetchTableData(params)}
rowSelection={rowSelection}
columns={columns}
currentRef={ref}
rowKey={'id'}
formilyLayouts={{
justify: 'space-between'
}}
formilyProps={{
ctx: {
inline: false,
schema: tableListSchema,
effects: ($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'inviteTenderCode',
FORM_FILTER_PATH,
);
},
layouts: {
order: 2,
span: 24
components: {
DateRangePickerUnix,
Submit
}
}}
formilyChilds={{
children: <Space>
<Button onClick={handleSubmitBatch} loading={loading}>批量审核通过</Button>
</Space>,
layouts: {
span: 8
}
}}
/>
</Card>
},
layouts: {
order: 2,
span: 16
}
}}
formilyChilds={{
children: <Space>
<Button onClick={handleSubmitBatch} loading={loading}>批量审核通过</Button>
</Space>,
layouts: {
span: 8
}
}}
/>
</Card>
}
FirstCheckedBid.defaultProps = {}
......
......@@ -18,7 +18,7 @@ export const useSelfTable = () => {
const secondColumns: any[] = baseBidListColumns.concat([
{
title: '操作',
align: 'center',
align: 'left',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <Button type='link' onClick={() => handleSubmit(record)}>审核</Button>
......
......@@ -7,7 +7,7 @@ import { FORM_FILTER_PATH } from '@/formSchema/const';
export const tableListSchema: ISchema = {
type: 'object',
properties: {
code: {
inviteTenderCode: {
type: 'string',
"x-component": 'SearchFilter',
'x-component-props': {
......
......@@ -40,7 +40,7 @@ const TenderSearch: React.FC<{}> = () => {
useStateFilterSearchLinkageEffect(
$,
actions,
'code',
'inviteTenderCode',
FORM_FILTER_PATH,
);
},
......
......@@ -10,14 +10,14 @@ export const useSelfTable = () => {
const callForBidColumns: any[] = [
{
title: '序号',
align: 'center',
align: 'left',
dataIndex: 'id',
key: 'id',
render: (text, record, index) => index + 1
},
{
title: '招标编号/项目',
align: 'center',
align: 'left',
dataIndex: 'memberId',
key: 'memberId',
render: (text, record) => <>
......@@ -29,7 +29,7 @@ export const useSelfTable = () => {
},
{
title: '投标编号/会员',
align: 'center',
align: 'left',
dataIndex: 'code',
key: 'code',
render: (text, record) => <>
......@@ -41,7 +41,7 @@ export const useSelfTable = () => {
},
{
title: '投标时间',
align: 'center',
align: 'left',
dataIndex: 'inviteTender',
key: 'inviteTender',
render: (text, record) => formatTimeString(record.inviteTender.inviteTenderStartTime),
......@@ -49,7 +49,7 @@ export const useSelfTable = () => {
},
{
title: '开标时间',
align: 'center',
align: 'left',
dataIndex: 'inviteTender',
key: 'inviteTender',
render: (text, record) => formatTimeString(record.inviteTender.openTenderTime),
......@@ -57,21 +57,21 @@ export const useSelfTable = () => {
},
{
title: '是否中标',
align: 'center',
align: 'left',
dataIndex: 'isWin',
key: 'isWin',
render: (text) => text ? '是' : '否'
},
{
title: '外部状态',
align: 'center',
align: 'left',
dataIndex: 'inviteTender',
key: 'inviteTender',
render: (text, record) => <CustomTag status={record.inviteTender.tenderOutStatus} type='out' />
},
// {
// title: '内部状态',
// align: 'center',
// align: 'left',
// dataIndex: 'interiorState',
// key: 'interiorState',
// render: (text) => <CustomBadge status={text} type='inside' />
......
......@@ -8,7 +8,7 @@ import { BidOutStateTexts } from '@/constants';
export const tableListSchema: ISchema = {
type: 'object',
properties: {
code: {
inviteTenderCode: {
type: 'string',
"x-component": 'SearchFilter',
'x-component-props': {
......@@ -35,7 +35,7 @@ export const tableListSchema: ISchema = {
placeholder: '请输入投标项目',
}
},
tenderCode: {
submitTenderCode: {
type: 'string',
'x-component-props': {
placeholder: '请输入投标编号',
......@@ -49,7 +49,7 @@ export const tableListSchema: ISchema = {
showTime: true,
},
},
memberName: {
inviteTenderMemberName: {
type: 'string',
'x-component-props': {
placeholder: '请输入投标会员',
......
......@@ -8,6 +8,10 @@ import NiceForm from '@/components/NiceForm';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { searchSelectGetSelectCategoryOptionEffect } from '@/pages/systemManage/effect';
import { useLinkageUtils } from '@/utils/formEffectUtils';
const { onFormMount$ } = FormEffectHooks
import {
PurchaseDemandSchema,
PurchaseDemandPublicSchema,
......@@ -21,6 +25,11 @@ import {
CONFIRMOFFERAUDIT_SCHEMA,
} from '../../schema';
import {
PurchaseBidSearchSchema,
PurchaseBidExamineSearchSchema
} from '../../schema/purchaseBid';
interface Iprops {
fetch?: () => Promise<unknown>,
fetchRowkeys?(e: any),
......@@ -35,11 +44,15 @@ interface Iprops {
'OFFERSERAHAUDIT_SCHEMA' |
'CONFIRMOFFERSERAH_SCHEMA' |
'CONFIRMOFFERSUBMITAPRICE_SCHEMA' |
'CONFIRMOFFERAUDIT_SCHEMA',
'CONFIRMOFFERAUDIT_SCHEMA' |
'PurchaseBidSearchSchema' |
'PurchaseBidExamineSearchSchema'
columns: ColumnType<any>[],
effects?: string,
selectedRow?: boolean,
reload?: any,
externalStatusFetch?: Promise<unknown>,
interiorStatusFetch?: Promise<unknown>,
}
const formActions = createFormActions();
const Table: React.FC<Iprops> = (props: any) => {
......@@ -51,7 +64,9 @@ const Table: React.FC<Iprops> = (props: any) => {
controllerBtns,
selectedRow,
reload,
fetchRowkeys
fetchRowkeys,
externalStatusFetch,
interiorStatusFetch
} = props;
const tableRef = useRef<any>({});
/** Schema */
......@@ -77,6 +92,10 @@ const Table: React.FC<Iprops> = (props: any) => {
return CONFIRMOFFERSUBMITAPRICE_SCHEMA;
case 'CONFIRMOFFERAUDIT_SCHEMA':
return CONFIRMOFFERAUDIT_SCHEMA;
case 'PurchaseBidSearchSchema':
return PurchaseBidSearchSchema
case 'PurchaseBidExamineSearchSchema':
return PurchaseBidExamineSearchSchema
}
}
/** 列表数据 */
......@@ -109,6 +128,21 @@ const Table: React.FC<Iprops> = (props: any) => {
tableRef.current.reload(values)
}
const useBusinessEffects = () => {
const linkage = useLinkageUtils();
onFormMount$().subscribe(() => {
externalStatusFetch && externalStatusFetch().then(res => {
const _enum = res.data.map((item) => {return { label: item.name, value: item.satatus }})
linkage.enum('externalState',_enum)
})
interiorStatusFetch && interiorStatusFetch().then(res => {
const _enum = res.data.map((item) => {return { label: item.name, value: item.satatus }})
linkage.enum('interiorState',_enum)
})
})
}
return (
<PageHeaderWrapper>
<Card>
......@@ -128,6 +162,7 @@ const Table: React.FC<Iprops> = (props: any) => {
FormEffectHooks.onFieldChange$('category').subscribe(state => {
searchSelectGetSelectCategoryOptionEffect(actions, 'category')
})
useBusinessEffects();
}}
schema={
schemaType && SchemaRender()
......
import React, { useRef,useState } from 'react';
import { history, Link } from 'umi';
import { Tag, Typography, Space, Row, Col, Button } from 'antd';
import { ColumnType } from 'antd/lib/table/interface';
import { PlayCircleOutlined, PoweroffOutlined } from '@ant-design/icons'
import EyePreview from '@/components/EyePreview';
import { formatTimeString } from '@/utils'
import { PublicApi } from '@/services/api';
import Table from '../../components/table';
import {
OFFTER_EXTERNALSTATE,
OFFTER_EXTERNALSTATE_COLOR,
} from '../../constants';
const { Text } = Typography;
const ExamineSearch = () => {
const ref = useRef<any>({});
const [rowkeys, setRowKeys] = useState<Array<number>>([]);
const columns: ColumnType<any>[] = [{
title: '竞价单号/摘要',
key: 'biddingNo',
dataIndex: 'biddingNo',
render: (text: any, record: any) => (
<Space direction='vertical'>
<EyePreview
url={`/purchase/demand/demandInquiry/preview?id=${record.id}&number=${record.biddingNo}`}>{text}</EyePreview>
<Text type="secondary">{record.details}</Text>
</Space>
)
}, {
title: '采购会员',
key: 'memberName',
dataIndex: 'memberName',
}, {
title: '竞价开始/结束时间',
key: 'biddingStartTime',
dataIndex: 'biddingStartTime',
render: (text: any, record: any) => <>
<div><PlayCircleOutlined />&nbsp;{formatTimeString(record.biddingStartTime)}</div>
<div><PoweroffOutlined />&nbsp;{formatTimeString(record.biddingEndTime)}</div>
</>,
width: 180
}, {
title: '单据时间',
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => formatTimeString(text),
width: 180
}, {
title: '外部状态',
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <Tag color={OFFTER_EXTERNALSTATE_COLOR[text]}>{record.externalStateName}</Tag>
}, {
title: '操作',
key: 'operate',
dataIndex: 'operate',
render: (text: any, record: any) => (
<Link to={`/purchaseBid/demand/examineSearch/detail?id=${record.id}&number=${record.biddingNo}`}>审核</Link>
)
}];
/** 批量审核 */
const fetchSubmitBatch = async (id?: number) => {
let res = null;
if (id) {
res = await PublicApi.postPurchaseBiddingPlatformExamine({ id, state: 1 });
} else {
res = await PublicApi.postPurchaseBiddingPlatformExamineBatch({ ids: rowkeys });
}
if (res.code === 1000) {
ref.current.reload();
setRowKeys([])
}
}
return (
<>
<Table
selectedRow
fetchRowkeys={(e) => setRowKeys(e)}
schemaType='PurchaseBidExamineSearchSchema'
columns={columns}
effects='biddingNo'
fetch={PublicApi.getPurchaseBiddingPlatformExamineList}
reload={ref}
controllerBtns={
<Row>
<Col span={24}>
<Space size={16}>
<Button
onClick={() => fetchSubmitBatch()}
disabled={rowkeys.length === 0}
>
批量审核通过
</Button>
</Space>
</Col>
</Row>
}
/>
</>
)
}
export default ExamineSearch
import React, { useRef } from 'react';
import { Tag, Typography, Space } from 'antd';
import { ColumnType } from 'antd/lib/table/interface';
import { PlayCircleOutlined, PoweroffOutlined } from '@ant-design/icons'
import EyePreview from '@/components/EyePreview';
import { formatTimeString } from '@/utils'
import { PublicApi } from '@/services/api';
import Table from '../../components/table';
import {
OFFTER_EXTERNALSTATE,
OFFTER_EXTERNALSTATE_COLOR,
} from '../../constants';
const { Text } = Typography;
const Search = () => {
const ref = useRef<any>({});
const columns: ColumnType<any>[] = [{
title: '竞价单号/摘要',
key: 'biddingNo',
dataIndex: 'biddingNo',
render: (text: any, record: any) => (
<Space direction='vertical'>
<EyePreview
url={`/purchase/demand/demandInquiry/preview?id=${record.id}&number=${record.biddingNo}`}>{text}</EyePreview>
<Text type="secondary">{record.details}</Text>
</Space>
)
}, {
title: '采购会员',
key: 'memberName',
dataIndex: 'memberName',
}, {
title: '竞价开始/结束时间',
key: 'biddingStartTime',
dataIndex: 'biddingStartTime',
render: (text: any, record: any) => <>
<div><PlayCircleOutlined />&nbsp;{formatTimeString(record.biddingStartTime)}</div>
<div><PoweroffOutlined />&nbsp;{formatTimeString(record.biddingEndTime)}</div>
</>,
width: 180
}, {
title: '单据时间',
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => formatTimeString(text),
width: 180
}, {
title: '外部状态',
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <Tag color={OFFTER_EXTERNALSTATE_COLOR[text]}>{record.externalStateName}</Tag>
}];
return (
<>
<Table
schemaType='PurchaseBidSearchSchema'
columns={columns}
effects='biddingNo'
fetch={PublicApi.getPurchaseBiddingPlatformList}
reload={ref}
externalStatusFetch={PublicApi.getPurchaseBiddingExternalStatus}
/>
</>
)
}
export default Search
import { ISchema } from '@formily/antd'
import { FORM_FILTER_PATH } from '@/formSchema/const'
/** 采购竞价单查询 */
export const PurchaseBidSearchSchema: ISchema = {
type: 'object',
properties: {
megalayout: {
type: 'object',
"x-component": 'mega-layout',
properties: {
biddingNo: {
type: 'string',
"x-component": "Search",
"x-mega-props": {
},
"x-component-props": {
placeholder: '竞价单号',
align: 'flex-left',
}
}
}
},
[FORM_FILTER_PATH]: {
type: 'object',
"x-component": "flex-layout",
"x-component-props": {
rowStyle: {
justifyContent: 'flex-start',
flexWrap: 'nowrap'
},
colStyle: {//改变间隔
marginRight: 20
}
},
properties: {
PRO_LAYOUT: {
type: 'object',
"x-component": 'mega-layout',
"x-mega-props": {
span: 5
},
"x-component-props": {
inline: true
},
properties: {
"[startTime,endTime]": {
type: 'string',
"x-component": "dateSelect",
"x-component-props": {
placeholder: '单据时间(全部)',
}
},
memberName: {
type: 'string',
"x-component-props": {
placeholder: '采购会员'
}
},
externalState: {
type: 'string',
"x-component-props": {
placeholder: '外部状态'
},
enum: []
},
}
},
sumbit: {
"x-component": 'Submit',
"x-mega-props": {
span: 1
},
"x-component-props": {
children: '查询'
}
}
}
}
}
}
/** 采购竞价单查询 */
export const PurchaseBidExamineSearchSchema: ISchema = {
type: 'object',
properties: {
megalayout: {
type: 'object',
"x-component": 'mega-layout',
"x-component-props": {
grid: true
},
properties: {
ctl: {
type: 'object',
"x-component": "Children",
"x-component-props": {
children: "{{controllerBtns}}"
}
},
biddingNo: {
type: 'string',
"x-component": "Search",
"x-mega-props": {
},
"x-component-props": {
placeholder: '竞价单号',
}
}
}
},
[FORM_FILTER_PATH]: {
type: 'object',
"x-component": "flex-layout",
"x-component-props": {
rowStyle: {
justifyContent: 'flex-start',
flexWrap: 'nowrap'
},
colStyle: {//改变间隔
marginRight: 20
}
},
properties: {
PRO_LAYOUT: {
type: 'object',
"x-component": 'mega-layout',
"x-mega-props": {
span: 5
},
"x-component-props": {
inline: true
},
properties: {
"[startTime,endTime]": {
type: 'string',
"x-component": "dateSelect",
"x-component-props": {
placeholder: '单据时间(全部)',
}
},
memberName: {
type: 'string',
"x-component-props": {
placeholder: '采购会员'
}
},
}
},
sumbit: {
"x-component": 'Submit',
"x-mega-props": {
span: 1
},
"x-component-props": {
children: '查询'
}
}
}
}
}
}
\ No newline at end of file
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