Commit 489574eb authored by Bill's avatar Bill

Merge branch 'dev-srm' of 10.0.0.22:lingxi/lingxi-business-paltform into dev-srm

parents 500c657a 9b6267e8
...@@ -78,11 +78,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -78,11 +78,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
// 根据站点获取商城信息 // 根据站点获取商城信息
const fetchAllShop = () => { const fetchAllShop = () => {
const param: any = { PublicApi.getManageShopFindByDoorType({ doorType: 2 }).then(res => {
siteId,
type: 3
}
PublicApi.getManageShopFindShopsBySiteId(param).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
setAllMallList(res.data) setAllMallList(res.data)
} }
...@@ -438,7 +434,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -438,7 +434,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
<Select allowClear value={shopId} className={styles.form_item} onChange={handleMallSelectChange}> <Select allowClear value={shopId} className={styles.form_item} onChange={handleMallSelectChange}>
{ {
allMallList.map(item => ( allMallList.map(item => (
<Select.Option key={item.id} value={item.id}>{item.name}</Select.Option> <Select.Option key={item.id} value={item.id} url={item.url}>{item.name}</Select.Option>
)) ))
} }
</Select> </Select>
......
...@@ -134,7 +134,6 @@ const PurchaseList = () => { ...@@ -134,7 +134,6 @@ const PurchaseList = () => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
PublicApi.getContractPurchaseInquiryPageToBeCreate({ PublicApi.getContractPurchaseInquiryPageToBeCreate({
...params, ...params,
}).then(res => { }).then(res => {
resolve(res.data) resolve(res.data)
}) })
......
import React, { useState, useRef, ReactNode } from 'react' import React, { useRef, ReactNode } from 'react'
import { history, Link } from 'umi'; import { history, Link } from 'umi';
import { PageHeaderWrapper } from '@ant-design/pro-layout'; import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { Card, Row, Col, Input, Button, Space, Popconfirm } from 'antd'; import { Card, Button, Space, Popconfirm } from 'antd';
import { ColumnType } from 'antd/lib/table/interface'; import { ColumnType } from 'antd/lib/table/interface';
import { StandardTable } from 'god'; import { StandardTable } from 'god';
import NiceForm from '@/components/NiceForm'; import NiceForm from '@/components/NiceForm';
......
...@@ -80,11 +80,7 @@ const HandlingInfo: React.FC<HandlingInfoPropsType> = (props) => { ...@@ -80,11 +80,7 @@ const HandlingInfo: React.FC<HandlingInfoPropsType> = (props) => {
// 根据站点获取商城信息 // 根据站点获取商城信息
const fetchAllShop = () => { const fetchAllShop = () => {
const param: any = { PublicApi.getManageShopFindByDoorType({ doorType: 5 }).then(res => {
siteId,
type: 8
}
PublicApi.getManageShopFindShopsBySiteId(param).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
setAllMallList(res.data) setAllMallList(res.data)
} }
...@@ -598,7 +594,7 @@ const HandlingInfo: React.FC<HandlingInfoPropsType> = (props) => { ...@@ -598,7 +594,7 @@ const HandlingInfo: React.FC<HandlingInfoPropsType> = (props) => {
<Select allowClear value={shopId} className={styles.form_item} onChange={handleMallSelectChange}> <Select allowClear value={shopId} className={styles.form_item} onChange={handleMallSelectChange}>
{ {
allMallList.map(item => ( allMallList.map(item => (
<Select.Option key={item.id} value={item.id}>{item.name}</Select.Option> <Select.Option key={item.id} value={item.id} url={item.url}>{item.name}</Select.Option>
)) ))
} }
</Select> </Select>
......
...@@ -80,11 +80,7 @@ const LogisticsInfo: React.FC<LogisticsInfoPropsType> = (props) => { ...@@ -80,11 +80,7 @@ const LogisticsInfo: React.FC<LogisticsInfoPropsType> = (props) => {
// 根据站点获取商城信息 // 根据站点获取商城信息
const fetchAllShop = () => { const fetchAllShop = () => {
const param: any = { PublicApi.getManageShopFindByDoorType({doorType: 4}).then(res => {
siteId,
type: 7
}
PublicApi.getManageShopFindShopsBySiteId(param).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
setAllMallList(res.data) setAllMallList(res.data)
} }
......
...@@ -98,7 +98,7 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle}) => { ...@@ -98,7 +98,7 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle}) => {
memberId: childDataSource[_item][0]['memberId'], memberId: childDataSource[_item][0]['memberId'],
memberName: _item, memberName: _item,
total: computedMemberScoreItem['total'], total: computedMemberScoreItem['total'],
average: computedMemberScoreItem['average'], average: computedMemberScoreItem['average'] ? computedMemberScoreItem['average'].toFixed(2) : null,
expertNumber: computedMemberScoreItem['expertNumber'], expertNumber: computedMemberScoreItem['expertNumber'],
} }
let columns: any = [] let columns: any = []
......
...@@ -98,7 +98,7 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle}) => { ...@@ -98,7 +98,7 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle}) => {
memberId: childDataSource[_item][0]['memberId'], memberId: childDataSource[_item][0]['memberId'],
memberName: _item, memberName: _item,
total: computedMemberScoreItem['total'], total: computedMemberScoreItem['total'],
average: computedMemberScoreItem['average'], average: computedMemberScoreItem['average'] ? computedMemberScoreItem['average'].toFixed(2) : null,
expertNumber: computedMemberScoreItem['expertNumber'], expertNumber: computedMemberScoreItem['expertNumber'],
} }
let columns: any = [] let columns: any = []
......
...@@ -29,7 +29,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => { ...@@ -29,7 +29,7 @@ const BidConfirm: React.FC<BidConfirmProps> = ({cardTitle}) => {
useEffect(() => { useEffect(() => {
if(data?.memberList.length) { if(data?.memberList.length) {
const { memberList } = data const { memberList } = data
const _memberList = memberList.filter(every => every.submitTender).map(item => ({ const _memberList = memberList.filter(every => every.submitTender && every.isSubmit).map(item => ({
...item, ...item,
totalAmount: (item.submitTender.submitTenderMateriel.reduce((a, b) => a + b.price * b.inviteTenderMateriel.count, 0)).toFixed(2) totalAmount: (item.submitTender.submitTenderMateriel.reduce((a, b) => a + b.price * b.inviteTenderMateriel.count, 0)).toFixed(2)
})).sort((a, b) => b.totalAmount - a.totalAmount) })).sort((a, b) => b.totalAmount - a.totalAmount)
......
...@@ -98,7 +98,7 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle}) => { ...@@ -98,7 +98,7 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle}) => {
memberId: childDataSource[_item][0]['memberId'], memberId: childDataSource[_item][0]['memberId'],
memberName: _item, memberName: _item,
total: computedMemberScoreItem['total'], total: computedMemberScoreItem['total'],
average: computedMemberScoreItem['average'], average: computedMemberScoreItem['average'] ? computedMemberScoreItem['average'].toFixed(2) : null,
expertNumber: computedMemberScoreItem['expertNumber'], expertNumber: computedMemberScoreItem['expertNumber'],
} }
let columns: any = [] let columns: any = []
......
...@@ -98,7 +98,7 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle}) => { ...@@ -98,7 +98,7 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle}) => {
memberId: childDataSource[_item][0]['memberId'], memberId: childDataSource[_item][0]['memberId'],
memberName: _item, memberName: _item,
total: computedMemberScoreItem['total'], total: computedMemberScoreItem['total'],
average: computedMemberScoreItem['average'], average: computedMemberScoreItem['average'] ? computedMemberScoreItem['average'].toFixed(2) : null,
expertNumber: computedMemberScoreItem['expertNumber'], expertNumber: computedMemberScoreItem['expertNumber'],
} }
let columns: any = [] let columns: any = []
......
...@@ -127,7 +127,7 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle, editable}) ...@@ -127,7 +127,7 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle, editable})
memberId: childDataSource[_item][0]['memberId'], memberId: childDataSource[_item][0]['memberId'],
memberName: _item, memberName: _item,
total: computedMemberScoreItem['total'], total: computedMemberScoreItem['total'],
average: computedMemberScoreItem['average'], average: computedMemberScoreItem['average'] ? computedMemberScoreItem['average'].toFixed(2) : null,
expertNumber: computedMemberScoreItem['expertNumber'], expertNumber: computedMemberScoreItem['expertNumber'],
editable, editable,
} }
......
...@@ -83,10 +83,11 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => { ...@@ -83,10 +83,11 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => {
} }
</p> </p>
{ {
data['inviteTenderAreaList']['length'] > 3 && data['inviteTenderAreaList']['length'] > 3 ?
<p onClick={toogleMore} style={{ cursor: 'pointer' }} className="commonPickColor"> <p onClick={toogleMore} style={{ cursor: 'pointer' }} className="commonPickColor">
展开{showMore ? <CaretDownOutlined /> : <CaretUpOutlined />} 展开{showMore ? <CaretDownOutlined /> : <CaretUpOutlined />}
</p> </p>
: null
} }
</> </>
} }
...@@ -137,10 +138,11 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => { ...@@ -137,10 +138,11 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => {
} }
</p> </p>
{ {
data['inviteTenderAreaList']['length'] > 3 && data['inviteTenderAreaList']['length'] > 3 ?
<p onClick={toogleMore} style={{ cursor: 'pointer' }} className="commonPickColor"> <p onClick={toogleMore} style={{ cursor: 'pointer' }} className="commonPickColor">
展开{showMore ? <CaretDownOutlined /> : <CaretUpOutlined />} 展开{showMore ? <CaretDownOutlined /> : <CaretUpOutlined />}
</p> </p>
: null
} }
</> </>
} }
...@@ -254,7 +256,7 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => { ...@@ -254,7 +256,7 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => {
span: 8, span: 8,
fieldList: [ fieldList: [
{ title: '电子邮箱:', name: 'email', render: () => _data?.submitTenderRegister?.email }, { title: '电子邮箱:', name: 'email', render: () => _data?.submitTenderRegister?.email },
{ title: '单位地址:', name: 'address', render: () =>_data?.submitTenderRegister && `${_data.submitTenderRegister.provinceName}${_data.submitTenderRegister.cityName}${_data.submitTenderRegister.regionName}${_data.submitTenderRegister.address}` }, { title: '单位地址:', name: 'address', render: () =>_data?.submitTenderRegister ? `${_data.submitTenderRegister.provinceName}${_data.submitTenderRegister.cityName}${_data.submitTenderRegister.regionName}${_data.submitTenderRegister.address}` : null },
] ]
} }
] ]
...@@ -269,7 +271,7 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => { ...@@ -269,7 +271,7 @@ const DescriptionsInfo: React.FC<BasicInfoProps> = ({cardTitle, type}) => {
name: 'registerFile', name: 'registerFile',
render: (t, r) => (<div> render: (t, r) => (<div>
{ {
_data?.submitTenderRegister && _data['submitTenderRegister']['registerFile'].map((_item, _i) => <p><a key={`registerFile${_i}`} target="_blank" href={_item.url}><FileFilled /> {_item.name}</a></p>) _data?.submitTenderRegister ? _data['submitTenderRegister']['registerFile'].map((_item, _i) => <p><a key={`registerFile${_i}`} target="_blank" href={_item.url}><FileFilled /> {_item.name}</a></p>) : null
} }
</div>) </div>)
}, },
......
...@@ -100,7 +100,7 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle}) => { ...@@ -100,7 +100,7 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({cardTitle}) => {
memberId: childDataSource[_item][0]['memberId'], memberId: childDataSource[_item][0]['memberId'],
memberName: _item, memberName: _item,
total: computedMemberScoreItem['total'], total: computedMemberScoreItem['total'],
average: computedMemberScoreItem['average'], average: computedMemberScoreItem['average'] ? computedMemberScoreItem['average'].toFixed(2) : null,
expertNumber: computedMemberScoreItem['expertNumber'], expertNumber: computedMemberScoreItem['expertNumber'],
} }
let columns: any = [] let columns: any = []
......
...@@ -63,6 +63,7 @@ const AddTender:React.FC<AddTenderProps> = (props) => { ...@@ -63,6 +63,7 @@ const AddTender:React.FC<AddTenderProps> = (props) => {
const [initFormValue, setInitFormValue] = useState<any>({ const [initFormValue, setInitFormValue] = useState<any>({
submitTenderMateriel: [] submitTenderMateriel: []
}) })
const [code, setCode] = useState<any>({})
// 关联报价商品 // 关联报价商品
const productRef = useRef<any>({}) const productRef = useRef<any>({})
...@@ -80,6 +81,7 @@ const AddTender:React.FC<AddTenderProps> = (props) => { ...@@ -80,6 +81,7 @@ const AddTender:React.FC<AddTenderProps> = (props) => {
PublicApi.getPurchaseSubmitTenderGetSubmitTender({submitTenderId: id}).then(res => { PublicApi.getPurchaseSubmitTenderGetSubmitTender({submitTenderId: id}).then(res => {
if(res.code === 1000) { if(res.code === 1000) {
const pocessedData = processTenderData(res.data) const pocessedData = processTenderData(res.data)
setCode(res.data.inviteTender)
setInitFormValue(pocessedData) setInitFormValue(pocessedData)
} }
}) })
...@@ -103,7 +105,11 @@ const AddTender:React.FC<AddTenderProps> = (props) => { ...@@ -103,7 +105,11 @@ const AddTender:React.FC<AddTenderProps> = (props) => {
} }
let param = { let param = {
...item, ...item,
inviteTenderMateriel: { id: item.inviteTenderMateriel.id }, }
if(item?.inviteTender?.id) {
param.inviteTenderMateriel = { id: item.inviteTender.id }
} else {
param.inviteTenderMateriel = { id: item.id }
} }
if(!value?.id) delete param.id if(!value?.id) delete param.id
return param return param
...@@ -147,6 +153,8 @@ const AddTender:React.FC<AddTenderProps> = (props) => { ...@@ -147,6 +153,8 @@ const AddTender:React.FC<AddTenderProps> = (props) => {
} }
} }
const InviterCodeJump = () => <a target="_blank" href={`/memberCenter/procurementAbility/callForBids/callForBidsSearch/detail?id=${code.id}`}>{code.code}</a>
return ( return (
<PageHeaderWrapper <PageHeaderWrapper
style={{margin: 0}} style={{margin: 0}}
...@@ -168,7 +176,8 @@ const AddTender:React.FC<AddTenderProps> = (props) => { ...@@ -168,7 +176,8 @@ const AddTender:React.FC<AddTenderProps> = (props) => {
schema={formSchema} schema={formSchema}
onSubmit={handleSubmit} onSubmit={handleSubmit}
components={{ components={{
ArrayTable ArrayTable,
InviterCodeJump
}} }}
effects={($, ctx) => { effects={($, ctx) => {
$('onFormMount').subscribe(async () => { $('onFormMount').subscribe(async () => {
......
...@@ -44,6 +44,7 @@ export const formSchema: ISchema = { ...@@ -44,6 +44,7 @@ export const formSchema: ISchema = {
type: 'string', type: 'string',
title: '招标编号', title: '招标编号',
readOnly: true, readOnly: true,
'x-component': 'InviterCodeJump',
}, },
memberName: { memberName: {
type: 'string', type: 'string',
......
...@@ -26,6 +26,8 @@ const defaultCityData = { index: 0, provinceCode: 0, province: '', cityCode: 0, ...@@ -26,6 +26,8 @@ const defaultCityData = { index: 0, provinceCode: 0, province: '', cityCode: 0,
const ShopInfo: React.FC<ShopInfoPropsType> = (props) => { const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
const { siteUrl, siteId } = props.SiteStore const { siteUrl, siteId } = props.SiteStore
const [door, setDoor] = useState<string>('');
const [resUrl, setResUrl] = useState<string>('');
const [formIsHalfFilledOut, setFormIsHalfFilledOut] = useState(false) const [formIsHalfFilledOut, setFormIsHalfFilledOut] = useState(false)
const [form] = Form.useForm() const [form] = Form.useForm()
const [allMallList, setAllMallList] = useState([]) const [allMallList, setAllMallList] = useState([])
...@@ -74,11 +76,7 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -74,11 +76,7 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
// 根据站点获取商城信息 // 根据站点获取商城信息
const fetchAllShop = () => { const fetchAllShop = () => {
const param: any = { PublicApi.getManageShopFindByDoorType({ doorType: 1 }).then(res => {
siteId,
type: 1
}
PublicApi.getManageShopFindShopsBySiteId(param).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
setAllMallList(res.data) setAllMallList(res.data)
} }
...@@ -257,62 +255,26 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -257,62 +255,26 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
}) })
} }
const handleMallSelectChange = (mallId: number) => { const handleFormValueChange = () => {
setShopId(mallId) setFormIsHalfFilledOut(true)
if (!shopInfo) {
return null
}
if (shopInfo.shopId && shopInfo.memberId) {
const resUrl = getMallItemAndSetUrl(mallId)
setStoreUrl(resUrl)
} else {
setStoreUrl(null)
}
} }
const getMallItemAndSetUrl = (mallId) => { /** 获取店铺链接 */
let result = "" const checkUrl = (url) => {
const mallItem = allMallList.filter(item => item.id === mallId)[0] if (url && typeof url === 'string') {
if (!mallItem) { if (url.indexOf('/') === 0) {
return "" return url.replace('/', '').trim()
}
if (mallItem.environment === 1) {
switch (mallItem.type) {
case 1:
result = `${REQUEST_HEADER}${mallItem.url}.${TOP_DOMAIN}/shop/${shopInfo.memberId}_${shopInfo.roleId}`
break
// case 2:
// result = `${REQUEST_HEADER}${mallItem.url}.${TOP_DOMAIN}/shop/${shopInfo.memberId}_${shopInfo.roleId}/integral`
// break
default:
result = ""
break
}
} else { } else {
result = "" return `${url}`.trim()
} }
return result
} }
const handleFormValueChange = () => {
setFormIsHalfFilledOut(true)
} }
const getSelectMallStoreUrl = () => { const handleMallSelectChange = (val, option) => {
if (!shopInfo) { setDoor(option.children);
return null if (option.url) {
} checkUrl(option.url) ? setResUrl(`${checkUrl(option.url)}.${siteUrl}`) : setResUrl(`${siteUrl}`)
if (shopId && shopInfo.memberId) {
const resUrl = getMallItemAndSetUrl(shopId)
return resUrl ? (
<div className={styles.shop_url}>
<span>当前店铺链接:</span>
<label>{resUrl}</label>
<CopyOutlined className={styles.copy_icon} onClick={() => handleCopyLinke(resUrl)} />
</div>
) : null
} }
return null
} }
return ( return (
...@@ -461,13 +423,17 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -461,13 +423,17 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
<Select allowClear value={shopId} className={styles.form_item} onChange={handleMallSelectChange}> <Select allowClear value={shopId} className={styles.form_item} onChange={handleMallSelectChange}>
{ {
allMallList.map(item => ( allMallList.map(item => (
<Select.Option key={item.id} value={item.id}>{item.name}</Select.Option> <Select.Option key={item.id} value={item.id} url={item.url}>{item.name}</Select.Option>
)) ))
} }
</Select> </Select>
{ {resUrl && (
getSelectMallStoreUrl() <div className={styles.shop_url}>
} <span>当前{door}链接:</span>
<label>{resUrl}</label>
<CopyOutlined className={styles.copy_icon} onClick={() => handleCopyLinke(resUrl)} />
</div>
)}
</Form.Item> </Form.Item>
<Form.Item <Form.Item
label={<RequireItem label="" />} label={<RequireItem label="" />}
......
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