This commit is contained in:
xixi 2024-07-29 17:22:42 +08:00
parent cd8690f355
commit 8b2acb15c5
23 changed files with 683 additions and 287 deletions

View File

@ -293,7 +293,7 @@ export default function BelongPeople(props: propsInfo) {
isCrcAccount: Number(formBelong.getFieldValue('isCrcAccount')),
name: formBelong.getFieldValue('authorName'),
nameEn: formBelong.getFieldValue('nameEn') || '',
provinceCity: formBelong.getFieldValue('authorProvince').join(','),
provinceCity: formBelong.getFieldValue('authorProvince') ? formBelong.getFieldValue('authorProvince').join(',') : '',
type: formBelong.getFieldValue('authorType'),
},
onBefore() {
@ -330,7 +330,7 @@ export default function BelongPeople(props: propsInfo) {
isCrcAccount: Number(formBelong.getFieldValue('isCrcAccount')),
name: formBelong.getFieldValue('authorName'),
nameEn: formBelong.getFieldValue('nameEn'),
provinceCity: formBelong.getFieldValue('authorProvince').join(','),
provinceCity: formBelong.getFieldValue('authorProvince') ? formBelong.getFieldValue('authorProvince').join(',') : '',
type: formBelong.getFieldValue('authorType'),
},
onBefore() {
@ -650,7 +650,7 @@ export default function BelongPeople(props: propsInfo) {
record.idCardType === 'ID_CARD' ? '身份证' : '营业执照'
)}
/>
<Column title="所属者身份证号" dataIndex="idCardNo" key="belongCardNo" />
<Column title="所属者号" dataIndex="idCardNo" key="belongCardNo" />
{/* <Column title="实名认证状态" dataIndex="address" key="key" /> */}
<Column
title="操作"
@ -754,7 +754,7 @@ export default function BelongPeople(props: propsInfo) {
</Form>
</div>
</div>
<div style={{ display: props.isShow ? 'block' : 'none', position:'absolute',right:0,bottom: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()
@ -873,7 +873,7 @@ export default function BelongPeople(props: propsInfo) {
rules={[{ required: true, message: belongShow == 'PERSONAL' ? '请输入姓名' : '请输入公司名称' }]}
>
<Input placeholder={belongShow == 'PERSONAL' ? '请输入姓名' : '请输入公司名称'}
style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }}
style={{ height: '44px', width: '360px', fontSize: '15px', marginTop: '22px' }}
disabled={belongTitle == '查看所属者' ? true : false}
/>
@ -888,10 +888,17 @@ export default function BelongPeople(props: propsInfo) {
<Form.Item<BelongPeopleType>
// label="公司英文名"
name="nameEn"
// rules={[{ required: true, message: belongShow == 'PERSONAL' ? '请输入英文名' : '请输入公司英文名称' }]}
// rules={[{ required: true, message: belongShow == 'PERSONAL' ? '请输入英文名' : '请输入公司英文名称' }]}
rules={[
{ required: true, message: belongShow == 'PERSONAL' ? '请输入英文名' : '请输入公司英文名称' },
{
pattern: /^[A-Za-z]+$/,
message: '请输入正确的英文名'
}
]}
>
<Input placeholder={belongShow == 'ORGANIZATION' ? '请输入公司英文名称' : '请输入英文名'}
style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }}
style={{ height: '44px', width: '360px', fontSize: '15px', marginTop: '22px' }}
disabled={belongTitle == '查看所属者' ? true : false}
/>
</Form.Item>
@ -929,7 +936,7 @@ export default function BelongPeople(props: propsInfo) {
<Col span={12}>
<div className='blongNameInt blongSmallNamel'>
<div className='blongTitle blongsmallTitle '>{belongShow == 'PERSONAL' ? '身份证号' : '营业执照号'}:</div>
<div className='blongTitle blongsmallTitle '>{belongShow == 'PERSONAL' ? '身份证号' : '统一社会信用代码'}:</div>
<Form.Item<BelongPeopleType>
// label="证件号"
@ -937,7 +944,7 @@ export default function BelongPeople(props: propsInfo) {
rules={[{ required: true, message: '请输入证件号' }]}
>
<Input placeholder="请输入证件号"
style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }}
style={{ height: '44px', width: '360px', fontSize: '15px', marginTop: '22px' }}
disabled={belongTitle == '查看所属者' ? true : false}
/>
@ -955,10 +962,10 @@ export default function BelongPeople(props: propsInfo) {
<Form.Item<BelongPeopleType>
// label="省市"
name="authorProvince"
rules={[{ required: true, message: '请选择省市' }]}
// rules={[{ required: true, message: '请选择省市' }]}
>
<Cascader options={areaArray}
style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }}
style={{ height: '44px', width: '360px', fontSize: '15px', marginTop: '22px' }}
loadData={(selectedOptions: Option[]) => {
const targetOption = selectedOptions[selectedOptions.length - 1];

View File

@ -64,7 +64,7 @@ export default function AiHelper(props: PropsType) {
}
},
onSuccess(data: any) {
console.log(data);
// console.log(data);
setPageTotal(data.data.total)
setpageImgArray(data.data.rows)
}
@ -146,7 +146,7 @@ export default function AiHelper(props: PropsType) {
}
},
onSuccess({ data }) {
console.log('登录页图片列表', data);
// console.log('登录页图片列表', data);
setloginpageArray(data.rows)
setTotal(data.total)

View File

@ -48,7 +48,7 @@ export default function AiHelperMod(props: PropsType) {
// const [items, setItems] = useState<any[]>([])
const pathParams = useParams();
useEffect(() => {
console.log('mods', props.mods);
// console.log('mods', props.mods);
setModArray(props.mods);
setNewModArray(props.newMods);

View File

@ -7,10 +7,12 @@ import { ProjAdditionalType } from "../../interfaces/proj/IProj.ts";
import serveImg from '../../static/serve.png'
import useImg from '../../static/use.png'
import leftImg from '../../static/createPro/left.png'
import React from 'react';
export default function CardProjType(props: ICardProj) {
const [chargeAmount, setChargeAmount] = useState(0);
const [pkg, setPkg] = useState(false);
const [videoDemo, setVideoDemo] = useState(false);
const [urgent, setUrgent] = useState(false);
const renderContents = (lineIndex: number, contents: string[]) => {
return contents.map((item, index) => <li key={`content_${lineIndex}_${index}`}>
@ -19,12 +21,73 @@ export default function CardProjType(props: ICardProj) {
</li>);
}
const renderNewContents = (lineIndex: number, contents: string[]) => {
return contents.map((item, index) => <li key={`content_${lineIndex}_${index}`}>
<span className="newIndex">
<img src={leftImg} alt="" />
</span>
<span className="title">{item}</span>
</li>);
// return contents.map((item, index) => <li key={`content_${lineIndex}_${index}`}>
// <span className="newIndex">
// <img src={leftImg} alt="" />
// </span>
// <span className="title">{item}</span>
// </li>);
// 点击事件处理函数
return contents.map((item, index) => {
// 检查是否包含关键词
const containsIdentification = item.includes('鉴别材料');
const containsCloudService = item.includes('云服务');
if (!containsIdentification && !containsCloudService) {
return (
<li key={`content_${lineIndex}_${index}`}>
<span className="newIndex">
<img src={leftImg} alt="" />
</span>
<span className="title">{item}</span>
</li>
);
}
// 使用正则表达式进行分割,保留分隔符
const parts = item.split(/(鉴别材料|云服务)/);
return (
<li key={`content_${lineIndex}_${index}`}>
<span className="newIndex">
<img src={leftImg} alt="" />
</span>
<span className="title" style={{ display: 'flex' }}>
{parts.map((part, i) => {
if (part === '鉴别材料') {
return (
<div className='notes-text'>
<span
key={i}
style={{ cursor: 'pointer', color: 'var(--color-blue)' }}
>
</span>
<div className='notes-box'></div>
</div>
);
}
if (part === '云服务') {
return (
<div className='notes-text'>
<span
key={i}
style={{ cursor: 'pointer', color: 'var(--color-blue)' }}
>
</span>
<div className='notes-box'>线访</div>
</div>
);
}
return <React.Fragment key={i}>{part}</React.Fragment>;
})}
</span>
</li>
);
});
}
const renderLines = () => {
@ -60,6 +123,8 @@ export default function CardProjType(props: ICardProj) {
setPkg(true);
} else if (line.id == ProjAdditionalType.VIDEO_DEMO) {
setVideoDemo(true);
}else if(line.id ==ProjAdditionalType.URGENT){
setUrgent(true)
}
setChargeAmount(chargeAmount + line.price);
} else {
@ -67,6 +132,8 @@ export default function CardProjType(props: ICardProj) {
setPkg(false);
} else if (line.id == ProjAdditionalType.VIDEO_DEMO) {
setVideoDemo(false);
}else if(line.id ==ProjAdditionalType.URGENT){
setUrgent(false)
}
setChargeAmount(chargeAmount - line.price);
}
@ -106,7 +173,8 @@ export default function CardProjType(props: ICardProj) {
<button onClick={() => {
buy.handleClick(props.head, {
pkg: pkg,
videoDemo: videoDemo
videoDemo: videoDemo,
urgent:urgent,
});
}}
style={{
@ -176,21 +244,29 @@ export default function CardProjType(props: ICardProj) {
return (
<div className="proj" style={{ display: props.isShow == 1 ? 'block' : 'none', }}>
<div className='projTop'>
{/* <div className="proj-head" style={{ backgroundImage: `url(${ProjCardHeadBg})` }}> */}
<div className="proj-head">
<div>{props.head}</div>
</div>
<div className="proj-body">
<div>{renderLines()}</div>
<div>{renderNew()}</div>
{renderCharge()}
<div className="proj" style={{ display: props.isShow == 1 ? 'block' : 'none', }}>
<div className='projTop'>
{/* <div className="proj-head" style={{ backgroundImage: `url(${ProjCardHeadBg})` }}> */}
<div className="proj-head">
<div className='head-box'>{props.head}</div>
<div className='detail-box'>
<div className='detail-text'>
<div className="triangle"></div>
{props.details}
</div>
</div>
</div>
<div className="proj-foot">{renderBuyBtn()}</div>
<div className="proj-body">
<div>{renderLines()}</div>
<div>{renderNew()}</div>
{renderCharge()}
</div>
</div>
<div className="proj-foot">{renderBuyBtn()}</div>
</div>
)
}

View File

@ -4,6 +4,7 @@
/* position: relative; */
/* background-color: rgb(255, 255, 255); */
margin-left: 28px;
/* margin-top: 0; */
}
.seruseImg {
@ -20,24 +21,65 @@
}
.proj .proj-head {
font-weight: bold;
font-size: 30px;
color: #492800;
text-align: center;
/* background-image: url('./proj-card-head-bg.png'); */
/* background-size: 100% 100%; */
/* background-repeat: no-repeat; */
/* position: absolute; */
width: 100%;
/* height: 132px; */
line-height: 100px;
/* line-height: 100px; */
/* left: 38px; */
/* top: -4px; */
/* background-color: aqua; */
}
.head-box{
/* cursor: pointer; */
font-weight: bold;
font-size: 30px;
color: #492800;
text-align: center;
/* background-color: pink; */
line-height: 60px;
margin-top: 10px;
}
.detail-box{
padding: 0 18px;
/* background-color: skyblue; */
/* padding: 10px; */
box-sizing: border-box;
height: 40px;
font-size: 12px;
/* text-align: center; */
color: rgb(167, 167, 167);
/* margin-bottom: 10px; */
}
.detail-text{
background-color: #FFFBEF;
display: flex;
align-items: center;
height: 40px;
padding: 0 10px;
border-radius: 5px;
color: #FFAF22;
position: relative;
}
.triangle {
position: absolute;
top: -10px;
left: calc(50% - 5px);
width: 0;
height: 0;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-bottom: 10px solid #FFFBEF; /* 87px 是一个正三角形的高度 */
}
.proj .proj-body {
margin-top: 5px;
/* min-height: 385px; */
margin-bottom: 15px;
/* padding: 60px 15px 15px 15px; */
@ -71,10 +113,10 @@
.proj .proj-body .line .line-content ul li {
display: flex;
align-items: center;
margin-top: 15px;
margin-top: 8px;
font-family: PingFang SC;
font-weight: 500;
font-size: 18px;
font-size: 14px;
color: #6F6F6F;
margin-left: 48px;
}
@ -84,21 +126,21 @@
}
.proj .proj-body .line .line-content ul li .index {
width: 20px;
height: 20px;
line-height: 20px;
width: 15px;
height: 15px;
line-height: 15px;
border-radius: 50%;
display: inline-block;
/* background-color: rgba(251, 176, 59, 1); */
background: #F38F1E;
text-align: center;
color: var(--color-light);
font-size: 12px;
font-size: 10px;
}
.proj .proj-body .line .line-content ul li .newIndex img {
width: 26px;
height: 20px;
width: 16px;
height: 12px;
}
.proj .proj-body .line .line-content ul li .title {
@ -133,7 +175,7 @@
.chargeCon {
font-weight: 500;
font-size: 18px;
font-size: 14px;
color: #989898;
}
@ -210,4 +252,24 @@
.proj-foot .buy-btn:nth-child(2) {
/* background-color: red; */
margin-left: 9px;
}
}
/* 注释 */
.notes-text{
position: relative;
}
.notes-box{
position: absolute;
padding: 5px;
box-sizing: border-box;
width: 250px;
top: 20px;
left: 0;
background-color: rgb(241, 241, 241);
border: 1px solid rgb(212, 212, 212);
display: none;
border-radius: 5px;
z-index: 9;
}
.notes-text:hover .notes-box{
display: block;
}

View File

@ -30,6 +30,7 @@ export default function ListProj() {
// }
const keywords = state ? state.keyword : ''
const name = state ? state.name : ''
const chargeAdditionals = state? state.chargeAdditionals:''
// console.log(keywords);
// const images = [syminga,symingb,symingc,symingd]
const listProjRef: MutableRefObject<HTMLDivElement | null> = useRef(null);
@ -57,6 +58,7 @@ export default function ListProj() {
rows: 10,
keywords: keywords,
charge: name,
chargeAdditionals:chargeAdditionals,
projCategoryId: indexListContext.category,
status: indexListContext.status ? indexListContext.status : getMenuActive()
}
@ -154,7 +156,7 @@ export default function ListProj() {
setTimeout(() => {
setShowPage(true)
}, 0);
}, [indexListContext.status, keywords, name])
}, [indexListContext.status, keywords, name,chargeAdditionals])
useEffect(() => {
if (indexListContext.categorys) {

View File

@ -135,6 +135,8 @@ export default function Payment(props: IPaymentProps) {
setIsLoading(true);
},
onSuccess({ data }) {
// console.log('用户id',data.accountRechargeId);
setAccountRechargeId(data.accountRechargeId);
setThirdPartyPayUrl(data.thirdPartyPayUrl);
countdown();
@ -210,27 +212,27 @@ export default function Payment(props: IPaymentProps) {
</div>
<div className='moneyBox' >
<Tag style={{ cursor: 'pointer' }} onClick={() => {
form.setFieldValue('rechargeMoney', '100');
form.setFieldValue('rechargeMoney', 100);
setIsRechargeMoneyEdit(false)
getPay()
}} color="volcano">100</Tag>
<Tag style={{ cursor: 'pointer' }} onClick={() => {
form.setFieldValue('rechargeMoney', '200');
form.setFieldValue('rechargeMoney', 200);
setIsRechargeMoneyEdit(false)
getPay()
}} color="volcano">200</Tag>
<Tag style={{ cursor: 'pointer' }} onClick={() => {
form.setFieldValue('rechargeMoney', '300');
form.setFieldValue('rechargeMoney', 300);
setIsRechargeMoneyEdit(false)
getPay()
}} color="volcano">300</Tag>
<Tag style={{ cursor: 'pointer' }} onClick={() => {
form.setFieldValue('rechargeMoney', '400');
form.setFieldValue('rechargeMoney', 400);
setIsRechargeMoneyEdit(false)
getPay()
}} color="volcano">400</Tag>
<Tag style={{ cursor: 'pointer' }} onClick={() => {
form.setFieldValue('rechargeMoney', '500');
form.setFieldValue('rechargeMoney', 500);
setIsRechargeMoneyEdit(false)
getPay()
}} color="volcano">500</Tag>

View File

@ -51,5 +51,4 @@
}
.moneyBox {
display: flex;
flex-wrap: ;
}

View File

@ -1,43 +1,53 @@
import {
Button,
Col,
DatePicker, Flex,
// DatePicker,
Flex,
Form,
GetProp,
// GetProp,
Input,
message,
Radio,
Row,
Spin,
Upload,
// Spin,
// Upload,
UploadFile,
UploadProps
// UploadProps
} from "antd";
import {DevUserId, downloadUrl, get, uploadImageUrl} from "../../util/AjaxUtils.ts";
import {useEffect, useState} from "react";
import locale from "antd/es/date-picker/locale/zh_CN";
import dayjs, {Dayjs} from "dayjs";
import {
// DevUserId,
downloadUrl, get,
// uploadImageUrl
} from "../../util/AjaxUtils.ts";
import { useEffect, useState } from "react";
// import locale from "antd/es/date-picker/locale/zh_CN";
// import dayjs, { Dayjs } from "dayjs";
type FormDataType = {
userId: string;
userInfoId: string;
userInfoType: string;
userInfoName: string;
idCardType: string;
idCardNumber: string;
idCardFront: string;
idCardBack: string;
idCardStartDate: Dayjs;
idCardEndDate: Dayjs;
legalPerson: string;
establishDate: Dayjs;
contactAddress: string;
contactPhone: string;
contactPhone:string;
idCardType?:string;
userInfoNameEn?:string
contactName?:string
idCardNumber?:string
// idCardType: string;
// idCardNumber: string;
// idCardFront: string;
// idCardBack: string;
// idCardStartDate: Dayjs;
// idCardEndDate: Dayjs;
// legalPerson: string;
// establishDate: Dayjs;
// contactAddress: string;
// contactPhone: string;
}
type FileType = Parameters<GetProp<UploadProps, 'beforeUpload'>>[0];
// type FileType = Parameters<GetProp<UploadProps, 'beforeUpload'>>[0];
const dateFormat = 'YYYY年MM月DD日';
// const dateFormat = 'YYYY年MM月DD日';
export interface IUserEditProps {
@ -51,37 +61,41 @@ export default function UserEdit(props: IUserEditProps) {
const [userInfoType, setUserInfoType] = useState('PERSONAL');
const [idCardFrontImgArray, setIdCardFrontImgArray] = useState<UploadFile[]>([]);
const [idCardBackImgArray, setIdCardBackImgArray] = useState<UploadFile[]>([]);
const [loading, setLoading] = useState(false);
// const [loading, setLoading] = useState(false);
const beforeUpload = (file: FileType) => {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
if (!isJpgOrPng) {
message.error('只能上传 JPG/PNG 格式文件!');
return;
}
return isJpgOrPng;
};
// const beforeUpload = (file: FileType) => {
// const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
// if (!isJpgOrPng) {
// message.error('只能上传 JPG/PNG 格式文件!');
// return;
// }
// return isJpgOrPng;
// };
useEffect(() => {
get<any>({
messageApi,
url: 'api/user-info/get-self',
onSuccess({data}) {
onSuccess({ data }) {
// console.log('证件号',data.idCardNumber);
form.setFieldsValue({
userId: data.userId,
userInfoId: data.userInfoId,
userInfoName: data.userInfoName,
userInfoType: data.userInfoType,
contactAddress: data.contactAddress,
// contactAddress: data.contactAddress,
contactPhone: data.contactPhone,
establishDate: data.establishDate ? dayjs(data.establishDate, 'YYYY-MM-DD') : '',
// establishDate: data.establishDate ? dayjs(data.establishDate, 'YYYY-MM-DD') : '',
idCardNumber: data.idCardNumber,
idCardFront: data.idCardFront,
idCardStartDate: data.idCardStartDate ? dayjs(data.idCardStartDate, 'YYYY-MM-DD') : '',
idCardBack: data.idCardBack,
idCardEndDate: data.idCardEndDate ? dayjs(data.idCardEndDate, 'YYYY-MM-DD') : '',
// idCardFront: data.idCardFront,
// idCardStartDate: data.idCardStartDate ? dayjs(data.idCardStartDate, 'YYYY-MM-DD') : '',
// idCardBack: data.idCardBack,
// idCardEndDate: data.idCardEndDate ? dayjs(data.idCardEndDate, 'YYYY-MM-DD') : '',
idCardType: data.idCardType,
legalPerson: data.legalPerson,
userInfoNameEn:data.userInfoNameEn,
contactName:data.contactName
// legalPerson: data.legalPerson,
})
if (data.idCardFront) {
const url = downloadUrl(data.idCardFront);
@ -120,27 +134,55 @@ export default function UserEdit(props: IUserEditProps) {
layout="vertical"
form={form}
onFinish={() => {
props.handleConfirm({
userId: form.getFieldValue('userId'),
userInfoId: form.getFieldValue('userInfoId'),
userInfoName: form.getFieldValue('userInfoName'),
userInfoType: form.getFieldValue('userInfoType'),
contactAddress: form.getFieldValue('contactAddress'),
contactPhone: form.getFieldValue('contactPhone'),
establishDate: form.getFieldValue('establishDate') ? form.getFieldValue('establishDate').format(dateFormat) : '',
idCardBack: form.getFieldValue('idCardBack'),
idCardEndDate: form.getFieldValue('idCardEndDate') ? form.getFieldValue('idCardEndDate').format(dateFormat) : '',
idCardFront: form.getFieldValue('idCardFront'),
idCardNumber: form.getFieldValue('idCardNumber'),
idCardStartDate: form.getFieldValue('idCardStartDate') ? form.getFieldValue('idCardStartDate').format(dateFormat) : '',
idCardType: form.getFieldValue('idCardType'),
legalPerson: form.getFieldValue('legalPerson'),
});
if(userInfoType == 'PERSONAL'){
props.handleConfirm({
userId: form.getFieldValue('userId'),
userInfoId: form.getFieldValue('userInfoId'),
userInfoName: form.getFieldValue('userInfoName'),
contactPhone:form.getFieldValue('contactPhone'),
userInfoType: form.getFieldValue('userInfoType'),
// userInfoType: form.getFieldValue('userInfoType'),
// contactAddress: form.getFieldValue('contactAddress'),
// contactPhone: form.getFieldValue('contactPhone'),
// establishDate: form.getFieldValue('establishDate') ? form.getFieldValue('establishDate').format(dateFormat) : '',
// idCardBack: form.getFieldValue('idCardBack'),
// idCardEndDate: form.getFieldValue('idCardEndDate') ? form.getFieldValue('idCardEndDate').format(dateFormat) : '',
// idCardFront: form.getFieldValue('idCardFront'),
// idCardNumber: form.getFieldValue('idCardNumber'),
// idCardStartDate: form.getFieldValue('idCardStartDate') ? form.getFieldValue('idCardStartDate').format(dateFormat) : '',
// idCardType: form.getFieldValue('idCardType'),
// legalPerson: form.getFieldValue('legalPerson'),
});
}else{
props.handleConfirm({
userId: form.getFieldValue('userId'),
userInfoId: form.getFieldValue('userInfoId'),
userInfoName: form.getFieldValue('userInfoName'),
contactName:form.getFieldValue('contactName'),
contactPhone:form.getFieldValue('contactPhone'),
idCardType:form.getFieldValue('idCardType'),
userInfoType: form.getFieldValue('userInfoType'),
userInfoNameEn:form.getFieldValue('userInfoNameEn'),
idCardNumber:form.getFieldValue('idCardNumber'),
// userInfoType: form.getFieldValue('userInfoType'),
// contactAddress: form.getFieldValue('contactAddress'),
// contactPhone: form.getFieldValue('contactPhone'),
// establishDate: form.getFieldValue('establishDate') ? form.getFieldValue('establishDate').format(dateFormat) : '',
// idCardBack: form.getFieldValue('idCardBack'),
// idCardEndDate: form.getFieldValue('idCardEndDate') ? form.getFieldValue('idCardEndDate').format(dateFormat) : '',
// idCardFront: form.getFieldValue('idCardFront'),
// idCardNumber: form.getFieldValue('idCardNumber'),
// idCardStartDate: form.getFieldValue('idCardStartDate') ? form.getFieldValue('idCardStartDate').format(dateFormat) : '',
// idCardType: form.getFieldValue('idCardType'),
// legalPerson: form.getFieldValue('legalPerson'),
});
}
}}
>
<Form.Item label="类型"
name="userInfoType"
rules={[{required: true, message: '请选择类型'}]}
name="userInfoType"
rules={[{ required: true, message: '请选择类型' }]}
>
<Radio.Group onChange={(e) => {
setUserInfoType(e.target.value);
@ -155,48 +197,123 @@ export default function UserEdit(props: IUserEditProps) {
<Radio.Button value="ENTERPRISE"></Radio.Button>
</Radio.Group>
</Form.Item>
<Form.Item label="名称"
name="userInfoName"
rules={[{required: true, message: '请输入名称'}]}
{/* <Form.Item label={userInfoType == 'PERSONAL' ? '' : ''}
name="userInfoName"
rules={[{ required: true, message: '请输入名称' }]}
>
<Input placeholder="请输入名称"/>
</Form.Item>
<Input placeholder="请输入名称" />
</Form.Item> */}
{
userInfoType == 'PERSONAL' ? (
<Form.Item label="证件类型"
name="idCardType"
rules={[{required: true, message: '请选择证件类型'}]}
>
<Radio.Group>
<Radio.Button value="ID_CARD"></Radio.Button>
</Radio.Group>
</Form.Item>
<>
<Row gutter={15}>
<Col span={12}>
<Form.Item label='姓名'
name="userInfoName"
rules={[{ required: true, message: '请输入名称' }]}
>
<Input placeholder="请输入名称" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item label="联系电话"
name="contactPhone"
rules={[{ required: true, message: '请输入联系电话' }]}
>
<Input placeholder="请输入联系电话" />
</Form.Item>
</Col>
</Row>
{/* <Form.Item label=""
name="idCardType"
// rules={[{ required: true, message: '请选择证件类型' }]}
>
<Radio.Group>
<Radio.Button value="ID_CARD"></Radio.Button>
</Radio.Group>
</Form.Item>
<Form.Item label="证件号"
name="idCardNumber"
// rules={[{ required: true, message: '请输入证件号' }]}
>
<Input placeholder="请输入证件号" />
</Form.Item> */}
</>
) : <></>
}
{
userInfoType == 'ENTERPRISE' ? (
<Form.Item label="证件类型"
name="idCardType"
rules={[{required: true, message: '请选择证件类型'}]}
>
<Radio.Group>
<Radio.Button value="ORGANIZATION_CODE"></Radio.Button>
</Radio.Group>
</Form.Item>
<>
<Row gutter={15}>
<Col span={12}>
<Form.Item label='公司名称'
name="userInfoName"
rules={[{ required: true, message: '请输入名称' }]}
>
<Input placeholder="请输入名称" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item label="公司英文名"
name="userInfoNameEn"
rules={[
{ required: true, message: '请输入公司英文名' },
{
pattern: /^[A-Za-z]+$/,
message: '请输入正确的英文名'
}
]}
>
<Input placeholder="请输入公司英文名" />
</Form.Item>
</Col>
</Row>
<Row gutter={15}>
<Col span={12}>
<Form.Item label='联系人'
name="contactName"
rules={[{ required: true, message: '请输入联系人' }]}
>
<Input placeholder="请输入联系人" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item label="联系电话"
name="contactPhone"
rules={[{ required: true, message: '请输入联系电话' }]}
>
<Input placeholder="请输入联系电话" />
</Form.Item>
</Col>
</Row>
<Form.Item label="证件类型"
name="idCardType"
rules={[{ required: true, message: '请选择证件类型' }]}
>
<Radio.Group>
<Radio.Button value="ORGANIZATION_CODE"></Radio.Button>
</Radio.Group>
</Form.Item>
<Form.Item label="证件号"
name="idCardNumber"
// rules={[{ required: true, message: '请输入证件号' }]}
>
<Input placeholder="请输入证件号" />
</Form.Item>
<div style={{marginTop:-20,marginBottom:10,color:'green'}}>(:此处信息在后期软著制作中会用到,)</div>
</>
) : <></>
}
<Form.Item label="证件号"
name="idCardNumber"
rules={[{required: true, message: '请输入证件号'}]}
>
<Input placeholder="请输入证件号"/>
</Form.Item>
<Row gutter={15}>
{/* <Row gutter={15}>
<Col span={12}>
<Form.Item label="证件照正面"
name="idCardFront"
rules={[{required: true, message: '请上传证件照正面'}]}
name="idCardFront"
// rules={[{ required: true, message: '请上传证件照正面' }]}
>
<Upload
name="image"
@ -204,7 +321,7 @@ export default function UserEdit(props: IUserEditProps) {
maxCount={1}
defaultFileList={idCardFrontImgArray}
action={uploadImageUrl()}
headers={{'X-USER-ID': DevUserId}}
headers={{ 'X-USER-ID': DevUserId }}
beforeUpload={beforeUpload}
onChange={(info) => {
if (info.file.status === 'uploading') {
@ -237,17 +354,17 @@ export default function UserEdit(props: IUserEditProps) {
}}
>
<Button size="small" type="primary"
style={{backgroundColor: 'var(--color-primary)'}}
disabled={idCardFrontImgArray.length > 0}></Button>
style={{ backgroundColor: 'var(--color-primary)' }}
disabled={idCardFrontImgArray.length > 0}></Button>
</Upload>
</Form.Item>
</Col>
{
</Col> */}
{/* {
userInfoType == 'PERSONAL' ? (
<Col span={12}>
<Form.Item label="证件照反面"
name="idCardBack"
rules={[{required: true, message: '请上传证件照反面'}]}
name="idCardBack"
// rules={[{ required: true, message: '请上传证件照反面' }]}
>
<Upload
name="image"
@ -255,7 +372,7 @@ export default function UserEdit(props: IUserEditProps) {
maxCount={1}
defaultFileList={idCardBackImgArray}
action={uploadImageUrl()}
headers={{'X-USER-ID': DevUserId}}
headers={{ 'X-USER-ID': DevUserId }}
beforeUpload={beforeUpload}
onChange={(info) => {
if (info.file.status === 'uploading') {
@ -288,25 +405,25 @@ export default function UserEdit(props: IUserEditProps) {
}}
>
<Button size="small" type="primary"
style={{backgroundColor: 'var(--color-primary)'}}
disabled={idCardBackImgArray.length > 0}></Button>
style={{ backgroundColor: 'var(--color-primary)' }}
disabled={idCardBackImgArray.length > 0}></Button>
</Upload>
</Form.Item>
</Col>
) : <></>
}
</Row>
<Row gutter={15}>
</Row> */}
{/* <Row gutter={15}>
<Col span={12}>
<Form.Item<FormDataType>
label="证件开始时间"
name="idCardStartDate"
rules={[{required: true, message: '请选择证件开始时间'}]}
// rules={[{ required: true, message: '请选择证件开始时间' }]}
>
<DatePicker placeholder="证件开始时间"
format={dateFormat}
locale={locale}
style={{width: '100%'}}
format={dateFormat}
locale={locale}
style={{ width: '100%' }}
/>
</Form.Item>
</Col>
@ -314,72 +431,72 @@ export default function UserEdit(props: IUserEditProps) {
<Form.Item<FormDataType>
label="证件结束时间"
name="idCardEndDate"
rules={[{required: true, message: '请选择证件结束时间'}]}
// rules={[{ required: true, message: '请选择证件结束时间' }]}
>
<DatePicker placeholder="证件结束时间"
format={dateFormat}
locale={locale}
style={{width: '100%'}}
format={dateFormat}
locale={locale}
style={{ width: '100%' }}
/>
</Form.Item>
</Col>
</Row>
{
</Row> */}
{/* {
userInfoType == 'ENTERPRISE' ? (
<Row gutter={15}>
<Col span={12}>
<Form.Item label="法人"
name="legalPerson"
rules={[{required: true, message: '请输入法人'}]}
name="legalPerson"
// rules={[{ required: true, message: '请输入法人' }]}
>
<Input placeholder="请输入法人"/>
<Input placeholder="请输入法人" />
</Form.Item>
</Col>
<Col span={12}>
<Form.Item<FormDataType>
label="成立时间"
name="establishDate"
rules={[{required: true, message: '请选择成立时间'}]}
// rules={[{ required: true, message: '请选择成立时间' }]}
>
<DatePicker placeholder="成立时间"
format={dateFormat}
locale={locale}
style={{width: '100%'}}
format={dateFormat}
locale={locale}
style={{ width: '100%' }}
/>
</Form.Item>
</Col>
</Row>
) : <></>
}
<Row gutter={15}>
<Col span={12}>
} */}
{/* <Row gutter={15}>
<Col span={24}>
<Form.Item label="联系地址"
name="contactAddress"
rules={[{required: true, message: '请输入联系地址'}]}
name="contactAddress"
// rules={[{ required: true, message: '请输入联系地址' }]}
>
<Input placeholder="请输入联系地址"/>
<Input placeholder="请输入联系地址" />
</Form.Item>
</Col>
<Col span={12}>
</Col> */}
{/* <Col span={12}>
<Form.Item label="联系电话"
name="contactPhone"
rules={[{required: true, message: '请输入联系电话'}]}
>
<Input placeholder="请输入联系电话"/>
</Form.Item>
</Col>
</Row>
<Form.Item wrapperCol={{span: 24}}>
</Col> */}
{/* </Row> */}
<Form.Item wrapperCol={{ span: 24 }}>
<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>
</Flex>
</Form.Item>
</Form>
<Spin tip="正在提交..." spinning={loading} fullscreen/>
</Form >
{/* <Spin tip="正在提交..." spinning={loading} fullscreen /> */}
{contextHolder}
</>
)

View File

@ -17,7 +17,8 @@ export interface ICardProjBuy {
handleClick(title: string, additional: {
pkg: boolean,
videoDemo: boolean
videoDemo: boolean,
urgent:boolean
}): void;
}
@ -28,5 +29,6 @@ export interface ICardProj {
buyArray: ICardProjBuy[];
newArray:ICardProjBodyLine[];
isShow:number
isClickable:number
isClickable:number,
details:string
}

View File

@ -30,7 +30,8 @@ export enum ProjChargeType {
export enum ProjAdditionalType {
PKG = 'PKG',
VIDEO_DEMO = 'VIDEO_DEMO'
VIDEO_DEMO = 'VIDEO_DEMO',
URGENT = 'URGENT'
}
export interface IProjCharge {

View File

@ -36,22 +36,22 @@ export default function Head() {
authorId: '',
authorProvinceCity: ''
})
const setValue = () => {
// console.log(value);
}
const setConcatValue = ()=> {
const setConcatValue = () => {
}
// 联系人弹窗
const [contactModal, setContactModal] = useState(false)
const [concatPeopleInfo,setConcatPeopleInfo] = useState({
applyConcatId:'',
applyContactCsaNo:'',
applyContactEmail:'',
applyContactName:'',
applyContactPhone:'',
applyContactCompany:''
const [concatPeopleInfo, setConcatPeopleInfo] = useState({
applyConcatId: '',
applyContactCsaNo: '',
applyContactEmail: '',
applyContactName: '',
applyContactPhone: '',
applyContactCompany: ''
})
useEffect(() => {
reloadUser(messageApi, globalDispatchContext).then((data) => {
@ -152,7 +152,7 @@ export default function Head() {
{/* <div className="right" style={{backgroundImage: `url(${headRightBg})`}}> */}
<div className="right">
<div className='head-nav' onClick={()=>{
<div className='head-nav' onClick={() => {
window.open('https://www.aimzhu.com/operator/route/agreementportal/view?agreementId=c0c5683a-bef3-40c3-8395-900a362ea234&title=系统操作流程')
}}>
@ -178,14 +178,17 @@ export default function Head() {
</div>
</div>
<Modal open={isSelfModalOpen}
destroyOnClose={true}
title="个人信息"
footer={false}
onCancel={() => {
if (!globalContext.user.hasUserInfo) {
if (!globalContext.user.hasUserInfo ) {
messageApi.info('请完善个人信息');
return;
}
setIsSelfModalOpen(false)
// console.log('用户信息',globalContext.user.hasUserInfo);
}}>
<UserEdit handleConfirm={(data) => {
modal.confirm({
@ -289,7 +292,7 @@ export default function Head() {
}}>
<ContactPeople isShow={false} closeModal = {()=>{setContactModal(false)} } setConcatPeopleInfo={setConcatPeopleInfo} concatPeopleInfo={concatPeopleInfo} setConcatValue={setConcatValue}></ContactPeople>
<ContactPeople isShow={false} closeModal={() => { setContactModal(false) }} setConcatPeopleInfo={setConcatPeopleInfo} concatPeopleInfo={concatPeopleInfo} setConcatValue={setConcatValue}></ContactPeople>
</Modal>
<Spin tip="正在提交..." spinning={loading} fullscreen />
{contextHolder}

View File

@ -32,6 +32,7 @@ export default function Index() {
// 关键字
const [keywords, setKeywords] = useState('');
const [type, setType] = useState('')
const [chargeAdditionals,setchargeAdditionals] = useState('')
// const indexListContext = useContext(IndexListContext);
@ -348,7 +349,9 @@ export default function Index() {
nav('/home', {
state: {
keyword: value,
name: type
name: type,
chargeAdditionals:chargeAdditionals,
}
})
}
@ -359,7 +362,8 @@ export default function Index() {
nav('/home', {
state: {
keyword: '',
name: type
name: type,
chargeAdditionals:chargeAdditionals,
}
})
}
@ -441,6 +445,7 @@ export default function Index() {
nav('/home', {
state: {
keyword: keywords,
chargeAdditionals:chargeAdditionals,
name: value
}
})
@ -454,6 +459,32 @@ export default function Index() {
]}
defaultValue=""
// placeholder={'选择类型'}
/>
<Select
style={{ height: '31px', width: '183px', marginLeft: 20, display: showSearchBox ? 'block' : 'none' }}
onChange={(value: string) => {
// console.log(`selected ${value}`);
setchargeAdditionals(value)
// alert(`selected ${value}`)
// lyp
nav('/home', {
state: {
keyword: keywords,
name: type,
chargeAdditionals:value
}
})
}}
options={[
{ value: '', label: '选择拓展收费' },
{ value: 'PKG', label: '安装包' },
{ value: 'VIDEO_DEMO', label: '演示视频' },
{ value: 'URGENT', label: '加急' },
]}
defaultValue=""
// placeholder={'选择类型'}
/>
<div style={{
width: '253px',

View File

@ -84,19 +84,19 @@ export default function ProjCreate() {
<div style={{
position: 'absolute', top: 0, left: 0, width: '100%', background: 'rgba(255,159,8,0.08)',
border: '1px solid #F5E5B4',
borderRadius:' 10px',
display:show?'block':'none'
borderRadius: ' 10px',
display: show ? 'block' : 'none'
}}>
<div style={{ position: 'relative' }}>
<div className='adContent' style={{ display: 'flex', alignItems: 'center' }}>
<div style={{marginLeft:10,marginRight:10}}>
<div style={{ marginLeft: 10, marginRight: 10 }}>
<img src={adimg} alt="" width={27} height={32} />
</div>
<ScrollAd ad={ad}></ScrollAd>
</div>
<div style={{ width: 30, fontWeight: 700, cursor: 'pointer', position: 'absolute', top: 15, right: 5,fontSize:18,color:'#FFAB31' }} onClick={() => {
<div style={{ width: 30, fontWeight: 700, cursor: 'pointer', position: 'absolute', top: 15, right: 5, fontSize: 18, color: '#FFAB31' }} onClick={() => {
setShow(false)
}}>
<CloseOutlined />
@ -105,18 +105,19 @@ export default function ProjCreate() {
</div>
</div>
<CardProjType
head={'全托'}
head={'全托管'}
details={'从下单到取证,仅需提供基本信息,我们为您提供一站式管家服务。'}
bodyLineArray={[
{
title: '提供的服务:',
contents: [
'提供系统搭建',
'系统可在线运行三年',
'软著材料编写',
'软著申报',
'包下证',
'提供系统演示视频文件',
'提供系统安装包'
'包可运行软件开发与搭建',
'包鉴别材料撰写',
'包代办,包下证,包开发票',
'提供可运行软件安装包',
'提供可运行软件云服务900天',
'提供可运行软件演示视频',
'客服一对一服务'
]
},
@ -125,17 +126,27 @@ export default function ProjCreate() {
{
title: '使用流程:',
contents: [
'系统操作手册执行',
'填写系统名称',
'填写基本信息',
'接收证书'
]
}
]
}
chargeLineArray={[
{
id: ProjAdditionalType.URGENT,
price: charge.urgent,
title: `加急办理 ${charge.urgent / 100}`
},
]}
buyArray={[
{
id: ProjChargeType.ALL,
price: allInfo.price,
handleClick: () => {
nav(`/proj-new/${ProjChargeType.ALL}`)
handleClick: (_title, additional) => {
nav(`/proj-new/${ProjChargeType.ALL}?${additional.urgent ? 'urgent=true' : 'pkg='}`)
}
}
]}
@ -200,14 +211,18 @@ export default function ProjCreate() {
/> */}
<CardProjType
head={'写材料'}
details={'通过平台自己搭建可运行软件后由平台自动生成相关鉴别材料,下载鉴别材料后可自行申报或找相关代理机构申报。'}
bodyLineArray={[
{
title: '提供的服务:',
contents: [
'提供系统搭建平台与客服指导',
'系统可在线运行一年',
'软著材料编写',
'资料补正三次',
'通过平台自己搭建可运行软件',
'平台自动撰写鉴别材料',
'包补正材料撰写一直到下证',
'两次补正不通过平台退款',
'包开发票',
'提供可运行软件云服务300天',
'客服一对一服务'
]
},
@ -216,7 +231,7 @@ export default function ProjCreate() {
{
title: '使用流程:',
contents: [
'系统操作手册执行',
'按系统操作流程执行',
]
}
@ -250,12 +265,15 @@ export default function ProjCreate() {
/>
<CardProjType
head={`免费试用${freeCount}`}
details={'每个账户的免费试用次数为3次。免费试用主要目的是让您了解如何使用平台可全过程体验。'}
bodyLineArray={[
{
title: '提供的服务:',
contents: [
'提供系统搭建平台与客服指导',
'系统可在线存储三天',
'通过平台自己搭建可运行软件',
'平台自动撰写鉴别材料',
'提供可运行软件云服务10天',
'客服一对一服务'
]
},
@ -264,7 +282,7 @@ export default function ProjCreate() {
{
title: '使用流程:',
contents: [
'系统操作手册执行',
'按系统操作流程执行',
]
}
]

View File

@ -116,7 +116,7 @@ export default function ProjEdit() {
setTitleIntroductionShowOpen(true)
}
},
},
{
title: '第2步:软件基本信息填写',
@ -134,7 +134,7 @@ export default function ProjEdit() {
setSoftwareShowOpen(true)
}
},
},
{
title: '第3步:软件功能特点设置',
@ -151,7 +151,7 @@ export default function ProjEdit() {
setSoftwareFeaturesShowOpen(true)
}
},
},
{
title: '第4步:登录页面设置',
@ -169,7 +169,7 @@ export default function ProjEdit() {
setLoginPageShowOpne(true)
}
},
},
// {
// title: '著作人信息',
@ -250,7 +250,7 @@ export default function ProjEdit() {
setSoftwareManagementShowOpen(true)
}
},
},
{
title: '第6步:设置功能列表显示顺序',
@ -267,7 +267,7 @@ export default function ProjEdit() {
setDisplayOrderShowOpen(true);
}
},
}
)
setConfigArray(configArray);
@ -323,7 +323,7 @@ export default function ProjEdit() {
})
}
// 获取ai信息
// 获取ai信息
const getAiData = () => {
get<any>({
messageApi: messageApi,
@ -347,32 +347,62 @@ export default function ProjEdit() {
}
// 查看ai是否关闭
const getListMods = () => {
get<any[]>({
messageApi,
url: `/api/proj-mod/list/proj-id/${pathParams.projId}`,
onBefore() {
},
get<any>({
messageApi: messageApi,
url: `/api/proj/get/${pathParams.projId}`,
onSuccess({ data }) {
console.log('模块信息',data);
// setListMods(data)
if(aiHelper.projIntroduction && aiHelper.projDesc && data.length > 0){
setAiHelperModalOpen(false);
}else{
if (data.projIntroduction && data.projDesc) {
get<any[]>({
messageApi,
url: `/api/proj-mod/list/proj-id/${pathParams.projId}`,
onBefore() {
},
onSuccess({ data }) {
console.log('模块信息', data);
// setListMods(data)
if (data.length > 0) {
setAiHelperModalOpen(false);
} else {
messageApi.error('须完成系统简介,系统详情,功能列表的生成才可关闭弹窗');
}
},
onFinally() {
}
})
} else {
messageApi.error('须完成系统简介,系统详情,功能列表的生成才可关闭弹窗');
}
},
onFinally() {
}
})
// get<any[]>({
// messageApi,
// url: `/api/proj-mod/list/proj-id/${pathParams.projId}`,
// onBefore() {
// },
// onSuccess({ data }) {
// console.log('模块信息',data);
// // setListMods(data)
// if(aiHelper.projIntroduction && aiHelper.projDesc && data.length > 0){
// setAiHelperModalOpen(false);
// }else{
// messageApi.error('须完成系统简介,系统详情,功能列表的生成才可关闭弹窗');
// }
// },
// onFinally() {
// }
// })
}
useEffect(() => {
renderData();
// setAiHelperModalOpen(true)
getAiData()
}, [])

View File

@ -1128,8 +1128,8 @@ export default function ProjEditAll() {
justifyContent:'center',
flexDirection:'column'
}}>
<img src={progress=='PRODUCTION'?PRODUCTION:progress=='SUBMIT'? SUBMIT:progress=='DONE'? DONE:ING} alt="" width={300}/>
<div style={{marginTop:10}}>{progress=='PRODUCTION'?'您申请的软著正在制作中':progress=='SUBMIT'? '您申请的软著已提交待审核':progress=='DONE'? '您申请的软著已完成':'您申请的软著等待制作中'}</div>
<img src={progress=='PRODUCTION'?PRODUCTION:progress=='SUBMIT_FOR_REVIEW'? SUBMIT:progress=='DONE'? DONE:ING} alt="" width={300}/>
<div style={{marginTop:10}}>{progress=='PRODUCTION'?'您申请的软著正在制作中,预计一日内完成':progress=='SUBMIT_FOR_REVIEW'? '您申请的软著已提交国家版权中心,预计60个工作日内下证':progress=='DONE'? '您申请的软著已完成,请在页面证书下载处下载':'您申请的软著等待制作中,预计两日内完成'}</div>
</div>
</Modal>
</div>

View File

@ -82,28 +82,58 @@ export default function ProjEdit() {
const [generateEmainingTime, setGenerateEmainingTime] = useState(0);
// const height = window.innerHeight - 240;
const [generateErrorModal, setGenerateErrorModal] = useState(false);
// 查看ai是否关闭
const getListMods = () => {
get<any[]>({
messageApi,
url: `/api/proj-mod/list/proj-id/${pathParams.projId}`,
onBefore() {
},
// 查看ai是否关闭
const getListMods = () => {
get<any>({
messageApi: messageApi,
url: `/api/proj/get/${pathParams.projId}`,
onSuccess({ data }) {
console.log('模块信息',data);
// setListMods(data)
if(aiHelper.projIntroduction && aiHelper.projDesc && data.length > 0){
setAiHelperModalOpen(false);
}else{
if (data.projIntroduction && data.projDesc) {
get<any[]>({
messageApi,
url: `/api/proj-mod/list/proj-id/${pathParams.projId}`,
onBefore() {
},
onSuccess({ data }) {
console.log('模块信息', data);
// setListMods(data)
if (data.length > 0) {
setAiHelperModalOpen(false);
} else {
messageApi.error('须完成系统简介,系统详情,功能列表的生成才可关闭弹窗');
}
},
onFinally() {
}
})
} else {
messageApi.error('须完成系统简介,系统详情,功能列表的生成才可关闭弹窗');
}
},
onFinally() {
}
})
// get<any[]>({
// messageApi,
// url: `/api/proj-mod/list/proj-id/${pathParams.projId}`,
// onBefore() {
// },
// onSuccess({ data }) {
// console.log('模块信息',data);
// // setListMods(data)
// if(aiHelper.projIntroduction && aiHelper.projDesc && data.length > 0){
// setAiHelperModalOpen(false);
// }else{
// messageApi.error('须完成系统简介,系统详情,功能列表的生成才可关闭弹窗');
// }
// },
// onFinally() {
// }
// })
}
const renderEditStep = (data: any, isEdited: boolean, isGenerateSuccess: boolean) => {
const editStepArray: IProjEdit[] = [];
@ -297,7 +327,7 @@ export default function ProjEdit() {
onSuccess({ data }) {
// const isEdited = data.editSteps[0].editStatus == EditStepEnum.EDITED
// && data.editSteps[5].editStatus == EditStepEnum.EDITED;
console.log('嘻嘻', data.projModCount);
// console.log('嘻嘻', data.projModCount);
// if(data.projModCount >= 3){
// setCanGenerate(true)
// }
@ -319,6 +349,7 @@ export default function ProjEdit() {
projDesc: data.projDesc,
projMods: data.projMods
})
// getListMods()
}
})
}
@ -509,7 +540,7 @@ export default function ProjEdit() {
<CardProjDownload title="源代码"
desc="点击下载源代码"
canBtnClick={generateStatus == GenerateStatus.SUCCESS}
handleDownload={() => {
handleDownload={() => {
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code/${pathParams.projId}`)
}}
/>

View File

@ -115,6 +115,7 @@ export default function ProjNew() {
}
const pkg = queryParams.get('pkg') == 'true' ? true : false
const videoDemo = queryParams.get('videoDemo') == 'true' ? true : false
const urgent = queryParams.get('urgent') == 'true' ? true : false
if (pkg) {
price += charge.additional.pkg;
oldlistProjChargeAdditional.push(ProjAdditionalType.PKG);
@ -127,6 +128,11 @@ export default function ProjNew() {
console.log(listProjChargeAdditional);
}
if(urgent){
price += charge.additional.urgent;
oldlistProjChargeAdditional.push(ProjAdditionalType.URGENT);
console.log(listProjChargeAdditional);
}
setChargePrice(price);
setlistProjChargeAdditional(oldlistProjChargeAdditional)
// console.log('传递信息pkg:',pkg,'videoDemo:',videoDemo);

View File

@ -103,7 +103,7 @@ export default function ProjEditStep2(props: any) {
const [keywords, setKeyWords] = useState('')
const [type, setType] = useState('')
// 联系人搜索关键字
const [peopleKeyWords,setPeopleKeyWords] = useState('')
const [peopleKeyWords, setPeopleKeyWords] = useState('')
// 表格第几行数据
// const [clom, setClom] = useState('')
// 著作人搜索
@ -348,7 +348,7 @@ export default function ProjEditStep2(props: any) {
isCrcAccount: Number(formBelong.getFieldValue('isCrcAccount')),
name: formBelong.getFieldValue('authorName'),
nameEn: formBelong.getFieldValue('nameEn') || '',
provinceCity: formBelong.getFieldValue('authorProvince').join(','),
provinceCity: formBelong.getFieldValue('authorProvince') ? formBelong.getFieldValue('authorProvince').join(',') : '',
type: formBelong.getFieldValue('authorType'),
},
onBefore() {
@ -386,7 +386,7 @@ export default function ProjEditStep2(props: any) {
isCrcAccount: Number(formBelong.getFieldValue('isCrcAccount')),
name: formBelong.getFieldValue('authorName'),
nameEn: formBelong.getFieldValue('nameEn'),
provinceCity: formBelong.getFieldValue('authorProvince').join(','),
provinceCity: formBelong.getFieldValue('authorProvince') ? formBelong.getFieldValue('authorProvince').join(',') : '',
type: formBelong.getFieldValue('authorType'),
},
onBefore() {
@ -750,7 +750,7 @@ export default function ProjEditStep2(props: any) {
record.idCardType === 'ID_CARD' ? '身份证' : '营业执照'
)}
/>
<Column title="所属者身份证号" dataIndex="idCardNo" key="belongCardNo" />
<Column title="所属者号" dataIndex="idCardNo" key="belongCardNo" />
{/* <Column title="实名认证状态" dataIndex="address" key="key" /> */}
<Column
title="操作"
@ -1186,7 +1186,7 @@ export default function ProjEditStep2(props: any) {
rules={[{ required: true, message: belongShow == 'PERSONAL' ? '请输入姓名' : '请输入公司名称' }]}
>
<Input placeholder={belongShow == 'PERSONAL' ? '请输入姓名' : '请输入公司名称'}
style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }}
style={{ height: '44px', width: '360px', fontSize: '15px', marginTop: '22px' }}
disabled={belongTitle == '查看所属者' ? true : false}
/>
@ -1201,10 +1201,17 @@ export default function ProjEditStep2(props: any) {
<Form.Item<BelongPeopleType>
// label="公司英文名"
name="nameEn"
// rules={[{ required: true, message: belongShow == 'PERSONAL' ? '请输入英文名' : '请输入公司英文名称' }]}
// rules={[{ required: true, message: belongShow == 'PERSONAL' ? '请输入英文名' : '请输入公司英文名称' }]}
rules={[
{ required: true, message: belongShow == 'PERSONAL' ? '请输入英文名' : '请输入公司英文名称' },
{
pattern: /^[A-Za-z]+$/,
message: '请输入正确的英文名'
}
]}
>
<Input placeholder={belongShow == 'ORGANIZATION' ? '请输入公司英文名称' : '请输入英文名'}
style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }}
style={{ height: '44px', width: '360px', fontSize: '15px', marginTop: '22px' }}
disabled={belongTitle == '查看所属者' ? true : false}
/>
</Form.Item>
@ -1242,7 +1249,7 @@ export default function ProjEditStep2(props: any) {
<Col span={12}>
<div className='blongNameInt blongSmallNamel'>
<div className='blongTitle blongsmallTitle '>{belongShow == 'PERSONAL' ? '身份证号' : '营业执照号'}:</div>
<div className='blongTitle blongsmallTitle '>{belongShow == 'PERSONAL' ? '身份证号' : '统一社会信用代码'}</div>
<Form.Item<BelongPeopleType>
// label="证件号"
@ -1250,7 +1257,7 @@ export default function ProjEditStep2(props: any) {
rules={[{ required: true, message: '请输入证件号' }]}
>
<Input placeholder="请输入证件号"
style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }}
style={{ height: '44px', width: '360px', fontSize: '15px', marginTop: '22px' }}
disabled={belongTitle == '查看所属者' ? true : false}
/>
@ -1268,10 +1275,10 @@ export default function ProjEditStep2(props: any) {
<Form.Item<BelongPeopleType>
// label="省市"
name="authorProvince"
rules={[{ required: true, message: '请选择省市' }]}
// rules={[{ required: true, message: '请选择省市' }]}
>
<Cascader options={areaArray}
style={{ height: '44px', width: '384px', fontSize: '15px', marginTop: '22px' }}
style={{ height: '44px', width: '360px', fontSize: '15px', marginTop: '22px' }}
loadData={(selectedOptions: Option[]) => {
const targetOption = selectedOptions[selectedOptions.length - 1];

View File

@ -689,7 +689,7 @@ export default function ProjEditStep2() {
record.idCardType === 'ID_CARD' ? '身份证' : '营业执照'
)}
/>
<Column title="所属者身份证号" dataIndex="idCardNo" key="belongCardNo" />
<Column title="所属者号" dataIndex="idCardNo" key="belongCardNo" />
{/* <Column title="实名认证状态" dataIndex="address" key="key" /> */}
</Table>

View File

@ -150,10 +150,11 @@
}
.blongsmallTitle {
width: 132px;
width: 140px;
text-align: end;
/* background-color: #555555; */
margin-right: 10px;
}
.blongSmallNameR {

View File

@ -20,7 +20,7 @@
display: none;
} */
.proj-create .proj {
margin-top: 33px;
margin-top: 20px;
}
.proj-create .test{
/* height: 30p; */

View File

@ -3,15 +3,16 @@ import type {MessageInstance} from "antd/es/message/interface";
export const Axios = axios;
axios.defaults.baseURL = 'http://192.168.0.103:7025/copyright';
axios.defaults.baseURL = 'http://192.168.0.15:7025/copyright';
// axios.defaults.baseURL = 'http://192.168.43.145:7025/copyright';
// axios.defaults.baseURL = 'http://127.0.0.1:7025/copyright';
// axios.defaults.baseURL = 'https://www.aimzhu.com/copyright';
// axios.defaults.baseURL = '/copyright';
// export const WebSocketBaseUrl: string = 'ws://127.0.0.1:7025/copyright';
export const WebSocketBaseUrl: string = 'ws://192.168.0.103:7025/copyright';
export const WebSocketBaseUrl: string = 'ws://192.168.0.15:7025/copyright';
// export const WebSocketBaseUrl: string = '/copyright';
export const DevUserId: string = '80d3365e-0597-4988-979e-18ef1c3ec671'; // 18634604067
// export const DevUserId: string = 'eb9a82a6-6ed3-4ba0-90e6-d836cefff915'; // 15042810561
// export const DevUserId: string = 'c2438eb8-2685-49a9-bf02-5111a5192d96'; // 18647109157
// export const DevUserId: string = '';