Commit 5fb5701b authored by 前端-黄佳鑫's avatar 前端-黄佳鑫

feat(采购询价报价翻译):

parent 39ed1795
......@@ -60,6 +60,7 @@ const PurchaseLocales = {
'table.purchase.dementCreateTime': '单据时间',
'table.purchase.dementNo': '需求单号',
'table.purchase.member': '需求会员',
'table.purchase.offer': '报价',
'table.purchase.purchaseInquiryNoDtails': '报价单号/摘要',
'table.purchase.purchaseInquiryNoMember': '需求单号/会员',
'table.purchase.purchaseInquiryNoCreateTime': '报价时间',
......@@ -85,16 +86,22 @@ const PurchaseLocales = {
'table.purchase.popconfirm': '确定要提交吗?',
'table.purchase.popconfirm1': '确定要提交审核吗?',
'table.purchase.popconfirm2': '确定要删除吗?',
'table.purchase.submitBatch': '确定要删除吗?',
'table.purchase.deleteBatch': '确定要删除吗?',
'table.purchase.popconfirm3': '确定要提交报价单吗?',
'table.purchase.submitBatch': '批量提交审核',
'table.purchase.deleteBatch': '批量删除',
'table.purchase.offerSubmit': '提交报价单',
// detail
'detail.purchase.progressLayout': '流转进度',
'detail.purchase.basicLayout': '基本信息',
'detail.purchase.basicLayout1': '基本流程',
'detail.purchase.offerLayout': '报价信息',
'detail.purchase.offerExplain': '报价说明',
'detail.purchase.materialLayout': '采购物料',
'detail.purchase.conditionLayout': '交易条件',
'detail.purchase.recordLyout': '流转记录',
'detail.purchase.bidLayout': '授标结果',
'detail.purchase.bidLayout1': '中标通知',
'detail.purchase.purchasePlanNo': '采购计划编号',
'detail.purchase.summary': '采购计划摘要',
'detail.purchase.innerStatus': '内部状态',
......@@ -116,34 +123,31 @@ const PurchaseLocales = {
'detail.purchase.brand': '品牌',
'detail.purchase.unitName': '单位',
'detail.purchase.unitNameId': '单位ID',
'detail.purchase.isTax': '含税',
'detail.purchase.taxProbability': '税率',
'detail.purchase.taxUnitPrice': '单价(含税)',
'detail.purchase.taxPrice': '金额(含税)',
'detail.purchase.needCount': '需求数量',
'detail.purchase.purchaseCount1': '采购数量/单位',
'detail.purchase.costPrice': '成本价',
'detail.purchase.needPrice': '需求金额',
'detail.purchase.arriveTime': '到货日期',
'detail.purchase.search': '查询',
'detail.purchase.contacts': '联系人姓名',
'detail.purchase.contactsMessage': '请输入联系人姓名',
'detail.purchase.placeholder3': '最长12个字符,6个汉字',
'detail.purchase.telPhone': '联系人手机',
'detail.purchase.telPrefix': '请选择区号',
'detail.purchase.tel': '请输入你的手机号码',
// '计划采购数量',
// '计划采购金额',
'detail.purchase.quotedDetails1': '报价摘要',
'detail.purchase.quotedPriceNo': '报价单号',
'detail.purchase.purchaseMaterial': '对应采购物料',
'detail.purchase.file': '附件',
'detail.purchase.option': '操作',
'detail.purchase.demandCycle': '需求计划周期',
// '添加方式',
// '招标物料',
// '招标要求',
// '报名要求',
// '报名信息',
// '资格预审要求',
// '资格预审信息',
// '评标要求',
// '评标报告',
// '其他要求',
// '招标方式',
'detail.purchase.correspondence': '对应',
'detail.purchase.tenderProduct': '招标商品',
'detail.purchase.productId': '商品ID',
'detail.purchase.size': '规格',
'detail.purchase.purchaseInquiryNo': '对应需求单号',
'detail.purchase.quotedDetails': '报价单摘要',
'detail.purchase.uploadFile': '上传文件',
......@@ -172,12 +176,30 @@ const PurchaseLocales = {
'detail.purchase.back': '返回',
'detail.purchase.okText': '是',
'detail.purchase.cancelText': '否',
'detail.purchase.demendDetail': '需求摘要',
'detail.purchase.deliveryDetails': '交付说明',
'detail.purchase.payDetails': '付款说明',
'detail.purchase.taxes': '税费说明',
'detail.purchase.logistics': '物流说明',
'detail.purchase.packRequire': '包装说明',
'detail.purchase.otherRequire': '其他说明',
'detail.purchase.areas': '适用地市',
'detail.purchase.address': '交付地址',
'detail.purchase.offerEndTime': '截止日期',
'detail.purchase.offerAsk': '报价要求',
'detail.purchase.paymentType': '付款方式',
'detail.purchase.taxesAsk': '税费要求',
'detail.purchase.logisticsAsk': '物流要求',
'detail.purchase.packRequireAsk': '包装要求',
'detail.purchase.otherRequireAsk': '其他要求',
'detail.purchase.modalTitle': '公开招标',
'detail.purchase.modalTitle1': '选择货品',
'detail.purchase.modalTitle2': '选择货品生成',
'detail.purchase.modalTitle3': '添加方式',
'detail.purchase.modalTitle4': '选择货品生成',
'detail.purchase.modalTitle5': '关联报价商品',
'detail.purchase.message1': '投标开始时间必须大于报名截止时间',
'detail.purchase.message2': '投标开始时间必须大于资质预审截止时间',
'detail.purchase.message3': '开标时间大于等于投标截止时间,小于评标开始时间',
......@@ -195,11 +217,28 @@ const PurchaseLocales = {
'detail.purchase.message15': '请选择到货日期',
'detail.purchase.message16': '删除成功',
'detail.purchase.message17': '请选择货品',
'detail.purchase.message18': '上传文件大小不超过 20M!',
'detail.purchase.message18': '请输入您的手机号',
'detail.purchase.message19': '手机号码格式不正确',
'detail.purchase.message20': '请输入需求单摘要',
'detail.purchase.message21': '上传文件大小不超过 20M!',
'detail.purchase.message22': '请输入',
'detail.purchase.message23': '请选择',
'detail.purchase.placeholder': '选择开始日期',
'detail.purchase.placeholder1': '确定要执行这个操作?',
'detail.purchase.demendDetail': '需求摘要',
'detail.purchase.placeholder2': '一次上传一个文件,每个附件大小不能超过 20M'
'detail.purchase.placeholder2': '一次上传一个文件,每个附件大小不能超过 20M',
'detail.purchase.placeholder3': '最长12个字符,6个汉字',
'detail.purchase.placeholder4': '最长60个字符,30个汉字',
'detail.purchase.placeholder5': '最长100字符,50个汉字',
'detail.purchase.priceMethod': '比价方式',
'detail.purchase.purchaseType1': '有固定采购金额',
'detail.purchase.purchaseType2': '无固定采购金额',
'detail.purchase.priceContrast1': '密封比价',
'detail.purchase.priceContrast2': '非密封比价',
'detail.purchase.tips': '有固定采购金额:采购金额固定,合同期内不可超过采购金额,无固定采购金额:采购金额不固定,可在合同期内按需采购',
'detail.purchase.tips1': '密封比价:只能看到供应商是否有报价,不能看到供应商的报价明细,只能解封后才能看到报价明细,非密封比价:可以在供应商报完价后立即看到报价明细,无须解封',
}
export default PurchaseLocales
......@@ -92,10 +92,10 @@ const BasicInfo: React.FC<IProps> = (props: any) => {
const userPhoneRule = (rule, value) => {
const RegExp = /^1[345678]\d{9}$/gi;
if (!value) {
return Promise.reject(new Error('请输入您的手机号'))
return Promise.reject(new Error(intl.formatMessage({ id: 'detail.purchase.message18' })))
}
if (!RegExp.test(value)) {
return Promise.reject(new Error('手机号码格式不正确'))
return Promise.reject(new Error(intl.formatMessage({ id: 'detail.purchase.message19' })))
}
return Promise.resolve();
}
......@@ -109,9 +109,9 @@ const BasicInfo: React.FC<IProps> = (props: any) => {
<Form.Item
label={intl.formatMessage({ id: 'detail.purchase.quotedDetails' })}
name='quotedDetails'
rules={[{ required: true, message: '请输入需求单摘要' }]}
rules={[{ required: true, message: intl.formatMessage({ id: 'detail.purchase.message20' }) }]}
>
<Input maxLength={30} placeholder='最长60个字符,30个汉字' />
<Input maxLength={30} placeholder={intl.formatMessage({ id: 'detail.purchase.placeholder4' })} />
</Form.Item>
<Form.Item
label={intl.formatMessage({ id: 'detail.purchase.purchaseInquiryNo' })}
......@@ -154,31 +154,31 @@ const BasicInfo: React.FC<IProps> = (props: any) => {
</Row>
</Form.Item>
<Form.Item
label='报价单号'
label={intl.formatMessage({ id: 'detail.purchase.quotedPriceNo' })}
name='quotedPriceNo'
>
<Text strong>{fetchdata && fetchdata.quotedPriceNo}</Text>
</Form.Item>
<Form.Item
label='报价截止时间'
label={intl.formatMessage({ id: 'table.purchase.quotedPriceTime' })}
name='offerEndTime'
>
<Text strong>{fetchdata && format(fetchdata.offerEndTime)}</Text>
</Form.Item>
<Form.Item
label='单据时间'
label={intl.formatMessage({ id: 'table.purchase.dementCreateTime' })}
name='createTime'
>
<Text strong>{fetchdata && format(fetchdata.createTime)}</Text>
</Form.Item>
<Form.Item
label='外部状态'
label={intl.formatMessage({ id: 'table.purchase.externalStatus' })}
name='externalState'
>
{fetchdata && <Tag color={OFFTER_EXTERNALSTATE_COLOR[fetchdata.externalState]}>{fetchdata.externalStateName}</Tag>}
</Form.Item>
<Form.Item
label='内部状态'
label={intl.formatMessage({ id: 'detail.purchase.innerStatus' })}
name='interiorState'
/>
</Form>
......
......@@ -66,81 +66,81 @@ const OfferExplain: React.FC<IProps> = (props: any) => {
>
<Form.Item
hidden={handleHidden()}
label='交付说明'
label={intl.formatMessage({ id: 'detail.purchase.deliveryDetails' })}
name='deliveryDetails'
>
<TextArea maxLength={50} rows={3} placeholder='最长100字符,50个汉字' />
<TextArea maxLength={50} rows={3} placeholder={intl.formatMessage({ id: 'detail.purchase.placeholder5' })} />
</Form.Item>
<Form.Item
hidden={handleHidden()}
label='付款说明'
label={intl.formatMessage({ id: 'detail.purchase.payDetails' })}
name='payDetails'
>
<TextArea maxLength={50} rows={3} placeholder='最长100字符,50个汉字' />
<TextArea maxLength={50} rows={3} placeholder={intl.formatMessage({ id: 'detail.purchase.placeholder5' })} />
</Form.Item>
<Form.Item
hidden={handleHidden()}
label='税费说明'
label={intl.formatMessage({ id: 'detail.purchase.taxes' })}
name='taxes'
>
<TextArea maxLength={50} rows={3} placeholder='最长100字符,50个汉字' />
<TextArea maxLength={50} rows={3} placeholder={intl.formatMessage({ id: 'detail.purchase.placeholder5' })} />
</Form.Item>
<Form.Item
hidden={handleHidden()}
label='物流说明'
label={intl.formatMessage({ id: 'detail.purchase.logistics' })}
name='logistics'
>
<TextArea maxLength={50} rows={3} placeholder='最长100字符,50个汉字' />
<TextArea maxLength={50} rows={3} placeholder={intl.formatMessage({ id: 'detail.purchase.placeholder5' })} />
</Form.Item>
<Form.Item
hidden={handleHidden()}
label='包装说明'
label={intl.formatMessage({ id: 'detail.purchase.packRequire' })}
name='packRequire'
>
<TextArea maxLength={50} rows={3} placeholder='最长100字符,50个汉字' />
<TextArea maxLength={50} rows={3} placeholder={intl.formatMessage({ id: 'detail.purchase.placeholder5' })} />
</Form.Item>
<Form.Item
hidden={handleHidden()}
label='其他说明'
label={intl.formatMessage({ id: 'detail.purchase.otherRequire' })}
name='otherRequire'
>
<TextArea maxLength={50} rows={3} placeholder='最长100字符,50个汉字' />
<TextArea maxLength={50} rows={3} placeholder={intl.formatMessage({ id: 'detail.purchase.placeholder5' })} />
</Form.Item>
<Form.Item
hidden={!handleHidden()}
label='交付说明'
label={intl.formatMessage({ id: 'detail.purchase.deliveryDetails' })}
>
<Typography.Text>{fetchdata.deliveryDetails && fetchdata.deliveryDetails} </Typography.Text>
</Form.Item>
<Form.Item
hidden={!handleHidden()}
label='付款说明'
label={intl.formatMessage({ id: 'detail.purchase.payDetails' })}
>
<Typography.Text>{fetchdata.payDetails && fetchdata.payDetails} </Typography.Text>
</Form.Item>
<Form.Item
hidden={!handleHidden()}
label='税费说明'
label={intl.formatMessage({ id: 'detail.purchase.taxes' })}
>
<Typography.Text>{fetchdata.taxes && fetchdata.taxes} </Typography.Text>
</Form.Item>
<Form.Item
hidden={!handleHidden()}
label='物流说明'
label={intl.formatMessage({ id: 'detail.purchase.logistics' })}
>
<Typography.Text>{fetchdata.logistics && fetchdata.logistics} </Typography.Text>
</Form.Item>
<Form.Item
hidden={!handleHidden()}
label='包装说明'
label={intl.formatMessage({ id: 'detail.purchase.packRequire' })}
>
<Typography.Text>{fetchdata.packRequire && fetchdata.packRequire} </Typography.Text>
</Form.Item>
<Form.Item
hidden={!handleHidden()}
label='其他说明'
label={intl.formatMessage({ id: 'detail.purchase.otherRequire' })}
>
<Typography.Text>{fetchdata.otherRequire && fetchdata.otherRequire} </Typography.Text>
</Form.Item>
......
......@@ -36,7 +36,7 @@ const File: React.FC<IProps> = (props) => {
const beforeDocUpload = (file: any) => {
const isLt20M = file.size / 1024 / 1024 < 20;
if (!isLt20M) {
message.error('上传文件大小不超过 20M!');
message.error(intl.formatMessage({ id: 'detail.purchase.message21' }));
}
return isLt20M;
}
......@@ -103,7 +103,7 @@ const File: React.FC<IProps> = (props) => {
{...layout}
className={styles.revise_style}
>
<Form.Item label='附件' name='upload'>
<Form.Item label={intl.formatMessage({ id: 'detail.purchase.file' })} name='upload'>
<div className={styles.upload_data}>
{fileForEach().length > 0 && fileForEach().map((v, index) => (
<div key={index} className={styles.upload_item}>
......@@ -134,8 +134,8 @@ const File: React.FC<IProps> = (props) => {
beforeUpload={beforeDocUpload}
onChange={handleChange}
>
<Button loading={loading} icon={<UploadOutlined />}>上传文件</Button>
<div style={{ marginTop: '8px' }}>一次上传一个文件,每个附件大小不能超过 20M</div>
<Button loading={loading} icon={<UploadOutlined />}>{intl.formatMessage({ id: 'detail.purchase.uploadFile' })}</Button>
<div style={{ marginTop: '8px' }}>{intl.formatMessage({ id: 'detail.purchase.placeholder2' })}</div>
</Upload>
)}
</Form.Item>
......
......@@ -94,27 +94,27 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
const columns = [
{
title: '物料编号/名称',
title: intl.formatMessage({ id: 'detail.purchase.type' }),
key: 'number',
dataIndex: 'number',
},
{
title: '规格型号',
title: intl.formatMessage({ id: 'detail.purchase.nameCode' }),
key: 'model',
dataIndex: 'model',
},
{
title: '品类',
title: intl.formatMessage({ id: 'detail.purchase.customerCategory' }),
key: 'category',
dataIndex: 'category',
},
{
title: '品牌',
title: intl.formatMessage({ id: 'detail.purchase.brand' }),
key: 'brand',
dataIndex: 'brand',
},
{
title: '采购数量/单位',
title: intl.formatMessage({ id: 'detail.purchase.purchaseCount1' }),
key: 'purchaseCount',
dataIndex: 'purchaseCount',
render: (text: any, record: any) => (
......@@ -126,14 +126,14 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
)
},
{
title: '含税',
title: intl.formatMessage({ id: 'detail.purchase.isTax' }),
key: 'isTax',
dataIndex: 'isTax',
render: (text: any, record: any, index: number) => (
<Form.Item
name={`isTax${index}`}
style={{ margin: 0 }}
rules={[{ required: true, message: '请选择' }]}
rules={[{ required: true, message: intl.formatMessage({ id: 'detail.purchase.message23' }) }]}
initialValue={text}
>
<Select
......@@ -141,21 +141,21 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
onChange={(e) => handleEdit(e, 'isTax', index)}
disabled={fetchdata && (count !== tabs[0])}
>
<Option value={1}></Option>
<Option value={0}></Option>
<Option value={1}>{intl.formatMessage({ id: 'detail.purchase.okText' })}</Option>
<Option value={0}>{intl.formatMessage({ id: 'detail.purchase.cancelText' })}</Option>
</Select>
</Form.Item>
)
},
{
title: '税率',
title: intl.formatMessage({ id: 'detail.purchase.taxProbability' }),
key: 'taxProbability',
dataIndex: 'taxProbability',
render: (text: any, record: any, index: number) => (
<Form.Item
style={{ margin: 0 }}
name={`taxProbability${index}`}
rules={[{ required: true, message: '请输入' }]}
rules={[{ required: true, message: intl.formatMessage({ id: 'detail.purchase.message22' }) }]}
>
<Input
onChange={(e) => handleEdit(e, 'taxProbability', index)}
......@@ -167,14 +167,14 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
)
},
{
title: '单价(含税)',
title: intl.formatMessage({ id: 'detail.purchase.taxUnitPrice' }),
key: 'taxUnitPrice',
dataIndex: 'taxUnitPrice',
render: (text: any, record: any, index: number) =>
<Form.Item
style={{ margin: 0 }}
name={`taxUnitPrice${index}`}
rules={[{ required: true, message: '请输入' }]}
rules={[{ required: true, message: intl.formatMessage({ id: 'detail.purchase.message22' }) }]}
>
<Input
onChange={(e) => handleEdit(e, 'taxUnitPrice', index)}
......@@ -185,13 +185,13 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
},
{
title: '金额(含税)',
title: intl.formatMessage({ id: 'detail.purchase.taxPrice' }),
key: 'taxPrice',
dataIndex: 'taxPrice',
render: (text: any, record: any) => <Text>{isNaN(Number(record.purchaseCount) * Number(record.taxUnitPrice)) ? 0 : Number(record.purchaseCount) * Number(record.taxUnitPrice)}</Text>
},
{
title: '操作',
title: intl.formatMessage({ id: 'detail.purchase.option' }),
key: 'operate',
dataIndex: 'operate',
render: (text: any, record: any, index: number) => (
......@@ -203,7 +203,7 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
setVisible(true);
}}
>
关联报价商品
{intl.formatMessage({ id: 'detail.purchase.modalTitle5' })}
</Button>
)
},
......@@ -380,25 +380,25 @@ const OfferInfo: React.FC<IProps> = (props: any) => {
<Row>
<Col span={3}>
<div className={style.childrenTitle}>
<p>对应</p>
<p>招标商品</p>
<p>{intl.formatMessage({ id: 'detail.purchase.correspondence' })}</p>
<p>{intl.formatMessage({ id: 'detail.purchase.tenderProduct' })}</p>
</div>
</Col>
<Col span={6}>
<div className={style.childrenContent}>
<p><span>商品ID:</span>{record.productId}</p>
<p><span>商品名称:</span>{record.productName}</p>
<p><span>{intl.formatMessage({ id: 'detail.purchase.productId' })}:</span>{record.productId}</p>
<p><span>{intl.formatMessage({ id: 'detail.purchase.goodstName' })}:</span>{record.productName}</p>
</div>
</Col>
<Col span={6}>
<div className={style.childrenContent}>
<p><span>规格:</span>{splitProductAttributeJson(record.productAttributeJson, 0)}</p>
<p><span>品类:</span>{splitProductAttributeJson(record.productAttributeJson, 1)}</p>
<p><span>{intl.formatMessage({ id: 'detail.purchase.size' })}:</span>{splitProductAttributeJson(record.productAttributeJson, 0)}</p>
<p><span>{intl.formatMessage({ id: 'detail.purchase.customerCategory' })}:</span>{splitProductAttributeJson(record.productAttributeJson, 1)}</p>
</div>
</Col>
<Col span={6}>
<div className={style.childrenContent}>
<p><span>品牌:</span>{record.productBrand}</p>
<p><span>{intl.formatMessage({ id: 'detail.purchase.brand' })}:</span>{record.productBrand}</p>
</div>
</Col>
</Row>
......
import React, { useRef, useState } from 'react';
import { history } from 'umi';
import { getIntl, history } from 'umi';
import Table from '../../components/table'
import { ColumnType } from 'antd/lib/table/interface';
import EyePreview from '@/components/EyePreview';
......@@ -14,14 +14,14 @@ import {
} from '../../constants';
import { getPurchaseQuotedPriceStayExamineList1, postPurchaseQuotedPriceExamine1Batch } from '@/services/PurchaseV2Api';
const { Text } = Typography;
const intl = getIntl();
const AuditOffterOne = () => {
console.log('待新增采购需求单');
const format = (text, fmt?: string) => {
return <>{moment(text).format(fmt || "YYYY-MM-DD HH:mm:ss")}</>
}
const columns: ColumnType<any>[] = [{
title: '报价单号/摘要',
title: intl.formatMessage({ id: 'table.purchase.purchaseInquiryNoDtails' }),
key: 'quotedPriceNo',
dataIndex: 'quotedPriceNo',
render: (text: any, record: any) => (
......@@ -31,7 +31,7 @@ const AuditOffterOne = () => {
</Space>
)
}, {
title: '需求单号/会员',
title: intl.formatMessage({ id: 'table.purchase.purchaseInquiryNoMember' }),
key: 'purchaseInquiryNo',
dataIndex: 'purchaseInquiryNo',
render: (text: any, record: any) => (
......@@ -43,17 +43,17 @@ const AuditOffterOne = () => {
</Space>
)
}, {
title: '报价截止时间',
title: intl.formatMessage({ id: 'table.purchase.quotedPriceTime' }),
key: 'offerEndTime',
dataIndex: 'offerEndTime',
render: (text: any, record: any) => format(text)
}, {
title: '单据时间',
title: intl.formatMessage({ id: 'table.purchase.dementCreateTime' }),
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => format(text)
}, {
title: '报价轮次',
title: intl.formatMessage({ id: 'table.purchase.turn' }),
key: 'turn',
dataIndex: 'turn',
render: (text: any, record: any) => (
......@@ -74,17 +74,17 @@ const AuditOffterOne = () => {
</>
)
}, {
title: '外部状态',
title: intl.formatMessage({ id: 'table.purchase.externalStatus' }),
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <Tag color={OFFTER_EXTERNALSTATE_COLOR[text]}>{record.externalStateName}</Tag>
}, {
title: '内部状态',
title: intl.formatMessage({ id: 'detail.purchase.innerStatus' }),
key: 'interiorState',
dataIndex: 'interiorState',
render: (text: any, record: any) => <Badge status={OFFTER_INTERNALSTATE_COLOR[text]} text={record.interiorStateName} />
}, {
title: '操作',
title: intl.formatMessage({ id: 'detail.purchase.option' }),
key: 'operate',
dataIndex: 'operate',
render: (text: any, record: any) => (
......@@ -93,7 +93,7 @@ const AuditOffterOne = () => {
type='link'
onClick={() => history.push(`/memberCenter/procurementAbility/offter/auditOffterOne/detail?id=${record.id}&number=${record.quotedPriceNo}&turn=${record.turn}`)}
>
审核
{intl.formatMessage({ id: 'table.purchase.audit' })}
</Button>
</>
)
......@@ -134,7 +134,7 @@ const AuditOffterOne = () => {
onClick={fetchSubmitBatch}
disabled={rowkeys.length === 0}
>
批量提交审核
{intl.formatMessage({ id: 'table.purchase.submitBatch' })}
</Button>
</Col>
</Row>
......
import React, { useRef, useState } from 'react';
import { history } from 'umi';
import { getIntl, history } from 'umi';
import Table from '../../components/table'
import { ColumnType } from 'antd/lib/table/interface';
import EyePreview from '@/components/EyePreview';
......@@ -15,14 +15,14 @@ import {
import { getPurchaseQuotedPriceStayExamineList2, postPurchaseQuotedPriceExamine2Batch } from '@/services/PurchaseV2Api';
const { Text } = Typography
const intl = getIntl();
const AuditOffterTwo = () => {
console.log('待新增采购需求单');
const format = (text, fmt?: string) => {
return <>{moment(text).format(fmt || "YYYY-MM-DD HH:mm:ss")}</>
}
const columns: ColumnType<any>[] = [{
title: '报价单号/摘要',
title: intl.formatMessage({ id: 'table.purchase.purchaseInquiryNoDtails' }),
key: 'quotedPriceNo',
dataIndex: 'quotedPriceNo',
render: (text: any, record: any) => (
......@@ -32,7 +32,7 @@ const AuditOffterTwo = () => {
</Space>
)
}, {
title: '需求单号/会员',
title: intl.formatMessage({ id: 'table.purchase.purchaseInquiryNoMember' }),
key: 'purchaseInquiryNo',
dataIndex: 'purchaseInquiryNo',
render: (text: any, record: any) => (
......@@ -44,17 +44,17 @@ const AuditOffterTwo = () => {
</Space>
)
}, {
title: '报价截止时间',
title: intl.formatMessage({ id: 'table.purchase.quotedPriceTime' }),
key: 'offerEndTime',
dataIndex: 'offerEndTime',
render: (text: any, record: any) => format(text)
}, {
title: '单据时间',
title: intl.formatMessage({ id: 'table.purchase.dementCreateTime' }),
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => format(text)
}, {
title: '报价轮次',
title: intl.formatMessage({ id: 'table.purchase.turn' }),
key: 'turn',
dataIndex: 'turn',
render: (text: any, record: any) => (
......@@ -75,17 +75,17 @@ const AuditOffterTwo = () => {
</>
)
}, {
title: '外部状态',
title: intl.formatMessage({ id: 'table.purchase.externalStatus' }),
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <Tag color={OFFTER_EXTERNALSTATE_COLOR[text]}>{record.externalStateName}</Tag>
}, {
title: '内部状态',
title: intl.formatMessage({ id: 'detail.purchase.innerStatus' }),
key: 'interiorState',
dataIndex: 'interiorState',
render: (text: any, record: any) => <Badge status={OFFTER_INTERNALSTATE_COLOR[text]} text={record.interiorStateName} />
}, {
title: '操作',
title: intl.formatMessage({ id: 'detail.purchase.option' }),
key: 'operate',
dataIndex: 'operate',
render: (text: any, record: any) => (
......@@ -94,7 +94,7 @@ const AuditOffterTwo = () => {
type='link'
onClick={() => history.push(`/memberCenter/procurementAbility/offter/auditOffterTwo/detail?id=${record.id}&number=${record.quotedPriceNo}&turn=${record.turn}`)}
>
审核
{intl.formatMessage({ id: 'table.purchase.audit' })}
</Button>
</>
)
......@@ -135,7 +135,7 @@ const AuditOffterTwo = () => {
onClick={fetchSubmitBatch}
disabled={rowkeys.length === 0}
>
批量提交审核
{intl.formatMessage({ id: 'table.purchase.submitBatch' })}
</Button>
</Col>
</Row>
......
import React, { Fragment, useEffect, useState } from 'react';
import { Tag, Badge, Tooltip, Typography } from 'antd';
import { history } from 'umi';
import { getIntl, history } from 'umi';
import { Context } from '../../components/detail/components/context';
import PeripheralLayout from '../../components/detail';
import ProgressLayout from '../../components/detail/components/progressLayout';
......@@ -22,13 +22,13 @@ const ICON_STYLE: any = {
fontSize: '14px',
marginLeft: '5px'
}
const intl = getIntl();
const TABLINK = [
{ id: 'progressLayout', title: '流转进度' },
{ id: 'basicLayout', title: '基本流程' },
{ id: 'materialLayout', title: '采购物料' },
{ id: 'conditionLayout', title: '交易条件' },
{ id: 'recordLyout', title: '流转记录' },
{ id: 'progressLayout', title: intl.formatMessage({ id: 'detail.purchase.progressLayout' }) },
{ id: 'basicLayout', title: intl.formatMessage({ id: 'detail.purchase.basicLayout1' }) },
{ id: 'materialLayout', title: intl.formatMessage({ id: 'detail.purchase.materialLayout' }) },
{ id: 'conditionLayout', title: intl.formatMessage({ id: 'detail.purchase.conditionLayout' }) },
{ id: 'recordLyout', title: intl.formatMessage({ id: 'detail.purchase.recordLyout' }) },
]
const DemandDetailed = () => {
......@@ -49,38 +49,38 @@ const DemandDetailed = () => {
setBasicEffect([
{
col: [
{ label: '需求单号', extra: data.purchaseInquiryNo },
{ label: '外部状态', extra: <Tag color={OFFTER_EXTERNALSTATE_COLOR[data.externalState] || 'default'}>{data.externalStateName}</Tag> },
{ label: '内部状态', extra: <Badge status={OFFTER_INTERNALSTATE_COLOR[data.interiorState] || 'default'} text={data.interiorStateName} /> },
{ label: '单据时间', extra: format(data.createTime) },
{ label: intl.formatMessage({ id: 'table.purchase.dementNo' }), extra: data.purchaseInquiryNo },
{ label: intl.formatMessage({ id: 'table.purchase.externalStatus' }), extra: <Tag color={OFFTER_EXTERNALSTATE_COLOR[data.externalState] || 'default'}>{data.externalStateName}</Tag> },
{ label: intl.formatMessage({ id: 'detail.purchase.innerStatus' }), extra: <Badge status={OFFTER_INTERNALSTATE_COLOR[data.interiorState] || 'default'} text={data.interiorStateName} /> },
{ label: intl.formatMessage({ id: 'table.purchase.dementCreateTime' }), extra: format(data.createTime) },
]
},
{
col: [
{ label: '需求摘要', extra: data.details },
{ label: intl.formatMessage({ id: 'table.purchase.details' }), extra: data.details },
{
label: (
<Tooltip placement="top" title='有固定采购金额:采购金额固定,合同期内不可超过采购金额,无固定采购金额:采购金额不固定,可在合同期内按需采购'>
采购类型:<QuestionCircleOutlined style={ICON_STYLE} />
<Tooltip placement="top" title={intl.formatMessage({ id: 'detail.purchase.tips' })}>
{intl.formatMessage({ id: 'table.purchase.purchaseType' })}:<QuestionCircleOutlined style={ICON_STYLE} />
</Tooltip>
), extra: data.purchaseType === 1 ? '有固定采购金额' : '无固定采购金额',
), extra: data.purchaseType === 1 ? intl.formatMessage({ id: 'detail.purchase.purchaseType1' }) : intl.formatMessage({ id: 'detail.purchase.purchaseType2' }),
colon: true
},
{
label: (
<Tooltip placement="top" title='密封比价:只能看到供应商是否有报价,不能看到供应商的报价明细,只能解封后才能看到报价明细,非密封比价:可以在供应商报完价后立即看到报价明细,无须解封'>
比价方式:<QuestionCircleOutlined style={ICON_STYLE} />
<Tooltip placement="top" title={intl.formatMessage({ id: 'detail.purchase.tips1' })}>
{intl.formatMessage({ id: 'detail.purchase.priceMethod' })}:<QuestionCircleOutlined style={ICON_STYLE} />
</Tooltip>
), extra: data.priceContrast === 1 ? '密封比价' : '非密封比价',
), extra: data.priceContrast === 1 ? intl.formatMessage({ id: 'detail.purchase.priceContrast1' }) : intl.formatMessage({ id: 'detail.purchase.priceContrast2' }),
colon: true
},
{ label: '会员名称', extra: data.createMemberName },
{ label: intl.formatMessage({ id: 'detail.purchase.memberName' }), extra: data.createMemberName },
]
},
{
col: [
{
label: '适用地市', extra: (
label: intl.formatMessage({ id: 'detail.purchase.areas' }), extra: (
<div>
{data.areas && data.areas.map((it: any, idx: number) => (
<p key={`areas${idx + 1}`}>{`${it.province}/${it.city}`}</p>
......@@ -97,11 +97,11 @@ const DemandDetailed = () => {
setConditionEffect([
{
col: [
{ label: '交付日期', extra: format(data.deliveryTime) },
{ label: '交付地址', extra: data.address },
{ label: '截止日期', extra: format(data.offerEndTime) },
{ label: intl.formatMessage({ id: 'table.purchase.deliveryTime' }), extra: format(data.deliveryTime) },
{ label: intl.formatMessage({ id: 'detail.purchase.address' }), extra: data.address },
{ label: intl.formatMessage({ id: 'detail.purchase.offerEndTime' }), extra: format(data.offerEndTime) },
{
label: '附件',
label: intl.formatMessage({ id: 'detail.purchase.file' }),
extra: <>
{data.transactionUurls.map((item: any, index: number) => (
<Typography.Link
......@@ -120,16 +120,16 @@ const DemandDetailed = () => {
},
{
col: [
{ label: '报价要求', extra: data.offer },
{ label: '付款方式', extra: data.paymentType },
{ label: '税费要求', extra: data.taxes },
{ label: intl.formatMessage({ id: 'detail.purchase.offerAsk' }), extra: data.offer },
{ label: intl.formatMessage({ id: 'detail.purchase.paymentType' }), extra: data.paymentType },
{ label: intl.formatMessage({ id: 'detail.purchase.taxesAsk' }), extra: data.taxes },
]
},
{
col: [
{ label: '物流要求', extra: data.logistics },
{ label: '包装要求', extra: data.packRequire },
{ label: '其他要求', extra: data.otherRequire },
{ label: intl.formatMessage({ id: 'detail.purchase.logisticsAsk' }), extra: data.logistics },
{ label: intl.formatMessage({ id: 'detail.purchase.packRequireAsk' }), extra: data.packRequire },
{ label: intl.formatMessage({ id: 'detail.purchase.otherRequireAsk' }), extra: data.otherRequire },
]
},
])
......
import React, { useState, useEffect, Fragment, useCallback } from 'react';
import { history } from 'umi';
import { getIntl, history } from 'umi';
import moment from 'moment';
import { Tag, Badge, Button, Typography } from 'antd';
import { Context } from '../../components/detail/components/context';
......@@ -22,32 +22,32 @@ import BidLayout from '../../components/detail/components/bidLayout';
import BidResultLayout from '../../components/detail/components/bidResultLayout';
import { isEmpty } from 'lodash';
import { getPurchaseQuotedPriceDetails, getPurchaseQuotedPriceMaterielDetailed, getPurchaseQuotedPriceProductlistListContract, postPurchaseQuotedPriceExamine1, postPurchaseQuotedPriceExamine2 } from '@/services/PurchaseV2Api';
const intl = getIntl();
const TABLINK1 = [
{ id: 'progressLayout', title: '流转进度' },
{ id: 'basicLayout', title: '基本信息' },
{ id: 'contrastLyout', title: '报价信息' },
{ id: 'otherLyout', title: '其他说明' },
{ id: 'recordLyout', title: '流转记录' },
{ id: 'progressLayout', title: intl.formatMessage({ id: 'detail.purchase.progressLayout' }) },
{ id: 'basicLayout', title: intl.formatMessage({ id: 'detail.purchase.basicLayout' }) },
{ id: 'contrastLyout', title: intl.formatMessage({ id: 'detail.purchase.offerLayout' }) },
{ id: 'otherLyout', title: intl.formatMessage({ id: 'detail.purchase.otherRequire' }) },
{ id: 'recordLyout', title: intl.formatMessage({ id: 'detail.purchase.recordLyout' }) },
]
const TABLINK2 = {
0: [
{ id: 'progressLayout', title: '流转进度' },
{ id: 'basicLayout', title: '基本信息' },
{ id: 'bidLayout', title: '授标结果' },
{ id: 'bidInfoLayout', title: '报价信息' },
{ id: 'otherLyout', title: '其他说明' },
{ id: 'recordLyout', title: '流转记录' },
{ id: 'progressLayout', title: intl.formatMessage({ id: 'detail.purchase.progressLayout' }) },
{ id: 'basicLayout', title: intl.formatMessage({ id: 'detail.purchase.basicLayout' }) },
{ id: 'bidLayout', title: intl.formatMessage({ id: 'detail.purchase.bidLayout' }) },
{ id: 'bidInfoLayout', title: intl.formatMessage({ id: 'detail.purchase.offerLayout' }) },
{ id: 'otherLyout', title: intl.formatMessage({ id: 'detail.purchase.otherRequire' }) },
{ id: 'recordLyout', title: intl.formatMessage({ id: 'detail.purchase.recordLyout' }) },
],
1: [
{ id: 'progressLayout', title: '流转进度' },
{ id: 'basicLayout', title: '基本信息' },
{ id: 'bidLayout', title: '中标通知' },
{ id: 'bidResultLayout', title: '授标结果' },
{ id: 'bidInfoLayout', title: '报价信息' },
{ id: 'otherLyout', title: '其他说明' },
{ id: 'recordLyout', title: '流转记录' },
{ id: 'progressLayout', title: intl.formatMessage({ id: 'detail.purchase.progressLayout' }) },
{ id: 'basicLayout', title: intl.formatMessage({ id: 'detail.purchase.basicLayout' }) },
{ id: 'bidLayout', title: intl.formatMessage({ id: 'detail.purchase.bidLayout1' }) },
{ id: 'bidResultLayout', title: intl.formatMessage({ id: 'detail.purchase.bidLayout' }) },
{ id: 'bidInfoLayout', title: intl.formatMessage({ id: 'detail.purchase.offerLayout' }) },
{ id: 'otherLyout', title: intl.formatMessage({ id: 'detail.purchase.otherRequire' }) },
{ id: 'recordLyout', title: intl.formatMessage({ id: 'detail.purchase.recordLyout' }) },
]
}
......@@ -67,7 +67,7 @@ const QuoteDetails = () => {
let params: any = {}
data.forEach(item => {
if (Number(item.turn) === Number(key)) {
params = {...item}
params = { ...item }
}
})
return params
......@@ -77,24 +77,24 @@ const QuoteDetails = () => {
setBasicEffect([
{
col: [
{ label: '报价单号', extra: data.quotedPriceNo },
{ label: '报价摘要', extra: data.quotedDetails },
{ label: '外部状态', extra: <Tag color={OFFTER_EXTERNALSTATE_COLOR[data.externalState] || 'default'}>{data.externalStateName}</Tag> },
{ label: '内部状态', extra: <Badge status={OFFTER_INTERNALSTATE_COLOR[data.interiorState] || 'default'} text={data.interiorStateName} /> },
{ label: intl.formatMessage({ id: 'detail.purchase.quotedPriceNo' }), extra: data.quotedPriceNo },
{ label: intl.formatMessage({ id: 'detail.purchase.quotedDetails1' }), extra: data.quotedDetails },
{ label: intl.formatMessage({ id: 'table.purchase.externalStatus' }), extra: <Tag color={OFFTER_EXTERNALSTATE_COLOR[data.externalState] || 'default'}>{data.externalStateName}</Tag> },
{ label: intl.formatMessage({ id: 'detail.purchase.innerStatus' }), extra: <Badge status={OFFTER_INTERNALSTATE_COLOR[data.interiorState] || 'default'} text={data.interiorStateName} /> },
]
},
{
col: [
{ label: '对应需求单号', extra: data.purchaseInquiryNo },
{ label: '需求会员', extra: data.memberName },
{ label: '联系人姓名', extra: data.contacts },
{ label: '联系人手机', extra: data.tel },
{ label: intl.formatMessage({ id: 'detail.purchase.purchaseInquiryNo' }), extra: data.purchaseInquiryNo },
{ label: intl.formatMessage({ id: 'table.purchase.member' }), extra: data.memberName },
{ label: intl.formatMessage({ id: 'detail.purchase.contacts' }), extra: data.contacts },
{ label: intl.formatMessage({ id: 'detail.purchase.telPhone' }), extra: data.tel },
]
},
{
col: [
{ label: '报价截止时间', extra: format(data.offerEndTime) },
{ label: '单据时间', extra: format(data.createTime) },
{ label: intl.formatMessage({ id: 'table.purchase.quotedPriceTime' }), extra: format(data.offerEndTime) },
{ label: intl.formatMessage({ id: 'table.purchase.dementCreateTime' }), extra: format(data.createTime) },
]
},
])
......@@ -105,22 +105,22 @@ const QuoteDetails = () => {
setOtherEffect([
{
col: [
{ label: '交付说明', extra: data.deliveryDetails },
{ label: '付款说明', extra: data.payDetails },
{ label: '税费说明', extra: data.taxes },
{ label: intl.formatMessage({ id: 'detail.purchase.deliveryDetails' }), extra: data.deliveryDetails },
{ label: intl.formatMessage({ id: 'detail.purchase.payDetails' }), extra: data.payDetails },
{ label: intl.formatMessage({ id: 'detail.purchase.taxes' }), extra: data.taxes },
]
},
{
col: [
{ label: '物流说明', extra: data.logistics },
{ label: '包装说明', extra: data.packRequire },
{ label: '其他说明', extra: data.otherRequire },
{ label: intl.formatMessage({ id: 'detail.purchase.logistics' }), extra: data.logistics },
{ label: intl.formatMessage({ id: 'detail.purchase.packRequire' }), extra: data.packRequire },
{ label: intl.formatMessage({ id: 'detail.purchase.otherRequire' }), extra: data.otherRequire },
]
},
{
col: [
{
label: '附件',
label: intl.formatMessage({ id: 'detail.purchase.file' }),
extra: <>
{data.enclosureUrls && data.enclosureUrls.map((item: any, index: number) => (
<Typography.Link
......@@ -139,7 +139,7 @@ const QuoteDetails = () => {
])
}
const handleOtherCallBack = useCallback((data:any, key: number) => {
const handleOtherCallBack = useCallback((data: any, key: number) => {
handleOtherEffect(forEachQuotedPriceTurnList(data, key))
}, [])
......@@ -194,7 +194,7 @@ const QuoteDetails = () => {
type='primary'
>
<CheckCircleOutlined />
单据审核
{intl.formatMessage({ id: 'detail.purchase.modelTitle' })}
</Button>
)}
</>
......@@ -225,7 +225,7 @@ const QuoteDetails = () => {
/>
<ModalOperate
id={id}
title="单据审核"
title={intl.formatMessage({ id: 'detail.purchase.modelTitle' })}
modalType="audit"
visible={visible}
fetch={fetchLink()}
......
import React from 'react';
import Table from '../../components/table';
import { history } from 'umi';
import { getIntl, history } from 'umi';
import { Button, Space, Typography, Tag } from 'antd';
import { ColumnType } from 'antd/lib/table/interface';
import EyePreview from '@/components/EyePreview';
......@@ -12,13 +12,13 @@ import {
import { getPurchaseQuotedPricePurchaseInquiryList } from '@/services/PurchaseV2Api';
const { Text } = Typography
const intl = getIntl();
const Inquiry = () => {
const format = (text, fmt?: string) => {
return <>{moment(text).format(fmt || "YYYY-MM-DD HH:mm:ss")}</>
}
const columns: ColumnType<any>[] = [{
title: '需求单号',
title: intl.formatMessage({ id: 'table.purchase.dementNo' }),
key: 'purchaseInquiryNo',
dataIndex: 'purchaseInquiryNo',
render: (text: any, record: any) => (
......@@ -29,31 +29,31 @@ const Inquiry = () => {
</Space>
)
}, {
title: '需求会员',
title: intl.formatMessage({ id: 'table.purchase.member' }),
key: 'memberName',
dataIndex: 'memberName',
}, {
title: '交付日期',
title: intl.formatMessage({ id: 'table.purchase.deliveryTime' }),
key: 'deliveryTime',
dataIndex: 'deliveryTime',
render: (text: any, record: any) => format(text)
}, {
title: '报价截止时间',
title: intl.formatMessage({ id: 'table.purchase.quotedPriceTime' }),
key: 'offerEndTime',
dataIndex: 'offerEndTime',
render: (text: any, record: any) => format(text)
}, {
title: '单据时间',
title: intl.formatMessage({ id: 'table.purchase.dementCreateTime' }),
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => format(text)
}, {
title: '外部状态',
title: intl.formatMessage({ id: 'table.purchase.externalStatus' }),
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <Tag color={INQUIRY_EXTERNALSTATE_COLOR[text]}>{record.externalStateName}</Tag>
}, {
title: '操作',
title: intl.formatMessage({ id: 'detail.purchase.option' }),
key: 'operate',
dataIndex: 'operate',
render: (text: any, record: any) =>
......@@ -62,7 +62,7 @@ const Inquiry = () => {
onClick={() => history.push(`/memberCenter/procurementAbility/offter/quote?id=${record.id}&number=${record.purchaseInquiryNo}`)}
type='link'
>
报价
{intl.formatMessage({ id: 'table.purchase.offer' })}
</Button>
}];
return (
......
......@@ -10,8 +10,9 @@ import {
} from '../../constants';
import { Badge, Tag, Space, Typography, Rate } from 'antd';
import { getPurchasePurchaseInquiryExternalStatusPurchase, getPurchasePurchaseInquiryInteriorStatusPurchase, getPurchaseQuotedPriceList } from '@/services/PurchaseV2Api';
import { getIntl } from 'umi';
const { Text } = Typography;
const intl = getIntl();
const Offter = () => {
console.log('采购需求单查询');
const format = (text, fmt?: string) => {
......@@ -19,7 +20,7 @@ const Offter = () => {
}
const columns: ColumnType<any>[] = [{
title: '报价单号/摘要',
title: intl.formatMessage({ id: 'table.purchase.purchaseInquiryNoDtails' }),
key: 'quotedPriceNo',
dataIndex: 'quotedPriceNo',
render: (text: any, record: any) => (
......@@ -29,7 +30,7 @@ const Offter = () => {
</Space>
)
}, {
title: '需求单号/会员',
title: intl.formatMessage({ id: 'table.purchase.purchaseInquiryNoMember' }),
key: 'purchaseInquiryNo',
dataIndex: 'purchaseInquiryNo',
render: (text: any, record: any) => (
......@@ -41,17 +42,17 @@ const Offter = () => {
</Space>
)
}, {
title: '报价截止时间',
title: intl.formatMessage({ id: 'table.purchase.quotedPriceTime' }),
key: 'offerEndTime',
dataIndex: 'offerEndTime',
render: (text: any, record: any) => format(text)
}, {
title: '报价时间',
title: intl.formatMessage({ id: 'table.purchase.purchaseInquiryNoCreateTime' }),
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => format(text)
}, {
title: '报价轮次',
title: intl.formatMessage({ id: 'table.purchase.turn' }),
key: 'turn',
dataIndex: 'turn',
render: (text: any, record: any) => (
......@@ -72,17 +73,17 @@ const Offter = () => {
</>
)
}, {
title: '是否中标',
title: intl.formatMessage({ id: 'table.purchase.isWin' }),
key: 'isPrize',
dataIndex: 'isPrize',
render: (text: any) => (text ? <Text type='success'></Text> : <Text type='warning'></Text>)
render: (text: any) => (text ? <Text type='success'>{intl.formatMessage({ id: 'table.purchase.okText' })}</Text> : <Text type='warning'>{intl.formatMessage({ id: 'table.purchase.cancelText' })}</Text>)
}, {
title: '外部状态',
title: intl.formatMessage({ id: 'table.purchase.externalStatus' }),
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <Tag color={OFFTER_EXTERNALSTATE_COLOR[text] || 'warning'}>{record.externalStateName}</Tag>
}, {
title: '内部状态',
title: intl.formatMessage({ id: 'detail.purchase.innerStatus' }),
key: 'interiorState',
dataIndex: 'interiorState',
render: (text: any, record: any) => <Badge status={OFFTER_INTERNALSTATE_COLOR[text] || 'warning'} text={record.interiorStateName} />
......
import React, { useRef, useState } from 'react';
import { history } from 'umi';
import { getIntl, history } from 'umi';
import Table from '../../components/table'
import { ColumnType } from 'antd/lib/table/interface';
import EyePreview from '@/components/EyePreview';
......@@ -15,14 +15,14 @@ import {
import { getPurchaseQuotedPriceStayCommitList, postPurchaseQuotedPriceStayCommit, postPurchaseQuotedPriceStayCommitBatch } from '@/services/PurchaseV2Api';
const { Text } = Typography
const intl = getIntl();
const SubmitOffter = () => {
console.log('待新增采购需求单');
const format = (text, fmt?: string) => {
return <>{moment(text).format(fmt || "YYYY-MM-DD HH:mm:ss")}</>
}
const columns: ColumnType<any>[] = [{
title: '报价单号/摘要',
title: intl.formatMessage({ id: 'table.purchase.purchaseInquiryNoDtails' }),
key: 'quotedPriceNo',
dataIndex: 'quotedPriceNo',
render: (text: any, record: any) => (
......@@ -32,7 +32,7 @@ const SubmitOffter = () => {
</Space>
)
}, {
title: '需求单号/会员',
title: intl.formatMessage({ id: 'table.purchase.purchaseInquiryNoMember' }),
key: 'purchaseInquiryNo',
dataIndex: 'purchaseInquiryNo',
render: (text: any, record: any) => (
......@@ -44,17 +44,17 @@ const SubmitOffter = () => {
</Space>
)
}, {
title: '报价截止时间',
title: intl.formatMessage({ id: 'table.purchase.quotedPriceTime' }),
key: 'offerEndTime',
dataIndex: 'offerEndTime',
render: (text: any, record: any) => format(text)
}, {
title: '单据时间',
title: intl.formatMessage({ id: 'table.purchase.dementCreateTime' }),
key: 'createTime',
dataIndex: 'createTime',
render: (text: any, record: any) => format(text)
}, {
title: '报价轮次',
title: intl.formatMessage({ id: 'table.purchase.turn' }),
key: 'turn',
dataIndex: 'turn',
render: (text: any, record: any) => (
......@@ -75,24 +75,24 @@ const SubmitOffter = () => {
</>
)
}, {
title: '外部状态',
title: intl.formatMessage({ id: 'table.purchase.externalStatus' }),
key: 'externalState',
dataIndex: 'externalState',
render: (text: any, record: any) => <Tag color={OFFTER_EXTERNALSTATE_COLOR[text]}>{record.externalStateName}</Tag>
}, {
title: '内部状态',
title: intl.formatMessage({ id: 'detail.purchase.innerStatus' }),
key: 'interiorState',
dataIndex: 'interiorState',
render: (text: any, record: any) => <Badge status={OFFTER_INTERNALSTATE_COLOR[text]} text={record.interiorStateName} />
}, {
title: '操作',
title: intl.formatMessage({ id: 'detail.purchase.option' }),
key: 'operate',
dataIndex: 'operate',
render: (text: any, record: any) => (
<>
<Popconfirm title="确定要提交报价单吗?" okText="是" cancelText="否" onConfirm={() => fetchSubmitBatch(record.id)}>
<Popconfirm title={intl.formatMessage({ id: 'table.purchase.popconfirm3' })} okText={intl.formatMessage({ id: 'table.purchase.okText' })} cancelText={intl.formatMessage({ id: 'table.purchase.cancelText' })} onConfirm={() => fetchSubmitBatch(record.id)}>
<Button type='link'>
提交报价单
{intl.formatMessage({ id: 'table.purchase.offerSubmit' })}
</Button>
</Popconfirm>
</>
......@@ -139,7 +139,7 @@ const SubmitOffter = () => {
onClick={() => fetchSubmitBatch()}
disabled={rowkeys.length === 0}
>
批量提交审核
{intl.formatMessage({ id: 'table.purchase.submitBatch' })}
</Button>
</Col>
</Row>
......
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