app电子软著
This commit is contained in:
parent
2a6d12ed78
commit
06e26bc366
@ -134,7 +134,8 @@ export const runSystemList = () => aiShopRequest.get(`/aishop/api/data/listbypar
|
|||||||
export const bigClassList = () => aiShopRequest.get(`/aishop/api/data/listbyparentid/8abb5b58-83d2-465c-b164-a189efee28c1`)
|
export const bigClassList = () => aiShopRequest.get(`/aishop/api/data/listbyparentid/8abb5b58-83d2-465c-b164-a189efee28c1`)
|
||||||
// 获取小类
|
// 获取小类
|
||||||
export const twoClass = (id:string) => aiShopRequest.get(`/aishop/api/data/listbyparentid/${id}`)
|
export const twoClass = (id:string) => aiShopRequest.get(`/aishop/api/data/listbyparentid/${id}`)
|
||||||
|
// 通过类得id获取内容
|
||||||
|
export const getContent = (id:string) => aiShopRequest.get(`/aishop/api/data/get/${id}`)
|
||||||
// 下单购买APP电子软著
|
// 下单购买APP电子软著
|
||||||
export const buyAppGoods = (orderMoneyId:string) => aiShopRequest.post(`/aishop/api/apporder/pay/${orderMoneyId}`)
|
export const buyAppGoods = (orderMoneyId:string) => aiShopRequest.post(`/aishop/api/apporder/pay/${orderMoneyId}`)
|
||||||
// 获取我的app电子软著订单列表
|
// 获取我的app电子软著订单列表
|
||||||
@ -149,7 +150,8 @@ export const agreementWord = (appOrderId:string,appName:string,versionName:strin
|
|||||||
export const sourceCodeWord = (appOrderId:string,) => aiShopRequest.get(`aishop/api/apporder/create-file/SHOP02/${appOrderId}?name=源码文档示例`)
|
export const sourceCodeWord = (appOrderId:string,) => aiShopRequest.get(`aishop/api/apporder/create-file/SHOP02/${appOrderId}?name=源码文档示例`)
|
||||||
// 生成软件文档word文件
|
// 生成软件文档word文件
|
||||||
export const softwareDocumentWord = (appOrderId:string,) => aiShopRequest.get(`aishop/api/apporder/create-file/SHOP03/${appOrderId}?name=软件文档示例`)
|
export const softwareDocumentWord = (appOrderId:string,) => aiShopRequest.get(`aishop/api/apporder/create-file/SHOP03/${appOrderId}?name=软件文档示例`)
|
||||||
|
// 补充资料
|
||||||
|
export const supplementAppData = (params:any) => aiShopRequest.post(`/aishop/api/correction/save-app`, params)
|
||||||
// 获取文件详细信息
|
// 获取文件详细信息
|
||||||
export const fileDetail = (fileId:string) => aiShopRequest.get(`aishop/api/file/list?ids=${fileId}`)
|
export const fileDetail = (fileId:string) => aiShopRequest.get(`aishop/api/file/list?ids=${fileId}`)
|
||||||
// 第一步 企业认证
|
// 第一步 企业认证
|
||||||
@ -158,5 +160,7 @@ export const companyAuth = (appOrderId:any,params:any) => aiShopRequest.post(`ai
|
|||||||
export const softwareInfo = (appOrderId:any,params:any) => aiShopRequest.post(`aishop/api/apporder/update/2/${appOrderId}`,params)
|
export const softwareInfo = (appOrderId:any,params:any) => aiShopRequest.post(`aishop/api/apporder/update/2/${appOrderId}`,params)
|
||||||
// 第三步 上传鉴别材料
|
// 第三步 上传鉴别材料
|
||||||
export const uploadMaterial = (appOrderId:any,params:any) => aiShopRequest.post(`/aishop/api/apporder/update/3/${appOrderId}`,params)
|
export const uploadMaterial = (appOrderId:any,params:any) => aiShopRequest.post(`/aishop/api/apporder/update/3/${appOrderId}`,params)
|
||||||
|
// 第四步 提交审核
|
||||||
|
export const submitapp = (appOrderId:any) => aiShopRequest.post(`/aishop/api/apporder/update/sub-check/${appOrderId}`)
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
@ -35,12 +35,12 @@ export default function AppEdit() {
|
|||||||
const getRunSystemList = async () => {
|
const getRunSystemList = async () => {
|
||||||
try {
|
try {
|
||||||
const res: any = await runSystemList();
|
const res: any = await runSystemList();
|
||||||
console.log('运行系统选项', res.map((item: any) => {
|
// console.log('运行系统选项', res.map((item: any) => {
|
||||||
return {
|
// return {
|
||||||
label: item.dataName,
|
// label: item.dataName,
|
||||||
value: item.dataName,
|
// value: item.dataName,
|
||||||
}
|
// }
|
||||||
}));
|
// }));
|
||||||
setSystemList(res.map((item: any) => {
|
setSystemList(res.map((item: any) => {
|
||||||
return {
|
return {
|
||||||
label: item.dataName,
|
label: item.dataName,
|
||||||
@ -123,6 +123,7 @@ export default function AppEdit() {
|
|||||||
companyPhoto: '', // 企业照片
|
companyPhoto: '', // 企业照片
|
||||||
companyAuth: '',//授权书
|
companyAuth: '',//授权书
|
||||||
});
|
});
|
||||||
|
const [checkStatus, setCheckStatus] = useState<any>('') //审核状态
|
||||||
// 软件基本信息
|
// 软件基本信息
|
||||||
const [appInfo, setAppInfo] = useState<any>({
|
const [appInfo, setAppInfo] = useState<any>({
|
||||||
appName: '', // 项目名称
|
appName: '', // 项目名称
|
||||||
@ -131,7 +132,9 @@ export default function AppEdit() {
|
|||||||
packageName: '', // 包名APPID
|
packageName: '', // 包名APPID
|
||||||
systemName: '', // 运行系统
|
systemName: '', // 运行系统
|
||||||
bigClassify: '', // 软件分类(大类)
|
bigClassify: '', // 软件分类(大类)
|
||||||
|
// bigClassifyName: '',
|
||||||
subClassify: '', // 软件分类(小类)
|
subClassify: '', // 软件分类(小类)
|
||||||
|
// subClassifyName: '',
|
||||||
developWay: '', // 开发方式
|
developWay: '', // 开发方式
|
||||||
completeTime: '', // 开发完成时期
|
completeTime: '', // 开发完成时期
|
||||||
projOwnerName: '',//著作权人姓名
|
projOwnerName: '',//著作权人姓名
|
||||||
@ -139,11 +142,13 @@ export default function AppEdit() {
|
|||||||
projOwnerId: '',//著作权人信息ID
|
projOwnerId: '',//著作权人信息ID
|
||||||
getFile: '',//获取文件
|
getFile: '',//获取文件
|
||||||
})
|
})
|
||||||
|
|
||||||
// 材料信息
|
// 材料信息
|
||||||
const [filesInfo, setFilesInfo] = useState<any>({
|
const [filesInfo, setFilesInfo] = useState<any>({
|
||||||
sourceCodeDocFile: '',//源码
|
sourceCodeDocFile: '',//源码
|
||||||
softwareDocFile: '',//软件
|
softwareDocFile: '',//软件
|
||||||
})
|
})
|
||||||
|
const [checkRemark, setCheckRemark] = useState('') //未通过原因
|
||||||
// 文件想想请
|
// 文件想想请
|
||||||
// const [fileList, setFileList] = useState<any[]>([]);
|
// const [fileList, setFileList] = useState<any[]>([]);
|
||||||
// 获取详情
|
// 获取详情
|
||||||
@ -152,7 +157,7 @@ export default function AppEdit() {
|
|||||||
setLoading(true)
|
setLoading(true)
|
||||||
|
|
||||||
const res: any = await appOrderDetail(appOrderId);
|
const res: any = await appOrderDetail(appOrderId);
|
||||||
console.log('详情', res);
|
// console.log('详情', res);
|
||||||
setCompanyInfo({
|
setCompanyInfo({
|
||||||
companyName: res.companyName, // 企业名称
|
companyName: res.companyName, // 企业名称
|
||||||
companyNumber: res.companyNumber, // 企业统一社会信用代码
|
companyNumber: res.companyNumber, // 企业统一社会信用代码
|
||||||
@ -173,12 +178,16 @@ export default function AppEdit() {
|
|||||||
projOwnerIdentity: res.projOwnerIdentity,//著作权人证件号
|
projOwnerIdentity: res.projOwnerIdentity,//著作权人证件号
|
||||||
projOwnerId: res.projOwnerId,//著作权人信息ID
|
projOwnerId: res.projOwnerId,//著作权人信息ID
|
||||||
getFile: res.getFile,//获取文件
|
getFile: res.getFile,//获取文件
|
||||||
|
// bigClassifyName: res.bigClassifyName,
|
||||||
|
// subClassifyName: res.subClassifyName,
|
||||||
})
|
})
|
||||||
setFilesInfo({
|
setFilesInfo({
|
||||||
sourceCodeDocFile: res.sourceCodeDocFile,//源码
|
sourceCodeDocFile: res.sourceCodeDocFile,//源码
|
||||||
softwareDocFile: res.softwareDocFile,//软件
|
softwareDocFile: res.softwareDocFile,//软件
|
||||||
})
|
})
|
||||||
setEditProcess(Number(res.appOrderProgress) + 1)
|
setEditProcess(Number(res.appOrderProgress) + 1)
|
||||||
|
setCheckStatus(res.checkStatus)
|
||||||
|
setCheckRemark(res.checkRemark)
|
||||||
// const fileres: any = await fileDetail(res.getFile)
|
// const fileres: any = await fileDetail(res.getFile)
|
||||||
// console.log('文件详情', fileres);
|
// console.log('文件详情', fileres);
|
||||||
|
|
||||||
@ -393,6 +402,10 @@ export default function AppEdit() {
|
|||||||
}
|
}
|
||||||
}></EditAppFunction> */}
|
}></EditAppFunction> */}
|
||||||
<AppInfo
|
<AppInfo
|
||||||
|
checkStatus={checkStatus}
|
||||||
|
setCheckStatus={(value:string)=>{
|
||||||
|
setCheckStatus(value)
|
||||||
|
}}
|
||||||
appOrderId={appOrderId}
|
appOrderId={appOrderId}
|
||||||
companyInfo={companyInfo}
|
companyInfo={companyInfo}
|
||||||
appInfo={appInfo}
|
appInfo={appInfo}
|
||||||
@ -401,7 +414,9 @@ export default function AppEdit() {
|
|||||||
(num: number) => {
|
(num: number) => {
|
||||||
setEditProcess(num)
|
setEditProcess(num)
|
||||||
}
|
}
|
||||||
}></AppInfo>
|
}
|
||||||
|
checkRemark={checkRemark}
|
||||||
|
></AppInfo>
|
||||||
</div>
|
</div>
|
||||||
{/* <div style={{
|
{/* <div style={{
|
||||||
display: editProcess == 5 ? 'block' : 'none'
|
display: editProcess == 5 ? 'block' : 'none'
|
||||||
|
@ -7,9 +7,12 @@ import {
|
|||||||
// Spin,
|
// Spin,
|
||||||
message,
|
message,
|
||||||
Spin,
|
Spin,
|
||||||
Table
|
Table,
|
||||||
|
Modal
|
||||||
} from 'antd';
|
} from 'antd';
|
||||||
|
import File from './components/File/File'
|
||||||
import { appOrderList } from '../../request/api'
|
import { appOrderList } from '../../request/api'
|
||||||
|
import { showImage } from '../../request/request'
|
||||||
import './app-election.css'
|
import './app-election.css'
|
||||||
import nothingImg from '../../static/appimgs/nothing.png'
|
import nothingImg from '../../static/appimgs/nothing.png'
|
||||||
import { useLocation } from 'react-router-dom';
|
import { useLocation } from 'react-router-dom';
|
||||||
@ -23,12 +26,17 @@ interface DataType {
|
|||||||
gmtCreate: string;
|
gmtCreate: string;
|
||||||
bigClassifyName: string; //软件分类(大类)
|
bigClassifyName: string; //软件分类(大类)
|
||||||
subClassifyName: string; //软件分类(子类)
|
subClassifyName: string; //软件分类(子类)
|
||||||
|
checkRemark: string; //未通过原因
|
||||||
}
|
}
|
||||||
export default function AppElectron() {
|
export default function AppElectron() {
|
||||||
|
const [fileModal, setFileModal] = useState(false) //补充资料弹窗
|
||||||
|
const [appOrderId, setAppOrderId] = useState('') //订单id
|
||||||
const nav = useNavigate();
|
const nav = useNavigate();
|
||||||
const dispath = useDispatch()
|
const dispath = useDispatch()
|
||||||
const redxuState: any = useSelector(state => state)
|
const redxuState: any = useSelector(state => state)
|
||||||
const data = redxuState.appGoodsListData;
|
const data = redxuState.appGoodsListData;
|
||||||
|
const [checkRemarkModal, setCheckRemarkModal] = useState(false) //未通过原因弹窗
|
||||||
|
const [checkRemark, setCheckRemark] = useState('') //未通过原因
|
||||||
const columns: TableProps<DataType>['columns'] = [
|
const columns: TableProps<DataType>['columns'] = [
|
||||||
{
|
{
|
||||||
title: '序号',
|
title: '序号',
|
||||||
@ -68,7 +76,7 @@ export default function AppElectron() {
|
|||||||
},
|
},
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<span>
|
<span>
|
||||||
{text ? ` ${record.bigClassifyName} / ${record.subClassifyName}` : '未完善'}
|
{text ? ` ${record.bigClassifyName} - ${record.subClassifyName}` : '未完善'}
|
||||||
</span>
|
</span>
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
@ -97,9 +105,35 @@ export default function AppElectron() {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
key: 'appOrderId',
|
key: 'appOrderId',
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (text) => (
|
render: (text, record) => (
|
||||||
<span>
|
<span>
|
||||||
{text == '1' ? '待审核' : text == '2' ? '通过' : text == '0' ? '未通过' : '未提交'}
|
{text == '1' ?
|
||||||
|
<span style={{
|
||||||
|
color: 'skyblue',
|
||||||
|
}}>待审核</span>
|
||||||
|
: text == '2' ?
|
||||||
|
<span
|
||||||
|
style={{
|
||||||
|
color: 'green',
|
||||||
|
}}
|
||||||
|
>通过</span>
|
||||||
|
: text == '0' ?
|
||||||
|
<span
|
||||||
|
style={{
|
||||||
|
color: 'red',
|
||||||
|
cursor: 'pointer'
|
||||||
|
}}
|
||||||
|
title='点击查看原因'
|
||||||
|
onClick={() => {
|
||||||
|
setCheckRemark(record.checkRemark)
|
||||||
|
setCheckRemarkModal(true)
|
||||||
|
}}
|
||||||
|
>未通过</span>
|
||||||
|
:
|
||||||
|
<span style={{
|
||||||
|
color: 'rgb(122 126 130)',
|
||||||
|
}}> 未提交</span>
|
||||||
|
}
|
||||||
</span>
|
</span>
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
@ -108,10 +142,10 @@ export default function AppElectron() {
|
|||||||
dataIndex: 'appOrderStatus',
|
dataIndex: 'appOrderStatus',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
key: 'appOrderId',
|
key: 'appOrderId',
|
||||||
width: 100,
|
width: 150,
|
||||||
render: (text) => (
|
render: (text) => (
|
||||||
<span>
|
<span>
|
||||||
{text == '1' ? '未付款' : text == '2' ? '资料填写中' : text == '3' ? '资料审核中' : text == '4' ? '下线申请中' : text == '5' ? '已下证' : '未知'}
|
{text == '1' ? '未付款' : text == '2' ? '资料填写中' : text == '3' ? '资料审核中' : text == '4' ? '线下申请中' : text == '5' ? '已下证' : '未知'}
|
||||||
</span>
|
</span>
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
@ -121,10 +155,14 @@ export default function AppElectron() {
|
|||||||
// dataIndex: 'contractManagementId',
|
// dataIndex: 'contractManagementId',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
key: 'appOrderId',
|
key: 'appOrderId',
|
||||||
width: 200,
|
width: 150,
|
||||||
// bordeLeft: true,
|
// bordeLeft: true,
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
render: (record) => (
|
render: (record) => (
|
||||||
|
<div style={{
|
||||||
|
display: 'flex', justifyContent: 'center', alignItems: 'center',
|
||||||
|
}}>
|
||||||
|
|
||||||
<div style={{
|
<div style={{
|
||||||
cursor: 'pointer',
|
cursor: 'pointer',
|
||||||
color: '#007FFF',
|
color: '#007FFF',
|
||||||
@ -132,10 +170,64 @@ export default function AppElectron() {
|
|||||||
|
|
||||||
}} onClick={() => {
|
}} onClick={() => {
|
||||||
nav(`/app-edit/${record.appOrderId}`)
|
nav(`/app-edit/${record.appOrderId}`)
|
||||||
|
// console.log(record.checkStatus);
|
||||||
|
|
||||||
|
|
||||||
|
}}>{record.checkStatus == '' ? '编辑' : record.checkStatus == '0' ? '修改' : '查看'}</div>
|
||||||
|
<div style={{
|
||||||
|
marginLeft: 10,
|
||||||
|
cursor: 'pointer',
|
||||||
|
// background: 'red',
|
||||||
|
color: '#007FFF',
|
||||||
|
position: 'relative',
|
||||||
|
display: record.waitCorrectionCount > 0 && record.appOrderStatus != '5' ? 'unset' : 'none',
|
||||||
|
|
||||||
|
}}
|
||||||
|
onClick={() => {
|
||||||
|
setFileModal(true)
|
||||||
// console.log(record);
|
// console.log(record);
|
||||||
|
setAppOrderId(record.appOrderId)
|
||||||
|
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
资料补充
|
||||||
|
<div style={{
|
||||||
|
|
||||||
}}>编辑</div>
|
position: 'absolute',
|
||||||
|
top: '-10px',
|
||||||
|
right: '-10px',
|
||||||
|
// fontSize:'16px',
|
||||||
|
background: 'red',
|
||||||
|
color: '#fff',
|
||||||
|
fontWeight: '700',
|
||||||
|
width: '20px',
|
||||||
|
height: '20px',
|
||||||
|
borderRadius: '50%',
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
}}>
|
||||||
|
{record.waitCorrectionCount}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style={{
|
||||||
|
marginLeft: 10,
|
||||||
|
cursor: 'pointer',
|
||||||
|
color: '#007FFF',
|
||||||
|
|
||||||
|
display: record.appOrderStatus == '5' ? 'unset' : 'none',
|
||||||
|
|
||||||
|
}}
|
||||||
|
onClick={() => {
|
||||||
|
console.log(record.appOrderResultFile);
|
||||||
|
|
||||||
|
window.open(showImage(record.appOrderResultFile, false));
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
查看证书
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
)
|
)
|
||||||
|
|
||||||
},
|
},
|
||||||
@ -164,7 +256,7 @@ export default function AppElectron() {
|
|||||||
val: res
|
val: res
|
||||||
})
|
})
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
|
setLoading(false)
|
||||||
if (error.response) {
|
if (error.response) {
|
||||||
const data = error.response.data;
|
const data = error.response.data;
|
||||||
messageApi.open({
|
messageApi.open({
|
||||||
@ -242,7 +334,56 @@ export default function AppElectron() {
|
|||||||
|
|
||||||
)}
|
)}
|
||||||
</Spin>
|
</Spin>
|
||||||
|
<Modal title="未通过原因"
|
||||||
|
centered
|
||||||
|
footer={null}
|
||||||
|
destroyOnClose
|
||||||
|
// okText="确认提交"
|
||||||
|
// cancelText="取消"
|
||||||
|
open={checkRemarkModal}
|
||||||
|
// width={1200}
|
||||||
|
onCancel={() => {
|
||||||
|
setCheckRemarkModal(false)
|
||||||
|
|
||||||
|
}}
|
||||||
|
// onOk={
|
||||||
|
// // setModal(false)
|
||||||
|
// clickOk
|
||||||
|
// }
|
||||||
|
>
|
||||||
|
|
||||||
|
<div style={{
|
||||||
|
fontSize: '16px',
|
||||||
|
// color: 'red',
|
||||||
|
// fontWeight: 'bold'
|
||||||
|
}}>
|
||||||
|
{checkRemark}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</Modal>
|
||||||
|
<Modal
|
||||||
|
title="补充资料"
|
||||||
|
okText="确认"
|
||||||
|
cancelText="取消"
|
||||||
|
destroyOnClose={true}
|
||||||
|
footer={null}
|
||||||
|
open={fileModal}
|
||||||
|
// onOk={() => {
|
||||||
|
// setOrderDetailModal(false)
|
||||||
|
// }}
|
||||||
|
onCancel={() => {
|
||||||
|
setFileModal(false)
|
||||||
|
}}
|
||||||
|
width={1150}
|
||||||
|
centered
|
||||||
|
>
|
||||||
|
<File
|
||||||
|
upData={() => {
|
||||||
|
getAppOrderList(page)
|
||||||
|
}}
|
||||||
|
user={'buy'}
|
||||||
|
orderId={appOrderId}></File>
|
||||||
|
</Modal>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,52 +1,290 @@
|
|||||||
|
import { useEffect, useState } from 'react';
|
||||||
import './app-info.css'
|
import './app-info.css'
|
||||||
import { Button, message } from "antd"
|
import { Button, message, Spin, Modal } from "antd"
|
||||||
|
import { fileDetail, submitapp, getContent } from '../../../../request/api'
|
||||||
|
import { showImage } from '../../../../request/request'
|
||||||
export default function AppInfo(props: any) {
|
export default function AppInfo(props: any) {
|
||||||
|
const [messageApi, contextHolder] = message.useMessage();
|
||||||
const height = window.innerHeight - 460;
|
const height = window.innerHeight - 460;
|
||||||
|
const [loading, setLoading] = useState(false);
|
||||||
|
const [modal, setModal] = useState(false);
|
||||||
const handleSubmit = () => {
|
const handleSubmit = () => {
|
||||||
message.success('提交成功');
|
setModal(true)
|
||||||
|
// message.success('提交成功');
|
||||||
|
// props.setCheckStatus('1')
|
||||||
};
|
};
|
||||||
|
const clickOk = async () => {
|
||||||
|
try {
|
||||||
|
setLoading(true)
|
||||||
|
await submitapp(props.appOrderId)
|
||||||
|
setModal(false)
|
||||||
|
setLoading(false)
|
||||||
|
message.success('提交成功');
|
||||||
|
props.setCheckStatus('1')
|
||||||
|
} catch (error: any) {
|
||||||
|
setLoading(false)
|
||||||
|
|
||||||
|
if (error.response) {
|
||||||
|
const data = error.response.data;
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: data.msg ? data.msg : `${data.path}(${data.status})`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
setLoading(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const companyInfo = props.companyInfo;
|
||||||
|
const appInfo = props.appInfo;
|
||||||
|
const filesInfo = props.filesInfo;
|
||||||
|
const [photofileDetail, setPhotofileDetail] = useState<any>({
|
||||||
|
|
||||||
|
fileId: '', //文件id
|
||||||
|
fileName: '', //文件名称
|
||||||
|
url: ''
|
||||||
|
});
|
||||||
|
const [authfileDetail, setAuthfileDetail] = useState<any>({
|
||||||
|
fileId: '', //文件id
|
||||||
|
fileName: '', //文件名称
|
||||||
|
url: ''
|
||||||
|
})
|
||||||
|
const [file, setFile] = useState<any>({
|
||||||
|
fileId: '', //文件id
|
||||||
|
fileName: '', //文件名称
|
||||||
|
url: ''
|
||||||
|
})
|
||||||
|
const [codefileDetail, setCodefileDetail] = useState<any>({
|
||||||
|
fileId: '', //文件id
|
||||||
|
fileName: '', //文件名称
|
||||||
|
url: ''
|
||||||
|
})
|
||||||
|
const [softfileDetail, setSoftfileDetail] = useState<any>({
|
||||||
|
fileId: '', //文件id
|
||||||
|
fileName: '', //文件名称
|
||||||
|
url: ''
|
||||||
|
})
|
||||||
|
const getPhotoFileDetail = async (id: string) => {
|
||||||
|
try {
|
||||||
|
const res: any = await fileDetail(id)
|
||||||
|
setPhotofileDetail({
|
||||||
|
fileId: res[0].fileId, //文件id
|
||||||
|
fileName: res[0].fileName, //文件名称
|
||||||
|
url: showImage(res[0].fileId, false)
|
||||||
|
})
|
||||||
|
} catch (error: any) {
|
||||||
|
if (error.response) {
|
||||||
|
const data = error.response.data;
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: data.msg ? data.msg : `${data.path}(${data.status})`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const getAuthFileDetail = async (id: string) => {
|
||||||
|
try {
|
||||||
|
const res: any = await fileDetail(id)
|
||||||
|
setAuthfileDetail({
|
||||||
|
fileId: res[0].fileId, //文件id
|
||||||
|
fileName: res[0].fileName, //文件名称
|
||||||
|
url: showImage(res[0].fileId, false)
|
||||||
|
})
|
||||||
|
|
||||||
|
} catch (error: any) {
|
||||||
|
if (error.response) {
|
||||||
|
const data = error.response.data;
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: data.msg ? data.msg : `${data.path}(${data.status})`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const getFileDetail = async (id: string) => {
|
||||||
|
try {
|
||||||
|
const res: any = await fileDetail(id)
|
||||||
|
setFile({
|
||||||
|
fileId: res[0].fileId, //文件id
|
||||||
|
fileName: res[0].fileName, //文件名称
|
||||||
|
url: showImage(res[0].fileId, false)
|
||||||
|
})
|
||||||
|
} catch (error: any) {
|
||||||
|
if (error.response) {
|
||||||
|
const data = error.response.data;
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: data.msg ? data.msg : `${data.path}(${data.status})`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const getCodeFileDetail = async (id: string) => {
|
||||||
|
try {
|
||||||
|
const res: any = await fileDetail(id)
|
||||||
|
setCodefileDetail({
|
||||||
|
fileId: res[0].fileId, //文件id
|
||||||
|
fileName: res[0].fileName, //文件名称
|
||||||
|
url: showImage(res[0].fileId, false)
|
||||||
|
})
|
||||||
|
} catch (error: any) {
|
||||||
|
if (error.response) {
|
||||||
|
const data = error.response.data;
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: data.msg ? data.msg : `${data.path}(${data.status})`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const getSoftFileDetail = async (id: string) => {
|
||||||
|
try {
|
||||||
|
const res: any = await fileDetail(id)
|
||||||
|
setSoftfileDetail({
|
||||||
|
fileId: res[0].fileId, //文件id
|
||||||
|
fileName: res[0].fileName, //文件名称
|
||||||
|
url: showImage(res[0].fileId, false)
|
||||||
|
})
|
||||||
|
} catch (error: any) {
|
||||||
|
if (error.response) {
|
||||||
|
const data = error.response.data;
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: data.msg ? data.msg : `${data.path}(${data.status})`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const [bigClassName, setBigClassName] = useState('')
|
||||||
|
const [smallClassName, setSmallClassName] = useState('')
|
||||||
|
const getBigClassName = async (id: string) => {
|
||||||
|
try {
|
||||||
|
const res: any = await getContent(id)
|
||||||
|
// console.log(res);
|
||||||
|
|
||||||
|
setBigClassName(res.dataName)
|
||||||
|
} catch (error: any) {
|
||||||
|
if (error.response) {
|
||||||
|
const data = error.response.data;
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: data.msg ? data.msg : `${data.path}(${data.status})`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const getSmallClassName = async (id: string) => {
|
||||||
|
try {
|
||||||
|
const res: any = await getContent(id)
|
||||||
|
// console.log(res);
|
||||||
|
setSmallClassName(res.dataName)
|
||||||
|
|
||||||
|
} catch (error: any) {
|
||||||
|
if (error.response) {
|
||||||
|
const data = error.response.data;
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: data.msg ? data.msg : `${data.path}(${data.status})`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
useEffect(() => {
|
||||||
|
if (companyInfo.companyPhoto) {
|
||||||
|
getPhotoFileDetail(companyInfo.companyPhoto)
|
||||||
|
|
||||||
|
}
|
||||||
|
if (companyInfo.companyAuth) {
|
||||||
|
getAuthFileDetail(companyInfo.companyAuth)
|
||||||
|
}
|
||||||
|
if (appInfo.getFile) {
|
||||||
|
getFileDetail(appInfo.getFile)
|
||||||
|
}
|
||||||
|
if (filesInfo.sourceCodeDocFile) {
|
||||||
|
getCodeFileDetail(filesInfo.sourceCodeDocFile)
|
||||||
|
}
|
||||||
|
if (filesInfo.softwareDocFile) {
|
||||||
|
getSoftFileDetail(filesInfo.softwareDocFile)
|
||||||
|
}
|
||||||
|
if (appInfo.bigClassify) {
|
||||||
|
getBigClassName(appInfo.bigClassify)
|
||||||
|
}
|
||||||
|
if (appInfo.subClassify) {
|
||||||
|
getSmallClassName(appInfo.subClassify)
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [companyInfo.companyPhoto, companyInfo.companyAuth, appInfo.getFile, filesInfo.sourceCodeDocFile, filesInfo.softwareDocFile, appInfo.bigClassify, appInfo.subClassify])
|
||||||
return (
|
return (
|
||||||
|
<Spin tip="正在提交..." size="small" spinning={loading}>
|
||||||
<div>
|
<div>
|
||||||
|
{contextHolder}
|
||||||
<div className='bigLine'></div>
|
<div className='bigLine'></div>
|
||||||
|
|
||||||
<div className='appInfoFormBox' style={{
|
<div className='appInfoFormBox' style={{
|
||||||
height: height,
|
height: height,
|
||||||
justifyContent: 'flex-start',
|
justifyContent: 'flex-start',
|
||||||
flexDirection: 'column',
|
flexDirection: 'column',
|
||||||
|
|
||||||
}}>
|
}}>
|
||||||
|
|
||||||
<div className='appInfoBox'>
|
<div className='appInfoBox'>
|
||||||
|
<div style={{
|
||||||
|
marginLeft: '100px',
|
||||||
|
width: '80%',
|
||||||
|
fontSize: '14px',
|
||||||
|
color: 'red',
|
||||||
|
fontWeight: 'bold',
|
||||||
|
display: props.checkStatus === '0' ? 'unset' : 'none'
|
||||||
|
}}>未通过原因:{props.checkRemark}</div>
|
||||||
<div className='appInfoTitle'>企业/机构信息</div>
|
<div className='appInfoTitle'>企业/机构信息</div>
|
||||||
<div className='appInfoText'>
|
<div className='appInfoText'>
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>企业/机构信息名称 : </div>
|
<div className='appInfoTextItemTitle'>企业/机构信息名称 : </div>
|
||||||
<div className='appInfoTextItemText'>嘻嘻嘻嘻公司</div>
|
<div className='appInfoTextItemText'>{companyInfo.companyName}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>所在省市 : </div>
|
<div className='appInfoTextItemTitle'>统一社会信用代码 : </div>
|
||||||
<div className='appInfoTextItemText'>辽宁省沈阳市</div>
|
<div className='appInfoTextItemText'>{companyInfo.companyNumber}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>企业/机构地址 : </div>
|
<div className='appInfoTextItemTitle'>企业证件 : </div>
|
||||||
<div className='appInfoTextItemText'>xxx路xxx号</div>
|
<a className='appInfoTextItemText'
|
||||||
</div>
|
style={{
|
||||||
<div className='appInfoTextItem'>
|
textDecoration: 'underline'
|
||||||
<div className='appInfoTextItemTitle'>证件类型 : </div>
|
}}
|
||||||
<div className='appInfoTextItemText'>xx证</div>
|
onClick={() => {
|
||||||
</div>
|
window.open(photofileDetail.url)
|
||||||
<div className='appInfoTextItem'>
|
}}
|
||||||
<div className='appInfoTextItemTitle'>证件号 : </div>
|
>{photofileDetail.fileName}</a>
|
||||||
<div className='appInfoTextItemText'>111111111</div>
|
|
||||||
</div>
|
|
||||||
<div className='appInfoTextItem'>
|
|
||||||
<div className='appInfoTextItemTitle'>上传证件 : </div>
|
|
||||||
<div className='appInfoTextItemText'> xx.png</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>授权书 : </div>
|
<div className='appInfoTextItemTitle'>授权书 : </div>
|
||||||
<div className='appInfoTextItemText'> xxx.jpg</div>
|
<a className='appInfoTextItemText'
|
||||||
|
style={{
|
||||||
|
textDecoration: 'underline'
|
||||||
|
}}
|
||||||
|
onClick={() => {
|
||||||
|
window.open(authfileDetail.url)
|
||||||
|
}}>{authfileDetail.fileName}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='appInfoBox'>
|
<div className='appInfoBox'>
|
||||||
@ -54,131 +292,95 @@ export default function AppInfo(props: any) {
|
|||||||
<div className='appInfoText'>
|
<div className='appInfoText'>
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>APP软件全称 : </div>
|
<div className='appInfoTextItemTitle'>APP软件全称 : </div>
|
||||||
<div className='appInfoTextItemText'>嘻嘻嘻嘻</div>
|
<div className='appInfoTextItemText'>{appInfo.appName}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>软件简称 : </div>
|
<div className='appInfoTextItemTitle'>软件简称 : </div>
|
||||||
<div className='appInfoTextItemText'>嘻嘻嘻嘻</div>
|
<div className='appInfoTextItemText'>{appInfo.subName}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>版本号 : </div>
|
<div className='appInfoTextItemTitle'>版本号 : </div>
|
||||||
<div className='appInfoTextItemText'>v.10</div>
|
<div className='appInfoTextItemText'>{appInfo.versionName}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>包名(APPID) : </div>
|
<div className='appInfoTextItemTitle'>包名(APPID) : </div>
|
||||||
<div className='appInfoTextItemText'>com.zhongxinhy.communitymanage</div>
|
<div className='appInfoTextItemText'>{appInfo.packageName}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>运行系统 : </div>
|
<div className='appInfoTextItemTitle'>运行系统 : </div>
|
||||||
<div className='appInfoTextItemText'>android for phone</div>
|
<div className='appInfoTextItemText'>{appInfo.systemName}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>APP软件分类 : </div>
|
<div className='appInfoTextItemTitle'>软件分类 : </div>
|
||||||
<div className='appInfoTextItemText'> 应用 - 生活实用</div>
|
<div className='appInfoTextItemText'> {bigClassName} - {smallClassName}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>开发方式 : </div>
|
<div className='appInfoTextItemTitle'>开发方式 : </div>
|
||||||
<div className='appInfoTextItemText'> 独立开发</div>
|
<div className='appInfoTextItemText'> {appInfo.developWay}</div>
|
||||||
</div>
|
</div>
|
||||||
{/* <div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>软件作品说明 : </div>
|
<div className='appInfoTextItemTitle' style={{
|
||||||
<div className='appInfoTextItemText'> 原创</div>
|
display: appInfo.getFile ? 'block' : 'none'
|
||||||
</div> */}
|
}}>合作协议 : </div>
|
||||||
|
<a style={{
|
||||||
|
textDecoration: 'underline'
|
||||||
|
}} className='appInfoTextItemText'
|
||||||
|
onClick={() => {
|
||||||
|
window.open(file.url)
|
||||||
|
}}
|
||||||
|
> {file.fileName}</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>开发完成日期 : </div>
|
<div className='appInfoTextItemTitle'>开发完成日期 : </div>
|
||||||
<div className='appInfoTextItemText'> 2025-05-05</div>
|
<div className='appInfoTextItemText'> {appInfo.completeTime}</div>
|
||||||
</div>
|
</div>
|
||||||
{/* <div className='appInfoTextItem'>
|
|
||||||
<div className='appInfoTextItemTitle'>发表状态 : </div>
|
|
||||||
<div className='appInfoTextItemText'> 未发表</div>
|
|
||||||
</div> */}
|
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>产权所属者 : </div>
|
<div className='appInfoTextItemTitle'>产权所属者 : </div>
|
||||||
<div className='appInfoTextItemText'> 嘻嘻公司</div>
|
<div className='appInfoTextItemText'> {appInfo.projOwnerName}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/* <div className='appInfoBox'>
|
|
||||||
<div className='appInfoTitle'>权利说明</div>
|
|
||||||
<div className='appInfoText'>
|
|
||||||
<div className='appInfoTextItem'>
|
|
||||||
<div className='appInfoTextItemTitle'>权力取得方式 : </div>
|
|
||||||
<div className='appInfoTextItemText'>原始</div>
|
|
||||||
</div>
|
|
||||||
<div className='appInfoTextItem'>
|
|
||||||
<div className='appInfoTextItemTitle'>权利范围 : </div>
|
|
||||||
<div className='appInfoTextItemText'>全部权利</div>
|
|
||||||
</div>
|
|
||||||
<div className='appInfoTextItem'>
|
|
||||||
<div className='appInfoTextItemTitle'>其他相关文件 : </div>
|
|
||||||
<div className='appInfoTextItemText'>asdasjdadja.png</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div> */}
|
|
||||||
<div className='appInfoBox'>
|
<div className='appInfoBox'>
|
||||||
<div className='appInfoTitle'>鉴别材料</div>
|
<div className='appInfoTitle'>鉴别材料</div>
|
||||||
<div className='appInfoText'>
|
<div className='appInfoText'>
|
||||||
|
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>源码文档 : </div>
|
<div className='appInfoTextItemTitle'>源码文档 : </div>
|
||||||
<div className='appInfoTextItemText'>asdkaksd.png</div>
|
<a style={{
|
||||||
|
textDecoration: 'underline'
|
||||||
|
}}
|
||||||
|
onClick={() => {
|
||||||
|
window.open(codefileDetail.url)
|
||||||
|
}}
|
||||||
|
className='appInfoTextItemText'>{codefileDetail.fileName}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div className='appInfoTextItem'>
|
<div className='appInfoTextItem'>
|
||||||
<div className='appInfoTextItemTitle'>软件文档 : </div>
|
<div className='appInfoTextItemTitle'>软件文档 : </div>
|
||||||
<div className='appInfoTextItemText'>asdkaksd.png</div>
|
<a style={{
|
||||||
|
textDecoration: 'underline'
|
||||||
|
}}
|
||||||
|
onClick={() => {
|
||||||
|
window.open(softfileDetail.url)
|
||||||
|
}}
|
||||||
|
className='appInfoTextItemText'>{softfileDetail.fileName}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/* <div className='appInfoBox'>
|
|
||||||
<div className='appInfoTitle'>功能特点</div>
|
|
||||||
<div className='appInfoText'>
|
|
||||||
<div className='appInfoTextItem'>
|
|
||||||
<div className='appInfoTextItemTitle'>硬件环境 : </div>
|
|
||||||
<div className='appInfoTextItemText'>1GHz以上处理器,1GB以上内存,16GB以上存储空间、安卓智能移动设备</div>
|
|
||||||
</div>
|
|
||||||
<div className='appInfoTextItem'>
|
|
||||||
<div className='appInfoTextItemTitle'>软件环境 : </div>
|
|
||||||
<div className='appInfoTextItemText'>Android操作系统</div>
|
|
||||||
</div>
|
|
||||||
<div className='appInfoTextItem'>
|
|
||||||
<div className='appInfoTextItemTitle'>编程语言 : </div>
|
|
||||||
<div className='appInfoTextItemText'> Java</div>
|
|
||||||
</div>
|
|
||||||
<div className='appInfoTextItem'>
|
|
||||||
<div className='appInfoTextItemTitle'>源程序量 : </div>
|
|
||||||
<div className='appInfoTextItemText'> 672384行左右</div>
|
|
||||||
</div>
|
|
||||||
<div className='appInfoTextItem'>
|
|
||||||
<div className='appInfoTextItemTitle'>主要功能 : </div>
|
|
||||||
<div className='appInfoTextItemText'>隆盛社区APP软件主要功能有考勤打卡、房屋人口管理、工作轨迹、事件上报、事件处理、事件检查、学校管理、重点区域管理、重点场所、实有车辆、用户登录退出等功能。</div>
|
|
||||||
</div>
|
|
||||||
<div className='appInfoTextItem'>
|
|
||||||
<div className='appInfoTextItemTitle'>技术特点 : </div>
|
|
||||||
<div className='appInfoTextItemText'>基于 Android Jetpack 组件构建,利用 ViewModel 和 LiveData 实现数据的高效管理与界面的实时更新,确保用户体验流畅。网络通信方面,运用 Retrofit 框架结合 OkHttp,实现安全快速的数据交互。</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div> */}
|
|
||||||
{/* <div className='appInfoBox'>
|
|
||||||
<div className='appInfoTitle'>著作权人</div>
|
|
||||||
<div className='appInfoText'>
|
|
||||||
<div className='appInfoTextItem'>
|
|
||||||
<div className='appInfoTextItemTitle'>著作权人名称 : </div>
|
|
||||||
<div className='appInfoTextItemText'>嘻嘻嘻嘻嘻嘻嘻哈哈哈哈公司</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div> */}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className='bigLine'></div>
|
<div className='bigLine'></div>
|
||||||
<div className='nextBtnBxo' >
|
<div className='nextBtnBxo' >
|
||||||
|
<div style={{
|
||||||
|
display: props.checkStatus == '' || props.checkStatus == '0' ? 'unset' : 'none',
|
||||||
|
}}>
|
||||||
<Button
|
<Button
|
||||||
style={{
|
style={{
|
||||||
width: '235px',
|
width: '235px',
|
||||||
@ -199,9 +401,55 @@ export default function AppInfo(props: any) {
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
handleSubmit()
|
handleSubmit()
|
||||||
}}>提交审核</Button>
|
}}>提交审核</Button>
|
||||||
|
</div>
|
||||||
|
<div style={{
|
||||||
|
display: props.checkStatus == '1' ? 'unset' : 'none',
|
||||||
|
fontSize: '16px',
|
||||||
|
color: 'skyblue',
|
||||||
|
// color:'green',
|
||||||
|
fontWeight: 'bold'
|
||||||
|
}}>
|
||||||
|
正在审核中...
|
||||||
|
</div>
|
||||||
|
<div style={{
|
||||||
|
display: props.checkStatus == '2' ? 'unset' : 'none',
|
||||||
|
fontSize: '16px',
|
||||||
|
// color:'skyblue',
|
||||||
|
color: 'green',
|
||||||
|
fontWeight: 'bold'
|
||||||
|
}}>
|
||||||
|
审核通过
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<Modal title="提示"
|
||||||
|
centered
|
||||||
|
// footer={null}
|
||||||
|
destroyOnClose
|
||||||
|
okText="确认提交"
|
||||||
|
cancelText="取消"
|
||||||
|
open={modal}
|
||||||
|
// width={1200}
|
||||||
|
onCancel={() => {
|
||||||
|
setModal(false)
|
||||||
|
|
||||||
|
}}
|
||||||
|
onOk={
|
||||||
|
// setModal(false)
|
||||||
|
clickOk
|
||||||
|
}
|
||||||
|
>
|
||||||
|
|
||||||
|
<div style={{
|
||||||
|
fontSize: '16px',
|
||||||
|
color: 'red',
|
||||||
|
fontWeight: 'bold'
|
||||||
|
}}>
|
||||||
|
注 : 提交后无法修改,请确认信息是否正确!
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</Modal>
|
||||||
|
</Spin>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -35,4 +35,7 @@
|
|||||||
.appInfoTextItemText{
|
.appInfoTextItemText{
|
||||||
max-width: 60%;
|
max-width: 60%;
|
||||||
/* background-color: pink; */
|
/* background-color: pink; */
|
||||||
|
/* 下划线 */
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -68,11 +68,11 @@ export default function EditAppFiles(props: any) {
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
// 处理文件点击预览
|
// 处理文件点击预览
|
||||||
const handlePreview = (file: any) => {
|
// const handlePreview = (file: any) => {
|
||||||
console.log(file);
|
// console.log(file);
|
||||||
|
|
||||||
|
|
||||||
};
|
// };
|
||||||
// 上传文件源码文档列表
|
// 上传文件源码文档列表
|
||||||
const [upCodeArray, setUpCodeArray] = useState<any>([])
|
const [upCodeArray, setUpCodeArray] = useState<any>([])
|
||||||
// const [codeDis, setCodeDis] = useState(false)
|
// const [codeDis, setCodeDis] = useState(false)
|
||||||
@ -227,7 +227,7 @@ export default function EditAppFiles(props: any) {
|
|||||||
const getCodeFileDetail = async (id: string) => {
|
const getCodeFileDetail = async (id: string) => {
|
||||||
try {
|
try {
|
||||||
const res: any = await fileDetail(id)
|
const res: any = await fileDetail(id)
|
||||||
console.log('文件详情', res);
|
// console.log('源码文档文件详情', res);
|
||||||
setUpCodeArray([
|
setUpCodeArray([
|
||||||
{
|
{
|
||||||
uid: res[0].fileId,
|
uid: res[0].fileId,
|
||||||
@ -252,7 +252,6 @@ export default function EditAppFiles(props: any) {
|
|||||||
const getSoftFileDetail = async (id: string) => {
|
const getSoftFileDetail = async (id: string) => {
|
||||||
try {
|
try {
|
||||||
const res: any = await fileDetail(id)
|
const res: any = await fileDetail(id)
|
||||||
console.log('文件详情', res);
|
|
||||||
setUpSoftArray([
|
setUpSoftArray([
|
||||||
{
|
{
|
||||||
uid: res[0].fileId,
|
uid: res[0].fileId,
|
||||||
@ -385,7 +384,7 @@ export default function EditAppFiles(props: any) {
|
|||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
beforeUpload={beforeUpload}
|
beforeUpload={beforeUpload}
|
||||||
onPreview={handlePreview}
|
// onPreview={handlePreview}
|
||||||
// onChange={handleUploadChange}
|
// onChange={handleUploadChange}
|
||||||
headers={{ 'Auth': `Bearer ${token}` }}
|
headers={{ 'Auth': `Bearer ${token}` }}
|
||||||
>
|
>
|
||||||
@ -406,7 +405,7 @@ export default function EditAppFiles(props: any) {
|
|||||||
onClick={
|
onClick={
|
||||||
downCodeWord
|
downCodeWord
|
||||||
}
|
}
|
||||||
>[ 下载1 ]</a>
|
>[ 下载 ]</a>
|
||||||
</div>
|
</div>
|
||||||
<a style={{
|
<a style={{
|
||||||
marginLeft: 58,
|
marginLeft: 58,
|
||||||
@ -494,7 +493,7 @@ export default function EditAppFiles(props: any) {
|
|||||||
</div>
|
</div>
|
||||||
<a style={{
|
<a style={{
|
||||||
position: 'absolute',
|
position: 'absolute',
|
||||||
top: '10px',
|
// top: '10px',
|
||||||
left: '260px',
|
left: '260px',
|
||||||
textWrap: 'nowrap'
|
textWrap: 'nowrap'
|
||||||
}}
|
}}
|
||||||
|
@ -20,7 +20,7 @@ export default function EditAppInfo(props: any) {
|
|||||||
const getSmallClassList = async (id: string) => {
|
const getSmallClassList = async (id: string) => {
|
||||||
try {
|
try {
|
||||||
const res: any = await twoClass(id)
|
const res: any = await twoClass(id)
|
||||||
console.log(res);
|
// console.log(res);
|
||||||
setSmallClassList(res.map((item: any) => {
|
setSmallClassList(res.map((item: any) => {
|
||||||
return {
|
return {
|
||||||
label: item.dataName,
|
label: item.dataName,
|
||||||
@ -153,8 +153,8 @@ export default function EditAppInfo(props: any) {
|
|||||||
}
|
}
|
||||||
const onFinish = async (values: any) => {
|
const onFinish = async (values: any) => {
|
||||||
// 处理表单提交逻辑
|
// 处理表单提交逻辑
|
||||||
console.log('表单提交成功', values);
|
// console.log('表单提交成功', values);
|
||||||
console.log(dayjs(values.completeTime).format('YYYY-MM-DD'));
|
// console.log(dayjs(values.completeTime).format('YYYY-MM-DD'));
|
||||||
// 给表单赋值 time: dayjs(res.goodsGetTime, 'YYYY-MM-DD'),
|
// 给表单赋值 time: dayjs(res.goodsGetTime, 'YYYY-MM-DD'),
|
||||||
// submitInfo(values)
|
// submitInfo(values)
|
||||||
// 给表单赋值
|
// 给表单赋值
|
||||||
@ -165,10 +165,10 @@ export default function EditAppInfo(props: any) {
|
|||||||
projOwnerId: belongPeopleInfo.authorId,//著作权人信息ID
|
projOwnerId: belongPeopleInfo.authorId,//著作权人信息ID
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('表单数据', data);
|
// console.log('表单数据', data);
|
||||||
console.log('传递数据', props.appInfo);
|
// console.log('传递数据', props.appInfo);
|
||||||
// console.log(JSON.stringify(props.appInfo) == JSON.stringify(data));
|
// console.log(JSON.stringify(props.appInfo) == JSON.stringify(data));
|
||||||
console.log(deepCompareObjects(props.appInfo, data));
|
// console.log(deepCompareObjects(props.appInfo, data));
|
||||||
|
|
||||||
// console.log(props.appInf == data);
|
// console.log(props.appInf == data);
|
||||||
// return
|
// return
|
||||||
@ -256,13 +256,13 @@ export default function EditAppInfo(props: any) {
|
|||||||
}
|
}
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (props.appInfo.getFile) {
|
if (props.appInfo.getFile) {
|
||||||
console.log('嘻嘻', props.appInfo.getFile);
|
// console.log('嘻嘻', props.appInfo.getFile);
|
||||||
getFileDetail(props.appInfo.getFile)
|
getFileDetail(props.appInfo.getFile)
|
||||||
}
|
}
|
||||||
}, [props.appInfo.getFile])
|
}, [props.appInfo.getFile])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
console.log('传过来的信息', props);
|
// console.log('传过来的信息', props);
|
||||||
if (props.appInfo.appName) {
|
if (props.appInfo.appName) {
|
||||||
// setSmallClassList(props.smallClass)
|
// setSmallClassList(props.smallClass)
|
||||||
form.setFieldsValue({
|
form.setFieldsValue({
|
||||||
|
482
src/route/AppElectron/components/File/File.tsx
Normal file
482
src/route/AppElectron/components/File/File.tsx
Normal file
@ -0,0 +1,482 @@
|
|||||||
|
import { useEffect, useState } from 'react'
|
||||||
|
import { Table, Space, Modal, Input, Form, Upload, Button } from "antd"
|
||||||
|
import { UploadOutlined } from '@ant-design/icons';
|
||||||
|
import { sellSupplementList, buySupplementList, supplementDetail, getFileTypeByIds, supplementAppData } from '../../../../request/api'
|
||||||
|
import { showImage, uploadFileUrl } from '../../../../request/request'
|
||||||
|
const { Column } = Table;
|
||||||
|
import useMessage from "antd/es/message/useMessage";
|
||||||
|
// import './File.css'
|
||||||
|
const { TextArea } = Input;
|
||||||
|
export default function File(props: any) {
|
||||||
|
const [upFileArray, setUpFileArray] = useState<any>([]) // 上传的文件数组
|
||||||
|
// 自定义验证函数
|
||||||
|
const validateContentOrFile = (_rule: any, _value: any, callback: (error?: string) => void, form: any) => {
|
||||||
|
const { upCorrectionRemark, upFile } = form.getFieldsValue();
|
||||||
|
if (upCorrectionRemark || (upFile && Array.isArray(upFile.fileList) && upFile.fileList.length > 0)) {
|
||||||
|
callback();
|
||||||
|
} else {
|
||||||
|
callback('内容和附件至少需要填写或上传一项');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// 点击上传资料确定
|
||||||
|
const submitData = async (params: any) => {
|
||||||
|
try {
|
||||||
|
await supplementAppData({
|
||||||
|
correctionParentId: correctionId,
|
||||||
|
// correctionType: CorrectionType,
|
||||||
|
orderId: props.orderId,
|
||||||
|
correctionFiles: params.correctionFiles,
|
||||||
|
correctionRemark: params.correctionRemark,
|
||||||
|
})
|
||||||
|
if (props.user == 'sell') {
|
||||||
|
getSellSupplementList()
|
||||||
|
} else if (props.user == 'buy') {
|
||||||
|
getBuySupplementList()
|
||||||
|
}
|
||||||
|
props.upData()
|
||||||
|
messageApi.open({
|
||||||
|
type: 'success',
|
||||||
|
content: '已提交',
|
||||||
|
})
|
||||||
|
setIsModalVisible(false)
|
||||||
|
// form.resetFields();
|
||||||
|
|
||||||
|
// console.log(res);
|
||||||
|
|
||||||
|
} catch (error: any) {
|
||||||
|
if (error.response) {
|
||||||
|
const data = error.response.data;
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: data.msg ? data.msg : `${data.path}(${data.status})`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const token = sessionStorage.getItem('token')
|
||||||
|
const [form] = Form.useForm();
|
||||||
|
const [messageApi, messageContext] = useMessage();
|
||||||
|
const [correctionId, setCorrectionId] = useState('') // 点击查看内容选中的id
|
||||||
|
// const [CorrectionType, setCorrectionType] = useState('')
|
||||||
|
// 补充资料弹窗
|
||||||
|
const [isModalVisible, setIsModalVisible] = useState(false)
|
||||||
|
const [page, setPage] = useState(1) // 当前页码
|
||||||
|
const [total, setTotal] = useState(0) // 总条数
|
||||||
|
const [data, setData] = useState([])
|
||||||
|
const getSellSupplementList = async () => {
|
||||||
|
try {
|
||||||
|
const res: any = await sellSupplementList({
|
||||||
|
orderId: props.orderId,
|
||||||
|
page: page,
|
||||||
|
rows: 10
|
||||||
|
})
|
||||||
|
setPage(res.page)
|
||||||
|
setTotal(res.total)
|
||||||
|
console.log(res);
|
||||||
|
setData(res.rows)
|
||||||
|
// let newData:any = [];
|
||||||
|
// for (let i = 0; i < 10; i++) {
|
||||||
|
// newData = newData.concat(res.rows);
|
||||||
|
// }
|
||||||
|
// setData(newData);
|
||||||
|
|
||||||
|
} catch (error: any) {
|
||||||
|
|
||||||
|
if (error.response) {
|
||||||
|
const data = error.response.data;
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: data.msg ? data.msg : `${data.path}(${data.status})`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const getBuySupplementList = async () => {
|
||||||
|
try {
|
||||||
|
const res: any = await buySupplementList({
|
||||||
|
orderId: props.orderId,
|
||||||
|
page: page,
|
||||||
|
rows: 10
|
||||||
|
})
|
||||||
|
setPage(res.page)
|
||||||
|
setTotal(res.total)
|
||||||
|
// console.log(res);
|
||||||
|
setData(res.rows)
|
||||||
|
} catch (error: any) {
|
||||||
|
|
||||||
|
if (error.response) {
|
||||||
|
const data = error.response.data;
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: data.msg ? data.msg : `${data.path}(${data.status})`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const [fileList, setFileList] = useState<any>([]) // 上传文件列表
|
||||||
|
// 获取文件类型
|
||||||
|
const getFileTypeByIdsArray = async (ids: string) => {
|
||||||
|
try {
|
||||||
|
const res: any = await getFileTypeByIds({
|
||||||
|
ids: ids
|
||||||
|
})
|
||||||
|
setFileList(res)
|
||||||
|
|
||||||
|
} catch (error: any) {
|
||||||
|
|
||||||
|
if (error.response) {
|
||||||
|
const data = error.response.data;
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: data.msg ? data.msg : `${data.path}(${data.status})`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 补充资料详情
|
||||||
|
const [detailData, setDetailData] = useState<any>({})
|
||||||
|
const getSupplementDetail = async (id: string) => {
|
||||||
|
try {
|
||||||
|
const res: any = await supplementDetail(id)
|
||||||
|
// console.log(res);
|
||||||
|
setDetailData(res)
|
||||||
|
await getFileTypeByIdsArray(res.correctionFiles)
|
||||||
|
|
||||||
|
} catch (error: any) {
|
||||||
|
|
||||||
|
if (error.response) {
|
||||||
|
const data = error.response.data;
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: data.msg ? data.msg : `${data.path}(${data.status})`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.error(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
useEffect(() => {
|
||||||
|
if (props.user == 'sell') {
|
||||||
|
getSellSupplementList()
|
||||||
|
} else if (props.user == 'buy') {
|
||||||
|
getBuySupplementList()
|
||||||
|
}
|
||||||
|
}, [page])
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{messageContext}
|
||||||
|
<Table
|
||||||
|
// scroll={{ y: `${height - 190}px` }}
|
||||||
|
dataSource={data}
|
||||||
|
// pagination={{
|
||||||
|
// defaultPageSize: 5, // 设置默认一页显示 5 条数据
|
||||||
|
// }}
|
||||||
|
scroll={{ y: 480 }}
|
||||||
|
pagination={
|
||||||
|
{
|
||||||
|
pageSize: 10,
|
||||||
|
total: total,
|
||||||
|
onChange: (currentPage) => {
|
||||||
|
setPage(currentPage);
|
||||||
|
},
|
||||||
|
showSizeChanger: false,
|
||||||
|
current: page
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// pagination={false} // 不显示分页
|
||||||
|
style={{ textAlign: 'center' }} // 设置表格内容居中显示
|
||||||
|
rowKey="correctionId" // 指定数据项的唯一标识符
|
||||||
|
>
|
||||||
|
<Column
|
||||||
|
width={70}
|
||||||
|
title="序号" render={(_text, _record, index: number) => (
|
||||||
|
index + 1
|
||||||
|
)} align="center" />
|
||||||
|
<Column
|
||||||
|
title="资料主题"
|
||||||
|
dataIndex="correctionTitle"
|
||||||
|
align="center"
|
||||||
|
width={200}
|
||||||
|
render={(text) => (
|
||||||
|
<div style={{ overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }} title={text}>{text}</div>
|
||||||
|
)}
|
||||||
|
// render={(text) => (
|
||||||
|
// <span style={{ color: '#1B8BD2', fontSize: '16px', fontWeight: '700' }}>{text}</span>
|
||||||
|
// )}
|
||||||
|
/>
|
||||||
|
<Column
|
||||||
|
title="资料内容"
|
||||||
|
dataIndex="correctionRemark"
|
||||||
|
align="center"
|
||||||
|
width={300}
|
||||||
|
render={(text) => (
|
||||||
|
<div style={{ overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }} title={text}>{text}</div>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
<Column
|
||||||
|
title="发起时间"
|
||||||
|
width={200}
|
||||||
|
dataIndex="createTime"
|
||||||
|
align="center"
|
||||||
|
// ellipsis
|
||||||
|
/>
|
||||||
|
<Column
|
||||||
|
title="状态"
|
||||||
|
dataIndex={props.user == 'sell' ? "sellId" : "buyId"}
|
||||||
|
align="center"
|
||||||
|
width={100}
|
||||||
|
render={(text) => (
|
||||||
|
<>
|
||||||
|
<span style={{ color: '#DD0000', fontSize: '16px', fontWeight: '700', display: text == '' ? 'unset' : 'none' }}>待补充</span>
|
||||||
|
<span style={{ color: 'green', fontSize: '16px', fontWeight: '700', display: text == '' ? 'none' : 'unset' }}>已补充</span>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
|
||||||
|
{/* <Column title="实名认证状态" dataIndex="address" key="key" /> */}
|
||||||
|
<Column
|
||||||
|
align="center"
|
||||||
|
title="操作"
|
||||||
|
width={100}
|
||||||
|
render={(_text, record: any) => (
|
||||||
|
<Space size="middle">
|
||||||
|
<span className='transaction-order-table-btn' onClick={() => {
|
||||||
|
// console.log(record.correctionId);
|
||||||
|
setCorrectionId(record.correctionId)
|
||||||
|
getSupplementDetail(record.correctionId)
|
||||||
|
setIsModalVisible(true)
|
||||||
|
// 清空表单
|
||||||
|
form.resetFields();
|
||||||
|
// setCorrectionType(record.correctionType)
|
||||||
|
}}>查看内容</span>
|
||||||
|
|
||||||
|
</Space>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
</Table>
|
||||||
|
<Modal title={'补充'}
|
||||||
|
destroyOnClose={true}
|
||||||
|
open={isModalVisible}
|
||||||
|
footer={null} // 将 footer 设置为 null 来隐藏自带按钮
|
||||||
|
width={1000}
|
||||||
|
onCancel={() => {
|
||||||
|
setIsModalVisible(false);
|
||||||
|
// 清空表单
|
||||||
|
form.resetFields();
|
||||||
|
}}
|
||||||
|
centered
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
{/* {correctionId}
|
||||||
|
{CorrectionType} */}
|
||||||
|
<div className='editModal-title'>
|
||||||
|
<div className='editModal-title-box'></div>
|
||||||
|
<div className='editModal-title-name'>平台需要您补充的内容说明</div>
|
||||||
|
</div>
|
||||||
|
<div className='correctionTitleBox'>
|
||||||
|
<div className='correctionTitle'>主题</div>
|
||||||
|
<Input value={detailData.correctionTitle} style={{
|
||||||
|
height: 40,
|
||||||
|
color: 'black'
|
||||||
|
}}
|
||||||
|
disabled
|
||||||
|
></Input>
|
||||||
|
</div>
|
||||||
|
<div className='correctionRemarkBox'>
|
||||||
|
<div className='correctionTitle'>内容</div>
|
||||||
|
<TextArea value={detailData.correctionRemark} style={{
|
||||||
|
height: 100,
|
||||||
|
color: 'black',
|
||||||
|
resize: 'none'
|
||||||
|
}}
|
||||||
|
disabled
|
||||||
|
></TextArea>
|
||||||
|
</div>
|
||||||
|
<div className='upFileBox'>
|
||||||
|
<div className='correctionTitle'>附件</div>
|
||||||
|
{fileList.length > 0 ? (
|
||||||
|
// <div>材料列表</div>
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
fileList.map((item: any) => {
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
key={item.fileId}
|
||||||
|
style={{
|
||||||
|
// background: 'pink',
|
||||||
|
marginBottom: 5,
|
||||||
|
maxWidth: 800,
|
||||||
|
overflow: 'hidden',
|
||||||
|
textOverflow: 'ellipsis',
|
||||||
|
whiteSpace: 'nowrap',
|
||||||
|
cursor: 'pointer',
|
||||||
|
color: '#1B8BD2',
|
||||||
|
//下划线
|
||||||
|
textDecoration: 'underline',
|
||||||
|
}}
|
||||||
|
title={item.fileName}
|
||||||
|
onClick={() => {
|
||||||
|
|
||||||
|
window.open(showImage(item.fileId, false))
|
||||||
|
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{item.fileName}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
) : (
|
||||||
|
<div style={{ fontSize: 18, fontWeight: 700 }}>
|
||||||
|
无
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
<div className='editModal-title' style={{ marginTop: 30 }}>
|
||||||
|
<div className='editModal-title-box'></div>
|
||||||
|
<div className='editModal-title-name'>在下面填写您补充的内容</div>
|
||||||
|
</div>
|
||||||
|
<Form
|
||||||
|
name="basic"
|
||||||
|
form={form}
|
||||||
|
layout="vertical"
|
||||||
|
|
||||||
|
onFinish={(value) => {
|
||||||
|
|
||||||
|
// console.log(value);
|
||||||
|
// if (value.upFile && Array.isArray(value.upFile.fileList)) {
|
||||||
|
// const uids = value.upFile.fileList.map((file: any) => file.uid);
|
||||||
|
// const uidString = uids.join(',');
|
||||||
|
// console.log('提取的 uid 字符串:', uidString);
|
||||||
|
// // 你可以在这里继续处理 uid 字符串,比如发送请求等
|
||||||
|
|
||||||
|
// }
|
||||||
|
// const uids = value.upFile ? (value.upFile.fileList.map((file: any) => file.uid)).join(',') : '';
|
||||||
|
|
||||||
|
// console.log('提取的 uid 字符串:', uids);
|
||||||
|
|
||||||
|
// submitData({
|
||||||
|
// correctionFiles: uids,
|
||||||
|
// correctionRemark: value.upCorrectionRemark,
|
||||||
|
// })
|
||||||
|
// console.log(upFileArray);
|
||||||
|
// 将upFileArray 数组周末和每项的response里的data 里的 fileId 拼接成一个字符串,用逗号隔开
|
||||||
|
const uids = upFileArray.map((file: any) => file.response.data.fileId).join(',');
|
||||||
|
// console.log('提取的 uid 字符串:', uids);
|
||||||
|
submitData({
|
||||||
|
correctionFiles: uids,
|
||||||
|
correctionRemark: value.upCorrectionRemark,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
}}
|
||||||
|
onFinishFailed={() => {
|
||||||
|
messageApi.open({
|
||||||
|
type: 'error',
|
||||||
|
content: '内容和附件至少需要填写或上传一项',
|
||||||
|
})
|
||||||
|
}}
|
||||||
|
autoComplete="off"
|
||||||
|
>
|
||||||
|
<div className='correctionRemarkBox'>
|
||||||
|
<div className='correctionTitle'>内容</div>
|
||||||
|
<Form.Item
|
||||||
|
|
||||||
|
name="upCorrectionRemark"
|
||||||
|
rules={[
|
||||||
|
// { required: true, message: '请输入需要补充内容' },
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => validateContentOrFile(rule, value, callback, form),
|
||||||
|
},
|
||||||
|
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
<TextArea style={{
|
||||||
|
height: 100,
|
||||||
|
resize: 'none',
|
||||||
|
width: 900,
|
||||||
|
|
||||||
|
}}
|
||||||
|
placeholder='请输入需要补充内容'
|
||||||
|
></TextArea>
|
||||||
|
</Form.Item>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div className='correctionRemarkBox' style={{
|
||||||
|
marginTop: 0
|
||||||
|
}}>
|
||||||
|
<div className='correctionTitle'>附件</div>
|
||||||
|
<div style={{
|
||||||
|
maxWidth: 800,
|
||||||
|
overflow: 'hidden',
|
||||||
|
textOverflow: 'ellipsis',
|
||||||
|
whiteSpace: 'nowrap',
|
||||||
|
}}>
|
||||||
|
<Form.Item
|
||||||
|
|
||||||
|
name="upFile"
|
||||||
|
rules={[
|
||||||
|
// { required: true, message: '请上传附件' },
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => validateContentOrFile(rule, value, callback, form),
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
|
||||||
|
<Upload
|
||||||
|
name="file"
|
||||||
|
action={uploadFileUrl()}
|
||||||
|
defaultFileList={upFileArray}
|
||||||
|
onChange={(info) => {
|
||||||
|
setUpFileArray(info.fileList)
|
||||||
|
// console.log(info.fileList);
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
|
headers={{ 'Auth': `Bearer ${token}` }}
|
||||||
|
|
||||||
|
>
|
||||||
|
<Button icon={<UploadOutlined />}>上传附件</Button>
|
||||||
|
</Upload>
|
||||||
|
|
||||||
|
|
||||||
|
</Form.Item>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<Form.Item
|
||||||
|
|
||||||
|
>
|
||||||
|
<div style={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'flex-end',
|
||||||
|
gap: 10,
|
||||||
|
// marginTop: 20
|
||||||
|
}}>
|
||||||
|
<Button onClick={() => {
|
||||||
|
setIsModalVisible(false)
|
||||||
|
form.resetFields();
|
||||||
|
}}>取消</Button>
|
||||||
|
<Button type="primary" htmlType="submit" >确定</Button>
|
||||||
|
</div>
|
||||||
|
</Form.Item>
|
||||||
|
|
||||||
|
|
||||||
|
</Form>
|
||||||
|
</div>
|
||||||
|
</Modal>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
@ -3314,6 +3314,7 @@ export default function Index() {
|
|||||||
style={{ background: 'var(--color-searchbtn)' }}
|
style={{ background: 'var(--color-searchbtn)' }}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setAppModal(true)
|
setAppModal(true)
|
||||||
|
setAppGoodsId('')
|
||||||
}}
|
}}
|
||||||
>申请电子软著</Button>
|
>申请电子软著</Button>
|
||||||
<Search
|
<Search
|
||||||
@ -3366,7 +3367,7 @@ export default function Index() {
|
|||||||
// { value: '1', label: '未付款' },
|
// { value: '1', label: '未付款' },
|
||||||
{ value: '2', label: '资料填写中' },
|
{ value: '2', label: '资料填写中' },
|
||||||
{ value: '3', label: '资料审核中' },
|
{ value: '3', label: '资料审核中' },
|
||||||
{ value: '4', label: '下线申请中' },
|
{ value: '4', label: '线下申请中' },
|
||||||
{ value: '5', label: '已下证' },
|
{ value: '5', label: '已下证' },
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
@ -3822,7 +3823,7 @@ export default function Index() {
|
|||||||
footer={null}
|
footer={null}
|
||||||
onCancel={() => {
|
onCancel={() => {
|
||||||
setAppModal(false)
|
setAppModal(false)
|
||||||
setAppGoodsId('')
|
|
||||||
}}
|
}}
|
||||||
okButtonProps={{ style: { background: 'red', color: 'white' } }}
|
okButtonProps={{ style: { background: 'red', color: 'white' } }}
|
||||||
width={830}
|
width={830}
|
||||||
|
Loading…
Reference in New Issue
Block a user