This commit is contained in:
xixi 2024-07-15 16:58:47 +08:00
parent 3f02852844
commit 75c8a8a788
23 changed files with 1488 additions and 201 deletions

View File

@ -754,7 +754,7 @@ export default function BelongPeople(props: propsInfo) {
</Form>
</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' }} >
<Button onClick={() => {
props.closeModal()

View File

@ -1,4 +1,4 @@
import { message, Modal,Table, Space } from "antd";
import { message, Modal, Table, Space } from "antd";
import { FolderAddOutlined } from '@ant-design/icons';
// import locale from 'antd/es/date-picker/locale/zh_CN';
// import { useParams } from "react-router-dom";
@ -27,7 +27,13 @@ type ContactType = {
const { Search } = Input;
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 [formContact] = Form.useForm<ContactType>()
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 = () => {
get({
@ -174,9 +194,9 @@ export default function ContactPeople() {
}, [])
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}
<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>
@ -194,10 +214,35 @@ export default function ContactPeople() {
<Search placeholder="请输入持有者名称搜索对应信息" onSearch={applicantPeopleSearch} style={{ width: '353px', height: '43px' }} />
</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'>
{/* 表格 lyp*/}
<Table
{props.isShow ? (<Table
rowSelection={{
type: 'radio',
...ContantRowSelection,
// selectedRowKeys: selectedKeys // 设置默认选中的行
}}
dataSource={tableContactData}
pagination={{
@ -264,8 +309,100 @@ export default function ContactPeople() {
</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>
{/* 选择创建/编辑/查看联系人弹框 lyp*/}

View File

@ -368,21 +368,21 @@ export default function AiHelper(props: PropsType) {
setActiveTab('简介')
}}
>
</div>
<div className={activeTab == '详情' ? 'tabActive' : "aiTabBtn"}
onClick={() => {
setActiveTab('详情')
}}
>
</div>
<div className={activeTab == '模块' ? 'tabActive' : "aiTabBtn"}
onClick={() => {
setActiveTab('模块')
}}
>
</div>
</div>

View File

@ -12,10 +12,10 @@ import {
WarningOutlined,
FolderOutlined
} 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 { 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 { IndexListContext } from "../../context/IndexListContext.ts";
import useMessage from "antd/es/message/useMessage";
@ -31,7 +31,7 @@ import SoftwareManagement from '../../route/proj/edit/ProjConfigModList.tsx'
import SoftwareManagementShow from '../../route/proj/edit/ProjConfigModListShow.tsx'
import DisplayOrder from '../../route/proj/edit/ProjConfigMenuList.tsx'
import DisplayOrderShow from '../../route/proj/edit/ProjConfigMenuListShow.tsx'
export default function CardProj(props:any ) {
export default function CardProj(props: any) {
// 第四步 登陆页面设置
const [loginPageOpne, setLoginPageOpne] = useState(false)
const [loginPageShowOpne, setLoginPageShowOpne] = useState(false)
@ -47,7 +47,7 @@ export default function CardProj(props:any ) {
const data = props.item;
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 [projCategoryId, setProjCategoryId] = useState(data.projCategoryId);
@ -79,7 +79,7 @@ export default function CardProj(props:any ) {
const goEdit = () => {
if (charge == ProjChargeType.ALL) {
nav(`/proj-edit/${data.projId}`);
nav(`/proj-eall/${data.projId}`);
} else if (charge == ProjChargeType.FREE) {
nav(`/proj-efree/${data.projId}`);
} else {
@ -88,6 +88,8 @@ export default function CardProj(props:any ) {
}
useEffect(() => {
console.log('查找图片', data);
const charge = props.item.pay.charge.split(':')[0];
let chargeName = '';
if (charge == ProjChargeType.ALL) {
@ -112,7 +114,7 @@ export default function CardProj(props:any ) {
<div className='cpt-left'>
<div className='dottedLine'></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}
</div>
<div className='cp-num'>
@ -150,7 +152,21 @@ export default function CardProj(props:any ) {
</div>
<div className='cp-bot'>
<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-money'>
<span className='money'>() : </span>
@ -158,7 +174,7 @@ export default function CardProj(props:any ) {
</div>
<div className='cpbl-btn'>
<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}`)
setLoginPageShowOpne(true);
@ -171,7 +187,7 @@ export default function CardProj(props:any ) {
<div></div>
</div>
<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}`)
setSoftwareManagementShowOpen(true)
} else {
@ -184,7 +200,7 @@ export default function CardProj(props:any ) {
<div>({data.projModCount})</div>
</div>
<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}`)
setDisplayOrderShowOpen(true);
} else {

View File

@ -11,12 +11,12 @@ export default function CardProjDownload(props: IProjDownload) {
<div className="cpDown-option">
{
props.canBtnClick ? (
<a href="/#" className="cpDown-edit" onClick={(e) => {
<a href="/#" className="cpDown-edit" style={{minWidth:30}} onClick={(e) => {
e.preventDefault();
props.handleDownload();
}}></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();
}}></a>
)

View File

@ -26,6 +26,7 @@ export default function CardProjEdit(props: IProjEdit) {
// props.handleEdit();
// }}>编辑</a>
// }
}
return (

View File

@ -1,5 +1,5 @@
.card-proj-download {
width: 309px;
width: 95%;
padding: 20px 25px;
box-sizing: border-box;
@ -10,7 +10,7 @@
position: relative;
}
.card-proj-nodownload{
width: 309px;
width: 95%;
padding: 20px 25px;
box-sizing: border-box;
background-color: #f3f3f3;

View File

@ -1,5 +1,5 @@
.card-proj-edit {
width: 309px;
width: 95%;
padding: 20px 25px;
box-sizing: border-box;
margin-bottom: 27px;
@ -52,6 +52,8 @@
.card-proj-edit .option .edit {
color: var(--color-blue);
text-decoration:underline;
min-width: 30px;
/* background-color: red; */
}
.card-proj-edit .option .status {
@ -63,6 +65,7 @@
transform: rotate(-45deg);
border-top: transparent;
border-right: transparent;
margin-top: 4px;
}
.noEdit:hover{
cursor: not-allowed;

View File

@ -8,10 +8,10 @@ import { IListPage } from "../../interfaces/listpage/IListPage.ts";
import { IProj } from "../../interfaces/proj/IProj.ts";
// import NoData from "../../assets/no-data.png";
import { useLocation } from 'react-router-dom';
import syminga from '../../static/homeimg/homeimga.png'
import symingb from '../../static/homeimg/homeimgb.png'
import symingc from '../../static/homeimg/homeimgc.png'
import symingd from '../../static/homeimg/homeimgd.png'
// import syminga from '../../static/homeimg/homeimga.png'
// import symingb from '../../static/homeimg/homeimgb.png'
// import symingc from '../../static/homeimg/homeimgc.png'
// import symingd from '../../static/homeimg/homeimgd.png'
import { getMenuActive } from '../../util/cache.ts';
// import gpsImg from '../../static/right/gps.png'
@ -29,8 +29,9 @@ export default function ListProj() {
// // setKeywords(state.keyword)
// }
const keywords = state ? state.keyword : ''
const name = state?state.name:''
// console.log(keywords);
const images = [syminga,symingb,symingc,symingd]
// const images = [syminga,symingb,symingc,symingd]
const listProjRef: MutableRefObject<HTMLDivElement | null> = useRef(null);
const listRef: MutableRefObject<HTMLDivElement | null> = useRef(null);
@ -55,6 +56,7 @@ export default function ListProj() {
page: currentPage,
rows: 10,
keywords: keywords,
charge:name,
projCategoryId: indexListContext.category,
status: indexListContext.status ? indexListContext.status : getMenuActive()
}
@ -66,13 +68,13 @@ export default function ListProj() {
console.log('看看结果', data);
setPage(data.page);
setTotal(data.total);
// setProjs(data.rows);
const updatedArr = (data.rows).map((item, index) => ({
...item,
img: images[index % images.length] // 利用取余来循环填充图片
}));
console.log('循环数组',updatedArr);
setProjs(updatedArr);
setProjs(data.rows);
// const updatedArr = (data.rows).map((item, index) => ({
// ...item,
// img: images[index % images.length] // 利用取余来循环填充图片
// }));
// console.log('循环数组',updatedArr);
// setProjs(updatedArr);
},
onFinally() {
@ -159,7 +161,7 @@ export default function ListProj() {
setTimeout(() => {
setShowPage(true)
}, 0);
}, [indexListContext.status,keywords])
}, [indexListContext.status,keywords,name])
useEffect(() => {
if (indexListContext.categorys) {

View 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>
)
}

View 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%); /* 向左移动到盒子的左边 */
}
}

View File

@ -1,12 +1,16 @@
import './step-proj-edit.css';
import { IStepProj, Process } from "../../interfaces/step/IStepProj.ts";
// 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) {
const location = useLocation()
const [allShow, setAllShow] = useState(false)
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;
// 状态值 已完成:Process.COMPLETE 进行中: Process.PROCESSING 未操作:Process.PENDING
@ -96,15 +100,17 @@ export default function StepProjEdit(props: IStepProj) {
}
return (
<div className="step-proj">
<div className="step-proj" style={{width:allShow?'19%':'21%'}}>
<div className="step" >
{renderStepNo()}
{/* {renderStepDesc()} */}
{renderStepLine()}
<div style={{display:allShow?'none':'block'}}>
{renderStepLine()}
</div>
<div className='downBox'></div>
</div>
<div className="step-card" style={{ maxHeight: `${height - 20}px` }}>
{/* <div className="step-card" style={{ }}> */}
{/* <div className="step-card" style={{ }}> */}
<div className="step-card-list">{props.children}</div>
</div>
</div>

View File

@ -1,5 +1,7 @@
.step-proj {
width: 317px;
/* width: 317px; */
width: 21%;
/* background: skyblue; */
position: relative;
/* overflow: scroll; */
}
@ -14,7 +16,7 @@
}
.step-proj .step {
width: 309px;
width: 100%;
height: 56px;
/* background-color: rgb(248, 213, 219); */
margin-top: 10px;
@ -27,7 +29,8 @@
/* Top 状态:已完成 开始---------------------------------------------------------------*/
.step-proj .step .complete-one {
width: 309px;
/* width: 309px; */
width: 100%;
height: 56px;
/* background-color: pink; */
display: flex;
@ -45,12 +48,12 @@
display: flex;
align-items: center;
justify-content: center;
margin-left: 44px;
margin-left: 11%;
}
/* 已完成状态第一个序号 */
.step-proj .step .complete-one .complete-num {
margin-left: 16px;
margin-left: 8%;
}
@ -60,16 +63,18 @@
font-weight: 700;
font-size: 16px;
color: #FFFFFF;
margin-left: 47px;
margin-left: 15%;
}
/* 已完成状态第一个标题 */
.step-proj .step .complete-one .complete-text {
margin-left: 61px;
margin-left: 23%;
}
.step-proj .step .complete-two {
width: 309px;
/* width: 309px; */
width: 100%;
height: 56px;
/* background-color: pink; */
display: flex;
@ -79,7 +84,9 @@
}
.step-proj .step .complete-three {
width: 309px;
/* width: 309px; */
width: 100%;
height: 56px;
/* background-color: pink; */
display: flex;
@ -89,7 +96,9 @@
}
.step-proj .step .complete-four {
width: 309px;
/* width: 309px; */
width: 100%;
height: 56px;
/* background-color: pink; */
display: flex;
@ -99,11 +108,11 @@
}
/* 已完成状态连接线 */
.step-proj .step .setLine {
width: 49px;
width: 10%;
height: 22px;
background-color: pink;
position: absolute;
right: -67px;
right: -15%;
top: 17px;
}
.step-proj .step .complete-oneLine{
@ -125,7 +134,9 @@
/* Top 状态:进行中 开始----------------------------------------------------------- */
.step-proj .step .processing-one {
width: 309px;
/* width: 309px; */
width: 100%;
height: 56px;
/* background-color: pink; */
display: flex;
@ -135,7 +146,9 @@
}
.step-proj .step .processing-two {
width: 309px;
/* width: 309px; */
width: 100%;
height: 56px;
/* background-color: pink; */
display: flex;
@ -145,7 +158,9 @@
}
.step-proj .step .processing-three {
width: 309px;
/* width: 309px; */
width: 100%;
height: 56px;
/* background-color: pink; */
display: flex;
@ -155,7 +170,9 @@
}
.step-proj .step .processing-four {
width: 309px;
width: 100%;
/* width: 309px; */
height: 56px;
/* background-color: pink; */
display: flex;
@ -168,7 +185,7 @@
height: 21px;
background: #FFFFFF;
border-radius: 50%;
margin-left: 46px;
margin-left: 18%;
display: flex;
justify-content: center;
align-items: center;
@ -183,7 +200,7 @@
font-weight: 700;
font-size: 16px;
color: #71757E;
margin-left: 47px;
margin-left: 15%;
}
/* Top 状态:进行中 结束----------------------------------------------------------- */
@ -193,9 +210,12 @@
/* Top 状态:未操作 开始 ------------------------------------------------------------ */
.step-proj .step .pending {
width: 309px;
width: 100%;
height: 56px;
display: flex;
align-items: center;
/* background: pink; */
background: url('../../static/editPro/no.png');
background-size: 100% 100%;
}
@ -205,7 +225,7 @@
height: 21px;
background: #FFFFFF;
border-radius: 50%;
margin-left: 46px;
margin-left: 18%;
display: flex;
justify-content: center;
align-items: center;
@ -220,7 +240,7 @@
font-weight: 700;
font-size: 16px;
color: #71757E;
margin-left: 47px;
margin-left: 15%;
}
.step-proj .step .no-line{
background:url('../../static/editPro/lineno.png');

View File

@ -36,12 +36,23 @@ export default function Head() {
authorId: '',
authorProvinceCity: ''
})
const setValue = () => {
// console.log(value);
}
const setConcatValue = ()=> {
}
// 联系人弹窗
const [contactModal, setContactModal] = useState(false)
const [concatPeopleInfo,setConcatPeopleInfo] = useState({
applyConcatId:'',
applyContactCsaNo:'',
applyContactEmail:'',
applyContactName:'',
applyContactPhone:'',
applyContactCompany:''
})
useEffect(() => {
reloadUser(messageApi, globalDispatchContext).then((data) => {
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>
<Spin tip="正在提交..." spinning={loading} fullscreen />
{contextHolder}

View File

@ -8,7 +8,7 @@ import MenuWithTopButton from "../../components/menu/MenuWithTopButton.tsx";
import MenuTreeWithTopButton from "../../components/menu/MenuTreeWithTopButton.tsx";
// import ListProj from "../../components/list/ListProj.tsx";
// import ListProjAgent from "../../components/list/ListProjAgent.tsx";
import { MenuProps } from 'antd';
import { MenuProps,Select } from 'antd';
import {
IndexListContext,
IndexListDataType,
@ -29,8 +29,9 @@ const { Search } = Input;
export default function Index() {
// const [keywords, setKeywords] = useState('');
// 关键字
const [keywords, setKeywords] = useState('');
const [type,setType] = useState('')
// const indexListContext = useContext(IndexListContext);
@ -195,81 +196,119 @@ export default function Index() {
// const [newname,setNewname] = useState('')
const [pathArray, setPathArray] = useState<any>([])
const [showSearchBox,setShowSearchBox] = useState(true)
useEffect(() => {
// const nowname = sessionStorage.getItem('now')
console.log('路由名字', location.pathname);
if (location.pathname.includes('/home')) {
setNow('首页')
setPathArray([{ title: '首页' }])
setShowSearchBox(true)
} else if (location.pathname.includes('/proj-create')) {
setShowSearchBox(false)
setNow('创建项目')
setPathArray([{ title: <Link to={'/home'}></Link> }, { title: '创建项目' }])
// /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')) {
setNow('编辑项目')
setShowSearchBox(false)
// setEditname(location.pathname)
setPathArray([{ title: <Link to={'/home'}></Link> }, { title: <Link to={'/proj-create'}></Link> }, { title: '编辑项目' }])
} else if (location.pathname.includes('/proj-new')) {
setNow('新建项目')
setShowSearchBox(false)
// setNewname(location.pathname)
setPathArray([{ title: <Link to={'/home'}></Link> }, { title: <Link to={'/proj-create'}></Link> }, { title: '新建项目' }])
} else if (location.pathname.includes('/proj-efree')) {
setNow('编辑项目')
setShowSearchBox(false)
// setNewname(location.pathname)
setPathArray([{ title: <Link to={'/home'}></Link> }, { title: <Link to={'/proj-create'}></Link> }, { title: '编辑项目' }])
} else if (location.pathname.includes('/proj-eall')) {
setNow('编辑项目')
setShowSearchBox(false)
// setNewname(location.pathname)
setPathArray([{ title: <Link to={'/home'}></Link> }, { title: <Link to={'/proj-create'}></Link> }, { title: '编辑项目' }])
} else if (location.pathname.includes('/proj-edit/step1')) {
setNow('标题简介')
setShowSearchBox(false)
// 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/step2')) {
setNow('标题简介')
setShowSearchBox(false)
// 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('登录界面设置')
setShowSearchBox(false)
// 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-mod-list')) {
setNow('系统菜单管理')
setShowSearchBox(false)
// 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-menu-list')) {
setNow('系统菜单顺序')
setShowSearchBox(false)
// 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('/step3')) {
setNow('软件功能特点')
setShowSearchBox(false)
// 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-mod-save')) {
setNow('添加菜单')
setShowSearchBox(false)
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')) {
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: '编辑菜单' }])
// /config-mod-edit /config-mod-show
} else if (location.pathname.includes('/proj-edit/config-mod-show')) {
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: '查看菜单' }])
// /config-mod-edit
} else if (location.pathname.includes('/product-release')) {
setNow('首页')
setShowSearchBox(false)
setPathArray([{ title: '首页' }])
// /config-mod-edit /product-release /transaction-order
} else if (location.pathname.includes(' /transaction-order')) {
setNow('首页')
setShowSearchBox(false)
setPathArray([{ title: '首页' }])
// /config-mod-edit /product-release /transaction-order
} else if (location.pathname.includes(' /copyright-goods')) {
setNow('首页')
setShowSearchBox(false)
setPathArray([{ title: '首页' }])
// /config-mod-edit /product-release /transaction-order
} else if (location.pathname.includes(' /trading-goods')) {
setNow('首页')
setShowSearchBox(false)
setPathArray([{ title: '首页' }])
// /config-mod-edit /product-release /transaction-order
}
@ -296,9 +335,11 @@ export default function Index() {
const handleSearch = (value: string) => {
console.log(value);
setKeywords(value)
nav('/home', {
state: {
keyword: value
keyword: value,
name:type
}
})
}
@ -348,7 +389,7 @@ export default function Index() {
<div>:{now}</div>
</div>
<div className='line' style={{
display: location.pathname.includes('/home') ? 'block' : 'none',
display:showSearchBox ? 'block' : 'none',
}} ></div>
<div
@ -357,14 +398,37 @@ export default function Index() {
height: 23,
marginLeft: 33,
marginRight: 31,
display: location.pathname.includes('/home') ? 'none' : 'block'
display: showSearchBox ? 'none' : 'block'
}}
></div>
<Search placeholder="输入项目名称" onSearch={handleSearch} style={{
width: '253px',
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={{
width: '253px',
height: '31px',

View File

@ -1,12 +1,17 @@
import './proj-create.css'
import { useNavigate } from "react-router-dom";
import { message } from "antd";
import {
CloseOutlined
} from '@ant-design/icons';
import CardProjType from "../../components/card/CardProjType.tsx";
import {
// IProjCharge,
ProjAdditionalType, ProjChargeType } from "../../interfaces/proj/IProj.ts";
ProjAdditionalType, ProjChargeType
} from "../../interfaces/proj/IProj.ts";
import { useEffect, useState } from "react";
import { get } from "../../util/AjaxUtils.ts";
import ScrollAd from '../../components/scrollAD/ScrollAd.tsx'
// import { Link } from "react-router-dom";
export default function ProjCreate() {
@ -31,9 +36,10 @@ export default function ProjCreate() {
const [allInfo, setAllInfo] = useState<any>({}) //全部托管信息
const [materialInfo, setMaterialInfo] = useState<any>({}) //写材料信息
const [freeInfo, setFreeInfo] = useState<any>({}) //免费托管信息
const [ freeCount,setFreeCount] = useState(0) //免费次数
const [freeCount, setFreeCount] = useState(0) //免费次数
const nav = useNavigate();
const height = window.innerHeight - 170;
const [show,setShow] = useState(true) //是否显示广告
useEffect(() => {
get<any>({
messageApi: messageApi,
@ -59,7 +65,19 @@ export default function ProjCreate() {
< >
{contextHolder}
<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
head={'全托'}
bodyLineArray={[
@ -95,8 +113,8 @@ export default function ProjCreate() {
}
}
]}
isShow = {allInfo.isShow}
isClickable = {allInfo.isClickable}
isShow={allInfo.isShow}
isClickable={allInfo.isClickable}
/>
{/* <CardProjType
head={'写材料+代理'}
@ -201,8 +219,8 @@ export default function ProjCreate() {
}
}
]}
isShow = {materialInfo.isShow}
isClickable = {materialInfo.isClickable}
isShow={materialInfo.isShow}
isClickable={materialInfo.isClickable}
/>
<CardProjType
head={`免费试用${freeCount}`}
@ -234,8 +252,8 @@ export default function ProjCreate() {
}
}
]}
isShow = {freeInfo.isShow}
isClickable = {freeInfo.isClickable}
isShow={freeInfo.isShow}
isClickable={freeInfo.isClickable}
/>
</div>
</div>

File diff suppressed because it is too large Load Diff

View File

@ -359,6 +359,7 @@ export default function ProjEdit() {
isEditStepEdited && isConfigEdited ? (
<CardProjJump title="预览系统"
desc="点击查看预览系统"
canBtnClick={true}
handleJump={() => {
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}`)
}}
/>
<CardProjDownload title="代码压缩包"
{/* <CardProjDownload title=""
desc="点击下载代码压缩包"
canBtnClick={generateStatus == GenerateStatus.SUCCESS}
handleDownload={() => {
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code-zip/${pathParams.projId}`)
}}
/>
{/* <CardProjDownload title=""
desc="点击下载代码文档"
/> */}
<CardProjDownload title="源代码"
desc="点击下载代码"
canBtnClick={false}
handleDownload={() => { }}
/> */}
/>
{/* <CardProjJump title=""
desc="到软著代理完成软著申请"
canBtnClick={false}

View File

@ -1,6 +1,6 @@
import './proj-new.css';
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 { get, post } from "../../util/AjaxUtils.ts";
// import {GlobalContext} from "../../context/GlobalContext.ts";
@ -8,17 +8,23 @@ import {
// IProjCharge,
ProjAdditionalType, ProjChargeType
} from "../../interfaces/proj/IProj.ts";
import locale from 'antd/es/date-picker/locale/zh_CN';
import { GlobalDispatchContext, reloadUser } from "../../context/GlobalContext.ts";
import BelongPeople from '../../components/BelongPeople/BelongPeople.tsx'
import ContactPeople from '../../components/ContactPeople/ContactPeople.tsx'
import dayjs from 'dayjs';
// const { TextArea } = Input;
type ProjInfo = {
projName: string;
projIntroduction: string;
belongPeople: string
belongPeople: string;
contacts: string;
projDevCompleteDate: string;
};
export default function ProjNew() {
// const globalContext = useContext(GlobalContext);
const dateFormat = 'YYYY年MM月DD日';
const globalDispatchContext = useContext(GlobalDispatchContext);
const nav = useNavigate();
const pathParams = useParams();
@ -33,29 +39,43 @@ export default function ProjNew() {
const [projInfo, setProjInfo] = useState<ProjInfo>({
projName: '',
projIntroduction: '',
belongPeople: ''
belongPeople: '',
contacts: '',
projDevCompleteDate: '',
});
const [form] = Form.useForm<ProjInfo>();
// 所属者弹窗
const [belongModal, setBelongModal] = useState(false)
// 联系人弹窗
const [concatModal, setConcatModal] = useState(false)
// const [belongPeopleName ,setBelongPeopleName] = useState('')
// // 暂存一个信息过度
// const [newBelongPeopleName,setNewBelongPeopleName] = useState('')
const [belongPeopleInfo, setBelongPeopleInfo] = useState({
authorName: '',
authorType: '',
authorIdCardType: '',
authorIdCard: '',
authorCrcAccount:'',
authorId:'',
authorProvinceCity:''
authorCrcAccount: '',
authorId: '',
authorProvinceCity: ''
})
const setValue = (value:string) => {
const [concatPeopleInfo, setConcatPeopleInfo] = useState({
applyConcatId: '',
applyContactCsaNo: '',
applyContactEmail: '',
applyContactName: '',
applyContactPhone: '',
applyContactCompany: ''
})
const setValue = (value: string) => {
form.setFieldsValue({
belongPeople:value
belongPeople: value
})
}
const setConcatValue = (value: string) => {
form.setFieldsValue({
contacts: value
})
}
const [createProjId, setCreateProjId] = useState('');
const oldlistProjChargeAdditional: string[] = [];
const [listProjChargeAdditional, setlistProjChargeAdditional] = useState<string[]>([])
@ -112,7 +132,6 @@ export default function ProjNew() {
// console.log('传递信息pkg:',pkg,'videoDemo:',videoDemo);
// console.log('显示价格',price);
}
})
}, []);
@ -143,7 +162,9 @@ export default function ProjNew() {
setProjInfo({
projName: formData.projName,
projIntroduction: formData.projIntroduction,
belongPeople: formData.belongPeople
belongPeople: formData.belongPeople,
contacts: formData.contacts,
projDevCompleteDate: formData.projDevCompleteDate,
})
}}
autoComplete="off"
@ -172,6 +193,39 @@ export default function ProjNew() {
setBelongModal(true)
}}></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'>
<Form.Item
name="agreement"
@ -219,6 +273,9 @@ export default function ProjNew() {
// backgroundColor: 'var(--color-primary)', width: '216px',
// height: '50px', fontSize: '16px', marginLeft: '53px'
// }}
// onClick={()=>{
// alert(belongPeopleInfo.authorProvinceCity)
// }}
>
</Button>
@ -238,36 +295,45 @@ export default function ProjNew() {
// console.log('最终',listProjChargeAdditional);
// console.log(belongPeopleInfo.authorId);
post<any>({
messageApi,
url: '/api/proj/create',
body: {
projName: projInfo.projName,
projChargeType: pathParams.projChargeType,
listProjChargeAdditional: listProjChargeAdditional,
post<any>({
messageApi,
url: '/api/proj/create',
body: {
projName: projInfo.projName,
projChargeType: pathParams.projChargeType,
listProjChargeAdditional: listProjChargeAdditional,
// dayjs(formInfo.getFieldValue('projDevCompleteDate')).format(dateFormat),
projDevCompleteDate:dayjs(projInfo.projDevCompleteDate).format(dateFormat),
authorCrcAccount: belongPeopleInfo.authorCrcAccount,
authorId: belongPeopleInfo.authorId,
authorIdCard: belongPeopleInfo.authorIdCard,
authorIdCardType: belongPeopleInfo.authorIdCardType,
authorName: belongPeopleInfo.authorName,
authorProvinceCity: belongPeopleInfo.authorProvinceCity,
authorType: belongPeopleInfo.authorType,
authorCrcAccount:belongPeopleInfo.authorCrcAccount,
authorId:belongPeopleInfo.authorId,
authorIdCard:belongPeopleInfo.authorIdCard,
authorIdCardType:belongPeopleInfo.authorIdCardType,
authorName:belongPeopleInfo.authorName,
authorProvinceCity:belongPeopleInfo.authorProvinceCity,
authorType:belongPeopleInfo.authorType
},
onBefore() {
setLoading(true);
},
onSuccess({ data }) {
setIsEditModalOpen(true);
setCreateProjId(data.data);
reloadUser(messageApi, globalDispatchContext).then(() => {
messageApi.success('扣款成功');
});
},
onFinally() {
setLoading(false);
}
})
applyContactCompany:concatPeopleInfo.applyContactCompany,
applyContactCsaNo:concatPeopleInfo.applyContactCsaNo,
applyContactEmail:concatPeopleInfo.applyContactEmail,
applyContactId:concatPeopleInfo.applyConcatId,
applyContactName:concatPeopleInfo.applyContactName,
applyContactPhone:concatPeopleInfo.applyContactPhone,
projVersion:'v1.0'
},
onBefore() {
setLoading(true);
},
onSuccess({ data }) {
setIsEditModalOpen(true);
setCreateProjId(data.data);
reloadUser(messageApi, globalDispatchContext).then(() => {
messageApi.success('扣款成功');
});
},
onFinally() {
setLoading(false);
}
})
setIsCreateModalOpen(false);
@ -296,6 +362,20 @@ export default function ProjNew() {
}}>
<div></div>
</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="选择所属者"
destroyOnClose
@ -308,7 +388,7 @@ export default function ProjNew() {
}}>
<BelongPeople closeModal = {()=>{setBelongModal(false)}} setBelongPeopleInfo={setBelongPeopleInfo} belongPeopleInfo={belongPeopleInfo} setValue={setValue} isShow={true}></BelongPeople>
<BelongPeople closeModal={() => { setBelongModal(false) }} setBelongPeopleInfo={setBelongPeopleInfo} belongPeopleInfo={belongPeopleInfo} setValue={setValue} isShow={true}></BelongPeople>
</Modal>
<Spin tip="正在提交..." spinning={loading} fullscreen />
</>

View File

@ -870,8 +870,8 @@ export default function ProjEditStep2(props: any) {
</div>
</div>
<div className='showInfo'>
<div style={{ marginRight: '22px' }}>:</div>
<div style={{ display: applyContactName == '' ? 'block' : 'none' }}></div>
<div style={{ marginRight: '22px' }}>:</div>
<div style={{ display: applyContactName == '' ? 'block' : 'none' }}></div>
<div style={{ display: applyContactName == '' ? 'none' : 'block' }}>
{applyContactName}/{applyContactPhone}{applyContactEmail ? '/' + applyContactEmail : ''}
</div>
@ -1022,7 +1022,7 @@ export default function ProjEditStep2(props: any) {
// alert('申请人不能为空')
messageApi.open({
type: 'error',
content: '请选择申请人'
content: '请选择联系人'
})
setIsEditModalOpen(false);
}

View File

@ -719,8 +719,8 @@ export default function ProjEditStep2() {
</div>
</div>
<div className='showInfo'>
<div style={{ marginRight: '22px' }}>:</div>
<div style={{ display: applyContactName == '' ? 'block' : 'none' }}></div>
<div style={{ marginRight: '22px' }}>:</div>
<div style={{ display: applyContactName == '' ? 'block' : 'none' }}></div>
<div style={{ display: applyContactName == '' ? 'none' : 'block' }}>
{applyContactName}/{applyContactPhone}/{applyContactEmail}
</div>
@ -775,7 +775,7 @@ export default function ProjEditStep2() {
// alert('申请人不能为空')
messageApi.open({
type: 'error',
content: '请选择申请人'
content: '请选择联系人'
})
setIsEditModalOpen(false);
}

View File

@ -9,6 +9,7 @@
}
.proj-edit {
background-color: var(--color-light);
/* background-color: var(--color-light); */
padding: 15px;
display: flex;
justify-content: space-around;
@ -25,6 +26,105 @@
height: 100px;
position: fixed;
right: 25px;
bottom: 50px;
bottom: 20px;
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;
}

View File

@ -67,3 +67,6 @@
margin-left: 190px;
}
.formItemOne .css-dev-only-do-not-override-1ae8k9u.ant-picker .ant-picker-input >input{
font-size: 16px;
}