Commit e13dd915 authored by 许佳敏's avatar 许佳敏

Merge branch '20418order' into 'v2-220418'

修复 antd 自定义组件 onchange 默认值触发 onValuesChange 的事件 See merge request linkseeks-design/pro-platform!631
parents d16a42c7 a8d9e8b4
import { DatePicker } from 'antd';
import { DatePicker, FormInstance } from 'antd';
import moment from 'moment';
import React, { MutableRefObject, useEffect, useRef, useState } from 'react';
......@@ -11,6 +11,8 @@ interface DatePickerSelectProps {
disabled?: boolean
hidden?: boolean
errorMsg?: any
formProp?: FormInstance
id?: string
}
/**
......@@ -20,7 +22,17 @@ interface DatePickerSelectProps {
*/
function DatePickerSelect(props: DatePickerSelectProps) {
const { defualtToday = false, onChange, className, value, disabled = false, hidden = false, errorMsg = '' } = props;
const {
defualtToday = false,
onChange,
className,
value,
disabled = false,
hidden = false,
errorMsg = '',
formProp,
id
} = props;
const dom = useRef<any>(null)
......@@ -42,7 +54,11 @@ function DatePickerSelect(props: DatePickerSelectProps) {
const renderDefaultValue = () => {
if (defualtToday) {
let result = moment().startOf('day')
onChange(result)
if (undefined !== formProp) {
formProp.setFieldsValue({
[id]: result
})
}
}
}
......
import LogisticsCompanySelect, { CooperateType } from "./LogisticsCompanySelect"
function LogisticsCompanyMerchantsSelect(props) {
const { onChange,value,disabled=false } = props;
const { onChange, value, disabled = false } = props;
return (
<LogisticsCompanySelect disabled={disabled} value={value} onChange={onChange} cooperateType={CooperateType.Merchants} />
<LogisticsCompanySelect formProp={props.formProp} id={props.id} disabled={disabled} value={value} onChange={onChange} cooperateType={CooperateType.Merchants} />
)
}
......
import { getLogisticsSelectListCompany } from "@/services/LogisticsV2Api";
import { Select } from "antd";
import { FormInstance, Select } from "antd";
import { useEffect, useState } from "react";
export enum CooperateType {
......@@ -11,14 +11,16 @@ interface LogisticsCompanySelectProps {
onChange?: (value) => void
cooperateType: CooperateType.Platform | CooperateType.Merchants
value?: any
disabled?: boolean
disabled?: boolean,
formProp?: FormInstance
id?: string
}
function LogisticsCompanySelect(props: LogisticsCompanySelectProps) {
const { onChange, cooperateType, value, disabled = false } = props;
const { onChange, cooperateType, value, disabled = false, formProp, id } = props;
const [options, setOptions] = useState([]);
useEffect(() => {
fetchData()
}, [])
......@@ -38,7 +40,11 @@ function LogisticsCompanySelect(props: LogisticsCompanySelectProps) {
setOptions(options)
if (!value) {
const d: any[] = JSON.parse(JSON.stringify(options))
onChange(d.shift())
if (undefined != formProp) {
formProp.setFieldsValue({
[id]: d.shift()
})
}
}
})
}
......
import { Button, Col, Drawer, Form, Input, message, Pagination, Radio, Row, Space, Table } from "antd"
import { Button, Col, Drawer, Form, FormInstance, Input, message, Pagination, Radio, Row, Space, Table } from "antd"
import { useCallback, useEffect, useState } from "react"
import { TableMemberColumn } from "./columns"
import { LinkOutlined } from "@ant-design/icons"
......@@ -26,6 +26,8 @@ interface RoleSelectProps {
formatFeils?: (e) => any
disabled?: boolean
isDefault?: boolean
formProp?: FormInstance
id?: string
}
/**
......@@ -37,9 +39,12 @@ function RoleSelect(props: RoleSelectProps) {
const { request, params, onChange, value, formatFeils = (e) => e,
disabled = false,
isDefault = false
isDefault = false,
formProp
} = props
const [visible, setVisible] = useState(false);
const [form] = Form.useForm()
const [dataSource, setDataSource] = useState([])
......@@ -72,7 +77,11 @@ function RoleSelect(props: RoleSelectProps) {
form.setFieldsValue({ "current": "1", pageSize: 10 })
fetchData().then(data => {
if (data.length === 1 && isDefault) {
setValue(data[0])
if (undefined !== formProp) {
formProp.setFieldsValue({
[props.id]: data[0]
})
}
setLocalDisabled(true)
}
})
......@@ -164,7 +173,7 @@ function RoleSelect(props: RoleSelectProps) {
}}
/>
</Radio.Group>
</Drawer>
</>
);
......
......@@ -162,7 +162,7 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
required()
]}
label={DeliveryDate} name="deliveryTime">
<DatePickerSelect defualtToday={true} className='w-full' />
<DatePickerSelect formProp={form} defualtToday={true} className='w-full' />
</FormItem>
<FormItem
......@@ -242,7 +242,7 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
<Input placeholder={`请输入${LogisticsCarNoLabel}`} maxLength={20} />
</FormItem>
<FormItem hidden={isLogistics} label={LogisticsCompanyLabel} name="logisticsCompanyInt">
<LogisticsCompanyMerchantsSelect />
<LogisticsCompanyMerchantsSelect formProp={form} />
</FormItem>
<FormItem
hidden={isLogistics}
......@@ -264,7 +264,7 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
let atpm = JSON.parse(JSON.stringify(anchors));
atpm.pop()
const ft = formatTable(value);
setAnchors([
......
......@@ -53,15 +53,17 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
Material,
])
// useEffect(() => {
// form.setFieldsValue({
// sourceType: 0,
// deliveryRangeTime: [
// moment().startOf('day').add('hour', 8),
// moment().startOf('day').add('hour', 12)
// ]
// })
// }, [])
useEffect(() => {
form.setFieldsValue({
sourceType: 0,
deliveryRangeTime: [
moment().startOf('day').add('hour', 8),
moment().startOf('day').add('hour', 12)
]
})
}, [])
useEffect(() => { }, [])
const handleSubmit = useCallback(() => {
......@@ -97,11 +99,10 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
<Form
form={form}
onValuesChange={() => {
console.log('dada');
handleLeave()
}}
>
<FormItem name="sourceType" initialValue={0}>
<FormItem hidden name="sourceType">
<Input type="hidden" />
</FormItem>
......@@ -126,6 +127,7 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
]}
label={BuyerLabel} name="member">
<RoleSelect
formProp={form}
isDefault={true}
formatFeils={(e) => {
return {
......@@ -145,7 +147,7 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
required()
]}
label={DeliveryDate} name="deliveryTime">
<DatePickerSelect defualtToday={true} className='w-full' />
<DatePickerSelect formProp={form} defualtToday={true} className='w-full' />
</FormItem>
<FormItem
......@@ -158,11 +160,7 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
required()
]}
label={DeliveryTime} name="deliveryRangeTime"
initialValue={[
moment().startOf('day').add('hour', 8),
moment().startOf('day').add('hour', 12)
]}
>
>
<DatePickerSelect.RangePicker className="w-full" picker='time' />
</FormItem>
......@@ -222,7 +220,6 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
}}>
<Radio value={1}>物流</Radio>
<Radio value={2}>自提</Radio>
{/* <Radio.Button value={3}>无效配送</Radio.Button> */}
</Radio.Group>
</FormItem>
<FormItem
......@@ -234,7 +231,7 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
<FormItem
hidden={isLogistics}
label={LogisticsCompanyLabel} name="logisticsCompanyInt">
<LogisticsCompanyMerchantsSelect />
<LogisticsCompanyMerchantsSelect formProp={form} />
</FormItem>
<FormItem
......
......@@ -49,7 +49,7 @@ const getConst = (len = 0) => {
return [
base_info,
ShippingInfo,
{ ...DeliveryGood, name: `送货物料${!!len ? `(${len})` : ''}` },
{ ...DeliveryGood, name: `送货商品${!!len ? `(${len})` : ''}` },
Remarks,
]
}
......
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