This commit is contained in:
lyp 2025-07-09 11:58:55 +08:00
parent 100fbcd7d3
commit d46d2b2f23
12 changed files with 580 additions and 116 deletions

View File

@ -149,7 +149,7 @@ export default function File(props: any) {
const res: any = await getFileTypeByIds({ const res: any = await getFileTypeByIds({
ids: ids ids: ids
}) })
console.log(res); // console.log(res);
const newUpFile = res.map((item: any) => { const newUpFile = res.map((item: any) => {
return { return {
uid: item.fileId, uid: item.fileId,
@ -443,7 +443,7 @@ export default function File(props: any) {
onFinish={(value) => { onFinish={(value) => {
console.log(value); // console.log(value);
// if (value.upFile && Array.isArray(value.upFile.fileList)) { // if (value.upFile && Array.isArray(value.upFile.fileList)) {
// const uids = value.upFile.fileList.map((file: any) => file.uid); // const uids = value.upFile.fileList.map((file: any) => file.uid);
// const uidString = uids.join(','); // const uidString = uids.join(',');

View File

@ -187,9 +187,20 @@ export const downloadAuthBook = () => aiShopRequest.get(`/aishop/api/assets/temp
export const trademarkTypeList = (params:any) => aiShopRequest.get(`/aishop/api/trademarktype/list-ztree`,{params}) export const trademarkTypeList = (params:any) => aiShopRequest.get(`/aishop/api/trademarktype/list-ztree`,{params})
// 商标类型查询 // 商标类型查询
export const trademarkTypeSearch = (params:any) => aiShopRequest.get(`/aishop/api/trademarktype/list-ztree-query`,{params}) export const trademarkTypeSearch = (params:any) => aiShopRequest.get(`/aishop/api/trademarktype/list-ztree-query`,{params})
// 我的方案列表
export const trademarkSchemeList = () => aiShopRequest.get(`/aishop/api/trademark-types/list-repository`)
// 保存我得方案
export const saveTrademarkScheme = (params:any) => aiShopRequest.post(`/aishop/api/trademark-types/save-repository`,params)
//删除方案
export const deleteTrademarkScheme = (typesId:any) => aiShopRequest.delete(`/aishop/api/trademark-types/remove-repository/${typesId}`)
// 第二步选择商标类别提交 // 第二步选择商标类别提交
export const uptrademarkList = (trademarkId:any,params:any) => aiShopRequest.post(`/aishop/api/trademark/save2/${trademarkId}`,params) export const uptrademarkList = (trademarkId:any,params:any) => aiShopRequest.post(`/aishop/api/trademark/save2/${trademarkId}`,params)
// 第三步 // 第三步
// 新增商标申请人信息 // 新增商标申请人信息
export const addTrademarkApplicant = (params:any) => aiShopRequest.post(`/aishop/api/trademarkuser/save`,params) export const addTrademarkApplicant = (params:any) => aiShopRequest.post(`/aishop/api/trademarkuser/save`,params)

View File

@ -180,7 +180,7 @@ export default function AppElectron() {
// background: 'red', // background: 'red',
color: '#007FFF', color: '#007FFF',
position: 'relative', position: 'relative',
display: record.waitCorrectionCount > 0 && record.appOrderStatus != '5' ? 'unset' : 'none', display: record.checkStatus == '2' && record.appOrderStatus != '5'? 'unset' : 'none',
}} }}
onClick={() => { onClick={() => {
@ -191,6 +191,9 @@ export default function AppElectron() {
}} }}
> >
<div style={{
display: record.waitCorrectionCount > 0 ? 'unset' : 'none',
}}>
<div style={{ <div style={{
position: 'absolute', position: 'absolute',
@ -210,6 +213,7 @@ export default function AppElectron() {
{record.waitCorrectionCount} {record.waitCorrectionCount}
</div> </div>
</div> </div>
</div>
<div style={{ <div style={{
marginLeft: 10, marginLeft: 10,
cursor: 'pointer', cursor: 'pointer',

View File

@ -8,11 +8,43 @@ import useMessage from "antd/es/message/useMessage";
// import './File.css' // import './File.css'
const { TextArea } = Input; const { TextArea } = Input;
export default function File(props: any) { export default function File(props: any) {
const [disabled, setDisabled] = useState(false) // 是否禁用
// 获取上传过的文件类型
const getUpFileTypeByIdsArray = async (ids: string) => {
try {
const res: any = await getFileTypeByIds({
ids: ids
})
// console.log(res);
const newUpFile = res.map((item: any) => {
return {
uid: item.fileId,
name: item.fileName,
status: 'done',
url: showImage(item.fileId, false)
}
})
// console.log(newUpFile, 'newUpFile');
setUpFileArray(newUpFile)
} catch (error: any) {
if (error.response) {
const data = error.response.data;
messageApi.open({
type: 'error',
content: data.msg ? data.msg : `${data.path}(${data.status})`,
});
} else {
console.error(error)
}
}
}
const [upFileArray, setUpFileArray] = useState<any>([]) // 上传的文件数组 const [upFileArray, setUpFileArray] = useState<any>([]) // 上传的文件数组
// 自定义验证函数 // 自定义验证函数
const validateContentOrFile = (_rule: any, _value: any, callback: (error?: string) => void, form: any) => { const validateContentOrFile = (_rule: any, _value: any, callback: (error?: string) => void, form: any) => {
const { upCorrectionRemark, upFile } = form.getFieldsValue(); const { upCorrectionRemark, upFile } = form.getFieldsValue();
if (upCorrectionRemark || (upFile && Array.isArray(upFile.fileList) && upFile.fileList.length > 0)) { if (upCorrectionRemark || upFile) {
callback(); callback();
} else { } else {
callback('内容和附件至少需要填写或上传一项'); callback('内容和附件至少需要填写或上传一项');
@ -28,11 +60,12 @@ export default function File(props: any) {
correctionFiles: params.correctionFiles, correctionFiles: params.correctionFiles,
correctionRemark: params.correctionRemark, correctionRemark: params.correctionRemark,
}) })
if (props.user == 'sell') { // if (props.user == 'sell') {
getSellSupplementList() // getSellSupplementList()
} else if (props.user == 'buy') { // } else if (props.user == 'buy') {
// getBuySupplementList()
// }
getBuySupplementList() getBuySupplementList()
}
props.upData() props.upData()
messageApi.open({ messageApi.open({
type: 'success', type: 'success',
@ -149,6 +182,41 @@ export default function File(props: any) {
// console.log(res); // console.log(res);
setDetailData(res) setDetailData(res)
await getFileTypeByIdsArray(res.correctionFiles) await getFileTypeByIdsArray(res.correctionFiles)
const userId = res.buyId;
if (userId) {
setDisabled(true)
const newData: any = await supplementDetail(userId)
// console.log('以补充材料', newData);
form.setFieldsValue({
upCorrectionRemark: newData.correctionRemark, // 内容
})
if (newData.correctionFiles) {
getUpFileTypeByIdsArray(newData.correctionFiles)
// const newArray:any = getFileTypeByIds({
// ids: newData.correctionFiles
// })
// console.log(newArray, 'newArray');
// console.log('有补充资料');
// // 循环newArray 形成新
// const newUpFile = newArray.map((item:any)=>{
// return {
// uid: item.fileId,
// name: item.fileName,
// status: 'done',
// url: 'www.baidu.com'
// }
// })
// console.log(newUpFile, 'newUpFile');
}
} else {
setDisabled(false)
}
} catch (error: any) { } catch (error: any) {
@ -254,6 +322,9 @@ export default function File(props: any) {
setCorrectionId(record.correctionId) setCorrectionId(record.correctionId)
getSupplementDetail(record.correctionId) getSupplementDetail(record.correctionId)
setIsModalVisible(true) setIsModalVisible(true)
// 清空上传的文件数组
setUpFileArray([])
// 清空表单 // 清空表单
form.resetFields(); form.resetFields();
// setCorrectionType(record.correctionType) // setCorrectionType(record.correctionType)
@ -372,10 +443,10 @@ export default function File(props: any) {
// }) // })
// console.log(upFileArray); // console.log(upFileArray);
// 将upFileArray 数组周末和每项的response里的data 里的 fileId 拼接成一个字符串,用逗号隔开 // 将upFileArray 数组周末和每项的response里的data 里的 fileId 拼接成一个字符串,用逗号隔开
const uids = upFileArray.map((file: any) => file.response.data.fileId).join(','); // const uids = upFileArray.map((file: any) => file.response.data.fileId).join(',');
// console.log('提取的 uid 字符串:', uids); // console.log('提取的 uid 字符串:', uids);
submitData({ submitData({
correctionFiles: uids, correctionFiles:value.upFile ? value.upFile : '',
correctionRemark: value.upCorrectionRemark, correctionRemark: value.upCorrectionRemark,
}) })
@ -408,6 +479,7 @@ export default function File(props: any) {
width: 900, width: 900,
}} }}
disabled={disabled}
placeholder='请输入需要补充内容' placeholder='请输入需要补充内容'
></TextArea> ></TextArea>
</Form.Item> </Form.Item>
@ -436,11 +508,33 @@ export default function File(props: any) {
<Upload <Upload
name="file" name="file"
disabled={disabled}
action={uploadFileUrl()} action={uploadFileUrl()}
defaultFileList={upFileArray} fileList={upFileArray}
onChange={(info) => { onChange={(info) => {
setUpFileArray(info.fileList) // setUpFileArray(info.fileList)
// console.log(info.fileList); // console.log(info.fileList);
const { fileList } = info;
const newFileArray = fileList.map((file) => {
if (file.status === 'done' && file.response) {
return {
uid: file.response.data.fileId,
name: file.response.data.fileName,
status: 'done',
url: showImage(file.response.data.fileId, false)
};
}
return file;
});
setUpFileArray(newFileArray);
// console.log(newFileArray);
const uids = newFileArray.map((file: any) => file.uid).join(',');
// console.log(uids);
// 给form 赋值
form.setFieldsValue({
upFile: uids,
})
}} }}
@ -464,12 +558,18 @@ export default function File(props: any) {
justifyContent: 'flex-end', justifyContent: 'flex-end',
gap: 10, gap: 10,
// marginTop: 20 // marginTop: 20
}}>
<div style={{
display: disabled ? 'none' : 'unset',
}}> }}>
<Button onClick={() => { <Button onClick={() => {
setIsModalVisible(false) setIsModalVisible(false)
form.resetFields(); form.resetFields();
}}></Button> }}></Button>
<Button type="primary" htmlType="submit" ></Button> <Button type="primary" htmlType="submit" style={{
marginLeft: 10,
}} ></Button>
</div>
</div> </div>
</Form.Item> </Form.Item>

View File

@ -82,7 +82,7 @@ export default function TrademarkAiEdit() {
try { try {
setLoading(true) setLoading(true)
const res: any = await trademarkDetail(trademarkId) const res: any = await trademarkDetail(trademarkId)
console.log('详情', res); // console.log('详情', res);
if (res.trademarkProgress < 6) { if (res.trademarkProgress < 6) {
setEditProcess(res.trademarkProgress + 1) setEditProcess(res.trademarkProgress + 1)
@ -109,8 +109,8 @@ export default function TrademarkAiEdit() {
trademarkTypeIds: res.trademarkTypeIds trademarkTypeIds: res.trademarkTypeIds
}) })
setEditThreeData({ setEditThreeData({
trademarkUserId: res.trademarkUserDTO.trademarkUserId, trademarkUserId: res.trademarkUserDTO?res.trademarkUserDTO.trademarkUserId:'',
name: res.trademarkUserDTO.name name: res.trademarkUserDTO?res.trademarkUserDTO.name:''
}) })
setEditFiveData({ setEditFiveData({
trademarkFileDepute: res.trademarkFileDepute trademarkFileDepute: res.trademarkFileDepute
@ -136,8 +136,8 @@ export default function TrademarkAiEdit() {
useEffect(() => { useEffect(() => {
console.log('state', state); // console.log('state', state);
console.log('trademarkId', trademarkId); // console.log('trademarkId', trademarkId);
// console.log('trademarkId', trademarkId); // console.log('trademarkId', trademarkId);
// console.log('trademarkId', state.trademarkId); // console.log('trademarkId', state.trademarkId);
// 如果存在id则为编辑状态否则为新建状态 获取到第几步和详情数据 // 如果存在id则为编辑状态否则为新建状态 获取到第几步和详情数据

View File

@ -388,7 +388,7 @@ export default function TrademarkMall() {
style={{ style={{
color: 'rgb(136, 185, 233)', color: 'rgb(136, 185, 233)',
}} }}
></span> : '未知' ></span> : '未知'
} }
</div> </div>
) )
@ -467,7 +467,7 @@ export default function TrademarkMall() {
}}>{ }}>{
record.trademarkStatus == '2' || record.trademarkStatus == '3' ? '查看' : '编辑' record.trademarkStatus == '2' || record.trademarkStatus == '3'|| record.trademarkStatus == '4' || record.trademarkStatus == '5'|| record.trademarkStatus == '6'|| record.trademarkStatus == '7'|| record.trademarkStatus == '8'|| record.trademarkStatus == '9'? '查看' : '编辑'
} }
</span> </span>
<span style={{ <span style={{
@ -652,11 +652,13 @@ export default function TrademarkMall() {
setLoading(true) setLoading(true)
setData([]) setData([])
const res: any = await trademarkList({ const res: any = await trademarkList({
keywords: state && state.keywords ? state.keywords : '', keywords: state && state.keywords ? state.keywords : '',
trademarkStatus:state && state.trademarkStatus ? state.trademarkStatus : '',
rows: 10, rows: 10,
page: page page: page
}) })
console.log('结果', res); // console.log('结果', res);
setData(res.rows) setData(res.rows)
setTotal(res.total) setTotal(res.total)
setLoading(false) setLoading(false)
@ -863,7 +865,7 @@ export default function TrademarkMall() {
<div style={{ <div style={{
display: correctionReply == '0' && disabled ? 'none' : 'unset' display: correctionReply == '0' && disabled ? 'none' : 'unset'
}}> }}>
<div className='editModal-title' style={{ marginTop: 30 }}> <div className='editModal-title' style={{ marginTop: 30, }}>
<div className='editModal-title-box'></div> <div className='editModal-title-box'></div>
<div className='editModal-title-name'></div> <div className='editModal-title-name'></div>
</div> </div>
@ -915,7 +917,7 @@ export default function TrademarkMall() {
}} }}
placeholder='请输入需要补充内容' placeholder='请输入需要补充内容'
disabled={correctionReply == '0'} disabled={correctionReply == '0'||disabled}
></TextArea> ></TextArea>
</Form.Item> </Form.Item>
@ -955,9 +957,8 @@ export default function TrademarkMall() {
// console.log(info.fileList); // console.log(info.fileList);
}} }}
headers={{ 'Auth': `Bearer ${token}` }} headers={{ 'Auth': `Bearer ${token}` }}
disabled={correctionReply == '0'} disabled={correctionReply == '0'|| disabled}
> >
<Button icon={<UploadOutlined />}></Button> <Button icon={<UploadOutlined />}></Button>
</Upload> </Upload>

View File

@ -3,6 +3,7 @@ import { Button, Radio, Form, Input, Upload, message, Image, Spin, Modal } from
import './EditOne.css' import './EditOne.css'
import { uploadFileUrl, showImage, uploadImageAddUrl, downloadAuthBookUrl, uploadDeputeFileUrl } from '../../../../request/request' import { uploadFileUrl, showImage, uploadImageAddUrl, downloadAuthBookUrl, uploadDeputeFileUrl } from '../../../../request/request'
import { trademarkBaseInfo, aiGenerateImage, fileDetail } from '../../../../request/api' import { trademarkBaseInfo, aiGenerateImage, fileDetail } from '../../../../request/api'
// import { geSelectUrl, getFileUrl } from '../../../../util/AjaxUtils'
import { import {
// DeleteOutlined, // DeleteOutlined,
LoadingOutlined, LoadingOutlined,
@ -605,7 +606,7 @@ export default function EditOne(props: any) {
// console.log('传递one的数据', props.editOneData); // console.log('传递one的数据', props.editOneData);
const { trademarkName, trademarkDescription, trademarkPhoto, trademarkPhotoType, trademarkType, trademarkFile, trademarkFile1, trademarkFile2 } = props.editOneData; const { trademarkName, trademarkDescription, trademarkPhoto, trademarkPhotoType, trademarkType, trademarkFile, trademarkFile1, trademarkFile2 } = props.editOneData;
if (trademarkType) { if (trademarkType) {
console.log(1); // console.log(1);
// 赋值方式 // 赋值方式
setGoodsType(trademarkType) setGoodsType(trademarkType)
@ -700,7 +701,11 @@ export default function EditOne(props: any) {
! !
</div> </div>
<div> <div>
<div>使<a></a>"或"<a></a>"</div> <div>使<span style={{
color: 'var(--color-blue)'
}}></span>"或"<span style={{
color: 'var(--color-blue)'
}}></span>"</div>
<div style={{ <div style={{
marginTop: '5px' marginTop: '5px'
}}>;</div> }}>;</div>
@ -732,7 +737,8 @@ export default function EditOne(props: any) {
cursor: 'pointer', cursor: 'pointer',
}} }}
onClick={() => { onClick={() => {
window.open('https://www.baidu.com/') // geSelectUrl()
window.open('https://www.aimzhu.com/operator/route/agreementportal/view?agreementId=061c65f2-a5da-48a0-b5ac-6bffc1b36eca&title=%E5%95%86%E6%A0%87%E7%B1%BB%E5%9E%8B%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9')
}} }}
>?</a> >?</a>
</div> </div>
@ -874,7 +880,7 @@ export default function EditOne(props: any) {
}}> }}>
20211210 <span className='pointerBlue' 20211210 <span className='pointerBlue'
onClick={() => { onClick={() => {
window.open('https://www.baidu.com/') window.open('https://www.aimzhu.com/operator/route/agreementportal/view?agreementId=3ffdc2e5-c828-4ab6-ac21-917388a7b2a5&title=%E5%95%86%E6%A0%87%E5%8F%82%E8%80%83%E6%96%87%E6%A1%A3')
}} }}
></span> ></span>
</div> </div>
@ -956,6 +962,7 @@ export default function EditOne(props: any) {
</TextArea> </TextArea>
</Form.Item> </Form.Item>
<div style={{ <div style={{
display: generateType == '1' && generateImgId == '' ? 'unset' : 'none', display: generateType == '1' && generateImgId == '' ? 'unset' : 'none',
width: 200, width: 200,
@ -1109,7 +1116,7 @@ export default function EditOne(props: any) {
message.error('请先输入商标名称') message.error('请先输入商标名称')
return; return;
} else { } else {
console.log('正在生成'); // console.log('正在生成');
// try { // try {
// // 创建一个 canvas 元素 // // 创建一个 canvas 元素
// const canvas = document.createElement('canvas'); // const canvas = document.createElement('canvas');
@ -1188,7 +1195,7 @@ export default function EditOne(props: any) {
const res: any = await aiGenerateImage({ const res: any = await aiGenerateImage({
title: formA.getFieldValue('trademarkName'), title: formA.getFieldValue('trademarkName'),
}); });
console.log('结果', res); // console.log('结果', res);
setGenerateImgId(res.fileId); setGenerateImgId(res.fileId);
formA.setFieldsValue({ formA.setFieldsValue({
trademarkPhoto: res.fileId trademarkPhoto: res.fileId
@ -1214,7 +1221,7 @@ export default function EditOne(props: any) {
marginLeft: '10px', marginLeft: '10px',
width: 150, width: 150,
display: generateType == '1' ? 'unset' : 'none', display: generateType == '1' ? 'unset' : 'none',
}}></Button> }}>{generateImgId ? '重新生成' : '立即生成'}</Button>
</div> </div>
</Form> </Form>

View File

@ -1,7 +1,7 @@
import { useState, useEffect } from 'react' import { useState, useEffect } from 'react'
import { Button, Modal, Image, message, Spin } from 'antd' import { Button, Modal, Image, message, Spin } from 'antd'
import { showImage } from '../../../../request/request' import { showImage } from '../../../../request/request'
import { uploadSix } from '../../../../request/api' import { uploadSix, fileDetail } from '../../../../request/api'
import './EditSix.css' import './EditSix.css'
export default function EditSix(props: any) { export default function EditSix(props: any) {
const height = window.innerHeight - 350; const height = window.innerHeight - 350;
@ -39,9 +39,57 @@ export default function EditSix(props: any) {
const [editFiveData, setEditFiveData] = useState<any>({ const [editFiveData, setEditFiveData] = useState<any>({
trademarkFileDepute: '', trademarkFileDepute: '',
}) })
const [trademarkFile, setTrademarkFile] = useState<any>({}) //姓名授权书类型
const [trademarkFile1, setTrademarkFile1] = useState<any>({}) //肖像授权书类型
const [trademarkFile2, setTrademarkFile2] = useState<any>({}) //期刊证明类型
const getTrademarkFile = async (id: string) => {
try {
const res: any = await fileDetail(id)
console.log('姓名授权书详情', res);
setTrademarkFile(res[0])
} catch (error: any) {
if (error.response) {
const data = error.response.data;
message.error(data.msg ? data.msg : `${data.path}(${data.status})`)
} else {
console.error(error)
}
}
}
const getTrademarkFile1 = async (id: string) => {
try {
const res: any = await fileDetail(id)
console.log('肖像授权书详情', res);
setTrademarkFile1(res[0])
} catch (error: any) {
if (error.response) {
const data = error.response.data;
message.error(data.msg ? data.msg : `${data.path}(${data.status})`)
} else {
console.error(error)
}
}
}
const getTrademarkFile2 = async (id: string) => {
try {
const res: any = await fileDetail(id)
console.log('期刊详情', res);
setTrademarkFile2(res[0])
} catch (error: any) {
if (error.response) {
const data = error.response.data;
message.error(data.msg ? data.msg : `${data.path}(${data.status})`)
} else {
console.error(error)
}
}
}
useEffect(() => { useEffect(() => {
if (props.editOneData) { if (props.editOneData) {
setEditOneData(props.editOneData) setEditOneData(props.editOneData)
// console.log('网址',showImage(props.editOneData.trademarkFile, false));
} }
if (props.editTwoData) { if (props.editTwoData) {
setEditTwoData(props.editTwoData) setEditTwoData(props.editTwoData)
@ -52,6 +100,15 @@ export default function EditSix(props: any) {
if (props.editFiveData) { if (props.editFiveData) {
setEditFiveData(props.editFiveData) setEditFiveData(props.editFiveData)
} }
if (props.editOneData.trademarkFile) {
getTrademarkFile(props.editOneData.trademarkFile)
}
if (props.editOneData.trademarkFile1) {
getTrademarkFile1(props.editOneData.trademarkFile1)
}
if (props.editOneData.trademarkFile2) {
getTrademarkFile2(props.editOneData.trademarkFile2)
}
console.log('最终信息接收', props); console.log('最终信息接收', props);
}, [props]) }, [props])
@ -96,6 +153,9 @@ export default function EditSix(props: any) {
}}> }}>
<div className='editSixContent' > <div className='editSixContent' >
<div className='editSixTitle'> :</div> <div className='editSixTitle'> :</div>
<div style={{
display: trademarkFile.fileType != 'pdf' ? 'unset' : 'none'
}}>
<div className='editSixImage' > <div className='editSixImage' >
<Image src={showImage(editOneData.trademarkFile, false)} style={{ <Image src={showImage(editOneData.trademarkFile, false)} style={{
height: '150px', height: '150px',
@ -103,12 +163,29 @@ export default function EditSix(props: any) {
}}></Image> }}></Image>
</div> </div>
</div> </div>
<div style={{
display: trademarkFile.fileType == 'pdf' ? 'unset' : 'none'
}}>
<div style={{
color: 'var(--color-blue)',
cursor: 'pointer'
}}
onClick={() => {
window.open(showImage(editOneData.trademarkFile, false))
}}>
{trademarkFile.fileName}
</div>
</div>
</div>
</div> </div>
<div style={{ <div style={{
display: editOneData.trademarkFile1 ? 'unset' : 'none' display: editOneData.trademarkFile1 ? 'unset' : 'none'
}}> }}>
<div className='editSixContent' > <div className='editSixContent' >
<div className='editSixTitle'> :</div> <div className='editSixTitle'> :</div>
<div style={{
display: trademarkFile1.fileType != 'pdf' ? 'unset' : 'none'
}}>
<div className='editSixImage'> <div className='editSixImage'>
<Image src={showImage(editOneData.trademarkFile1, false)} style={{ <Image src={showImage(editOneData.trademarkFile1, false)} style={{
height: '150px', height: '150px',
@ -116,12 +193,29 @@ export default function EditSix(props: any) {
}}></Image> }}></Image>
</div> </div>
</div> </div>
<div style={{
display: trademarkFile1.fileType == 'pdf' ? 'unset' : 'none'
}}>
<div style={{
color: 'var(--color-blue)',
cursor: 'pointer'
}}
onClick={() => {
window.open(showImage(editOneData.trademarkFile1, false))
}}>
{trademarkFile1.fileName}
</div>
</div>
</div>
</div> </div>
<div style={{ <div style={{
display: editOneData.trademarkFile2 ? 'unset' : 'none' display: editOneData.trademarkFile2 ? 'unset' : 'none'
}}> }}>
<div className='editSixContent' > <div className='editSixContent' >
<div className='editSixTitle'> :</div> <div className='editSixTitle'> :</div>
<div style={{
display: trademarkFile2.fileType != 'pdf' ? 'unset' : 'none'
}}>
<div className='editSixImage'> <div className='editSixImage'>
<Image src={showImage(editOneData.trademarkFile2, false)} style={{ <Image src={showImage(editOneData.trademarkFile2, false)} style={{
height: '150px', height: '150px',
@ -129,6 +223,20 @@ export default function EditSix(props: any) {
}}></Image> }}></Image>
</div> </div>
</div> </div>
<div style={{
display: trademarkFile2.fileType == 'pdf' ? 'unset' : 'none'
}}>
<div style={{
color: 'var(--color-blue)',
cursor: 'pointer'
}}
onClick={() => {
window.open(showImage(editOneData.trademarkFile2, false))
}}>
{trademarkFile2.fileName}
</div>
</div>
</div>
</div> </div>
<div className='editSixContent' > <div className='editSixContent' >
<div className='editSixTitle'> :</div> <div className='editSixTitle'> :</div>
@ -216,7 +324,7 @@ export default function EditSix(props: any) {
</div> </div>
<div className='topLine'></div> <div className='topLine'></div>
<div style={{ <div style={{
display: props.trademarkStatus == '2' || props.trademarkStatus == '3' ? 'none' : 'unset' display: props.trademarkStatus == '2' || props.trademarkStatus == '3' || props.trademarkStatus == '4'|| props.trademarkStatus == '5'|| props.trademarkStatus == '6'|| props.trademarkStatus == '7'|| props.trademarkStatus == '8'|| props.trademarkStatus == '9'? 'none' : 'unset'
}}> }}>
<div style={{ <div style={{
marginTop: '8px', marginTop: '8px',
@ -264,7 +372,7 @@ export default function EditSix(props: any) {
</div> </div>
<div style={{ <div style={{
display: props.trademarkStatus == '3' ? 'unset' : 'none', display: props.trademarkStatus == '3' || props.trademarkStatus == '4' || props.trademarkStatus == '5' ||props.trademarkStatus == '6' || props.trademarkStatus == '7' || props.trademarkStatus == '8' || props.trademarkStatus == '9' ? 'unset' : 'none',
}}> }}>
<div style={{ <div style={{
display: 'flex', display: 'flex',
@ -275,7 +383,7 @@ export default function EditSix(props: any) {
fontSize: '18px', fontSize: '18px',
color: 'green', color: 'green',
}}> }}>
{props.trademarkStatus == '3' ? '已提交至商标局': props.trademarkStatus == '4' ? '不予受理': props.trademarkStatus == '5' ? '已受理' : props.trademarkStatus == '6' ? '已发初审公告' : props.trademarkStatus == '7' ? '部分驳回' : props.trademarkStatus == '8' ? '全部驳回' : props.trademarkStatus == '9' ? '已下证' : ''}
</div> </div>
</div> </div>

View File

@ -4,7 +4,8 @@ import {
// Collapse, Tree // Collapse, Tree
Input, Input,
message, message,
Spin Spin,
Modal,
} from 'antd' } from 'antd'
import { import {
SyncOutlined, SyncOutlined,
@ -12,7 +13,7 @@ import {
CloseOutlined CloseOutlined
} from '@ant-design/icons'; } from '@ant-design/icons';
// import { useParams } from 'react-router-dom'; // import { useParams } from 'react-router-dom';
import { trademarkTypeList, uptrademarkList, trademarkTypeSearch } from '../../../../request/api' import { trademarkTypeList, uptrademarkList, trademarkTypeSearch, trademarkSchemeList, saveTrademarkScheme, deleteTrademarkScheme } from '../../../../request/api'
const { Search } = Input; const { Search } = Input;
@ -29,7 +30,11 @@ export default function EditTwo(props: any) {
const [messageApi, contextHolder] = message.useMessage(); const [messageApi, contextHolder] = message.useMessage();
const height = window.innerHeight - 350; const height = window.innerHeight - 350;
const [loading, setLoading] = useState(false) const [loading, setLoading] = useState(false)
const [saveModal, setSaveModal] = useState<boolean>(false) //保存为常用弹窗
const [deleteModal, setDeleteModal] = useState<boolean>(false) //删除提示弹窗
const [deleteId, setDeleteId] = useState<any>()//删除的id
const [deleteTitle, setDeleteTitle] = useState<any>()//删除的标题
const [schemeName, setSchemeName] = useState<string>('')
const [ids, setIds] = useState<any>([]) const [ids, setIds] = useState<any>([])
const [expandedIds, setExpandedIds] = useState<string[]>([]); const [expandedIds, setExpandedIds] = useState<string[]>([]);
@ -39,8 +44,8 @@ export default function EditTwo(props: any) {
const [selectedTreeList, setSelectedTreeList] = useState<any>([]) const [selectedTreeList, setSelectedTreeList] = useState<any>([])
// 提交 // 提交
const handleSubmit = async () => { const handleSubmit = async () => {
console.log(ids); // console.log(ids);
console.log(selectedTreeList); // console.log(selectedTreeList);
if (ids.length <= 0) { if (ids.length <= 0) {
message.error('请选择分类'); message.error('请选择分类');
return return
@ -149,13 +154,14 @@ export default function EditTwo(props: any) {
// }, [ids]) // }, [ids])
const getTrademarkTypeList = async (id: string) => { const getTrademarkTypeList = async (id: string) => {
try { try {
setLoading(true) setLoading(true)
const res = await trademarkTypeList({ const res = await trademarkTypeList({
id: id id: id
}) })
console.log('嘻嘻嘻噶噶', res); // console.log('嘻嘻嘻噶噶', res);
setTrademarkList(res) setTrademarkList(res)
setLoading(false) setLoading(false)
} catch (error: any) { } catch (error: any) {
@ -174,9 +180,39 @@ export default function EditTwo(props: any) {
} }
} }
const [schemeDetialList, setSchemeDetialList] = useState<any>([])
const [typesId, setTypesId] = useState<string | null>(null) //备选方案的id
const [options, setOptions] = useState<any>([])
// 获取我的方案列表
const getTrademarkSchemeList = async () => {
try {
const res: any = await trademarkSchemeList()
console.log('我得列表', res);
setOptions(res.map((item: any) => {
return {
value: item.typesId,
label: item.typesTitle
}
}))
setSchemeDetialList(res)
} catch (error: any) {
if (error.response) {
const data = error.response.data;
messageApi.open({
type: 'error',
content: data.msg ? data.msg : `${data.path}(${data.status})`,
});
} else {
console.error(error)
}
}
}
useEffect(() => { useEffect(() => {
getTrademarkTypeList('') getTrademarkTypeList('')
getTrademarkSchemeList()
}, []) }, [])
useEffect(() => { useEffect(() => {
if (props.editTwoData.trademarkTypeIds.length > 0) { if (props.editTwoData.trademarkTypeIds.length > 0) {
@ -188,9 +224,9 @@ export default function EditTwo(props: any) {
}, [props.editTwoData]) }, [props.editTwoData])
useEffect(() => { useEffect(() => {
console.log(selectedTreeList); // console.log(selectedTreeList);
// 找出selectedTreeList数组里的id 形成一个新的大类数组 // 找出selectedTreeList数组里的id 形成一个新的大类数组
console.log(ids); // console.log(ids);
}, [selectedTreeList]) }, [selectedTreeList])
@ -333,30 +369,61 @@ export default function EditTwo(props: any) {
allowClear allowClear
style={{ width: '183px', fontSize: '16px' }} style={{ width: '183px', fontSize: '16px' }}
onChange={async (value: string) => { onChange={async (value: string) => {
console.log(`selected ${value}`); // console.log(`selected ${value}`);
// alert(`selected ${value}`) // alert(`selected ${value}`)
// lyp // lyp
setTypesId(value)
}} }}
options={[ value={typesId}
// { value: '', label: '全部类型' }, options={options}
{ value: '1', label: '领域1' }, optionRender={(option) => (
{ value: '2', label: '领域2' }, <div style={{
{ value: '3', label: '领域3' }, display: 'flex',
{ value: '4', label: '领域4' }, justifyContent: 'space-between',
{ value: '5', label: '领域5' } alignItems: 'center',
]} }}>
<div style={{
maxWidth: '120px'
}}>{option.data.label}</div>
<div
title='删除'
onClick={(e) => {
// 组织默认行为
e.stopPropagation()
// console.log('删除', option.data);
setDeleteId(option.data.value)
setDeleteTitle(option.data.label)
setDeleteModal(true)
}}><CloseOutlined /></div>
</div>
)}
placeholder="请选择领域" placeholder="请选择领域"
// defaultValue="" // defaultValue=""
/> />
<Button type="primary" style={{ <Button type="primary" style={{
marginLeft: '10px', marginLeft: '10px',
}}> }}
onClick={() => {
if (typesId) {
// 从schemeDetialList中找出typesId对应的对象
const scheme = schemeDetialList.find((item: any) => item.typesId === typesId)
console.log(scheme);
// console.log(selectedTreeList);
// console.log(ids);
setIds(scheme.trademarkTypeIds)
setSelectedTreeList(scheme.trademarkTypeDTOS)
} else {
messageApi.open({
type: 'error',
content: '请选择方案',
});
}
}}
>
</Button> </Button>
<div style={{ <div style={{
@ -474,8 +541,9 @@ export default function EditTwo(props: any) {
cursor: 'pointer', cursor: 'pointer',
}} }}
onClick={() => { onClick={() => {
// alert('保存为常用')
setSaveModal(true)
setSchemeName('')
}} }}
></a> ></a>
</div> </div>
@ -666,11 +734,128 @@ export default function EditTwo(props: any) {
}} }}
onClick={() => { onClick={() => {
handleSubmit() handleSubmit()
setTypesId(null)
}} }}
></Button> ></Button>
</div> </div>
</div> </div>
<Modal
title="保存为常用"
okText="确定"
cancelText="取消"
destroyOnClose={true}
open={saveModal}
// 点击遮罩关闭不了
maskClosable={false}
onOk={async () => {
// setRevokeModal(false)
// setSaveModal(false)
if (schemeName) {
// setSaveModal(false)
// console.log(schemeName);
// console.log(selectedTreeList);
// console.log(ids);
try {
await saveTrademarkScheme({
typesTitle: schemeName,
typeList: ids,
})
messageApi.open({
type: 'success',
content: '保存成功',
})
setSaveModal(false)
getTrademarkSchemeList()
} catch (error: any) {
if (error.response) {
const data = error.response.data;
messageApi.open({
type: 'error',
content: data.msg ? data.msg : `${data.path}(${data.status})`,
});
} else {
console.error(error)
}
}
} else {
message.error('请输入方案名称')
}
}}
onCancel={() => {
setSaveModal(false)
}}
width={400}
centered
>
<div style={{
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
padding: '10px 30px',
}}>
<div style={{
fontSize: 16,
}}>
</div>
<div>
<Input value={schemeName} onChange={(e) => {
setSchemeName(e.target.value)
}} placeholder='请输入保存方案名称'></Input>
</div>
</div>
</Modal>
<Modal
title="提示"
okText="确定"
cancelText="取消"
destroyOnClose={true}
open={deleteModal}
// // 点击遮罩关闭不了
// maskClosable={false}
onOk={async () => {
try {
await deleteTrademarkScheme(deleteId)
messageApi.open({
type: 'success',
content: '删除成功',
})
getTrademarkSchemeList()
setDeleteModal(false)
} catch (error: any) {
if (error.response) {
const data = error.response.data;
messageApi.open({
type: 'error',
content: data.msg ? data.msg : `${data.path}(${data.status})`,
});
} else {
console.error(error)
}
}
}}
onCancel={() => {
setDeleteModal(false)
}}
width={400}
centered
>
<div>
{deleteTitle}?
</div>
</Modal>
</Spin> </Spin>
) )
} }

View File

@ -1,4 +1,4 @@
import { useState, useEffect } from 'react' import { useState } from 'react'
import { import {
DownOutlined, DownOutlined,
// UpOutlined, // UpOutlined,
@ -23,9 +23,9 @@ export default function TreeMenuNew(props: any) {
const [messageApi, contextHolder] = message.useMessage(); const [messageApi, contextHolder] = message.useMessage();
const [loading, setLoading] = useState(false) const [loading, setLoading] = useState(false)
useEffect(() => { // useEffect(() => {
console.log(props.searchKeyWords); // console.log(props.searchKeyWords);
}, [props.searchKeyWords]) // }, [props.searchKeyWords])
// 获取中类 // 获取中类

View File

@ -1129,6 +1129,7 @@ export default function Index() {
const [trademarkModal, setTrademarkModal] = useState(false) // 申请商标弹窗 const [trademarkModal, setTrademarkModal] = useState(false) // 申请商标弹窗
const [trademarkNewKeywords, setTrademarkNewKeywords] = useState('') // 临时关键字 const [trademarkNewKeywords, setTrademarkNewKeywords] = useState('') // 临时关键字
const [trademarkKeywords, setTrademarkKeywords] = useState('') // 关键字 const [trademarkKeywords, setTrademarkKeywords] = useState('') // 关键字
const [trademarkStatus,setTrademarkStatus] = useState<string | null>(null)
const trademarkKeyWordshandleSearch = () => { const trademarkKeyWordshandleSearch = () => {
setTrademarkKeywords(trademarkNewKeywords) setTrademarkKeywords(trademarkNewKeywords)
} }
@ -1141,17 +1142,19 @@ export default function Index() {
const trademarkInit = () => { const trademarkInit = () => {
setTrademarkNewKeywords('') setTrademarkNewKeywords('')
setTrademarkKeywords('') setTrademarkKeywords('')
setTrademarkStatus(null)
} }
useEffect(() => { useEffect(() => {
if (location.pathname == '/trademark-mall') { if (location.pathname == '/trademark-mall') {
nav('/trademark-mall', { nav('/trademark-mall', {
state: { state: {
keywords: trademarkKeywords, keywords: trademarkKeywords,
trademarkStatus:trademarkStatus
} }
}) })
} }
}, [trademarkKeywords]) }, [trademarkKeywords,trademarkStatus])
// const [toRradeMarkModal, setToRradeMarkModal] = useState(false) // 申请商标编辑弹窗 // const [toRradeMarkModal, setToRradeMarkModal] = useState(false) // 申请商标编辑弹窗
// ---------------------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------------------
@ -3825,6 +3828,31 @@ export default function Index() {
}} }}
allowClear allowClear
/> />
<Select
value={trademarkStatus}
allowClear
style={{ height: '31px', width: '150px', marginLeft: 5 }}
onChange={(value: string) => {
setTrademarkStatus(value)
}}
options={[
{ value: '-1', label: '未通过' },
{ value: '0', label: '待付款' },
{ value: '1', label: '已付款' },
{ value: '2', label: '审核中' },
{ value: '3', label: '提交至商标局' },
{ value: '4', label: '不予受理' },
{ value: '5', label: '已受理' },
{ value: '6', label: '已发初审公告' },
{ value: '7', label: '部分驳回' },
{ value: '8', label: '全部驳回' },
{ value: '9', label: '已下证' },
]}
placeholder='选择状态'
/>
<Button style={{ <Button style={{
marginLeft: 5, height: 31 marginLeft: 5, height: 31
}} }}
@ -4478,7 +4506,7 @@ export default function Index() {
width: '100%', width: '100%',
display: 'flex', display: 'flex',
}}> }}>
<div style={{ {/* <div style={{
flex: 1, flex: 1,
border: '1px solid #FF9C00', border: '1px solid #FF9C00',
fontSize: 18, fontSize: 18,
@ -4486,7 +4514,7 @@ export default function Index() {
textAlign: 'center', textAlign: 'center',
lineHeight: '46px', lineHeight: '46px',
cursor: 'pointer' cursor: 'pointer'
}}></div> }}></div> */}
<div <div
style={{ style={{
flex: 1, flex: 1,

View File

@ -161,6 +161,26 @@ export function getBuyUrl() {
console.error("请求出错:", error); console.error("请求出错:", error);
}); });
} }
//商标商城如何选择
export function geSelectUrl() {
axios.get(`https://www.aimzhu.com/operator/app/agreementportal/getrelease/061c65f2-a5da-48a0-b5ac-6bffc1b36eca`)
.then((data:any) => {
window.open(`${baseUrl}/operator/route/agreementportal/view?agreementId=${data.data.agreementId}&title=${data.data.title}`)
})
.catch(error => {
console.error("请求出错:", error);
});
}
//商标商城 文档
export function getFileUrl() {
axios.get(`https://www.aimzhu.com/operator/app/agreementportal/getrelease/d26d6ef6-4628-4539-a43a-e6a85c577c8f`)
.then((data:any) => {
window.open(`${baseUrl}/operator/route/agreementportal/view?agreementId=${data.data.agreementId}&title=${data.data.title}`)
})
.catch(error => {
console.error("请求出错:", error);
});
}
// 软件委托开发协议 // 软件委托开发协议
export function getSoftUrl() { export function getSoftUrl() {
return `${baseUrl}/Seda.html` return `${baseUrl}/Seda.html`