订单属性增加
This commit is contained in:
parent
9b4786b783
commit
37b49e7a1d
@ -152,7 +152,7 @@ export default function CorrectionModal(props: any) {
|
||||
</div>
|
||||
<div className='refunModal-item'>
|
||||
<div className='refunModal-title'>
|
||||
补正类型<span className='refunModal-red'>*</span>
|
||||
补正种类<span className='refunModal-red'>*</span>
|
||||
</div>
|
||||
<Form.Item
|
||||
name="correctionType"
|
||||
|
@ -73,7 +73,7 @@ export default function NoticeModal() {
|
||||
title: '消息类型',
|
||||
dataIndex: 'title',
|
||||
align: 'center',
|
||||
width: 100
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '接收时间',
|
||||
|
@ -15,7 +15,7 @@ import { Button, Tag, Modal, Carousel } from 'antd';
|
||||
import { GenerateStatus, ProjChargeType } from "../../interfaces/proj/IProj.ts";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { Axios, post, downloadUrl } from "../../util/AjaxUtils.ts";
|
||||
import {useEffect, useState } from "react";
|
||||
import { useEffect, useState } from "react";
|
||||
import useMessage from "antd/es/message/useMessage";
|
||||
import setImg from '../../static/right/set.png'
|
||||
import orderImg from '../../static/right/order.png'
|
||||
@ -182,6 +182,9 @@ export default function CardProj(props: any) {
|
||||
// console.log('额外收费加急',URGENTvalue);
|
||||
// console.log('基础服务费',basicsValue);
|
||||
// getTag()
|
||||
// console.log('查看数据', data);
|
||||
// console.log('查看状态', data.pay.payStatus);
|
||||
|
||||
}, [])
|
||||
|
||||
return (
|
||||
@ -191,7 +194,19 @@ export default function CardProj(props: any) {
|
||||
<div className='cpt-left'>
|
||||
<div className='dottedLine'></div>
|
||||
<div className='cpt-title' onClick={goEdit}>{data.projName}</div>
|
||||
<div className='cp-tag' style={{ background: payCharge == '全托管' ? '#6bd2b4' : payCharge == '免费试用' ? '#ff9226' : payCharge == '写材料' ? '#5279f4' : '', color: '#fff' }}>
|
||||
|
||||
<div className='cp-tag'
|
||||
style={{
|
||||
background: payCharge == '全托管' ? '#6bd2b4' : payCharge == '免费试用' ? '#ff9226' : payCharge == '写材料' ? '#5279f4' : '', color: '#fff',
|
||||
display: data.projStatus == 'NORMAL' || data.projStatus == 'EXPIRED' ? 'unset' : 'none'
|
||||
}}>
|
||||
{payCharge}
|
||||
</div>
|
||||
<div className='cp-tag'
|
||||
style={{
|
||||
background: '#8a8a8a', color: '#fff',
|
||||
display: data.projStatus == 'NORMAL' || data.projStatus == 'EXPIRED' ? 'none' : 'unset'
|
||||
}}>
|
||||
{payCharge}
|
||||
</div>
|
||||
<div className='cp-num'>
|
||||
@ -209,7 +224,7 @@ export default function CardProj(props: any) {
|
||||
background: tagIdArray.includes(item.value) ? '#ff7b00' : '',
|
||||
color: tagIdArray.includes(item.value) ? '#ffffff' : '#5a5a5a',
|
||||
border: tagIdArray.includes(item.value) ? ' 1px solid #ff7b00' : ' 1px solid #5a5a5a',
|
||||
|
||||
// display: data.projStatus == 'NORMAL' || data.projStatus == 'EXPIRED' ? 'block' : 'none'
|
||||
}}
|
||||
onClick={() => {
|
||||
|
||||
@ -237,7 +252,7 @@ export default function CardProj(props: any) {
|
||||
|
||||
</div>
|
||||
</div> */}
|
||||
<div className='cpt-right'>
|
||||
<div className='cpt-right' style={{ display: data.projStatus == 'NORMAL' || data.projStatus == 'EXPIRED' ? 'block' : 'none' }}>
|
||||
|
||||
{
|
||||
data.generate.generateStatus == GenerateStatus.SUCCESS ? (
|
||||
@ -252,12 +267,13 @@ export default function CardProj(props: any) {
|
||||
</span>
|
||||
)
|
||||
}
|
||||
<span className='orignLine'>|</span>
|
||||
<span className="cpt-text-btn">
|
||||
<span className='orignLine' style={{ display: data.projStatus == 'EXPIRED' ? 'none' : 'unset' }}>|</span>
|
||||
<span className="cpt-text-btn" style={{ display: data.projStatus == 'EXPIRED' ? 'none' : 'unset' }}>
|
||||
<EyeOutlined />
|
||||
<span className='text-btn' onClick={() => {
|
||||
window.open(`${Axios.defaults?.baseURL}/${data.previewUrl}`, '_blank')
|
||||
}}>预览</span>
|
||||
<span className='text-btn'
|
||||
onClick={() => {
|
||||
window.open(`${Axios.defaults?.baseURL}/${data.previewUrl}`, '_blank')
|
||||
}}>预览</span>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
@ -265,7 +281,7 @@ export default function CardProj(props: any) {
|
||||
<div className='cp-bot'>
|
||||
<div className='cpb-left'>
|
||||
{/* lyp */}
|
||||
<div className='cpb-left-img'>
|
||||
<div className='cpb-left-img' >
|
||||
<Carousel autoplay dots={false}>
|
||||
|
||||
<div className='cpb-left-imgX'>
|
||||
@ -279,13 +295,24 @@ export default function CardProj(props: any) {
|
||||
</div>
|
||||
|
||||
</Carousel>
|
||||
<div className='payStatus' style={{background:data.pay.payStatus == 'UNPAID'?'#E85454 ':data.pay.payStatus == 'PAID'?'#40BF76':data.pay.payStatus == 'ARREARS'?'#FFA200':data.pay.payStatus == 'FULL_REFUND'?'#C9C9C9':data.pay.payStatus == 'CORRECTION1_REFUND'?'#99B5BD':data.pay.payStatus == 'CORRECTION2_REFUND'?'#99A3BD':''}}>
|
||||
{data.pay.payStatus == 'UNPAID'?'未付款':data.pay.payStatus == 'PAID'?'已付款':data.pay.payStatus == 'ARREARS'?'欠费':data.pay.payStatus == 'FULL_REFUND'?'全额退款':data.pay.payStatus == 'CORRECTION1_REFUND'?'补正1次退款':data.pay.payStatus == 'CORRECTION2_REFUND'?'补正2次退款':''}
|
||||
</div>
|
||||
</div>
|
||||
{/* <img src={downloadUrl(data.codeTypePage.previewImgs)} className='cpb-left-img' alt="" /> */}
|
||||
<div className='cpbl-right'>
|
||||
<div style={{ display: 'flex' }}>
|
||||
<div className='cpbl-money'>
|
||||
<span className='money'>金额(¥) : </span>
|
||||
<span className='num'>{data.pay.payment / 100}</span>
|
||||
<div className='cpbl-money'
|
||||
style={{ background: data.projStatus == 'NORMAL' || data.projStatus == 'EXPIRED' ? '#f7edce' : '#ebebeb' }}
|
||||
>
|
||||
<span className='money'
|
||||
style={{ color: data.projStatus == 'NORMAL' || data.projStatus == 'EXPIRED' ? '#FF5D15' : '#8a8a8a' }}
|
||||
|
||||
>金额(¥) : </span>
|
||||
<span className='num'
|
||||
style={{ color: data.projStatus == 'NORMAL' || data.projStatus == 'EXPIRED' ? '#FF5D15' : '#8a8a8a' }}
|
||||
|
||||
>{data.pay.payment / 100}</span>
|
||||
</div>
|
||||
<div className='otherMoney'>
|
||||
{/* <div>基础费用:{basicsValue}</div> */}
|
||||
@ -294,54 +321,60 @@ export default function CardProj(props: any) {
|
||||
<Tag color="#87d068" style={{ display: videoDemoValue ? 'block' : 'none' }}>演示视频:{videoDemoValue}</Tag>
|
||||
</div>
|
||||
</div>
|
||||
<div className='cpbl-btn'>
|
||||
<div className='threeBtn' onClick={() => {
|
||||
if (data.generate.generateStatus == GenerateStatus.SUCCESS || payCharge == '全托管') {
|
||||
// nav(`/proj-edit/config-loginpage-show/${data.projId}`)
|
||||
setLoginPageShowOpne(true);
|
||||
<div style={{ display: data.projStatus == 'NORMAL' || data.projStatus == 'EXPIRED' ? 'block' : 'none' }}>
|
||||
<div className='cpbl-btn'>
|
||||
<div className='threeBtn' onClick={() => {
|
||||
if (data.generate.generateStatus == GenerateStatus.SUCCESS || payCharge == '全托管') {
|
||||
// nav(`/proj-edit/config-loginpage-show/${data.projId}`)
|
||||
setLoginPageShowOpne(true);
|
||||
|
||||
} else {
|
||||
// nav(`/proj-edit/config-loginpage/${data.projId}`)
|
||||
setLoginPageOpne(true)
|
||||
}
|
||||
}}>
|
||||
<img src={setImg} alt="" />
|
||||
<div>登录界面设置</div>
|
||||
</div>
|
||||
<div className='threeBtn' onClick={() => {
|
||||
if (data.generate.generateStatus == GenerateStatus.SUCCESS || payCharge == '全托管') {
|
||||
// nav(`/proj-edit/config-mod-list-show/${data.projId}`)
|
||||
setSoftwareManagementShowOpen(true)
|
||||
} else {
|
||||
setSoftwareManagementOpen(true)
|
||||
// nav(`/proj-edit/config-mod-list/${data.projId}`)
|
||||
} else {
|
||||
// nav(`/proj-edit/config-loginpage/${data.projId}`)
|
||||
setLoginPageOpne(true)
|
||||
}
|
||||
}}>
|
||||
<img src={setImg} alt="" />
|
||||
<div>登录界面设置</div>
|
||||
</div>
|
||||
<div className='threeBtn' onClick={() => {
|
||||
if (data.generate.generateStatus == GenerateStatus.SUCCESS || payCharge == '全托管') {
|
||||
// nav(`/proj-edit/config-mod-list-show/${data.projId}`)
|
||||
setSoftwareManagementShowOpen(true)
|
||||
} else {
|
||||
setSoftwareManagementOpen(true)
|
||||
// nav(`/proj-edit/config-mod-list/${data.projId}`)
|
||||
|
||||
}
|
||||
}}>
|
||||
<img src={menuImg} alt="" />
|
||||
<div>系统菜单管理({data.projModCount})</div>
|
||||
</div>
|
||||
<div className='threeBtn rightBit' onClick={() => {
|
||||
if (data.generate.generateStatus == GenerateStatus.SUCCESS || payCharge == '全托管') {
|
||||
// nav(`/proj-edit/config-menu-list-show/${data.projId}`)
|
||||
setDisplayOrderShowOpen(true);
|
||||
} else {
|
||||
// nav(`/proj-edit/config-menu-list/${data.projId}`)
|
||||
setDisplayOrderOpen(true);
|
||||
}
|
||||
}}>
|
||||
<img src={menuImg} alt="" />
|
||||
<div>系统菜单管理({data.projModCount})</div>
|
||||
</div>
|
||||
<div className='threeBtn rightBit' onClick={() => {
|
||||
if (data.generate.generateStatus == GenerateStatus.SUCCESS || payCharge == '全托管') {
|
||||
// nav(`/proj-edit/config-menu-list-show/${data.projId}`)
|
||||
setDisplayOrderShowOpen(true);
|
||||
} else {
|
||||
// nav(`/proj-edit/config-menu-list/${data.projId}`)
|
||||
setDisplayOrderOpen(true);
|
||||
|
||||
|
||||
}
|
||||
}}>
|
||||
<img src={orderImg} alt="" />
|
||||
<div>菜单排序({data.projModCount})</div>
|
||||
}
|
||||
}}>
|
||||
<img src={orderImg} alt="" />
|
||||
<div>菜单排序({data.projModCount})</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div className='cline'></div>
|
||||
<div className='cpb-center'>
|
||||
<div className='cpbc-top'>
|
||||
<div className='cpb-center' >
|
||||
<div style={{ fontSize: 16, fontWeight: 500, color: data.projStatus == 'REFUND_APPLYING' ? '' : data.projStatus == 'CLOSE' ? '#73A350 ' : data.projStatus == 'EXPIRED' ? '#FFB667 ' : '' }}>
|
||||
{data.projStatus == 'REFUND_APPLYING' ? '退款申请中' : data.projStatus == 'CLOSE' ? '该项目已关闭' : data.projStatus == 'EXPIRED' ? '该项目已过期' : ''}
|
||||
</div>
|
||||
<div className='cpbc-top' style={{ display: data.projStatus == 'NORMAL' || data.projStatus == 'EXPIRED' ? 'block' : 'none' }}>
|
||||
{
|
||||
data.generate.generateStatus == GenerateStatus.SUCCESS ? (
|
||||
<div className="option">
|
||||
|
@ -144,8 +144,19 @@
|
||||
height: 143px;
|
||||
background: #F5F5F5;
|
||||
border-radius: 6px;
|
||||
position: relative;
|
||||
|
||||
|
||||
}
|
||||
.payStatus{
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
left: 0;
|
||||
top: 113px;
|
||||
height: 30px;
|
||||
padding: 0px 10px;
|
||||
line-height: 30px;
|
||||
color: #FFFFFF;
|
||||
font-size: 14px;
|
||||
}
|
||||
.cpb-left-imgX {
|
||||
/* width: 249px; */
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { Table, TableProps, Tooltip, Spin } from "antd";
|
||||
import { Table, TableProps, Tooltip, Spin, Modal, Input } from "antd";
|
||||
const { Search } = Input;
|
||||
import { useEffect, useState } from "react";
|
||||
import useMessage from "antd/es/message/useMessage";
|
||||
import { get } from "../../util/AjaxUtils";
|
||||
@ -23,20 +24,32 @@ type DataType = {
|
||||
orderStatus: string;
|
||||
gmtCreate: string;
|
||||
}
|
||||
type DataTypeDetail = {
|
||||
productName: string; //商品名称
|
||||
productType: string; //商品类型
|
||||
quantity: number; //购买数量
|
||||
unitPrice: number; //单价
|
||||
productDescription: string; //商品描述
|
||||
notes: string; //备注
|
||||
}
|
||||
export default function MyOrder() {
|
||||
const [messageApi, messageContext] = useMessage();
|
||||
const [isLoading, setIsLoading] = useState(false)
|
||||
const [page, setPage] = useState(1);
|
||||
const [total, setTotal] = useState(0);
|
||||
const [dataArray, setDataArray] = useState<DataType[]>([]);
|
||||
const [detailData, setDetailData] = useState<DataTypeDetail[]>([])
|
||||
const [orderDetailsModal, setOrderDetailsModal] = useState(false) //详情弹窗
|
||||
const [keyWords, setKewWords] = useState('')
|
||||
const getData = () => {
|
||||
get<IListPage<DataType>>({
|
||||
messageApi,
|
||||
url: '/api/order/listpage/complete/no-invoiced/self',
|
||||
url: '/api/order/listpage/self',
|
||||
config: {
|
||||
params: {
|
||||
page: page,
|
||||
rows: 20
|
||||
rows: 20,
|
||||
keywords: keyWords,
|
||||
}
|
||||
},
|
||||
onBefore() {
|
||||
@ -54,6 +67,26 @@ export default function MyOrder() {
|
||||
}
|
||||
})
|
||||
}
|
||||
const getOrderDetails = (orderId: string) => {
|
||||
get({
|
||||
messageApi,
|
||||
url: `/api/order-detail/list/order-id/${orderId}`,
|
||||
config: {
|
||||
|
||||
},
|
||||
onBefore() {
|
||||
setIsLoading(true);
|
||||
},
|
||||
onSuccess(data: any) {
|
||||
// console.log(data.data);
|
||||
setDetailData(data.data)
|
||||
|
||||
},
|
||||
onFinally() {
|
||||
setIsLoading(false);
|
||||
}
|
||||
})
|
||||
}
|
||||
const columns: TableProps<DataType>['columns'] = [
|
||||
{
|
||||
title: '订单号',
|
||||
@ -81,8 +114,17 @@ export default function MyOrder() {
|
||||
if (value === 'COMPLETE') {
|
||||
return '完成';
|
||||
}
|
||||
if (value === 'CHARGEBACK') {
|
||||
return '已退款';
|
||||
if (value === ' FULL_REFUND') {
|
||||
return '全额退款';
|
||||
}
|
||||
if (value === 'PENDING') {
|
||||
return '等待';
|
||||
}
|
||||
if (value === 'CORRECTION1_REFUND') {
|
||||
return '补正1次退款';
|
||||
}
|
||||
if (value === 'CORRECTION2_REFUND') {
|
||||
return '补正2次退款';
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -92,70 +134,187 @@ export default function MyOrder() {
|
||||
align: 'center',
|
||||
width: 180
|
||||
},
|
||||
// {
|
||||
// title: '产品类型',
|
||||
// dataIndex: 'detail.productType',
|
||||
// align: 'center',
|
||||
// width: 100,
|
||||
// render: (_value, record) => {
|
||||
// if (record.detail.productType === 'PROJ') {
|
||||
// return '项目创建'
|
||||
// }
|
||||
// if (record.detail.productType === 'AGENT') {
|
||||
// return '项目代理'
|
||||
// }
|
||||
// return record.detail.productType
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// title: '数量',
|
||||
// dataIndex: 'detail.quantity',
|
||||
// align: 'center',
|
||||
// width: 100,
|
||||
// render: (_value, record) => {
|
||||
// return record.detail.quantity
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// title: '单价',
|
||||
// dataIndex: 'detail.unitPrice',
|
||||
// align: 'center',
|
||||
// width: 100,
|
||||
// render: (_value, record) => {
|
||||
// return (record.detail.unitPrice / 100).toFixed(2)
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// title: '订单备注',
|
||||
// dataIndex: 'detail.notes',
|
||||
// align: 'center',
|
||||
// width: 120,
|
||||
// render: (_value, record) => {
|
||||
// return record.detail.notes
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// title: '描述',
|
||||
// dataIndex: 'detail.productDescription',
|
||||
// align: 'center',
|
||||
// width: 200,
|
||||
// ellipsis: {
|
||||
// showTitle: false,
|
||||
// },
|
||||
// render: (_value, record) => {
|
||||
// return <Tooltip placement="top" title={record.detail.productDescription}>{record.detail.productDescription}</Tooltip>
|
||||
// }
|
||||
// },
|
||||
{
|
||||
title: '产品类型',
|
||||
dataIndex: 'detail.productType',
|
||||
title: '订单详情',
|
||||
align: 'center',
|
||||
width: 100,
|
||||
render: (_, record) => (
|
||||
// {record.name}
|
||||
<div className='refunBtn' onClick={() => {
|
||||
// console.log(record.orderId); //id
|
||||
// console.log(record.orderNo); //编号
|
||||
// setOrderId(record.orderId)
|
||||
setOrderDetailsModal(true)
|
||||
getOrderDetails(record.orderId)
|
||||
}}>查看</div>
|
||||
),
|
||||
},
|
||||
]
|
||||
const detailColumns: TableProps<DataTypeDetail>['columns'] = [
|
||||
{
|
||||
title: '商品名称',
|
||||
dataIndex: 'productName',
|
||||
align: 'center',
|
||||
// width: 250,
|
||||
ellipsis: {
|
||||
showTitle: false,
|
||||
},
|
||||
render: (_value, record) => {
|
||||
if (record.detail.productType === 'PROJ') {
|
||||
return '项目创建'
|
||||
}
|
||||
if (record.detail.productType === 'AGENT') {
|
||||
return '项目代理'
|
||||
}
|
||||
return record.detail.productType
|
||||
return <Tooltip placement="top" title={record.productName}>{record.productName}</Tooltip>
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '数量',
|
||||
dataIndex: 'detail.quantity',
|
||||
title: '商品类型',
|
||||
dataIndex: 'productType',
|
||||
align: 'center',
|
||||
render: (_value, record) => {
|
||||
if (record.productType === 'PROJ') {
|
||||
return '项目创建'
|
||||
}
|
||||
if (record.productType === 'AGENT') {
|
||||
return '项目代理'
|
||||
}
|
||||
if (record.productType === 'FULL_REFUND') {
|
||||
return '全额退款'
|
||||
}
|
||||
if (record.productType === 'CORRECTION1_REFUND') {
|
||||
return '补正1次退款'
|
||||
}
|
||||
if (record.productType === 'CORRECTION2_REFUND') {
|
||||
return '补正2次退款'
|
||||
}
|
||||
return record.productType
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
title: '购买数量',
|
||||
dataIndex: 'quantity',
|
||||
align: 'center',
|
||||
width: 100,
|
||||
render: (_value, record) => {
|
||||
return record.detail.quantity
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
title: '单价',
|
||||
dataIndex: 'detail.unitPrice',
|
||||
dataIndex: 'unitPrice',
|
||||
align: 'center',
|
||||
width: 100,
|
||||
render: (_value, record) => {
|
||||
return (record.detail.unitPrice / 100).toFixed(2)
|
||||
render: (value) => {
|
||||
return (value / 100).toFixed(2)
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
{
|
||||
title: '订单备注',
|
||||
dataIndex: 'detail.notes',
|
||||
align: 'center',
|
||||
width: 120,
|
||||
// width: 120,
|
||||
render: (_value, record) => {
|
||||
return record.detail.notes
|
||||
return <Tooltip placement="top" title={record.notes}>{record.notes}</Tooltip>
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '描述',
|
||||
dataIndex: 'detail.productDescription',
|
||||
title: '商品描述',
|
||||
dataIndex: 'productDescription',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
ellipsis: {
|
||||
showTitle: false,
|
||||
},
|
||||
render: (_value, record) => {
|
||||
return <Tooltip placement="top" title={record.detail.productDescription}>{record.detail.productDescription}</Tooltip>
|
||||
return <Tooltip placement="top" title={record.productDescription}>{record.productDescription}</Tooltip>
|
||||
}
|
||||
},
|
||||
}
|
||||
]
|
||||
// useEffect(() => {
|
||||
// getData();
|
||||
// }, []);
|
||||
const handleSearch = (value: string) => {
|
||||
// console.log(value);
|
||||
setKewWords(value)
|
||||
}
|
||||
const handleChange = (e: any) => {
|
||||
|
||||
// console.log(e.target.value);
|
||||
if (e.target.value == '') {
|
||||
setKewWords('')
|
||||
}
|
||||
}
|
||||
useEffect(() => {
|
||||
getData();
|
||||
}, [page]);
|
||||
}, [page, keyWords]);
|
||||
return (
|
||||
<div>
|
||||
{messageContext}
|
||||
<div style={{
|
||||
marginBottom: 10,
|
||||
marginTop: 10
|
||||
}}>
|
||||
<Search placeholder="输入订单号查询订单"
|
||||
// value={nowKeyword}
|
||||
onSearch={handleSearch}
|
||||
onChange={handleChange}
|
||||
style={{
|
||||
width: '300px',
|
||||
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<Spin tip="加载中..." spinning={isLoading}>
|
||||
<Table columns={columns} dataSource={dataArray}
|
||||
pagination={
|
||||
@ -165,11 +324,43 @@ export default function MyOrder() {
|
||||
onChange: (currentPage) => {
|
||||
setPage(currentPage);
|
||||
},
|
||||
showSizeChanger:false
|
||||
showSizeChanger: false
|
||||
}
|
||||
}
|
||||
scroll={{ y: 500 }} bordered key="dataTable" rowKey="orderId" />;
|
||||
scroll={{ y: 500 }} bordered key="dataTable" rowKey="orderId" />
|
||||
</Spin>
|
||||
<Modal
|
||||
title="订单详情"
|
||||
cancelText="取消"
|
||||
destroyOnClose={true}
|
||||
open={orderDetailsModal}
|
||||
// onOk={() => {
|
||||
// setOrderDetailsModal(false)
|
||||
// }}
|
||||
width={1300}
|
||||
onCancel={() => {
|
||||
setOrderDetailsModal(false)
|
||||
}}
|
||||
footer={null}
|
||||
>
|
||||
<Spin tip="加载中..." spinning={isLoading}>
|
||||
<Table columns={detailColumns}
|
||||
dataSource={detailData}
|
||||
// pagination={
|
||||
// {
|
||||
// pageSize: 20,
|
||||
// total: total,
|
||||
// onChange: (currentPage) => {
|
||||
// setPage(currentPage);
|
||||
// },
|
||||
// showSizeChanger: false
|
||||
// }
|
||||
// }
|
||||
pagination={false}
|
||||
// scroll={{ y: 500 }}
|
||||
bordered key="dataTable" rowKey="orderId" />
|
||||
</Spin>
|
||||
</Modal>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ import { useNavigate } from "react-router-dom";
|
||||
interface DataType {
|
||||
projName: string;
|
||||
type: string; //类型
|
||||
correctionType: string; //补正类型
|
||||
correctionType: string; //补正种类
|
||||
correctionReason: string;
|
||||
gmtCreate: string; //补正时间
|
||||
gmtReview: string;//审核时间
|
||||
@ -60,14 +60,14 @@ export default function Correction() {
|
||||
dataIndex: 'type',
|
||||
key: 'type',
|
||||
align: 'center',
|
||||
render: (text) => <div >{text=='CORRECTION1'?'一次补正':text=='CORRECTION2'?'二次补正':''}</div>,
|
||||
render: (text) => <div >{text == 'CORRECTION1' ? '一次补正' : text == 'CORRECTION2' ? '二次补正' : ''}</div>,
|
||||
},
|
||||
{
|
||||
title: '补正类型',
|
||||
title: '补正种类',
|
||||
dataIndex: 'correctionType',
|
||||
key: 'correctionType',
|
||||
align: 'center',
|
||||
render: (text) => <div >{text=='CODE'?'代码':text=='MANUAL'?'操作手册':''}</div>,
|
||||
render: (text) => <div >{text == 'CODE' ? '代码' : text == 'MANUAL' ? '操作手册' : ''}</div>,
|
||||
},
|
||||
{
|
||||
title: '补正原因',
|
||||
@ -139,14 +139,14 @@ export default function Correction() {
|
||||
dataIndex: 'type',
|
||||
key: 'type',
|
||||
align: 'center',
|
||||
render: (text) => <div >{text=='CORRECTION1'?'一次补正':text=='CORRECTION2'?'二次补正':''}</div>,
|
||||
render: (text) => <div >{text == 'CORRECTION1' ? '一次补正' : text == 'CORRECTION2' ? '二次补正' : ''}</div>,
|
||||
},
|
||||
{
|
||||
title: '补正类型',
|
||||
title: '补正种类',
|
||||
dataIndex: 'correctionType',
|
||||
key: 'correctionType',
|
||||
align: 'center',
|
||||
render: (text) => <div >{text=='CODE'?'代码':text=='MANUAL'?'操作手册':''}</div>,
|
||||
render: (text) => <div >{text == 'CODE' ? '代码' : text == 'MANUAL' ? '操作手册' : ''}</div>,
|
||||
},
|
||||
{
|
||||
title: '补正原因',
|
||||
@ -199,105 +199,215 @@ export default function Correction() {
|
||||
render: (_, record) => (
|
||||
// {record.name}
|
||||
<div className='refunBtn' onClick={() => {
|
||||
// console.log(record.projRefundApplyId);
|
||||
// console.log(record);
|
||||
setRevokeModal(true)
|
||||
setprojCorrectionApplyId(record.projCorrectionApplyId)
|
||||
}}> 撤销</div>
|
||||
|
||||
),
|
||||
},
|
||||
] :
|
||||
// 已通过 和未通过 状态
|
||||
[
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
align: 'center',
|
||||
width: 80,
|
||||
render: (_text, _record, index) => (page - 1) * 10 + index + 1, // 显示序号,从1开始
|
||||
},
|
||||
{
|
||||
title: '系统名称',
|
||||
dataIndex: 'projName',
|
||||
align: 'center',
|
||||
key: 'projName',
|
||||
render: (text) => <div className='ellipsis-text' title={text}>{text}</div>,
|
||||
},
|
||||
]
|
||||
// 未通过 状态
|
||||
: type == 'REJECTED' ?
|
||||
[
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
align: 'center',
|
||||
width: 80,
|
||||
render: (_text, _record, index) => (page - 1) * 10 + index + 1, // 显示序号,从1开始
|
||||
},
|
||||
{
|
||||
title: '系统名称',
|
||||
dataIndex: 'projName',
|
||||
align: 'center',
|
||||
key: 'projName',
|
||||
render: (text) => <div className='ellipsis-text' title={text}>{text}</div>,
|
||||
},
|
||||
|
||||
{
|
||||
title: '类型',
|
||||
dataIndex: 'type',
|
||||
key: 'type',
|
||||
align: 'center',
|
||||
render: (text) => <div >{text=='CORRECTION1'?'一次补正':text=='CORRECTION2'?'二次补正':''}</div>,
|
||||
},
|
||||
{
|
||||
title: '补正类型',
|
||||
dataIndex: 'correctionType',
|
||||
key: 'correctionType',
|
||||
align: 'center',
|
||||
render: (text) => <div >{text=='CODE'?'代码':text=='MANUAL'?'操作手册':''}</div>,
|
||||
},
|
||||
{
|
||||
title: '补正原因',
|
||||
dataIndex: 'correctionReason',
|
||||
key: 'correctionReason',
|
||||
align: 'center',
|
||||
render: (text) => <div className='ellipsis-text' title={text}>{text}</div>,
|
||||
},
|
||||
{
|
||||
title: '申请补正时间',
|
||||
dataIndex: 'gmtCreate',
|
||||
key: 'gmtCreate',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '审核时间',
|
||||
dataIndex: 'gmtReview',
|
||||
key: 'gmtReview',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '审核状态',
|
||||
dataIndex: 'applyStatus',
|
||||
key: 'applyStatus',
|
||||
align: 'center',
|
||||
width: 100,
|
||||
render: (text) => <Tag
|
||||
color={text == "APPROVED" ? '#87d068' : text == "REJECTED" ? '#f50' : text == "PENDING" ? '#2db7f5' : text == "CANCELED" ? '#108ee9' : ''}
|
||||
>{text == "APPROVED" ? '已通过' : text == "REJECTED" ? '未通过' : text == "PENDING" ? '待审核' : text == "CANCELED" ? '已取消' : '未知'}</Tag>,
|
||||
},
|
||||
{
|
||||
title: '审核意见',
|
||||
dataIndex: 'reviewReason',
|
||||
key: 'reviewReason',
|
||||
align: 'center',
|
||||
// width: 150,
|
||||
render: (text) => <div className='ellipsis-text' title={text}>{text ? text : '—'}</div>,
|
||||
},
|
||||
{
|
||||
title: '补正凭证',
|
||||
dataIndex: 'correctionVoucherFileKVs',
|
||||
key: 'correctionVoucherFileKVs',
|
||||
// width: 100,
|
||||
align: 'center',
|
||||
render: (_, record) => (
|
||||
(record.correctionVoucherFileKVs).map((item: any, index: number) => (
|
||||
{
|
||||
title: '类型',
|
||||
dataIndex: 'type',
|
||||
key: 'type',
|
||||
align: 'center',
|
||||
render: (text) => <div >{text == 'CORRECTION1' ? '一次补正' : text == 'CORRECTION2' ? '二次补正' : ''}</div>,
|
||||
},
|
||||
{
|
||||
title: '补正种类',
|
||||
dataIndex: 'correctionType',
|
||||
key: 'correctionType',
|
||||
align: 'center',
|
||||
render: (text) => <div >{text == 'CODE' ? '代码' : text == 'MANUAL' ? '操作手册' : ''}</div>,
|
||||
},
|
||||
{
|
||||
title: '补正原因',
|
||||
dataIndex: 'correctionReason',
|
||||
key: 'correctionReason',
|
||||
align: 'center',
|
||||
render: (text) => <div className='ellipsis-text' title={text}>{text}</div>,
|
||||
},
|
||||
{
|
||||
title: '申请补正时间',
|
||||
dataIndex: 'gmtCreate',
|
||||
key: 'gmtCreate',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '审核时间',
|
||||
dataIndex: 'gmtReview',
|
||||
key: 'gmtReview',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '审核状态',
|
||||
dataIndex: 'applyStatus',
|
||||
key: 'applyStatus',
|
||||
align: 'center',
|
||||
width: 100,
|
||||
render: (text) => <Tag
|
||||
color={text == "APPROVED" ? '#87d068' : text == "REJECTED" ? '#f50' : text == "PENDING" ? '#2db7f5' : text == "CANCELED" ? '#108ee9' : ''}
|
||||
>{text == "APPROVED" ? '已通过' : text == "REJECTED" ? '未通过' : text == "PENDING" ? '待审核' : text == "CANCELED" ? '已取消' : '未知'}</Tag>,
|
||||
},
|
||||
{
|
||||
title: '审核意见',
|
||||
dataIndex: 'reviewReason',
|
||||
key: 'reviewReason',
|
||||
align: 'center',
|
||||
// width: 150,
|
||||
render: (text) => <div className='ellipsis-text' title={text}>{text ? text : '—'}</div>,
|
||||
},
|
||||
{
|
||||
title: '补正凭证',
|
||||
dataIndex: 'correctionVoucherFileKVs',
|
||||
key: 'correctionVoucherFileKVs',
|
||||
// width: 100,
|
||||
align: 'center',
|
||||
render: (_, record) => (
|
||||
(record.correctionVoucherFileKVs).map((item: any, index: number) => (
|
||||
|
||||
<div style={{ cursor: 'pointer', color: 'var(--color-blue)' }}
|
||||
className='ellipsis-text' title={item.value}
|
||||
key={index} onClick={() => {
|
||||
window.open(downloadUrl(item.key, false), '_blank')
|
||||
}}>{item.value}</div>
|
||||
<div style={{ cursor: 'pointer', color: 'var(--color-blue)' }}
|
||||
className='ellipsis-text' title={item.value}
|
||||
key={index} onClick={() => {
|
||||
window.open(downloadUrl(item.key, false), '_blank')
|
||||
}}>{item.value}</div>
|
||||
|
||||
|
||||
))
|
||||
))
|
||||
|
||||
),
|
||||
},
|
||||
];
|
||||
),
|
||||
},
|
||||
|
||||
]
|
||||
//已通过状态
|
||||
: type == 'APPROVED' ?
|
||||
[
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
align: 'center',
|
||||
width: 80,
|
||||
render: (_text, _record, index) => (page - 1) * 10 + index + 1, // 显示序号,从1开始
|
||||
},
|
||||
{
|
||||
title: '系统名称',
|
||||
dataIndex: 'projName',
|
||||
align: 'center',
|
||||
key: 'projName',
|
||||
render: (text) => <div className='ellipsis-text' title={text}>{text}</div>,
|
||||
},
|
||||
|
||||
{
|
||||
title: '类型',
|
||||
dataIndex: 'type',
|
||||
key: 'type',
|
||||
align: 'center',
|
||||
render: (text) => <div >{text == 'CORRECTION1' ? '一次补正' : text == 'CORRECTION2' ? '二次补正' : ''}</div>,
|
||||
},
|
||||
{
|
||||
title: '补正种类',
|
||||
dataIndex: 'correctionType',
|
||||
key: 'correctionType',
|
||||
align: 'center',
|
||||
render: (text) => <div >{text == 'CODE' ? '代码' : text == 'MANUAL' ? '操作手册' : ''}</div>,
|
||||
},
|
||||
{
|
||||
title: '补正原因',
|
||||
dataIndex: 'correctionReason',
|
||||
key: 'correctionReason',
|
||||
align: 'center',
|
||||
render: (text) => <div className='ellipsis-text' title={text}>{text}</div>,
|
||||
},
|
||||
{
|
||||
title: '申请补正时间',
|
||||
dataIndex: 'gmtCreate',
|
||||
key: 'gmtCreate',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '审核时间',
|
||||
dataIndex: 'gmtReview',
|
||||
key: 'gmtReview',
|
||||
align: 'center',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '审核状态',
|
||||
dataIndex: 'applyStatus',
|
||||
key: 'applyStatus',
|
||||
align: 'center',
|
||||
width: 100,
|
||||
render: (text) => <Tag
|
||||
color={text == "APPROVED" ? '#87d068' : text == "REJECTED" ? '#f50' : text == "PENDING" ? '#2db7f5' : text == "CANCELED" ? '#108ee9' : ''}
|
||||
>{text == "APPROVED" ? '已通过' : text == "REJECTED" ? '未通过' : text == "PENDING" ? '待审核' : text == "CANCELED" ? '已取消' : '未知'}</Tag>,
|
||||
},
|
||||
{
|
||||
title: '审核意见',
|
||||
dataIndex: 'reviewReason',
|
||||
key: 'reviewReason',
|
||||
align: 'center',
|
||||
// width: 150,
|
||||
render: (text) => <div className='ellipsis-text' title={text}>{text ? text : '—'}</div>,
|
||||
},
|
||||
{
|
||||
title: '补正凭证',
|
||||
dataIndex: 'correctionVoucherFileKVs',
|
||||
key: 'correctionVoucherFileKVs',
|
||||
// width: 100,
|
||||
align: 'center',
|
||||
render: (_, record) => (
|
||||
(record.correctionVoucherFileKVs).map((item: any, index: number) => (
|
||||
|
||||
<div style={{ cursor: 'pointer', color: 'var(--color-blue)' }}
|
||||
className='ellipsis-text' title={item.value}
|
||||
key={index} onClick={() => {
|
||||
window.open(downloadUrl(item.key, false), '_blank')
|
||||
}}>{item.value}</div>
|
||||
|
||||
|
||||
))
|
||||
|
||||
),
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
width: 100,
|
||||
render: (_, record) => (
|
||||
// {record.name}
|
||||
<div className='refunBtn' onClick={() => {
|
||||
// console.log(record);
|
||||
// setRevokeModal(true)
|
||||
// setprojCorrectionApplyId(record.projCorrectionApplyId)
|
||||
nav(`/proj-edit/${record.projId}`);
|
||||
}}> 查看</div>
|
||||
|
||||
),
|
||||
}
|
||||
|
||||
] : []
|
||||
|
||||
const dispath = useDispatch()
|
||||
const redxuState: any = useSelector(state => state)
|
||||
@ -428,7 +538,7 @@ export default function Correction() {
|
||||
|
||||
}
|
||||
scroll={{ y: height - 150 }}
|
||||
rowKey="projId"
|
||||
rowKey="projCorrectionApplyId"
|
||||
/>
|
||||
</Spin>
|
||||
<div style={{ display: 'flex', justifyContent: 'flex-end', marginTop: 15, width: '100%' }}>
|
||||
|
@ -12,7 +12,7 @@ import { getMenuActive } from '../../util/cache'
|
||||
import { useNavigate } from "react-router-dom";
|
||||
interface DataType {
|
||||
projName: string;
|
||||
projPayment: string;
|
||||
projPayment: number;
|
||||
refundReason: string;
|
||||
gmtCreate: string;
|
||||
refundVoucherFileKVs: any;
|
||||
@ -61,7 +61,8 @@ export default function Refun() {
|
||||
key: 'projPayment',
|
||||
align: 'center',
|
||||
width: 150,
|
||||
render: (text) => <div style={{ color: 'red', fontWeight: 700 }}>{text / 100}</div>,
|
||||
render: (text) => <div style={{ color: 'red', fontWeight: 700 }}>{(text / 100).toFixed(2)}</div>
|
||||
|
||||
},
|
||||
{
|
||||
title: '退款原因',
|
||||
@ -134,7 +135,7 @@ export default function Refun() {
|
||||
key: 'projPayment',
|
||||
align: 'center',
|
||||
width: 150,
|
||||
render: (text) => <div style={{ color: 'red', fontWeight: 700 }}>{text / 100}</div>,
|
||||
render: (text) => <div style={{ color: 'red', fontWeight: 700 }}>{(text / 100).toFixed(2)}</div>,
|
||||
},
|
||||
{
|
||||
title: '退款原因',
|
||||
@ -222,7 +223,7 @@ export default function Refun() {
|
||||
key: 'projPayment',
|
||||
align: 'center',
|
||||
width: 150,
|
||||
render: (text) => <div style={{ color: 'red', fontWeight: 700 }}>{text / 100}</div>,
|
||||
render: (text) => <div style={{ color: 'red', fontWeight: 700 }}>{(text / 100).toFixed(2)}</div>,
|
||||
},
|
||||
{
|
||||
title: '退款原因',
|
||||
@ -410,7 +411,7 @@ export default function Refun() {
|
||||
|
||||
}
|
||||
scroll={{ y: height - 150 }}
|
||||
rowKey="projId"
|
||||
rowKey="projRefundApplyId"
|
||||
/>
|
||||
</Spin>
|
||||
<div style={{ display: 'flex', justifyContent: 'flex-end', marginTop: 15, width: '100%' }}>
|
||||
|
@ -46,6 +46,8 @@ type ProjModType = {
|
||||
}
|
||||
|
||||
export default function ProjEdit() {
|
||||
// 项目状态
|
||||
const [projStatus, setprojStatus] = useState('')
|
||||
const dispath = useDispatch()
|
||||
// 更新所属者表格储存至redux
|
||||
const upBelongArray = () => {
|
||||
@ -340,7 +342,7 @@ export default function ProjEdit() {
|
||||
projMods: data.projMods
|
||||
})
|
||||
|
||||
|
||||
setprojStatus(data.projStatus)
|
||||
// setAiHelperModalOpen(!data.projIntroduction || !data.projDesc)
|
||||
|
||||
}
|
||||
@ -483,7 +485,7 @@ export default function ProjEdit() {
|
||||
})
|
||||
}
|
||||
{
|
||||
isEditStepEdited && isConfigEdited ? (
|
||||
isEditStepEdited && isConfigEdited && projStatus != 'EXPIRED'? (
|
||||
<CardProjJump title="预览系统"
|
||||
desc="点击查看预览系统"
|
||||
canBtnClick={true}
|
||||
|
@ -54,6 +54,8 @@ import ING from '../../static/status/ING.gif'
|
||||
// }
|
||||
// type FileType = Parameters<GetProp<UploadProps, 'beforeUpload'>>[0];
|
||||
export default function ProjEditAll() {
|
||||
// 项目状态
|
||||
const [projStatus, setprojStatus] = useState('')
|
||||
// 进度提示弹窗
|
||||
const [progressModal, setprogressModal] = useState(true)
|
||||
// 当前进度
|
||||
@ -393,7 +395,7 @@ export default function ProjEditAll() {
|
||||
// projMods: data.projMods
|
||||
// })
|
||||
// setAiHelperModalOpen(!data.projIntroduction || !data.projDesc)
|
||||
|
||||
setprojStatus(data.projStatus)
|
||||
}
|
||||
})
|
||||
|
||||
@ -469,7 +471,7 @@ export default function ProjEditAll() {
|
||||
})
|
||||
}
|
||||
{
|
||||
isEditStepEdited && isConfigEdited ? (
|
||||
isEditStepEdited && isConfigEdited && projStatus != 'EXPIRED' ? (
|
||||
<CardProjJump title="预览系统"
|
||||
desc="点击查看预览系统"
|
||||
canBtnClick={true}
|
||||
@ -1121,15 +1123,15 @@ export default function ProjEditAll() {
|
||||
<div style={{
|
||||
width: 600,
|
||||
// marginTop: 20
|
||||
fontSize:18,
|
||||
height:500,
|
||||
display:'flex',
|
||||
alignItems:'center',
|
||||
justifyContent:'center',
|
||||
flexDirection:'column'
|
||||
fontSize: 18,
|
||||
height: 500,
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
flexDirection: 'column'
|
||||
}}>
|
||||
<img src={progress=='PRODUCTION'?PRODUCTION:progress=='SUBMIT_FOR_REVIEW'? SUBMIT:progress=='DONE'? DONE:ING} alt="" width={300}/>
|
||||
<div style={{marginTop:10}}>{progress=='PRODUCTION'?'您申请的软著正在制作中,预计一日内完成':progress=='SUBMIT_FOR_REVIEW'? '您申请的软著已提交国家版权中心,预计60个工作日内下证':progress=='DONE'? '您申请的软著已完成,请在页面证书下载处下载':'您申请的软著等待制作中,预计两日内完成'}</div>
|
||||
<img src={progress == 'PRODUCTION' ? PRODUCTION : progress == 'SUBMIT_FOR_REVIEW' ? SUBMIT : progress == 'DONE' ? DONE : ING} alt="" width={300} />
|
||||
<div style={{ marginTop: 10 }}>{progress == 'PRODUCTION' ? '您申请的软著正在制作中,预计一日内完成' : progress == 'SUBMIT_FOR_REVIEW' ? '您申请的软著已提交国家版权中心,预计60个工作日内下证' : progress == 'DONE' ? '您申请的软著已完成,请在页面证书下载处下载' : '您申请的软著等待制作中,预计两日内完成'}</div>
|
||||
</div>
|
||||
</Modal>
|
||||
</div>
|
||||
|
@ -40,6 +40,8 @@ type ProjModType = {
|
||||
}
|
||||
|
||||
export default function ProjEdit() {
|
||||
// 项目状态
|
||||
const [projStatus, setprojStatus] = useState('')
|
||||
const dispath = useDispatch()
|
||||
// 更新所属者表格储存至redux
|
||||
const upBelongArray = () => {
|
||||
@ -393,7 +395,7 @@ export default function ProjEdit() {
|
||||
onSuccess({ data }) {
|
||||
// const isEdited = data.editSteps[0].editStatus == EditStepEnum.EDITED
|
||||
// && data.editSteps[5].editStatus == EditStepEnum.EDITED;
|
||||
// console.log('嘻嘻', data.projModCount);
|
||||
// console.log('查看项目', data);
|
||||
// if(data.projModCount >= 3){
|
||||
// setCanGenerate(true)
|
||||
// }
|
||||
@ -416,6 +418,7 @@ export default function ProjEdit() {
|
||||
projMods: data.projMods
|
||||
})
|
||||
// getListMods()
|
||||
setprojStatus(data.projStatus)
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -499,7 +502,7 @@ export default function ProjEdit() {
|
||||
})
|
||||
}
|
||||
{
|
||||
isEditStepEdited && isConfigEdited ? (
|
||||
isEditStepEdited && isConfigEdited && projStatus != 'EXPIRED' ? (
|
||||
<CardProjJump title="预览系统"
|
||||
desc="点击查看预览系统"
|
||||
canBtnClick={true}
|
||||
|
Loading…
Reference in New Issue
Block a user