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

feat: 添加抽取专家通知管理页面

parent d9d2867b
......@@ -15,7 +15,7 @@
// import AfterService from './afterServiceRoute' // 售后
// import HandlingRoute from './handlingRoute'; // 加工能力
import asyncRoutes from '../router.config.json';
// import ProcurementRoute from './procurementRoute';
import ProcurementRoute from './procurementRoute';
// import { callForBidsRoute } from './procurementRoute/callForBids';
// import { purchaseInquiryRoute } from './procurementRoute/purchaseInquiry';
// import contracRoute from './contracRoute';
......@@ -57,12 +57,12 @@ const memberCenterRoute = {
// ShopRoute,
// CommodityRoute,
// srm开发临时使用...
// ProcurementRoute,
ProcurementRoute,
// // 合同能力
// contracRoute,
//...
// AuthConfigRoute,
...asyncRoutes,
// ...asyncRoutes,
{
path: '/memberCenter/noAuth',
auth: false,
......
......@@ -296,20 +296,48 @@ export const callForBidsRoute = [
hideInMenu: true,
noMargin: true,
},
// 评标委员会
// // 评标委员会
// {
// path: '/memberCenter/procurementAbility/callForBids/remarkBidCommittee',
// name: '评标委员会',
// component: '@/pages/procurement/callForBids/remarkBidCommittee',
// },
// // 评标委员会-新建
// {
// path: '/memberCenter/procurementAbility/callForBids/remarkBidCommittee/add',
// name: '新建评标委员会',
// component: '@/pages/procurement/callForBids/addRemarkBidCommittee',
// hideInMenu: true,
// noMargin: true,
// },
// 专家抽取管理
{
path: '/memberCenter/procurementAbility/callForBids/remarkBidCommittee',
name: '评标委员会',
name: '专家抽取管理',
component: '@/pages/procurement/callForBids/remarkBidCommittee',
},
// 评标委员会-新建
// 专家抽取管理-新建
{
path: '/memberCenter/procurementAbility/callForBids/remarkBidCommittee/add',
name: '新建评标委员会',
name: '新建专家抽取',
component: '@/pages/procurement/callForBids/addRemarkBidCommittee',
hideInMenu: true,
noMargin: true,
},
// 专家抽取通知管理
{
path: '/memberCenter/procurementAbility/callForBids/extractNoticeManage',
name: '专家抽取通知管理',
component: '@/pages/procurement/callForBids/extractNoticeManage',
},
// 专家抽取通知
{
path: '/memberCenter/procurementAbility/callForBids/extractNoticeManage/detail',
name: '专家抽取通详情',
component: '@/pages/procurement/callForBids/extractNoticeManage/detail',
hideInMenu: true,
noMargin: true,
},
]
},
]
......@@ -9,7 +9,7 @@ const { pageStatus, id } = usePageStatus()
export const dataChangeUnix = (t) => moment(t).valueOf()
/** 时间戳转datapicker所需格式 */
export const unixChangeRender = (t) => moment(t).format('YYYY-MM-DD HH:mm:ss')
export const unixChangeRender = (t) => t ? moment(t).format('YYYY-MM-DD HH:mm:ss') : null
/** 文件数组转url字符串数组 */
export const fileChangeStringArray = (arr) => arr.map(item => {
......@@ -104,8 +104,8 @@ export const paramsConversionFn = (value) => {
/** 回显 数据转换 */
export const paramsRenderFn = (value) => {
const _value = {...value}
value['evaluationStartTime'] = unixChangeRender(_value['evaluationStartTime'])
value['evaluationEndTime'] = unixChangeRender(_value['evaluationEndTime'])
value['evaluationStartTime'] = unixChangeRender(_value['evaluationStartTime'] || null)
value['evaluationEndTime'] = unixChangeRender(_value['evaluationEndTime'] || null)
value['inviteTenderStartTime'] = unixChangeRender(_value['inviteTenderStartTime'])
value['inviteTenderEndTime'] = unixChangeRender(_value['inviteTenderEndTime'])
value['hopeDate'] = unixChangeRender(_value['hopeDate'])
......
import { formatTimeString } from "@/utils"
// 选择商品和会员弹框的列
export const columnsSetMember: any[] = [
{
......@@ -31,3 +33,200 @@ export const columnsSetMember: any[] = [
key: 'levelTag',
}
]
// 组件条件列表 @又名组建条件
export const buildColumns: any[] = [
{
dataIndex: 'id',
title: 'ID',
align: 'center',
className: 'commonHide',
},
{
dataIndex: 'id',
title: '序号',
align: 'center',
render: (r, t, i) => i++
},
{
dataIndex: 'name',
align: 'center',
title: '专家类型'
},
{
dataIndex: 'memberTypeName',
title: '专家专业级别',
align: 'center'
},
{
dataIndex: 'roleName',
title: '专家资格证书',
align: 'center'
},
{
dataIndex: 'orderThe',
title: '专家专业职称',
align: 'center'
},
{
dataIndex: 'receiverName',
title: '从事年限',
align: 'center'
},
{
dataIndex: 'supplyMembersName',
title: '所属行业',
align: 'center'
},
{
dataIndex: 'supplyMembersName',
title: '要求地区',
align: 'center'
},
{
dataIndex: 'supplyMembersName',
title: '排除地区',
align: 'center'
},
{
dataIndex: 'supplyMembersName',
title: '工作单位',
align: 'center'
},
{
dataIndex: 'supplyMembersName',
title: '抽取人数',
align: 'center'
},
// {
// dataIndex: 'ctl',
// title: '操作',
// align: 'center',
// render: (r, t) => <>
// <Button type="link" onClick={() => editCondition(r, t)}>
// 编辑组件条件
// </Button>
// </>
// }
]
// 委员会成员 @又名专家抽取列表
export const expertColumns: any[] = [
{
dataIndex: 'id',
title: 'ID',
align: 'center',
className: 'commonHide'
},
{
dataIndex: 'id',
title: '序号',
align: 'center',
render: (r, t, i) => i++
},
{
dataIndex: 'name',
align: 'center',
title: '专家类型'
},
{
dataIndex: 'memberTypeName',
title: '专家专业级别',
align: 'center'
},
{
dataIndex: 'roleName',
title: '专家资格证书',
align: 'center'
},
{
dataIndex: 'orderThe',
title: '专家专业职称',
align: 'center'
},
{
dataIndex: 'receiverName',
title: '从事年限',
align: 'center'
},
{
dataIndex: 'supplyMembersName',
title: '所属行业',
align: 'center'
},
{
dataIndex: 'supplyMembersName',
title: '地区',
align: 'center'
},
{
dataIndex: 'supplyMembersName',
title: '工作单位',
align: 'center'
},
{
dataIndex: 'supplyMembersName',
title: '来源',
align: 'center'
},
{
dataIndex: 'supplyMembersName',
title: '状态',
align: 'center'
},
// {
// dataIndex: 'ctl',
// title: '操作',
// align: 'center',
// render: (r, t) => <>
// <Button type="link">
// 查看
// </Button>
// <Button type="link">
// 删除
// </Button>
// </>
// }
]
// 选择项目弹框列
export const selectItemColumns: any[] = [
{
title: '序号',
dataIndex: 'id',
key: 'id',
render: (t, r, i) => ++i
},
{
title: '招标编号',
dataIndex: 'code',
key: 'code',
},
{
title: '招标项目',
dataIndex: 'projectName',
key: 'projectName',
},
{
title: '开标时间',
dataIndex: 'openTenderTime',
key: 'openTenderTime',
render: (text, record) => formatTimeString(text),
},
{
title: '评标开始时间',
dataIndex: 'evaluationStartTime',
key: 'evaluationStartTime',
render: (text, record) => formatTimeString(text),
},
{
title: '评标截止时间',
dataIndex: 'evaluationEndTime',
key: 'evaluationEndTime',
render: (text, record) => formatTimeString(text),
},
]
......@@ -2,7 +2,7 @@ import React from 'react'
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
// 新增专家抽取
export const formSchema: ISchema = {
type: 'object',
properties: {
......@@ -31,14 +31,14 @@ export const formSchema: ISchema = {
properties: {
name: {
type: 'string',
title: '评标委员会名称',
title: '主题名称',
"x-component-props": {
placeholder: '最长50个字符,25字汉字'
},
"x-rules": [
{
required: true,
message: '请填写评标委员会名称'
message: '请填写主题会名称'
},
{
limitByte: true,
......@@ -58,12 +58,17 @@ export const formSchema: ISchema = {
},
required: true
},
remarkNo: {
inviteTenderInStatus: {
type: 'string',
title: '内部状态',
readOnly: true,
},
code: {
type: 'string',
title: '评标招标编号',
title: '招标编号',
readOnly: true,
},
startTime: {
openTenderTime: {
type: 'string',
title: '开标时间',
readOnly: true,
......@@ -129,7 +134,7 @@ export const formSchema: ISchema = {
"x-component": 'MultTable',
"x-component-props": {
rowKey: 'id',
columns: "{{memeberColumns}}",
columns: "{{memberColumns}}",
prefix: "{{selectExpertButton}}",
}
}
......
......@@ -42,3 +42,59 @@ export const formSearch: ISchema = {
}
}
}
// 选择评标项目schema
export const selectBidSchema: ISchema = {
type: 'object',
properties: {
inviteTenderCode: {
type: 'string',
"x-component": 'SearchFilter',
'x-component-props': {
placeholder: '请输入招标编号',
align: 'flex-start',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'flex-layout',
'x-component-props': {
inline: false,
rowStyle: {
justifyContent: 'start',
},
colStyle: {
marginRight: 20
}
},
properties: {
projectName: {
type: 'string',
'x-component-props': {
placeholder: '请输入招标项目',
}
},
"[openTenderStartTime,openTenderEndTime]": {
type: 'array',
"x-component": 'DateRangePickerUnix',
'x-component-props': {
placeholder: ['开标开始时间','开标结束时间'],
},
},
"[evaluationStartTime,evaluationEndTime]": {
type: 'array',
"x-component": 'DateRangePickerUnix',
'x-component-props': {
placeholder: ['评标开始时间','评标结束时间'],
},
},
submit: {
'x-component': 'Submit',
'x-component-props': {
children: '查询',
},
},
},
},
}
}
import React from 'react';
const ExtractNoticeManageDetail: React.FC = () => {
return (
<div>
</div>
);
};
export default ExtractNoticeManageDetail;
import React, { useRef } from 'react'
import { history } from 'umi'
import { Card, Button, Space } from 'antd'
import { StandardTable } from 'god'
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import { PublicApi } from '@/services/api'
import { useSelfTable } from './model/useSelfTable'
import { PlusCircleOutlined } from '@ant-design/icons'
import { tableListSchema } from './schema'
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch'
import { FORM_FILTER_PATH } from '@/formSchema/const'
import Submit from '@/components/NiceForm/components/Submit'
import DateRangePickerUnix from '@/components/NiceForm/components/DateRangePickerUnix'
import '../../constants/index.less'
// @专家抽取通知管理 招标
export interface ExtractNoticeManageProps {}
const fetchTableData = async (params) => {
const { data } = await PublicApi.getOrderProcurementReviewedListOne(params)
return data
}
const ExtractNoticeManage:React.FC<ExtractNoticeManageProps> = (props) => {
const {
columns,
ref,
} = useSelfTable()
return <PageHeaderWrapper>
<Card>
<StandardTable
fetchTableData={params => fetchTableData(params)}
columns={columns}
currentRef={ref}
rowKey={'id'}
formilyLayouts={{
justify: 'end'
}}
formilyProps={{
ctx: {
inline: false,
schema: tableListSchema,
effects: ($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'orderNo',
FORM_FILTER_PATH,
);
},
components: {
DateRangePickerUnix,
Submit
}
},
layouts: {
order: 2,
span: 16
}
}}
// formilyChilds={{
// children: <Space>
// <Button
// icon={<PlusCircleOutlined/>}
// type='primary'
// onClick={() => history.push('/memberCenter/procurementAbility/callForBids/remarkBidCommittee/add')}
// >
// 新建
// </Button>
// </Space>,
// layouts: {
// span: 8
// }
// }}
/>
</Card>
</PageHeaderWrapper>
}
ExtractNoticeManage.defaultProps = {}
export default ExtractNoticeManage
import React, { useRef } from 'react'
import { Button } from 'antd'
import { history } from 'umi'
import StatusSwitch from '@/components/StatusSwitch'
import EyePreview from '@/components/EyePreview'
import { formatTimeString } from '@/utils'
import { PlayCircleOutlined, PoweroffOutlined } from '@ant-design/icons'
// 评标委员会 招标
export const useSelfTable = () => {
const ref = useRef<any>({})
const baseBidListColumns: any[] = [
{
title: '序号',
align: 'left',
dataIndex: 'id',
key: 'id',
render: (t, r, i) => ++i
},
{
title: '评标委员会名称',
align: 'left',
dataIndex: 'receiverName',
key: 'receiverName',
render: (text, record) => <>
<EyePreview url={`${history.location.pathname}/detail?id=${record.id}`}>
{text}
</EyePreview>
</>
},
{
title: '评标招标编号',
align: 'left',
dataIndex: 'orderNo',
key: 'orderNo',
},
{
title: '开标时间',
align: 'left',
dataIndex: 'createTime',
key: 'createTime',
render: (text, record) => formatTimeString(record.createTime),
width: 200
},
{
title: '评标开始/截止时间',
align: 'left',
dataIndex: 'createTime',
key: 'createTime',
render: (text, record) => <>
<div><PlayCircleOutlined />{formatTimeString(record.createTime)}</div>
<div><PoweroffOutlined />{formatTimeString(record.createTime)}</div>
</>,
width: 200
},
{
title: '创建时间',
align: 'left',
dataIndex: 'createTime',
key: 'createTime',
render: (text, record) => formatTimeString(record.createTime),
width: 200
},
{
title: '参与评标人数',
align: 'left',
dataIndex: 'sum',
key: 'sum',
},
// {
// title: '状态',
// align: 'left',
// dataIndex: 'externalState',
// key: 'externalState',
// render: (text: any, record: any) => (
// <StatusSwitch
// handleConfirm={() => handleUpdateState(record)}
// record={record}
// fieldNames="isEnable"
// expectTrueValue={true}
// />
// ),
// },
]
// const handleUpdateState = (record) => {
// console.log(record, 'update')
// }
const secondColumns: any[] = baseBidListColumns.concat([
{
title: '操作',
align: 'left',
dataIndex: 'ctl',
key: 'ctl',
render: (text, record) => <>
<Button type='link'>编辑</Button>
<Button type='link'>发送通知</Button>
<Button type='link'>删除</Button>
</>
}
])
return {
columns: secondColumns,
ref,
}
}
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { OrderTypeMap, PurchaseOrderInsideWorkStateTexts, PurchaseOrderOutWorkStateTexts } from '@/constants';
/**
* 除了订单必填字段, 默认
*/
export const tableListSchema: ISchema = {
type: 'object',
properties: {
orderNo: {
type: 'string',
"x-component": 'SearchFilter',
'x-component-props': {
placeholder: '请输入订单编号',
align: 'flex-end',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'flex-layout',
'x-component-props': {
inline: true,
colStyle: {
marginLeft: 20
}
},
properties: {
orderThe: {
type: 'string',
'x-component-props': {
placeholder: '请输入订单摘要',
}
},
"supplyMembersName": {
type: 'string',
"x-component-props": {
placeholder: '请输入供应会员名称'
}
},
"type": {
type: 'string',
"x-component-props": {
placeholder: '请选择订单类型'
},
enum: Object.keys(OrderTypeMap).map(item => ({
label: OrderTypeMap[item],
value: item,
}))
},
"[startCreateTime,endCreateTime]": {
type: 'array',
"x-component": 'DateRangePickerUnix',
'x-component-props': {
placeholder: ['开始时间','结束时间'],
},
},
submit: {
'x-component': 'Submit',
'x-component-props': {
children: '查询',
},
},
},
},
}
}
......@@ -13,8 +13,7 @@ import Submit from '@/components/NiceForm/components/Submit'
import DateRangePickerUnix from '@/components/NiceForm/components/DateRangePickerUnix'
import '../../constants/index.less'
// 评标委员会 招标
// 评标委员会 招标 @@又名 专家抽取管理
export interface RemarkBidCommitteeProps {}
const fetchTableData = async (params) => {
......
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