Commit fa1aba15 authored by Gavin Peng's avatar Gavin Peng

fix: 修复送货计划输入框限制

parent ea457f00
......@@ -193,7 +193,7 @@ const DeliveryPlanCollaborationDetails: React.FC = () => {
let noticePath = {}
const time = new Date().getTime()
// 判断跳转
const url = deliveryPlanType === '1' ? '/memberCenter/order/deliveryNoticeManagement/awaitSRM/add' : '/memberCenter/order/deliveryNoticeManagement/awaitB2B/add'
const url = deliveryPlanType === '1' ? '/memberCenter/order/deliveryNoticeManagement/awaitB2B/add' : '/memberCenter/order/deliveryNoticeManagement/awaitSRM/add'
noticePath[time] = res.data
localStorage.setItem('NOTICE_PATH', JSON.stringify(noticePath))
setTimeout(() => {
......@@ -216,7 +216,6 @@ const DeliveryPlanCollaborationDetails: React.FC = () => {
planOrderIds: _ids.join(),
time: date
}).then((res: any) => {
console.log('res :>> ', res)
if (res.code === 1000) {
let noticePath = {}
const time = new Date().getTime()
......
......@@ -11,7 +11,7 @@ import { Button, DatePicker, Form, Input, InputNumber, message, Space, Spin, Ste
import { SaveOutlined } from '@ant-design/icons'
import BaseInfo from '@/components/BaseInfo/BaseInfo'
import _ from 'lodash'
import { convertArrToObj, getDayAll } from '../../utils'
import { convertArrToObj, disabledDate, getDayAll, limitDecimalsF, limitDecimalsP } from '../../utils'
import { BrandColumn, ClassColumn, CommodityNoColumn, ConsigneeNumColumn, DeliveredNumColumn, OrderCreatedAtColumn, OrderNoColumn, OrderSummaryColumn, OrderNumColumn, PlannedDeliveryNumColumn, TradeNameColumn, TransitNumColumn, UntilColumn } from '../../constants/table-column'
import { RoleSelect } from '@/components/RoleSelect'
import { getMemberManageSupplyMember } from '@/services/MemberV2Api'
......@@ -70,7 +70,7 @@ const DeliveryPlanAwaitB2BCreate: React.FC = () => {
const [expandIconColumn, setExpandIconColumn] = useState<any>(initExpandIconColumn)
const expandedRowRender = (record, index) => {
return <Table rowKey={'orderProductId'} columns={expandIconColumn} dataSource={record.orders} pagination={false} tableLayout="fixed"/>
return <Table rowKey={'orderProductId'} columns={expandIconColumn} dataSource={record.orders} pagination={false} tableLayout="fixed" />
}
// 选中 开始时间,结束时间
......@@ -147,7 +147,16 @@ const DeliveryPlanAwaitB2BCreate: React.FC = () => {
key: item,
width: 80,
align: 'center',
render: (text: any, record: any) => (<InputNumber style={{ width: '100%' }} bordered value={text?.planCount} onChange={(val) => inputChange(val, text, record)} />)
render: (text: any, record: any) => (
<InputNumber
style={{ width: '100%' }}
bordered
parser={limitDecimalsP}
formatter={limitDecimalsF}
value={text?.planCount}
onChange={(val) => inputChange(val, text, record)}
/>
)
}))
setGoodsTableColumn([...initGoodsTableColumn, ...datesColumn])
setExpandIconColumn([...initExpandIconColumn, ...datesExpandIconColumn])
......@@ -235,7 +244,7 @@ const DeliveryPlanAwaitB2BCreate: React.FC = () => {
label={PlanningCycle}
name='dates'
>
<DatePicker.RangePicker style={{ width: '100%' }} onChange={(dates) => handleDateAssembleColumn(dates)} />
<DatePicker.RangePicker disabledDate={disabledDate} style={{ width: '100%' }} onChange={(dates) => handleDateAssembleColumn(dates)} />
</Form.Item>
<Form.Item
......
......@@ -11,7 +11,7 @@ import { Button, Form, Input, InputNumber, message, Space, Spin, Steps, Table, T
import { SaveOutlined } from '@ant-design/icons'
import BaseInfo from '@/components/BaseInfo/BaseInfo'
import _ from 'lodash'
import { getDayAll, godAtob, integrationArrToObj, integrationOjb, TagStatus } from '../../utils'
import { getDayAll, godAtob, integrationArrToObj, integrationOjb, limitDecimalsF, limitDecimalsP, TagStatus } from '../../utils'
import { BrandColumn, ClassColumn, CommodityNoColumn, ConsigneeNumColumn, DeliveredNumColumn, OrderCreatedAtColumn, OrderNoColumn, OrderSummaryColumn, OrderNumColumn, PlannedDeliveryNumColumn, TradeNameColumn, TransitNumColumn, UntilColumn } from '../../constants/table-column'
import { getOrderDeliveryPlanDeliveryHistory, getOrderDeliveryPlanDetail, getOrderDeliveryPlanDetailProductPage, postOrderDeliveryPlanUpdate } from '@/services/OrderNewV2Api'
import moment from 'moment'
......@@ -82,7 +82,7 @@ const DeliveryPlanAwaitB2BUpdate: React.FC = () => {
// 保存
const save = () => {
form.validateFields().then(values => {
console.log('values :>> ', values)
console.log('values :>> ', values)
if (_.isEmpty(goodsTableDataRef.current)) {
message.warning('没有找到可执行计划送货')
return
......@@ -130,7 +130,17 @@ const DeliveryPlanAwaitB2BUpdate: React.FC = () => {
key: item,
width: 80,
align: 'center',
render: (text: any, record: any) => (<InputNumber style={{ width: '100%' }} bordered value={text?.planCount} onChange={(val) => inputChange(val, text, record)} />)
render: (text: any, record: any) => (
<InputNumber
style={{ width: '100%' }}
// disabled={}
bordered
parser={limitDecimalsP}
formatter={limitDecimalsF}
value={text?.planCount}
onChange={(val) => inputChange(val, text, record)}
/>
)
}))
setGoodsTableColumn([...goodsTableColumn, ...datesColumn])
setExpandIconColumn([...expandIconColumn, ...datesExpandIconColumn])
......@@ -157,21 +167,21 @@ const DeliveryPlanAwaitB2BUpdate: React.FC = () => {
})
}
// 获取详情
const getDetails = () => {
getOrderDeliveryPlanDetail({
id
}).then((res: any) => {
if (res.code === 1000) {
setDetails(res.data)
form.setFieldsValue({
planSummaryText: res.data.digest,
})
getPlannedDelivery()
handleDateAssembleColumn(res.data.planStartTime, res.data.planEndTime)
}
})
}
// 获取详情
const getDetails = () => {
getOrderDeliveryPlanDetail({
id
}).then((res: any) => {
if (res.code === 1000) {
setDetails(res.data)
form.setFieldsValue({
planSummaryText: res.data.digest,
})
getPlannedDelivery()
handleDateAssembleColumn(res.data.planStartTime, res.data.planEndTime)
}
})
}
// 获取流转记录
const getExternalRoamRecordData = () => {
......@@ -189,7 +199,7 @@ const DeliveryPlanAwaitB2BUpdate: React.FC = () => {
}, [])
return (<>
<Spin spinning={spinning}>
<Spin spinning={spinning}>
<AnchorPage
title={details?.planNo}
onBack={() => history.goBack()}
......@@ -264,7 +274,7 @@ const DeliveryPlanAwaitB2BUpdate: React.FC = () => {
</BaseInfo>
</Form>
</AnchorPage>
</Spin>
</Spin>
</>)
}
......
......@@ -12,7 +12,7 @@ import { SaveOutlined } from '@ant-design/icons'
import BaseInfo from '@/components/BaseInfo/BaseInfo'
import { ExternalRoamRecordTableColumn } from '../../constants/page-table-column'
import _ from 'lodash'
import { getDayAll, godAtob, integrationArrToObj, integrationOjb, TagStatus } from '../../utils'
import { getDayAll, godAtob, integrationArrToObj, integrationOjb, limitDecimalsF, limitDecimalsP, TagStatus } from '../../utils'
import { BrandColumn, ClassColumn, ConsigneeNumColumn, DeliveredNumColumn, MaterialModelColumn, MaterialNameColumn, MaterialNoColumn, OrderCreatedAtColumn, OrderNoColumn, OrderSummaryColumn, OrderNumColumn, PlannedDeliveryNumColumn, TransitNumColumn, UntilColumn } from '../../constants/table-column'
import { getOrderDeliveryPlanDeliveryHistory, getOrderDeliveryPlanDetail, getOrderDeliveryPlanDetailProductPage, postOrderDeliveryPlanUpdate } from '@/services/OrderNewV2Api'
import moment from 'moment'
......@@ -130,7 +130,16 @@ const DeliveryPlanAwaitSRMUpdate: React.FC = () => {
key: item,
width: 80,
align: 'center',
render: (text: any, record: any) => (<InputNumber style={{ width: '100%' }} bordered value={text?.planCount} onChange={(val) => inputChange(val, text, record)} />)
render: (text: any, record: any) => (
<InputNumber
style={{ width: '100%' }}
bordered
parser={limitDecimalsP}
formatter={limitDecimalsF}
value={text?.planCount}
onChange={(val) => inputChange(val, text, record)}
/>
)
}))
setMaterialTableColumn([...materialTableColumn, ...datesColumn])
setExpandIconColumn([...expandIconColumn, ...datesExpandIconColumn])
......
......@@ -12,7 +12,7 @@ import { Button, Form, Input, InputNumber, message, Space, Spin, Steps, Table, T
import { SaveOutlined } from '@ant-design/icons'
import BaseInfo from '@/components/BaseInfo/BaseInfo'
import { ExternalRoamRecordTableColumn } from '../../constants/page-table-column'
import { getDayAll, godAtob, integrationArrToObj, integrationOjb, TagStatus } from '../../utils'
import { getDayAll, godAtob, integrationArrToObj, integrationOjb, limitDecimalsF, limitDecimalsP, TagStatus } from '../../utils'
import { BrandColumn, ClassColumn, ConsigneeNumColumn, DeliveredNumColumn, MaterialModelColumn, MaterialNameColumn, MaterialNoColumn, OrderCreatedAtColumn, OrderNoColumn, OrderSummaryColumn, OrderNumColumn, PlannedDeliveryNumColumn, TransitNumColumn, UntilColumn, CommodityNoColumn, TradeNameColumn } from '../../constants/table-column'
import { getOrderDeliveryPlanDeliveryHistory, getOrderDeliveryPlanDetail, getOrderDeliveryPlanDetailProductPage, postOrderDeliveryPlanUpdate } from '@/services/OrderNewV2Api'
......@@ -144,7 +144,16 @@ const DeliveryPlanManagementUpdate: React.FC = () => {
key: item,
width: 80,
align: 'center',
render: (text: any, record: any) => (<InputNumber style={{ width: '100%' }} bordered value={text?.planCount} onChange={(val) => inputChange(val, text, record)} />)
render: (text: any, record: any) => (
<InputNumber
style={{ width: '100%' }}
bordered
parser={limitDecimalsP}
formatter={limitDecimalsF}
value={text?.planCount}
onChange={(val) => inputChange(val, text, record)}
/>
)
}))
const table_column = deliveryPlanType === '1' ? columnB2B : deliveryPlanType === '2' ? columnSRM : []
setTableColumn([...table_column, ...datesColumn])
......
// 公共组装类工具
import moment from "moment"
/**
* 数组转对象 默认赋值 0
* - 原数组: ['$04-01','$04-02']
......@@ -29,7 +31,7 @@ const integrationOjb = (obj) => {
...prev,
[`$${currVal}`]: obj[currVal]
}
},{})
}, {})
}
/**
......@@ -76,12 +78,53 @@ const godAtob = (str: string) => {
*/
const newMapValues = (newMapArr: Map<any, any>, isFlat?: boolean, depth?: number) => {
let values = []
for (const [key,value] of newMapArr) {
for (const [key, value] of newMapArr) {
values.push(value)
}
return isFlat ? values.flat(depth ?? 1) : values
}
/**
* InputNumber 属性 parser
* @param value
* @returns
*/
const limitDecimalsP = (value: any) => {
let reg = /^(\d+)\.(\d{4}).*$/
return value.replace(/\s?|(,*)/g, '').replace(reg, '$1$2.$3')
}
/**
* InputNumber 属性 formatter
* @param value
* @returns
*/
const limitDecimalsF = (value: moment.Moment) => {
let reg = /^(\d+)\.(\d{4}).*$/
return `${value}`.replace(reg, '$1$2.$3$4')
// return `${value}`.replace(/\B(?=(\d{6})+(?!\d))/g, ',').replace(reg, '$1$2.$3') // 三位一个逗号 有bug
}
/**
* 不能选择今天之前的日期和今天
* @param current
* @returns
*/
const disabledDate = (current: moment.Moment) => {
return current && current < moment().endOf('day')
}
const NEWDATE = new Date()
const YEAR = NEWDATE.getFullYear()
const TODAY = NEWDATE.getTime()
/**
* 判断是否在今天之后
* @param day
*/
const afterToday = (day: string) => {
}
export {
convertArrToObj,
integrationOjb,
......@@ -89,4 +132,7 @@ export {
godBtoa,
godAtob,
newMapValues,
limitDecimalsP,
limitDecimalsF,
disabledDate,
}
\ No newline at end of file
......@@ -32,40 +32,8 @@ const getDayAll = (starDay: string, endDay: string) => {
// dates.pop()
return dates
}
// deliveryPlanManagement - deliveryPlanAwaitB2B - details copy.ts 测试使用,上线前需要删除
const getDayAll2 = (starDay: string, endDay: string) => {
let arr = []
let dates = []
// 设置两个日期UTC时间
let db = new Date(starDay)
let de = new Date(endDay)
// 获取两个日期GTM时间
let s = db.getTime() - 24 * 60 * 60 * 1000
let d = de.getTime() - 24 * 60 * 60 * 1000
// 获取到两个日期之间的每一天的毫秒数
for (let i = s; i <= d; ) {
i = i + 24 * 60 * 60 * 1000
arr.push(parseInt(String(i)))
}
// 获取每一天的时间 YY-MM-DD
for (let j in arr) {
let time = new Date(arr[j])
let year = time.getFullYear()
let mouth = time.getMonth() + 1 >= 10 ? time.getMonth() + 1 : '0' + (time.getMonth() + 1)
let day = time.getDate() >= 10 ? time.getDate() : '0' + time.getDate()
// year + '-' +
let YYMMDD = year + '-' + mouth + '-' + day
dates.push(YYMMDD)
}
dates.pop()
return dates
}
export {
getDayAll,
getDayAll2,
}
\ 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