css修改及登陆界面

This commit is contained in:
xixi 2024-05-16 18:00:57 +08:00
parent 7a885cec8e
commit 9b4de12e03
25 changed files with 353 additions and 184 deletions

View File

@ -3,7 +3,7 @@ import { ICardProj, ICardProjChargeLine } from "../../interfaces/proj/ICardProj.
import { Checkbox } from 'antd';
import { useState } from "react";
import { ProjAdditionalType } from "../../interfaces/proj/IProj.ts";
// import ProjCardHeadBg from '../../assets/proj-card-head-bg.png';
// import ProjCardHeadBg from '../../assets/proj-card-head-bg.png1';
import serveImg from '../../static/serve.png'
import useImg from '../../static/use.png'
import leftImg from '../../static/createPro/left.png'

View File

@ -3,6 +3,7 @@
/* height: 842px; */
/* position: relative; */
/* background-color: rgb(255, 255, 255); */
margin-left: 28px;
}
.seruseImg {
@ -13,6 +14,9 @@
.projTop {
height: 745px;
background-color: rgb(255, 255, 255);
box-shadow: 0px 7px 7px 0px rgba(30, 30, 30, 0.18);
border-radius: 13px;
border: 1px solid #F3F3F3;
}
.proj .proj-head {
@ -27,6 +31,7 @@
width: 100%;
height: 132px;
line-height: 132px;
/* left: 38px; */
/* top: -4px; */
/* background-color: aqua; */
@ -148,7 +153,7 @@
width: 375px;
height: 94px;
/* background-color: pink; */
}
.proj .proj-foot .buy-btn {
@ -157,7 +162,7 @@
padding: 0 10px;
background: url(../../static/createPro/buyBack.png);
background-size: 100% 100%;
box-shadow: 0px 7px 7px 0px rgba(30,30,30,0.18);
/* text-align: center;
margin: 0 5px;
padding: 10px 0;
@ -201,7 +206,8 @@
font-size: 18px;
color: #696969;
}
.proj-foot .buy-btn:nth-child(2){
.proj-foot .buy-btn:nth-child(2) {
/* background-color: red; */
margin-left: 9px;
}

View File

@ -35,7 +35,7 @@ export default function ListProj() {
const [projs, setProjs] = useState<IProj[]>([]);
const [isLoading, setIsLoading] = useState(false);
// const [keywords, setKeywords] = useState('');
const domHeight = window.innerHeight - 280;
const domHeight = window.innerHeight - 250;
// const navigate = useNavigate()
const reqData = (currentPage: number) => {
get<IListPage<IProj>>({

View File

@ -2,7 +2,7 @@
width: 100%;
/* padding-top: 26px; */
/* padding-right: 33px; */
margin-top: 10px;
/* margin-top: 10px; */
}
.projListBox{
margin-bottom: 25px;

View File

@ -5,7 +5,7 @@ import { useNavigate } from 'react-router-dom';
// import newImg from '../../static/left/new.png'
// import {
// RightOutlined
// RightOutlined1
// } from '@ant-design/icons';
export default function MenuWithTopButton(props: IMenuWithTopButton) {
const navugate = useNavigate()

View File

@ -6,7 +6,7 @@
width: 100%;
}
.btn-cennter{
width: 268px;
width: 231px;
height: 56px;
font-size: 18px;
background: #FFFBEF;
@ -27,8 +27,8 @@
.center-top-lift img{
width: 19px;
height: 15px;
margin-left: 30px;
margin-right: 14px;
margin-left: 14px;
margin-right: 13px;
}
.center-top-right{
display: flex;
@ -36,7 +36,7 @@
font-size: 14px;
cursor: pointer;
width: 53px;
margin-left: 96px;
margin-left: 82px;
}
.center-top-right img{
margin-right: 10px;

View File

@ -3,7 +3,7 @@
}
.bot {
width: 268px;
width: 230px;
height: 56px;
font-size: 18px;
/* color: #FFAF22; */

View File

@ -3,7 +3,7 @@
}
.menu-with-top-button .top {
width: 268px;
width: 231px;
height: 56px;
font-size: 18px;
/* color: #FFAF22; */
@ -25,8 +25,8 @@
.menu-with-top-button .top .top-lift img {
width: 19px;
height: 19px;
margin-left: 30px;
margin-right: 14px;
margin-left: 14px;
margin-right: 13px;
}
.menu-with-top-button .top .top-right {
@ -36,7 +36,7 @@
cursor: pointer;
width: 53px;
/* background-color: red; */
margin-left: 96px;
margin-left: 82px;
}
@ -50,29 +50,33 @@
.menu-with-top-button ul {
padding-top: 12px;
padding-bottom: 12px;
width: 231px;
/* background-color:pink; */
}
.menu-with-top-button ul li {
height: 50px;
margin-left: 66px;
margin-left: 35px;
font-weight: 400;
font-size: 16px;
color: #313131;
line-height: 50px;
cursor: pointer;
/* background-color: red; */
text-indent: 32px;
}
.menu-with-top-button ul li.active {
width: 223px;
width: 213px;
height: 50px;
background: #FF9F08;
border-radius: 25px;
color: white;
text-indent: 26px;
text-indent: 59px;
}
.topIcon{
color: white;
margin-left: 101px;
margin-left: 68px;
}

View File

@ -19,4 +19,5 @@ interface ContactDataType {
name: string
phone: string
projContactId: string
email:string
}

View File

@ -1,7 +1,7 @@
.head {
width: 100vw;
height: 84px;
height: 69px;
position: fixed;
top: 0;
left: 0;
@ -29,8 +29,8 @@
height: 41px;
/* background-color: red;
*/
margin-left: 176px;
margin-top: 21px;
margin-left: 15px;
margin-top: 12px;
}
.head .center .right {

View File

@ -153,7 +153,7 @@ export default function Index() {
setNow('创建项目')
setPathArray([{ title: <Link to={'/home'}></Link> }, { title: '创建项目' }])
//
} else if (location.pathname.includes('/proj-edit') && !location.pathname.includes('/step')) {
} else if (location.pathname.includes('/proj-edit') && !location.pathname.includes('/step') &&!location.pathname.includes('/config-loginpage') ) {
setNow('编辑项目')
// setEditname(location.pathname)
setPathArray([{ title: <Link to={'/home'}></Link> }, { title: <Link to={'/proj-create'}></Link> }, { title: '编辑项目' }])
@ -177,9 +177,12 @@ export default function Index() {
setNow('标题简介')
// setNewname(location.pathname)
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')) {
setNow('登录界面设置')
// setNewname(location.pathname)
setPathArray([{ title: <Link to={'/home'}></Link> }, { title: <Link to={'/proj-create'}></Link> }, { title: <a onClick={() => { nav(-1) }}></a> }, { title: '登录界面设置' }])
}
// /proj-edit/step1
}, [location.pathname])
useEffect(() => {
@ -220,6 +223,7 @@ export default function Index() {
<IndexListDispatchContext.Provider value={dispatch}>
<div className="index">
<div className="left">
<div style={{height:'15px',width:'230px',background:'white'}}></div>
<MenuWithTopButton
button={projMenu.button}
list={projMenu.list}

View File

@ -6,24 +6,25 @@
.index .left {
position: fixed;
width: 267px;
/* width: 267px; */
width: 230px;
height: 100%;
/* overflow: auto; */
top: 80px;
top: 65px;
left: 0;
background-color: var(--color-light);
}
.index .right {
margin-left: 300px;
margin-left: 250px;
box-sizing: border-box;
height: 100%;
position: fixed;
width:calc(100vw - 330px);
width:calc(100vw - 270px);
/* width: 1575px; */
}
.index .right .top{
margin-top: 26px;
/* margin-top: 11px; */
box-sizing: border-box;
height: 62px;
display: flex;

View File

@ -23,8 +23,7 @@ export default function ProjCreate() {
}
});
const nav = useNavigate();
const height = window.innerHeight - 150;
const height = window.innerHeight - 140;
useEffect(() => {
get<any>({
messageApi: messageApi,
@ -40,7 +39,7 @@ export default function ProjCreate() {
}, [])
return (
<>
< >
{contextHolder}
{/* <Breadcrumb
items={[

View File

@ -29,6 +29,7 @@ type ProjModType = {
}
export default function ProjEdit() {
const height = window.innerHeight - 180;
const nav = useNavigate();
const pathParams = useParams();
@ -230,13 +231,13 @@ export default function ProjEdit() {
}
})
}
useEffect(() => {
renderData();
}, [])
return (
<div className='proj-edit-box'>
<div className='proj-edit-box' style={{height: `${height}px`,overflow:'auto'}}>
{contextHolder}
{/* <Breadcrumb
items={[

View File

@ -1,6 +1,6 @@
import './proj-edit-step.css';
import './proj-config-loginpage.css';
import {
Breadcrumb,
Col,
Flex,
GetProp,
@ -14,10 +14,10 @@ import {
UploadFile,
UploadProps
} from "antd";
import {Link, useNavigate, useParams} from "react-router-dom";
import {useEffect, useState} from "react";
import {DevUserId, get, downloadUrl, put, uploadImageUrl, post} from "../../../util/AjaxUtils.ts";
import {Button, Form} from 'antd';
import { useNavigate, useParams } from "react-router-dom";
import { useEffect, useState } from "react";
import { DevUserId, get, downloadUrl, put, uploadImageUrl, post } from "../../../util/AjaxUtils.ts";
import { Button, Form } from 'antd';
type FormFieldType = {
loginpageId: string;
@ -42,7 +42,7 @@ export default function ProjConfigLoginpage() {
const [logoImgArray, setLogoImgArray] = useState<UploadFile[]>([]);
const [bgImgArray, setBgImgArray] = useState<UploadFile[]>([]);
const [iframeSrcDoc, setIframeSrcDoc] = useState();
const height = window.innerHeight - 210;
const height = window.innerHeight - 180;
const beforeUpload = (file: FileType) => {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
@ -65,7 +65,7 @@ export default function ProjConfigLoginpage() {
copyrightOwner: form.getFieldValue('copyrightOwner'),
copyrightDate: form.getFieldValue('copyrightDate'),
},
onSuccess({data}) {
onSuccess({ data }) {
setIframeSrcDoc(data.data);
}
})
@ -75,7 +75,7 @@ export default function ProjConfigLoginpage() {
get<any>({
messageApi,
url: `/api/proj/get/config-loginpage/${pathParams.projId}`,
onSuccess({data}) {
onSuccess({ data }) {
form.setFieldValue('loginpageId', data.loginpageId);
form.setFieldValue('subTitle', data.subTitle);
form.setFieldValue('copyrightOwner', data.copyrightOwner);
@ -117,69 +117,89 @@ export default function ProjConfigLoginpage() {
return (
<>
{contextHolder}
<Breadcrumb
{/* <Breadcrumb
items={[
{title: <Link to={'/'}></Link>},
{title: <Link to={'/proj-create'}></Link>},
{title: <a onClick={() => {nav(-1)}}></a>},
{title: '登录界面设置'},
]}
/>
<div className="form-container" style={{height: `${height}px`}}>
/> */}
<div className="form-container" style={{ height: `${height}px`, marginTop: '18px', overflow: 'auto', padding: '0', background: '#EFEFEF' }}>
<div className="loginpage-body">
<Row gutter={15}>
<Col span={6}>
<Col span={16}>
<div className='loginpage-bodyL' >
<iframe srcDoc={iframeSrcDoc} style={{
width: '93%',
height: `${height - 150}px`,
border: '1px solid var(--color-border)',
// background: 'pink',
marginTop:'68px'
}} />
<div className='loginpage-bodyL-btn'>
<div className='seeButton'></div>
<div className='upButton'></div>
</div>
</div>
</Col>
<Col span={8}>
<Form
name="basic"
form={form}
layout="vertical"
labelCol={{span: 8}}
wrapperCol={{span: 24}}
labelCol={{ span: 8 }}
wrapperCol={{ span: 24 }}
onFinish={() => {
setIsEditModalOpen(true);
}}
autoComplete="off"
style={{ background: 'red' }}
>
<Form.Item label="副标题"
name="subTitle"
rules={[{required: false, message: '请输入副标题'}]}>
name="subTitle"
rules={[{ required: false, message: '请输入副标题' }]}>
<Input placeholder="请输入副标题" onChange={() => {
preview()
}}/>
}} />
</Form.Item>
<Form.Item>
<Space.Compact>
<Form.Item label="版权时间"
name="copyrightDate"
rules={[{required: false, message: '请输入版权时间'}]}
style={{display: 'inline-block', marginBottom: '0'}}>
name="copyrightDate"
rules={[{ required: false, message: '请输入版权时间' }]}
style={{ display: 'inline-block', marginBottom: '0' }}>
<Input placeholder="请输入版权时间" onChange={() => {
preview()
}}/>
}} />
</Form.Item>
<Form.Item label="版权人"
name="copyrightOwner"
rules={[{required: false, message: '请输入版权人'}]}
style={{display: 'inline-block', marginBottom: '0'}}>
name="copyrightOwner"
rules={[{ required: false, message: '请输入版权人' }]}
style={{ display: 'inline-block', marginBottom: '0' }}>
<Input placeholder="请输入版权人" onChange={() => {
preview()
}}/>
}} />
</Form.Item>
</Space.Compact>
</Form.Item>
<Form.Item>
<Space.Compact>
<Form.Item label="用户名"
name="adminUsername"
rules={[{required: true, message: '请输入用户名'}]}
style={{display: 'inline-block', marginBottom: '0'}}>
<Input placeholder="请输入用户名"/>
name="adminUsername"
rules={[{ required: true, message: '请输入用户名' }]}
style={{ display: 'inline-block', marginBottom: '0' }}>
<Input placeholder="请输入用户名" />
</Form.Item>
<Form.Item label="密码"
name="adminPassword"
rules={[{required: true, message: '请输入密码'}]}
style={{display: 'inline-block', marginBottom: '0'}}>
<Input placeholder="请输入密码"/>
name="adminPassword"
rules={[{ required: true, message: '请输入密码' }]}
style={{ display: 'inline-block', marginBottom: '0' }}>
<Input placeholder="请输入密码" />
</Form.Item>
</Space.Compact>
</Form.Item>
@ -190,7 +210,7 @@ export default function ProjConfigLoginpage() {
maxCount={1}
defaultFileList={logoImgArray}
action={uploadImageUrl()}
headers={{'X-USER-ID': DevUserId}}
headers={{ 'X-USER-ID': DevUserId }}
beforeUpload={beforeUpload}
onChange={(info) => {
if (info.file.status === 'uploading') {
@ -224,8 +244,8 @@ export default function ProjConfigLoginpage() {
}}
>
<Button size="small" type="primary"
style={{backgroundColor: 'var(--color-primary)'}}
disabled={logoImgArray.length > 0}></Button>
style={{ backgroundColor: 'var(--color-primary)' }}
disabled={logoImgArray.length > 0}></Button>
</Upload>
</Form.Item>
<Form.Item label="背景">
@ -235,7 +255,7 @@ export default function ProjConfigLoginpage() {
maxCount={1}
defaultFileList={bgImgArray}
action={uploadImageUrl()}
headers={{'X-USER-ID': DevUserId}}
headers={{ 'X-USER-ID': DevUserId }}
beforeUpload={beforeUpload}
onChange={(info) => {
if (info.file.status === 'uploading') {
@ -269,17 +289,17 @@ export default function ProjConfigLoginpage() {
}}
>
<Button size="small" type="primary"
style={{backgroundColor: 'var(--color-primary)'}}
disabled={bgImgArray.length > 0}></Button>
style={{ backgroundColor: 'var(--color-primary)' }}
disabled={bgImgArray.length > 0}></Button>
</Upload>
</Form.Item>
<Form.Item wrapperCol={{span: 24}}>
<div style={{paddingTop: '15px'}}>
<Form.Item wrapperCol={{ span: 24 }}>
<div style={{ paddingTop: '15px' }}>
<Flex align="center" justify="center" gap="large">
<Button type="primary"
htmlType="submit"
style={{backgroundColor: 'var(--color-primary)'}}>
htmlType="submit"
style={{ backgroundColor: 'var(--color-primary)' }}>
</Button>
<Button type="default" htmlType="button" onClick={() => {
@ -292,55 +312,49 @@ export default function ProjConfigLoginpage() {
</Form.Item>
</Form>
</Col>
<Col span={18}>
<iframe srcDoc={iframeSrcDoc} style={{
width: '100%',
height: `${height - 10}px`,
border: '1px solid var(--color-border)'
}}/>
</Col>
</Row>
</div>
</div>
<Modal title="提示"
okText="确定"
cancelText="取消"
open={isEditModalOpen}
onOk={() => {
setIsEditModalOpen(false);
console.log(logoImgArray)
put({
messageApi,
url: `/api/proj/update/config-loginpage/${pathParams.projId}`,
body: {
logo: logoImgArray.length > 0 ? logoImgArray[0].uid : '',
bgImgs: bgImgArray.length > 0 ? bgImgArray[0].uid : '',
subTitle: form.getFieldValue('subTitle'),
copyrightOwner: form.getFieldValue('copyrightOwner'),
copyrightDate: form.getFieldValue('copyrightDate'),
adminUsername: form.getFieldValue('adminUsername'),
adminPassword: form.getFieldValue('adminPassword'),
},
onBefore() {
setLoading(true);
},
onSuccess() {
messageApi.open({
type: 'success',
content: '编辑成功'
})
},
onFinally() {
setLoading(false);
}
})
}}
onCancel={() => {
setIsEditModalOpen(false);
}}>
okText="确定"
cancelText="取消"
open={isEditModalOpen}
onOk={() => {
setIsEditModalOpen(false);
console.log(logoImgArray)
put({
messageApi,
url: `/api/proj/update/config-loginpage/${pathParams.projId}`,
body: {
logo: logoImgArray.length > 0 ? logoImgArray[0].uid : '',
bgImgs: bgImgArray.length > 0 ? bgImgArray[0].uid : '',
subTitle: form.getFieldValue('subTitle'),
copyrightOwner: form.getFieldValue('copyrightOwner'),
copyrightDate: form.getFieldValue('copyrightDate'),
adminUsername: form.getFieldValue('adminUsername'),
adminPassword: form.getFieldValue('adminPassword'),
},
onBefore() {
setLoading(true);
},
onSuccess() {
messageApi.open({
type: 'success',
content: '编辑成功'
})
},
onFinally() {
setLoading(false);
}
})
}}
onCancel={() => {
setIsEditModalOpen(false);
}}>
<div></div>
</Modal>
<Spin tip="正在提交..." spinning={loading} fullscreen/>
<Spin tip="正在提交..." spinning={loading} fullscreen />
</>
)

View File

@ -23,7 +23,7 @@ export default function ProjEditStep1() {
const [form] = Form.useForm<FieldType>();
const [loading, setLoading] = useState<boolean>(false);
const [isEditModalOpen, setIsEditModalOpen] = useState(false);
const height = window.innerHeight - 150
const height = window.innerHeight - 180
useEffect(() => {
get({
@ -42,7 +42,7 @@ export default function ProjEditStep1() {
}, [])
return (
<div style={{ height: `${height}px`, overflow: 'auto' }}>
<div style={{ height: `${height}px`, overflow: 'auto',marginTop:'18px' }}>
{contextHolder}
{/* <Breadcrumb
items={[
@ -53,7 +53,7 @@ export default function ProjEditStep1() {
]}
/> */}
{/* <div className="form-container" style={{ height: `${height}px` }}> */}
<div style={{ marginTop: '26px', height: '842px', marginBottom: '40px' }}>
<div style={{ }}>
<div className="form-container" >
<div className='Step-title'>

View File

@ -21,7 +21,7 @@ export default function ProjEditStep1Show() {
const pathParams = useParams();
const [messageApi, contextHolder] = message.useMessage();
const [form] = Form.useForm<FieldType>();
const height = window.innerHeight - 180;
const height = window.innerHeight - 160;
useEffect(() => {
get({
@ -40,7 +40,7 @@ export default function ProjEditStep1Show() {
}, [])
return (
<div style={{ height: `${height}px`, overflow: 'auto' }}>
<div style={{ height: `${height}px`, overflow: 'auto',marginTop: '18px'}}>
{contextHolder}
{/* <Breadcrumb
items={[
@ -50,7 +50,7 @@ export default function ProjEditStep1Show() {
{title: '标题简介'},
]}
/> */}
<div style={{ marginTop: '26px', marginBottom: '40px' }}>
<div style={{ }}>
<div className="form-container">
<div className='Step-title'>

View File

@ -1,8 +1,8 @@
import './proj-edit-step.css';
import { Breadcrumb, Radio, Cascader, Col, DatePicker, Flex, message, Modal, Row, Spin, Select, Table, Space } from "antd";
import { Radio, Cascader, Col, DatePicker, Flex, message, Modal, Row, Spin, Select, Table, Space } from "antd";
import { FolderAddOutlined } from '@ant-design/icons';
import locale from 'antd/es/date-picker/locale/zh_CN';
import { Link, useNavigate, useParams } from "react-router-dom";
import { useNavigate, useParams } from "react-router-dom";
import { useEffect, useState } from "react";
import { get, put, post, del, downloadUrl } from "../../../util/AjaxUtils.ts";
import { Button, Form, Input } from 'antd';
@ -76,19 +76,34 @@ export default function ProjEditStep2() {
const dateFormat = 'YYYY年MM月DD日';
// 页面显示的所属者信息
const [authorName,setauthorName] = useState('')
const [authorIdCardType,setauthorIdCardType]= useState('')
const [authorIdCard,setauthorIdCard]= useState('')
const [authorType,setauthorType] = useState('')
const [authorName, setauthorName] = useState('') //所属人姓名
const [authorIdCardType, setauthorIdCardType] = useState('') //所属人证件类型
const [authorIdCard, setauthorIdCard] = useState('') //所属人证件号
const [authorType, setauthorType] = useState('') //所属人类型
const [authorNameEn, setauthorNameEn] = useState('') //所属人英文名
const [authorProvinceCity, setauthorProvinceCity] = useState('') //所属人省市
const [authorCrcAccount, setauthorCrcAccount] = useState(0) //是否给账号 0 给 1 不给
const [authorCrcAccountPassword, setauthorCrcAccountPassword] = useState('') //密码
const [authorCrcAccountUsername, setauthorCrcAccountUsername] = useState('') //账号
// 从基本信息中获取到的两个表格默认选择的id 所属者id 联系人id
const [authorId, setAuthorId] = useState('') //所属人id
const [applyConcatId, setApplyConcatId] = useState('') //联系人id
const [applyContactCsaNo, setapplyContactCsaNo] = useState('') //客服编号
const [applyContactEmail, setapplyContactEmail] = useState('') //联系人邮箱
const [applyContactName, setapplyContactName] = useState('') //联系人姓名
const [applyContactPhone, setapplyContactPhone] = useState('') //联系人手机
// 设置所属者more你选中的行
// const [selectedRowKeys, setSelectedRowKeys] = useState<BelongDataType[]>([]);
// 所属者搜索关键字
// const [keywords, setKeyWords] = useState('')
const [keywords, setKeyWords] = useState('')
const [type, setType] = useState('')
// 表格第几行数据
// const [clom, setClom] = useState('')
// 著作人搜索
const belongPeopleSearch: SearchProps['onSearch'] = (value, _e, info) => (
console.log(info?.source, value),
// setKeyWords(value),
setKeyWords(value),
getSearchProjOwnerList(value, type)
);
// 申请人信息搜索 applicantPeopleSearch
@ -105,6 +120,16 @@ export default function ProjEditStep2() {
// selectedRowKeys: React.Key[]
onChange: (selectedRowKeys: React.Key[], selectedRows: BelongDataType[]) => {
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
setauthorName(selectedRows[0].name)
setauthorIdCardType(selectedRows[0].idCardType)
setauthorIdCard(selectedRows[0].idCardNo)
setauthorType(selectedRows[0].type)
setauthorNameEn(selectedRows[0].nameEn)
setauthorProvinceCity(selectedRows[0].provinceCity)
setauthorCrcAccount(selectedRows[0].isCrcAccount)
setauthorCrcAccountPassword(selectedRows[0].crcAccountPassword)
setauthorCrcAccountUsername(selectedRows[0].crcAccountUsername)
setAuthorId(selectedRows[0].projOwnerId)
// setClom(String(selectedRowKeys))
// setbelongselectedKeys(selectedRowKeys)
},
@ -115,12 +140,15 @@ export default function ProjEditStep2() {
// selectedRowKeys: React.Key[]
onChange: (selectedRowKeys: React.Key[], selectedRows: ContactDataType[]) => {
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
// setClom(String(selectedRowKeys))
// setSelectedKeyst(selectedRowKeys)
setApplyConcatId(selectedRows[0].projContactId)
setapplyContactCsaNo(selectedRows[0].csaNo)
setapplyContactEmail(selectedRows[0].email)
setapplyContactName(selectedRows[0].name)
setapplyContactPhone(selectedRows[0].phone)
},
};
const datanew = []
// 所属人表格数据
const [tableBelongData, setTableBelongData] = useState<BelongDataType[]>([])
// 联系人表格数据
@ -200,9 +228,7 @@ export default function ProjEditStep2() {
// (errorInfo);
});
};
// 从基本信息中获取到的两个表格默认选择的id 所属者id 联系人id
const [authorId, setAuthorId] = useState('')
const [applyConcatId, setApplyConcatId] = useState('')
// const [belongselectedKeys,setbelongselectedKeys] = useState(tableBelongData.filter(item => item.projOwnerId === authorId).map(item => item.projOwnerId));
// 获取页面基本信息信息
const getEditstep = () => {
@ -212,13 +238,26 @@ export default function ProjEditStep2() {
onSuccess({ data }: AxiosResponse) {
// 获取默认所属人信息
setauthorName(data.authorName)
setauthorIdCardType(data.authorIdCardType)
setauthorIdCard(data.authorIdCard)
setauthorType(data.authorType)
setauthorNameEn(data.authorNameEn)
setauthorProvinceCity(data.authorProvinceCity)
setauthorCrcAccount(data.authorCrcAccount)
setauthorCrcAccountPassword(data.authorCrcAccountPassword)
setauthorCrcAccountUsername(data.authorCrcAccountUsername)
setAuthorId(data.authorId)
// 默认联系人信息
setApplyConcatId(data.applyContactId)
setapplyContactName(data.applyContactName)
setapplyContactPhone(data.applyContactPhone)
setapplyContactCsaNo(data.applyContactCsaNo)
setapplyContactEmail(data.applyContactEmail)
console.log('基本信息', data);
setAuthorId(data.authorId)
setApplyConcatId(data.applyConcatId)
setApplyConcatId(data.applyContactId)
formInfo.setFieldsValue({
projSubName: data.projSubName,
projVersion: data.projVersion,
@ -237,6 +276,10 @@ export default function ProjEditStep2() {
onSuccess({ data }: AxiosResponse) {
console.log('所属者表格', data);
setTableBelongData(data)
// const selectBelongArray = data.filter(item => item.name === authorName)
// console.log('嘻嘻',selectBelongArray);
// setSelectedRowKeys(selectBelongArray)
}
})
}
@ -526,39 +569,27 @@ export default function ProjEditStep2() {
</div>
<div style={{ display: 'flex' }}>
<div className='projTitle ' style={{ marginLeft: '112px' }}><span className='redicon'>*</span> :</div>
<Form.Item<FieldType>
// label="公司名称"
name="companyName"
// extra="公司名称在操作手册中引用"
rules={[{ required: true, message: '请输入公司名称' }]}
>
<Input
style={{ height: '50px', width: '411px', fontSize: '16px' }}
placeholder="请输入公司名称" />
</Form.Item>
<div className='projTitle ' style={{ marginLeft: '112px' }}>:</div>
<Input
readOnly
style={{ height: '50px', width: '411px', fontSize: '16px' }}
value={authorName}
// placeholder="请输入公司名称"
/>
</div>
</Row>
<Row gutter={15}>
<div style={{ display: 'flex' }}>
<div className='projTitle '><span className='redicon'>*</span> :</div>
<div className='projTitle '><span className='redicon'>*</span> :</div>
<Input
readOnly
style={{ height: '50px', width: '411px', fontSize: '16px' }}
value={authorNameEn}
// placeholder="请输入公司英文名称"
/>
<Form.Item<FieldType>
// label="公司英文名称"
name="companyNameEn"
// extra="公司英文名称在操作手册中引用"
rules={[{ required: true, message: '请输入公司英文名称' }]}
>
<Input
style={{ height: '50px', width: '411px', fontSize: '16px' }}
placeholder="请输入公司英文名称" />
</Form.Item>
</div>
</Row>
@ -619,8 +650,11 @@ export default function ProjEditStep2() {
</div> */}
</div>
<div className='showInfo'>
<div>:</div>
<div>{authorName}/{authorIdCardType}/{authorIdCard}</div>
<div style={{ marginRight: '22px' }}>:</div>
<div style={{ display: authorName == '' ? 'block' : 'none' }}></div>
<div style={{ display: authorName == '' ? 'none' : 'block' }}>
{authorName}/{authorType == 'PERSONAL' ? '自然人' : '企业-组织'}/{authorIdCardType == 'ID_CARD' ? '身份证' : '营业执照'}/{authorIdCard}
</div>
</div>
<div className='belongPeople-bot'>
{/* 表格 */}
@ -767,6 +801,13 @@ export default function ProjEditStep2() {
<Search placeholder="请输入持有者名称搜索对应信息" onSearch={applicantPeopleSearch} style={{ width: '353px', height: '43px' }} />
</div>
</div>
<div className='showInfo'>
<div style={{ marginRight: '22px' }}>:</div>
<div style={{ display: applyContactName == '' ? 'block' : 'none' }}></div>
<div style={{ display: applyContactName == '' ? 'none' : 'block' }}>
{applyContactName}/{applyContactPhone}/{applyContactEmail}
</div>
</div>
<div className='belongPeople-bot'>
{/* 表格 lyp*/}
<Table
@ -854,7 +895,22 @@ export default function ProjEditStep2() {
</Button>
<Button type="primary"
htmlType="submit"
style={{ height: '49px', width: '104px', color: '#FDFDF2', background: '#1564ED', fontSize: '16px' }}>
style={{ height: '49px', width: '104px', color: '#FDFDF2', background: '#1564ED', fontSize: '16px' }}
onClick={() => {
formInfo.validateFields().then(() => {
// 如果验证通过,则执行确认操作
// 这里可以放置你的确认操作逻辑
setIsEditModalOpen(true)
}).catch(() => {
// 如果验证不通过,可以根据需要处理错误信息
messageApi.open({
type: 'error',
content: '带*的内容为必填'
})
});
}}
>
</Button>
@ -876,19 +932,19 @@ export default function ProjEditStep2() {
open={isEditModalOpen}
onOk={() => {
// 美哟u创建所属者 应该还得判断一下没选中所属者
if (tableBelongData.length == 0) {
if (authorName == '') {
// alert('所属者不能为空')
messageApi.open({
type: 'error',
content: '所属者不能为空'
content: '请选择所属者'
})
setIsEditModalOpen(false);
// 没有申请人 应该还得判断一下没选中申请人
} else if (datanew.length == 0) {
} else if (applyContactName == '') {
// alert('申请人不能为空')
messageApi.open({
type: 'error',
content: '申请人不能为空'
content: '请选择申请人'
})
setIsEditModalOpen(false);
}
@ -901,6 +957,7 @@ export default function ProjEditStep2() {
// }
else {
// alert(authorName)
setIsEditModalOpen(false);
put({
messageApi,
@ -909,8 +966,24 @@ export default function ProjEditStep2() {
projSubName: formInfo.getFieldValue('projSubName'),
projVersion: formInfo.getFieldValue('projVersion'),
projDevCompleteDate: dayjs(formInfo.getFieldValue('projDevCompleteDate')).format(dateFormat),
companyName: formInfo.getFieldValue('companyName'),
companyNameEn: formInfo.getFieldValue('companyNameEn'),
// companyName: formInfo.getFieldValue('companyName'),
// companyNameEn: formInfo.getFieldValue('companyNameEn'),
authorName,
authorIdCardType,
authorIdCard,
authorType,
authorNameEn,
authorProvinceCity,
authorCrcAccount,
authorCrcAccountPassword,
authorCrcAccountUsername,
authorId,
applyContactId: applyConcatId,
applyContactCsaNo,
applyContactEmail,
applyContactName,
applyContactPhone
},
onBefore() {
setLoading(true);

View File

@ -0,0 +1,47 @@
.loginpage-body {
/* display: flex; */
/* height: 975px; */
}
.loginpage-bodyL {
background: white;
display: flex;
flex-direction: column;
align-items: center;
}
.loginpage-bodyR {
background: white;
}
.loginpage-bodyL-btn {
display: flex;
margin-top: 65px;
margin-bottom: 192px;
}
.seeButton {
width: 107px;
height: 37px;
background: #F2F2F2;
border: 1px solid #EDEDED;
display: flex;
justify-content: center;
align-items: center;
font-size: 16px;
color: #65615C;
}
.upButton {
width: 132px;
height: 37px;
background: #FF9F08;
display: flex;
justify-content: center;
align-items: center;
font-size: 16px;
color: #FFFFFF;
margin-left: 19px;
}

View File

@ -220,4 +220,14 @@
text-align: center;
}
.showInfo {
display: flex;
font-family: Microsoft YaHei UI;
font-weight: 700;
font-size: 16px;
color: #FFC484;
/* background-color: red; */
margin-top: 26px;
}

View File

@ -2,17 +2,22 @@
/* min-height: 100%; */
/* background-color: var(--color-light); */
display: flex;
justify-content: space-between;
justify-content: center;
flex-wrap: wrap;
align-items: center;
padding-bottom: 50px;
padding-bottom: 26px;
background-color: rgb(255, 255, 255);
margin-top: 18px;
background-image: url('../../static/buyback.png');
background-size: 100% 100%;
}
::-webkit-scrollbar {
display: none;
}
.proj-create .proj {
margin-top: 23px;
margin-top: 33px;
}
.proj-create .test{
/* height: 30p; */

View File

@ -1,6 +1,10 @@
.proj-edit-box{
margin-top: 21px;
overflow: auto;
margin-top: 18px;
/* overflow: auto; */
/* background-color: red; */
background-color: var(--color-light);
}
.proj-edit {

View File

@ -1,6 +1,6 @@
.projNew {
height: calc(100vh - 220px);
margin-top: 26px;
margin-top: 18px;
overflow: auto;
}

BIN
src/static/buyback.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 119 KiB