全托管退款

This commit is contained in:
lyp 2025-06-23 15:07:40 +08:00
parent 6f2b8515ac
commit 1c87154b39

View File

@ -9,6 +9,7 @@ import {
// GetProp, // GetProp,
UploadProps, UploadProps,
} from "antd"; } from "antd";
import { GlobalDispatchContext, reloadUser } from "../../context/GlobalContext.ts";
import { UploadOutlined } from '@ant-design/icons'; import { UploadOutlined } from '@ant-design/icons';
import TextArea from "antd/es/input/TextArea"; import TextArea from "antd/es/input/TextArea";
import StepProjEdit from "../../components/step/StepProjEdit.tsx"; import StepProjEdit from "../../components/step/StepProjEdit.tsx";
@ -18,7 +19,7 @@ import CardProjLoading from "../../components/card/CardProjLoading.tsx";
import CardProjResult from "../../components/card/CardProjResult.tsx"; import CardProjResult from "../../components/card/CardProjResult.tsx";
import CardProjDownload from "../../components/card/CardProjDownload.tsx"; import CardProjDownload from "../../components/card/CardProjDownload.tsx";
import CardProjJump from "../../components/card/CardProjJump.tsx"; import CardProjJump from "../../components/card/CardProjJump.tsx";
import { useEffect, useState } from "react"; import { useEffect, useState, useContext } from "react";
import { Axios, get, put, post, uploadFileUrl, downloadUrl } from "../../util/AjaxUtils.ts"; import { Axios, get, put, post, uploadFileUrl, downloadUrl } from "../../util/AjaxUtils.ts";
import { EditStepEnum, IProjEdit } from "../../interfaces/card/ICardProj.ts"; import { EditStepEnum, IProjEdit } from "../../interfaces/card/ICardProj.ts";
import { MIN_MOD_SIZE } from "./edit/ProjConfigModList.tsx"; import { MIN_MOD_SIZE } from "./edit/ProjConfigModList.tsx";
@ -53,7 +54,9 @@ import ING from '../../static/status/ING.gif'
// desc: string // desc: string
// } // }
// type FileType = Parameters<GetProp<UploadProps, 'beforeUpload'>>[0]; // type FileType = Parameters<GetProp<UploadProps, 'beforeUpload'>>[0];
import { useDispatch } from 'react-redux'
export default function ProjEditAll() { export default function ProjEditAll() {
const globalDispatchContext = useContext(GlobalDispatchContext);
// 是否显示下载安装包模块 // 是否显示下载安装包模块
const [showPkg, setShowPkg] = useState(false) const [showPkg, setShowPkg] = useState(false)
// 是否显示下载演示视频 // 是否显示下载演示视频
@ -62,6 +65,29 @@ export default function ProjEditAll() {
const [pkgStatus, setPkgStatus] = useState('') const [pkgStatus, setPkgStatus] = useState('')
// 视频模块生成状态 // 视频模块生成状态
const [videoStatus, setVideoStatus] = useState('') const [videoStatus, setVideoStatus] = useState('')
const dispath = useDispatch()
// 获取套餐包数量
const getMyPackNum = () => {
get<any>({
messageApi,
url: `/api/proj/servicepkg/packageorder/count/self`,
onBefore() {
},
onSuccess({ data }) {
dispath({
type: 'upPackNum',
val: {
ALL: data.ALL,
MATERIAL: data.MATERIAL,
}
})
},
onFinally() {
}
})
}
// 点击刷新页面数据获取安装包状态 // 点击刷新页面数据获取安装包状态
const upData = () => { const upData = () => {
get<any>({ get<any>({
@ -163,7 +189,7 @@ export default function ProjEditAll() {
maxCount: 6,//上传限制最多6个 maxCount: 6,//上传限制最多6个
action: uploadFileUrl(), action: uploadFileUrl(),
headers: { headers: {
'Auth': `Bearer ${token}`, 'Auth': `Bearer ${token}`,
}, },
// headers={{'X-USER-ID': DevUserId}} // headers={{'X-USER-ID': DevUserId}}
@ -437,14 +463,17 @@ export default function ProjEditAll() {
setConfigArray(configArray); setConfigArray(configArray);
setIsConfigEdited(isConfig); setIsConfigEdited(isConfig);
} }
const [claimer, setClaimer] = useState<any>(); //认领人
// 退款弹窗显示
const [refundModal, setRefundModal] = useState(false)
const renderData = () => { const renderData = () => {
get<any>({ get<any>({
messageApi: messageApi, messageApi: messageApi,
// url: `/api/proj/get/${pathParams.projId}`, // url: `/api/proj/get/${pathParams.projId}`,
url: `/api/proj/claim/get/${pathParams.projId}`, url: `/api/proj/claim/get/${pathParams.projId}`,
onSuccess({ data }) { onSuccess({ data }) {
// console.log('嘻嘻', data); // console.log('详情', data);
setClaimer(data.claimer);
setcertificate(data.certificates) setcertificate(data.certificates)
setprogress(data.progress) setprogress(data.progress)
// console.log('状态判断', data.pay.chargeAdditionals); // console.log('状态判断', data.pay.chargeAdditionals);
@ -879,6 +908,21 @@ export default function ProjEditAll() {
</div> </div>
<div className="btn-container"> <div className="btn-container">
<Button size="large" style={{
width: '200px',
height: '40px',
fontSize: '16px',
backgroundColor: 'white',
display: claimer ? 'none' : 'unset',
background: 'red',
color: 'white',
marginRight: 10
// color: '#A0A0A0',
// border: 'none',
}} onClick={() => {
console.log(claimer);
setRefundModal(true)
}}>退</Button>
<Button size="large" style={{ <Button size="large" style={{
width: '200px', width: '200px',
height: '40px', height: '40px',
@ -1288,6 +1332,64 @@ export default function ProjEditAll() {
<div style={{ marginTop: 10 }}>{progress == 'PRODUCTION' ? '您申请的软著正在制作中,预计一日内完成' : progress == 'SUBMIT_FOR_REVIEW' ? '您申请的软著已提交国家版权中心,预计60个工作日内下证' : progress == 'DONE' ? '您申请的软著已完成,请在页面证书下载处下载' : '您申请的软著等待制作中,预计两日内完成'}</div> <div style={{ marginTop: 10 }}>{progress == 'PRODUCTION' ? '您申请的软著正在制作中,预计一日内完成' : progress == 'SUBMIT_FOR_REVIEW' ? '您申请的软著已提交国家版权中心,预计60个工作日内下证' : progress == 'DONE' ? '您申请的软著已完成,请在页面证书下载处下载' : '您申请的软著等待制作中,预计两日内完成'}</div>
</div> </div>
</Modal> </Modal>
< Modal
centered
title="提示"
open={refundModal}
destroyOnClose={true}
onCancel={() => {
setRefundModal(false);
}
}
// 确定按钮为红色,显示文字为确认
okButtonProps={{
style: {
backgroundColor: '#ff4d4f',
borderColor: '#ff4d4f',
color: '#fff',
},
}}
okText="确认"
onOk={() => {
// refund()
post<any>({
messageApi,
url: `/api/proj/refund/apply/save-full-proj/${pathParams.projId}`,
// body: {
// projId: refunProjId
// },
onBefore() {
},
onSuccess() {
reloadUser(messageApi, globalDispatchContext).then(() => {
// nav(-1)
// messageApi.success('退款成功');
message.success('退款成功');
// setTimeout(() => {
setRefundModal(false);
nav(-1)
getMyPackNum()
// }, 500);
// setShowBuyPicIng(true);
// setBuyModalShow(false);
// setShowBuyPicAgain(false)
});
},
// onError(error) {
// messageApi.error(error.message);
// },
onFinally() {
setRefundModal(false);
}
})
}}
cancelText="取消"
>
退?
</ Modal>
</div> </div>
) )
} }