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({
ids: ids
})
console.log(res);
// console.log(res);
const newUpFile = res.map((item: any) => {
return {
uid: item.fileId,
@ -443,7 +443,7 @@ export default function File(props: any) {
onFinish={(value) => {
console.log(value);
// console.log(value);
// if (value.upFile && Array.isArray(value.upFile.fileList)) {
// const uids = value.upFile.fileList.map((file: any) => file.uid);
// 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 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 addTrademarkApplicant = (params:any) => aiShopRequest.post(`/aishop/api/trademarkuser/save`,params)

View File

@ -180,7 +180,7 @@ export default function AppElectron() {
// background: 'red',
color: '#007FFF',
position: 'relative',
display: record.waitCorrectionCount > 0 && record.appOrderStatus != '5' ? 'unset' : 'none',
display: record.checkStatus == '2' && record.appOrderStatus != '5'? 'unset' : 'none',
}}
onClick={() => {
@ -192,22 +192,26 @@ export default function AppElectron() {
>
<div style={{
position: 'absolute',
top: '-10px',
right: '-10px',
// fontSize:'16px',
background: 'red',
color: '#fff',
fontWeight: '700',
width: '20px',
height: '20px',
borderRadius: '50%',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
display: record.waitCorrectionCount > 0 ? 'unset' : 'none',
}}>
{record.waitCorrectionCount}
<div style={{
position: 'absolute',
top: '-10px',
right: '-10px',
// fontSize:'16px',
background: 'red',
color: '#fff',
fontWeight: '700',
width: '20px',
height: '20px',
borderRadius: '50%',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
}}>
{record.waitCorrectionCount}
</div>
</div>
</div>
<div style={{

View File

@ -8,11 +8,43 @@ import useMessage from "antd/es/message/useMessage";
// import './File.css'
const { TextArea } = Input;
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 validateContentOrFile = (_rule: any, _value: any, callback: (error?: string) => void, form: any) => {
const { upCorrectionRemark, upFile } = form.getFieldsValue();
if (upCorrectionRemark || (upFile && Array.isArray(upFile.fileList) && upFile.fileList.length > 0)) {
if (upCorrectionRemark || upFile) {
callback();
} else {
callback('内容和附件至少需要填写或上传一项');
@ -28,11 +60,12 @@ export default function File(props: any) {
correctionFiles: params.correctionFiles,
correctionRemark: params.correctionRemark,
})
if (props.user == 'sell') {
getSellSupplementList()
} else if (props.user == 'buy') {
getBuySupplementList()
}
// if (props.user == 'sell') {
// getSellSupplementList()
// } else if (props.user == 'buy') {
// getBuySupplementList()
// }
getBuySupplementList()
props.upData()
messageApi.open({
type: 'success',
@ -149,6 +182,41 @@ export default function File(props: any) {
// console.log(res);
setDetailData(res)
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) {
@ -254,7 +322,10 @@ export default function File(props: any) {
setCorrectionId(record.correctionId)
getSupplementDetail(record.correctionId)
setIsModalVisible(true)
// 清空表单
// 清空上传的文件数组
setUpFileArray([])
// 清空表单
form.resetFields();
// setCorrectionType(record.correctionType)
}}></span>
@ -372,10 +443,10 @@ export default function File(props: any) {
// })
// console.log(upFileArray);
// 将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);
submitData({
correctionFiles: uids,
correctionFiles:value.upFile ? value.upFile : '',
correctionRemark: value.upCorrectionRemark,
})
@ -408,6 +479,7 @@ export default function File(props: any) {
width: 900,
}}
disabled={disabled}
placeholder='请输入需要补充内容'
></TextArea>
</Form.Item>
@ -436,11 +508,33 @@ export default function File(props: any) {
<Upload
name="file"
disabled={disabled}
action={uploadFileUrl()}
defaultFileList={upFileArray}
fileList={upFileArray}
onChange={(info) => {
setUpFileArray(info.fileList)
// setUpFileArray(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,
})
}}
@ -465,11 +559,17 @@ export default function File(props: any) {
gap: 10,
// marginTop: 20
}}>
<Button onClick={() => {
setIsModalVisible(false)
form.resetFields();
}}></Button>
<Button type="primary" htmlType="submit" ></Button>
<div style={{
display: disabled ? 'none' : 'unset',
}}>
<Button onClick={() => {
setIsModalVisible(false)
form.resetFields();
}}></Button>
<Button type="primary" htmlType="submit" style={{
marginLeft: 10,
}} ></Button>
</div>
</div>
</Form.Item>

View File

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

View File

@ -388,7 +388,7 @@ export default function TrademarkMall() {
style={{
color: 'rgb(136, 185, 233)',
}}
></span> : '未知'
></span> : '未知'
}
</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 style={{
@ -652,11 +652,13 @@ export default function TrademarkMall() {
setLoading(true)
setData([])
const res: any = await trademarkList({
keywords: state && state.keywords ? state.keywords : '',
trademarkStatus:state && state.trademarkStatus ? state.trademarkStatus : '',
rows: 10,
page: page
})
console.log('结果', res);
// console.log('结果', res);
setData(res.rows)
setTotal(res.total)
setLoading(false)
@ -863,7 +865,7 @@ export default function TrademarkMall() {
<div style={{
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-name'></div>
</div>
@ -889,7 +891,7 @@ export default function TrademarkMall() {
}}
autoComplete="off"
>
<div className='correctionRemarkBox'>
<div className='correctionRemarkBox' >
<div className='correctionTitle'></div>
<Form.Item
@ -915,7 +917,7 @@ export default function TrademarkMall() {
}}
placeholder='请输入需要补充内容'
disabled={correctionReply == '0'}
disabled={correctionReply == '0'||disabled}
></TextArea>
</Form.Item>
@ -955,9 +957,8 @@ export default function TrademarkMall() {
// console.log(info.fileList);
}}
headers={{ 'Auth': `Bearer ${token}` }}
disabled={correctionReply == '0'}
disabled={correctionReply == '0'|| disabled}
>
<Button icon={<UploadOutlined />}></Button>
</Upload>

View File

@ -3,6 +3,7 @@ import { Button, Radio, Form, Input, Upload, message, Image, Spin, Modal } from
import './EditOne.css'
import { uploadFileUrl, showImage, uploadImageAddUrl, downloadAuthBookUrl, uploadDeputeFileUrl } from '../../../../request/request'
import { trademarkBaseInfo, aiGenerateImage, fileDetail } from '../../../../request/api'
// import { geSelectUrl, getFileUrl } from '../../../../util/AjaxUtils'
import {
// DeleteOutlined,
LoadingOutlined,
@ -605,7 +606,7 @@ export default function EditOne(props: any) {
// console.log('传递one的数据', props.editOneData);
const { trademarkName, trademarkDescription, trademarkPhoto, trademarkPhotoType, trademarkType, trademarkFile, trademarkFile1, trademarkFile2 } = props.editOneData;
if (trademarkType) {
console.log(1);
// console.log(1);
// 赋值方式
setGoodsType(trademarkType)
@ -700,7 +701,11 @@ export default function EditOne(props: any) {
!
</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={{
marginTop: '5px'
}}>;</div>
@ -732,7 +737,8 @@ export default function EditOne(props: any) {
cursor: 'pointer',
}}
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>
</div>
@ -874,7 +880,7 @@ export default function EditOne(props: any) {
}}>
20211210 <span className='pointerBlue'
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>
</div>
@ -956,6 +962,7 @@ export default function EditOne(props: any) {
</TextArea>
</Form.Item>
<div style={{
display: generateType == '1' && generateImgId == '' ? 'unset' : 'none',
width: 200,
@ -1109,7 +1116,7 @@ export default function EditOne(props: any) {
message.error('请先输入商标名称')
return;
} else {
console.log('正在生成');
// console.log('正在生成');
// try {
// // 创建一个 canvas 元素
// const canvas = document.createElement('canvas');
@ -1188,7 +1195,7 @@ export default function EditOne(props: any) {
const res: any = await aiGenerateImage({
title: formA.getFieldValue('trademarkName'),
});
console.log('结果', res);
// console.log('结果', res);
setGenerateImgId(res.fileId);
formA.setFieldsValue({
trademarkPhoto: res.fileId
@ -1214,7 +1221,7 @@ export default function EditOne(props: any) {
marginLeft: '10px',
width: 150,
display: generateType == '1' ? 'unset' : 'none',
}}></Button>
}}>{generateImgId ? '重新生成' : '立即生成'}</Button>
</div>
</Form>

View File

@ -1,7 +1,7 @@
import { useState, useEffect } from 'react'
import { Button, Modal, Image, message, Spin } from 'antd'
import { showImage } from '../../../../request/request'
import { uploadSix } from '../../../../request/api'
import { uploadSix, fileDetail } from '../../../../request/api'
import './EditSix.css'
export default function EditSix(props: any) {
const height = window.innerHeight - 350;
@ -39,9 +39,57 @@ export default function EditSix(props: any) {
const [editFiveData, setEditFiveData] = useState<any>({
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(() => {
if (props.editOneData) {
setEditOneData(props.editOneData)
// console.log('网址',showImage(props.editOneData.trademarkFile, false));
}
if (props.editTwoData) {
setEditTwoData(props.editTwoData)
@ -52,6 +100,15 @@ export default function EditSix(props: any) {
if (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);
}, [props])
@ -96,11 +153,28 @@ export default function EditSix(props: any) {
}}>
<div className='editSixContent' >
<div className='editSixTitle'> :</div>
<div className='editSixImage'>
<Image src={showImage(editOneData.trademarkFile, false)} style={{
height: '150px',
maxWidth: '100%',
}}></Image>
<div style={{
display: trademarkFile.fileType != 'pdf' ? 'unset' : 'none'
}}>
<div className='editSixImage' >
<Image src={showImage(editOneData.trademarkFile, false)} style={{
height: '150px',
maxWidth: '100%',
}}></Image>
</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>
@ -109,11 +183,28 @@ export default function EditSix(props: any) {
}}>
<div className='editSixContent' >
<div className='editSixTitle'> :</div>
<div className='editSixImage'>
<Image src={showImage(editOneData.trademarkFile1, false)} style={{
height: '150px',
maxWidth: '100%',
}}></Image>
<div style={{
display: trademarkFile1.fileType != 'pdf' ? 'unset' : 'none'
}}>
<div className='editSixImage'>
<Image src={showImage(editOneData.trademarkFile1, false)} style={{
height: '150px',
maxWidth: '100%',
}}></Image>
</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>
@ -122,11 +213,28 @@ export default function EditSix(props: any) {
}}>
<div className='editSixContent' >
<div className='editSixTitle'> :</div>
<div className='editSixImage'>
<Image src={showImage(editOneData.trademarkFile2, false)} style={{
height: '150px',
maxWidth: '100%',
}}></Image>
<div style={{
display: trademarkFile2.fileType != 'pdf' ? 'unset' : 'none'
}}>
<div className='editSixImage'>
<Image src={showImage(editOneData.trademarkFile2, false)} style={{
height: '150px',
maxWidth: '100%',
}}></Image>
</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>
@ -216,7 +324,7 @@ export default function EditSix(props: any) {
</div>
<div className='topLine'></div>
<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={{
marginTop: '8px',
@ -264,7 +372,7 @@ export default function EditSix(props: any) {
</div>
<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={{
display: 'flex',
@ -275,7 +383,7 @@ export default function EditSix(props: any) {
fontSize: '18px',
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>

View File

@ -4,7 +4,8 @@ import {
// Collapse, Tree
Input,
message,
Spin
Spin,
Modal,
} from 'antd'
import {
SyncOutlined,
@ -12,7 +13,7 @@ import {
CloseOutlined
} from '@ant-design/icons';
// 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;
@ -29,7 +30,11 @@ export default function EditTwo(props: any) {
const [messageApi, contextHolder] = message.useMessage();
const height = window.innerHeight - 350;
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 [expandedIds, setExpandedIds] = useState<string[]>([]);
@ -39,8 +44,8 @@ export default function EditTwo(props: any) {
const [selectedTreeList, setSelectedTreeList] = useState<any>([])
// 提交
const handleSubmit = async () => {
console.log(ids);
console.log(selectedTreeList);
// console.log(ids);
// console.log(selectedTreeList);
if (ids.length <= 0) {
message.error('请选择分类');
return
@ -149,13 +154,14 @@ export default function EditTwo(props: any) {
// }, [ids])
const getTrademarkTypeList = async (id: string) => {
try {
setLoading(true)
const res = await trademarkTypeList({
id: id
})
console.log('嘻嘻嘻噶噶', res);
// console.log('嘻嘻嘻噶噶', res);
setTrademarkList(res)
setLoading(false)
} 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(() => {
getTrademarkTypeList('')
getTrademarkSchemeList()
}, [])
useEffect(() => {
if (props.editTwoData.trademarkTypeIds.length > 0) {
@ -188,9 +224,9 @@ export default function EditTwo(props: any) {
}, [props.editTwoData])
useEffect(() => {
console.log(selectedTreeList);
// console.log(selectedTreeList);
// 找出selectedTreeList数组里的id 形成一个新的大类数组
console.log(ids);
// console.log(ids);
}, [selectedTreeList])
@ -333,30 +369,61 @@ export default function EditTwo(props: any) {
allowClear
style={{ width: '183px', fontSize: '16px' }}
onChange={async (value: string) => {
console.log(`selected ${value}`);
// console.log(`selected ${value}`);
// alert(`selected ${value}`)
// lyp
setTypesId(value)
}}
options={[
// { value: '', label: '全部类型' },
{ value: '1', label: '领域1' },
{ value: '2', label: '领域2' },
{ value: '3', label: '领域3' },
{ value: '4', label: '领域4' },
{ value: '5', label: '领域5' }
]}
value={typesId}
options={options}
optionRender={(option) => (
<div style={{
display: 'flex',
justifyContent: 'space-between',
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="请选择领域"
// defaultValue=""
/>
<Button type="primary" style={{
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>
<div style={{
@ -474,8 +541,9 @@ export default function EditTwo(props: any) {
cursor: 'pointer',
}}
onClick={() => {
// alert('保存为常用')
setSaveModal(true)
setSchemeName('')
}}
></a>
</div>
@ -531,7 +599,7 @@ export default function EditTwo(props: any) {
<span style={{
display: index > 0 ? 'unset' : 'none'
}}>
{formatNumber( totalCount <= 10 ? props.trademarkModeOldPrice :props.trademarkModeOldPrice + item.price * (totalCount - 10))}
{formatNumber(totalCount <= 10 ? props.trademarkModeOldPrice : props.trademarkModeOldPrice + item.price * (totalCount - 10))}
</span>
<span onClick={() => {
@ -666,11 +734,128 @@ export default function EditTwo(props: any) {
}}
onClick={() => {
handleSubmit()
setTypesId(null)
}}
></Button>
</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>
)
}

View File

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

View File

@ -1129,6 +1129,7 @@ export default function Index() {
const [trademarkModal, setTrademarkModal] = useState(false) // 申请商标弹窗
const [trademarkNewKeywords, setTrademarkNewKeywords] = useState('') // 临时关键字
const [trademarkKeywords, setTrademarkKeywords] = useState('') // 关键字
const [trademarkStatus,setTrademarkStatus] = useState<string | null>(null)
const trademarkKeyWordshandleSearch = () => {
setTrademarkKeywords(trademarkNewKeywords)
}
@ -1141,17 +1142,19 @@ export default function Index() {
const trademarkInit = () => {
setTrademarkNewKeywords('')
setTrademarkKeywords('')
setTrademarkStatus(null)
}
useEffect(() => {
if (location.pathname == '/trademark-mall') {
nav('/trademark-mall', {
state: {
keywords: trademarkKeywords,
trademarkStatus:trademarkStatus
}
})
}
}, [trademarkKeywords])
}, [trademarkKeywords,trademarkStatus])
// const [toRradeMarkModal, setToRradeMarkModal] = useState(false) // 申请商标编辑弹窗
// ----------------------------------------------------------------------------------------------------
@ -1365,9 +1368,9 @@ export default function Index() {
setTrademarkArray([
{
id: res[0].id, title: '智能申请注册', nowprice: res[0].money/100,
id: res[0].id, title: '智能申请注册', nowprice: res[0].money / 100,
old: true, //是否显示原价
oldprice: res[0].oldMoney/100, //原价
oldprice: res[0].oldMoney / 100, //原价
cheap: true,//特价
text: '0服务费针对有一定商标申请经验并能自主评估风险的用户',
left: '性价比', right: '高',
@ -1381,7 +1384,7 @@ export default function Index() {
newUser: res[0].newUser
},
{
id: res[1].id, title: '专家辅助注册', nowprice: res[1].money/100, cheap: false,
id: res[1].id, title: '专家辅助注册', nowprice: res[1].money / 100, cheap: false,
old: false,
oldprice: '',
text: '流程专业代办,适用于商标风险评估、类别选择无经验的新用户',
@ -1396,7 +1399,7 @@ export default function Index() {
newUser: ''
},
{
id: res[2].id, title: '至尊无忧注册', nowprice: res[2].money/100, cheap: false,
id: res[2].id, title: '至尊无忧注册', nowprice: res[2].money / 100, cheap: false,
old: false,
oldprice: '',
text: '专家评估提高通过率,注册失败,可赔付全款',
@ -3825,6 +3828,31 @@ export default function Index() {
}}
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={{
marginLeft: 5, height: 31
}}
@ -4478,7 +4506,7 @@ export default function Index() {
width: '100%',
display: 'flex',
}}>
<div style={{
{/* <div style={{
flex: 1,
border: '1px solid #FF9C00',
fontSize: 18,
@ -4486,7 +4514,7 @@ export default function Index() {
textAlign: 'center',
lineHeight: '46px',
cursor: 'pointer'
}}></div>
}}></div> */}
<div
style={{
flex: 1,

View File

@ -161,6 +161,26 @@ export function getBuyUrl() {
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() {
return `${baseUrl}/Seda.html`