diff --git a/src/components/BelongPeople/BelongPeople.tsx b/src/components/BelongPeople/BelongPeople.tsx new file mode 100644 index 0000000..be2c0b9 --- /dev/null +++ b/src/components/BelongPeople/BelongPeople.tsx @@ -0,0 +1,915 @@ +// import './proj-edit-step.css'; +import { Radio, Cascader, Col, message, Modal, Row, Spin, Table, Space, Select } from "antd"; +import { FolderAddOutlined } from '@ant-design/icons'; +// import locale from 'antd/es/date-picker/locale/zh_CN'; +// import { useParams } from "react-router-dom"; +import { useEffect, useState } from "react"; +// import { get, put, post, del, downloadUrl } from "../../../util/AjaxUtils.ts"; +import { get, put, post, del, + // downloadUrl +} from "../../util/AjaxUtils.ts"; +import { Button, Form, Input } from 'antd'; +import { AxiosResponse } from "axios"; +import +// dayjs, +{ Dayjs } from 'dayjs'; +import type { SearchProps } from 'antd/es/input/Search'; +// import type { TableColumnsType } from 'antd'; +import { ITree } from "../../interfaces/dict/IDict.ts"; + +const { Search } = Input; +const { Column } = Table; +// 基本信息文件类型 +type FieldType = { + projSubName: string; + projVersion: string; + projDevCompleteDate: Dayjs; + companyName: string; + companyNameEn: string; + projName: string +}; +// 所属人信息类型 +type BelongPeopleType = { + authorName: string; + authorIdCardType: string; + authorIdCard: string; + authorNation: string; + authorProvince: string; + authorEstablishDate: Dayjs; + authorType: string; + nameEn: string; + isCrcAccount: string; + crcAccountPassword: string; + crcAccountUsername: string; +} + +// interface DataType { +// key: React.Key; +// name: string; +// age: number; +// address: string; +// select: boolean; +// } +interface Option { + value?: string | number | null; + label: React.ReactNode; + children?: Option[]; + isLeaf?: boolean; + id: string; + pId: string; +} + +export default function BelongPeople(props:any) { + // const nav = useNavigate(); + // const pathParams = useParams(); + const [messageApi, contextHolder] = message.useMessage(); + const [formInfo] = Form.useForm(); + const [formBelong] = Form.useForm(); + + const [loading] = useState(false); + // const [isEditModalOpen, setIsEditModalOpen] = useState(false); + const [isNewBelongOpen, setIsNewBelongOpen] = useState(false) + + const height = window.innerHeight - 200; + // const dateFormat = 'YYYY年MM月DD日'; + + // 页面显示的所属者信息 + // const [authorName, setauthorName] = useState('') //所属人姓名 + // const [authorIdCardType, setauthorIdCardType] = useState('') //所属人证件类型 + // const [authorIdCard, setauthorIdCard] = useState('') //所属人证件号 + // const [authorType, setauthorType] = 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 + // 设置所属者more你选中的行 + // const [selectedRowKeys, setSelectedRowKeys] = 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), + getSearchProjOwnerList(value, type) + ); + + + // 表格相关 + // rowSelection object indicates the need for row selection + // 所属者表格选择触发 + const belongRowSelection = { + // 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) + // 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) + // props.setBelongPeopleName(selectedRows[0].name) + props.setBelongPeopleInfo({ + authorName:selectedRows[0].name, + authorType:selectedRows[0].type, + authorIdCardType:selectedRows[0].idCardType, + authorIdCard:selectedRows[0].idCardNo, + + authorCrcAccount:selectedRows[0].isCrcAccount, + authorId:selectedRows[0].projOwnerId, + authorProvinceCity:selectedRows[0].provinceCity + }) + props.setValue(selectedRows[0].name) + }, + + }; + + // 所属人表格数据 + const [tableBelongData, setTableBelongData] = useState([]) + + + + // const selectedKeys = data.filter(item => item.select).map(item => item.key); + // console.log('selectedKeys:', selectedKeys); + // 是否提供中国版账号 + // 所属者id 关键字 + const [projOwnerId, setProjOwnerId] = useState('') + + // 所属者弹窗数据 + const [belongTitle, setbelongTitle] = useState('') + const [areaArray, setAreaArray] = useState([]); + const listArea = (pId: string) => { + return new Promise((resolve) => { + get({ + messageApi, + url: '/api/area/list-area-ztree', + config: { + params: { + id: pId + } + }, + onSuccess({ data }) { + resolve(data); + } + }) + }) + } + + + // 著作人表单信息 点击确定 + const handleOk = () => { + // console.log(belongShow); + // setBelongShow('') + formBelong.validateFields().then(() => { + // 如果验证通过,则执行确认操作 + // 这里可以放置你的确认操作逻辑 + if (belongTitle === '编辑所属者') { + upProjOwner() + } + if (belongTitle === '创建所属者') { + newProjOwner() + + } + // 关闭 弹窗 + // setIsNewBelongOpen(false) + // 初始化数据 + formBelong.resetFields(); // 重置表单字段为初始值 + + }).catch(() => { + // 如果验证不通过,可以根据需要处理错误信息 + // (errorInfo); + }); + belongRowSelection + + }; + + + // const [belongselectedKeys,setbelongselectedKeys] = useState(tableBelongData.filter(item => item.projOwnerId === authorId).map(item => item.projOwnerId)); + // 获取页面基本信息信息 + // const getEditstep = () => { + // get({ + // messageApi, + // url: `/api/proj/get/edit-step2/${pathParams.projId}`, + // onSuccess({ data }: AxiosResponse) { + + // // 获取默认所属人信息 + // setauthorName(data.authorName) + + // setauthorIdCardType(data.authorIdCardType) + // setauthorIdCard(data.authorIdCard) + // setauthorType(data.authorType) + + // setauthorProvinceCity(data.authorProvinceCity) + // setauthorCrcAccount(data.authorCrcAccount) + // setauthorCrcAccountPassword(data.authorCrcAccountPassword) + // setauthorCrcAccountUsername(data.authorCrcAccountUsername) + // setAuthorId(data.authorId) + + // console.log('基本信息', data); + + // formInfo.setFieldsValue({ + // projName: data.projName, + // projSubName: data.projSubName, + // projVersion: data.projVersion, + // projDevCompleteDate: data.projDevCompleteDate ? dayjs(data.projDevCompleteDate, 'YYYY-MM-DD') : '', + // companyName: data.companyName, + // companyNameEn: data.companyNameEn, + // }) + // } + // }) + // } + // 获取所属者表格 + const getProjOwnerList = () => { + get({ + messageApi, + url: `/api/proj-owner/list/self`, + onSuccess({ data }: AxiosResponse) { + console.log('所属者表格', data); + setTableBelongData(data) + // const selectBelongArray = data.filter(item => item.name === authorName) + // console.log('嘻嘻',selectBelongArray); + // setSelectedRowKeys(selectBelongArray) + + } + }) + } + + // 获取所属表格 带搜索 + const getSearchProjOwnerList = (keywords: any, type: any) => { + get({ + messageApi, + url: `/api/proj-owner/list/self?keywords=${keywords}&type=${type}`, + onSuccess({ data }: AxiosResponse) { + console.log('搜索所属者表格', data); + setTableBelongData(data) + } + }) + } + + const [belongShow, setBelongShow] = useState('ORGANIZATION') + // 编辑所属者 + const upProjOwner = () => { + const crcAccountPassword = Number(formBelong.getFieldValue('isCrcAccount')) == 1 ? formBelong.getFieldValue('crcAccountPassword') : '' + const crcAccountUsername = Number(formBelong.getFieldValue('isCrcAccount')) == 1 ? formBelong.getFieldValue('crcAccountUsername') : '' + put({ + messageApi, + url: `/api/proj-owner/update/${projOwnerId}`, + body: { + crcAccountPassword: crcAccountPassword, + crcAccountUsername: crcAccountUsername, + idCardNo: formBelong.getFieldValue('authorIdCard'), + // idCardType: formBelong.getFieldValue('authorIdCardType'), + idCardType: belongShow == 'PERSONAL' ? 'ID_CARD' : 'BUSINESS_LICENSE', + isCrcAccount: Number(formBelong.getFieldValue('isCrcAccount')), + name: formBelong.getFieldValue('authorName'), + nameEn: formBelong.getFieldValue('nameEn') || '', + provinceCity: formBelong.getFieldValue('authorProvince').join(','), + type: formBelong.getFieldValue('authorType'), + }, + onBefore() { + }, + onSuccess() { + // console.log(data); + // alert('编辑成功') + messageApi.open({ + type: 'success', + content: '编辑成功' + }) + getProjOwnerList() + + setIsNewBelongOpen(false) + + }, + onFinally() { + } + }) + } + // 创建所属者 + const newProjOwner = () => { + const crcAccountPassword = Number(formBelong.getFieldValue('isCrcAccount')) == 1 ? formBelong.getFieldValue('crcAccountPassword') : '' + const crcAccountUsername = Number(formBelong.getFieldValue('isCrcAccount')) == 1 ? formBelong.getFieldValue('crcAccountUsername') : '' + post({ + messageApi, + url: '/api/proj-owner/save', + body: { + crcAccountPassword: crcAccountPassword, + crcAccountUsername: crcAccountUsername, + idCardNo: formBelong.getFieldValue('authorIdCard'), + // idCardType: formBelong.getFieldValue('authorIdCardType'), + idCardType: belongShow == 'PERSONAL' ? 'ID_CARD' : 'BUSINESS_LICENSE', + isCrcAccount: Number(formBelong.getFieldValue('isCrcAccount')), + name: formBelong.getFieldValue('authorName'), + nameEn: formBelong.getFieldValue('nameEn'), + provinceCity: formBelong.getFieldValue('authorProvince').join(','), + type: formBelong.getFieldValue('authorType'), + }, + onBefore() { + + }, + onSuccess() { + messageApi.success('提交成功') + getProjOwnerList() + + setIsNewBelongOpen(false) + + }, + onFinally() { + } + }) + } + + + + + const typeChange = (data: any) => { + // console.log(data.target.value); + setBelongShow(data.target.value) + } + const [CrcAccountShow, setCrcAccountShow] = useState('0') + const isCrcAccountChange = (data: any) => { + // console.log(data.target.value); + setCrcAccountShow(data.target.value) + } + + useEffect(() => { + // getEditstep() + getProjOwnerList() + + listArea('0').then(data => { + console.log('省市1', data); + // data.slice(0, 2).map + const options: Option[] = data.map(item => { + return { + value: item.name, + label: item.name, + isLeaf: !item.isParent, + id: item.id, + pId: item.pId + } + }) + + setAreaArray(options); + // console.log('省市2', options); + }); + + }, []) + + return ( + <> +
+ + + {contextHolder} + {/* 首页}, + {title: 创建项目}, + {title: {nav(-1)}}>编辑项目}, + {title: '基本信息'}, + ]} + /> */} +
+ +
+ +
+
+
+
+ 根据《中国版权登记业务平台软件登记》相关要求,申请人需要再国版权登记业务平台注册并通过实名制认证。 + { + window.open('https://www.aimzhu.com/Rnsystem.html') + }} style={{ color: '#FDB33E' }}>了解实名制认证流程 +
+
+ +
+ +
+
+ { + console.log(`selected ${value}`); + alert(`selected ${value}`) + }} + options={[ + { value: 'code1', label: '全部状态' }, + { value: 'code2', label: '嘿嘿' }, + { value: 'code3', label: '嘻嘻' }, + ]} + defaultValue="code1" + /> +
*/} +
+
+
当前所属者:
+
请选择所属者
+
+ { props.belongPeopleInfo.authorName}/{ props.belongPeopleInfo.authorType == 'PERSONAL' ? '自然人' : '企业-组织'}/{ props.belongPeopleInfo.authorIdCardType == 'ID_CARD' ? '身份证' : '营业执照'}/{props.belongPeopleInfo.authorIdCard} +
+
+
+ {/* 表格 */} + + + + ( + record.type === 'PERSONAL' ? '自然人' : '企业/组织' + )} + /> + ( + record.idCardType === 'ID_CARD' ? '身份证' : '营业执照' + )} + /> + + {/* */} + ( + + { + + // alert(record.projOwnerId); + + console.log('text:', text); + console.log('record:', record); + + setProjOwnerId(record.projOwnerId) + setbelongTitle('编辑所属者') + setBelongShow(record.type) + setIsNewBelongOpen(true) + // 发起请求给formBelong 表单赋值 + setCrcAccountShow(record.isCrcAccount == 1 ? '1' : '0') + formBelong.setFieldsValue({ + // 公司名 + authorName: record.name, + // 公司英文名 + nameEn: record.nameEn, + // 证件类型 + authorIdCardType: record.idCardType ? record.idCardType : 'BUSINESS_LICENSE', + // 证件号 + authorIdCard: record.idCardNo, + // 国籍 + // authorNation: '中国', + // 地区 + authorProvince: record.provinceCity ? record.provinceCity.split(',') : '', + // 成立日期 + // authorEstablishDate: record.gmtCreate ? dayjs(record.gmtCreate, 'YYYY-MM-DD') : '', + // 是否提供平台账号 + isCrcAccount: record.isCrcAccount == 1 ? '1' : '0', + // 个人/企业 + authorType: record.type, + // 密码 + crcAccountPassword: record.crcAccountPassword, + // 账号 + crcAccountUsername: record.crcAccountUsername + }) + }}>编辑 + | + { + // alert(record.projOwnerId); + del({ + messageApi, + url: `/api/proj-owner/remove/${record.projOwnerId}`, + onSuccess() { + messageApi.success('删除成功'); + getProjOwnerList() + } + }) + }}>删除 + | + { + setbelongTitle('查看所属者') + setIsNewBelongOpen(true) + // 发起请求给formBelong 表单赋值 + formBelong.setFieldsValue({ + // 公司名 + authorName: record.name, + // 公司英文名 + nameEn: record.nameEn, + // 证件类型 + authorIdCardType: record.idCardType ? record.idCardType : 'BUSINESS_LICENSE', + // 证件号 + authorIdCard: record.idCardNo, + // 国籍 + // authorNation: '中国', + // 地区 + authorProvince: record.provinceCity ? record.provinceCity.split(',') : '', + // 成立日期 + // authorEstablishDate: record.gmtCreate ? dayjs(record.gmtCreate, 'YYYY-MM-DD') : '', + // 是否提供平台账号 + isCrcAccount: record.isCrcAccount == 1 ? '1' : '0', + // 个人/企业 + authorType: record.type, + // 密码 + crcAccountPassword: record.crcAccountPassword, + // 账号 + crcAccountUsername: record.crcAccountUsername + }) + }}>查看 + + + )} + /> +
+ +
+
+ + +
+
+
+
+ + + {/* 选择创建/编辑/查看所属者弹框 */} + { + // }} + onOk={ + handleOk + + } + width={1280} + // 确认按钮样式 + okButtonProps={{ size: 'large', style: { display: belongTitle == '查看所属者' ? 'none' : 'block' } }} + // 返回按钮样式 + cancelButtonProps={{ size: 'large' }} + onCancel={() => { + setIsNewBelongOpen(false) + // setBelongShow('') + }} + > +
+
+ {belongTitle} +
+
+
{ + // setIsNewBelongOpen(true); + }} + autoComplete="off" + > + + +
+
请选择知识产权所属者类型:
+ + + + 企业/组织 + 自然人 + + +
+ +
+ {/* lyp */} + {/* {if(formBelong.getFieldValue('authorType')=='ORGANIZATION'){ + return( + + ) + }else{ + return + }} */} + {belongShow == '' ? <> : <> + +
+ {/*
姓名或公司名称:
*/} +
{belongShow == 'PERSONAL' ? '姓名' : '公司名称'}
+ + + // label="姓名或公司名称" + name="authorName" + rules={[{ required: true, message: belongShow == 'PERSONAL' ? '请输入姓名' : '请输入公司名称' }]} + > + + +
+ + + +
+
{belongShow == 'PERSONAL' ? '英文名' : '公司英文名称'}
+ + + // label="公司英文名" + name="nameEn" + // rules={[{ required: true, message: belongShow == 'PERSONAL' ? '请输入英文名' : '请输入公司英文名称' }]} + > + + +
+ + + + +
+ + +
+
证件类型:
+ + + name="authorIdCardType" + > + + +
+ + +
} + + + +
+
省市:
+ + + // label="省市" + name="authorProvince" + rules={[{ required: true, message: '请选择省市' }]} + > + { + const targetOption = selectedOptions[selectedOptions.length - 1]; + // console.log(targetOption.id); + + listArea(targetOption.id).then(data => { + targetOption.children = data.map(item => { + return { + value: item.name, + label: item.name, + isLeaf: true, //二级判断这个 以前不是 以前是 !item.isParent + id: item.id, + pId: item.pId + } + }); + setAreaArray([ + ...areaArray + ]) + }); + + }} + + placeholder="请选择省市" + changeOnSelect + disabled={belongTitle == '查看所属者' ? true : false} + /> + + +
+ + +
+ + +
+
是否愿意提供中国版权登记业务平台的账号?
+ + + // label="是否愿意提供中国版权登记业务平台的账号?" + name="isCrcAccount" + rules={[ + { + required: true, + message: '请选择请选择知识产权所属者类型', + } + ]} + style={{ marginTop: '22px', marginLeft: '24px' }} + + > + + + + + +
+ + + +
+ + +
+ 提供账号的好处为:可以以知识产权所属者的身份在中国版权登记业务平台上进行软著资料的提交。如果不提供我们将以代理商的身份替知识产权所属者进行提供。提供中国版权登记业务平台账号,会提高审核速度。 +
+ + +
+ + +
+
中国版权登记业务平台用户名
+ + // label="中国版权登记业务平台用户名" + name="crcAccountUsername" + rules={[ + ({ getFieldValue }) => ({ + validator(_, value) { + + if (getFieldValue('isCrcAccount') === '1') { + if (!value) { + return Promise.reject('请输入账号'); + } + } + return Promise.resolve(); + }, + }), + ]} + + > + + +
+ + +
+
中国版权登记业务平台密码
+ + // label="中国版权登记业务平台密码" + name="crcAccountPassword" + rules={[ + ({ getFieldValue }) => ({ + validator(_, value) { + if (getFieldValue('isCrcAccount') === '1') { + if (!value) { + return Promise.reject('请输入密码'); + } + } + return Promise.resolve(); + }, + }), + ]} + + > + + +
+ +
+
+
+
+ +
+ +
+ + + ) + +} diff --git a/src/components/LoginPage/LoginPage.tsx b/src/components/LoginPage/LoginPage.tsx index dee6403..d51005e 100644 --- a/src/components/LoginPage/LoginPage.tsx +++ b/src/components/LoginPage/LoginPage.tsx @@ -501,7 +501,7 @@ export default function ProjConfigLoginpage(props: any) { key={item.loginpageId} id={item.loginpageId} title={item.mainTitle} - imgs={item.bgImgs} + imgs={item.previewImgs} selected={item.loginpageId == selectedLoginpageId} handleClick={() => { setSelectedLoginpageId(item.loginpageId); diff --git a/src/components/LoginPageShow/LoginPageShow.tsx b/src/components/LoginPageShow/LoginPageShow.tsx index 712d720..e67093b 100644 --- a/src/components/LoginPageShow/LoginPageShow.tsx +++ b/src/components/LoginPageShow/LoginPageShow.tsx @@ -465,7 +465,7 @@ export default function ProjConfigLoginpage(props:any) { key={item.loginpageId} id={item.loginpageId} title={item.mainTitle} - imgs={item.bgImgs} + imgs={item.previewImgs} selected={item.loginpageId == selectedLoginpageId} // handleClick={() => { // setSelectedLoginpageId(item.loginpageId); diff --git a/src/components/card/CardProj.tsx b/src/components/card/CardProj.tsx index 6d62fe7..874e231 100644 --- a/src/components/card/CardProj.tsx +++ b/src/components/card/CardProj.tsx @@ -22,8 +22,10 @@ import useMessage from "antd/es/message/useMessage"; import setImg from '../../static/right/set.png' import orderImg from '../../static/right/order.png' import menuImg from '../../static/right/menu.png' -import LoginPage from '../../components/LoginPage/LoginPage.tsx' -import LoginPageShow from '../../components/LoginPageShow/LoginPageShow.tsx' +// import LoginPage from '../../components/LoginPage/LoginPage.tsx' +import LoginPage from '../../route/proj/edit/ProjConfigLoginpage.tsx' +// import LoginPageShow from '../../components/LoginPageShow/LoginPageShow.tsx' +import LoginPageShow from '../../route/proj/edit/ProjConfigLoginpageShow.tsx' import SoftwareManagement from '../../route/proj/edit/ProjConfigModList.tsx' import SoftwareManagementShow from '../../route/proj/edit/ProjConfigModListShow.tsx' diff --git a/src/components/card/CardProjType.tsx b/src/components/card/CardProjType.tsx index ed44755..0c39d1c 100644 --- a/src/components/card/CardProjType.tsx +++ b/src/components/card/CardProjType.tsx @@ -8,7 +8,7 @@ import serveImg from '../../static/serve.png' import useImg from '../../static/use.png' import leftImg from '../../static/createPro/left.png' export default function CardProjType(props: ICardProj) { - + const height = window.innerHeight - 170; const [chargeAmount, setChargeAmount] = useState(0); const [pkg, setPkg] = useState(false); const [videoDemo, setVideoDemo] = useState(false); @@ -97,29 +97,29 @@ export default function CardProjType(props: ICardProj) { } const renderBuyBtn = () => { - - return props.buyArray.map((buy, index) => { - return ( -
-
{buy.label}{(buy.price + chargeAmount) / 100} 元
- {/*
*/} -
- -
+ disabled={props.isClickable == 1 ? false : true} + >购买
- ) - }) - + + ) + }) + } @@ -177,19 +177,21 @@ export default function CardProjType(props: ICardProj) { return ( -
-
- {/*
*/} -
-
{props.head}
-
-
-
{renderLines()}
-
{renderNew()}
- {renderCharge()} + +
+
+ {/*
*/} +
+
{props.head}
+
+
+
{renderLines()}
+
{renderNew()}
+ {renderCharge()} +
+
{renderBuyBtn()}
-
{renderBuyBtn()}
-
+ ) } \ No newline at end of file diff --git a/src/layout/Type/statedata.d.ts b/src/layout/Type/statedata.d.ts index 205afc8..fe4a95e 100644 --- a/src/layout/Type/statedata.d.ts +++ b/src/layout/Type/statedata.d.ts @@ -6,11 +6,14 @@ interface BelongDataType { idCardNo: string idCardType: string isCrcAccount: number - name: "Lam On Kay" + name: string nameEn: string projOwnerId: string provinceCity: string type: string + // authorCrcAccount?:srting + // authorId?:string + // authorProvinceCity?:string } interface ContactDataType { csaNo: string diff --git a/src/route/proj/ProjNew.tsx b/src/route/proj/ProjNew.tsx index 659bf7b..d547b0b 100644 --- a/src/route/proj/ProjNew.tsx +++ b/src/route/proj/ProjNew.tsx @@ -3,14 +3,17 @@ import { useNavigate, useParams, useSearchParams } from "react-router-dom"; import { Button, Flex, Form, Input, message, Modal, Spin, Checkbox } from "antd"; import { useContext, useEffect, useState } from "react"; import { get, post } from "../../util/AjaxUtils.ts"; -import { +import { // IProjCharge, - ProjAdditionalType, ProjChargeType } from "../../interfaces/proj/IProj.ts"; + ProjAdditionalType, ProjChargeType +} from "../../interfaces/proj/IProj.ts"; import { GlobalDispatchContext, reloadUser } from "../../context/GlobalContext.ts"; +import BelongPeople from '../../components/BelongPeople/BelongPeople.tsx' // const { TextArea } = Input; type ProjInfo = { projName: string; projIntroduction: string; + belongPeople: string }; export default function ProjNew() { @@ -28,18 +31,39 @@ export default function ProjNew() { const [projInfo, setProjInfo] = useState({ projName: '', projIntroduction: '', + belongPeople: '' }); + const [form] = Form.useForm(); + // 所属者弹窗 + const [belongModal, setBelongModal] = useState(false) + // const [belongPeopleName ,setBelongPeopleName] = useState('') + // // 暂存一个信息过度 + // const [newBelongPeopleName,setNewBelongPeopleName] = useState('') + const [belongPeopleInfo, setBelongPeopleInfo] = useState({ + authorName: '', + authorType: '', + authorIdCardType: '', + authorIdCard: '', + authorCrcAccount:'', + authorId:'', + authorProvinceCity:'' + }) + const setValue = (value:string) => { + form.setFieldsValue({ + belongPeople:value + }) + } + const [createProjId, setCreateProjId] = useState(''); const oldlistProjChargeAdditional: string[] = []; const [listProjChargeAdditional, setlistProjChargeAdditional] = useState([]) - useEffect(() => { get({ messageApi: messageApi, url: '/api/proj/charge/get', onSuccess({ data }) { console.log(data); - + const charge = data as any; // console.log('创建页price',charge.proj.materialAgent); @@ -107,6 +131,7 @@ export default function ProjNew() {
- +
+
+
+ 知识产权所属者* +
+ + name="belongPeople" + rules={[{ required: true, message: '请选择/创建知识产权所属者' }]} + > + + + +
{ + setBelongModal(true) + }}>选择
+
- 我同意平台 { + 我同意平台 { window.open('https://www.aimzhu.com/Seda.html') }}>《软件委托开发协议》 @@ -193,7 +234,8 @@ export default function ProjNew() { open={isCreateModalOpen} onOk={() => { // console.log('最终',listProjChargeAdditional); - + console.log(belongPeopleInfo.authorId); + setIsCreateModalOpen(false); post({ messageApi, @@ -201,7 +243,15 @@ export default function ProjNew() { body: { projName: projInfo.projName, projChargeType: pathParams.projChargeType, - listProjChargeAdditional: listProjChargeAdditional + listProjChargeAdditional: listProjChargeAdditional, + + authorCrcAccount:belongPeopleInfo.authorCrcAccount, + authorId:belongPeopleInfo.authorId, + authorIdCard:belongPeopleInfo.authorIdCard, + authorIdCardType:belongPeopleInfo.authorIdCardType, + authorName:belongPeopleInfo.authorName, + authorProvinceCity:belongPeopleInfo.authorProvinceCity, + authorType:belongPeopleInfo.authorType }, onBefore() { setLoading(true); @@ -241,6 +291,20 @@ export default function ProjNew() { }}>
项目创建成功,开始编辑项目?
+ { + setBelongModal(false) + + }}> + + + ) diff --git a/src/route/proj/edit/ProjConfigLoginpage.tsx b/src/route/proj/edit/ProjConfigLoginpage.tsx index 7aefa53..14993c2 100644 --- a/src/route/proj/edit/ProjConfigLoginpage.tsx +++ b/src/route/proj/edit/ProjConfigLoginpage.tsx @@ -12,13 +12,15 @@ import { Spin, Upload, UploadFile, - UploadProps + UploadProps, + Image, + // Pagination } from "antd"; import { useParams } from "react-router-dom"; import { useEffect, useState } from "react"; -import { DevUserId, get, downloadUrl, put, uploadImageUrl, post } from "../../../util/AjaxUtils.ts"; +import { DevUserId, get, downloadUrl, put, uploadImageUrl, post, Axios } from "../../../util/AjaxUtils.ts"; import { Button, Form } from 'antd'; -import CardImgSelect, { } from "../../../components/card/CardImgSelect.tsx"; +// import CardImgSelect, { } from "../../../components/card/CardImgSelect.tsx"; type FormFieldType = { loginpageId: string; @@ -46,8 +48,13 @@ export default function ProjConfigLoginpage(props: any) { const height = window.innerHeight - 200; const [loginpageArray, setloginpageArray] = useState([]) const [selectedLoginpageId, setSelectedLoginpageId] = useState(''); - // 若无选择的背景 默认的第一个图片的背景 - // const [defaultId, setDefaultId] = useState('') + // 选择页面id和img(初始化用) + const [modalId,setModalId] = useState('') + const [modalImg,setModalImg] = useState('') + const [selectImgs, setSelectImgs] = useState('') + const [projId] = useState(pathParams.projId ? pathParams.projId : props.projId) + // 选择登陆页面弹窗 + const [selectImgModal,setSelectImgModal] = useState(false) const beforeUpload = (file: FileType) => { const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; if (!isJpgOrPng) { @@ -59,7 +66,7 @@ export default function ProjConfigLoginpage(props: any) { const preview = () => { post({ messageApi, - url: `/api/proj/preview/${pathParams.projId}`, + url: `/api/proj/preview/${projId}`, body: { // projId: pathParams.projId, loginpageId: form.getFieldValue('loginpageId'), @@ -85,6 +92,23 @@ export default function ProjConfigLoginpage(props: any) { setloginpageArray(data) // setDefaultId(data[0].loginpageId) // upLoginPage(data[0].loginpageId) + // 当有返回id时获取图片的previewImgs + const newData = data + get({ + messageApi, + url: `/api/proj/get/config-loginpage/${projId}`, + onSuccess({ data }) { + if (data.loginpageId) { + // lyp + const imgs = newData.filter((item: { loginpageId: any; }) => item.loginpageId === data.loginpageId) + // ?.previewImgs; + setSelectImgs(imgs[0].previewImgs) + // console.log('lyp',imgs); + + } + + } + }) } }) } @@ -99,7 +123,10 @@ export default function ProjConfigLoginpage(props: any) { // setDefaultId(data[0].loginpageId) // upLoginPage(data[0].loginpageId) form.setFieldValue('loginpageId', data[0].loginpageId); + setSelectImgs(data[0].previewImgs) setSelectedLoginpageId(data[0].loginpageId); + setModalId(data[0].loginpageId) + // 选择页面id preview() } }) @@ -126,12 +153,18 @@ export default function ProjConfigLoginpage(props: any) { getlistLoginpage() get({ messageApi, - url: `/api/proj/get/config-loginpage/${pathParams.projId}`, + url: `/api/proj/get/config-loginpage/${projId}`, onSuccess({ data }) { console.log('寻找被选中id', data); if (data.loginpageId) { form.setFieldValue('loginpageId', data.loginpageId); setSelectedLoginpageId(data.loginpageId); + // lyp + // const imgs = loginpageArray.filter(item => item.loginpageId === data.loginpageId) + // ?.previewImgs; + // setSelectImgs(imgs[0].previewImgs) + + setModalId(data.loginpageId) form.setFieldValue('subTitle', data.subTitle); form.setFieldValue('copyrightOwner', data.copyrightOwner); form.setFieldValue('copyrightDate', data.copyrightDate); @@ -171,7 +204,6 @@ export default function ProjConfigLoginpage(props: any) { } }) - }, []) return ( @@ -185,15 +217,15 @@ export default function ProjConfigLoginpage(props: any) { {title: '登录界面设置'}, ]} /> */} -
+
- +