下载
This commit is contained in:
parent
de8a4a6c70
commit
339f75db23
@ -1,5 +1,4 @@
|
||||
|
||||
import { appUrl, request } from './request'
|
||||
import request from './request'
|
||||
|
||||
// 获取验证码
|
||||
export const GetCode = (phone) => request.get(`/operator/api/verify/code/send/${phone}`)
|
||||
@ -20,15 +19,14 @@ export const GetCsa = () => request.get('/copyright/app/csa/get')
|
||||
export const GetOwnerList = (params) => request.get('/copyright/app/proj-owner/listpage/self', { params })
|
||||
// 获取联系人列表
|
||||
export const GetContactList = (params) => request.get('/copyright/app/proj-contact/listpage/self', { params })
|
||||
// 返回带 baseURL 的下载网址
|
||||
export const GetDownloadUrl = () => {
|
||||
// 获取 baseURL
|
||||
const baseURL = appUrl;
|
||||
return `${baseURL}/api/contract/management/download/`
|
||||
// 下载全部
|
||||
// export const GetDownAll = (projId) => request.get(`/copyright/app/proj/download/all/${projId}`)
|
||||
export const GetDownAll = (projId) => request.get(`/copyright/app/proj/download/all/${projId}`,{responseType: 'blob'})
|
||||
// 下载申请表
|
||||
export const GetDownapply = (projId) => request.get(`/copyright/app/proj/download/apply/${projId}`,{responseType: 'blob'})
|
||||
|
||||
// 拼接 baseURL 和 path
|
||||
// const downloadUrl = `${baseURL}/copyright/app/proj-contact/listpage/self/${path}`;
|
||||
export const GetDownmanualPdf = (projId) => request.get(`/copyright/app/proj/download/manual/pdf/${projId}`,{responseType: 'blob'})
|
||||
//下载源代码
|
||||
export const GetDowncode = (projId) => request.get(`/copyright/app/proj/download/code-zip/${projId}`,{responseType: 'blob'})
|
||||
|
||||
// 返回生成的下载网址
|
||||
|
||||
};
|
0
src/request/downLoad.js
Normal file
0
src/request/downLoad.js
Normal file
@ -1,10 +1,11 @@
|
||||
import axios from "axios";
|
||||
// export const Axios = axios;
|
||||
const loginUrl = 'http://192.168.0.15:8091'
|
||||
const appUrl = 'http://192.168.0.15:7025'
|
||||
|
||||
|
||||
const request = axios.create({
|
||||
// baseURL: baseUrl,
|
||||
// baseURL: appUrl,
|
||||
timeout: 5000,
|
||||
});
|
||||
request.interceptors.request.use(
|
||||
@ -29,5 +30,5 @@ request.interceptors.response.use(
|
||||
(err) => Promise.reject(err)
|
||||
);
|
||||
|
||||
export { appUrl, request };
|
||||
// export default request
|
||||
// export { request };
|
||||
export default request
|
@ -1,16 +1,21 @@
|
||||
// import React from 'react'
|
||||
import { useEffect } from 'react'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { useNavigate } from 'react-router-dom'
|
||||
import { useLocation } from 'react-router-dom'
|
||||
import './detail.less'
|
||||
import { GetDownloadUrl } from '../../request/api'
|
||||
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;
|
||||
@ -26,7 +31,7 @@ export default function Detail() {
|
||||
|
||||
}
|
||||
console.log(item);
|
||||
console.log(GetDownloadUrl( item.id));
|
||||
// console.log(downloadAll(item.projId));
|
||||
|
||||
}, [])
|
||||
return (
|
||||
@ -48,26 +53,99 @@ export default function Detail() {
|
||||
</div>
|
||||
</div>
|
||||
<div className='downBox'>
|
||||
<div className='done'>
|
||||
<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'>
|
||||
<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'>
|
||||
<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'>
|
||||
<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>
|
||||
@ -76,6 +154,18 @@ export default function Detail() {
|
||||
>
|
||||
使用电脑端打开体验全部功能
|
||||
</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>
|
||||
)
|
||||
}
|
||||
|
@ -100,6 +100,8 @@
|
||||
|
||||
.done {
|
||||
display: flex;
|
||||
// background-color: pink;
|
||||
|
||||
|
||||
.doneName {
|
||||
// background-color: pink;
|
||||
|
@ -84,28 +84,26 @@ export default function Login() {
|
||||
const login = async () => {
|
||||
// 验证code是否为6位数数字正则
|
||||
const reg = /^\d{6}$/;
|
||||
// try {
|
||||
// if (!reg.test(code)) {
|
||||
// Toast.show({
|
||||
// icon: 'fail',
|
||||
// content: '请输入正确的验证码',
|
||||
// })
|
||||
// return
|
||||
// } else {
|
||||
// var res = await DoLogin({ verifyCode: code, phone: phoneNum })
|
||||
// sessionStorage.setItem('token', res.data);
|
||||
// nav('/list')
|
||||
// }
|
||||
// } catch (error) {
|
||||
// Toast.show({
|
||||
// icon: 'fail',
|
||||
// content: error.response.data.msg,
|
||||
// })
|
||||
// }
|
||||
sessionStorage.setItem('token', 'cVJWWXQ1UWpQWTQ1TDZMbEVtTmxiMlJVNkdvTzUwSTNHYzZaK3VTZmF0RTZLVG1LSUFpUzMrSWsvcVRHay9Wb0xCa3g0elJkWGVwSEw2emREeGdEQldpOEt4TDZPVVNQa3FmK09pazUxblA0K2dHWitHUHFnRnVDU21lOGVyLzdyblJpRUpoQlp4Z1l5aXV3aWE1WFlTdkJXeFhCc0JyMlducHlpV1F2L09JdUNRa082dTZ0T0NzbCs4azZGUTZRZUZMWmc3QXJzSG5mMk53SFNJa01FN3pzSUY1WTViQTBVVmp0T1pnQTNBbz0=');
|
||||
// 刷新页面
|
||||
|
||||
try {
|
||||
if (!reg.test(code)) {
|
||||
Toast.show({
|
||||
icon: 'fail',
|
||||
content: '请输入正确的验证码',
|
||||
})
|
||||
return
|
||||
} else {
|
||||
var res = await DoLogin({ verifyCode: code, phone: phoneNum })
|
||||
sessionStorage.setItem('token', res.data);
|
||||
nav('/list')
|
||||
}
|
||||
} catch (error) {
|
||||
Toast.show({
|
||||
icon: 'fail',
|
||||
content: error.response.data.msg,
|
||||
})
|
||||
}
|
||||
// sessionStorage.setItem('token', 'cVJWWXQ1UWpQWTQ1TDZMbEVtTmxiMlJVNkdvTzUwSTNHYzZaK3VTZmF0RTZLVG1LSUFpUzMrSWsvcVRHay9Wb0xCa3g0elJkWGVwSEw2emREeGdEQldpOEt4TDZPVVNQa3FmK09pazUxblA0K2dHWitHUHFnRnVDU21lOGVyLzdyblJpRUpoQlp4Z1l5aXV3aWE1WFlTdkJXeFhCc0JyMlducHlpV1F2L09JdUNRa082dTZ0T0NzbCs4azZGUTZRZUZMWmc3QXJzSG5mMk53SFNJa01FN3pzSUY1WTViQTBVVmp0T1pnQTNBbz0=');
|
||||
// nav('/list')
|
||||
|
||||
}
|
||||
return (
|
||||
|
@ -35,67 +35,13 @@ export default function Use() {
|
||||
const [form] = Form.useForm();
|
||||
const [cascaberShow, setCascaberShow] = useState(false)
|
||||
const onFinish = (values) => {
|
||||
console.log(values);
|
||||
|
||||
createNewOwner(values.name, values.idCardNo, values.provinceCity);
|
||||
setCreateOwner(false);
|
||||
|
||||
};
|
||||
// const [cityvisible, setcityvisible] = useState(false);
|
||||
// const [selectedProvinceCity, setSelectedProvinceCity] = useState([]);
|
||||
|
||||
// const onPickerConfirm = (values) => {
|
||||
// console.log(values);
|
||||
|
||||
// const provinceCode = values[0];
|
||||
// const cityCode = values[1];
|
||||
|
||||
// const province = areaData['86'][provinceCode];
|
||||
|
||||
|
||||
// const city = areaData[provinceCode][cityCode];
|
||||
|
||||
// setSelectedProvinceCity([province, city]);
|
||||
// setcityvisible(false);
|
||||
// };
|
||||
// const [cityvisible, setCityvisible] = useState(false);
|
||||
// const [selectedProvinceCity, setSelectedProvinceCity] = useState([]);
|
||||
// const [provinceData, setProvinceData] = useState([]);
|
||||
|
||||
// // 初始化省份数据
|
||||
// useEffect(() => {
|
||||
// const provinces = Object.keys(areaData['86']).map(provinceCode => ({
|
||||
// label: areaData['86'][provinceCode],
|
||||
// value: provinceCode,
|
||||
// }));
|
||||
|
||||
|
||||
// setProvinceData([provinces, []]);
|
||||
// }, []);
|
||||
|
||||
// // 根据选择的省份更新市的数据
|
||||
// useEffect(() => {
|
||||
// if (selectedProvinceCity.length > 0) {
|
||||
// const provinceCode = selectedProvinceCity[0];
|
||||
// const cities = Object.keys(areaData[provinceCode] || {}).map(cityCode => ({
|
||||
// label: areaData[provinceCode][cityCode],
|
||||
// value: cityCode,
|
||||
// }));
|
||||
|
||||
// setProvinceData([provinceData[0], cities]);
|
||||
// }
|
||||
// }, [selectedProvinceCity]);
|
||||
|
||||
// const onPickerConfirm = (values) => {
|
||||
// const provinceCode = values[0];
|
||||
// const cityCode = values[1];
|
||||
|
||||
// const province = areaData['86'][provinceCode];
|
||||
// const city = areaData[provinceCode][cityCode];
|
||||
|
||||
// setSelectedProvinceCity([provinceCode, cityCode]);
|
||||
// setCityvisible(false);
|
||||
// };
|
||||
|
||||
|
||||
// const [form] = Form.useForm();
|
||||
const nav = useNavigate()
|
||||
const [name, setName] = useState('') //系统全称
|
||||
const [nameToast, setNameTost] = useState(false) //系统全称提示
|
||||
@ -263,6 +209,7 @@ export default function Use() {
|
||||
content: '创建成功',
|
||||
})
|
||||
getOwnerList(1)
|
||||
setCreateOwner(false);
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
@ -507,7 +454,9 @@ export default function Use() {
|
||||
onClick={() => {
|
||||
setCreateOwner(true)
|
||||
form.setFieldsValue({
|
||||
provinceCity: ''
|
||||
provinceCity: '',
|
||||
name: '',
|
||||
idCardNo: '',
|
||||
});
|
||||
}}
|
||||
>新建所属者</Button>
|
||||
|
@ -1 +1 @@
|
||||
{"version":3,"sources":["../Detail/detail.less"],"names":[],"mappings":"AAAA;EACI,YAAA;EACA,aAAA;EACA,uDAAA;EAGA,0BAAA;EACA,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,uBAAA;;AAVJ,UAYI;EACI,gBAAA;EACA,YAAA;EACA,aAAA;EACA,yBAAA;EACA,kBAAA;EACA,eAAA;EACA,sBAAA;EACA,aAAA;EACA,sBAAA;EACA,mBAAA;;AAtBR,UAYI,SAYI;EACI,YAAA;EACA,aAAA;EACA,yDAAA;EAEA,0BAAA;EACA,kBAAA;EACA,WAAA;EACA,WAAA;;AAhCZ,UAYI,SAuBI;EACI,WAAA;EACA,YAAA;EACA,gBAAA;EACA,0DAAA;EAEA,0BAAA;;AAzCZ,UAYI,SAgCI;EACI,wBAAA;EACA,WAAA;EAEA,iBAAA;EACA,eAAA;EACA,cAAA;EACA,gBAAA;EAEA,mBAAA;EAEA,uBAAA;EACA,kBAAA;EACA,gBAAA;;AAzDZ,UAYI,SAgDI;EAGI,eAAA;EACA,cAAA;EAEA,WAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,kBAAA;EACA,gBAAA;;AAvEZ,UAYI,SA8DI;EACI,aAAA;EACA,mBAAA;EACA,eAAA;EACA,cAAA;EACA,gBAAA;;AA/EZ,UAYI,SA8DI,SAOI;EAEI,WAAA;EACA,WAAA;EAEA,0DAAA;EAEA,0BAAA;EACA,iBAAA;;AAzFhB,UAYI,SAiFI;EACI,aAAA;EACA,WAAA;EAEA,6BAAA;EACA,gBAAA;;AAlGZ,UAYI,SAiFI,SAOI;EACI,aAAA;;AArGhB,UAYI,SAiFI,SAOI,MAGI;EAEI,eAAA;;AAzGpB,UAYI,SAiFI,SAOI,MASI;EACI,WAAA;EACA,YAAA;EACA,iBAAA;;AAhHpB,UAYI,SAiFI,SAOI,MAgBI;EACI,WAAA;EACA,YAAA;EACA,iBAAA;;AAvHpB,UAYI,SAiFI,SAOI,MAuBI;EACI,WAAA;EACA,YAAA;EACA,iBAAA;;AA9HpB,UAYI,SAwHI;EACI,WAAA;EACA,YAAA;EACA,YAAY,gDAAZ;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,eAAA;EACA,cAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;;AA/IZ,UAYI,SAwHI,YAaI;EACI,WAAA;EACA,YAAA;EACA,0DAAA;EAEA,0BAAA;EACA,kBAAA;;AAvJhB,UA8JI;EACI,YAAA;EACA,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,iBAAA;EACA,eAAA;EACA,cAAA;EACA,wBAAA;EACA,gBAAA"}
|
||||
{"version":3,"sources":["../Detail/detail.less"],"names":[],"mappings":"AAAA;EACI,YAAA;EACA,aAAA;EACA,uDAAA;EAGA,0BAAA;EACA,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,uBAAA;;AAVJ,UAYI;EACI,gBAAA;EACA,YAAA;EACA,aAAA;EACA,yBAAA;EACA,kBAAA;EACA,eAAA;EACA,sBAAA;EACA,aAAA;EACA,sBAAA;EACA,mBAAA;;AAtBR,UAYI,SAYI;EACI,YAAA;EACA,aAAA;EACA,yDAAA;EAEA,0BAAA;EACA,kBAAA;EACA,WAAA;EACA,WAAA;;AAhCZ,UAYI,SAuBI;EACI,WAAA;EACA,YAAA;EACA,gBAAA;EACA,0DAAA;EAEA,0BAAA;;AAzCZ,UAYI,SAgCI;EACI,wBAAA;EACA,WAAA;EAEA,iBAAA;EACA,eAAA;EACA,cAAA;EACA,gBAAA;EAEA,mBAAA;EAEA,uBAAA;EACA,kBAAA;EACA,gBAAA;;AAzDZ,UAYI,SAgDI;EAGI,eAAA;EACA,cAAA;EAEA,WAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,kBAAA;EACA,gBAAA;;AAvEZ,UAYI,SA8DI;EACI,aAAA;EACA,mBAAA;EACA,eAAA;EACA,cAAA;EACA,gBAAA;;AA/EZ,UAYI,SA8DI,SAOI;EAEI,WAAA;EACA,WAAA;EAEA,0DAAA;EAEA,0BAAA;EACA,iBAAA;;AAzFhB,UAYI,SAiFI;EACI,aAAA;EACA,WAAA;EAEA,6BAAA;EACA,gBAAA;;AAlGZ,UAYI,SAiFI,SAOI;EACI,aAAA;;AArGhB,UAYI,SAiFI,SAOI,MAKI;EAEI,eAAA;;AA3GpB,UAYI,SAiFI,SAOI,MAWI;EACI,WAAA;EACA,YAAA;EACA,iBAAA;;AAlHpB,UAYI,SAiFI,SAOI,MAkBI;EACI,WAAA;EACA,YAAA;EACA,iBAAA;;AAzHpB,UAYI,SAiFI,SAOI,MAyBI;EACI,WAAA;EACA,YAAA;EACA,iBAAA;;AAhIpB,UAYI,SA0HI;EACI,WAAA;EACA,YAAA;EACA,YAAY,gDAAZ;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,eAAA;EACA,cAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;;AAjJZ,UAYI,SA0HI,YAaI;EACI,WAAA;EACA,YAAA;EACA,0DAAA;EAEA,0BAAA;EACA,kBAAA;;AAzJhB,UAgKI;EACI,YAAA;EACA,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,iBAAA;EACA,eAAA;EACA,cAAA;EACA,wBAAA;EACA,gBAAA"}
|
Loading…
Reference in New Issue
Block a user