ai-copyright-mobile/src/views/Detail/Detail.jsx
2024-12-16 15:41:12 +08:00

172 lines
5.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// import React from 'react'
import { useEffect, useState } from 'react'
import { useNavigate } from 'react-router-dom'
import { useLocation } from 'react-router-dom'
import './detail.less'
import {
Button,
Loading,
Mask,
Space,
} from 'antd-mobile'
import { GetDownAll, GetDownapply, GetDownmanualPdf,GetDowncode } from '../../request/api'
import pen from '@/static/images/Detail/pen.png'
import center from '@/static/images/Detail/center.png'
import file from '@/static/images/Detail/file.png'
export default function Detail() {
const [loading, setLoading] = useState(false);//是否有加载中
const nav = useNavigate()
const location = useLocation();
const item = location.state;
useEffect(() => {
// 获取token
let token = sessionStorage.getItem('token')
if (!token) {
nav('/login')
}
if (!item) {
// 如果没有接收到item可以导航回列表页或者显示错误信息
nav('/list');
}
// console.log(item);
// console.log(downloadAll(item.projId));
}, [])
return (
<div className='detailBox'>
<div className='formBox'>
<div className='useImg'></div>
<div className='bookimg'></div>
<div className='projName'>
{item.projName}
</div>
<div className='peopleName'>
产权所属者{item.apply.authorName}
</div>
<div className='timeBox'>
<div className='timeImg'>
</div>
<div>
{item.apply.projDevCompleteDate}
</div>
</div>
<div className='downBox'>
<div className='done' onClick={async () => {
setLoading(true)
const res = await GetDownapply(item.projId);
setLoading(false)
// console.log(res);
const blob = new Blob([res]);
let url = window.URL.createObjectURL(blob);
const link = document.createElement("a");
link.href = url;
// console.log(url);
link.download = `申请表.docx`;
link.click();
URL.revokeObjectURL(url);
}}>
<div className='penImge'>
<img src={pen} style={{ width: '100%', height: '100%' }} alt="" />
</div>
<div className='doneName'>申请表</div>
</div>
<div className='done'
onClick={async () => {
setLoading(true)
const res = await GetDownmanualPdf(item.projId);
setLoading(false)
// console.log(res);
const blob = new Blob([res]);
let url = window.URL.createObjectURL(blob);
const link = document.createElement("a");
link.href = url;
// console.log(url);
link.download = `${item.projName}操作手册.pdf`;
link.click();
URL.revokeObjectURL(url);
}}
>
<div className='centerImge'>
<img src={center} style={{ width: '100%', height: '100%' }} alt="" />
</div>
<div className='doneName'>操作手册</div>
</div>
<div className='done'
onClick={async () => {
setLoading(true)
const res = await GetDowncode(item.projId);
setLoading(false)
// console.log(res);
const blob = new Blob([res]);
let url = window.URL.createObjectURL(blob);
const link = document.createElement("a");
link.href = url;
// console.log(url);
link.download = `${item.projName}源代码.zip`;
link.click();
URL.revokeObjectURL(url);
}}
>
<div className='fileImge'>
<img src={file} style={{ width: '100%', height: '100%' }} alt="" />
</div>
<div className='doneName'>源代码</div>
</div>
</div>
<div className='downAllBtn' onClick={async () => {
// window.open(`http://192.168.0.15:7025/copyright/app/proj/download/all/${item.projId}`)
// try {
// setLoading(true)
// const res = await GetDownAll(item.projId);
// setLoading(false)
// console.log(res);
// const blob = new Blob([res]);
// let url = window.URL.createObjectURL(blob);
// const link = document.createElement("a");
// link.href = url;
// console.log(url);
// link.download = `${item.projName}.zip`;
// link.click();
// URL.revokeObjectURL(url);
// } catch (error) {
// console.log(error);
// }
setLoading(true)
const res = await GetDownAll(item.projId);
setLoading(false)
// console.log(res);
const blob = new Blob([res]);
let url = window.URL.createObjectURL(blob);
const link = document.createElement("a");
link.href = url;
// console.log(url);
link.download = `${item.projName}.zip`;
link.click();
URL.revokeObjectURL(url);
}}>
<div className='doneImg'></div>
<div >全部</div>
</div>
</div>
<Button className='detailBtn'
>
使用电脑端打开体验全部功能
</Button>
<Mask visible={loading} color="rgba(0, 0, 0, 0.5)">
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', height: '100vh' }}>
<Space direction="vertical" align="center">
<div style={{ display: 'flex' }}>
<div style={{ color: 'white' }}>
准备下载中
</div>
<Loading color="white" />
</div>
</Space>
</div>
</Mask>
</div>
)
}