This commit is contained in:
lyp 2025-05-21 17:33:03 +08:00
parent 153b4a963b
commit 85b69fb647
19 changed files with 943 additions and 104 deletions

View File

@ -7,5 +7,6 @@ VITE_AI_SHOP_BASE_URL=http://192.168.0.115:8081
VITE_WEBSOCKET_BASE_URL=ws://${VITE_HOST}:7025/copyright
# 18634604067
VITE_USERID=80d3365e-0597-4988-979e-18ef1c3ec671
# VITE_USERID=e3e40f95-7a3f-4b53-a1a0-51dd4e881d74
# VITE_CURRENT_THEME=fzkj
VITE_CURRENT_THEME=mzw

View File

@ -248,7 +248,7 @@ export default function CapitalModal() {
width: 160,
align: 'center',
render:(text) => (
<div >{text == 'ai'?'AI喵著':text}</div>
<div >{text == 'ai'?'AI喵著':text == 'shop'?'软著交易':text}</div>
)
},
{

View File

@ -36,7 +36,8 @@ export default function OrderDetailModal(props: any) {
produceTime: '',//下证时间
successTime: '',//评价时间
evaluateLevel: 0,//评价星级
evaluateRemark: ''//评价内容
evaluateRemark: '',//评价内容
goodsDTO:{}
})
const [goodsInfo, setGoodsInfo] = useState({
goodsPhoto: '',//软著图片
@ -174,7 +175,7 @@ export default function OrderDetailModal(props: any) {
</div>
<div className='orderDetailBot'>
<div style={{ display: activeKey == 'roder' ? 'block' : 'none' }}>
<OrderInfo orderInfo={orderInfo}></OrderInfo>
<OrderInfo orderInfo={orderInfo} user={props.user}></OrderInfo>
</div>
<div style={{ display: activeKey == 'goodsInfo' ? 'block' : 'none' }}>
<GoodsInfo goodsInfo={goodsInfo} ></GoodsInfo>

View File

@ -28,7 +28,7 @@ export default function OrderInfo(props: any) {
color: "#5C5C5C",
height: 42,
background: '#F5F5F9',
}} value={orderInfo.payMoney}></Input>
}} value={props.user=='sell'?orderInfo.goodsDTO.goodsPrice:orderInfo.goodsDTO.goodsOpenPrice}></Input>
</div>
<div className='orderInfo'>
<div className='orderInfo-title'></div>

View File

@ -82,12 +82,12 @@
color: #313131;
line-height: 50px;
cursor: pointer; */
height: 50px;
height: 40px;
margin-left: 35px;
font-weight: 400;
font-size: 16px;
color: #313131;
line-height: 50px;
line-height: 40px;
cursor: pointer;
/* background-color: red; */
text-indent: 32px;
@ -108,7 +108,7 @@
.menu-with-bot-button ul li.active {
/* text-decoration-line: underline; */
width: 213px;
height: 50px;
height: 40px;
/* background: #FF9F08; */
background: var(--color-menuactive);
border-radius: 25px;
@ -198,12 +198,12 @@
color: #313131;
line-height: 50px;
cursor: pointer; */
height: 50px;
height: 40px;
margin-left: 35px;
font-weight: 400;
font-size: 16px;
color: #313131;
line-height: 50px;
line-height: 40px;
cursor: pointer;
/* background-color: red; */
text-indent: 32px;
@ -228,7 +228,7 @@
width: 213px;
/* 修改 */
width: 171px;
height: 50px;
height: 40px;
/* background: #FF9F08; */
background: var(--color-menuactive);
border-radius: 25px;

View File

@ -73,12 +73,12 @@
}
.menu-with-top-button ul li {
height: 50px;
height: 40px;
margin-left: 35px;
font-weight: 400;
font-size: 16px;
color: #313131;
line-height: 50px;
line-height: 40px;
cursor: pointer;
/* background-color: red; */
text-indent: 32px;
@ -91,7 +91,7 @@
width: 213px;
/* 修改 */
width: 171px;
height: 50px;
height: 40px;
/* background: #FF9F08; */
background: var(--color-menuactive);
border-radius: 25px;
@ -172,12 +172,12 @@
}
.menu-with-top-button ul li {
height: 50px;
height: 40px;
margin-left: 35px;
font-weight: 400;
font-size: 16px;
color: #313131;
line-height: 50px;
line-height: 40px;
cursor: pointer;
/* background-color: red; */
text-indent: 32px;
@ -185,7 +185,7 @@
.menu-with-top-button ul li.active {
width: 213px;
height: 50px;
height: 40px;
/* background: #FF9F08; */
background: var(--color-menuactive);

View File

@ -1,10 +1,12 @@
import { useState, useEffect } from 'react'
import EditAppInfo from './components/EditAppInfo/EditAppInfo';
import EditAppDes from './components/EditAppDes/EditAppDes';
// import EditAppDes from './components/EditAppDes/EditAppDes';
import EditAppFiles from './components/EditAppFiles/EditAppFiles';
import EditAppFunction from './components/EditAppFunction/EditAppFunction';
import EditBelongPeople from './components/EditBelongPeople/EditBelongPeople';
// import EditAppFunction from './components/EditAppFunction/EditAppFunction';
// import EditBelongPeople from './components/EditBelongPeople/EditBelongPeople';
import AppInfo from './components/AppInfo/AppInfo';
import AppCompany from './components/AppCompany/AppCompany';
import { useParams } from 'react-router-dom'
import './app-edit.css'
import {
@ -40,7 +42,7 @@ export default function AppEdit() {
color: editProcess >= 1 ? '#353535' : '#878787',
fontWeight: editProcess >= 1 ? 'bold' : 'normal'
}}
></div>
>/</div>
</div>
<div className='editright'><RightOutlined /></div>
<div className='editProcess'>
@ -82,9 +84,12 @@ export default function AppEdit() {
color: editProcess >= 4 ? '#353535' : '#878787',
fontWeight: editProcess >= 4 ? 'bold' : 'normal'
}}
></div>
>
{/* 功能特点 */}
</div>
</div>
<div className='editright'><RightOutlined /></div>
{/* <div className='editright'><RightOutlined /></div>
<div className='editProcess'>
<div className='editProcessNum' style={{
background: editProcess >= 5 ? '#3B60E8' : '',
@ -111,28 +116,38 @@ export default function AppEdit() {
fontWeight: editProcess >= 6 ? 'bold' : 'normal'
}}
></div>
</div>
</div> */}
</div>
<div className='editFormBox'>
<div style={{
display: editProcess == 1 ? 'block' : 'none'
}}>
<AppCompany setEditProcess={
(num: number) => {
setEditProcess(num)
}
}></AppCompany>
{/* <EditAppInfo setEditProcess={
(num: number) => {
setEditProcess(num)
}
}></EditAppInfo> */}
</div>
<div style={{
display: editProcess == 2 ? 'block' : 'none'
}}>
<EditAppInfo setEditProcess={
(num: number) => {
setEditProcess(num)
}
}></EditAppInfo>
</div>
<div style={{
display: editProcess == 2 ? 'block' : 'none'
}}>
<EditAppDes setEditProcess={
{/* <EditAppDes setEditProcess={
(num: number) => {
setEditProcess(num)
}
}></EditAppDes>
}></EditAppDes> */}
</div>
<div style={{
display: editProcess == 3 ? 'block' : 'none'
@ -146,13 +161,18 @@ export default function AppEdit() {
<div style={{
display: editProcess == 4 ? 'block' : 'none'
}}>
<EditAppFunction setEditProcess={
{/* <EditAppFunction setEditProcess={
(num: number) => {
setEditProcess(num)
}
}></EditAppFunction>
}></EditAppFunction> */}
<AppInfo setEditProcess={
(num: number) => {
setEditProcess(num)
}
}></AppInfo>
</div>
<div style={{
{/* <div style={{
display: editProcess == 5 ? 'block' : 'none'
}}>
<EditBelongPeople setEditProcess={
@ -169,7 +189,7 @@ export default function AppEdit() {
setEditProcess(num)
}
}></AppInfo>
</div>
</div> */}
</div>
</div>
)

View File

@ -11,7 +11,7 @@
.editProcessBox {
display: flex;
align-items: center;
justify-content: space-between;
justify-content: space-evenly;
margin-bottom: 30px;
}

View File

@ -0,0 +1,494 @@
import { useState } from 'react'
import './app-company.css'
import { uploadFileUrl } from '../../../../request/request'
import { Button, Form, Input, message,
// Select, DatePicker,
Upload, Image,
// Cascader
} from "antd"
import { LoadingOutlined, } from '@ant-design/icons';
import type { GetProp, UploadProps } from 'antd';
// import {
// getCityList
// } from '../../../../request/api'
// import locale from 'antd/es/date-picker/locale/zh_CN';
// interface Option {
// value?: string | number | null;
// label: React.ReactNode;
// children?: Option[];
// isLeaf?: boolean;
// // id: string;
// // pId: string;
// }
export default function AppCompany(props: any) {
// const [messageApi, contextHolder] = message.useMessage();
// const [areaArray, setAreaArray] = useState<Option[]>([]);
// 加载城市列表
// const loadCityList = async (selectedOptions: Option[]) => {
// const targetOption = selectedOptions[selectedOptions.length - 1];
// // console.log('targetOption', targetOption.children);
// try {
// const res: any = await getCityList(targetOption.value as string);
// // console.log('城市列表', res);
// const cities = res.map((city: any) => ({
// value: city.areaId,
// label: city.areaName,
// }));
// targetOption.children = cities;
// // 更新 areaArray 状态
// setAreaArray([...areaArray]);
// } 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)
// }
// }
// };
// 定义 beforeUpload 函数
const beforeUpload = (file: any) => {
const isJpgOrPng = ['image/jpeg', 'image/png', 'image/bmp'].includes(file.type);
if (!isJpgOrPng) {
message.error('只能上传 JPG、JPEG、PNG、BMP 格式的文件!');
}
const isLt4M = file.size / 1024 / 1024 < 4;
if (!isLt4M) {
message.error('文件大小不能超过 4MB!');
}
return isJpgOrPng && isLt4M;
};
type FileType = Parameters<GetProp<UploadProps, 'beforeUpload'>>[0];
const [loading, setLoading] = useState(false);
const getBase64 = (img: FileType, callback: (url: string) => void) => {
const reader = new FileReader();
reader.addEventListener('load', () => callback(reader.result as string));
reader.readAsDataURL(img);
};
const [imageUrl, setImageUrl] = useState('');
const handleChange: UploadProps['onChange'] = (info) => {
if (info.file.status === 'uploading') {
setLoading(true);
return;
}
if (info.file.status === 'done') {
// Get this url from response in real world.
getBase64(info.file.originFileObj as FileType, (url) => {
setLoading(false);
setImageUrl(url);
});
console.log(info);
}
if (info.file.status === 'error') {
setLoading(false);
// 显示错误提示
message.error(`上传失败`);
//伤处表单name为ing的值
form.setFieldsValue({
img: '', // 将值设置为 undefined 以清除错误状态
})
}
};
// 自定义验证规则
const validateUpload = () => {
if (loading) {
return Promise.reject(new Error('文件上传中,请等待上传完成'));
}
if (!imageUrl) {
return Promise.reject(new Error('请上传有效的文件'));
}
return Promise.resolve();
};
const token = sessionStorage.getItem('token')
const submitInfo = (values: any) => {
message.success('提交成功');
console.log(values);
props.setEditProcess(2);
}
const height = window.innerHeight - 460;
const [form] = Form.useForm();
const handleSubmit = () => {
// console.log(form);
props.setEditProcess(2);
// 调用表单实例的 submit 方法
form.submit();
};
const onFinish = (values: any) => {
// 处理表单提交逻辑
console.log('表单提交成功', values);
submitInfo(values)
};
return (
<div className='appInfoBox'>
{/* {contextHolder} */}
<div className='bigLine'></div>
<div className='appInfoFormBox' style={{
height: height
}}>
<Form form={form} onFinish={onFinish}
onFinishFailed={() => {
message.error('请完善信息')
}}
>
<div style={{
display: 'flex',
justifyContent: 'space-between',
width: '900px',
// background: 'pink'
}}>
<div className='appInfoFormInput'>
<div className='FormInputTitle'>/<span style={{color:'red',}}>*</span></div>
<Form.Item name="name" label="" rules={[{ required: true, message: '请输入企业/机构名称' },
]}>
<Input
allowClear
style={{
width: '300px',
height: '42px',
}} placeholder="请输入企业/机构名称" />
</Form.Item>
</div>
{/* <div className='appInfoFormInput' style={{
}}>
<div className='FormInputTitle'></div>
<Form.Item name="subName" label="" rules={[{ required: true, message: '请选择省市' },
]}>
<Cascader options={areaArray}
allowClear
style={{
width: '300px',
height: '42px',
}}
loadData={loadCityList}
placeholder="请选择省市"
changeOnSelect
/>
</Form.Item>
</div> */}
<div className='appInfoFormInput'>
<div className='FormInputTitle' style={{
}}><span style={{color:'red',}}>*</span></div>
<Form.Item name="type" label="" rules={[{ required: true, message: '请输入证件号' },
]}>
<Input
allowClear
style={{
width: '300px',
height: '42px',
}} placeholder="请输入证件号" />
</Form.Item>
</div>
</div>
{/* <div style={{
display: 'flex',
justifyContent: 'space-between',
width: '900px',
}}>
<div className='appInfoFormInput'>
<div className='FormInputTitle'>/</div>
<Form.Item name="vnum" label="" rules={[{ required: true, message: '请输企业/机构地址' },
]}>
<Input
allowClear
style={{
width: '300px',
height: '42px',
}} placeholder="请输入企业/机构地址" />
</Form.Item>
</div>
<div className='appInfoFormInput' style={{
}}>
<div className='FormInputTitle'></div>
<Form.Item name="appId" label="" rules={[{ required: true, message: '请选择成立日期' },
]}>
<DatePicker placeholder="请选择成立日期"
style={{
width: '300px',
height: '42px',
}}
locale={locale}
/>
</Form.Item>
</div>
</div> */}
{/* <div style={{
display: 'flex',
justifyContent: 'space-between',
width: '900px',
}}>
<div className='appInfoFormInput'>
<div className='FormInputTitle'></div>
<Form.Item name="runtype" label="" rules={[{ required: true, message: '请选择证件类型' },
]}>
<Select
allowClear
style={{
width: '300px',
height: '42px',
}}
options={[
// { value: '', label: '全部项目' },
{ value: '1', label: '类型1' },
{ value: '2', label: '类型2' },
{ value: '3', label: '类型3' },
]}
// defaultValue=""
placeholder={'请选择证件类型'}
/>
</Form.Item>
</div>
<div className='appInfoFormInput'>
<div className='FormInputTitle' style={{
}}></div>
<Form.Item name="type" label="" rules={[{ required: true, message: '请输入证件号' },
]}>
<Input
allowClear
style={{
width: '300px',
height: '42px',
}} placeholder="请输入证件号" />
</Form.Item>
</div>
</div> */}
<div style={{
display: 'flex',
justifyContent: 'space-between',
width: '900px',
}}>
<div className='appInfoFormInput'>
<div className='FormInputTitle' style={{
}}><span style={{color:'red',}}>*</span></div>
<div style={{
// background: 'pink',
position: 'relative',
}}>
<Form.Item name="img" label="" rules={[
// { required: true, message: '请上传文件' },
// 添加自定义验证规则
{ validator: validateUpload }
]}>
<Upload
showUploadList={false}
action={uploadFileUrl()}
// defaultFileList={upImgArray}
beforeUpload={beforeUpload}
onChange={handleChange}
onRemove={() => {
// setUpArray([])
// setDisabled(false)
}}
headers={{ 'Auth': `Bearer ${token}` }}
disabled={!!imageUrl}
// beforeUpload={beforeUpload}
>
{imageUrl ?
<div style={{
height: '150px',
width: '300px',
}}>
<Image src={imageUrl} style={{ width: '300px', height: '150px' }}
preview={{
mask: '查看', // 设置点击放大时显示的文字
}}
/>
</div>
: <Button className='upBtn' style={{
height: '150px',
width: '300px',
border: '1px dashed #ccc',
borderRadius: '5px',
color: '#929292',
}}
disabled={loading}
>
{loading ? <span><span style={{ marginRight: 5 }}></span><LoadingOutlined /></span> :
'点击上传文件'
}
</Button>}
</Upload>
</Form.Item>
<div style={{
position: 'absolute',
right: -50,
bottom: 20,
//background:'skyblue',
padding: '5px 10px',
cursor: 'pointer',
color: 'red',
display: imageUrl ? 'block' : 'none',
}}
onClick={() => {
setImageUrl('')
}}
></div>
</div>
</div>
<div className='appInfoFormInput'>
<div className='FormInputTitle' style={{
}}><span style={{color:'red',}}>*</span>
<a style={{
// background:'pink',
textAlign: 'center',
paddingLeft: 23,
// color: '#4ca8e6',
display: 'block',
// cursor: 'pointer',
}}
onClick={() => {
alert('下载授权书')
}}
></a>
</div>
<div style={{
// background: 'pink',
position: 'relative',
}}>
<Form.Item name="img" label="" rules={[
// { required: true, message: '请上传文件' },
// 添加自定义验证规则
{ validator: validateUpload }
]}>
<Upload
showUploadList={false}
action={uploadFileUrl()}
// defaultFileList={upImgArray}
beforeUpload={beforeUpload}
onChange={handleChange}
onRemove={() => {
// setUpArray([])
// setDisabled(false)
}}
headers={{ 'Auth': `Bearer ${token}` }}
disabled={!!imageUrl}
// beforeUpload={beforeUpload}
>
{imageUrl ?
<div style={{
height: '150px',
width: '300px',
}}>
<Image src={imageUrl} style={{ width: '300px', height: '150px' }}
preview={{
mask: '查看', // 设置点击放大时显示的文字
}}
/>
</div>
: <Button className='upBtn' style={{
height: '150px',
width: '300px',
border: '1px dashed #ccc',
borderRadius: '5px',
color: '#929292',
}}
disabled={loading}
>
{loading ? <span><span style={{ marginRight: 5 }}></span><LoadingOutlined /></span> :
'点击上传文件'
}
</Button>}
</Upload>
</Form.Item>
<div style={{
position: 'absolute',
right: -50,
bottom: 20,
//background:'skyblue',
padding: '5px 10px',
cursor: 'pointer',
color: 'red',
display: imageUrl ? 'block' : 'none',
}}
onClick={() => {
setImageUrl('')
}}
></div>
</div>
</div>
</div>
<div style={{
display: 'flex',
color: 'red',
justifyContent: 'center',
// paddingBottom: '20px',
}}>
<div style={{
marginRight: '10px',
}}>:</div>
<div style={{
display: 'flex',
flexDirection: 'column',
alignItems: 'flex-start',
}}>
<div>1.,,</div>
<div>2.4MB的图片(JPGJPEGPNGBMP)</div>
</div>
</div>
</Form>
</div>
<div className='bigLine'></div>
<div className='nextBtnBxo'>
<Button
style={{
width: '235px',
height: '46px',
borderRadius: '5px',
}}
type='primary'
onClick={() => {
handleSubmit()
}}></Button>
</div>
</div>
)
}

View File

@ -0,0 +1,75 @@
.bigLine {
width: 100%;
height: 40px;
background: #F3F3F3;
}
.appInfoFormBox {
padding: 30px 0;
box-sizing: border-box;
overflow: auto;
display: flex;
/* align-items: center; */
justify-content: center;
}
/* Chrome, Safari 和 Opera */
.appInfoFormBox::-webkit-scrollbar {
width: 8px; /* 垂直滚动条宽度 */
height: 8px; /* 水平滚动条高度 */
}
.appInfoFormBox::-webkit-scrollbar-track {
background: #f1f1f1; /* 滚动条轨道背景色 */
border-radius: 4px;
}
.appInfoFormBox::-webkit-scrollbar-thumb {
background: #888; /* 滚动条滑块颜色 */
border-radius: 4px;
}
.appInfoFormBox::-webkit-scrollbar-thumb:hover {
background: #555; /* 鼠标悬停时滚动条滑块颜色 */
}
/* Firefox */
.appInfoFormBox {
scrollbar-width: thin; /* 滚动条宽度可选值auto, thin, none */
scrollbar-color: #888 #f1f1f1; /* 滚动条滑块颜色和轨道颜色 */
}
.nextBtnBxo {
width: 100%;
display: flex;
justify-content: center;
margin-top: 30px;
margin-bottom: 30px;
}
.appInfoFormInput{
display: flex;
/* align-items: center; */
/* background-color: pink; */
/* justify-content: center; */
/* padding:0 80px; */
box-sizing: border-box;
}
.FormInputTitle{
font-size: 16px;
line-height: 42px;
/* background-color: pink; */
width: 145px;
text-align: right;
text-wrap: nowrap;
}
.upBtn{
width: 400px;
height: 200px;
/* background-color: pink; */
display: flex;
justify-content: center;
align-items: center;
/* border: 1px dashed #4ca8e6; */
cursor: pointer;
}

View File

@ -13,9 +13,42 @@ export default function AppInfo(props: any) {
height: height,
justifyContent: 'flex-start',
flexDirection: 'column',
}}>
}}>
<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'>xxx路xxx号</div>
</div>
<div className='appInfoTextItem'>
<div className='appInfoTextItemTitle'> : </div>
<div className='appInfoTextItemText'>xx证</div>
</div>
<div className='appInfoTextItem'>
<div className='appInfoTextItemTitle'> : </div>
<div className='appInfoTextItemText'>111111111</div>
</div>
<div className='appInfoTextItem'>
<div className='appInfoTextItemTitle'> : </div>
<div className='appInfoTextItemText'> xx.png</div>
</div>
<div className='appInfoTextItem'>
<div className='appInfoTextItemTitle'> : </div>
<div className='appInfoTextItemText'> xxx.jpg</div>
</div>
</div>
</div>
<div className='appInfoBox'>
<div className='appInfoTitle'></div>
<div className='appInfoText'>
@ -32,7 +65,7 @@ export default function AppInfo(props: any) {
<div className='appInfoTextItemText'>v.10</div>
</div>
<div className='appInfoTextItem'>
<div className='appInfoTextItemTitle'> : </div>
<div className='appInfoTextItemTitle'>(APPID) : </div>
<div className='appInfoTextItemText'>com.zhongxinhy.communitymanage</div>
</div>
<div className='appInfoTextItem'>
@ -44,24 +77,29 @@ export default function AppInfo(props: any) {
<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'> </div>
</div>
</div> */}
<div className='appInfoTextItem'>
<div className='appInfoTextItemTitle'> : </div>
<div className='appInfoTextItemText'> 2025-05-05</div>
</div>
<div className='appInfoTextItem'>
{/* <div className='appInfoTextItem'>
<div className='appInfoTextItemTitle'> : </div>
<div className='appInfoTextItemText'> </div>
</div>
</div> */}
<div className='appInfoTextItem'>
<div className='appInfoTextItemTitle'> : </div>
<div className='appInfoTextItemText'> </div>
<div className='appInfoTextItemTitle'> : </div>
<div className='appInfoTextItemText'> </div>
</div>
</div>
</div>
<div className='appInfoBox'>
{/* <div className='appInfoBox'>
<div className='appInfoTitle'></div>
<div className='appInfoText'>
<div className='appInfoTextItem'>
@ -79,7 +117,7 @@ export default function AppInfo(props: any) {
</div>
</div>
</div> */}
<div className='appInfoBox'>
<div className='appInfoTitle'></div>
<div className='appInfoText'>
@ -94,7 +132,7 @@ export default function AppInfo(props: any) {
</div>
</div>
<div className='appInfoBox'>
{/* <div className='appInfoBox'>
<div className='appInfoTitle'></div>
<div className='appInfoText'>
<div className='appInfoTextItem'>
@ -123,8 +161,8 @@ export default function AppInfo(props: any) {
</div>
</div>
</div>
<div className='appInfoBox'>
</div> */}
{/* <div className='appInfoBox'>
<div className='appInfoTitle'></div>
<div className='appInfoText'>
<div className='appInfoTextItem'>
@ -133,7 +171,7 @@ export default function AppInfo(props: any) {
</div>
</div>
</div>
</div> */}
</div>
<div className='bigLine'></div>
@ -145,7 +183,7 @@ export default function AppInfo(props: any) {
borderRadius: '5px',
}}
onClick={() => {
props.setEditProcess(5)
props.setEditProcess(3)
}}></Button>
<Button
style={{

View File

@ -28,7 +28,7 @@
.appInfoTextItemTitle {
/* background-color: pink; */
width: 120px;
width: 150px;
text-align: right;
margin-right: 8px;
}

View File

@ -13,6 +13,12 @@ export default function EditAppFiles(props: any) {
return Upload.LIST_IGNORE;
}
return true;
};
// 处理文件点击预览
const handlePreview = (file: any) => {
console.log(file);
};
// 上传文件源码文档列表
const [upCodeArray, setUpCodeArray] = useState<any>([])
@ -93,7 +99,7 @@ export default function EditAppFiles(props: any) {
console.log('表单提交成功', values);
submitInfo(values)
console.log(upCodeArray);
};
return (
<div>
@ -132,7 +138,7 @@ export default function EditAppFiles(props: any) {
position: 'relative',
}}>
<div className='FormInputTitle' style={{
}}></div>
}}><span style={{color:'red',}}>*</span></div>
<div style={{
width: '220px',
}}>
@ -147,13 +153,14 @@ export default function EditAppFiles(props: any) {
onChange={({ fileList }) => {
console.log(fileList);
// console.log(upCodeArray);
}}
onRemove={() => {
setUpCodeArray([])
setCodeDis(false)
}}
beforeUpload={beforeUpload}
onPreview={handlePreview}
// onChange={handleUploadChange}
headers={{ 'Auth': `Bearer ${token}` }}
>
@ -168,7 +175,7 @@ export default function EditAppFiles(props: any) {
<a style={{
position: 'absolute',
top: '10px',
left: '240px',
left: '260px',
textWrap: 'nowrap'
}}>[ ]</a>
</div>
@ -176,7 +183,7 @@ export default function EditAppFiles(props: any) {
position: 'relative',
}}>
<div className='FormInputTitle' style={{
}}></div>
}}><span style={{color:'red',}}>*</span></div>
<div style={{
width: '220px',
}}>
@ -198,7 +205,6 @@ export default function EditAppFiles(props: any) {
beforeUpload={beforeUpload}
// onChange={handleUploadChange}
headers={{ 'Auth': `Bearer ${token}` }}
>
<Button icon={<UploadOutlined />} style={{
marginTop: '4px'
@ -211,7 +217,7 @@ export default function EditAppFiles(props: any) {
<a style={{
position: 'absolute',
top: '10px',
left: '240px',
left: '260px',
textWrap: 'nowrap'
}}>[ ]</a>
</div>
@ -221,8 +227,7 @@ export default function EditAppFiles(props: any) {
</Form>
</div>
<div className="fileTextBox">
{/* 循环100次 */}
{/* <div className="fileTextBox">
{Array.from({ length: 100 }).map((_, index) => (
<span style={{
lineHeight: '30px',
@ -234,7 +239,7 @@ export default function EditAppFiles(props: any) {
</span>
))}
</div>
</div> */}
</div>
<div className='bigLine'></div>

View File

@ -1,9 +1,45 @@
// import {useEffect,useState} from 'react'
import { Button, Form, Input, message, Select, Radio, DatePicker } from "antd"
import { useState } from 'react'
import BelongPeople from '../../../../components/BelongPeople/BelongPeople.tsx'
import { Button, Form, Input, message, Select, Modal, DatePicker, Upload } from "antd"
import { UploadOutlined } from '@ant-design/icons';
import { uploadFileUrl } from '../../../../request/request'
import './edit-app-info.css'
import locale from 'antd/es/date-picker/locale/zh_CN';
export default function EditAppInfo(props: any) {
const token = sessionStorage.getItem('token')
const [upShow, setUpShow] = useState(false) //上传合作协议是否显示
// 定义允许上传的文件格式
const ALLOWED_FILE_TYPES = ['.pdf', '.doc', '.docx', '.jpg', '.jpeg', '.png'];
const beforeUpload = (file: File) => {
const fileExt = file.name.slice(file.name.lastIndexOf('.')).toLowerCase();
if (!ALLOWED_FILE_TYPES.includes(fileExt)) {
message.error(`仅支持 ${ALLOWED_FILE_TYPES.join(', ')} 格式的文件`);
return Upload.LIST_IGNORE;
}
return true;
};
// 上传文件软件文档列表
const [upSoftArray, setUpSoftArray] = useState<any>([])
const [softDis, setSoftDis] = useState(false)
// 所属者弹窗
const [belongModal, setBelongModal] = useState(false)
const [belongPeopleInfo, setBelongPeopleInfo] = useState({
authorName: '',
authorType: '',
authorIdCardType: '',
authorIdCard: '',
authorCrcAccount: 0,
authorId: '',
authorProvinceCity: '',
authorCrcAccountPassword: '',
authorCrcAccountUsername: ''
})
const setValue = (value: string) => {
form.setFieldsValue({
belongPeople: value
})
}
const submitInfo = (values: any) => {
message.success('提交成功');
console.log(values);
@ -17,7 +53,7 @@ export default function EditAppInfo(props: any) {
const handleSubmit = () => {
// console.log(form);
props.setEditProcess(2);
props.setEditProcess(3);
// 调用表单实例的 submit 方法
form.submit();
@ -48,7 +84,7 @@ export default function EditAppInfo(props: any) {
// background: 'pink'
}}>
<div className='appInfoFormInput'>
<div className='FormInputTitle'></div>
<div className='FormInputTitle'><span style={{color:'red',}}>*</span></div>
<Form.Item name="name" label="" rules={[{ required: true, message: '请输入软件全称' },
]}>
@ -64,7 +100,7 @@ export default function EditAppInfo(props: any) {
}}>
<div className='FormInputTitle'></div>
<Form.Item name="subName" label="" rules={[{ required: true, message: '请输入软件简称' },
<Form.Item name="subName" label="" rules={[{ required: false, message: '请输入软件简称' },
]}>
<Input
@ -82,7 +118,7 @@ export default function EditAppInfo(props: any) {
width: '900px',
}}>
<div className='appInfoFormInput'>
<div className='FormInputTitle'></div>
<div className='FormInputTitle'><span style={{color:'red',}}>*</span></div>
<Form.Item name="vnum" label="" rules={[{ required: true, message: '请输入版本号' },
]}>
@ -96,7 +132,7 @@ export default function EditAppInfo(props: any) {
</div>
<div className='appInfoFormInput' style={{
}}>
<div className='FormInputTitle'>APPID</div>
<div className='FormInputTitle'>APPID<span style={{color:'red',}}>*</span></div>
<Form.Item name="appId" label="" rules={[{ required: true, message: '请输入APPID' },
]}>
@ -115,7 +151,7 @@ export default function EditAppInfo(props: any) {
width: '900px',
}}>
<div className='appInfoFormInput'>
<div className='FormInputTitle'></div>
<div className='FormInputTitle'><span style={{color:'red',}}>*</span></div>
<Form.Item name="runtype" label="" rules={[{ required: true, message: '请选择运行系统' },
]}>
@ -139,7 +175,7 @@ export default function EditAppInfo(props: any) {
</div>
<div className='appInfoFormInput'>
<div className='FormInputTitle' style={{
}}></div>
}}><span style={{color:'red',}}>*</span></div>
<Form.Item name="type" label="" rules={[{ required: true, message: '请选择大类' },
]}>
@ -189,7 +225,7 @@ export default function EditAppInfo(props: any) {
justifyContent: 'space-between',
width: '900px',
}}>
<div className='appInfoFormInput'>
{/* <div className='appInfoFormInput'>
<div className='FormInputTitle'></div>
<Form.Item name="status" label="" rules={[{ required: true, message: '请选择发表状态' },
@ -233,12 +269,12 @@ export default function EditAppInfo(props: any) {
]}
/>
</Form.Item>
</div>
</div> */}
<div className='appInfoFormInput'>
<div className='FormInputTitle' style={{
}}></div>
<Form.Item name="use" label="" rules={[{ required: true, message: '请输入开发方式' },
}}><span style={{color:'red',}}>*</span></div>
<Form.Item name="use" label="" rules={[{ required: true, message: '请选择开发方式' },
]}>
<Select
@ -251,10 +287,41 @@ export default function EditAppInfo(props: any) {
options={[
// { value: '', label: '全部项目' },
{ value: '1', label: '独立开发' },
{ value: '2', label: '团伙开发' },
{ value: '2', label: '合作开发' },
]}
// defaultValue=""
placeholder={'请选择小类'}
onChange={(value) => {
console.log(value);
if (value == '2') {
setUpShow(true)
}else{
setUpShow(false)
}
}}
/>
</Form.Item>
</div>
<div className='appInfoFormInput'>
<div className='FormInputTitle' style={{
}}><span style={{color:'red',}}>*</span></div>
<Form.Item name="date" label="" rules={[{ required: true, message: '请选择开发完成日期' },
]}>
{/* <Input
allowClear
style={{
width: '300px',
height: '42px',
}} placeholder="请输入开发完成日期" /> */}
<DatePicker placeholder="请选择开发完成日期"
style={{
width: '300px',
height: '42px',
}}
locale={locale}
/>
</Form.Item>
</div>
@ -264,7 +331,7 @@ export default function EditAppInfo(props: any) {
justifyContent: 'space-between',
width: '900px',
}}>
<div className='appInfoFormInput'>
{/* <div className='appInfoFormInput'>
<div className='FormInputTitle'></div>
<Form.Item name="text" label="" rules={[{ required: true, message: '请选择软件作品说明' },
@ -308,30 +375,128 @@ export default function EditAppInfo(props: any) {
]}
/>
</Form.Item>
</div>
<div className='appInfoFormInput'>
<div className='FormInputTitle' style={{
}}></div>
<Form.Item name="date" label="" rules={[{ required: true, message: '请选择开发完成日期' },
</div> */}
<div className='appInfoFormInput' style={{
// background: 'pink',
position: 'relative',
}}>
<div className='FormInputTitle'><span style={{color:'red',}}>*</span></div>
<Form.Item name="belongPeople" label="" rules={[{ required: true, message: '请选择/创建知识产权所属者' },
]}>
{/* <Input
allowClear
<Input
style={{
width: '300px',
height: '42px',
}} placeholder="请输入开发完成日期" /> */}
<DatePicker placeholder="请选择开发完成日期"
style={{
width: '300px',
height: '42px',
}}
locale={locale}
/>
}} placeholder="请选择/创建知识产权所属者" />
</Form.Item>
<div style={{
display: belongPeopleInfo.authorId ? 'none' : 'unset',
position: 'absolute',
width: '300px',
height: '42px',
top: '0',
right: '0',
// background: 'skyblue',
textAlign: 'right',
lineHeight: '42px',
cursor: 'pointer',
paddingRight: '10px',
color: '#1F79FF',
}}
onClick={() => {
setBelongModal(true)
}}
>
</div>
<div style={{
display: belongPeopleInfo.authorId ? 'unset' : 'none',
position: 'absolute',
width: '300px',
height: '42px',
top: '0',
right: '0',
// background: 'skyblue',
textAlign: 'right',
lineHeight: '42px',
paddingRight: '10px',
color: '#1F79FF',
}}
>
<span
style={{
cursor: 'pointer',
}}
onClick={() => {
setValue('')
setBelongPeopleInfo({
authorName: '',
authorType: '',
authorIdCardType: '',
authorIdCard: '',
authorCrcAccount: 0,
authorId: '',
authorProvinceCity: '',
authorCrcAccountUsername: '',
authorCrcAccountPassword: '',
})
}}> </span>
</div>
</div>
<div style={{
display: upShow ? 'unset' : 'none',
}}>
<div className='appInfoFormInput' style={{
// background: 'pink',
width: '440px',
position: 'relative',
}}>
<div className='FormInputTitle' style={{
}}><span style={{color:'red',}}>*</span></div>
<div style={{
width: '220px',
}}>
<Form.Item name="upfile" label="" rules={[{ required: true, message: '请上传合作协议' },
]}>
<Upload
name="file"
action={uploadFileUrl()}
defaultFileList={upSoftArray}
onChange={({ fileList }) => {
console.log(fileList);
}}
onRemove={() => {
setUpSoftArray([])
setSoftDis(false)
}}
beforeUpload={beforeUpload}
// onChange={handleUploadChange}
headers={{ 'Auth': `Bearer ${token}` }}
>
<Button icon={<UploadOutlined />} style={{
marginTop: '4px'
}}
disabled={softDis}
></Button>
</Upload>
</Form.Item>
</div>
<a style={{
position: 'absolute',
top: '10px',
left: '260px',
textWrap: 'nowrap'
}}>[ ]</a>
</div>
</div>
</div>
{/* <div style={{
display: 'flex',
@ -367,11 +532,35 @@ export default function EditAppInfo(props: any) {
height: '46px',
borderRadius: '5px',
}}
onClick={() => {
props.setEditProcess(1)
}}></Button>
<Button
style={{
width: '235px',
height: '46px',
borderRadius: '5px',
marginLeft: '10px',
}}
type='primary'
onClick={() => {
handleSubmit()
}}></Button>
</div>
<Modal title="选择所属者"
destroyOnClose
centered
open={belongModal}
width={1200}
footer={null}
onCancel={() => {
setBelongModal(false)
}}>
<BelongPeople closeModal={() => { setBelongModal(false) }} setBelongPeopleInfo={setBelongPeopleInfo} belongPeopleInfo={belongPeopleInfo} setValue={setValue} isShow={true}></BelongPeople>
</Modal>
</div>
)
}

View File

@ -284,7 +284,7 @@ export default function CopyrightGgoods() {
<span style={{
fontSize: 20,
}}></span>
<span>{item.goodsPrice}</span>
<span>{item.goodsOpenPrice}</span>
</div>

View File

@ -1195,7 +1195,7 @@ export default function EditModal(props: any) {
<Col span={12}>
<Form.Item
label="姓名或名称"
label="姓名或机构名称"
name="peopleName"
rules={[{ required: true, message: '请输入姓名或名称' }]}
>

View File

@ -14,6 +14,7 @@ import {
// Flex,
Button
} from 'antd';
import { showImage } from '../../request/request'
import AiShopDetail from '../../components/AiShopDetail/AiShopDetail'
import { GlobalDispatchContext, reloadUser } from "../../context/GlobalContext.ts";
// import type { TableColumnsType } from 'antd';
@ -281,8 +282,8 @@ export default function TradingGoods() {
<span style={{ display: text == '2' ? 'unset' : 'none', color: 'red' }}></span>
<span style={{ display: text == '3' ? 'unset' : 'none' }}></span>
<span style={{ display: text == '4' ? 'unset' : 'none' }}></span>
<span style={{ display: text == '5' ? 'unset' : 'none' }}></span>
<span style={{ display: text == '6' ? 'unset' : 'none' }}></span>
{/* <span style={{ display: text == '5' ? 'unset' : 'none' }}>买家已评价</span> */}
{/* <span style={{ display: text == '6' ? 'unset' : 'none' }}>发票已开具</span> */}
</div>
)} />
<Column title="下单时间" dataIndex="createTime" align="center" width={160} />
@ -410,6 +411,17 @@ export default function TradingGoods() {
>
</div>
<a className='trading-goods-table-btn' onClick={() => {
window.open(showImage(record.producePhoto, false))
// console.log(record);
}}
style={{
display: record.orderStatus == '4' ? 'unset' : 'none'
}}
>
</a>
</div>
)}
/>

View File

@ -152,10 +152,10 @@ export default function TransactionOrder() {
<div style={{ color: '#1B8BD2', fontSize: '16px', fontWeight: '700', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }} title={text.goodsName}>{text.goodsName}</div>
)}
/>
<Column title="订单价格" dataIndex="payMoney" align="center"
<Column title="订单价格" dataIndex="goodsDTO" align="center"
width={110}
render={(text) => (
<span style={{ color: '#FF5D15', fontSize: '24px', fontWeight: '700' }}>{text}</span>
<span style={{ color: '#FF5D15', fontSize: '24px', fontWeight: '700' }}>{text.goodsPrice}</span>
)} />
<Column title="订单状态" dataIndex="orderStatus" align="center"
width={120}

View File

@ -597,7 +597,7 @@ export default function Index() {
},
list: [
{ id: 'PRODUCT', name: '我要卖软著' }, //原商品发布
{ id: 'TRABSACTION', name: '已上架软著' },
{ id: 'TRABSACTION', name: '已销售软著' },
{ id: 'COPYRIGHT', name: '我要买软著' },
{ id: 'TRADING', name: '已购买软著' },
@ -2957,8 +2957,8 @@ export default function Index() {
{ value: '2', label: '待填写资料' },
{ value: '3', label: '过户进行中' },
{ value: '4', label: '过户已完成' },
{ value: '5', label: '买家已评价' },
{ value: '6', label: '发票已开具' },
// { value: '5', label: '买家已评价' },
// { value: '6', label: '发票已开具' },
]}
value={sellOrderStatus}
@ -3096,6 +3096,9 @@ export default function Index() {
>
</Button>
<div >
!
</div>
</div>
</div>
<div style={{ display: tradingSearchBox ? 'block' : 'none', }}>
@ -3154,8 +3157,8 @@ export default function Index() {
{ value: '2', label: '待填写资料' },
{ value: '3', label: '过户进行中' },
{ value: '4', label: '过户已完成' },
{ value: '5', label: '买家已评价' },
{ value: '6', label: '发票已开具' },
// { value: '5', label: '买家已评价' },
// { value: '6', label: '发票已开具' },
]}
value={tradingStatus}
allowClear
@ -3172,6 +3175,7 @@ export default function Index() {
>
</Button>
</div>
</div>