import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { Form, AutoComplete, DatePicker, Button, Input, Drawer, message } from 'kts-xui'; import { Row, Divider, TreeSelect } from 'kts-components-antd-x4'; import agent from '../Server'; import moment from 'moment'; const { RangePicker } = DatePicker; const AddTemplate = (props: any) => { const [form] = Form.useForm(); const uuid=React.useMemo(()=>props.uuid,[]); const [template, setTemplate] = useState({}); const [rules, setRules] = useState([]); // const [templateUuid, setUuid] = useState(); const [goods, setGoods] = useState([]); const [goodsName, setGoodsName] = useState(); const formItemLayout = { labelCol: { span: 24 }, wrapperCol: { span: 24 }, }; useEffect(() => { onSearch(''); (async () => { const res: any = await agent.post('/web/verifier/rule/get-template', {templateUuid:uuid}, this); if (res.res) { const data = res.res.reduce((acc, obj) => { const key = obj.field; acc[key] = obj; return acc; }, {}); // setUuid(res.res[0].templateUuid); setTemplate(data); setRules(res.res); } })() }, []); const onFinish = useCallback(async (values) => { const keys = Object.keys(values); const d = rules.reduce((item, b) => { if (keys.includes(b.field)) { item.push({ ...b, fieldExpectValue: values[b.field] }); return item; } else { return item } }, []) const dd = { ...values, effectiveStart: moment(values['time'][0]).format('YYYY-MM-DD'), effectiveEnd: moment(values['time'][1]).format('YYYY-MM-DD'), data: d, templateUuid:uuid }; const res: any = await agent.post('/web/verifier/rule/insert', dd, this); if (res.res) { message.success('操作成功'); onSuccess(); } }, [template, rules]); const onSuccess = () => { props.onSuccess(); } const onClose = () => { props.onClose(); }; const onSubmit = () => { form.submit(); }; const onSearch = async (value) => { const params = { categoryName: value } const res: any = await agent.post('/product/platform/productCategory', params, this); if (res.res) { res.res = res.res.map(item => { return loopChildData(item); }) console.log(res.res); setGoods(res.res); } } const loopChildData = (item) => { if (item.children && item.children.length > 0) { item = { ...item, label: item.categoryName, value: item.categoryName, } item.children = item.children.map(ele => { return loopChildData(ele); }) return item; } else { return { ...item, label: item.categoryName, value: item.categoryName, } } } const onSelect = (value) => { const found = goods.find(item => item.id === value); if (found) { setGoodsName(found.categoryName); } } const setLength = (field: string) => { if (field === 'buyerName' || field === 'salerName') { return 100 } else if (field === 'goodsName') { return 200 } else if (field === 'specificationModel') { return 400 } } const labels = template && Object.keys(template); return ( } >
{ labels.length > 0 && labels.map((item, index) => { if (template[item].active === true) { if (template[item].field !== 'classify') { return ( < >

校验字段:{template[item].fieldDesc}

校验规则:{template[item].operatorDesc}

); } else { const { config } = template[item]; const fieldDescs = config.filter(ele => ele.active); const titles = fieldDescs.reduce((acc, obj) => { acc.push(obj.fieldDesc); return acc; }, []); const title = '分类下' + titles.join('和') return ( <>

校验字段:{template[item].fieldDesc} ({title})

校验规则:{template[item].operatorDesc}

{/* */} ); } } }) }
); } export default AddTemplate;