暂存
This commit is contained in:
parent
3f02852844
commit
75c8a8a788
@ -754,7 +754,7 @@ export default function BelongPeople(props: propsInfo) {
|
|||||||
</Form>
|
</Form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style={{ display: props.isShow ? 'block' : 'none', marginTop: 10 }}>
|
<div style={{ display: props.isShow ? 'block' : 'none', position:'absolute',right:0,bottom:10 }}>
|
||||||
<div className="belongPeopleModal-btn" style={{ display: 'flex', justifyContent: 'flex-end' }} >
|
<div className="belongPeopleModal-btn" style={{ display: 'flex', justifyContent: 'flex-end' }} >
|
||||||
<Button onClick={() => {
|
<Button onClick={() => {
|
||||||
props.closeModal()
|
props.closeModal()
|
||||||
|
@ -27,7 +27,13 @@ type ContactType = {
|
|||||||
const { Search } = Input;
|
const { Search } = Input;
|
||||||
const { Column } = Table;
|
const { Column } = Table;
|
||||||
|
|
||||||
export default function ContactPeople() {
|
export default function ContactPeople(props: any) {
|
||||||
|
const [applyConcatId, setApplyConcatId] = useState('') //联系人id
|
||||||
|
const [applyContactCsaNo, setapplyContactCsaNo] = useState('') //客服编号
|
||||||
|
const [applyContactEmail, setapplyContactEmail] = useState('') //联系人邮箱
|
||||||
|
const [applyContactName, setapplyContactName] = useState('') //联系人姓名
|
||||||
|
const [applyContactPhone, setapplyContactPhone] = useState('') //联系人手机
|
||||||
|
const [applyContactCompany, setapplyContactCompany] = useState('')
|
||||||
const [messageApi, contextHolder] = message.useMessage();
|
const [messageApi, contextHolder] = message.useMessage();
|
||||||
const [formContact] = Form.useForm<ContactType>()
|
const [formContact] = Form.useForm<ContactType>()
|
||||||
const height = window.innerHeight - 200;
|
const height = window.innerHeight - 200;
|
||||||
@ -73,6 +79,20 @@ export default function ContactPeople() {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 联系人表格选择触发
|
||||||
|
const ContantRowSelection = {
|
||||||
|
// selectedRowKeys: React.Key[]
|
||||||
|
onChange: (selectedRowKeys: React.Key[], selectedRows: ContactDataType[]) => {
|
||||||
|
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
|
||||||
|
setApplyConcatId(selectedRows[0].projContactId)
|
||||||
|
setapplyContactCsaNo(selectedRows[0].csaNo)
|
||||||
|
setapplyContactEmail(selectedRows[0].email)
|
||||||
|
setapplyContactName(selectedRows[0].name)
|
||||||
|
setapplyContactPhone(selectedRows[0].phone)
|
||||||
|
setapplyContactCompany(selectedRows[0].company)
|
||||||
|
},
|
||||||
|
|
||||||
|
};
|
||||||
// 点击创建联系热人获取随机客服
|
// 点击创建联系热人获取随机客服
|
||||||
const getCas = () => {
|
const getCas = () => {
|
||||||
get({
|
get({
|
||||||
@ -174,7 +194,7 @@ export default function ContactPeople() {
|
|||||||
|
|
||||||
}, [])
|
}, [])
|
||||||
return (
|
return (
|
||||||
<div style={{ height: `${height - 175}px`, overflow: 'auto' }}>
|
<div style={{ height: props.isShow ? `${height - 80}px`:`${height - 160}px`, overflow: 'auto', position: 'relative' }}>
|
||||||
{contextHolder}
|
{contextHolder}
|
||||||
<div style={{ padding: '22px 15px 0 15px', background: 'var(--color-light)' }}>
|
<div style={{ padding: '22px 15px 0 15px', background: 'var(--color-light)' }}>
|
||||||
<div style={{ padding: '14px 19px', background: '#F3F3F3', color: '#A3A3A3', fontSize: '14px' }}>
|
<div style={{ padding: '14px 19px', background: '#F3F3F3', color: '#A3A3A3', fontSize: '14px' }}>
|
||||||
@ -194,10 +214,35 @@ export default function ContactPeople() {
|
|||||||
<Search placeholder="请输入持有者名称搜索对应信息" onSearch={applicantPeopleSearch} style={{ width: '353px', height: '43px' }} />
|
<Search placeholder="请输入持有者名称搜索对应信息" onSearch={applicantPeopleSearch} style={{ width: '353px', height: '43px' }} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div className='showInfo' style={{ display: props.isShow ? 'block' : 'none' }}>
|
||||||
|
{applyContactName ? (
|
||||||
|
<div style={{display:'flex'}}>
|
||||||
|
<div style={{ marginRight: '22px' }}>当前联系人:</div>
|
||||||
|
<div style={{ display: applyContactName == '' ? 'block' : 'none' }}>请选择联系人</div>
|
||||||
|
<div style={{ display: applyContactName == '' ? 'none' : 'block' }}>
|
||||||
|
{applyContactName}/{applyContactPhone}{applyContactEmail ? '/' + applyContactEmail : ''}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
|
<div style={{display:'flex'}}>
|
||||||
|
<div style={{ marginRight: '22px' }}>当前联系人:</div>
|
||||||
|
<div style={{ display: props.concatPeopleInfo.applyContactName == '' ? 'block' : 'none' }}>请选择联系人</div>
|
||||||
|
<div style={{ display: props.concatPeopleInfo.applyContactName == '' ? 'none' : 'block' }}>
|
||||||
|
{props.concatPeopleInfo.applyContactName}/{props.concatPeopleInfo.applyContactPhone}{props.concatPeopleInfo.applyContactEmail ? '/' + props.concatPeopleInfo.applyContactEmail : ''}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
|
</div>
|
||||||
<div className='belongPeople-bot'>
|
<div className='belongPeople-bot'>
|
||||||
{/* 表格 lyp*/}
|
{/* 表格 lyp*/}
|
||||||
<Table
|
{props.isShow ? (<Table
|
||||||
|
rowSelection={{
|
||||||
|
type: 'radio',
|
||||||
|
...ContantRowSelection,
|
||||||
|
// selectedRowKeys: selectedKeys // 设置默认选中的行
|
||||||
|
}}
|
||||||
|
|
||||||
dataSource={tableContactData}
|
dataSource={tableContactData}
|
||||||
pagination={{
|
pagination={{
|
||||||
@ -264,8 +309,100 @@ export default function ContactPeople() {
|
|||||||
</Space>
|
</Space>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
</Table>
|
</Table>) : (<Table
|
||||||
|
|
||||||
|
dataSource={tableContactData}
|
||||||
|
pagination={{
|
||||||
|
defaultPageSize: 5, // 设置默认一页显示 5 条数据
|
||||||
|
}}
|
||||||
|
style={{ textAlign: 'center' }} // 设置表格内容居中显示
|
||||||
|
rowKey="projContactId" // 指定数据项的唯一标识符
|
||||||
|
>
|
||||||
|
<Column title="联系人" dataIndex="name" />
|
||||||
|
<Column title="联系人手机号" dataIndex="phone" />
|
||||||
|
<Column title="平台专属客服" dataIndex="csaNo" />
|
||||||
|
<Column title="所属公司" dataIndex="company"
|
||||||
|
render={(text) => (text !== '' ? text : '一')}
|
||||||
|
/>
|
||||||
|
|
||||||
|
{/* <Column title="实名认证状态" dataIndex="address" key="key" /> */}
|
||||||
|
<Column
|
||||||
|
title="操作"
|
||||||
|
render={(text, record: any) => (
|
||||||
|
<Space size="middle">
|
||||||
|
<a onClick={() => {
|
||||||
|
// alert(record.projOwnerId);
|
||||||
|
|
||||||
|
console.log('text:', text);
|
||||||
|
console.log('record:', record);
|
||||||
|
|
||||||
|
setContactId(record.projContactId)
|
||||||
|
setContactTitle('编辑联系人')
|
||||||
|
steIsContantOpen(true)
|
||||||
|
// formContact 表单赋值
|
||||||
|
formContact.setFieldsValue({
|
||||||
|
csaNo: record.csaNo,
|
||||||
|
name: record.name,
|
||||||
|
phone: record.phone,
|
||||||
|
email: record.email,
|
||||||
|
company: record.company
|
||||||
|
})
|
||||||
|
}}>编辑 </a>
|
||||||
|
<span style={{ color: '#3472EE' }}>|</span>
|
||||||
|
<a onClick={() => {
|
||||||
|
// alert(record.projOwnerId);
|
||||||
|
del({
|
||||||
|
messageApi,
|
||||||
|
url: `/api/proj-contact/remove/${record.projContactId}`,
|
||||||
|
onSuccess() {
|
||||||
|
messageApi.success('删除成功');
|
||||||
|
getProjContactList()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}}>删除</a>
|
||||||
|
<span style={{ color: '#3472EE' }}>|</span>
|
||||||
|
<a onClick={() => {
|
||||||
|
setContactTitle('查看联系人')
|
||||||
|
steIsContantOpen(true)
|
||||||
|
formContact.setFieldsValue({
|
||||||
|
csaNo: record.csaNo,
|
||||||
|
name: record.name,
|
||||||
|
phone: record.phone,
|
||||||
|
email: record.email
|
||||||
|
|
||||||
|
})
|
||||||
|
}}>查看</a>
|
||||||
|
|
||||||
|
</Space>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
</Table>)}
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div style={{ display: props.isShow ? 'block' : 'none', position: 'absolute', right: 0, bottom: 10 }}>
|
||||||
|
<div className="belongPeopleModal-btn" style={{ display: 'flex', justifyContent: 'flex-end' }} >
|
||||||
|
<Button onClick={() => {
|
||||||
|
props.closeModal()
|
||||||
|
}}>取消</Button>
|
||||||
|
<Button style={{
|
||||||
|
marginLeft: 20
|
||||||
|
}} type="primary"
|
||||||
|
onClick={() => {
|
||||||
|
props.setConcatPeopleInfo({
|
||||||
|
applyConcatId,
|
||||||
|
applyContactCsaNo,
|
||||||
|
applyContactEmail,
|
||||||
|
applyContactName,
|
||||||
|
applyContactPhone,
|
||||||
|
applyContactCompany
|
||||||
|
})
|
||||||
|
props.setConcatValue(applyContactName)
|
||||||
|
props.closeModal()
|
||||||
|
}}
|
||||||
|
>确定</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/* 选择创建/编辑/查看联系人弹框 lyp*/}
|
{/* 选择创建/编辑/查看联系人弹框 lyp*/}
|
||||||
|
@ -368,21 +368,21 @@ export default function AiHelper(props: PropsType) {
|
|||||||
setActiveTab('简介')
|
setActiveTab('简介')
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
项目简介
|
系统简介
|
||||||
</div>
|
</div>
|
||||||
<div className={activeTab == '详情' ? 'tabActive' : "aiTabBtn"}
|
<div className={activeTab == '详情' ? 'tabActive' : "aiTabBtn"}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setActiveTab('详情')
|
setActiveTab('详情')
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
项目详情
|
系统详情
|
||||||
</div>
|
</div>
|
||||||
<div className={activeTab == '模块' ? 'tabActive' : "aiTabBtn"}
|
<div className={activeTab == '模块' ? 'tabActive' : "aiTabBtn"}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setActiveTab('模块')
|
setActiveTab('模块')
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
模块管理
|
功能列表
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -12,10 +12,10 @@ import {
|
|||||||
WarningOutlined,
|
WarningOutlined,
|
||||||
FolderOutlined
|
FolderOutlined
|
||||||
} from '@ant-design/icons';
|
} from '@ant-design/icons';
|
||||||
import { Button, Dropdown, Tag, Modal } from 'antd';
|
import { Button, Dropdown, Tag, Modal, Carousel } from 'antd';
|
||||||
import { GenerateStatus, ProjChargeType } from "../../interfaces/proj/IProj.ts";
|
import { GenerateStatus, ProjChargeType } from "../../interfaces/proj/IProj.ts";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { Axios, put } from "../../util/AjaxUtils.ts";
|
import { Axios, put, downloadUrl } from "../../util/AjaxUtils.ts";
|
||||||
import { useContext, useEffect, useState } from "react";
|
import { useContext, useEffect, useState } from "react";
|
||||||
import { IndexListContext } from "../../context/IndexListContext.ts";
|
import { IndexListContext } from "../../context/IndexListContext.ts";
|
||||||
import useMessage from "antd/es/message/useMessage";
|
import useMessage from "antd/es/message/useMessage";
|
||||||
@ -47,7 +47,7 @@ export default function CardProj(props:any ) {
|
|||||||
|
|
||||||
const data = props.item;
|
const data = props.item;
|
||||||
const [projId] = useState(data.projId)
|
const [projId] = useState(data.projId)
|
||||||
const isShow = data.pay.chargeAdditionals.includes('PKG')
|
const isShow = data.pay.chargeAdditionals.includes('PKG') || data.pay.charge.includes('ALL')
|
||||||
|
|
||||||
const [messageApi, messageContext] = useMessage();
|
const [messageApi, messageContext] = useMessage();
|
||||||
const [projCategoryId, setProjCategoryId] = useState(data.projCategoryId);
|
const [projCategoryId, setProjCategoryId] = useState(data.projCategoryId);
|
||||||
@ -79,7 +79,7 @@ export default function CardProj(props:any ) {
|
|||||||
|
|
||||||
const goEdit = () => {
|
const goEdit = () => {
|
||||||
if (charge == ProjChargeType.ALL) {
|
if (charge == ProjChargeType.ALL) {
|
||||||
nav(`/proj-edit/${data.projId}`);
|
nav(`/proj-eall/${data.projId}`);
|
||||||
} else if (charge == ProjChargeType.FREE) {
|
} else if (charge == ProjChargeType.FREE) {
|
||||||
nav(`/proj-efree/${data.projId}`);
|
nav(`/proj-efree/${data.projId}`);
|
||||||
} else {
|
} else {
|
||||||
@ -88,6 +88,8 @@ export default function CardProj(props:any ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
console.log('查找图片', data);
|
||||||
|
|
||||||
const charge = props.item.pay.charge.split(':')[0];
|
const charge = props.item.pay.charge.split(':')[0];
|
||||||
let chargeName = '';
|
let chargeName = '';
|
||||||
if (charge == ProjChargeType.ALL) {
|
if (charge == ProjChargeType.ALL) {
|
||||||
@ -112,7 +114,7 @@ export default function CardProj(props:any ) {
|
|||||||
<div className='cpt-left'>
|
<div className='cpt-left'>
|
||||||
<div className='dottedLine'></div>
|
<div className='dottedLine'></div>
|
||||||
<div className='cpt-title' onClick={goEdit}>{data.projName}</div>
|
<div className='cpt-title' onClick={goEdit}>{data.projName}</div>
|
||||||
<div className='cp-tag'>
|
<div className='cp-tag' style={{ background: payCharge == '全托管' ? '#6bd2b4' : payCharge == '免费试用' ? '#ff9226' : payCharge == '写材料' ? '#5279f4' : '', color: '#fff' }}>
|
||||||
{payCharge}
|
{payCharge}
|
||||||
</div>
|
</div>
|
||||||
<div className='cp-num'>
|
<div className='cp-num'>
|
||||||
@ -150,7 +152,21 @@ export default function CardProj(props:any ) {
|
|||||||
</div>
|
</div>
|
||||||
<div className='cp-bot'>
|
<div className='cp-bot'>
|
||||||
<div className='cpb-left'>
|
<div className='cpb-left'>
|
||||||
<img src={data.img} className='cpb-left-img' alt="" />
|
{/* lyp */}
|
||||||
|
<div className='cpb-left-img'>
|
||||||
|
<Carousel autoplay dots={false}>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<img src={downloadUrl(data.loginpage.loginpagePreviewImgs)} width={'249px'} height={'143px'} alt="" />
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<img src={downloadUrl(data.codeTypePage.previewImgs)} width={'249px'} height={'143px'} alt="" />
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</Carousel>
|
||||||
|
</div>
|
||||||
|
{/* <img src={downloadUrl(data.codeTypePage.previewImgs)} className='cpb-left-img' alt="" /> */}
|
||||||
<div className='cpbl-right'>
|
<div className='cpbl-right'>
|
||||||
<div className='cpbl-money'>
|
<div className='cpbl-money'>
|
||||||
<span className='money'>金额(¥) : </span>
|
<span className='money'>金额(¥) : </span>
|
||||||
@ -158,7 +174,7 @@ export default function CardProj(props:any ) {
|
|||||||
</div>
|
</div>
|
||||||
<div className='cpbl-btn'>
|
<div className='cpbl-btn'>
|
||||||
<div className='threeBtn' onClick={() => {
|
<div className='threeBtn' onClick={() => {
|
||||||
if (data.generate.generateStatus == GenerateStatus.SUCCESS) {
|
if (data.generate.generateStatus == GenerateStatus.SUCCESS || payCharge == '全托管') {
|
||||||
// nav(`/proj-edit/config-loginpage-show/${data.projId}`)
|
// nav(`/proj-edit/config-loginpage-show/${data.projId}`)
|
||||||
setLoginPageShowOpne(true);
|
setLoginPageShowOpne(true);
|
||||||
|
|
||||||
@ -171,7 +187,7 @@ export default function CardProj(props:any ) {
|
|||||||
<div>登录界面设置</div>
|
<div>登录界面设置</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='threeBtn' onClick={() => {
|
<div className='threeBtn' onClick={() => {
|
||||||
if (data.generate.generateStatus == GenerateStatus.SUCCESS) {
|
if (data.generate.generateStatus == GenerateStatus.SUCCESS || payCharge == '全托管') {
|
||||||
// nav(`/proj-edit/config-mod-list-show/${data.projId}`)
|
// nav(`/proj-edit/config-mod-list-show/${data.projId}`)
|
||||||
setSoftwareManagementShowOpen(true)
|
setSoftwareManagementShowOpen(true)
|
||||||
} else {
|
} else {
|
||||||
@ -184,7 +200,7 @@ export default function CardProj(props:any ) {
|
|||||||
<div>系统菜单管理({data.projModCount})</div>
|
<div>系统菜单管理({data.projModCount})</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='threeBtn rightBit' onClick={() => {
|
<div className='threeBtn rightBit' onClick={() => {
|
||||||
if (data.generate.generateStatus == GenerateStatus.SUCCESS) {
|
if (data.generate.generateStatus == GenerateStatus.SUCCESS || payCharge == '全托管') {
|
||||||
// nav(`/proj-edit/config-menu-list-show/${data.projId}`)
|
// nav(`/proj-edit/config-menu-list-show/${data.projId}`)
|
||||||
setDisplayOrderShowOpen(true);
|
setDisplayOrderShowOpen(true);
|
||||||
} else {
|
} else {
|
||||||
|
@ -11,12 +11,12 @@ export default function CardProjDownload(props: IProjDownload) {
|
|||||||
<div className="cpDown-option">
|
<div className="cpDown-option">
|
||||||
{
|
{
|
||||||
props.canBtnClick ? (
|
props.canBtnClick ? (
|
||||||
<a href="/#" className="cpDown-edit" onClick={(e) => {
|
<a href="/#" className="cpDown-edit" style={{minWidth:30}} onClick={(e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
props.handleDownload();
|
props.handleDownload();
|
||||||
}}>下载</a>
|
}}>下载</a>
|
||||||
) : (
|
) : (
|
||||||
<a href="/#" className="cpDown-noedit" style={{ color: '#c2c2c2' }} onClick={(e) => {
|
<a href="/#" className="cpDown-noedit" style={{ color: '#c2c2c2',minWidth:30 }} onClick={(e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}}>下载</a>
|
}}>下载</a>
|
||||||
)
|
)
|
||||||
|
@ -26,6 +26,7 @@ export default function CardProjEdit(props: IProjEdit) {
|
|||||||
// props.handleEdit();
|
// props.handleEdit();
|
||||||
// }}>编辑</a>
|
// }}>编辑</a>
|
||||||
// }
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
.card-proj-download {
|
.card-proj-download {
|
||||||
width: 309px;
|
width: 95%;
|
||||||
padding: 20px 25px;
|
padding: 20px 25px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
||||||
@ -10,7 +10,7 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
.card-proj-nodownload{
|
.card-proj-nodownload{
|
||||||
width: 309px;
|
width: 95%;
|
||||||
padding: 20px 25px;
|
padding: 20px 25px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
background-color: #f3f3f3;
|
background-color: #f3f3f3;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
.card-proj-edit {
|
.card-proj-edit {
|
||||||
width: 309px;
|
width: 95%;
|
||||||
padding: 20px 25px;
|
padding: 20px 25px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
margin-bottom: 27px;
|
margin-bottom: 27px;
|
||||||
@ -52,6 +52,8 @@
|
|||||||
.card-proj-edit .option .edit {
|
.card-proj-edit .option .edit {
|
||||||
color: var(--color-blue);
|
color: var(--color-blue);
|
||||||
text-decoration:underline;
|
text-decoration:underline;
|
||||||
|
min-width: 30px;
|
||||||
|
/* background-color: red; */
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-proj-edit .option .status {
|
.card-proj-edit .option .status {
|
||||||
@ -63,6 +65,7 @@
|
|||||||
transform: rotate(-45deg);
|
transform: rotate(-45deg);
|
||||||
border-top: transparent;
|
border-top: transparent;
|
||||||
border-right: transparent;
|
border-right: transparent;
|
||||||
|
margin-top: 4px;
|
||||||
}
|
}
|
||||||
.noEdit:hover{
|
.noEdit:hover{
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
|
@ -8,10 +8,10 @@ import { IListPage } from "../../interfaces/listpage/IListPage.ts";
|
|||||||
import { IProj } from "../../interfaces/proj/IProj.ts";
|
import { IProj } from "../../interfaces/proj/IProj.ts";
|
||||||
// import NoData from "../../assets/no-data.png";
|
// import NoData from "../../assets/no-data.png";
|
||||||
import { useLocation } from 'react-router-dom';
|
import { useLocation } from 'react-router-dom';
|
||||||
import syminga from '../../static/homeimg/homeimga.png'
|
// import syminga from '../../static/homeimg/homeimga.png'
|
||||||
import symingb from '../../static/homeimg/homeimgb.png'
|
// import symingb from '../../static/homeimg/homeimgb.png'
|
||||||
import symingc from '../../static/homeimg/homeimgc.png'
|
// import symingc from '../../static/homeimg/homeimgc.png'
|
||||||
import symingd from '../../static/homeimg/homeimgd.png'
|
// import symingd from '../../static/homeimg/homeimgd.png'
|
||||||
import { getMenuActive } from '../../util/cache.ts';
|
import { getMenuActive } from '../../util/cache.ts';
|
||||||
|
|
||||||
// import gpsImg from '../../static/right/gps.png'
|
// import gpsImg from '../../static/right/gps.png'
|
||||||
@ -29,8 +29,9 @@ export default function ListProj() {
|
|||||||
// // setKeywords(state.keyword)
|
// // setKeywords(state.keyword)
|
||||||
// }
|
// }
|
||||||
const keywords = state ? state.keyword : ''
|
const keywords = state ? state.keyword : ''
|
||||||
|
const name = state?state.name:''
|
||||||
// console.log(keywords);
|
// console.log(keywords);
|
||||||
const images = [syminga,symingb,symingc,symingd]
|
// const images = [syminga,symingb,symingc,symingd]
|
||||||
const listProjRef: MutableRefObject<HTMLDivElement | null> = useRef(null);
|
const listProjRef: MutableRefObject<HTMLDivElement | null> = useRef(null);
|
||||||
const listRef: MutableRefObject<HTMLDivElement | null> = useRef(null);
|
const listRef: MutableRefObject<HTMLDivElement | null> = useRef(null);
|
||||||
|
|
||||||
@ -55,6 +56,7 @@ export default function ListProj() {
|
|||||||
page: currentPage,
|
page: currentPage,
|
||||||
rows: 10,
|
rows: 10,
|
||||||
keywords: keywords,
|
keywords: keywords,
|
||||||
|
charge:name,
|
||||||
projCategoryId: indexListContext.category,
|
projCategoryId: indexListContext.category,
|
||||||
status: indexListContext.status ? indexListContext.status : getMenuActive()
|
status: indexListContext.status ? indexListContext.status : getMenuActive()
|
||||||
}
|
}
|
||||||
@ -66,13 +68,13 @@ export default function ListProj() {
|
|||||||
console.log('看看结果', data);
|
console.log('看看结果', data);
|
||||||
setPage(data.page);
|
setPage(data.page);
|
||||||
setTotal(data.total);
|
setTotal(data.total);
|
||||||
// setProjs(data.rows);
|
setProjs(data.rows);
|
||||||
const updatedArr = (data.rows).map((item, index) => ({
|
// const updatedArr = (data.rows).map((item, index) => ({
|
||||||
...item,
|
// ...item,
|
||||||
img: images[index % images.length] // 利用取余来循环填充图片
|
// img: images[index % images.length] // 利用取余来循环填充图片
|
||||||
}));
|
// }));
|
||||||
console.log('循环数组',updatedArr);
|
// console.log('循环数组',updatedArr);
|
||||||
setProjs(updatedArr);
|
// setProjs(updatedArr);
|
||||||
|
|
||||||
},
|
},
|
||||||
onFinally() {
|
onFinally() {
|
||||||
@ -159,7 +161,7 @@ export default function ListProj() {
|
|||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
setShowPage(true)
|
setShowPage(true)
|
||||||
}, 0);
|
}, 0);
|
||||||
}, [indexListContext.status,keywords])
|
}, [indexListContext.status,keywords,name])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (indexListContext.categorys) {
|
if (indexListContext.categorys) {
|
||||||
|
27
src/components/scrollAD/ScrollAd.tsx
Normal file
27
src/components/scrollAD/ScrollAd.tsx
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import React, { useEffect } from 'react'
|
||||||
|
import './scrollAd.css'
|
||||||
|
export default function ScrollAd() {
|
||||||
|
useEffect(() => {
|
||||||
|
const scrollInterval = setInterval(() => {
|
||||||
|
const adContainer = document.getElementById('scrolling-ad-container');
|
||||||
|
if (adContainer) {
|
||||||
|
adContainer.scrollLeft += 1; // 每次滚动的距离
|
||||||
|
if (adContainer.scrollLeft % adContainer.scrollWidth === 0) {
|
||||||
|
clearInterval(scrollInterval); // 滚动到末尾时停止滚动
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 50); // 滚动速度,单位毫秒
|
||||||
|
|
||||||
|
return () => clearInterval(scrollInterval); // 组件卸载时清除定时器
|
||||||
|
}, []);
|
||||||
|
return (
|
||||||
|
<div id="scrolling-ad-container" className="scrolling-ad-container">
|
||||||
|
|
||||||
|
<div className="scrolling-ad-content">
|
||||||
|
广告广告广告广告广告广告广告广告广告广告广告广告广告广
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
)
|
||||||
|
}
|
28
src/components/scrollAD/scrollAd.css
Normal file
28
src/components/scrollAD/scrollAd.css
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
.scrolling-ad-container {
|
||||||
|
overflow: hidden; /* 隐藏超出盒子的部分 */
|
||||||
|
white-space: nowrap; /* 内容不换行 */
|
||||||
|
position: relative; /* 使子元素的动画定位参考于此 */
|
||||||
|
padding: 10px; /* 内容内边距 */
|
||||||
|
width: 100%; /* 盒子的宽度 */
|
||||||
|
height: 30px; /* 盒子的高度 */
|
||||||
|
display: flex;
|
||||||
|
align-items: center; /* 垂直居中对齐文字 */
|
||||||
|
box-sizing: border-box; /* 包含内边距和边框 */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.scrolling-ad-content {
|
||||||
|
|
||||||
|
display: inline-block;
|
||||||
|
padding-left: 100%; /* 确保广告从盒子外开始滚动 */
|
||||||
|
animation: scrollLeft 10s linear infinite; /* 滚动动画,持续时间为10秒,线性匀速,无限循环 */
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes scrollLeft {
|
||||||
|
0% {
|
||||||
|
transform: translateX(0); /* 从盒子的右边开始 */
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: translateX(-100%); /* 向左移动到盒子的左边 */
|
||||||
|
}
|
||||||
|
}
|
@ -1,12 +1,16 @@
|
|||||||
import './step-proj-edit.css';
|
import './step-proj-edit.css';
|
||||||
import { IStepProj, Process } from "../../interfaces/step/IStepProj.ts";
|
import { IStepProj, Process } from "../../interfaces/step/IStepProj.ts";
|
||||||
// import { CheckOutlined } from "@ant-design/icons";
|
// import { CheckOutlined } from "@ant-design/icons";
|
||||||
import { useEffect } from 'react';
|
import { useEffect, useState, } from 'react';
|
||||||
|
import { useLocation } from 'react-router-dom';
|
||||||
export default function StepProjEdit(props: IStepProj) {
|
export default function StepProjEdit(props: IStepProj) {
|
||||||
|
const location = useLocation()
|
||||||
|
const [allShow, setAllShow] = useState(false)
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
console.log(props);
|
// console.log(props);
|
||||||
|
// location.pathname.includes('/proj-eall')
|
||||||
|
console.log('路由', location.pathname);
|
||||||
|
setAllShow(location.pathname.includes('/proj-eall') ? true : false)
|
||||||
}, [])
|
}, [])
|
||||||
const height = window.innerHeight - 390;
|
const height = window.innerHeight - 390;
|
||||||
// 状态值 已完成:Process.COMPLETE 进行中: Process.PROCESSING 未操作:Process.PENDING
|
// 状态值 已完成:Process.COMPLETE 进行中: Process.PROCESSING 未操作:Process.PENDING
|
||||||
@ -96,11 +100,13 @@ export default function StepProjEdit(props: IStepProj) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="step-proj">
|
<div className="step-proj" style={{width:allShow?'19%':'21%'}}>
|
||||||
<div className="step" >
|
<div className="step" >
|
||||||
{renderStepNo()}
|
{renderStepNo()}
|
||||||
{/* {renderStepDesc()} */}
|
{/* {renderStepDesc()} */}
|
||||||
|
<div style={{display:allShow?'none':'block'}}>
|
||||||
{renderStepLine()}
|
{renderStepLine()}
|
||||||
|
</div>
|
||||||
<div className='downBox'></div>
|
<div className='downBox'></div>
|
||||||
</div>
|
</div>
|
||||||
<div className="step-card" style={{ maxHeight: `${height - 20}px` }}>
|
<div className="step-card" style={{ maxHeight: `${height - 20}px` }}>
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
.step-proj {
|
.step-proj {
|
||||||
width: 317px;
|
/* width: 317px; */
|
||||||
|
width: 21%;
|
||||||
|
/* background: skyblue; */
|
||||||
position: relative;
|
position: relative;
|
||||||
/* overflow: scroll; */
|
/* overflow: scroll; */
|
||||||
}
|
}
|
||||||
@ -14,7 +16,7 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
.step-proj .step {
|
.step-proj .step {
|
||||||
width: 309px;
|
width: 100%;
|
||||||
height: 56px;
|
height: 56px;
|
||||||
/* background-color: rgb(248, 213, 219); */
|
/* background-color: rgb(248, 213, 219); */
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
@ -27,7 +29,8 @@
|
|||||||
|
|
||||||
/* Top 状态:已完成 开始---------------------------------------------------------------*/
|
/* Top 状态:已完成 开始---------------------------------------------------------------*/
|
||||||
.step-proj .step .complete-one {
|
.step-proj .step .complete-one {
|
||||||
width: 309px;
|
/* width: 309px; */
|
||||||
|
width: 100%;
|
||||||
height: 56px;
|
height: 56px;
|
||||||
/* background-color: pink; */
|
/* background-color: pink; */
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -45,12 +48,12 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin-left: 44px;
|
margin-left: 11%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 已完成状态第一个序号 */
|
/* 已完成状态第一个序号 */
|
||||||
.step-proj .step .complete-one .complete-num {
|
.step-proj .step .complete-one .complete-num {
|
||||||
margin-left: 16px;
|
margin-left: 8%;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,16 +63,18 @@
|
|||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
margin-left: 47px;
|
margin-left: 15%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 已完成状态第一个标题 */
|
/* 已完成状态第一个标题 */
|
||||||
.step-proj .step .complete-one .complete-text {
|
.step-proj .step .complete-one .complete-text {
|
||||||
margin-left: 61px;
|
margin-left: 23%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.step-proj .step .complete-two {
|
.step-proj .step .complete-two {
|
||||||
width: 309px;
|
/* width: 309px; */
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
height: 56px;
|
height: 56px;
|
||||||
/* background-color: pink; */
|
/* background-color: pink; */
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -79,7 +84,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.step-proj .step .complete-three {
|
.step-proj .step .complete-three {
|
||||||
width: 309px;
|
/* width: 309px; */
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
height: 56px;
|
height: 56px;
|
||||||
/* background-color: pink; */
|
/* background-color: pink; */
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -89,7 +96,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.step-proj .step .complete-four {
|
.step-proj .step .complete-four {
|
||||||
width: 309px;
|
/* width: 309px; */
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
height: 56px;
|
height: 56px;
|
||||||
/* background-color: pink; */
|
/* background-color: pink; */
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -99,11 +108,11 @@
|
|||||||
}
|
}
|
||||||
/* 已完成状态连接线 */
|
/* 已完成状态连接线 */
|
||||||
.step-proj .step .setLine {
|
.step-proj .step .setLine {
|
||||||
width: 49px;
|
width: 10%;
|
||||||
height: 22px;
|
height: 22px;
|
||||||
background-color: pink;
|
background-color: pink;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: -67px;
|
right: -15%;
|
||||||
top: 17px;
|
top: 17px;
|
||||||
}
|
}
|
||||||
.step-proj .step .complete-oneLine{
|
.step-proj .step .complete-oneLine{
|
||||||
@ -125,7 +134,9 @@
|
|||||||
|
|
||||||
/* Top 状态:进行中 开始----------------------------------------------------------- */
|
/* Top 状态:进行中 开始----------------------------------------------------------- */
|
||||||
.step-proj .step .processing-one {
|
.step-proj .step .processing-one {
|
||||||
width: 309px;
|
/* width: 309px; */
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
height: 56px;
|
height: 56px;
|
||||||
/* background-color: pink; */
|
/* background-color: pink; */
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -135,7 +146,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.step-proj .step .processing-two {
|
.step-proj .step .processing-two {
|
||||||
width: 309px;
|
/* width: 309px; */
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
height: 56px;
|
height: 56px;
|
||||||
/* background-color: pink; */
|
/* background-color: pink; */
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -145,7 +158,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.step-proj .step .processing-three {
|
.step-proj .step .processing-three {
|
||||||
width: 309px;
|
/* width: 309px; */
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
height: 56px;
|
height: 56px;
|
||||||
/* background-color: pink; */
|
/* background-color: pink; */
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -155,7 +170,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.step-proj .step .processing-four {
|
.step-proj .step .processing-four {
|
||||||
width: 309px;
|
width: 100%;
|
||||||
|
|
||||||
|
/* width: 309px; */
|
||||||
height: 56px;
|
height: 56px;
|
||||||
/* background-color: pink; */
|
/* background-color: pink; */
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -168,7 +185,7 @@
|
|||||||
height: 21px;
|
height: 21px;
|
||||||
background: #FFFFFF;
|
background: #FFFFFF;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
margin-left: 46px;
|
margin-left: 18%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -183,7 +200,7 @@
|
|||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #71757E;
|
color: #71757E;
|
||||||
margin-left: 47px;
|
margin-left: 15%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Top 状态:进行中 结束----------------------------------------------------------- */
|
/* Top 状态:进行中 结束----------------------------------------------------------- */
|
||||||
@ -193,9 +210,12 @@
|
|||||||
/* Top 状态:未操作 开始 ------------------------------------------------------------ */
|
/* Top 状态:未操作 开始 ------------------------------------------------------------ */
|
||||||
.step-proj .step .pending {
|
.step-proj .step .pending {
|
||||||
width: 309px;
|
width: 309px;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
height: 56px;
|
height: 56px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
/* background: pink; */
|
||||||
background: url('../../static/editPro/no.png');
|
background: url('../../static/editPro/no.png');
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
@ -205,7 +225,7 @@
|
|||||||
height: 21px;
|
height: 21px;
|
||||||
background: #FFFFFF;
|
background: #FFFFFF;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
margin-left: 46px;
|
margin-left: 18%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -220,7 +240,7 @@
|
|||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #71757E;
|
color: #71757E;
|
||||||
margin-left: 47px;
|
margin-left: 15%;
|
||||||
}
|
}
|
||||||
.step-proj .step .no-line{
|
.step-proj .step .no-line{
|
||||||
background:url('../../static/editPro/lineno.png');
|
background:url('../../static/editPro/lineno.png');
|
||||||
|
@ -36,12 +36,23 @@ export default function Head() {
|
|||||||
authorId: '',
|
authorId: '',
|
||||||
authorProvinceCity: ''
|
authorProvinceCity: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
const setValue = () => {
|
const setValue = () => {
|
||||||
// console.log(value);
|
// console.log(value);
|
||||||
|
}
|
||||||
|
const setConcatValue = ()=> {
|
||||||
|
|
||||||
}
|
}
|
||||||
// 联系人弹窗
|
// 联系人弹窗
|
||||||
const [contactModal, setContactModal] = useState(false)
|
const [contactModal, setContactModal] = useState(false)
|
||||||
|
const [concatPeopleInfo,setConcatPeopleInfo] = useState({
|
||||||
|
applyConcatId:'',
|
||||||
|
applyContactCsaNo:'',
|
||||||
|
applyContactEmail:'',
|
||||||
|
applyContactName:'',
|
||||||
|
applyContactPhone:'',
|
||||||
|
applyContactCompany:''
|
||||||
|
})
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
reloadUser(messageApi, globalDispatchContext).then((data) => {
|
reloadUser(messageApi, globalDispatchContext).then((data) => {
|
||||||
if (!data.hasUserInfo) {
|
if (!data.hasUserInfo) {
|
||||||
@ -278,7 +289,7 @@ export default function Head() {
|
|||||||
|
|
||||||
}}>
|
}}>
|
||||||
|
|
||||||
<ContactPeople ></ContactPeople>
|
<ContactPeople isShow={false} closeModal = {()=>{setContactModal(false)} } setConcatPeopleInfo={setConcatPeopleInfo} concatPeopleInfo={concatPeopleInfo} setConcatValue={setConcatValue}></ContactPeople>
|
||||||
</Modal>
|
</Modal>
|
||||||
<Spin tip="正在提交..." spinning={loading} fullscreen />
|
<Spin tip="正在提交..." spinning={loading} fullscreen />
|
||||||
{contextHolder}
|
{contextHolder}
|
||||||
|
@ -8,7 +8,7 @@ import MenuWithTopButton from "../../components/menu/MenuWithTopButton.tsx";
|
|||||||
import MenuTreeWithTopButton from "../../components/menu/MenuTreeWithTopButton.tsx";
|
import MenuTreeWithTopButton from "../../components/menu/MenuTreeWithTopButton.tsx";
|
||||||
// import ListProj from "../../components/list/ListProj.tsx";
|
// import ListProj from "../../components/list/ListProj.tsx";
|
||||||
// import ListProjAgent from "../../components/list/ListProjAgent.tsx";
|
// import ListProjAgent from "../../components/list/ListProjAgent.tsx";
|
||||||
import { MenuProps } from 'antd';
|
import { MenuProps,Select } from 'antd';
|
||||||
import {
|
import {
|
||||||
IndexListContext,
|
IndexListContext,
|
||||||
IndexListDataType,
|
IndexListDataType,
|
||||||
@ -29,8 +29,9 @@ const { Search } = Input;
|
|||||||
|
|
||||||
|
|
||||||
export default function Index() {
|
export default function Index() {
|
||||||
|
// 关键字
|
||||||
// const [keywords, setKeywords] = useState('');
|
const [keywords, setKeywords] = useState('');
|
||||||
|
const [type,setType] = useState('')
|
||||||
// const indexListContext = useContext(IndexListContext);
|
// const indexListContext = useContext(IndexListContext);
|
||||||
|
|
||||||
|
|
||||||
@ -195,81 +196,119 @@ export default function Index() {
|
|||||||
// const [newname,setNewname] = useState('')
|
// const [newname,setNewname] = useState('')
|
||||||
|
|
||||||
const [pathArray, setPathArray] = useState<any>([])
|
const [pathArray, setPathArray] = useState<any>([])
|
||||||
|
const [showSearchBox,setShowSearchBox] = useState(true)
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// const nowname = sessionStorage.getItem('now')
|
// const nowname = sessionStorage.getItem('now')
|
||||||
console.log('路由名字', location.pathname);
|
console.log('路由名字', location.pathname);
|
||||||
if (location.pathname.includes('/home')) {
|
if (location.pathname.includes('/home')) {
|
||||||
setNow('首页')
|
setNow('首页')
|
||||||
setPathArray([{ title: '首页' }])
|
setPathArray([{ title: '首页' }])
|
||||||
|
setShowSearchBox(true)
|
||||||
|
|
||||||
} else if (location.pathname.includes('/proj-create')) {
|
} else if (location.pathname.includes('/proj-create')) {
|
||||||
|
setShowSearchBox(false)
|
||||||
setNow('创建项目')
|
setNow('创建项目')
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: '创建项目' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: '创建项目' }])
|
||||||
// /config-mod-list /config-menu-list /config-mod-show
|
// /config-mod-list /config-menu-list /config-mod-show
|
||||||
} else if (location.pathname.includes('/proj-edit') && !location.pathname.includes('/config-mod-show') && !location.pathname.includes('/config-mod-edit') && !location.pathname.includes('/step') && !location.pathname.includes('/config-loginpage') && !location.pathname.includes('/config-mod-save') && !location.pathname.includes('/config-mod-list') && !location.pathname.includes('/config-menu-list')) {
|
} else if (location.pathname.includes('/proj-edit') && !location.pathname.includes('/config-mod-show') && !location.pathname.includes('/config-mod-edit') && !location.pathname.includes('/step') && !location.pathname.includes('/config-loginpage') && !location.pathname.includes('/config-mod-save') && !location.pathname.includes('/config-mod-list') && !location.pathname.includes('/config-menu-list')) {
|
||||||
setNow('编辑项目')
|
setNow('编辑项目')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
// setEditname(location.pathname)
|
// setEditname(location.pathname)
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: '编辑项目' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: '编辑项目' }])
|
||||||
} else if (location.pathname.includes('/proj-new')) {
|
} else if (location.pathname.includes('/proj-new')) {
|
||||||
setNow('新建项目')
|
setNow('新建项目')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: '新建项目' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: '新建项目' }])
|
||||||
} else if (location.pathname.includes('/proj-efree')) {
|
} else if (location.pathname.includes('/proj-efree')) {
|
||||||
setNow('编辑项目')
|
setNow('编辑项目')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: '编辑项目' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: '编辑项目' }])
|
||||||
} else if (location.pathname.includes('/proj-eall')) {
|
} else if (location.pathname.includes('/proj-eall')) {
|
||||||
setNow('编辑项目')
|
setNow('编辑项目')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: '编辑项目' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: '编辑项目' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/step1')) {
|
} else if (location.pathname.includes('/proj-edit/step1')) {
|
||||||
setNow('标题简介')
|
setNow('标题简介')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '标题简介' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '标题简介' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/step2')) {
|
} else if (location.pathname.includes('/proj-edit/step2')) {
|
||||||
setNow('标题简介')
|
setNow('标题简介')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '基本信息' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '基本信息' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/config-loginpage')) {
|
} else if (location.pathname.includes('/proj-edit/config-loginpage')) {
|
||||||
setNow('登录界面设置')
|
setNow('登录界面设置')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '登录界面设置' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '登录界面设置' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/config-mod-list')) {
|
} else if (location.pathname.includes('/proj-edit/config-mod-list')) {
|
||||||
setNow('系统菜单管理')
|
setNow('系统菜单管理')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '系统菜单管理' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '系统菜单管理' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/config-menu-list')) {
|
} else if (location.pathname.includes('/proj-edit/config-menu-list')) {
|
||||||
setNow('系统菜单顺序')
|
setNow('系统菜单顺序')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '系统菜单顺序' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '系统菜单顺序' }])
|
||||||
} else if (location.pathname.includes('/step3')) {
|
} else if (location.pathname.includes('/step3')) {
|
||||||
setNow('软件功能特点')
|
setNow('软件功能特点')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '软件功能特点' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '软件功能特点' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/config-mod-save')) {
|
} else if (location.pathname.includes('/proj-edit/config-mod-save')) {
|
||||||
setNow('添加菜单')
|
setNow('添加菜单')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '添加菜单' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '添加菜单' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/config-mod-edit')) {
|
} else if (location.pathname.includes('/proj-edit/config-mod-edit')) {
|
||||||
setNow('编辑菜单')
|
setNow('编辑菜单')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-2) }}>编辑项目</a> }, { title: <a onClick={() => { nav(-1) }}>系统菜单管理</a> }, { title: '编辑菜单' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-2) }}>编辑项目</a> }, { title: <a onClick={() => { nav(-1) }}>系统菜单管理</a> }, { title: '编辑菜单' }])
|
||||||
// /config-mod-edit /config-mod-show
|
// /config-mod-edit /config-mod-show
|
||||||
} else if (location.pathname.includes('/proj-edit/config-mod-show')) {
|
} else if (location.pathname.includes('/proj-edit/config-mod-show')) {
|
||||||
setNow('查看菜单')
|
setNow('查看菜单')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-2) }}>编辑项目</a> }, { title: <a onClick={() => { nav(-1) }}>系统菜单管理</a> }, { title: '查看菜单' }])
|
setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-2) }}>编辑项目</a> }, { title: <a onClick={() => { nav(-1) }}>系统菜单管理</a> }, { title: '查看菜单' }])
|
||||||
// /config-mod-edit
|
// /config-mod-edit
|
||||||
} else if (location.pathname.includes('/product-release')) {
|
} else if (location.pathname.includes('/product-release')) {
|
||||||
setNow('首页')
|
setNow('首页')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
setPathArray([{ title: '首页' }])
|
setPathArray([{ title: '首页' }])
|
||||||
// /config-mod-edit /product-release /transaction-order
|
// /config-mod-edit /product-release /transaction-order
|
||||||
} else if (location.pathname.includes(' /transaction-order')) {
|
} else if (location.pathname.includes(' /transaction-order')) {
|
||||||
setNow('首页')
|
setNow('首页')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
setPathArray([{ title: '首页' }])
|
setPathArray([{ title: '首页' }])
|
||||||
// /config-mod-edit /product-release /transaction-order
|
// /config-mod-edit /product-release /transaction-order
|
||||||
} else if (location.pathname.includes(' /copyright-goods')) {
|
} else if (location.pathname.includes(' /copyright-goods')) {
|
||||||
setNow('首页')
|
setNow('首页')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
setPathArray([{ title: '首页' }])
|
setPathArray([{ title: '首页' }])
|
||||||
// /config-mod-edit /product-release /transaction-order
|
// /config-mod-edit /product-release /transaction-order
|
||||||
} else if (location.pathname.includes(' /trading-goods')) {
|
} else if (location.pathname.includes(' /trading-goods')) {
|
||||||
setNow('首页')
|
setNow('首页')
|
||||||
|
setShowSearchBox(false)
|
||||||
|
|
||||||
setPathArray([{ title: '首页' }])
|
setPathArray([{ title: '首页' }])
|
||||||
// /config-mod-edit /product-release /transaction-order
|
// /config-mod-edit /product-release /transaction-order
|
||||||
}
|
}
|
||||||
@ -296,9 +335,11 @@ export default function Index() {
|
|||||||
|
|
||||||
const handleSearch = (value: string) => {
|
const handleSearch = (value: string) => {
|
||||||
console.log(value);
|
console.log(value);
|
||||||
|
setKeywords(value)
|
||||||
nav('/home', {
|
nav('/home', {
|
||||||
state: {
|
state: {
|
||||||
keyword: value
|
keyword: value,
|
||||||
|
name:type
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -348,7 +389,7 @@ export default function Index() {
|
|||||||
<div>当前位置:{now}</div>
|
<div>当前位置:{now}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='line' style={{
|
<div className='line' style={{
|
||||||
display: location.pathname.includes('/home') ? 'block' : 'none',
|
display:showSearchBox ? 'block' : 'none',
|
||||||
|
|
||||||
}} ></div>
|
}} ></div>
|
||||||
<div
|
<div
|
||||||
@ -357,14 +398,37 @@ export default function Index() {
|
|||||||
height: 23,
|
height: 23,
|
||||||
marginLeft: 33,
|
marginLeft: 33,
|
||||||
marginRight: 31,
|
marginRight: 31,
|
||||||
display: location.pathname.includes('/home') ? 'none' : 'block'
|
display: showSearchBox ? 'none' : 'block'
|
||||||
}}
|
}}
|
||||||
></div>
|
></div>
|
||||||
<Search placeholder="输入项目名称" onSearch={handleSearch} style={{
|
<Search placeholder="输入项目名称" onSearch={handleSearch} style={{
|
||||||
width: '253px',
|
width: '253px',
|
||||||
height: '31px',
|
height: '31px',
|
||||||
display: location.pathname.includes('/home') ? 'block' : 'none'
|
display: showSearchBox ? 'block' : 'none'
|
||||||
}} />
|
}} />
|
||||||
|
<Select
|
||||||
|
style={{ height: '31px', width: '183px',marginLeft:20, display: showSearchBox ? 'block' : 'none' }}
|
||||||
|
onChange={(value: string) => {
|
||||||
|
// console.log(`selected ${value}`);
|
||||||
|
setType(value)
|
||||||
|
// alert(`selected ${value}`)
|
||||||
|
// lyp
|
||||||
|
nav('/home', {
|
||||||
|
state: {
|
||||||
|
keyword: keywords,
|
||||||
|
name:value
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}}
|
||||||
|
options={[
|
||||||
|
{ value: '', label: '全部类型' },
|
||||||
|
{ value: 'FREE', label: '免费试用' },
|
||||||
|
{ value: 'MATERIAL', label: '写材料' },
|
||||||
|
{ value: 'ALL', label: '全托管' },
|
||||||
|
]}
|
||||||
|
defaultValue=""
|
||||||
|
/>
|
||||||
<div style={{
|
<div style={{
|
||||||
width: '253px',
|
width: '253px',
|
||||||
height: '31px',
|
height: '31px',
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
import './proj-create.css'
|
import './proj-create.css'
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { message } from "antd";
|
import { message } from "antd";
|
||||||
|
import {
|
||||||
|
CloseOutlined
|
||||||
|
} from '@ant-design/icons';
|
||||||
import CardProjType from "../../components/card/CardProjType.tsx";
|
import CardProjType from "../../components/card/CardProjType.tsx";
|
||||||
import {
|
import {
|
||||||
// IProjCharge,
|
// IProjCharge,
|
||||||
ProjAdditionalType, ProjChargeType } from "../../interfaces/proj/IProj.ts";
|
ProjAdditionalType, ProjChargeType
|
||||||
|
} from "../../interfaces/proj/IProj.ts";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { get } from "../../util/AjaxUtils.ts";
|
import { get } from "../../util/AjaxUtils.ts";
|
||||||
|
import ScrollAd from '../../components/scrollAD/ScrollAd.tsx'
|
||||||
// import { Link } from "react-router-dom";
|
// import { Link } from "react-router-dom";
|
||||||
|
|
||||||
export default function ProjCreate() {
|
export default function ProjCreate() {
|
||||||
@ -34,6 +39,7 @@ export default function ProjCreate() {
|
|||||||
const [freeCount, setFreeCount] = useState(0) //免费次数
|
const [freeCount, setFreeCount] = useState(0) //免费次数
|
||||||
const nav = useNavigate();
|
const nav = useNavigate();
|
||||||
const height = window.innerHeight - 170;
|
const height = window.innerHeight - 170;
|
||||||
|
const [show,setShow] = useState(true) //是否显示广告
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
get<any>({
|
get<any>({
|
||||||
messageApi: messageApi,
|
messageApi: messageApi,
|
||||||
@ -59,7 +65,19 @@ export default function ProjCreate() {
|
|||||||
< >
|
< >
|
||||||
{contextHolder}
|
{contextHolder}
|
||||||
<div style={{}}>
|
<div style={{}}>
|
||||||
<div className="proj-create" style={{ height: `${height}px`, overflow: 'auto' }}>
|
<div className="proj-create" style={{ height: `${height}px`, overflow: 'auto', position: 'relative' }}>
|
||||||
|
<div style={{ position: 'absolute', top: 0, left: 0, width: '100%', background: 'rgba(0, 0, 0, 0.1)' ,display:show?'block':'none'}}>
|
||||||
|
<div style={{display:'flex',justifyContent:'space-between',alignItems:'center'}}>
|
||||||
|
<div style={{width:'100%'}}>
|
||||||
|
<ScrollAd></ScrollAd>
|
||||||
|
</div>
|
||||||
|
<div style={{width:20,fontWeight:700,cursor:'pointer'}} onClick={()=>{
|
||||||
|
setShow(false)
|
||||||
|
}}>
|
||||||
|
<CloseOutlined />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<CardProjType
|
<CardProjType
|
||||||
head={'全托'}
|
head={'全托'}
|
||||||
bodyLineArray={[
|
bodyLineArray={[
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -359,6 +359,7 @@ export default function ProjEdit() {
|
|||||||
isEditStepEdited && isConfigEdited ? (
|
isEditStepEdited && isConfigEdited ? (
|
||||||
<CardProjJump title="预览系统"
|
<CardProjJump title="预览系统"
|
||||||
desc="点击查看预览系统"
|
desc="点击查看预览系统"
|
||||||
|
canBtnClick={true}
|
||||||
handleJump={() => {
|
handleJump={() => {
|
||||||
window.open(`${Axios.defaults?.baseURL}/${previewUrl}`, '_blank')
|
window.open(`${Axios.defaults?.baseURL}/${previewUrl}`, '_blank')
|
||||||
}}
|
}}
|
||||||
@ -453,18 +454,18 @@ export default function ProjEdit() {
|
|||||||
window.open(`${Axios.defaults?.baseURL}/route/proj/download/manual/${pathParams.projId}`)
|
window.open(`${Axios.defaults?.baseURL}/route/proj/download/manual/${pathParams.projId}`)
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<CardProjDownload title="代码压缩包"
|
{/* <CardProjDownload title="代码压缩包"
|
||||||
desc="点击下载代码压缩包"
|
desc="点击下载代码压缩包"
|
||||||
canBtnClick={generateStatus == GenerateStatus.SUCCESS}
|
canBtnClick={generateStatus == GenerateStatus.SUCCESS}
|
||||||
handleDownload={() => {
|
handleDownload={() => {
|
||||||
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code-zip/${pathParams.projId}`)
|
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code-zip/${pathParams.projId}`)
|
||||||
}}
|
}}
|
||||||
/>
|
/> */}
|
||||||
{/* <CardProjDownload title="代码文档"
|
<CardProjDownload title="源代码"
|
||||||
desc="点击下载代码文档"
|
desc="点击下载源代码"
|
||||||
canBtnClick={false}
|
canBtnClick={false}
|
||||||
handleDownload={() => { }}
|
handleDownload={() => { }}
|
||||||
/> */}
|
/>
|
||||||
{/* <CardProjJump title="找代理"
|
{/* <CardProjJump title="找代理"
|
||||||
desc="到软著代理完成软著申请"
|
desc="到软著代理完成软著申请"
|
||||||
canBtnClick={false}
|
canBtnClick={false}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import './proj-new.css';
|
import './proj-new.css';
|
||||||
import { useNavigate, useParams, useSearchParams } from "react-router-dom";
|
import { useNavigate, useParams, useSearchParams } from "react-router-dom";
|
||||||
import { Button, Flex, Form, Input, message, Modal, Spin, Checkbox } from "antd";
|
import { Button, Flex, Form, Input, message, Modal, Spin, Checkbox, DatePicker } from "antd";
|
||||||
import { useContext, useEffect, useState } from "react";
|
import { useContext, useEffect, useState } from "react";
|
||||||
import { get, post } from "../../util/AjaxUtils.ts";
|
import { get, post } from "../../util/AjaxUtils.ts";
|
||||||
// import {GlobalContext} from "../../context/GlobalContext.ts";
|
// import {GlobalContext} from "../../context/GlobalContext.ts";
|
||||||
@ -8,17 +8,23 @@ import {
|
|||||||
// IProjCharge,
|
// IProjCharge,
|
||||||
ProjAdditionalType, ProjChargeType
|
ProjAdditionalType, ProjChargeType
|
||||||
} from "../../interfaces/proj/IProj.ts";
|
} from "../../interfaces/proj/IProj.ts";
|
||||||
|
import locale from 'antd/es/date-picker/locale/zh_CN';
|
||||||
import { GlobalDispatchContext, reloadUser } from "../../context/GlobalContext.ts";
|
import { GlobalDispatchContext, reloadUser } from "../../context/GlobalContext.ts";
|
||||||
import BelongPeople from '../../components/BelongPeople/BelongPeople.tsx'
|
import BelongPeople from '../../components/BelongPeople/BelongPeople.tsx'
|
||||||
|
import ContactPeople from '../../components/ContactPeople/ContactPeople.tsx'
|
||||||
|
import dayjs from 'dayjs';
|
||||||
// const { TextArea } = Input;
|
// const { TextArea } = Input;
|
||||||
type ProjInfo = {
|
type ProjInfo = {
|
||||||
projName: string;
|
projName: string;
|
||||||
projIntroduction: string;
|
projIntroduction: string;
|
||||||
belongPeople: string
|
belongPeople: string;
|
||||||
|
contacts: string;
|
||||||
|
projDevCompleteDate: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function ProjNew() {
|
export default function ProjNew() {
|
||||||
// const globalContext = useContext(GlobalContext);
|
// const globalContext = useContext(GlobalContext);
|
||||||
|
const dateFormat = 'YYYY年MM月DD日';
|
||||||
const globalDispatchContext = useContext(GlobalDispatchContext);
|
const globalDispatchContext = useContext(GlobalDispatchContext);
|
||||||
const nav = useNavigate();
|
const nav = useNavigate();
|
||||||
const pathParams = useParams();
|
const pathParams = useParams();
|
||||||
@ -33,14 +39,16 @@ export default function ProjNew() {
|
|||||||
const [projInfo, setProjInfo] = useState<ProjInfo>({
|
const [projInfo, setProjInfo] = useState<ProjInfo>({
|
||||||
projName: '',
|
projName: '',
|
||||||
projIntroduction: '',
|
projIntroduction: '',
|
||||||
belongPeople: ''
|
belongPeople: '',
|
||||||
|
contacts: '',
|
||||||
|
projDevCompleteDate: '',
|
||||||
});
|
});
|
||||||
const [form] = Form.useForm<ProjInfo>();
|
const [form] = Form.useForm<ProjInfo>();
|
||||||
// 所属者弹窗
|
// 所属者弹窗
|
||||||
const [belongModal, setBelongModal] = useState(false)
|
const [belongModal, setBelongModal] = useState(false)
|
||||||
|
// 联系人弹窗
|
||||||
|
const [concatModal, setConcatModal] = useState(false)
|
||||||
// const [belongPeopleName ,setBelongPeopleName] = useState('')
|
// const [belongPeopleName ,setBelongPeopleName] = useState('')
|
||||||
// // 暂存一个信息过度
|
|
||||||
// const [newBelongPeopleName,setNewBelongPeopleName] = useState('')
|
|
||||||
const [belongPeopleInfo, setBelongPeopleInfo] = useState({
|
const [belongPeopleInfo, setBelongPeopleInfo] = useState({
|
||||||
authorName: '',
|
authorName: '',
|
||||||
authorType: '',
|
authorType: '',
|
||||||
@ -50,12 +58,24 @@ export default function ProjNew() {
|
|||||||
authorId: '',
|
authorId: '',
|
||||||
authorProvinceCity: ''
|
authorProvinceCity: ''
|
||||||
})
|
})
|
||||||
|
const [concatPeopleInfo, setConcatPeopleInfo] = useState({
|
||||||
|
applyConcatId: '',
|
||||||
|
applyContactCsaNo: '',
|
||||||
|
applyContactEmail: '',
|
||||||
|
applyContactName: '',
|
||||||
|
applyContactPhone: '',
|
||||||
|
applyContactCompany: ''
|
||||||
|
})
|
||||||
const setValue = (value: string) => {
|
const setValue = (value: string) => {
|
||||||
form.setFieldsValue({
|
form.setFieldsValue({
|
||||||
belongPeople: value
|
belongPeople: value
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const setConcatValue = (value: string) => {
|
||||||
|
form.setFieldsValue({
|
||||||
|
contacts: value
|
||||||
|
})
|
||||||
|
}
|
||||||
const [createProjId, setCreateProjId] = useState('');
|
const [createProjId, setCreateProjId] = useState('');
|
||||||
const oldlistProjChargeAdditional: string[] = [];
|
const oldlistProjChargeAdditional: string[] = [];
|
||||||
const [listProjChargeAdditional, setlistProjChargeAdditional] = useState<string[]>([])
|
const [listProjChargeAdditional, setlistProjChargeAdditional] = useState<string[]>([])
|
||||||
@ -112,7 +132,6 @@ export default function ProjNew() {
|
|||||||
// console.log('传递信息pkg:',pkg,'videoDemo:',videoDemo);
|
// console.log('传递信息pkg:',pkg,'videoDemo:',videoDemo);
|
||||||
|
|
||||||
// console.log('显示价格',price);
|
// console.log('显示价格',price);
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}, []);
|
}, []);
|
||||||
@ -143,7 +162,9 @@ export default function ProjNew() {
|
|||||||
setProjInfo({
|
setProjInfo({
|
||||||
projName: formData.projName,
|
projName: formData.projName,
|
||||||
projIntroduction: formData.projIntroduction,
|
projIntroduction: formData.projIntroduction,
|
||||||
belongPeople: formData.belongPeople
|
belongPeople: formData.belongPeople,
|
||||||
|
contacts: formData.contacts,
|
||||||
|
projDevCompleteDate: formData.projDevCompleteDate,
|
||||||
})
|
})
|
||||||
}}
|
}}
|
||||||
autoComplete="off"
|
autoComplete="off"
|
||||||
@ -172,6 +193,39 @@ export default function ProjNew() {
|
|||||||
setBelongModal(true)
|
setBelongModal(true)
|
||||||
}}>选择</div>
|
}}>选择</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div className='formItemOne' style={{ marginTop: 20, position: 'relative' }}>
|
||||||
|
<div className='formItem-title '>
|
||||||
|
知识产权联系人*
|
||||||
|
</div>
|
||||||
|
<Form.Item<ProjInfo>
|
||||||
|
name="contacts"
|
||||||
|
rules={[{ required: true, message: '请选择/创建知识产权联系人' }]}
|
||||||
|
>
|
||||||
|
<Input style={{ background: '#eeeeee', width: '800px', height: '50px', fontSize: '16px', color: '#3B3B3B' }} placeholder="请选择/创建知识产权联系人" disabled />
|
||||||
|
|
||||||
|
</Form.Item>
|
||||||
|
<div style={{ position: 'absolute', right: 23, fontSize: 16, color: " #1F79FF", cursor: 'pointer' }} onClick={() => {
|
||||||
|
setConcatModal(true)
|
||||||
|
}}>选择</div>
|
||||||
|
</div>
|
||||||
|
<div className='formItemOne' style={{ marginTop: 20}}>
|
||||||
|
<div className='formItem-title '>
|
||||||
|
开发完成时间*
|
||||||
|
</div>
|
||||||
|
<Form.Item<ProjInfo>
|
||||||
|
// label="开发完成时间"
|
||||||
|
name="projDevCompleteDate"
|
||||||
|
rules={[{ required: true, message: '请输入开发完成时间' }]}
|
||||||
|
>
|
||||||
|
<DatePicker placeholder="请选择开发完成日期"
|
||||||
|
format={dateFormat}
|
||||||
|
locale={locale}
|
||||||
|
// style={{ width: '100%' }}
|
||||||
|
style={{ height: '50px', width: '800px', fontSize: 16, background: '#eeeeee', }}
|
||||||
|
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</div>
|
||||||
<div className='software-protocol'>
|
<div className='software-protocol'>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="agreement"
|
name="agreement"
|
||||||
@ -219,6 +273,9 @@ export default function ProjNew() {
|
|||||||
// backgroundColor: 'var(--color-primary)', width: '216px',
|
// backgroundColor: 'var(--color-primary)', width: '216px',
|
||||||
// height: '50px', fontSize: '16px', marginLeft: '53px'
|
// height: '50px', fontSize: '16px', marginLeft: '53px'
|
||||||
// }}
|
// }}
|
||||||
|
// onClick={()=>{
|
||||||
|
// alert(belongPeopleInfo.authorProvinceCity)
|
||||||
|
// }}
|
||||||
>
|
>
|
||||||
保存并付款
|
保存并付款
|
||||||
</Button>
|
</Button>
|
||||||
@ -245,14 +302,23 @@ export default function ProjNew() {
|
|||||||
projName: projInfo.projName,
|
projName: projInfo.projName,
|
||||||
projChargeType: pathParams.projChargeType,
|
projChargeType: pathParams.projChargeType,
|
||||||
listProjChargeAdditional: listProjChargeAdditional,
|
listProjChargeAdditional: listProjChargeAdditional,
|
||||||
|
// dayjs(formInfo.getFieldValue('projDevCompleteDate')).format(dateFormat),
|
||||||
|
projDevCompleteDate:dayjs(projInfo.projDevCompleteDate).format(dateFormat),
|
||||||
authorCrcAccount: belongPeopleInfo.authorCrcAccount,
|
authorCrcAccount: belongPeopleInfo.authorCrcAccount,
|
||||||
authorId: belongPeopleInfo.authorId,
|
authorId: belongPeopleInfo.authorId,
|
||||||
authorIdCard: belongPeopleInfo.authorIdCard,
|
authorIdCard: belongPeopleInfo.authorIdCard,
|
||||||
authorIdCardType: belongPeopleInfo.authorIdCardType,
|
authorIdCardType: belongPeopleInfo.authorIdCardType,
|
||||||
authorName: belongPeopleInfo.authorName,
|
authorName: belongPeopleInfo.authorName,
|
||||||
authorProvinceCity: belongPeopleInfo.authorProvinceCity,
|
authorProvinceCity: belongPeopleInfo.authorProvinceCity,
|
||||||
authorType:belongPeopleInfo.authorType
|
authorType: belongPeopleInfo.authorType,
|
||||||
|
|
||||||
|
applyContactCompany:concatPeopleInfo.applyContactCompany,
|
||||||
|
applyContactCsaNo:concatPeopleInfo.applyContactCsaNo,
|
||||||
|
applyContactEmail:concatPeopleInfo.applyContactEmail,
|
||||||
|
applyContactId:concatPeopleInfo.applyConcatId,
|
||||||
|
applyContactName:concatPeopleInfo.applyContactName,
|
||||||
|
applyContactPhone:concatPeopleInfo.applyContactPhone,
|
||||||
|
projVersion:'v1.0'
|
||||||
},
|
},
|
||||||
onBefore() {
|
onBefore() {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
@ -296,6 +362,20 @@ export default function ProjNew() {
|
|||||||
}}>
|
}}>
|
||||||
<div>项目创建成功,开始编辑项目?</div>
|
<div>项目创建成功,开始编辑项目?</div>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
<Modal title="选择联系人"
|
||||||
|
destroyOnClose
|
||||||
|
|
||||||
|
open={concatModal}
|
||||||
|
width={1200}
|
||||||
|
|
||||||
|
footer={null}
|
||||||
|
onCancel={() => {
|
||||||
|
setConcatModal(false)
|
||||||
|
|
||||||
|
}}>
|
||||||
|
|
||||||
|
<ContactPeople isShow={true} closeModal={() => { setConcatModal(false) }} setConcatPeopleInfo={setConcatPeopleInfo} concatPeopleInfo={concatPeopleInfo} setConcatValue={setConcatValue}></ContactPeople>
|
||||||
|
</Modal>
|
||||||
<Modal title="选择所属者"
|
<Modal title="选择所属者"
|
||||||
destroyOnClose
|
destroyOnClose
|
||||||
|
|
||||||
|
@ -870,8 +870,8 @@ export default function ProjEditStep2(props: any) {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='showInfo'>
|
<div className='showInfo'>
|
||||||
<div style={{ marginRight: '22px' }}>当前申请人:</div>
|
<div style={{ marginRight: '22px' }}>当前联系人:</div>
|
||||||
<div style={{ display: applyContactName == '' ? 'block' : 'none' }}>请选择申请人</div>
|
<div style={{ display: applyContactName == '' ? 'block' : 'none' }}>请选择联系人</div>
|
||||||
<div style={{ display: applyContactName == '' ? 'none' : 'block' }}>
|
<div style={{ display: applyContactName == '' ? 'none' : 'block' }}>
|
||||||
{applyContactName}/{applyContactPhone}{applyContactEmail ? '/' + applyContactEmail : ''}
|
{applyContactName}/{applyContactPhone}{applyContactEmail ? '/' + applyContactEmail : ''}
|
||||||
</div>
|
</div>
|
||||||
@ -1022,7 +1022,7 @@ export default function ProjEditStep2(props: any) {
|
|||||||
// alert('申请人不能为空')
|
// alert('申请人不能为空')
|
||||||
messageApi.open({
|
messageApi.open({
|
||||||
type: 'error',
|
type: 'error',
|
||||||
content: '请选择申请人'
|
content: '请选择联系人'
|
||||||
})
|
})
|
||||||
setIsEditModalOpen(false);
|
setIsEditModalOpen(false);
|
||||||
}
|
}
|
||||||
|
@ -719,8 +719,8 @@ export default function ProjEditStep2() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className='showInfo'>
|
<div className='showInfo'>
|
||||||
<div style={{ marginRight: '22px' }}>当前申请人:</div>
|
<div style={{ marginRight: '22px' }}>当前联系人:</div>
|
||||||
<div style={{ display: applyContactName == '' ? 'block' : 'none' }}>请选择申请人</div>
|
<div style={{ display: applyContactName == '' ? 'block' : 'none' }}>请选择联系人</div>
|
||||||
<div style={{ display: applyContactName == '' ? 'none' : 'block' }}>
|
<div style={{ display: applyContactName == '' ? 'none' : 'block' }}>
|
||||||
{applyContactName}/{applyContactPhone}/{applyContactEmail}
|
{applyContactName}/{applyContactPhone}/{applyContactEmail}
|
||||||
</div>
|
</div>
|
||||||
@ -775,7 +775,7 @@ export default function ProjEditStep2() {
|
|||||||
// alert('申请人不能为空')
|
// alert('申请人不能为空')
|
||||||
messageApi.open({
|
messageApi.open({
|
||||||
type: 'error',
|
type: 'error',
|
||||||
content: '请选择申请人'
|
content: '请选择联系人'
|
||||||
})
|
})
|
||||||
setIsEditModalOpen(false);
|
setIsEditModalOpen(false);
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
}
|
}
|
||||||
.proj-edit {
|
.proj-edit {
|
||||||
background-color: var(--color-light);
|
background-color: var(--color-light);
|
||||||
|
/* background-color: var(--color-light); */
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
@ -25,6 +26,105 @@
|
|||||||
height: 100px;
|
height: 100px;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
right: 25px;
|
right: 25px;
|
||||||
bottom: 50px;
|
bottom: 20px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
.editAll-box{
|
||||||
|
width: 19%;
|
||||||
|
/* background-color: skyblue; */
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.editAll-box-title{
|
||||||
|
width: 100%;
|
||||||
|
height: 56px;
|
||||||
|
background-color: #FF9F08;
|
||||||
|
margin-top: 10px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 56px;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
border-radius: 10px;
|
||||||
|
color:#fff;
|
||||||
|
}
|
||||||
|
.editAll-boxNo-con{
|
||||||
|
margin-top: 50px;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
height: 95px;
|
||||||
|
line-height: 95px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.editAll-box-con{
|
||||||
|
/* width: 270px; */
|
||||||
|
/* width: 100%; */
|
||||||
|
width: calc(100% - 2px);
|
||||||
|
|
||||||
|
/* height: 500px; */
|
||||||
|
border: 1px solid rgb(212, 212, 212);
|
||||||
|
margin-bottom: 20px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.question{
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
background-color: #FF9F08;
|
||||||
|
line-height: 40px;
|
||||||
|
font-weight: 700;
|
||||||
|
padding:0 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.questionStatus{
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
.boxtitle{
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
background-color: #FF9F08;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
line-height: 40px;
|
||||||
|
text-indent: 10px;
|
||||||
|
/* font-size: 16px; */
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.boxtextTop{
|
||||||
|
background-color: #fff;
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.unReason{
|
||||||
|
/* background-color: pink; */
|
||||||
|
margin-top: 10px;
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
.boxtextBot{
|
||||||
|
background-color: #fff;
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.fileBox{
|
||||||
|
/* background-color: skyblue; */
|
||||||
|
margin-top: 10px;
|
||||||
|
min-height: 40px;
|
||||||
|
/* overflow: scroll; */
|
||||||
|
text-align: justify; /* 让文字两端对齐 */
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
.upload-box{
|
||||||
|
margin-top: 10px;
|
||||||
|
/* background-color: skyblue; */
|
||||||
|
}
|
||||||
|
.uploadTitle{
|
||||||
|
font-size: 16px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
@ -67,3 +67,6 @@
|
|||||||
margin-left: 190px;
|
margin-left: 190px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.formItemOne .css-dev-only-do-not-override-1ae8k9u.ant-picker .ant-picker-input >input{
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user