system-copyright-react/src/route/CopyrightGgoods/CopyrightGgoods.tsx

348 lines
9.9 KiB
TypeScript
Raw Normal View History

2024-05-31 09:19:30 +08:00
import './copyrightG-goods.css'
2024-06-04 16:02:06 +08:00
import {
Select, DatePicker, Button, Table,
2024-05-31 09:19:30 +08:00
// message,
2024-08-12 14:43:58 +08:00
Space, Empty, Pagination, InputNumber
2024-06-04 16:02:06 +08:00
} from 'antd';
2024-06-12 17:01:55 +08:00
import type { InputNumberProps } from 'antd';
2024-05-31 09:19:30 +08:00
// import type { TableColumnsType } from 'antd';
2024-06-11 17:45:40 +08:00
import { SearchOutlined, ClearOutlined } from '@ant-design/icons';
2024-05-31 09:19:30 +08:00
import type { DatePickerProps } from 'antd';
import locale from 'antd/es/date-picker/locale/zh_CN';
2024-06-12 17:01:55 +08:00
import { useState } from 'react';
2024-05-31 09:19:30 +08:00
const { Column } = Table;
2024-05-21 11:21:34 +08:00
export default function CopyrightGgoods() {
2024-06-12 17:01:55 +08:00
const height = window.innerHeight - 180;
2024-05-31 09:19:30 +08:00
// const [messageApi, contextHolder] = message.useMessage();
const dateFormat = 'YYYY年MM月DD日';
2024-08-12 14:43:58 +08:00
const [minPrice, setMinPrice] = useState<any>() //最低价格
const [maxPrice, setMaxPrice] = useState<any>() //最高价格
const [date, setDate] = useState<any>() //获取时间
const [sort, setSort] = useState<any>() //排序
const [language, setLanguage] = useState<any>() //开发语言
const [type, setType] = useState<any>() //软著类型
const [page, setPage] = useState(1) //分页
2024-06-12 17:01:55 +08:00
// 更改最低价格
const minPriceChange: InputNumberProps['onChange'] = (value) => {
console.log('changed', value);
setMinPrice(value)
};
2024-08-12 14:43:58 +08:00
// 更改最高价格
const maxPriceChange: InputNumberProps['onChange'] = (value) => {
2024-06-12 17:01:55 +08:00
console.log('changed', value);
setMaxPrice(value)
};
// 更改价格排序
const sortChange = (value: string) => {
console.log(`selected ${value}`)
setSort(value)
}
// 更改开发语言
const languageChange = (value: string) => {
console.log(`selected ${value}`)
setLanguage(value)
}
// 软著类型更改
const typeChange = (value: string) => {
2024-05-31 09:19:30 +08:00
console.log(`selected ${value}`);
2024-06-12 17:01:55 +08:00
setType(value)
2024-05-31 09:19:30 +08:00
}
2024-06-12 17:01:55 +08:00
// 获取时间更改
const dateChange: DatePickerProps['onChange'] = (date, dateString) => {
2024-05-31 09:19:30 +08:00
console.log(date, dateString);
2024-06-12 17:01:55 +08:00
setDate(date)
2024-05-31 09:19:30 +08:00
};
2024-06-12 17:01:55 +08:00
// 点击搜索
const onSearch = () => {
setPage(1)
2024-08-12 14:43:58 +08:00
console.log(minPrice, maxPrice, date, sort, language, type);
2024-06-12 17:01:55 +08:00
}
// 初始化搜索条件
const init = () => {
setMinPrice(undefined)
setMaxPrice(undefined)
setDate(undefined)
setSort(undefined)
setLanguage(undefined)
setType(undefined)
}
// 点击清除
const clearKeyWords = () => {
setPage(1)
init()
}
2024-05-31 09:19:30 +08:00
interface DataType {
name: string
short: string
number: string
price: string
version: string
time: string
language: string
}
const data: DataType[] = [
{
name: '智能管理系统',
short: '简称',
2024-06-11 17:45:40 +08:00
number: '312345678912345617891',
2024-05-31 09:19:30 +08:00
price: '5.00',
version: '1-1-1',
time: '2020-04-19 1542:21',
language: 'java'
},
{
name: '商城管理系统',
short: '简称',
2024-06-11 17:45:40 +08:00
number: '11234567891234567892',
2024-05-31 09:19:30 +08:00
price: '5.00',
version: '1-1-1',
time: '2020-04-19 1542:21',
language: 'java'
},
{
name: 'xx系统',
short: '简称',
2024-06-11 17:45:40 +08:00
number: '21234567891234567893',
price: '5.00',
version: '1-1-1',
time: '2020-04-19 1542:21',
language: 'java'
},
{
name: 'xx系统',
short: '简称',
number: '21234567891234567894',
price: '5.00',
version: '1-1-1',
time: '2020-04-19 1542:21',
language: 'java'
},
{
name: 'xx系统',
short: '简称',
number: '21234567891234567895',
price: '5.00',
version: '1-1-1',
time: '2020-04-19 1542:21',
language: 'java'
},
{
name: 'xx系统',
short: '简称',
number: '21234567891234567896',
price: '5.00',
version: '1-1-1',
time: '2020-04-19 1542:21',
language: 'java'
},
{
name: 'xx系统',
short: '简称',
number: '21234567891234567897',
price: '5.00',
version: '1-1-1',
time: '2020-04-19 1542:21',
language: 'java'
},
{
name: 'xx系统',
short: '简称',
number: '21234567891234567898',
price: '5.00',
version: '1-1-1',
time: '2020-04-19 1542:21',
language: 'java'
},
{
name: 'xx系统',
short: '简称',
number: '21234567891234567899',
price: '5.00',
version: '1-1-1',
time: '2020-04-19 1542:21',
language: 'java'
},
{
name: 'xx系统',
short: '简称',
number: '21234567891234567890',
2024-05-31 09:19:30 +08:00
price: '5.00',
version: '1-1-1',
time: '2020-04-19 1542:21',
language: 'java'
},
];
2024-05-21 11:21:34 +08:00
return (
2024-06-12 17:01:55 +08:00
<div className='copyrightG-goods' style={{ height: `${height}px`, overflow: 'auto' }}>
2024-05-31 09:19:30 +08:00
{/* {contextHolder} */}
<div className='copyrightG-goods-search'>
2024-06-12 17:01:55 +08:00
<InputNumber placeholder="最低价格" min={0}
style={{
width: 100,
// height: 36,
marginRight: 12
}}
value={minPrice}
onChange={minPriceChange}
/>
2024-05-31 09:19:30 +08:00
2024-08-12 14:43:58 +08:00
<InputNumber placeholder="最高价格" min={0} style={{
2024-06-12 17:01:55 +08:00
width: 100,
// height: 36,
marginRight: 12,
marginLeft: 12
2024-08-12 14:43:58 +08:00
}}
value={maxPrice}
onChange={maxPriceChange}
2024-06-12 17:01:55 +08:00
/>
2024-05-31 09:19:30 +08:00
<DatePicker placeholder="软著获取时间"
style={{ width: 198, height: 36, marginRight: 12 }}
format={dateFormat}
locale={locale}
2024-06-12 17:01:55 +08:00
onChange={dateChange}
value={date}
2024-05-31 09:19:30 +08:00
/>
<Select
// defaultValue="lucy"
placeholder='价格排序'
2024-06-12 17:01:55 +08:00
style={{ width: 100, height: 36, marginRight: 12 }}
onChange={sortChange}
2024-05-31 09:19:30 +08:00
options={[
2024-06-12 17:01:55 +08:00
{ value: 'rise', label: '升序' },
{ value: 'drop', label: '降序' },
2024-05-31 09:19:30 +08:00
]}
2024-06-12 17:01:55 +08:00
value={sort}
2024-05-31 09:19:30 +08:00
/>
<Select
// defaultValue="lucy"
placeholder='选择开发语言'
style={{ width: 198, height: 36, marginRight: 12 }}
2024-06-12 17:01:55 +08:00
onChange={languageChange}
2024-05-31 09:19:30 +08:00
options={[
2024-06-12 17:01:55 +08:00
{ value: 'java', label: 'java' },
{ value: 'php', label: 'php' },
2024-05-31 09:19:30 +08:00
]}
2024-06-12 17:01:55 +08:00
value={language}
2024-05-31 09:19:30 +08:00
/>
<Select
// defaultValue="lucy"
placeholder='选择软著类型'
style={{ width: 198, height: 36, marginRight: 12 }}
2024-06-12 17:01:55 +08:00
onChange={typeChange}
2024-05-31 09:19:30 +08:00
options={[
2024-06-12 17:01:55 +08:00
{ value: 'person', label: '个人' },
{ value: 'lucy', label: '公司' },
2024-05-31 09:19:30 +08:00
]}
2024-06-12 17:01:55 +08:00
value={type}
2024-05-31 09:19:30 +08:00
/>
<Button type="primary"
2024-06-04 16:02:06 +08:00
style={{
height: 36,
// backgroundColor: '#FF9F08'
}}
2024-05-31 09:19:30 +08:00
2024-06-12 17:01:55 +08:00
icon={<SearchOutlined />}
onClick={onSearch}
2024-08-12 14:43:58 +08:00
>
2024-05-31 09:19:30 +08:00
</Button>
2024-06-04 16:02:06 +08:00
<Button
style={{
height: 36,
marginLeft: 10,
// backgroundColor: '#FF9F08'
}}
2024-06-12 17:01:55 +08:00
icon={<ClearOutlined />}
onClick={clearKeyWords}
2024-08-12 14:43:58 +08:00
>
2024-06-04 16:02:06 +08:00
</Button>
2024-05-31 09:19:30 +08:00
</div>
<div className='copyrightG-goods-table'>
{/* 表格 */}
{data.length == 0 ? (
<div className='nodata' style={{ height: `${height - 93}px` }}>
<Empty
description={
'暂无数据'
} />
2024-06-07 09:59:01 +08:00
</div>) : (
2024-06-11 17:45:40 +08:00
<div>
2024-06-12 17:01:55 +08:00
<div style={{ height: `${height - 130}px` }}>
2024-06-11 17:45:40 +08:00
<Table
scroll={{ y: `${height - 190}px` }}
dataSource={data}
pagination={false} // 不显示分页
style={{ textAlign: 'center' }} // 设置表格内容居中显示
rowKey="number" // 指定数据项的唯一标识符
>
2024-06-12 17:01:55 +08:00
<Column
width={70}
title="序号" render={(_text, _record, index: number) => (
index + 1
)} align="center" />
2024-06-11 17:45:40 +08:00
<Column
title="软著名称"
dataIndex="name"
align="center"
render={(text) => (
<span style={{ color: '#1B8BD2', fontSize: '16px', fontWeight: '700' }}>{text}</span>
)}
/>
<Column
title="软著简称"
dataIndex="short"
align="center"
/>
<Column
title="软著证号"
dataIndex="number"
align="center"
2024-06-12 17:01:55 +08:00
// ellipsis
2024-06-11 17:45:40 +08:00
/>
<Column title="售价" dataIndex="price" align="center"
render={(text) => (
<span style={{ color: '#FF5D15', fontSize: '24px', fontWeight: '700' }}>{text}</span>
)} />
<Column title="软著版本" dataIndex="version" align="center" />
<Column title="软著取得时间" dataIndex="time" align="center" />
<Column title="软著开发语言" dataIndex="language" align="center" />
{/* <Column title="实名认证状态" dataIndex="address" key="key" /> */}
<Column
align="center"
title="软著电子版"
render={(_text, record: any) => (
<Space size="middle">
<span className='copyrightG-goods-table-btn' onClick={() => {
console.log(record.number);
2024-05-31 09:19:30 +08:00
2024-06-11 17:45:40 +08:00
}}></span>
</Space>
)}
/>
</Table>
</div>
{/* defaultCurrent: 默认当前页数 total:数据总数 defaultPageSize:'页面显示几条' */}
2024-06-12 17:01:55 +08:00
<div className='product-release-pagination' >
2024-08-12 14:43:58 +08:00
<Pagination
showSizeChanger={false}
defaultCurrent={page} total={20} defaultPageSize={10} onChange={(page) => {
console.log(page)
setPage(page)
}} />
2024-06-11 17:45:40 +08:00
</div>
</div>
)}
2024-05-31 09:19:30 +08:00
</div>
2024-05-21 11:21:34 +08:00
</div>
)
}