Commit d7fea8be authored by 前端-钟卫鹏's avatar 前端-钟卫鹏

Merge branch 'v2-220418' of…

Merge branch 'v2-220418' of https://gitlab.shushangyun.com/linkseeks-design/pro-platform into fix418
parents c433b458 d6edae11
......@@ -85,7 +85,7 @@ const DeliveryNotice = [
},
{
path: '/memberCenter/order/deliveryNotice/synergy/create',
path: '/memberCenter/order/deliveryNotice/synergyCreate',
name: '新增送货单(协同)',
component: '@/pages/order/deliveryNotice/create/add',
hideInMenu: true,
......
......@@ -9,6 +9,7 @@ import AreaSet from './AreaSet';
interface SumbitRequest {
add: (values?: any) => Promise<any>
update: (values?: any) => Promise<any>
info: (values?: any) => Promise<any>
}
/**
......@@ -186,6 +187,7 @@ function AddressDrawer(props: AddressDrawerProps) {
<Space className='w-full' direction="vertical">
<AddressRaio
info={sumbitRequest?.info}
onEdit={(addr) => {
setShowForm(true)
addrForm.setFieldsValue(addr);
......
......@@ -13,10 +13,11 @@ export const AddressRaioContextProvider = AddressRaioContext.Provider;
interface AddressRaioProps {
onChange?: (value) => void
onEdit?: (address) => void
info: (val) => Promise<any>
}
function AddressRaio(props: AddressRaioProps) {
const { onEdit } = props;
const { onEdit, info } = props;
const addrList = useContext(AddressRaioContext);
......@@ -24,7 +25,7 @@ function AddressRaio(props: AddressRaioProps) {
<>
{addrList.map(addr => (
<div className='flex mb-14' key={addr.id}>
<div className='_left felx-auto'>
<Radio className={styles['antRadioWrapperItems']} value={JSON.stringify(addr)}>
<div className='address_base ml-10'>
......@@ -43,14 +44,14 @@ function AddressRaio(props: AddressRaioProps) {
<Button.Group size='small'>
<Button onClick={() => {
if (onEdit) {
getLogisticsShipperAddressGet({ id: addr.id }).then(res => {
info({ id: addr.id }).then(res => {
onEdit(res.data)
})
}
}}>
编辑
</Button>
</Button.Group>
</div>
</div>
......
export { default as AddressDrawer } from './AddressDrawer'
\ No newline at end of file
import { getLogisticsReceiverAddressGet, getLogisticsSelectListReceiverAddress, getLogisticsSelectListShipperAddress, getLogisticsShipperAddressGet, postLogisticsReceiverAddressAdd, postLogisticsReceiverAddressUpdate, postLogisticsShipperAddressAdd, postLogisticsShipperAddressUpdate } from '@/services/LogisticsV2Api'
import AddressDrawer from './AddressDrawer'
export { default as AddressDrawer } from './AddressDrawer'
export const ReceiverAddress = (props) => {
return (
<AddressDrawer
{...props}
addressListRequest={(val) => {
return getLogisticsSelectListReceiverAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsReceiverAddressUpdate(val)
},
add: (val) => {
return postLogisticsReceiverAddressAdd(val)
},
info: (val) => {
return getLogisticsReceiverAddressGet(val)
}
}}
/>
)
}
export const ShipperAddress = (props) => {
return (
<AddressDrawer
{...props}
addressListRequest={(val) => {
return getLogisticsSelectListShipperAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsShipperAddressUpdate(val)
},
add: (val) => {
return postLogisticsShipperAddressAdd(val)
},
info: (val) => {
return getLogisticsShipperAddressGet(val)
}
}}
/>
)
}
\ No newline at end of file
......@@ -5,23 +5,23 @@ export const AuthUrl = (btnCode: string) => {
const { pathname } = new URL(window.location.href);
const RoutesAuth = auth.filter((item: any) => item?.u === pathname)
// 默认 让所以按钮权限 打开
return true;
// return true;
// 先把全部按钮打开
// if (btnCode === 'DevTest') return true
// // 本地开发时传的特殊标识,直接开放权限
// if (RoutesAuth.length > 0) {
// const { b } = RoutesAuth[0];
// // 本地开发时传的特殊标识,直接开放权限
// for (let i = 0; i < b.length; i++) {
// if (btnCode) {
// // 是否有页面标识
// // 找到该页面标识的按钮权限数据,并匹配权限按钮是否勾选
// if (b[i] === btnCode) {
// return true
// }
// }
// continue
// }
// return false
// }
if (btnCode === 'DevTest') return true
// 本地开发时传的特殊标识,直接开放权限
if (RoutesAuth.length > 0) {
const { b } = RoutesAuth[0];
// 本地开发时传的特殊标识,直接开放权限
for (let i = 0; i < b.length; i++) {
if (btnCode) {
// 是否有页面标识
// 找到该页面标识的按钮权限数据,并匹配权限按钮是否勾选
if (b[i] === btnCode) {
return true
}
}
continue
}
return false
}
}
......@@ -26,26 +26,22 @@ const AuthButton = (props: AuthButtonProps) => {
const _authorityBtn = () => {
// 本地开发时直接开放权限
if (process.env.NODE_ENV === "development") return true
// 全部按钮打开
return true
// 校验权限
// if (RoutesAuth.length > 0) {
// const { b } = RoutesAuth[0];
// console.log(RoutesAuth.length, RoutesAuth)
// for (let i = 0; i < b.length; i++) {
// if (btnCode) {
// // 是否有页面标识
// // 找到该页面标识的按钮权限数据,并匹配权限按钮是否勾选
// if (b[i] === btnCode) {
// return true
// }
// }
// continue
// }
// return false
// }
if (RoutesAuth.length > 0) {
const { b } = RoutesAuth[0];
console.log(RoutesAuth.length, RoutesAuth)
for (let i = 0; i < b.length; i++) {
if (btnCode) {
// 是否有页面标识
// 找到该页面标识的按钮权限数据,并匹配权限按钮是否勾选
if (b[i] === btnCode) {
return true
}
}
continue
}
return false
}
}
return _authorityBtn() ? children : null
}
......
......@@ -274,4 +274,5 @@
'editor.cateogry.show.title': 'Whether to show recommended categories',
'editor.cateogry.show.yes': 'Yes',
'editor.cateogry.show.no': 'No',
'template.detail.openMro': 'Enable Mall MRO filter mode',
}
......@@ -274,5 +274,6 @@ export default {
'editor.cateogry.show.title': '추천 카테고리 표시 여부',
'editor.cateogry.show.yes': '예',
'editor.cateogry.show.no': '아니요',
'template.detail.openMro': '몰 MRO 필터 모드 활성화',
}
......@@ -274,5 +274,6 @@ export default {
'editor.cateogry.show.title': '是否展示推荐分类',
'editor.cateogry.show.yes': '是',
'editor.cateogry.show.no': '否',
'template.detail.openMro': '启用商城MRO筛选模式',
}
......@@ -8,6 +8,8 @@ import EyePreview from '@/components/EyePreview';
import { PlusOutlined } from '@ant-design/icons';
import { getMemberStorePage, postMemberStoreDelete, postMemberStoreEnable } from '@/services/MemberV2Api';
import StatusSwitch from '@/components/StatusSwitch';
import { AuthUrl } from '@/components/AuthButton/AuthUrl';
import AuthButton from '@/components/AuthButton';
const intl = getIntl()
......@@ -27,12 +29,14 @@ const PortalSystem = () => {
const _delete = async (record) => {
setConfirmLoading(true)
await postMemberStoreDelete({id: record.id}).then(res => {
await postMemberStoreDelete({ id: record.id }).then(res => {
setConfirmLoading(false)
tableRef.current.reload()
})
}
console.log(AuthUrl('portalSystem.detail'), 'portalSystem.detail')
const columns: ColumnType<any>[] = [
{
title: intl.formatMessage({ id: 'portalSystem.mendiandaima', defaultMessage: '门店代码' }),
......@@ -43,7 +47,7 @@ const PortalSystem = () => {
title: intl.formatMessage({ id: 'portalSystem.mendianmingcheng', defaultMessage: '门店名称' }),
key: 'name',
dataIndex: 'name',
render: (text, record) => <EyePreview url={`/memberCenter/systemSetting/authConfig/portalSystem/detail?id=${record.id}`}>{text}</EyePreview>
render: (text, record) => <EyePreview type={AuthUrl('portalSystem.detail') ? 'link' : 'button'} url={`/memberCenter/systemSetting/authConfig/portalSystem/detail?id=${record.id}`}>{text}</EyePreview>
},
{
title: intl.formatMessage({ id: 'portalSystem.mendiandizhi', defaultMessage: '门店地址' }),
......@@ -75,7 +79,7 @@ const PortalSystem = () => {
title: intl.formatMessage({ id: 'portalSystem.zhuangtai', defaultMessage: '状态' }),
key: 'status',
dataIndex: 'status',
render: (_text, record) => <StatusSwitch handleConfirm={() => handleStatus(record)} record={record}/>
render: (_text, record) => <AuthButton btnCode='portalSystem.status'><StatusSwitch handleConfirm={() => handleStatus(record)} record={record} /></AuthButton>
},
{
title: intl.formatMessage({ id: 'portalSystem.caozuo', defaultMessage: '操作' }),
......@@ -83,13 +87,15 @@ const PortalSystem = () => {
dataIndex: 'operate',
render: (_text, record) => (
<Fragment>
{record.showUpdate && <Button type='link' onClick={() => history.push(`/memberCenter/systemSetting/authConfig/portalSystem/edit?id=${record.id}`)}>{intl.formatMessage({ id: 'portalSystem.bianji', defaultMessage: '编辑' })}</Button>}
{record.showUpdate && <AuthButton btnCode='portalSystem.eidt'><Button type='link' onClick={() => history.push(`/memberCenter/systemSetting/authConfig/portalSystem/edit?id=${record.id}`)}>{intl.formatMessage({ id: 'portalSystem.bianji', defaultMessage: '编辑' })}</Button></AuthButton>}
{record.showDelete && (
<Popconfirm title={intl.formatMessage({ id: 'portalSystem.quedingyaoshanchuma', defaultMessage: '确定要删除吗?' })} okText={intl.formatMessage({ id: 'portalSystem.shi', defaultMessage: '是' })} cancelText={intl.formatMessage({ id: 'portalSystem.fou', defaultMessage: '否' })} onConfirm={() => _delete(record)} okButtonProps={{ loading: confirmLoading }}>
<Button type='link'>
{intl.formatMessage({ id: 'portalSystem.shanchu', defaultMessage: '删除' })}
</Button>
</Popconfirm>
<AuthButton btnCode='portalSystem.deletd'>
<Popconfirm title={intl.formatMessage({ id: 'portalSystem.quedingyaoshanchuma', defaultMessage: '确定要删除吗?' })} okText={intl.formatMessage({ id: 'portalSystem.shi', defaultMessage: '是' })} cancelText={intl.formatMessage({ id: 'portalSystem.fou', defaultMessage: '否' })} onConfirm={() => _delete(record)} okButtonProps={{ loading: confirmLoading }}>
<Button type='link'>
{intl.formatMessage({ id: 'portalSystem.shanchu', defaultMessage: '删除' })}
</Button>
</Popconfirm>
</AuthButton>
)}
</Fragment>
)
......@@ -165,8 +171,8 @@ const PortalSystem = () => {
},
},
enum: [
{label: intl.formatMessage({id: 'portalSystem.qiyong', defaultMessage: '启用'}), value: 1},
{label: intl.formatMessage({id: 'portalSystem.tingyong', defaultMessage: '停用'}), value: 0},
{ label: intl.formatMessage({ id: 'portalSystem.qiyong', defaultMessage: '启用' }), value: 1 },
{ label: intl.formatMessage({ id: 'portalSystem.tingyong', defaultMessage: '停用' }), value: 0 },
],
},
}
......@@ -188,13 +194,16 @@ const PortalSystem = () => {
<Row>
<Col span={24}>
<Space direction="horizontal" size={16}>
<Button
type="primary"
icon={<PlusOutlined />}
onClick={() => history.push(`/memberCenter/systemSetting/authConfig/portalSystem/add`)}
>
{intl.formatMessage({id: 'portalSystem.added', defaultMessage: '新增'})}
</Button>
<AuthButton btnCode='portalSystem.added'>
<Button
type="primary"
icon={<PlusOutlined />}
onClick={() => history.push(`/memberCenter/systemSetting/authConfig/portalSystem/add`)}
>
{intl.formatMessage({ id: 'portalSystem.added', defaultMessage: '新增' })}
</Button>
</AuthButton>
</Space>
</Col>
</Row>
......
......@@ -151,7 +151,7 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
{/* @todo 需要通过PASS配置MRO才能显示是否开启MRO商城筛选 */}
{
isMro && <div>
<Checkbox onChange={onChangeMroSetting} checked={detailInfo.openMro}>启用商城MRO筛选模式</Checkbox>
<Checkbox onChange={onChangeMroSetting} checked={detailInfo.openMro}>{intl.formatMessage({ id: 'template.detail.openMro', defaultMessage: '启用商城MRO筛选模式' })}</Checkbox>
</div>
}
<AuthButton btnCode='channelTemplate.Detail.see' >
......@@ -177,7 +177,7 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
}
</AuthButton>
<AuthButton btnCode='channelTemplate.Detail.use' >
<div className={cx(styles.btn, detailInfo?.use === 1 ? styles.use : '')} onClick={() => detailInfo?.use !== 1 ? setUseModalVisible(true) : {}}>
<div className={cx(styles.btn, detailInfo?.use === 1 ? styles.use : '')} onClick={() => setUseModalVisible(true)}>
<PushpinOutlined />
<label>{detailInfo?.use === 1 ? intl.formatMessage({ id: 'shop.template.button.state.using' }) : intl.formatMessage({ id: 'shop.template.button.state.use' })}</label>
</div>
......
......@@ -84,9 +84,9 @@ export class HandleFormSubmit {
digest: data?.digest,
remark: data?.remark,
member: {
buyerMemberId: data?.buyerMemberName,
buyerMemberId: data?.buyerMemberId,
buyerMemberName: data?.buyerMemberName,
buyerRoleId: data?.vendorMemberId,
buyerRoleId: data?.buyerRoleId,
roleType: 2,
name: data?.buyerMemberName
},
......@@ -103,7 +103,7 @@ export class HandleFormSubmit {
receiveVO: {
...data?.receiverBO,
receiverName: data?.receiverBO?.consignee,
fullAddress: `${data?.receiverBO?.provinceName ?? ''}${data?.receiverBO?.cityName ?? ''}${data?.receiverBO?.districtName??''}${data?.receiverBO?.streetName ?? ''}`
fullAddress: `${data?.receiverBO?.provinceName ?? ''}${data?.receiverBO?.cityName ?? ''}${data?.receiverBO?.districtName ?? ''}${data?.receiverBO?.streetName ?? ''}`
},
executorVO: {
...data?.executorVO,
......@@ -123,7 +123,7 @@ export class HandleFormSubmit {
deliveryNo: data?.deliveryNo
}
console.log(formField);
return formField
}
......@@ -218,7 +218,8 @@ export class DeliveryNoteAddService extends HandleFormSubmit {
values.buyerMemberId = values.member.buyerMemberId
values.buyerMemberName = values.member.buyerMemberName
values.receiveVO.consignee = values.receiveVO.shipperName
values.receiveVO.consignee = values.receiveVO.shipperName ?? values.receiveVO.consignee
values.executorVO.consignee = values.executorVO.receiverName
values.logisticsCompanyId = values?.logisticsCompanyInt?.value ?? ''
......@@ -322,6 +323,7 @@ export class ReceiveOrderCreate extends DeliveryNoteAddService {
label: data.logisticsCompany,
value: data.logisticsCompanyId
},
deliveryType: data?.deliveryType,
outerHistoryList: data.outerHistoryList,
deliveryNo: data.deliveryNo
}
......@@ -372,7 +374,8 @@ export class DeliveryNoticeOrderAddService extends DeliveryNoteAddService {
},
"receiverBO.phone": data.receiveVO.phone,
products: data.products,
orderType: data.orderType
orderType: data.orderType,
sourceNo: data.sourceNo
}
return formField
})
......
......@@ -84,7 +84,7 @@ const CalendarModal = React.forwardRef((props: CalendarModalProps, ref: React.Re
<Modal
title={title || DefaultSelectDateText}
visible={visible}
width={width || 1080}
width={width || 680}
okText={okText || DefaultModalOkText}
cancelText={cancelText || DefaultModalCancelText}
onOk={modalOnOk}
......
......@@ -40,7 +40,7 @@ export enum STATUS {
// 已确认
[STATUS.HAD_CONFIRM]: '已确认',
// 已生产送货单
[STATUS.HAD_GENERATE]: '已生送货单',
[STATUS.HAD_GENERATE]: '已生送货单',
// 已作废
[STATUS.HAD_TO_VOID]: '已作废',
}
......@@ -56,7 +56,7 @@ export const TAG_STATUS_COLOR = {
// 已确认
[STATUS.HAD_CONFIRM]: { color: '#ebf9f6', fontColor: '#00a98f' },
// 已生产送货单
[STATUS.HAD_GENERATE]: { color: '#f0f5ff', fontColor: '#f0f5ff' },
[STATUS.HAD_GENERATE]: { color: '#ebf9f6', fontColor: '#00a98f' },
// 已作废
[STATUS.HAD_TO_VOID]: { color: '#fff2f0', fontColor: '#ff4d4f' },
}
......@@ -2,6 +2,8 @@ export const ReceiptAddLabel = '新增收货单';
export const ReceiptAbstractLabel = '收货单摘要';
export const DeliveryAbstractLabel = '送货单摘要';
export const DeliveryAbstractNoLabel = '送货通知编号';
export const DeliveryPanleNoLabel = '送货计划编号'
export const SupplyMembersLabel = '供应会员';
export const NoteLabel = '备注';
......@@ -15,7 +17,7 @@ export const DeliveryNoLabel = '送货单编号';
export const DeliveryDateLabel = '发货日期';
export const DeliveryTimeLabel = '发货时间';
export const DeliveryAddrLabel = '送货地址';
export const DeliverySlefAddrLabel = '货(自提)地址';
export const DeliverySlefAddrLabel = '货(自提)地址';
export const DeliveryNameLabel = '送货人';
export const DeliveryPhoneLabel = '送货人电话';
......
......@@ -5,7 +5,12 @@
*/
import AnchorPage, { AnchorsItem } from '@/components/AnchorPage'
import React, { useCallback, useEffect, useState, useContext } from 'react'
import { BaseInfo, BuyerLabel, ConsigneeTimeLabel, DeliveryAbstractLabel, DeliveryDate, DeliveryGood, DeliveryInfo, DeliveryNameLabel, DeliveryPhoneLabel, DeliveryTime, DeliveryTimeLabel, DeliveryTypeLabel, Distribution, LogisticsCarNoLabel, LogisticsCompanyLabel, LogisticsInfo, LogisticsNoLabel, NoteLabel, ReceivingAddress } from '../../constants'
import {
BaseInfo, BuyerLabel, ConsigneeTimeLabel, DeliveryAbstractLabel, DeliveryDate,
DeliveryGood, DeliveryInfo, DeliveryNameLabel, DeliveryPanleNoLabel, DeliveryPhoneLabel, DeliveryTime,
DeliveryTimeLabel, DeliveryTypeLabel, Distribution, LogisticsCarNoLabel,
LogisticsCompanyLabel, LogisticsInfo, LogisticsNoLabel, NoteLabel, ReceivingAddress as ReceivingAddressLabel
} from '../../constants'
import { BaseInfo as ContentBox } from '@/components/BaseInfo'
import { Input, Table, Radio, Form, Button, Modal } from 'antd';
import { DeliveryNoticeTableColumn } from '../../constants/page-table-column';
......@@ -23,6 +28,8 @@ import { DeliveryAddFactory } from '../../assets/factory/DeliveryAddFactory';
import { useLocation } from 'umi';
import { SourceTypeEnum } from '../../constants/SourceTypeEnum';
import { ShipperAddress, ReceiverAddress } from '@/components/AddressDrawer'
const DeliveryNoticeManageSRMDetails: React.FC = () => {
......@@ -51,6 +58,8 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
let formFeils = service.formatField(data)
setTableDataSource(data.products)
form.setFieldsValue({
sourceType: SourceTypeEnum.PlanAdd,
...formFeils
......@@ -64,7 +73,6 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
title: "提示",
content: "确认送货单资料填写是否正确,提交后不能再撤回!",
onOk: () => {
service.setTableData(tableDataSource);
service.submit().then(res => {
if (res.code === 1000) {
......@@ -96,6 +104,11 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
</FormItem>
<ContentBox title={BaseInfo.name} id={BaseInfo.key}>
<FormItem label={DeliveryPanleNoLabel} name="sourceNo">
<Input disabled />
</FormItem>
<FormItem
rules={[
required()
......@@ -134,39 +147,22 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
<DatePickerSelect disabled={true} defualtToday={true} className='w-full' />
</FormItem>
<FormItem
rules={[
required()
]}
label={DeliveryNameLabel} name="deliveryVO">
<AddressDrawer
showDefault={true}
addressListRequest={(val) => {
return getLogisticsSelectListReceiverAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsReceiverAddressUpdate(val)
},
add: (val) => {
return postLogisticsReceiverAddressAdd(val)
}
}}
onChange={(val) => {
form.setFieldsValue({
"executorVO.phone": val?.phone
})
}}
/>
label={DeliveryTime} name="deliveryRangeTime">
<DatePickerSelect.RangePicker className="w-full" picker='time' />
</FormItem>
<FormItem
rules={[
required()
]}
label={DeliveryTime} name="deliveryRangeTime">
<DatePickerSelect.RangePicker className="w-full" picker='time' />
label={DeliveryNameLabel} name="executorVO.consignee">
<Input />
</FormItem>
<FormItem
......@@ -180,6 +176,22 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
<ContentBox
title={DeliveryInfo.name} id={DeliveryInfo.key}>
<FormItem
rules={[
required()
]}
label={DeliveryNameLabel} name="deliveryVO">
<ShipperAddress
showDefault={true}
onChange={(val) => {
form.setFieldsValue({
"executorVO.phone": val?.phone
})
}}
/>
</FormItem>
<FormItem
rules={[
required()
......@@ -192,21 +204,9 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
rules={[
required()
]}
label={ReceivingAddress} name="receiveVO">
<AddressDrawer
label={ReceivingAddressLabel} name="receiveVO">
addressListRequest={(val) => {
return getLogisticsSelectListShipperAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsShipperAddressUpdate(val)
},
add: (val) => {
return postLogisticsShipperAddressAdd(val)
}
}}
/>
<ReceiverAddress />
</FormItem>
......@@ -239,31 +239,6 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
</ContentBox>
<ContentBox title={DeliveryGood.name} id={DeliveryGood.key} cols={1}>
{/* 在编辑的时候不需要进行此操作 */}
<DeliveryGoodTableSelect
form={form}
onChange={(value) => {
if (value.length > 0) {
let addr = {
provinceName: value[0].provinceName,
cityName: value[0].cityName,
districtName: value[0].districtName,
streetName: value[0].streetName,
address: value[0].address,
phone: value[0].phone,
consignee: value[0].consignee,
receiverName: value[0].consignee,
fullAddress: `${value[0].provinceName}${value[0].cityName}${value[0].districtName}${value[0].streetName}${value[0].address}`
}
form.setFieldsValue({
'receiveVO': addr
})
}
setTableDataSource(value)
}}
/>
<HarvestMaterialContextProvider value={{
dataSource: tableDataSource
......
......@@ -11,7 +11,7 @@ import { Input, Table, Radio, Form, Button, Modal } from 'antd';
import { DeliveryNoticeTableColumn } from '../../constants/page-table-column';
import { FormItem, required } from '@/components/FormItem';
import { DatePickerSelect } from '@/components/DatePickerSelect'
import { AddressDrawer } from '@/components/AddressDrawer';
import { AddressDrawer, ReceiverAddress, ShipperAddress } from '@/components/AddressDrawer';
import { getLogisticsSelectListReceiverAddress, getLogisticsSelectListShipperAddress, postLogisticsReceiverAddressAdd, postLogisticsReceiverAddressUpdate, postLogisticsShipperAddressAdd, postLogisticsShipperAddressUpdate } from '@/services/LogisticsV2Api';
import DeliveryGoodTableSelect from '../../components/DeliveryGoodTableSelect/DeliveryGoodTableSelect';
import { HarvestMaterialContextProvider, HarvestMaterialInput } from '../../assets/context';
......@@ -91,6 +91,7 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
</FormItem>
<ContentBox title={BillsInfo.name} id={BillsInfo.key}>
<FormItem
rules={[
required()
......@@ -133,31 +134,19 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
rules={[
required()
]}
label={DeliveryNameLabel} name="executorVO">
<AddressDrawer
addressListRequest={(val) => {
return getLogisticsSelectListShipperAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsShipperAddressUpdate(val)
},
add: (val) => {
return postLogisticsShipperAddressAdd(val)
}
}}
/>
label={DeliveryTimeLabel} name="deliveryRangeTime">
<DatePickerSelect.RangePicker className="w-full" picker='time' />
</FormItem>
<FormItem
rules={[
required()
]}
label={DeliveryTimeLabel} name="deliveryRangeTime">
<DatePickerSelect.RangePicker className="w-full" picker='time' />
label={DeliveryNameLabel} name="executorVO.consignee">
<Input />
</FormItem>
<FormItem
rules={[
required()
......@@ -169,6 +158,19 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
<ContentBox
title={DeliveryInfo.name} id={DeliveryInfo.key}>
<FormItem
rules={[
required()
]}
label={DeliverySlefAddrLabel} name="deliveryVO">
<ShipperAddress
showDefault={true}
/>
</FormItem>
<FormItem
rules={[
required()
......@@ -182,21 +184,8 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
required()
]}
label={ReceivingAddress} name="receiveVO">
<AddressDrawer
disabled={false}
showDefault={true}
<ReceiverAddress
formatValue={addrFormatValue}
addressListRequest={(val) => {
return getLogisticsSelectListReceiverAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsReceiverAddressUpdate(val)
},
add: (val) => {
return postLogisticsReceiverAddressAdd(val)
}
}}
/>
</FormItem>
......
......@@ -7,6 +7,7 @@ import AnchorPage, { AnchorsItem } from '@/components/AnchorPage'
import React, { useCallback, useEffect, useState, useContext } from 'react'
import {
BillsInfo, BuyerLabel, ConsigneeTimeLabel, DeliveryAbstractLabel, DeliveryDateLabel, DeliveryGood, DeliveryInfo, DeliveryNameLabel, DeliveryPhoneLabel,
DeliverySlefAddrLabel,
DeliveryTimeLabel, DeliveryTypeLabel, Distribution, ExternalRoamRecord, LogisticsCarNoLabel, LogisticsCompanyLabel, LogisticsInfo, LogisticsNoLabel, NoteLabel, ReceivingAddress
} from '../../constants'
import { BaseInfo as ContentBox } from '@/components/BaseInfo'
......@@ -14,7 +15,7 @@ import { Input, Table, Row, Col, Select, Radio, Form, Button, Modal } from 'antd
import { DeliveryNoticeTableColumn, ExternalRoamRecordTableColumn } from '../../constants/page-table-column';
import { FormItem, required } from '@/components/FormItem';
import { DatePickerSelect } from '@/components/DatePickerSelect'
import { AddressDrawer } from '@/components/AddressDrawer';
import { AddressDrawer, ReceiverAddress, ShipperAddress } from '@/components/AddressDrawer';
import { getLogisticsSelectListReceiverAddress, getLogisticsSelectListShipperAddress, postLogisticsReceiverAddressAdd, postLogisticsReceiverAddressUpdate, postLogisticsShipperAddressAdd, postLogisticsShipperAddressUpdate } from '@/services/LogisticsV2Api';
import { DeliveryNoteB2bUploadService } from '../../assets/handles/HandleFormSubmit';
import { RoleSelect } from '@/components/RoleSelect';
......@@ -136,33 +137,22 @@ const DeliveryNoticeManageSRMEdit: React.FC = () => {
<DatePickerSelect disabled={true} className='w-full' />
</FormItem>
<FormItem
rules={[
required()
]}
label={DeliveryNameLabel} name="executorVO">
<AddressDrawer
disabled={true}
addressListRequest={(val) => {
return getLogisticsSelectListShipperAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsShipperAddressUpdate(val)
},
add: (val) => {
return postLogisticsShipperAddressAdd(val)
}
}}
/>
label={DeliveryTimeLabel} name="deliveryRangeTime">
<DatePickerSelect.RangePicker disabled={true} className="w-full" picker='time' />
</FormItem>
<FormItem
rules={[
required()
]}
label={DeliveryTimeLabel} name="deliveryRangeTime">
<DatePickerSelect.RangePicker disabled={true} className="w-full" picker='time' />
label={DeliveryNameLabel} name="executorVO.consignee">
<Input />
</FormItem>
<FormItem label={DeliveryPhoneLabel} name="executorVO.phone">
......@@ -171,6 +161,19 @@ const DeliveryNoticeManageSRMEdit: React.FC = () => {
</ContentBox>
<ContentBox title={DeliveryInfo.name} id={DeliveryInfo.key}>
<FormItem
rules={[
required()
]}
label={DeliverySlefAddrLabel} name="deliveryVO">
<ShipperAddress
showDefault={true}
/>
</FormItem>
<FormItem
rules={[
required()
......@@ -184,20 +187,10 @@ const DeliveryNoticeManageSRMEdit: React.FC = () => {
required()
]}
label={ReceivingAddress} name="receiveVO">
<AddressDrawer
disabled={false}
<ReceiverAddress
disabled={true}
formatValue={addrFormatValue}
addressListRequest={(val) => {
return getLogisticsSelectListReceiverAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsReceiverAddressUpdate(val)
},
add: (val) => {
return postLogisticsReceiverAddressAdd(val)
}
}}
/>
</FormItem>
......
......@@ -20,6 +20,8 @@ import { TagStatusFactory } from '../../utils'
import dayjs from 'dayjs'
import NoteFactoryService from '../../assets/handles/DeliveryNoteService'
import { Link, useHistory } from 'umi'
import AuthButton from '@/components/AuthButton'
import { AuthUrl } from '@/components/AuthButton/AuthUrl'
const tagStatus = TagStatusFactory.getInstance();
const statusTxt = new Map([[1, '已提交'], [2, '已收货'], [3, '已作废']]);
......@@ -32,28 +34,27 @@ const DeliveryNoticeManageB2B: React.FC = () => {
const formActions = createFormActions()
const controllerBtns = (<Space>
<Link to={"/memberCenter/order/deliveryNotice/manageB2B/add"}>
<Button type='primary' icon={<PlusOutlined />}>
新增
</Button>
</Link>
<AuthButton btnCode='deliveryNoticeManageB2B.create'>
<Button type='primary' icon={<PlusOutlined />} onClick={() => history.push(`/memberCenter/order/deliveryNotice/manageB2B/add`)}>新增</Button>
</AuthButton>
</Space>)
const renderOptionButton = (record: any) => {
const btnAuthOfOperationTextMap = {
'修改': 'DevTest',
'作废': 'DevTest',
'查看': 'DevTest',
'修改': 'deliveryNoticeManageB2B.update',
// '作废': 'DevTest',
'查看': 'deliveryNoticeManageB2B.looking',
}
const buttonGroup = {
'修改': true,
'作废': false,
'修改': record.outerStatus === 1,
// '作废': false,
'查看': true,
}
const operationHandler = {
'修改': () => {
history.push(`/memberCenter/order/deliveryNotice/manageB2B/edit?id=${record.id}`)
},
'作废': () => { console.log('作废 :>> ',) },
// '作废': () => { console.log('作废 :>> ',) },
'查看': () => {
history.push(`/memberCenter/order/deliveryNotice/manageB2B/details?id=${record.id}`)
},
......@@ -72,7 +73,7 @@ const DeliveryNoticeManageB2B: React.FC = () => {
dataIndex: 'id',
key: 'id',
width: 160,
render: (text, r) => <EyePreview url={`/memberCenter/order/deliveryNotice/manageB2B/details?id=${r.id}`}>{r.deliveryNo}</EyePreview>
render: (text, r) => <EyePreview type={AuthUrl('deliveryNoticeManageB2B.looking')? 'link': 'button'} url={`/memberCenter/order/deliveryNotice/manageB2B/details?id=${r.id}`}>{r.deliveryNo}</EyePreview>
},
{ title: '送货单摘要', dataIndex: 'digest', key: 'digest' },
{
......
......@@ -11,7 +11,7 @@ import { Input, Table, Row, Col, Select, Radio, Form, Button, Modal } from 'antd
import { DeliveryNoticeTableColumn } from '../../constants/page-table-column';
import { FormItem, required } from '@/components/FormItem';
import { DatePickerSelect } from '@/components/DatePickerSelect'
import { AddressDrawer } from '@/components/AddressDrawer';
import { AddressDrawer, ReceiverAddress, ShipperAddress } from '@/components/AddressDrawer';
import { getLogisticsSelectListReceiverAddress, getLogisticsSelectListShipperAddress, postLogisticsReceiverAddressAdd, postLogisticsReceiverAddressUpdate, postLogisticsShipperAddressAdd, postLogisticsShipperAddressUpdate } from '@/services/LogisticsV2Api';
import DeliveryGoodTableSelect from '../../components/DeliveryGoodTableSelect/DeliveryGoodTableSelect';
import { HarvestMaterialContextProvider, HarvestMaterialContext, HarvestMaterialInput } from '../../assets/context';
......@@ -132,21 +132,8 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
rules={[
required()
]}
label={DeliveryNameLabel} name="executorVO">
<AddressDrawer
addressListRequest={(val) => {
return getLogisticsSelectListShipperAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsShipperAddressUpdate(val)
},
add: (val) => {
return postLogisticsShipperAddressAdd(val)
}
}}
/>
label={DeliveryNameLabel} name="executorVO.consignee">
<Input />
</FormItem>
<FormItem
......@@ -168,6 +155,19 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
<ContentBox
title={DeliveryInfo.name} id={DeliveryInfo.key}>
<FormItem
rules={[
required()
]}
label={DeliverySlefAddrLabel} name="deliveryVO">
<ShipperAddress
showDefault={true}
/>
</FormItem>
<FormItem
rules={[
required()
......@@ -181,28 +181,18 @@ const DeliveryNoticeManageSRMDetails: React.FC = () => {
required()
]}
label={ReceivingAddress} name="receiveVO">
<AddressDrawer
disabled={false}
showDefault={true}
formatValue={addrFormatValue}
addressListRequest={(val) => {
return getLogisticsSelectListReceiverAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsReceiverAddressUpdate(val)
},
add: (val) => {
return postLogisticsReceiverAddressAdd(val)
}
}}
<ReceiverAddress
/>
</FormItem>
</ContentBox>
<ContentBox title={LogisticsInfo.name} id={LogisticsInfo.key}>
<FormItem
rules={[
required()
......
......@@ -11,7 +11,7 @@ import { Input, Table, Row, Col, Select, Radio, Form, Button, message, Modal } f
import { DeliveryNoticeTableColumn, ExternalRoamRecordTableColumn } from '../../constants/page-table-column';
import { FormItem, required } from '@/components/FormItem';
import { DatePickerSelect } from '@/components/DatePickerSelect'
import { AddressDrawer } from '@/components/AddressDrawer';
import { AddressDrawer, ReceiverAddress, ShipperAddress } from '@/components/AddressDrawer';
import { getLogisticsSelectListReceiverAddress, getLogisticsSelectListShipperAddress, postLogisticsReceiverAddressAdd, postLogisticsReceiverAddressUpdate, postLogisticsShipperAddressAdd, postLogisticsShipperAddressUpdate } from '@/services/LogisticsV2Api';
import DeliveryGoodTableSelect from '../../components/DeliveryGoodTableSelect/DeliveryGoodTableSelect';
import { HarvestMaterialContextProvider, HarvestMaterialContext } from '../../assets/context';
......@@ -142,20 +142,8 @@ const DeliveryNoticeManageSRMEdit: React.FC = () => {
rules={[
required()
]}
label={DeliveryNameLabel} name="executorVO">
<AddressDrawer
addressListRequest={(val) => {
return getLogisticsSelectListShipperAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsShipperAddressUpdate(val)
},
add: (val) => {
return postLogisticsShipperAddressAdd(val)
}
}}
/>
label={DeliveryNameLabel} name="executorVO.consignee">
<Input />
</FormItem>
<FormItem
......@@ -172,6 +160,17 @@ const DeliveryNoticeManageSRMEdit: React.FC = () => {
</ContentBox>
<ContentBox title={DeliveryInfo.name} id={DeliveryInfo.key}>
<FormItem
rules={[
required()
]}
label={DeliverySlefAddrLabel} name="deliveryVO">
<ShipperAddress
/>
</FormItem>
<FormItem
rules={[
required()
......@@ -185,20 +184,8 @@ const DeliveryNoticeManageSRMEdit: React.FC = () => {
required()
]}
label={ReceivingAddress} name="receiveVO">
<AddressDrawer
disabled={true}
formatValue={addrFormatValue}
addressListRequest={(val) => {
return getLogisticsSelectListReceiverAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsReceiverAddressUpdate(val)
},
add: (val) => {
return postLogisticsReceiverAddressAdd(val)
}
}}
<ReceiverAddress
/>
</FormItem>
......
......@@ -20,6 +20,8 @@ import NoteFactoryService from '../../assets/handles/DeliveryNoteService'
import dayjs from 'dayjs'
import { TagStatus, TagStatusFactory } from '../../utils'
import { Link, useHistory } from 'umi'
import { AuthUrl } from '@/components/AuthButton/AuthUrl'
import AuthButton from '@/components/AuthButton'
const DeliveryNoticeManageSRM: React.FC = () => {
const ref = useRef<any>({})
......@@ -32,22 +34,20 @@ const DeliveryNoticeManageSRM: React.FC = () => {
const controllerBtns = (
<Space>
<Link to="/memberCenter/order/deliveryNotice/manageSRM/add">
<Button type='primary' icon={<PlusOutlined />}>
新增
</Button>
</Link>
<AuthButton btnCode='deliveryNoticeManageSRM.create'>
<Button type='primary' icon={<PlusOutlined />} onClick={() => history.push(`/memberCenter/order/deliveryNotice/manageSRM/add`)}>新增</Button>
</AuthButton>
</Space>
)
const renderOptionButton = (record: any) => {
const btnAuthOfOperationTextMap = {
'修改': 'DevTest',
'作废': 'DevTest',
'查看': 'DevTest',
'修改': 'deliveryNoticeManageSRM.update',
// '作废': 'DevTest',
'查看': 'deliveryNoticeManageSRM.looking',
}
const buttonGroup = {
'修改': true,
'作废': false,
'修改': record.outerStatus === 1,
// '作废': false,
'查看': true,
}
const operationHandler = {
......@@ -74,7 +74,7 @@ const DeliveryNoticeManageSRM: React.FC = () => {
key: 'id',
width: 160,
render: (t, r) =>
<EyePreview url={`/memberCenter/order/deliveryNotice/manageSRM/details?id=${r.id}`}>{r.deliveryNo}</EyePreview>
<EyePreview type={AuthUrl('deliveryNoticeManageSRM.looking')? 'link': 'button'} url={`/memberCenter/order/deliveryNotice/manageSRM/details?id=${r.id}`}>{r.deliveryNo}</EyePreview>
},
{ title: '送货单摘要', dataIndex: 'digest', key: 'digest' },
{
......
......@@ -9,7 +9,7 @@ import { history } from 'umi'
import BaseInfo from '@/components/BaseInfo/BaseInfo'
import { Button, DatePicker, Form, Input, message, Steps, Table, TimePicker } from 'antd'
import { PlusOutlined } from '@ant-design/icons'
import { AddressDrawer } from '@/components/AddressDrawer'
import { AddressDrawer, ReceiverAddress } from '@/components/AddressDrawer'
import AuthButton from '@/components/AuthButton'
import { RoleSelect } from '@/components/RoleSelect'
import StandardTable from '@/components/StandardTable'
......@@ -283,14 +283,9 @@ const DeliveryNoticeManagementAwaitSRMDetails: React.FC<PropsType> = ({ type, id
rules={[
{ required: true, message: `请选择${ReceivingAddress}` }
]}
>
<AddressDrawer
disabled
rows={1}
addressListRequest={(val) => {
return getLogisticsSelectListReceiverAddress(val)
}}
/>
>
<ReceiverAddress disabled />
</Form.Item>
<Form.Item
......
......@@ -2,11 +2,11 @@ import AnchorPage, { AnchorsItem } from "@/components/AnchorPage";
import { Button, Form, Input, message, Radio, Table } from "antd";
import { useCallback, useEffect, useState } from "react";
import { DeliveryNoticeOrderAddService } from "../../assets/handles/HandleFormSubmit";
import { BillsInfo, BuyerLabel, ConsigneeTimeLabel, DeliveryAbstractLabel, DeliveryDateLabel, DeliveryGood, DeliveryInfo, DeliveryNameLabel, DeliveryPhoneLabel, DeliveryTimeLabel, DeliveryTypeLabel, Distribution, LogisticsCarNoLabel, LogisticsCompanyLabel, LogisticsInfo, LogisticsNoLabel, NoteLabel, ReceivingAddress } from "../../constants";
import { BillsInfo, BuyerLabel, ConsigneeTimeLabel, DeliveryAbstractLabel, DeliveryAbstractNoLabel, DeliveryDateLabel, DeliveryGood, DeliveryInfo, DeliveryNameLabel, DeliveryPhoneLabel, DeliveryTimeLabel, DeliveryTypeLabel, Distribution, LogisticsCarNoLabel, LogisticsCompanyLabel, LogisticsInfo, LogisticsNoLabel, NoteLabel, ReceivingAddress } from "../../constants";
import { BaseInfo } from '@/components/BaseInfo';
import { required, FormItem } from "@/components/FormItem";
import { RoleSelect } from "@/components/RoleSelect";
import { AddressDrawer } from "@/components/AddressDrawer";
import { AddressDrawer, ReceiverAddress, ShipperAddress } from "@/components/AddressDrawer";
import { getLogisticsSelectListReceiverAddress, getLogisticsSelectListShipperAddress, postLogisticsReceiverAddressAdd, postLogisticsReceiverAddressUpdate, postLogisticsShipperAddressAdd, postLogisticsShipperAddressUpdate } from "@/services/LogisticsV2Api";
import LogisticsCompanyMerchantsSelect from "@/components/LogisticsCompanySelect/LogisticsCompanyMerchantsSelect";
import { HarvestMaterialContextProvider, HarvestMaterialInput } from "../../assets/context";
......@@ -52,6 +52,8 @@ function DeliveryNoticeFromCreate() {
service.setFormService(type);
form.setFieldsValue(res)
console.log(res.products);
setTableDataSource(res.products)
})
......@@ -74,7 +76,7 @@ function DeliveryNoticeFromCreate() {
}
return (
<AnchorPage title="送货单管理详情"
<AnchorPage title="送货单管理新增"
anchors={anchors}
extra={
<AuthButton btnCode='deliveryNoticeQuery.submit'>
......@@ -90,6 +92,15 @@ function DeliveryNoticeFromCreate() {
</FormItem>
<ContentBox title={BillsInfo.name} id={BillsInfo.key}>
<FormItem
rules={[
required()
]}
label={DeliveryAbstractNoLabel} name="sourceNo">
<Input />
</FormItem>
<FormItem
rules={[
required()
......@@ -130,39 +141,24 @@ function DeliveryNoticeFromCreate() {
<DatePickerSelect disabled={true} className='w-full' />
</FormItem>
<FormItem
rules={[
required()
]}
label={DeliveryNameLabel} name="deliveryVO">
<AddressDrawer
addressListRequest={(val) => {
return getLogisticsSelectListShipperAddress(val)
}}
onChange={(v) => {
form.setFieldsValue({
"executorVO.phone": v.phone
})
}}
sumbitRequest={{
update: (val) => {
return postLogisticsShipperAddressUpdate(val)
},
add: (val) => {
return postLogisticsShipperAddressAdd(val)
}
}}
/>
label={DeliveryTimeLabel} name="deliveryRangeTime">
<DatePickerSelect.RangePicker disabled={true} className="w-full" picker='time' />
</FormItem>
<FormItem
rules={[
required()
]}
label={DeliveryTimeLabel} name="deliveryRangeTime">
<DatePickerSelect.RangePicker disabled={true} className="w-full" picker='time' />
label={DeliveryNameLabel} name="executorVO.consignee">
<Input />
</FormItem>
<FormItem
......@@ -180,6 +176,20 @@ function DeliveryNoticeFromCreate() {
rules={[
required()
]}
label={DeliveryNameLabel} name="deliveryVO">
<ShipperAddress
onChange={(v) => {
form.setFieldsValue({
"executorVO.phone": v.phone
})
}}
/>
</FormItem>
<FormItem
rules={[
required()
]}
label={ConsigneeTimeLabel} name="sendTime">
<DatePickerSelect className="w-full" />
</FormItem>
......@@ -189,19 +199,9 @@ function DeliveryNoticeFromCreate() {
required()
]}
label={ReceivingAddress} name="receiveVO">
<AddressDrawer
<ReceiverAddress
disabled={false}
addressListRequest={(val) => {
return getLogisticsSelectListReceiverAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsReceiverAddressUpdate(val)
},
add: (val) => {
return postLogisticsReceiverAddressAdd(val)
}
}}
/>
</FormItem>
......
......@@ -33,7 +33,7 @@ const columnB2B = [
const columnSRM = [
{ ...MaterialNoColumn, dataIndex: 'skuId', width: 80, },
{ ...MaterialNameColumn, dataIndex: 'productName', width: 192, },
{ ...MaterialModelColumn, dataIndex: 'productName', width: 128, },
{ ...MaterialModelColumn, dataIndex: 'spec', width: 128, },
{ ...ClassColumn, dataIndex: 'category', width: 96, },
{ ...BrandColumn, dataIndex: 'brand', width: 96, },
{ ...UntilColumn, dataIndex: 'unit', width: 64, },
......
......@@ -20,6 +20,7 @@ import { deliveryPlanCollaborationAwaitSchema } from './schema'
import { godBtoa, TagStatus } from '../../utils'
import { ExternalStateColumn, OperationColumn, PlannedEndDateColumn, PlannedStartDateColumn, PlanNumberColumn, PlanSummaryColumn, SupplyMemberColumn } from '../../constants/table-column'
import { getOrderDeliveryPlanVendorPage } from '@/services/OrderNewV2Api'
import { AuthUrl } from '@/components/AuthButton/AuthUrl'
const tagStatus = new TagStatus()
const statusTxt = new Map([[1, '待提交'], [2, '待确认'], [3, '待修订'], [4, '已确认'], [5, '已删除']])
......@@ -31,8 +32,8 @@ const DeliveryPlanCollaborationAwait: React.FC = () => {
const controllerBtns = (<Space></Space>)
const renderOptionButton = (record: any) => {
const btnAuthOfOperationTextMap = {
'确认': 'DevTest',
'查看': 'DevTest',
'确认': 'deliveryPlanCollaborationAwait.confirm',
'查看': 'deliveryPlanCollaborationAwait.looking',
}
const buttonGroup = {
'确认': true,
......@@ -55,7 +56,7 @@ const DeliveryPlanCollaborationAwait: React.FC = () => {
...PlanNumberColumn,
dataIndex: 'planNo',
key: 'planNo',
render: (text: unknown, record: any) => <EyePreview url={`/memberCenter/order/deliveryPlanCollaboration/await/details?ty=${godBtoa(record.orderType)}&i=${godBtoa(record.id)}`}>{text}</EyePreview>
render: (text: unknown, record: any) => <EyePreview type={AuthUrl('deliveryPlanCollaborationAwait.looking')? 'link': 'button'} url={`/memberCenter/order/deliveryPlanCollaboration/await/details?ty=${godBtoa(record.orderType)}&i=${godBtoa(record.id)}`}>{text}</EyePreview>
},
{ ...PlanSummaryColumn, dataIndex: 'digest', key: 'digest' },
{ ...PlannedStartDateColumn, dataIndex: 'planStartTime', key: 'planStartTime', render: (text: string, record: any) => (moment(text).format('YYYY-MM-DD')) },
......
......@@ -33,7 +33,7 @@ const columnB2B = [
const columnSRM = [
{ ...MaterialNoColumn, dataIndex: 'skuId', width: 80, },
{ ...MaterialNameColumn, dataIndex: 'productName', width: 192, },
{ ...MaterialModelColumn, dataIndex: 'productName', width: 128, },
{ ...MaterialModelColumn, dataIndex: 'spec', width: 128, },
{ ...ClassColumn, dataIndex: 'category', width: 96, },
{ ...BrandColumn, dataIndex: 'brand', width: 96, },
{ ...UntilColumn, dataIndex: 'unit', width: 64, },
......@@ -49,10 +49,12 @@ const statusTxt = new Map([[1, '待提交'], [2, '待确认'], [3, '待修订'],
const selectedTableItem = new Map()
const DeliveryPlanCollaborationDetails: React.FC = () => {
const { location: { query: { ty, i } } } = history
const { location: { query: { ty, i, bt } } } = history
// 1-B2B 2-SRM
const deliveryPlanType = godAtob(ty as string)
const id = godAtob(i as string)
// notice-通知单 deliveryNote-送货单
const pageBtn = godAtob(bt as string)
const ref = useRef<any>()
......@@ -198,7 +200,7 @@ const DeliveryPlanCollaborationDetails: React.FC = () => {
const time = new Date().getTime()
// 判断跳转
const url = deliveryPlanType === '1' ? '/memberCenter/order/deliveryNoticeManagement/awaitB2B/add' : '/memberCenter/order/deliveryNoticeManagement/awaitSRM/add'
noticePath[time] = res.data
noticePath[time] = res.data
localStorage.setItem('NOTICE_PATH', JSON.stringify(noticePath))
selectedTableItem.clear()
setTimeout(() => {
......@@ -228,12 +230,12 @@ const DeliveryPlanCollaborationDetails: React.FC = () => {
}
let noticePath = {}
const time = new Date().getTime()
noticePath[time] = res.data
noticePath[time] = res.data
localStorage.setItem('DELIVERY_NOTICE_PATH', JSON.stringify(noticePath))
selectedTableItem.clear()
setTimeout(()=> {
history.push(`/memberCenter/order/deliveryNotice/synergy/create?time=${time}&ot=${deliveryPlanType}`)
},1000)
setTimeout(() => {
history.push(`/memberCenter/order/deliveryNotice/synergyCreate?time=${time}&ot=${deliveryPlanType}`)
}, 1000)
} else {
message.warning(res.message)
}
......@@ -256,8 +258,13 @@ const DeliveryPlanCollaborationDetails: React.FC = () => {
extra={
<Space>
{/* 条件渲染 */}
<Button type='primary' icon={<CheckCircleOutlined />} onClick={() => handleSubmitVerify('Notice')}>生成通知单</Button>
<Button type='primary' icon={<CheckCircleOutlined />} onClick={() => handleSubmitVerify('DeliveryNote')}>生成送货单</Button>
{
pageBtn === 'notice'
? <Button type='primary' icon={<CheckCircleOutlined />} onClick={() => handleSubmitVerify('Notice')}>生成送货通知单</Button>
: pageBtn === 'deliveryNote'
? <Button type='primary' icon={<CheckCircleOutlined />} onClick={() => handleSubmitVerify('DeliveryNote')}>生成送货单</Button>
: null
}
</Space>
}
>
......@@ -306,8 +313,8 @@ const DeliveryPlanCollaborationDetails: React.FC = () => {
ref={ref}
onOk={(date) => {
operation === 'Notice'
? generateNotice(date)
: generateDeliveryNote(date)
? generateNotice(date)
: generateDeliveryNote(date)
}}
/>
</Spin>
......
......@@ -20,6 +20,7 @@ import { deliveryPlanCollaborationQuerySchema } from './schema'
import { godBtoa, TagStatus } from '../../utils'
import { ExternalStateColumn, OperationColumn, PlannedEndDateColumn, PlannedStartDateColumn, PlanNumberColumn, PlanSummaryColumn, SupplyMemberColumn } from '../../constants/table-column'
import { getOrderDeliveryPlanVendorPage } from '@/services/OrderNewV2Api'
import { AuthUrl } from '@/components/AuthButton/AuthUrl'
const tagStatus = new TagStatus()
......@@ -36,22 +37,22 @@ const DeliveryPlanCollaborationQuery: React.FC = () => {
)
const renderOptionButton = (record: any) => {
const btnAuthOfOperationTextMap = {
'查看': 'DevTest',
'生成送货通知单': 'DevTest',
'生成送货单': 'DevTest',
'查看': 'deliveryPlanCollaboration.looking',
'生成送货通知单': 'deliveryPlanCollaboration.generateNotice',
'生成送货单': 'deliveryPlanCollaboration.generateDeliveryNote',
}
const buttonGroup = {
'查看': true,
'生成送货通知单': true,
'生成送货单': true,
'生成送货通知单': record.status === 4,
'生成送货单': record.status === 4,
}
const operationHandler = {
'查看': () => history.push(`/memberCenter/order/deliveryPlanCollaboration/query/details?ty=${godBtoa(record.orderType)}&i=${godBtoa(record.id)}`),
'生成送货通知单': () => {
history.push(`/memberCenter/order/deliveryPlanCollaboration/query/details?ty=${godBtoa(record.orderType)}&i=${godBtoa(record.id)}`)
history.push(`/memberCenter/order/deliveryPlanCollaboration/query/details?ty=${godBtoa(record.orderType)}&i=${godBtoa(record.id)}&bt=${godBtoa('notice')}`)
},
'生成送货单': () => {
history.push(`/memberCenter/order/deliveryPlanCollaboration/query/details?ty=${godBtoa(record.orderType)}&i=${godBtoa(record.id)}`)
history.push(`/memberCenter/order/deliveryPlanCollaboration/query/details?ty=${godBtoa(record.orderType)}&i=${godBtoa(record.id)}&bt=${godBtoa('deliveryNote')}`)
},
}
return (
......@@ -67,7 +68,7 @@ const DeliveryPlanCollaborationQuery: React.FC = () => {
...PlanNumberColumn,
dataIndex: 'planNo',
key: 'planNo',
render: (text: unknown, record: any) => <EyePreview url={`/memberCenter/order/deliveryPlanCollaboration/query/details?ty=${godBtoa(record.orderType)}&i=${godBtoa(record.id)}`}>{text}</EyePreview>
render: (text: unknown, record: any) => <EyePreview type={AuthUrl('deliveryPlanCollaboration.looking')? 'link': 'button'} url={`/memberCenter/order/deliveryPlanCollaboration/query/details?ty=${godBtoa(record.orderType)}&i=${godBtoa(record.id)}`}>{text}</EyePreview>
},
{ ...PlanSummaryColumn, dataIndex: 'digest', key: 'digest' },
{ ...PlannedStartDateColumn, dataIndex: 'planStartTime', key: 'planStartTime', render: (text: string, record: any) => (moment(text).format('YYYY-MM-DD')) },
......
......@@ -118,6 +118,8 @@ const DeliveryPlanAwaitB2BCreate: React.FC = () => {
}).catch(err => {
setSpinning(false)
})
}).catch(err => {
message.warning('重要信息未选择或填写, 请检查后再次提交')
})
}
......@@ -242,6 +244,9 @@ const DeliveryPlanAwaitB2BCreate: React.FC = () => {
{...formItemLayout}
label={PlanningCycle}
name='dates'
rules={[
{ required: true, message: '请选择' }
]}
>
<DatePicker.RangePicker disabledDate={disabledDate} style={{ width: '100%' }} onChange={(dates) => handleDateAssembleColumn(dates)} />
</Form.Item>
......@@ -250,6 +255,9 @@ const DeliveryPlanAwaitB2BCreate: React.FC = () => {
{...formItemLayout}
label={SupplyMembersLabel}
name='memberInfo'
rules={[
{ required: true, message: '请选择' }
]}
>
<RoleSelect
request={getMemberManageSupplyMember}
......@@ -279,7 +287,7 @@ const DeliveryPlanAwaitB2BCreate: React.FC = () => {
scroll={{ x: '100%' }}
/>
</BaseInfo>
<BaseInfo className='mt-16' title={Remarks.name} id={Remarks.key} cols={1}>
<BaseInfo className='mt-16' title={<>{Remarks.name} <span style={{ color: 'red' }}>*</span></>} id={Remarks.key} cols={1}>
<Form.Item
name='remark'
rules={[
......
......@@ -21,6 +21,8 @@ import { godBtoa, TagStatus } from '../../utils'
import { ExternalStateColumn, OperationColumn, PlannedEndDateColumn, PlannedStartDateColumn, PlanNumberColumn, PlanSummaryColumn, SupplyMemberColumn } from '../../constants/table-column'
import moment from 'moment'
import { getOrderDeliveryPlanBuyerPage, postOrderDeliveryPlanDelete, postOrderDeliveryPlanSubmit } from '@/services/OrderNewV2Api'
import { AuthUrl } from '@/components/AuthButton/AuthUrl'
import AuthButton from '@/components/AuthButton'
// 外部状态1-待提交 2-已确认
const STATUS = 2
......@@ -64,15 +66,17 @@ const DeliveryPlanManagementAwaitB2B: React.FC = () => {
const controllerBtns = (
<Space>
<Button type='primary' icon={<PlusOutlined />} onClick={() => history.push(`/memberCenter/order/deliveryPlanManagement/awaitB2B/create`)}>新增</Button>
<AuthButton btnCode='create'>
<Button type='primary' icon={<PlusOutlined />} onClick={() => history.push(`/memberCenter/order/deliveryPlanManagement/awaitB2B/create`)}>新增</Button>
</AuthButton>
</Space>
)
const renderOptionButton = (record: any) => {
const btnAuthOfOperationTextMap = {
'提交': 'DevTest',
'修改': 'DevTest',
'删除': 'DevTest',
'查看': 'DevTest',
'提交': 'awaitB2B.submit',
'修改': 'awaitB2B.update',
'删除': 'awaitB2B.delete',
'查看': 'awaitB2B.looking',
}
const buttonGroup = {
'提交': record.status <= 1,
......@@ -100,7 +104,7 @@ const DeliveryPlanManagementAwaitB2B: React.FC = () => {
dataIndex: 'planNo',
key: 'planNo',
// width: 160,
render: (text: unknown, record: any) => <EyePreview url={`/memberCenter/order/deliveryPlanManagement/awaitB2B/details?i=${godBtoa(record.id)}`}>{text}</EyePreview>
render: (text: unknown, record: any) => <EyePreview type={AuthUrl('awaitB2B.looking') ? 'link' : 'button'} url={`/memberCenter/order/deliveryPlanManagement/awaitB2B/details?i=${godBtoa(record.id)}`}>{text}</EyePreview>
},
{ ...PlanSummaryColumn, dataIndex: 'digest', key: 'digest' },
{ ...PlannedStartDateColumn, dataIndex: 'planStartTime', key: 'planStartTime', render: (text: string, record: any) => (moment(text).format('YYYY-MM-DD')) },
......
......@@ -30,7 +30,7 @@ const ORDER_TYPE = '2'
const initMaterialTableColumn = [
{ ...MaterialNoColumn, dataIndex: 'skuId', width: 80, },
{ ...MaterialNameColumn, dataIndex: 'productName', width: 192, },
{ ...MaterialModelColumn, dataIndex: 'productName', width: 128, },
{ ...MaterialModelColumn, dataIndex: 'spec', width: 128, },
{ ...ClassColumn, dataIndex: 'category', width: 96, },
{ ...BrandColumn, dataIndex: 'brand', width: 96, },
{ ...UntilColumn, dataIndex: 'unit', width: 64, },
......@@ -120,6 +120,8 @@ const DeliveryPlanAwaitSRMCreate: React.FC = () => {
}).catch(err => {
setSpinning(false)
})
}).catch(err => {
message.warning('重要信息未选择或填写, 请检查后再次提交')
})
}
......@@ -287,7 +289,7 @@ const DeliveryPlanAwaitSRMCreate: React.FC = () => {
scroll={{ x: 2022 }}
/>
</BaseInfo>
<BaseInfo className='mt-16' title={Remarks.name} id={Remarks.key} cols={1}>
<BaseInfo className='mt-16' title={<>{Remarks.name} <span style={{ color: 'red' }}>*</span></>} id={Remarks.key} cols={1}>
<Form.Item
name='remark'
rules={[
......
......@@ -33,7 +33,7 @@ const DeliveryPlanAwaitSRMDetails: React.FC = () => {
const [materialTableColumn, setMaterialTableColumn] = useState<any>([
{ ...MaterialNoColumn, dataIndex: 'skuId', width: 80, },
{ ...MaterialNameColumn, dataIndex: 'productName', width: 192, },
{ ...MaterialModelColumn, dataIndex: 'productName', width: 128, },
{ ...MaterialModelColumn, dataIndex: 'spec', width: 128, },
{ ...ClassColumn, dataIndex: 'category', width: 96, },
{ ...BrandColumn, dataIndex: 'brand', width: 96, },
{ ...UntilColumn, dataIndex: 'unit', width: 64, },
......
......@@ -21,6 +21,8 @@ import { godBtoa, TagStatus } from '../../utils'
import { ExternalStateColumn, OperationColumn, PlannedEndDateColumn, PlannedStartDateColumn, PlanNumberColumn, PlanSummaryColumn, SupplyMemberColumn } from '../../constants/table-column'
import { getOrderDeliveryPlanBuyerPage, postOrderDeliveryPlanDelete, postOrderDeliveryPlanSubmit } from '@/services/OrderNewV2Api'
import moment from 'moment'
import AuthButton from '@/components/AuthButton'
import { AuthUrl } from '@/components/AuthButton/AuthUrl'
// 外部状态1-待提交 2-已确认
const STATUS = 2
......@@ -64,15 +66,17 @@ const DeliveryPlanManagementAwaitSRM: React.FC = () => {
const controllerBtns = (
<Space>
<Button type='primary' icon={<PlusOutlined />} onClick={() => history.push(`/memberCenter/order/deliveryPlanManagement/awaitSRM/create`)}>新增</Button>
<AuthButton btnCode='deliveryPlanAwaitSRM.create'>
<Button type='primary' icon={<PlusOutlined />} onClick={() => history.push(`/memberCenter/order/deliveryPlanManagement/awaitSRM/create`)}>新增</Button>
</AuthButton>
</Space>
)
const renderOptionButton = (record: any) => {
const btnAuthOfOperationTextMap = {
'提交': 'DevTest',
'修改': 'DevTest',
'删除': 'DevTest',
'查看': 'DevTest',
'提交': 'deliveryPlanAwaitSRM.submit',
'修改': 'deliveryPlanAwaitSRM.update',
'删除': 'deliveryPlanAwaitSRM.delete',
'查看': 'deliveryPlanAwaitSRM.looking',
}
const buttonGroup = {
'提交': record.status <= 1,
......@@ -101,7 +105,7 @@ const DeliveryPlanManagementAwaitSRM: React.FC = () => {
dataIndex: 'planNo',
key: 'planNo',
// width: 160,
render: (text: unknown, record: any) => <EyePreview url={`/memberCenter/order/deliveryPlanManagement/awaitSRM/details?i=${godBtoa(record.id)}`}>{text}</EyePreview>
render: (text: unknown, record: any) => <EyePreview type={AuthUrl('deliveryPlanAwaitSRM.looking') ? 'link' : 'button'} url={`/memberCenter/order/deliveryPlanManagement/awaitSRM/details?i=${godBtoa(record.id)}`}>{text}</EyePreview>
},
{ ...PlanSummaryColumn, dataIndex: 'digest', key: 'digest' },
{ ...PlannedStartDateColumn, dataIndex: 'planStartTime', key: 'planStartTime', render: (text: string, record: any) => (moment(text).format('YYYY-MM-DD')) },
......@@ -112,10 +116,10 @@ const DeliveryPlanManagementAwaitSRM: React.FC = () => {
dataIndex: 'status',
key: 'status',
render: (text: string, record: any) => {
const sytle = tagStatus.getTagStyle(record.status);
const styles = tagStatus.getTagStyle(record.status);
return (
<Tag color={sytle.bgColor}>
<span style={{ color: sytle.fontColor }}>{statusTxt.get(record.status)}</span>
<Tag color={styles.bgColor}>
<span style={{ color: styles.fontColor }}>{statusTxt.get(record.status)}</span>
</Tag>
)
}
......
......@@ -46,7 +46,7 @@ const DeliveryPlanAwaitSRMUpdate: React.FC = () => {
const [materialTableColumn, setMaterialTableColumn] = useState<any>([
{ ...MaterialNoColumn, dataIndex: 'skuId', width: 80, },
{ ...MaterialNameColumn, dataIndex: 'productName', width: 192, },
{ ...MaterialModelColumn, dataIndex: 'productName', width: 128, },
{ ...MaterialModelColumn, dataIndex: 'spec', width: 128, },
{ ...ClassColumn, dataIndex: 'category', width: 96, },
{ ...BrandColumn, dataIndex: 'brand', width: 96, },
{ ...UntilColumn, dataIndex: 'unit', width: 64, },
......
......@@ -19,6 +19,7 @@ import { deliveryPlanManagementQuerySchema } from './schema'
import { godBtoa, TagStatus } from '../../utils'
import { ExternalStateColumn, OperationColumn, PlannedEndDateColumn, PlannedStartDateColumn, PlanNumberColumn, PlanSummaryColumn, SupplyMemberColumn } from '../../constants/table-column'
import { getOrderDeliveryPlanBuyerPage } from '@/services/OrderNewV2Api'
import { AuthUrl } from '@/components/AuthButton/AuthUrl'
const tagStatus = new TagStatus()
const statusTxt = new Map([[1, '待提交'], [2, '待确认'], [3, '待修订'],[4,'已确认'],[5,'已删除']])
......@@ -34,8 +35,8 @@ const DeliveryPlanManagementQuery: React.FC = () => {
)
const renderOptionButton = (record: any) => {
const btnAuthOfOperationTextMap = {
'查看': 'DevTest',
'变更': 'DevTest'
'查看': 'deliveryPlanManagement.looking',
'变更': 'deliveryPlanManagement.update'
}
const buttonGroup = {
'查看': true,
......@@ -59,7 +60,7 @@ const DeliveryPlanManagementQuery: React.FC = () => {
dataIndex: 'planNo',
key: 'planNo',
// width: 160,
render: (text: string, record: any) => <EyePreview url={`/memberCenter/order/deliveryPlanManagement/query/details?ty=${godBtoa(record.orderType)}&i=${godBtoa(record.id)}`}>{text}</EyePreview>
render: (text: string, record: any) => <EyePreview type={AuthUrl('deliveryPlanManagement.looking')? 'link': 'button'} url={`/memberCenter/order/deliveryPlanManagement/query/details?ty=${godBtoa(record.orderType)}&i=${godBtoa(record.id)}`}>{text}</EyePreview>
},
{ ...PlanSummaryColumn, dataIndex: 'digest', key: 'digest' },
{ ...PlannedStartDateColumn, dataIndex: 'planStartTime', key: 'planStartTime', render: (text: string, record: any) => (moment(text).format('YYYY-MM-DD')) },
......
......@@ -15,7 +15,7 @@ import { HarvestMaterialContextProvider, HarvestMaterialInput } from '../../asse
import { DeliveryNoteB2bUploadService, ReceiveOrderCreate, ReceivingNoteAddService } from "../../assets/handles/HandleFormSubmit"
import NoteFactoryService from "../../assets/handles/DeliveryNoteService"
import { RoleSelect } from "@/components/RoleSelect"
import { AddressDrawer } from "@/components/AddressDrawer"
import { AddressDrawer, ShipperAddress } from "@/components/AddressDrawer"
import { getLogisticsSelectListReceiverAddress, getLogisticsSelectListShipperAddress, postLogisticsReceiverAddressAdd, postLogisticsReceiverAddressUpdate, postLogisticsShipperAddressAdd, postLogisticsShipperAddressUpdate } from "@/services/LogisticsV2Api"
import { DatePickerSelect } from "@/components/DatePickerSelect"
import LogisticsCompanyMerchantsSelect from "@/components/LogisticsCompanySelect/LogisticsCompanyMerchantsSelect"
......@@ -74,6 +74,7 @@ function DeliveryNoteAddForm() {
function RenaderDeliveryType({ value }: { value?: any }) {
return (
<>
<Input />
{value === 0 ? '自提' : '物流'}
</>
)
......@@ -187,22 +188,7 @@ function DeliveryNoteAddForm() {
required()
]}
label={DeliveryNameLabel} name="deliveryVO">
<AddressDrawer
disabled={true}
addressListRequest={(val) => {
return getLogisticsSelectListShipperAddress(val)
}}
sumbitRequest={{
update: (val) => {
return postLogisticsShipperAddressUpdate(val)
},
add: (val) => {
return postLogisticsShipperAddressAdd(val)
}
}}
/>
<ShipperAddress disabled={true} />
</FormItem>
<FormItem
......@@ -218,11 +204,11 @@ function DeliveryNoteAddForm() {
<ContentBox title={LogisticsInfo.name} id={LogisticsInfo.key}>
<FormItem
rules={[
required()
]}
label={DeliveryTypeLabel} name="deliveryType">
<RenaderDeliveryType />
<>
<Input hidden />
<RenaderDeliveryType />
</>
</FormItem>
<FormItem label={LogisticsCarNoLabel} name="executorVO.carNumbers">
......
......@@ -75,8 +75,8 @@ const DeliveryNoteManage: React.FC = () => {
{ title: '单据时间', dataIndex: 'createTime', key: 'createTime' },
{
title: '外部状态',
dataIndex: 'id6',
key: 'id6',
dataIndex: 'outerStatusName',
key: 'outerStatusName',
render: (text, record) => {
const styles = tagService.getTagStyle(record.outerStatus);
return (
......@@ -119,7 +119,7 @@ const DeliveryNoteManage: React.FC = () => {
useStateFilterSearchLinkageEffect(
$,
actions,
'planCode',
'receiveNo',
FORM_FILTER_PATH,
)
}}
......
......@@ -55,12 +55,11 @@ const DeliveryNoteQuery: React.FC = () => {
const controllerBtns = (<Space></Space>)
const renderOptionButton = (r: any) => {
const btnAuthOfOperationTextMap = {
'生成收货单': 'DevTest',
'查看': 'DevTest',
'生成收货单': 'deliveryNoteQuery.generateReceivingNote',
'查看': 'deliveryNoteQuery.looking',
}
const buttonGroup = {
'生成收货单': true,
'修改': true,
'生成收货单': r.outerStatus < 2 ,
'查看': true,
}
const operationHandler = {
......@@ -141,7 +140,7 @@ const DeliveryNoteQuery: React.FC = () => {
useStateFilterSearchLinkageEffect(
$,
actions,
'planCode',
'deliveryNo',
FORM_FILTER_PATH,
)
}}
......
......@@ -63,7 +63,7 @@ class TagStatus {
}
generatedStyle() {
return { bgColor: '#f0f5ff', fontColor: '#f0f5ff', txt: '已确认' }
return { bgColor: '#ebf9f6', fontColor: '#00a98f', txt: '已确认' }
}
voidedStyle() {
......
......@@ -85,7 +85,7 @@ const UseModal: React.FC<UseModalPropsType> = (props) => {
label={intl.formatMessage({ id: 'detail.purchase.selectMall' })}
rules={[{ required: true }]}
>
<Select className={styles.selectBox} onChange={handleSelect}>
<Select className={styles.selectBox} onChange={handleSelect} defaultValue={(mallList && mallList.some((item) => item.id === dataInfo?.shopId)) ? dataInfo?.shopId : undefined}>
{
mallList && mallList.map((mallItem) => (
<Select.Option value={mallItem.id} label={mallItem.name} key={mallItem.id}>
......
......@@ -175,7 +175,7 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
</div>
{
isMro && <div>
<Checkbox onChange={onChangeMroSetting} checked={detailInfo.openMro}>启用商城MRO筛选模式</Checkbox>
<Checkbox onChange={onChangeMroSetting} checked={detailInfo.openMro}>{intl.formatMessage({ id: 'template.detail.openMro', defaultMessage: '启用商城MRO筛选模式' })}</Checkbox>
</div>
}
<AuthButton btnCode='ownMallTemplate.detail.see'>
......@@ -201,7 +201,7 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
}
</AuthButton>
<AuthButton btnCode='ownMallTemplate.detail.state' >
<div className={cx(styles.btn, detailInfo?.use === 1 ? styles.use : '')} onClick={() => detailInfo?.use !== 1 ? setUseModalVisible(true) : {}}>
<div className={cx(styles.btn, (detailInfo?.use === 1 && detailInfo?.shopId) ? styles.use : '')} onClick={() => setUseModalVisible(true)}>
<PushpinOutlined />
<label>{detailInfo?.use === 1 ? intl.formatMessage({ id: 'shop.template.button.state.using' }) : intl.formatMessage({ id: 'shop.template.button.state.use' })}</label>
</div>
......
......@@ -5,6 +5,7 @@ import StandardTable from '@/components/StandardTable';
import { ColumnType } from 'antd/lib/table/interface';
import { getIntl, history } from 'umi';
import { getProductPriceManagementGetGoodsPriceHistory } from '@/services/ProductV2Api';
import moment from 'moment';
const DetailLibrary: React.FC<{}> = () => {
const ref = useRef<any>({});
......@@ -36,17 +37,15 @@ const DetailLibrary: React.FC<{}> = () => {
title: getIntl().formatMessage({
id: 'priceManage.schema.formProduct.pinlei',
}),
dataIndex: 'customerCategory',
key: 'customerCategory',
render: text => text?.name,
dataIndex: 'categoryName',
key: 'categoryName',
},
{
title: getIntl().formatMessage({
id: 'priceManage.schema.formProduct.pinpai',
}),
dataIndex: 'unitName',
key: 'unitName',
render: text => text?.name,
dataIndex: 'brandName',
key: 'brandName',
},
{
title: getIntl().formatMessage({
......@@ -103,6 +102,9 @@ const DetailLibrary: React.FC<{}> = () => {
}),
dataIndex: 'effectiveStartTime',
key: 'effectiveStartTime',
render: text => {
return text ? moment(text).format('YYYY-MM-DD') : undefined;
},
},
{
title: getIntl().formatMessage({
......@@ -110,6 +112,9 @@ const DetailLibrary: React.FC<{}> = () => {
}),
dataIndex: 'effectiveEndTime',
key: 'effectiveEndTime',
render: text => {
return text ? moment(text).format('YYYY-MM-DD') : undefined;
},
},
];
const fetchData = (params: any) => {
......
......@@ -149,7 +149,7 @@ const PriceLibrary: React.FC<{}> = () => {
width: 128,
render: (_text: any, record: any) => {
return (
<AuthButton btnCode="">
<AuthButton btnCode="priceLibrary.historicalPrice">
<Button
type="link"
className="padLeft0"
......
......@@ -43,17 +43,17 @@ export const useSelfTable = () => {
return <>
{record.isSubmitCheck &&
<AuthButton btnCode='readyAddBid.submit' >
<AuthButton btnCode='MallReadyAddBid.submit' >
<Button type='link' onClick={() => handleSubmit(record)}>{intl.formatMessage({ id: 'table.purchase.submit' })}</Button>
</AuthButton>
}
<AuthButton btnCode='readyAddBid.eidt' >
<AuthButton btnCode='MallReadyAddBid.eidt' >
<Button type='link' onClick={() => handleEdit(record)}>{intl.formatMessage({ id: 'table.purchase.eidt' })}</Button>
</AuthButton>
{record.isAddTenderDelete &&
<AuthButton btnCode='readyAddBid.del' >
<AuthButton btnCode='MallReadyAddBid.del' >
<Popconfirm title={intl.formatMessage({ id: 'table.purchase.shifouyaoshanchu' })} onConfirm={() => handleDelete(record)}>
<Button type='link'>{intl.formatMessage({ id: 'table.purchase.delete' })}</Button>
</Popconfirm>
......
......@@ -8,8 +8,8 @@ import BASE_CONFIG from '../../../../../config/base.config.json'
import { CALLFORBID_TYPE, INVITE_BID } from '@/constants/procurement';
import { ENTERPRISE_CENTER_URL } from '@/constants'
import { getIntl } from 'umi';
const shopInfo = BASE_CONFIG.web.shopInfo
const intl = getIntl();
const shopInfo = BASE_CONFIG.web.shopInfo
const intl = getIntl();
/**
* 招标方式
......@@ -19,7 +19,7 @@ export interface BidMethodProps {
cardTitle?: string;
}
const BidMethod: React.FC<BidMethodProps> = ({cardTitle}) => {
const BidMethod: React.FC<BidMethodProps> = ({ cardTitle }) => {
const bidDetailContext = useContext(BidDetailContext)
const { data: _data, ctl, apiType } = bidDetailContext
......@@ -75,7 +75,7 @@ const BidMethod: React.FC<BidMethodProps> = ({cardTitle}) => {
return (
<MellowCard
title={cardTitle}
style={{marginTop: 24}}
style={{ marginTop: 24 }}
bordered={false}
fullHeight
>
......@@ -87,22 +87,22 @@ const BidMethod: React.FC<BidMethodProps> = ({cardTitle}) => {
</div>
{
data.inviteTenderType === INVITE_BID ?
<Table dataSource={data.memberList} columns={columns} pagination={{size: "small"}} />
:
<div className={style['card-list']}>
<Row>
<Col span={2}><p className={style['card-list_title']}>{intl.formatMessage({ id: 'table.purchase.fabushangcheng' })}</p></Col>
<Col>
<p>
{
data.inviteTenderShopList.map(item => {
return shopInfo.find(_item => _item.type === item.type && _item.environment === item.environment)['name']
}).join(' / ')
}
</p>
</Col>
</Row>
</div>
<Table dataSource={data.memberList} columns={columns} pagination={{ size: "small" }} />
:
<div className={style['card-list']}>
<Row>
<Col span={2}><p className={style['card-list_title']}>{intl.formatMessage({ id: 'table.purchase.fabushangcheng' })}</p></Col>
<Col>
<p>
{
data.inviteTenderShopList.map(item => {
return shopInfo.find(_item => _item.type === item.type && _item.id === item.shopId)['name']
}).join(' / ')
}
</p>
</Col>
</Row>
</div>
}
</MellowCard>)
}
......
......@@ -141,7 +141,7 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
</div>
{
isMro && <div>
<Checkbox onChange={onChangeMroSetting}>启用商城MRO筛选模式</Checkbox>
<Checkbox onChange={onChangeMroSetting}>{intl.formatMessage({ id: 'template.detail.openMro', defaultMessage: '启用商城MRO筛选模式' })}</Checkbox>
</div>
}
<AuthButton btnCode='shopAbility.template.detail.see' >
......@@ -157,7 +157,7 @@ const TemplateDetail: React.FC<TemplateDetailPropsType> = (props) => {
</div>
</AuthButton>
<AuthButton btnCode='shopAbility.template.detail.state'>
<div className={cx(styles.btn, detailInfo?.use === 1 ? styles.use : '')} onClick={() => detailInfo?.use !== 1 ? setUseModalVisible(true) : {}}>
<div className={cx(styles.btn, detailInfo?.use === 1 ? styles.use : '')} onClick={() => setUseModalVisible(true)}>
<PushpinOutlined />
<label>{detailInfo?.use === 1 ? intl.formatMessage({ id: 'shop.template.button.state.using' }) : intl.formatMessage({ id: 'shop.template.button.state.use' })}</label>
</div>
......
......@@ -7,6 +7,8 @@ import { ColumnType } from 'antd/lib/table/interface';
import EyePreview from '@/components/EyePreview';
import { PlusOutlined } from '@ant-design/icons';
import { getMemberAbilitySalesPage, postMemberAbilitySalesDelete } from '@/services/MemberV2Api';
import AuthButton from '@/components/AuthButton';
import { AuthUrl } from '@/components/AuthButton/AuthUrl';
const intl = getIntl()
......@@ -35,7 +37,7 @@ const PortalSystem = () => {
title: intl.formatMessage({ id: 'channel.member.table.name' }),
key: 'name',
dataIndex: 'name',
render: (text, record) => <EyePreview url={`/memberCenter/systemSetting/salesmanManage/salesmanBind/detail?id=${record.userId}`}>{text}</EyePreview>
render: (text, record) => <EyePreview type={AuthUrl('memberList.see') ? 'link' : 'button'} url={`/memberCenter/systemSetting/salesmanManage/salesmanBind/detail?id=${record.userId}`}>{text}</EyePreview>
},
{
title: intl.formatMessage({ id: 'channel.member.table.orgName' }),
......@@ -63,16 +65,18 @@ const PortalSystem = () => {
dataIndex: 'options',
render: (text: any, record: any) => {
return <>
<Button type='link' onClick={() => updateItem(record)}>{intl.formatMessage({ id: 'common.button.modify' })}</Button>
<AuthButton btnCode='memberList.update'><Button type='link' onClick={() => updateItem(record)}>{intl.formatMessage({ id: 'common.button.modify' })}</Button></AuthButton>
{
<Popconfirm
title={intl.formatMessage({ id: 'common.tip.option.confirm' })}
onConfirm={() => deleteItem(record)}
okText={intl.formatMessage({ id: 'common.button.yes' })}
cancelText={intl.formatMessage({ id: 'common.button.no' })}
>
<Button type='link'>{intl.formatMessage({ id: 'common.button.delete' })}</Button>
</Popconfirm>
<AuthButton btnCode='memberList.del'>
<Popconfirm
title={intl.formatMessage({ id: 'common.tip.option.confirm' })}
onConfirm={() => deleteItem(record)}
okText={intl.formatMessage({ id: 'common.button.yes' })}
cancelText={intl.formatMessage({ id: 'common.button.no' })}
>
<Button type='link'>{intl.formatMessage({ id: 'common.button.delete' })}</Button>
</Popconfirm>
</AuthButton>
}
</>
}
......@@ -159,13 +163,15 @@ const PortalSystem = () => {
<Row>
<Col span={24}>
<Space direction="horizontal" size={16}>
<Button
type="primary"
icon={<PlusOutlined />}
onClick={() => history.push(`/memberCenter/systemSetting/salesmanManage/salesmanBind/add`)}
>
{intl.formatMessage({ id: 'portalSystem.added', defaultMessage: '新增' })}
</Button>
<AuthButton btnCode='memberList.add'>
<Button
type="primary"
icon={<PlusOutlined />}
onClick={() => history.push(`/memberCenter/systemSetting/salesmanManage/salesmanBind/add`)}
>
{intl.formatMessage({ id: 'portalSystem.added', defaultMessage: '新增' })}
</Button>
</AuthButton>
</Space>
</Col>
</Row>
......
......@@ -8,6 +8,8 @@ import { Row, Col, Button, Tag, Badge, Modal } from 'antd';
import { WAITALLOTORDERSCHEMA } from './schema';
import { EXTERNALSTATE_COLOR, INTERNALSTATE_COLOR } from '@/pages/transaction/components/stateColor';
import { getTransactionProductInquiryExternalStateEnum, getTransactionProductInquiryInteriorStateEnum, getTransactionProductInquiryNotAssignedAssigned, getTransactionProductInquiryNotAssignedList, postTransactionProductInquiryNotAssignedAssignedBatch } from '@/services/TransactionV2Api';
import { AuthUrl } from '@/components/AuthButton/AuthUrl';
import AuthButton from '@/components/AuthButton';
const intl = getIntl();
const WaitAllotOrder = () => {
......@@ -21,10 +23,10 @@ const WaitAllotOrder = () => {
const fetchSubmitBatch = async (id?: string, index?: number) => {
let res = null;
if (id) {
setLoading({[index]: true})
setLoading({ [index]: true })
res = await getTransactionProductInquiryNotAssignedAssigned({ inquiryId: id })
} else {
setLoading({load: true})
setLoading({ load: true })
res = await postTransactionProductInquiryNotAssignedAssignedBatch({ idList: rowkeys });
}
if (res.code !== 1000) {
......@@ -44,6 +46,7 @@ const WaitAllotOrder = () => {
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
type={AuthUrl('waitAllotOrder.detail') ? 'link' : 'button'}
url={`/memberCenter/tranactionAbility/inquiryOffer/waitAllotOrder/preview?id=${record.id}`}>{text}</EyePreview>
},
{
......@@ -90,7 +93,7 @@ const WaitAllotOrder = () => {
title: intl.formatMessage({ id: 'dealAbility.caozuo' }),
key: 'options',
dataIndex: 'options',
render: (text: any, record: any, index: number) => <Button type='link' loading={loading[index]} onClick={() => fetchSubmitBatch(record.id, index)}>领取</Button>
render: (text: any, record: any, index: number) => <AuthButton btnCode='waitAllotOrder.collect'><Button type='link' loading={loading[index]} onClick={() => fetchSubmitBatch(record.id, index)}>领取</Button></AuthButton>
},
];
return (
......@@ -107,13 +110,15 @@ const WaitAllotOrder = () => {
controllerBtns={
<Row>
<Col span={6}>
<Button
loading={loading?.load}
disabled={rowkeys.length === 0}
onClick={() => fetchSubmitBatch()}
>
批量领取
</Button>
<AuthButton btnCode='waitAllotOrder.batch'>
<Button
loading={loading?.load}
disabled={rowkeys.length === 0}
onClick={() => fetchSubmitBatch()}
>
批量领取
</Button>
</AuthButton>
</Col>
</Row>
}
......
......@@ -201,6 +201,7 @@ const RunningInfo: React.FC<IProps> = (props) => {
{
title: `${intl.formatMessage({ id: 'merchantCoupon.OrderUseTime' })}`,
dataIndex: 'useTime',
render: (text) => text ? moment(text).format('YYYY-MM-DD HH:mm:ss') : '',
},
{
title: `${intl.formatMessage({ id: 'merchantCoupon.Mall'})}`,
......
......@@ -185,6 +185,7 @@ const AnchorModal: React.FC<AnchorModalProps> = (props: any) => {
name: Object.keys(product).length > 0 ? product.name : res.name,
category: Object.keys(product).length > 0 ? product.customerCategory.name : edit.category,
materialGroup: Object.keys(product).length > 0 ? product?.materialGroup?.name : edit.materialGroup,
goodsGroup: Object.keys(product).length > 0 ? product?.materialGroup?.name : edit.materialGroup,
ids: res.ids,
categoryId: (Object.keys(product).length > 0 && !isEmpty(product.customerCategory.category)) ? product.customerCategory.category.id : edit.categoryId,
memberCategoryId: Object.keys(product).length > 0 ? product.customerCategory.id : edit.memberCategoryId,
......
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