Commit a3108c9f authored by 前端-钟卫鹏's avatar 前端-钟卫鹏
parents 0f5c904f 3c8e6976
......@@ -12,6 +12,7 @@ import { RootObject } from './global'
interface NewRootObject extends RootObject {
channelRootRoute: string;
ichannelRootRoute: string;
getSelfMallUrl: () => string
}
const channelRootRoute = 'channel'
......@@ -26,4 +27,13 @@ export const getShopInfoById = (shopId: number) => {
}
export const getSelfMallUrl = () => {
const selfMallItem = SELF_CONFIG.web.shopInfo.filter((item) => item.environment === 1
&& item.property === 3
&& item.self === 1
&& item.isDefault === 1
)[0]
return selfMallItem ? selfMallItem?.url : 'own'
}
export const GlobalConfig: NewRootObject = SELF_CONFIG
......@@ -200,7 +200,7 @@ export default {
'detail.purchase.taxPrice': 'Amount (including tax)',
'detail.purchase.totalAmount': 'TotalAmount',
'detail.purchase.needCount': 'Required Quantity',
'detail.purchase.2': 'Procure Amount/unit',
'detail.purchase.purchaseCount1': 'Procure Amount/unit',
'detail.purchase.costPrice': 'Cost price',
'detail.purchase.needPrice': 'Demand amount',
'detail.purchase.arriveTime': 'Arrival Date',
......
......@@ -200,7 +200,7 @@ export default {
'detail.purchase.taxPrice': '금액(세금 포함)',
'detail.purchase.totalAmount': '합계',
'detail.purchase.needCount': '수요량',
'detail.purchase.2': '구매 수량/단위',
'detail.purchase.purchaseCount1': '구매 수량/단위',
'detail.purchase.costPrice': '원가',
'detail.purchase.needPrice': '수요 금액',
'detail.purchase.arriveTime': '입하 일자',
......
......@@ -200,7 +200,7 @@ export default {
'detail.purchase.taxPrice': '金额(含税)',
'detail.purchase.totalAmount': '合计',
'detail.purchase.needCount': '需求数量',
'detail.purchase.2': '采购数量/单位',
'detail.purchase.purchaseCount1': '采购数量/单位',
'detail.purchase.costPrice': '成本价',
'detail.purchase.needPrice': '需求金额',
'detail.purchase.arriveTime': '到货日期',
......
import { LAYOUT_TYPE } from "@/constants"
export const mallLayoutConfig = {
key: "0",
......@@ -50,10 +51,8 @@ export const headerConfig = {
export const mainNavConfig = {
key: "4",
"4": {
"componentName": "MallMainNav",
"props": {
},
"componentName": "OwnMainNav",
"props": {},
},
}
......
......@@ -280,7 +280,7 @@ const MemberMaintain: React.FC<[]> = () => {
actions={formActions}
onSubmit={values => ref.current.reload(values)}
components={{
ControllerBtns,
MemberControllerBtns: ControllerBtns,
}}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
......
......@@ -11,7 +11,7 @@ export const importSchema: ISchema = {
type: 'object',
'x-component': 'Mega-Layout',
properties: {
topLayout: {
controllerWrap: {
type: 'object',
'x-component': 'Mega-Layout',
'x-component-props': {
......@@ -20,7 +20,7 @@ export const importSchema: ISchema = {
properties: {
ctl: {
type: 'object',
'x-component': 'ControllerBtns',
'x-component': 'MemberControllerBtns',
},
name: {
type: 'string',
......
......@@ -4,13 +4,15 @@ import { Button, message, Modal, Pagination } from 'antd'
import { StarFilled } from '@ant-design/icons'
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import ShopCredit from '@/components/ShopCredit'
import { getShopInfoById } from '@/global/config'
import { getShopInfoById, getSelfMallUrl } from '@/global/config'
import { numFormat } from '@/utils/numberFomat'
import moment from 'moment'
import { COMMODITY_TYPE, CHANNEL_CENTER_URL, ENTERPRISE_CENTER_URL, REQUEST_HEADER, TOP_DOMAIN } from '@/constants'
import { COMMODITY_TYPE, REQUEST_HEADER, TOP_DOMAIN } from '@/constants'
import { postManageWebShopWebAll, PostManageWebShopWebAllResponse } from '@/services/ManageV2Api'
import styles from './index.less'
import { getSearchShopCommodityCollectGetCommodityCollectList, postSearchShopCommodityCollectChannelDeleteCommodityCollectById, postSearchShopCommodityCollectDeleteCommodityCollectById } from '@/services/SearchV2Api';
import { useIntl} from 'umi'
import { getAuth } from '@/utils/auth';
const Commodity: React.FC = () => {
const intl = useIntl();
......@@ -40,33 +42,43 @@ const Commodity: React.FC = () => {
})
}
const linkToDetail = (detail) => {
const linkToDetail = async (detail) => {
if (detail.isPublish) {
const el = document.createElement('a')
const shopInfo = getShopInfoById(detail.shopId)
if (!shopInfo) return
const mallUrl = `${REQUEST_HEADER}${shopInfo.url}.${TOP_DOMAIN}`
if (detail.channelMemberId) {
switch (detail.commodity.priceType) {
case 1:
case 2:
el.href = `${mallUrl}/${detail.channelMemberId}/commodity/detail/${detail.commodity.id}`;
break
case 3:
el.href = `${mallUrl}/${detail.channelMemberId}/integral/detail/${detail.commodity.id}`;
break
if (shopInfo) {
const mallUrl = `${REQUEST_HEADER}${shopInfo.url}.${TOP_DOMAIN}`
if (detail.channelMemberId) {
switch (detail.commodity.priceType) {
case 1:
case 2:
el.href = `${mallUrl}/${detail.channelMemberId}/commodity/detail/${detail.commodity.id}`;
break
case 3:
el.href = `${mallUrl}/${detail.channelMemberId}/integral/detail/${detail.commodity.id}`;
break
}
} else {
switch (detail.commodity.priceType) {
case 1:
case 2:
el.href = `${mallUrl}/shop/${detail.commodity.memberId}_${detail.commodity.memberRoleId}/commodity/detail/${detail.commodity.id}`;
break
case 3:
el.href = `${mallUrl}/shop/${detail.commodity.memberId}_${detail.commodity.memberRoleId}/integral/detail/${detail.commodity.id}`;
break
}
}
} else {
switch (detail.commodity.priceType) {
case 1:
case 2:
el.href = `${mallUrl}/shop/${detail.commodity.memberId}_${detail.commodity.memberRoleId}/commodity/detail/${detail.commodity.id}`;
break
case 3:
el.href = `${mallUrl}/shop/${detail.commodity.memberId}_${detail.commodity.memberRoleId}/integral/detail/${detail.commodity.id}`;
break
const selfMallUrl = getSelfMallUrl()
if (selfMallUrl) {
const url = `${REQUEST_HEADER}${selfMallUrl}.${TOP_DOMAIN}`
el.href = `${url}/${detail.commodity.memberId}/commodity/detail/${detail.commodity.id}`;
} else {
return
}
}
el.target = '_blank';
el.id = detail.commodity.id
// 防止反复添加
......
......@@ -7,7 +7,7 @@ import EyePreview from '@/components/EyePreview';
import moment from 'moment';
import { OFFERSEARCHSCHEMA } from './schema';
import { EXTERNALSTATE_COLOR, INTERNALSTATE_COLOR } from '@/pages/transaction/components/stateColor';
import { getTransactionProductInquiryInteriorStateEnum, getTransactionProductQuotationList, getTransactionQuotationtInquiryExternalStateEnum } from '@/services/TransactionV2Api';
import { getTransactionProductQuotationList, getTransactionQuotationtInquiryExternalStateEnum, postTransactionQuotationtInquiryInteriorStateEnum } from '@/services/TransactionV2Api';
const intl = getIntl();
const OfferSearch = () => {
......@@ -19,49 +19,49 @@ const OfferSearch = () => {
const columns: ColumnType<any>[] = [
{
title: intl.formatMessage({id: 'dealAbility.baojiadanhao'}),
title: intl.formatMessage({ id: 'dealAbility.baojiadanhao' }),
key: 'quotationNo',
dataIndex: 'quotationNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/inquiryOffer/offerSearch/offer/preview?id=${record.id}`}>{text}</EyePreview>
},
{
title: intl.formatMessage({id: 'dealAbility.xunjiadanhao'}),
title: intl.formatMessage({ id: 'dealAbility.xunjiadanhao' }),
key: 'inquiryListNo',
dataIndex: 'inquiryListNo',
render: (text: any, record: any) => <EyePreview
url={`/memberCenter/tranactionAbility/inquiryOffer/offerSearch/inquiry/preview?id=${record.inquiryListId}`}>{text}</EyePreview>
},
{
title: intl.formatMessage({id: 'dealAbility.baojiadanzhaiyao'}),
title: intl.formatMessage({ id: 'dealAbility.baojiadanzhaiyao' }),
key: 'details',
dataIndex: 'details',
},
{
title: intl.formatMessage({id: 'dealAbility.xunjiahuiyuan'}),
title: intl.formatMessage({ id: 'dealAbility.xunjiahuiyuan' }),
key: 'memberName',
dataIndex: 'memberName',
},
{
title:intl.formatMessage({id: 'dealAbility.baojiajiezhishijian'}),
title: intl.formatMessage({ id: 'dealAbility.baojiajiezhishijian' }),
key: 'quotationAsTime',
dataIndex: 'quotationAsTime',
render: (text: any, record: any) => format(text)
},
{
title: intl.formatMessage({id: 'dealAbility.danjushijian'}),
title: intl.formatMessage({ id: 'dealAbility.danjushijian' }),
key: 'voucherTime',
dataIndex: 'voucherTime',
render: (text: any, record: any) => format(text)
},
{
title: intl.formatMessage({id: 'dealAbility.waibuzhuangtai'}),
title: intl.formatMessage({ id: 'dealAbility.waibuzhuangtai' }),
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <Tag color={EXTERNALSTATE_COLOR[text]}>{record.externalStateName}</Tag>
},
{
title: intl.formatMessage({id: 'dealAbility.neibuzhuangtai'}),
title: intl.formatMessage({ id: 'dealAbility.neibuzhuangtai' }),
key: 'interiorState',
dataIndex: 'interiorState',
render: (text: any, record: any) => <Badge status={INTERNALSTATE_COLOR[text]} text={record.interiorStateName} />
......@@ -76,7 +76,7 @@ const OfferSearch = () => {
fetch={getTransactionProductQuotationList}
reload={reload}
externalStatusFetch={getTransactionQuotationtInquiryExternalStateEnum()}
interiorStatusFetch={getTransactionProductInquiryInteriorStateEnum({ type: '2' })}
interiorStatusFetch={postTransactionQuotationtInquiryInteriorStateEnum({}, { ctlType: 'none' })}
/>
)
}
......
......@@ -140,8 +140,6 @@ const WaitAddOffer = () => {
columns={columns}
effects="quotationNo"
fetch={getTransactionStayProductQuotationList}
externalStatusFetch={getTransactionProductInquiryExternalStateEnum({ type: '2' })}
interiorStatusFetch={getTransactionProductInquiryInteriorStateEnum({ type: '2' })}
fetchRowkeys={(e) => setRowKeys(e)}
getCheckboxProps={getCheckboxProps}
controllerBtns={
......
......@@ -75,26 +75,6 @@ export const WAITADDOFFERSCHEMA: ISchema = {
placeholder: [intl.formatMessage({id: 'dealAbility.kaishishijian'}),intl.formatMessage({id: 'dealAbility.jieshushijian'})],
}
},
externalState: {
type: "string",
"x-component-props": {
placeholder: intl.formatMessage({ id: 'dealAbility.waibuzhuangtai' }),
style: {
width: 160
}
},
enum: []
},
interiorState: {
type: "string",
"x-component-props": {
placeholder: intl.formatMessage({ id: 'dealAbility.neibuzhuangtai' }),
style: {
width: 160
}
},
enum: []
},
}
},
sumbit: {
......
......@@ -87,8 +87,6 @@ const WaitAuditOfferOne = () => {
columns={columns}
effects="quotationNo"
fetch={getTransactionAuditProductQuotationList}
externalStatusFetch={getTransactionProductInquiryExternalStateEnum({ type: '2' })}
interiorStatusFetch={getTransactionProductInquiryInteriorStateEnum({ type: '2' })}
fetchRowkeys={(e) => setRowKeys(e)}
controllerBtns={
<Row>
......
......@@ -75,26 +75,6 @@ export const WAITAUDITOFFERONESCHEMA: ISchema = {
placeholder: [intl.formatMessage({id: 'dealAbility.kaishishijian'}),intl.formatMessage({id: 'dealAbility.jieshushijian'})],
}
},
externalState: {
type: "string",
"x-component-props": {
placeholder: intl.formatMessage({ id: 'dealAbility.waibuzhuangtai' }),
style: {
width: 160
}
},
enum: []
},
interiorState: {
type: "string",
"x-component-props": {
placeholder: intl.formatMessage({ id: 'dealAbility.neibuzhuangtai' }),
style: {
width: 160
}
},
enum: []
},
}
},
sumbit: {
......
......@@ -87,8 +87,6 @@ const WaitAuditOfferTwo = () => {
columns={columns}
effects="quotationNo"
fetch={getTransactionAuditProductQuotationListTwo}
externalStatusFetch={getTransactionProductInquiryExternalStateEnum({ type: '2' })}
interiorStatusFetch={getTransactionProductInquiryInteriorStateEnum({ type: '2' })}
fetchRowkeys={(e) => setRowKeys(e)}
controllerBtns={
<Row>
......
......@@ -75,26 +75,6 @@ export const WAITADUITOFFERTWOSCHEMA: ISchema = {
placeholder: [intl.formatMessage({id: 'dealAbility.kaishishijian'}),intl.formatMessage({id: 'dealAbility.jieshushijian'})],
}
},
externalState: {
type: "string",
"x-component-props": {
placeholder: intl.formatMessage({ id: 'dealAbility.waibuzhuangtai' }),
style: {
width: 160
}
},
enum: []
},
interiorState: {
type: "string",
"x-component-props": {
placeholder: intl.formatMessage({ id: 'dealAbility.neibuzhuangtai' }),
style: {
width: 160
}
},
enum: []
},
}
},
sumbit: {
......
......@@ -249,7 +249,7 @@ const RulesLayout: React.FC<RulesLayoutProps> = (props: any) => {
rules={[
({ getFieldValue }) => ({
validator: (_rule, value) => {
const pattern = /(^[1-9](\d+)?(\.\d{1,2})?$)|(^\d\.\d{1,2}$)/;
const pattern = /^([1-9]\d*(\.\d{1,2})?|([0](\.([0][1-9]|[1-9]\d{0,1}))))$/
const randomEndPrice = getFieldValue('activityDefined')['randomEndPrice'];
if (!value) {
return Promise.reject(new Error(`${intl.formatMessage({ id: 'selfManagement.pleaseMinimumAmountRandom' })}`));
......@@ -272,7 +272,7 @@ const RulesLayout: React.FC<RulesLayoutProps> = (props: any) => {
rules={[
({ getFieldValue }) => ({
validator: (_rule, value) => {
const pattern = /(^[1-9](\d+)?(\.\d{1,2})?$)|(^\d\.\d{1,2}$)/;
const pattern = /^([1-9]\d*(\.\d{1,2})?|([0](\.([0][1-9]|[1-9]\d{0,1}))))$/
const randomStartPrice = getFieldValue('activityDefined')['randomStartPrice'];
if (!value) {
return Promise.reject(new Error(`${intl.formatMessage({ id: 'selfManagement.pleaseLargestAmountRandom' })}`));
......@@ -351,8 +351,8 @@ const RulesLayout: React.FC<RulesLayoutProps> = (props: any) => {
fieldKey={[fieldKey, `${int === ACTIVITY_TYPE_7 ? 'num' : 'key'}`]}
rules={[{
required: true, validator: (_rule, value) => {
const pattern1 = /(^[1-9](\d+)?(\.\d{1,3})?$)|(^\d\.\d{1,3}$)/;
const pattern2 = /(^[1-9](\d+)?(\.\d{1,2})?$)|(^\d\.\d{1,2}$)/;
const pattern1 = /^([1-9]\d*(\.\d{1,3})?|([0](\.([0][1-9]|[1-9]\d{0,1}))))$/
const pattern2 = /^([1-9]\d*(\.\d{1,2})?|([0](\.([0][1-9]|[1-9]\d{0,1}))))$/
const valueKey = form.getFieldValue(`activityDefined`)['ladderList'][fieldKey]['value'];
console.log(valueKey)
if (!value && int === ACTIVITY_TYPE_4) {
......@@ -387,8 +387,8 @@ const RulesLayout: React.FC<RulesLayoutProps> = (props: any) => {
fieldKey={[fieldKey, `${int === ACTIVITY_TYPE_7 ? 'discount' : 'value'}`]}
rules={[{
required: true, validator: (_rule, value) => {
const pattern1 = /(^[1-9](\d+)?(\.\d{1,2})?$)|(^\d\.\d{1,2}$)/;
const pattern2 = /(^[1-9](\d+)?(\.\d{1,2})?$)|(^\d\.\d{1,2}$)/;
const pattern1 = /^([1-9]\d*(\.\d{1,2})?|([0](\.([0][1-9]|[1-9]\d{0,1}))))$/
const pattern2 = /^([1-9]\d*(\.\d{1,2})?|([0](\.([0][1-9]|[1-9]\d{0,1}))))$/
const pattern3 = /^(?!0+(?:\.0+)?$)\d?\d(?:\.\d{1,1}?)?$/;
const pattern4 = /^(?!0+(?:\.0+)?$)\d?\d(?:\.\d{1,1}?)?$/;
const valueKey = form.getFieldValue(`activityDefined`)['ladderList'][fieldKey]['key'];
......@@ -454,7 +454,7 @@ const RulesLayout: React.FC<RulesLayoutProps> = (props: any) => {
name={['activityDefined', 'price']}
rules={[{
required: true, validator: (_rule, value) => {
const pattern = /(^[1-9](\d+)?(\.\d{1,2})?$)|(^\d\.\d{1,2}$)/;
const pattern = /^([1-9]\d*(\.\d{1,2})?|([0](\.([0][1-9]|[1-9]\d{0,1}))))$/
if (!value) {
return Promise.reject(new Error(`${intl.formatMessage({ id: 'selfManagement.pleaseEnterTheAmount' })}`));
}
......@@ -796,7 +796,7 @@ const RulesLayout: React.FC<RulesLayoutProps> = (props: any) => {
name={['activityDefined', 'orderPrice']}
rules={[{
required: true, validator: (_rule, value) => {
const pattern = /(^[1-9](\d+)?(\.\d{1,2})?$)|(^\d\.\d{1,2}$)/;
const pattern = /^([1-9]\d*(\.\d{1,2})?|([0](\.([0][1-9]|[1-9]\d{0,1}))))$/
if (!value) {
return Promise.reject(new Error(`${intl.formatMessage({ id: 'selfManagement.pleaseEnterTheOrderAmount' })}`));
}
......
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