Commit 6018a75e authored by 前端-许佳敏's avatar 前端-许佳敏
parents b7b6eacb 37945cb4
...@@ -36,7 +36,7 @@ export default defineConfig({ ...@@ -36,7 +36,7 @@ export default defineConfig({
'process.env.SOCKET_URL': process.env.SOCKET_URL 'process.env.SOCKET_URL': process.env.SOCKET_URL
}, },
esbuild: {}, esbuild: {},
// mfsu: {}, mfsu: {},
locale: { locale: {
antd: true, antd: true,
// 默认情况下,当前语言环境的识别按照:localStorage 中 umi_locale 值 > 浏览器检测 > default 设置的默认语言 > 中文 // 默认情况下,当前语言环境的识别按照:localStorage 中 umi_locale 值 > 浏览器检测 > default 设置的默认语言 > 中文
......
...@@ -103,7 +103,7 @@ module.exports = { ...@@ -103,7 +103,7 @@ module.exports = {
ssh: JSON.stringify({ ssh: JSON.stringify({
user: "root", user: "root",
// Password optional, prompted if none given // Password optional, prompted if none given
password: "123456", password: "SsyLingxi@test666",
host: "10.0.0.17", host: "10.0.0.17",
port: 22, port: 22,
localRoot: path.resolve('./dist/'), localRoot: path.resolve('./dist/'),
......
...@@ -8,14 +8,15 @@ import { history , useLocation, Link } from 'umi'; ...@@ -8,14 +8,15 @@ import { history , useLocation, Link } from 'umi';
import { BgColorsOutlined, CheckCircleOutlined, SaveOutlined } from '@ant-design/icons'; import { BgColorsOutlined, CheckCircleOutlined, SaveOutlined } from '@ant-design/icons';
import { FormEffectHooks, createFormActions, FormPath } from '@formily/antd'; import { FormEffectHooks, createFormActions, FormPath } from '@formily/antd';
import { useLinkageUtils } from '@/utils/formEffectUtils'; import { useLinkageUtils } from '@/utils/formEffectUtils';
import moment from 'moment'; import moment, { Moment } from 'moment';
import { usePageStatus } from '@/hooks/usePageStatus'; import { usePageStatus } from '@/hooks/usePageStatus';
import { GlobalConfig } from '@/global/config'; import { GlobalConfig } from '@/global/config';
import schema from './schema'; import schema from './schema';
import styles from './index.less'; import styles from './index.less';
import FormilyTemplateDrawer from '../components/TemplateDrawer/formilyTemplateDrawer'; import FormilyTemplateDrawer from '../components/TemplateDrawer/formilyTemplateDrawer';
import { getTemplateWebActivityPageGet, postTemplateWebActivityPageAdd, postTemplateWebActivityPageUpdate } from '@/services/TemplateV2Api'; import { getTemplateWebActivityPageGet, GetTemplateWebActivityPageGetResponse, postTemplateWebActivityPageAdd, postTemplateWebActivityPageUpdate } from '@/services/TemplateV2Api';
import { postManageWebShopWebAll } from '@/services/ManageV2Api'; import { postManageWebShopWebAll } from '@/services/ManageV2Api';
import { WEB } from '@/constants/const/environment';
const actions = createFormActions(); const actions = createFormActions();
...@@ -41,13 +42,29 @@ type SubmitType = { ...@@ -41,13 +42,29 @@ type SubmitType = {
} }
} }
type ValueDataType = Omit<GetTemplateWebActivityPageGetResponse, 'startTime' | 'endTime' | 'templateId' | 'templateName' | 'templatePicUrl'> & {
template: {
templateId: number,
templateName: string,
templatePicUrl: string,
}
startTime: Moment,
endTime: Moment
}
const WEB_FIXTURE_LINK = "/marketingManage/marketing/activitiesManagement/webFixtures"
const APP_FIXTURE_LINK = "/marketingManage/marketing/activitiesManagement/fixtures"
const Add = () => { const Add = () => {
const { id, } = usePageStatus(); const { id, } = usePageStatus();
const { pathname } = useLocation(); const { pathname } = useLocation();
const isEdit = useMemo(() => id !== '' && pathname.includes("edit"), [id]); const isEdit = useMemo(() => id !== '' && pathname.includes("edit"), [id]);
const isView = useMemo(() => id !== '' && pathname.includes("view"), [id]); const isView = useMemo(() => id !== '' && pathname.includes("view"), [id]);
const [initialValue, setInitialValue] = useState<any>(null); const [initialValue, setInitialValue] = useState<ValueDataType | null>(null);
const fixtureLink = initialValue?.environment === WEB ? WEB_FIXTURE_LINK : APP_FIXTURE_LINK;
const [loading, setLoading] = useState<boolean>(false); const [loading, setLoading] = useState<boolean>(false);
const onSubmit = async (values: SubmitType) => { const onSubmit = async (values: SubmitType) => {
...@@ -84,7 +101,8 @@ const Add = () => { ...@@ -84,7 +101,8 @@ const Add = () => {
okText: '立即装修', okText: '立即装修',
cancelText: '稍后', cancelText: '稍后',
onOk: () => { onOk: () => {
history.push(`/marketingManage/marketing/activitiesManagement/fixtures?id=${data}`); const jumpLink = values.environment === WEB ? WEB_FIXTURE_LINK : APP_FIXTURE_LINK;
history.push(`${jumpLink}?id=${data}`);
}, },
onCancel: () => { onCancel: () => {
history.goBack(); history.goBack();
...@@ -111,7 +129,7 @@ const Add = () => { ...@@ -111,7 +129,7 @@ const Add = () => {
templateName, templateName,
templatePicUrl, templatePicUrl,
}, },
startTime: moment(startTime), startTime: moment(startTime) ,
endTime: moment(endTime), endTime: moment(endTime),
}); });
actions.setFieldState('*(environment,template,shopId)', state => { actions.setFieldState('*(environment,template,shopId)', state => {
...@@ -131,7 +149,7 @@ const Add = () => { ...@@ -131,7 +149,7 @@ const Add = () => {
FormPath.setIn(state, 'props.x-component-props', {environment: initialValue.environment}); FormPath.setIn(state, 'props.x-component-props', {environment: initialValue.environment});
}); });
async function setMall() { async function setMall() {
const data = await fetchMallData({environment: initialValue.environment.toString(), siteId: GlobalConfig.global.siteInfo.id} as any); const data = await fetchMallData({environment: initialValue?.environment.toString(), siteId: GlobalConfig.global.siteInfo.id} as any);
actions.setFieldState("shopId", state => { actions.setFieldState("shopId", state => {
state.props.enum = data; state.props.enum = data;
}); });
...@@ -162,6 +180,7 @@ const Add = () => { ...@@ -162,6 +180,7 @@ const Add = () => {
return "新增活动页"; return "新增活动页";
}; };
return ( return (
<PageHeaderWrapper <PageHeaderWrapper
title={renderTitle()} title={renderTitle()}
...@@ -172,7 +191,7 @@ const Add = () => { ...@@ -172,7 +191,7 @@ const Add = () => {
<Space> <Space>
{ {
isEdit && ( isEdit && (
<Link to={`/marketingManage/marketing/activitiesManagement/fixtures?id=${id}`}> <Link to={`${fixtureLink}?id=${id}`}>
<Button icon={<BgColorsOutlined />}>活动页装修</Button> <Button icon={<BgColorsOutlined />}>活动页装修</Button>
</Link> </Link>
) )
......
...@@ -76,7 +76,7 @@ const ActiveItem: React.FC<Iprops> = (props: Iprops) => { ...@@ -76,7 +76,7 @@ const ActiveItem: React.FC<Iprops> = (props: Iprops) => {
<img className={styles.image} src={templatePicUrl} /> <img className={styles.image} src={templatePicUrl} />
<div className={styles.infoContainer}> <div className={styles.infoContainer}>
<div className={styles.header}> <div className={styles.header}>
<Link to={`/marketingManage/marketing/activitiesManagement/view?id=${id}`}>{title}</Link> <Link to={`/marketingManage/marketing/activitiesManagement/edit?id=${id}`}>{title}</Link>
<div className={styles.status}> <div className={styles.status}>
<StatusTag type="success" title={statusName} /> <StatusTag type="success" title={statusName} />
</div> </div>
......
...@@ -54,7 +54,6 @@ const formatProps = { ...@@ -54,7 +54,6 @@ const formatProps = {
const useGetSameKeys = () => { const useGetSameKeys = () => {
const { pageConfig } = useSelector<any, any>(['pageConfig']); const { pageConfig } = useSelector<any, any>(['pageConfig']);
console.log("pageConfig", pageConfig);
const sameKeys = useMemo(() => { const sameKeys = useMemo(() => {
if (pageConfig === null || Object.keys(pageConfig).length === 0) { if (pageConfig === null || Object.keys(pageConfig).length === 0) {
return {}; return {};
......
...@@ -156,7 +156,7 @@ function useSaveData(options: Options) { ...@@ -156,7 +156,7 @@ function useSaveData(options: Options) {
const { data, code, ...rest } = await postTemplateWebActivityPageAdorn({ const { data, code, ...rest } = await postTemplateWebActivityPageAdorn({
id: id, id: id,
adornContent: result adornContent: withThemeStyle
} as any, {ctlType: 'none'}); } as any, {ctlType: 'none'});
setSaving(false); setSaving(false);
if (code === 1000) { if (code === 1000) {
......
...@@ -21,7 +21,7 @@ type SettingPanelType = { ...@@ -21,7 +21,7 @@ type SettingPanelType = {
} }
const formActions = createFormActions(); const formActions = createFormActions();
/** 请求口type, 请求列表接口需要带上type */ /** 请求口type, 请求列表接口需要带上type */
const ACTIVITY_MAP = { const ACTIVITY_MAP = {
"specialOfferItem": 1, "specialOfferItem": 1,
/** 直降促销 */ /** 直降促销 */
...@@ -98,9 +98,7 @@ const EditPanelForm = () => { ...@@ -98,9 +98,7 @@ const EditPanelForm = () => {
imageUrl: [{ name: '广告图', url: selectedInfo?.props?.imageUrl }] imageUrl: [{ name: '广告图', url: selectedInfo?.props?.imageUrl }]
}, },
couponItem: { couponItem: {
coupon: { coupon: selectedInfo.props
...selectedInfo.props
}
}, },
hotItem: { hotItem: {
product: { product: {
...@@ -111,6 +109,7 @@ const EditPanelForm = () => { ...@@ -111,6 +109,7 @@ const EditPanelForm = () => {
title: selectedInfo.props?.title, title: selectedInfo.props?.title,
}, },
}; };
console.log("================================", selectedInfo.props)
/** 如果是活动子集, 那么现实选择活动商品 */ /** 如果是活动子集, 那么现实选择活动商品 */
if(activityListItem.includes(componentType) || componentType === 'hotItem' || componentType === 'suggestProductItem') { if(activityListItem.includes(componentType) || componentType === 'hotItem' || componentType === 'suggestProductItem') {
setFormValue({ setFormValue({
...@@ -120,6 +119,7 @@ const EditPanelForm = () => { ...@@ -120,6 +119,7 @@ const EditPanelForm = () => {
}); });
setSchema(activityProducts); setSchema(activityProducts);
} else { } else {
// 如果是 top 或者是 活动容器,那么需要修改他的容器卡片名称
const schemaMap = { const schemaMap = {
top: activityImageSchema, top: activityImageSchema,
couponItem: couponSchema, couponItem: couponSchema,
...@@ -133,7 +133,7 @@ const EditPanelForm = () => { ...@@ -133,7 +133,7 @@ const EditPanelForm = () => {
: propsMapToValue?.[componentType]; : propsMapToValue?.[componentType];
setSchema(tempSchema); setSchema(tempSchema);
setFormValue(tempFormValue); setFormValue({ ...tempFormValue });
} }
/** 16 种活动,请求是需要带上活动类型 */ /** 16 种活动,请求是需要带上活动类型 */
const activityType = ACTIVITY_MAP[componentType] ? { activityType: ACTIVITY_MAP[componentType] } : {}; const activityType = ACTIVITY_MAP[componentType] ? { activityType: ACTIVITY_MAP[componentType] } : {};
......
...@@ -92,6 +92,11 @@ const FormilyCoupon: React.FC<Iprops> & { isFieldComponent: boolean } = (props: ...@@ -92,6 +92,11 @@ const FormilyCoupon: React.FC<Iprops> & { isFieldComponent: boolean } = (props:
// setInnerValue(value); // setInnerValue(value);
// }, [value]); // }, [value]);
const handleClose = () => {
setRadioValue(PLATFORM);
setDrawerVisible(false)
}
const onChange = (e) => { const onChange = (e) => {
setRadioValue(e.target.value); setRadioValue(e.target.value);
const pageInfo = (ref?.current as any)?.getPaginationInfo(); const pageInfo = (ref?.current as any)?.getPaginationInfo();
...@@ -115,6 +120,7 @@ const FormilyCoupon: React.FC<Iprops> & { isFieldComponent: boolean } = (props: ...@@ -115,6 +120,7 @@ const FormilyCoupon: React.FC<Iprops> & { isFieldComponent: boolean } = (props:
// setInnerValue(selectedRow[0]); // setInnerValue(selectedRow[0]);
props.mutators.change(selectedRow[0]); props.mutators.change(selectedRow[0]);
setDrawerVisible(false); setDrawerVisible(false);
setRadioValue(PLATFORM)
}); });
}; };
...@@ -166,7 +172,8 @@ const FormilyCoupon: React.FC<Iprops> & { isFieldComponent: boolean } = (props: ...@@ -166,7 +172,8 @@ const FormilyCoupon: React.FC<Iprops> & { isFieldComponent: boolean } = (props:
</div> </div>
<CouponSelect <CouponSelect
visible={drawerVisible} visible={drawerVisible}
onCancel={() => setDrawerVisible(false)} // onCancel={() => setDrawerVisible(false)}
onCancel={handleClose}
mode="radio" mode="radio"
formExtra={formExtra} formExtra={formExtra}
ref={ref as any} ref={ref as any}
......
...@@ -101,6 +101,11 @@ const minTypeToTwo = ["fullQuantityDiscountItem", "fullMoneyDiscountItem", "give ...@@ -101,6 +101,11 @@ const minTypeToTwo = ["fullQuantityDiscountItem", "fullMoneyDiscountItem", "give
const activityListItem = Object.keys(ACTIVITY_MAP); const activityListItem = Object.keys(ACTIVITY_MAP);
const activityList = activityListItem.map((_item) => _item.substring(0, _item.length - 4)); const activityList = activityListItem.map((_item) => _item.substring(0, _item.length - 4));
/**
* TODO 有时间将EditPanel 合并
*/
const EditPanelForm = () => { const EditPanelForm = () => {
const { selectedInfo, pageConfig } = useSelector<SettingPanelType, STATE_PROPS>(['selectedInfo', 'pageConfig']); const { selectedInfo, pageConfig } = useSelector<SettingPanelType, STATE_PROPS>(['selectedInfo', 'pageConfig']);
const {state: visible, toggle: setVisible } = useToggle(false); const {state: visible, toggle: setVisible } = useToggle(false);
...@@ -132,9 +137,7 @@ const EditPanelForm = () => { ...@@ -132,9 +137,7 @@ const EditPanelForm = () => {
imageUrl: [{ name: '广告图', url: selectedInfo?.props?.imageUrl }] imageUrl: [{ name: '广告图', url: selectedInfo?.props?.imageUrl }]
}, },
couponItem: { couponItem: {
coupon: { coupon: {...selectedInfo.props}
...selectedInfo.props
}
}, },
hotItem: { hotItem: {
product: { product: {
...@@ -150,7 +153,8 @@ const EditPanelForm = () => { ...@@ -150,7 +153,8 @@ const EditPanelForm = () => {
setFormValue({ setFormValue({
product: { product: {
...selectedInfo.props, ...selectedInfo.props,
} },
uuid: Math.random()
}); });
setSchema(activityProducts); setSchema(activityProducts);
} else { } else {
...@@ -158,16 +162,16 @@ const EditPanelForm = () => { ...@@ -158,16 +162,16 @@ const EditPanelForm = () => {
top: activityImageSchema, top: activityImageSchema,
couponItem: couponSchema, couponItem: couponSchema,
}; };
const isContainer = activityList.includes(componentType) || componentType === 'hot' || componentType === 'suggestProduct' || componentType === 'coupon';
/** 如果是 suggestProduct, 或者是hot 或者是活动父级,那么直接设置他的卡片名称 */ /** 如果是 suggestProduct, 或者是hot 或者是活动父级,那么直接设置他的卡片名称 */
const tempSchema = activityList.includes(componentType) || componentType === 'hot' || componentType === 'suggestProduct' || componentType === 'coupon' ? cardSchema : schemaMap?.[componentType]; const tempSchema = isContainer ? cardSchema : schemaMap?.[componentType];
const tempFormValue = activityList.includes(componentType) || componentType === 'hot' || componentType === 'suggestProduct' || componentType === 'coupon' const tempFormValue = isContainer
? { ? { title: selectedInfo.props.title}
title: selectedInfo.props.title
}
: propsMapToValue?.[componentType]; : propsMapToValue?.[componentType];
setSchema(tempSchema); setSchema(tempSchema);
setFormValue(tempFormValue); // 这里加uuid 是为了解决这个bug http://chandao.shushangyun.com/index.php?m=bug&f=view&bugID=19739,formily value 改变不触发更新,
setFormValue({...tempFormValue, uuid: Math.random()});
} }
/** 16 种活动,请求是需要带上活动类型 */ /** 16 种活动,请求是需要带上活动类型 */
const activityType = ACTIVITY_MAP[componentType] ? { activityType: ACTIVITY_MAP[componentType] } : {}; const activityType = ACTIVITY_MAP[componentType] ? { activityType: ACTIVITY_MAP[componentType] } : {};
......
...@@ -11,12 +11,12 @@ import { DeleteOutlined, SaveOutlined } from '@ant-design/icons'; ...@@ -11,12 +11,12 @@ import { DeleteOutlined, SaveOutlined } from '@ant-design/icons';
import { createFormActions, FormEffectHooks } from '@formily/antd'; import { createFormActions, FormEffectHooks } from '@formily/antd';
import { Radio, DatePicker, ArrayTable } from '@formily/antd-components'; import { Radio, DatePicker, ArrayTable } from '@formily/antd-components';
import { history, Prompt } from 'umi'; import { history, Prompt } from 'umi';
import moment from 'moment'; import moment, { Moment } from 'moment';
import { import {
MERCHANT_COUPON_TYPE_VOUCHER, MERCHANT_COUPON_TYPE_VOUCHER,
} from '@/constants/const/marketing'; } from '@/constants/const/marketing';
import AnchorPage from '@/components/AnchorPage'; import AnchorPage from '@/components/AnchorPage';
import { getMarketingCouponPlatformWaitAuditGet, postMarketingCouponPlatformWaitAuditAdd } from '@/services/MarketingV2Api'; import { getMarketingCouponPlatformWaitAuditGet, postMarketingCouponPlatformWaitAuditAdd, postMarketingCouponPlatformWaitAuditUpdate } from '@/services/MarketingV2Api';
import NiceForm from '@/components/NiceForm'; import NiceForm from '@/components/NiceForm';
import FormilyRangeTime from '@/components/RangeTime/FormilyRangeTime'; import FormilyRangeTime from '@/components/RangeTime/FormilyRangeTime';
import schema from './schema'; import schema from './schema';
...@@ -57,11 +57,11 @@ export type SubmitValueType = { ...@@ -57,11 +57,11 @@ export type SubmitValueType = {
/** /**
* 领(发)劵起始时间 * 领(发)劵起始时间
*/ */
releaseTimeStart: string, releaseTimeStart: Moment,
/** /**
* 领(发)劵结束时间 * 领(发)劵结束时间
*/ */
releaseTimeEnd: string, releaseTimeEnd: Moment,
/** /**
* 领券方式 * 领券方式
*/ */
...@@ -86,11 +86,11 @@ export type SubmitValueType = { ...@@ -86,11 +86,11 @@ export type SubmitValueType = {
/** /**
* 劵有效期起始时间 * 劵有效期起始时间
*/ */
effectiveTimeStart: string, effectiveTimeStart: Moment | null,
/** /**
* 劵有效期结束时间 * 劵有效期结束时间
*/ */
effectiveTimeEnd: string, effectiveTimeEnd: Moment | null,
/** /**
* 自领取后多少天内失效 * 自领取后多少天内失效
*/ */
...@@ -192,10 +192,10 @@ const CouponForm: React.FC<IProps> = (props) => { ...@@ -192,10 +192,10 @@ const CouponForm: React.FC<IProps> = (props) => {
suitableMallTypes: suitableMallTypes?.map((item) => item.id), suitableMallTypes: suitableMallTypes?.map((item) => item.id),
denomination: `${denomination}`, denomination: `${denomination}`,
quantity: `${quantity}`, quantity: `${quantity}`,
releaseTimeStart: releaseTimeStart ? moment(releaseTimeStart).format('YYYY-MM-DD HH:mm:ss') : '', releaseTimeStart: moment(releaseTimeStart),
releaseTimeEnd: releaseTimeEnd ? moment(releaseTimeEnd).format('YYYY-MM-DD HH:mm:ss') : '', releaseTimeEnd: moment(releaseTimeEnd),
effectiveTimeStart: effectiveTimeStart ? moment(effectiveTimeStart).format('YYYY-MM-DD HH:mm:ss') : '', effectiveTimeStart: effectiveTimeStart ? moment(effectiveTimeStart) : null,
effectiveTimeEnd: effectiveTimeEnd ? moment(effectiveTimeEnd).format('YYYY-MM-DD HH:mm:ss') : '', effectiveTimeEnd: effectiveTimeEnd ? moment(effectiveTimeEnd) : null,
invalidDay: invalidDay !== null ? `${invalidDay}` : undefined, invalidDay: invalidDay !== null ? `${invalidDay}` : undefined,
useConditionMoney: `${useConditionMoney}`, useConditionMoney: `${useConditionMoney}`,
receiveCondition: { receiveCondition: {
...@@ -289,10 +289,10 @@ const CouponForm: React.FC<IProps> = (props) => { ...@@ -289,10 +289,10 @@ const CouponForm: React.FC<IProps> = (props) => {
quantity: +quantity, quantity: +quantity,
invalidDay: +(invalidDay as string), invalidDay: +(invalidDay as string),
denomination: +denomination, denomination: +denomination,
releaseTimeStart: moment(releaseTimeStart).valueOf(), releaseTimeStart: releaseTimeStart.valueOf(),
releaseTimeEnd: moment(releaseTimeEnd).valueOf(), releaseTimeEnd: releaseTimeEnd.valueOf(),
effectiveTimeStart: effectiveTimeStart ? moment(effectiveTimeStart).valueOf() : undefined, effectiveTimeStart: effectiveTimeStart ? effectiveTimeStart.valueOf() : undefined,
effectiveTimeEnd: effectiveTimeEnd ? moment(effectiveTimeEnd).valueOf() : undefined, effectiveTimeEnd: effectiveTimeEnd ? effectiveTimeEnd.valueOf() : undefined,
suitableMemberLevelTypes: applicationMemberLevel, suitableMemberLevelTypes: applicationMemberLevel,
suitableCommoditySkuList, suitableCommoditySkuList,
...restValue, ...restValue,
......
...@@ -214,7 +214,7 @@ const PlatformCouponUnsubmitted: React.FC = () => { ...@@ -214,7 +214,7 @@ const PlatformCouponUnsubmitted: React.FC = () => {
}); });
}; };
const ControllerBtns = () => ( const ControllerBtns1 = () => (
<Space size={16}> <Space size={16}>
<Button <Button
type="primary" type="primary"
...@@ -250,7 +250,7 @@ const PlatformCouponUnsubmitted: React.FC = () => { ...@@ -250,7 +250,7 @@ const PlatformCouponUnsubmitted: React.FC = () => {
<NiceForm <NiceForm
actions={formActions} actions={formActions}
components={{ components={{
ControllerBtns, ControllerBtns1,
RangePicker: DatePicker.RangePicker, RangePicker: DatePicker.RangePicker,
}} }}
onSubmit={values => ref.current.reload(values)} onSubmit={values => ref.current.reload(values)}
......
/* /*
* @Author: XieZhiXiong * @Author: XieZhiXiong
* @Date: 2021-06-23 17:41:57 * @Date: 2021-06-23 17:41:57
* @LastEditors: XieZhiXiong * @LastEditors: XieZhiXiong
* @LastEditTime: 2021-06-23 17:41:58 * @LastEditTime: 2021-06-23 17:41:58
* @Description: * @Description:
*/ */
import { ISchema } from '@formily/antd'; import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const'; import { FORM_FILTER_PATH } from '@/formSchema/const';
export const querySchema: ISchema = { export const querySchema: ISchema = {
type: 'object', type: 'object',
properties: { properties: {
megaLayout: { megaLayout: {
type: 'object', type: 'object',
'x-component': 'mega-layout', 'x-component': 'mega-layout',
properties: { properties: {
topLayout: { topLayout: {
type: 'object', type: 'object',
'x-component': 'Mega-Layout', 'x-component': 'Mega-Layout',
'x-component-props': { 'x-component-props': {
grid: true, grid: true,
}, },
properties: { properties: {
ctl: { ctl: {
type: 'object', type: 'object',
'x-component': 'ControllerBtns', 'x-component': 'ControllerBtns1',
}, },
name: { name: {
type: 'string', type: 'string',
'x-component': 'Search', 'x-component': 'Search',
'x-component-props': { 'x-component-props': {
placeholder: '搜索', placeholder: '搜索',
tip: '输入 优惠劵名称 进行搜索', tip: '输入 优惠劵名称 进行搜索',
}, },
}, },
}, },
}, },
[FORM_FILTER_PATH]: { [FORM_FILTER_PATH]: {
type: 'object', type: 'object',
'x-component': 'flex-layout', 'x-component': 'flex-layout',
'x-component-props': { 'x-component-props': {
colStyle: { colStyle: {
marginLeft: 20, marginLeft: 20,
}, },
}, },
properties: { properties: {
id: { id: {
type: 'string', type: 'string',
'x-component-props': { 'x-component-props': {
placeholder: '优惠劵ID', placeholder: '优惠劵ID',
allowClear: true, allowClear: true,
}, },
}, },
'[effectiveTimeStart, effectiveTimeEnd]': { '[effectiveTimeStart, effectiveTimeEnd]': {
type: 'object', type: 'object',
'x-component': 'RangePicker', 'x-component': 'RangePicker',
'x-component-props': { 'x-component-props': {
placeholder: ['劵有效期起始时间', '劵有效期截止时间'], placeholder: ['劵有效期起始时间', '劵有效期截止时间'],
}, },
}, },
type: { type: {
type: 'string', type: 'string',
default: undefined, default: undefined,
enum: [], enum: [],
'x-component-props': { 'x-component-props': {
placeholder: '优惠劵类型(所有)', placeholder: '优惠劵类型(所有)',
allowClear: true, allowClear: true,
}, },
}, },
submit: { submit: {
'x-component': 'Submit', 'x-component': 'Submit',
'x-mega-props': { 'x-mega-props': {
span: 1, span: 1,
}, },
'x-component-props': { 'x-component-props': {
children: '查询', 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