Compare commits

...

6 Commits

Author SHA1 Message Date
lyp
3c8abb7362 暂存 2025-07-17 16:52:36 +08:00
lyp
bdb8b5214a 暂存 2025-07-17 14:56:47 +08:00
lyp
632479fbd3 暂存 2025-07-17 14:52:05 +08:00
lyp
b0600a8d5f 暂存 2025-07-17 14:44:29 +08:00
lyp
56c7e4389d 暂存 2025-07-16 17:14:01 +08:00
lyp
3c8d260100 暂存 2025-07-16 16:36:57 +08:00
11 changed files with 783 additions and 315 deletions

View File

@ -127,6 +127,16 @@ export default function PackageModal() {
return <div>{text / 100}</div>
}
},
{
title: '有效期至',
dataIndex: 'packageExpireTime',
key: 'packageOrderId',
// 居中显示
align: 'center',
render: (text) => {
return <div>{text?text:"——"} </div>
}
},
{
title: '剩余次数',
dataIndex: 'packageTotalSurplusCount',
@ -214,14 +224,14 @@ export default function PackageModal() {
align: 'center',
width: 200,
},
{
{
title: '使用数量',
dataIndex: 'itemUseCount',
key: 'packageOrderItemId',
align: 'center',
width: 100,
},
{
{
title: '剩余数量',
dataIndex: 'itemCount',
key: 'packageOrderItemId',

View File

@ -147,6 +147,7 @@ export default function AppEdit() {
const [filesInfo, setFilesInfo] = useState<any>({
sourceCodeDocFile: '',//源码
softwareDocFile: '',//软件
thereAnyFileL:''
})
const [checkRemark, setCheckRemark] = useState('') //未通过原因
// 文件想想请
@ -184,6 +185,7 @@ export default function AppEdit() {
setFilesInfo({
sourceCodeDocFile: res.sourceCodeDocFile,//源码
softwareDocFile: res.softwareDocFile,//软件
thereAnyFile:res.thereAnyFile //是否有材料
})
setEditProcess(Number(res.appOrderProgress) + 1)
setCheckStatus(res.checkStatus)

View File

@ -145,7 +145,7 @@ export default function AppElectron() {
width: 150,
render: (text) => (
<span>
{text == '1' ? '未付款' : text == '2' ? '资料填写中' : text == '3' ? '资料审核中' : text == '4' ? '线下申请中' : text == '5' ? '已下证' : '未知'}
{text == '1' ? '未付款' : text == '2' ? '资料填写中' : text == '3' ? '资料审核中' : text == '4' ? '待签字盖章' : text == '5' ? '线下申请中' : text == '6' ? '平台已下证' :'未知'}
</span>
)
},
@ -180,7 +180,7 @@ export default function AppElectron() {
// background: 'red',
color: '#007FFF',
position: 'relative',
display: record.checkStatus == '2' && record.appOrderStatus != '5'? 'unset' : 'none',
display: record.checkStatus == '2' && record.appOrderStatus != '6'? 'unset' : 'none',
}}
onClick={() => {
@ -219,7 +219,7 @@ export default function AppElectron() {
cursor: 'pointer',
color: '#007FFF',
display: record.appOrderStatus == '5' ? 'unset' : 'none',
display: record.appOrderStatus == '6' ? 'unset' : 'none',
}}
onClick={() => {

View File

@ -38,8 +38,8 @@ export default function AppCompany(props: any) {
}
return Promise.resolve();
};
// 定义 beforeUpload 函数
const beforeUpload = (file: any) => {
// 定义 beforeUpload上传证件 函数
const beforeUploadcompanyPhoto = (file: any) => {
const isJpgOrPng = ['image/jpeg', 'image/png', 'image/bmp'].includes(file.type);
if (!isJpgOrPng) {
message.error('只能上传 JPG、JPEG、PNG、BMP 格式的文件!');
@ -56,6 +56,25 @@ export default function AppCompany(props: any) {
}
return isJpgOrPng && isLt4M;
};
// 定义 beforeUpload上传授权书 函数
const beforeUploadcompanyAuth = (file: any) => {
const isJpgOrPng = ['image/jpeg', 'image/png', 'image/bmp'].includes(file.type);
if (!isJpgOrPng) {
message.error('只能上传 JPG、JPEG、PNG、BMP 格式的文件!');
form.setFieldsValue({
'companyAuth': '',
});
}
const isLt4M = file.size / 1024 / 1024 < 4;
if (!isLt4M) {
message.error('文件大小不能超过 4MB!');
form.setFieldsValue({
'companyAuth': '',
});
}
return isJpgOrPng && isLt4M;
};
// type FileType = Parameters<GetProp<UploadProps, 'beforeUpload'>>[0];
const [loading, setLoading] = useState(false);
@ -185,7 +204,7 @@ export default function AppCompany(props: any) {
}
const onFinish = async (values: any) => {
// 处理表单提交逻辑
// console.log('表单提交成功', values);
console.log('表单提交成功', values);
// console.log('发过来的数据', props.companyInfo);
if (!deepCompareObjects(values, props.companyInfo)) {
try {
@ -295,7 +314,7 @@ export default function AppCompany(props: any) {
}}>
<div className='appInfoFormInput'>
<div className='FormInputTitle' style={{
}}><span style={{ color: 'red', }}>*</span></div>
}}><span style={{ color: 'red', }}>*</span></div>
<div style={{
// background: 'pink',
position: 'relative',
@ -313,7 +332,7 @@ export default function AppCompany(props: any) {
showUploadList={false}
action={uploadImageUrl()}
// defaultFileList={upImgArray}
beforeUpload={beforeUpload}
beforeUpload={beforeUploadcompanyPhoto}
onChange={handleChange}
headers={{ 'Auth': `Bearer ${token}` }}
@ -427,7 +446,7 @@ export default function AppCompany(props: any) {
name='image'
showUploadList={false}
action={uploadImageUrl()}
beforeUpload={beforeUpload}
beforeUpload={beforeUploadcompanyAuth}
onChange={textHandleChange}
headers={{ 'Auth': `Bearer ${token}` }}

View File

@ -344,7 +344,9 @@ export default function AppInfo(props: any) {
</div>
</div>
<div className='appInfoBox'>
<div className='appInfoBox' style={{
display:filesInfo.thereAnyFile == '0'?'none':'unset'
}}>
<div className='appInfoTitle'></div>
<div className='appInfoText'>

View File

@ -1,5 +1,5 @@
import { useEffect, useState } from 'react'
import { Button, Form, Upload, message, Modal, Spin } from "antd"
import { Button, Form, Upload, message, Modal, Spin, Radio } from "antd"
import { uploadFileUrl, showImage } from '../../../../request/request'
import { UploadOutlined } from '@ant-design/icons';
import { sourceCodeWord, softwareDocumentWord, uploadMaterial, fileDetail } from '../../../../request/api'
@ -7,6 +7,8 @@ import './edit-app-files.css'
export default function EditAppFiles(props: any) {
const [messageApi, contextHolder] = message.useMessage();
const [loading, setLoading] = useState(false)
//是否有材料
const [thereAnyFile, setThereAnyFile] = useState('1')
const downCodeWord = async () => {
try {
setLoading(true)
@ -145,12 +147,60 @@ export default function EditAppFiles(props: any) {
const token = sessionStorage.getItem('token')
const height = window.innerHeight - 460;
const [form] = Form.useForm();
const noFileSubmit = async () => {
try {
setLoading(true)
await uploadMaterial(props.appOrderId, {
thereAnyFile: thereAnyFile,
sourceCodeDocFile: '',//源码
softwareDocFile: '',//软件
})
props.setFilesInfo(
{
sourceCodeDocFile: '',//源码
softwareDocFile: '',//软件
thereAnyFile: thereAnyFile //是否有材料
}
)
props.setEditProcess(4);
setLoading(false)
} catch (error: any) {
setLoading(false)
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)
}
} finally {
setLoading(false)
}
}
const handleSubmit = () => {
// console.log(form);
// props.setEditProcess(4);
// 调用表单实例的 submit 方法
form.submit();
if (thereAnyFile == '1') {
form.submit();
}
if (thereAnyFile == '0') {
// console.log(props.filesInfo.thereAnyFile);
// return
if (props.filesInfo.thereAnyFile != '0') {
noFileSubmit()
} else {
props.setEditProcess(4);
}
}
};
function deepCompareObjects(obj1: any, obj2: any): boolean {
// 若两个值严格相等,直接返回 true
@ -189,10 +239,15 @@ export default function EditAppFiles(props: any) {
// deepCompareObjects(values, props.filesInfo)
// console.log(!deepCompareObjects(values, props.filesInfo));
// return
if (!deepCompareObjects(values, props.filesInfo)) {
const newObj = {
thereAnyFile: thereAnyFile,//是否有材料
...values
}
if (!deepCompareObjects(newObj, props.filesInfo)) {
try {
setLoading(true)
await uploadMaterial(props.appOrderId, {
thereAnyFile: thereAnyFile,
...values
})
props.setFilesInfo(
@ -281,6 +336,9 @@ export default function EditAppFiles(props: any) {
if (props.filesInfo.softwareDocFile) {
getSoftFileDetail(props.filesInfo.softwareDocFile)
}
if(props.filesInfo.thereAnyFile){
setThereAnyFile(props.filesInfo.thereAnyFile)
}
form.setFieldsValue({
sourceCodeDocFile: props.filesInfo.sourceCodeDocFile,
softwareDocFile: props.filesInfo.softwareDocFile,
@ -300,8 +358,40 @@ export default function EditAppFiles(props: any) {
marginLeft: '100px',
paddingBottom: '0'
}}>
<div style={{
fontSize: 16,
paddingLeft: 58
}}>
<span style={{ color: 'red', }}>*</span>
<Radio.Group
onChange={
(e) => {
setThereAnyFile(e.target.value)
}
} value={thereAnyFile}
>
<Radio value="1" style={{
fontSize: 16
}}></Radio>
<Radio value="0" style={{
marginLeft: 20,
fontSize: 16
}}></Radio>
</Radio.Group>
</div>
<div
style={{
paddingLeft: 58,
marginTop: 5,
color: 'red'
}}
>(:若无源码文档和软件文档选择)</div>
<div style={{
height: '80px',
// background: 'pink',
marginTop: 20,
display: thereAnyFile == '1' ? 'unset' : 'none'
}}>
<Form form={form} onFinish={onFinish}
onFinishFailed={(errorInfo: any) => {

View File

@ -6,6 +6,9 @@ import { showImage, uploadFileUrl } from '../../request/request'
import { UploadOutlined } from '@ant-design/icons';
import { Modal } from 'antd';
import type { TableProps, } from 'antd';
import talk from '../../static/talk.png'
import nogoods from '../../static/nogoods.png'
import './trademark-edit.css'
import {
message, Spin,
Pagination,
@ -81,7 +84,7 @@ export default function TrademarkMall() {
// 自定义验证函数
const validateContentOrFile = (_rule: any, _value: any, callback: (error?: string) => void, form: any) => {
const { upCorrectionRemark, upFile } = form.getFieldsValue();
if (upCorrectionRemark || upFile ) {
if (upCorrectionRemark || upFile) {
callback();
} else {
callback('内容和附件至少需要填写或上传一项');
@ -206,315 +209,316 @@ export default function TrademarkMall() {
const { state } = useLocation()
const nav = useNavigate();
const height = window.innerHeight - 180;
const columns: TableProps<any>['columns'] = [
{
title: '序号',
dataIndex: 'index',
key: 'index',
align: 'center',
fixed: 'left',
width: 90,
render: (_text, _record, index) => (page - 1) * 10 + index + 1, // 显示序号从1开始
// const columns: TableProps<any>['columns'] = [
// {
// title: '序号',
// dataIndex: 'index',
// key: 'index',
// align: 'center',
// fixed: 'left',
// width: 90,
// render: (_text, _record, index) => (page - 1) * 10 + index + 1, // 显示序号从1开始
},
// },
{
title: '服务类型',
dataIndex: 'trademarkModeName',
fixed: 'left',
align: 'center',
key: 'trademarkModeName',
width: 150,
ellipsis: {
showTitle: true,
},
// {
// title: '服务类型',
// dataIndex: 'trademarkModeName',
// fixed: 'left',
// align: 'center',
// key: 'trademarkModeName',
// width: 150,
// ellipsis: {
// showTitle: true,
// },
},
// },
{
title: '类型/名称',
fixed: 'left',
dataIndex: 'trademarkName',
key: 'trademarkName',
align: 'center',
ellipsis: {
showTitle: true,
},
width: 200,
render: (_text, record) => (
<span>
{record.trademarkType == 'text' ? '文字' : record.trademarkType == 'image' ? '图形' : record.trademarkType == 'text-image' ? '图文' : ''} <span style={{
display: record.trademarkType == 'image' ? 'none' : 'unset',
}}>
<span style={{
display: record.trademarkType == '' ? 'none' : 'unset',
}}>/</span>
{record.trademarkName}</span>
{/* {record} */}
</span>
)
// {
// title: '类型/名称',
// fixed: 'left',
// dataIndex: 'trademarkName',
// key: 'trademarkName',
// align: 'center',
// ellipsis: {
// showTitle: true,
// },
// width: 200,
// render: (_text, record) => (
// <span>
// {record.trademarkType == 'text' ? '文字' : record.trademarkType == 'image' ? '图形' : record.trademarkType == 'text-image' ? '图文' : ''}
// <span style={{
// display: record.trademarkType == 'image' ? 'none' : 'unset',
// }}>
// <span style={{
// display: record.trademarkType == '' ? 'none' : 'unset',
// }}>/</span>
// {record.trademarkName}</span>
// {/* {record} */}
// </span>
// )
},
{
title: '涉及类别',
dataIndex: 'trademarkTypeDTOS',
align: 'center',
key: 'trademarkTypeDTOS',
width: 150,
ellipsis: {
showTitle: true,
},
render: (trademarkTypeDTOS) => (
// trademarkTypeDTOS.map(
// <div>
// },
// {
// title: '涉及类别',
// dataIndex: 'trademarkTypeDTOS',
// align: 'center',
// key: 'trademarkTypeDTOS',
// width: 150,
// ellipsis: {
// showTitle: true,
// },
// render: (trademarkTypeDTOS) => (
// // trademarkTypeDTOS.map(
// // <div>
// </div>
// )
trademarkTypeDTOS.length > 0 ? (
trademarkTypeDTOS.map((item: any) => {
return (
<div key={item.id} title={item.name}>
{item.code} : {item.name}
</div>
)
// // </div>
// // )
// trademarkTypeDTOS.length > 0 ? (
// trademarkTypeDTOS.map((item: any) => {
// return (
// <div key={item.id} title={item.name}>
// 第{item.code}类 : {item.name}
// </div>
// )
})
) : '暂无'
)
// })
// ) : '暂无'
// )
},
{
title: '商标图样',
dataIndex: 'trademarkPhoto',
align: 'center',
key: 'trademarkPhoto',
width: 200,
render: (text) => (
// },
// {
// title: '商标图样',
// dataIndex: 'trademarkPhoto',
// align: 'center',
// key: 'trademarkPhoto',
// width: 200,
// render: (text) => (
text ? (
<Image src={showImage(text, false)}
height={100}
style={{
maxWidth: 200,
}}
>
</Image>
) : '暂无'
)
},
{
title: '状态',
dataIndex: 'trademarkStatus',
align: 'center',
key: 'trademarkStatus',
width: 110,
render: (text, record) => (
<div>
{text == '-1' ?
<div style={{
color: 'red',
cursor: 'pointer',
}}
title='点击查看原因'
onClick={() => {
setCheckRemark(record.checkRemark)
// text ? (
// <Image src={showImage(text, false)}
// height={100}
// style={{
// maxWidth: 200,
// }}
// >
// </Image>
// ) : '暂无'
// )
// },
// {
// title: '状态',
// dataIndex: 'trademarkStatus',
// align: 'center',
// key: 'trademarkStatus',
// width: 110,
// render: (text, record) => (
// <div>
// {text == '-1' ?
// <div style={{
// color: 'red',
// cursor: 'pointer',
// }}
// // title='点击查看原因'
// onClick={() => {
// setCheckRemark(record.checkRemark)
setModal(true)
// console.log(record.checkRemark);
}}
>
<div></div>
<div>退</div>
<div style={{
fontSize: '12px',
}}>()</div>
</div>
: text == '0' ?
<span
style={{
color: 'skyblue',
}}
></span>
: text == '1' ?
<span
style={{
color: 'green',
}}
></span>
: text == '2' ?
<span
style={{
color: 'rgb(0, 127, 255)',
}}
></span>
: text == '3' ?
<span
style={{
color: 'rgb(136, 185, 233)',
}}
></span>
: text == '4' ?
<span
style={{
color: 'red',
}}
></span>
: text == '5' ?
<span
style={{
color: 'rgb(136, 185, 233)',
}}
></span>
: text == '6' ?
<span
style={{
color: 'rgb(136, 185, 233)',
}}
></span>
: text == '7' ?
<span
style={{
color: 'rgb(136, 185, 233)',
}}
></span>
: text == '8' ?
<span
style={{
color: 'rgb(136, 185, 233)',
}}
></span>
: text == '9' ?
<span
style={{
color: 'rgb(136, 185, 233)',
}}
></span> : '未知'
}
</div>
)
},
// setModal(true)
// // console.log(record.checkRemark);
// }}
// >
// <div>审核未通过</div>
// <div>已退款</div>
// <div style={{
// fontSize: '12px',
// }}>(点击查看原因)</div>
// </div>
// : text == '0' ?
// <span
// style={{
// color: 'skyblue',
// }}
// >待付款</span>
// : text == '1' ?
// <span
// style={{
// color: 'green',
// }}
// >已付款</span>
// : text == '2' ?
// <span
// style={{
// color: 'rgb(0, 127, 255)',
// }}
// >审核中</span>
// : text == '3' ?
// <span
// style={{
// color: 'rgb(136, 185, 233)',
// }}
// >提交至商标局</span>
// : text == '4' ?
// <span
// style={{
// color: 'red',
// }}
// >不予受理</span>
// : text == '5' ?
// <span
// style={{
// color: 'rgb(136, 185, 233)',
// }}
// >已受理</span>
// : text == '6' ?
// <span
// style={{
// color: 'rgb(136, 185, 233)',
// }}
// >已发初审公告</span>
// : text == '7' ?
// <span
// style={{
// color: 'rgb(136, 185, 233)',
// }}
// >部分驳回</span>
// : text == '8' ?
// <span
// style={{
// color: 'rgb(136, 185, 233)',
// }}
// >全部驳回</span>
// : text == '9' ?
// <span
// style={{
// color: 'rgb(136, 185, 233)',
// }}
// >已下证</span> : '未知'
// }
// </div>
// )
// },
// {
// title: '申请人',
// // 使用数组形式访问嵌套对象属性
// dataIndex: ['trademarkUserDTO', 'name'],
// align: 'center',
// // 修改 key 保证唯一性
// key: 'trademarkUserDTOName',
// width: 150,
// render: (text) => (
// <span>
// {text || '-'}
// </span>
// )
// },
// // {
// // title: '申请人证件号',
// // dataIndex: ['trademarkUserDTO', 'name'],
// // align: 'center',
// // key: 'appOrderId',
// // width: 150,
// // render: (text) => (
// // <span>
// // {text ? text : '未完善'}
// // </span>
// // )
// // },
// {
// title: '联系人',
// // 使用数组形式访问嵌套对象属性
// dataIndex: ['trademarkUserDTO', 'contactName'],
// align: 'center',
// // 修改 key 保证唯一性
// key: 'trademarkUserDTOContactName',
// width: 150,
// render: (text) => (
// <span>
// {text || '-'}
// </span>
// )
// },
{
title: '操作',
// dataIndex: 'contractManagementId',
align: 'center',
// key: 'appOrderId',
width: 150,
// bordeLeft: true,
fixed: 'right',
render: (record) => (
<div style={{
// // {
// // title: '申请人',
// // // 使用数组形式访问嵌套对象属性
// // dataIndex: ['trademarkUserDTO', 'name'],
// // align: 'center',
// // // 修改 key 保证唯一性
// // key: 'trademarkUserDTOName',
// // width: 150,
// // render: (text) => (
// // <span>
// // {text || '-'}
// // </span>
// // )
// // },
// // // {
// // // title: '申请人证件号',
// // // dataIndex: ['trademarkUserDTO', 'name'],
// // // align: 'center',
// // // key: 'appOrderId',
// // // width: 150,
// // // render: (text) => (
// // // <span>
// // // {text ? text : '未完善'}
// // // </span>
// // // )
// // // },
// // {
// // title: '联系人',
// // // 使用数组形式访问嵌套对象属性
// // dataIndex: ['trademarkUserDTO', 'contactName'],
// // align: 'center',
// // // 修改 key 保证唯一性
// // key: 'trademarkUserDTOContactName',
// // width: 150,
// // render: (text) => (
// // <span>
// // {text || '-'}
// // </span>
// // )
// // },
// {
// title: '操作',
// // dataIndex: 'contractManagementId',
// align: 'center',
// // key: 'appOrderId',
// width: 150,
// // bordeLeft: true,
// fixed: 'right',
// render: (record) => (
// <div style={{
}}>
// }}>
<span style={{
cursor: 'pointer',
color: '#007FFF',
display: record.trademarkModeName === '智能申请注册' ? 'unset' : 'none',
// <span style={{
// cursor: 'pointer',
// color: '#007FFF',
// display: record.trademarkModeName === '智能申请注册' ? 'unset' : 'none',
}} onClick={() => {
nav(`/trademark-ai-edit/${record.trademarkId}`, {
// state: {
// trademarkMode: record.trademarkMode, //申请类型id
// trademarkModeName: record.trademarkModeName, //申请类型名称
// trademarkId: record.trademarkId, //商标id
// }} onClick={() => {
// nav(`/trademark-ai-edit/${record.trademarkId}`, {
// // state: {
// // trademarkMode: record.trademarkMode, //申请类型id
// // trademarkModeName: record.trademarkModeName, //申请类型名称
// // trademarkId: record.trademarkId, //商标id
// }
})
// console.log(record.checkStatus);
// // }
// })
// // console.log(record.checkStatus);
}}>{
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={{
cursor: 'pointer',
color: '#007FFF',
position: 'relative',
// display: record.waitCorrectionCount > 0 ? 'unset' : 'none',
display: Number(record.trademarkStatus) >= 4 ? 'unset' : 'none',
marginLeft: 10,
}}
onClick={async () => {
setTrademarkId(record.trademarkId)
setVisible(true)
getBuySupplementList(1, record.trademarkId)
}}
// }}>{
// 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={{
// cursor: 'pointer',
// color: '#007FFF',
// position: 'relative',
// // display: record.waitCorrectionCount > 0 ? 'unset' : 'none',
// display: Number(record.trademarkStatus) >= 4 && record.trademarkModeName === '智能申请注册' ? 'unset' : 'none',
// marginLeft: 10,
// }}
// onClick={async () => {
// setTrademarkId(record.trademarkId)
// setVisible(true)
// getBuySupplementList(1, record.trademarkId)
// }}
>
<div style={{
display: record.waitCorrectionCount > 0 ? 'unset' : 'none',
}}>
<div style={{
// >进度沟通
// <div style={{
// display: record.waitCorrectionCount > 0 ? 'unset' : 'none',
// }}>
// <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',
// 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>
</span>
</div>
// }}>
// {record.waitCorrectionCount}
// </div>
// </div>
// </span>
// </div>
)
// )
},
]
// },
// ]
const [disabled, setDisabled] = useState(false)
const getSupplementDetail = async (id: string) => {
try {
@ -649,6 +653,9 @@ export default function TrademarkMall() {
]
const [loading, setLoading] = useState(false)
const [page, setPage] = useState(1)
// useEffect(() => {
// getTrademarkList(page)
// }, [page])
const [total, setTotal] = useState(0)
const getTrademarkList = async (page: any) => {
try {
@ -694,7 +701,7 @@ export default function TrademarkMall() {
return (
<Spin tip="正在处理,请稍后..." size="small" spinning={loading}>
<div className='appElectionBox' style={{ height: `${height}px`, overflow: 'auto' }}>
<div className='appElectionBox' style={{ height: `${height}px`, overflow: 'auto', background: 'none', padding: '0' }}>
{contextHolder}
{data.length <= 0 ? (<div style={{ height: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center', flexDirection: 'column' }}>
@ -707,13 +714,266 @@ export default function TrademarkMall() {
}}></div>
</div>) : (
<div className='' >
<div style={{
{/* <div style={{
height: `${height - 80}px`,
// background: "pink" ,
paddingTop: 20
}}> */}
<div className='trademarkGoodsBox' style={{
height: `${height - 80}px`,
// background: "pink" ,
// paddingTop: 20,
paddingBottom: 20,
overflowY: 'auto'
}}>
{
data.map((item: any) => {
return (
<div className='trademarksmallBox' key={item.trademarkId}>
<div className='trademarkBoxTop'>
<div className='trademarkBoxTopL' >
<span>
{item.trademarkType == 'text' ? '文字' : item.trademarkType == 'image' ? '图形' : item.trademarkType == 'text-image' ? '图文' : ''}
<span style={{
display: item.trademarkType == 'image' ? 'none' : 'unset',
}}>
<span style={{
display: item.trademarkType == '' ? 'none' : 'unset',
}}>/</span>
<span title={
item.trademarkName
}
style={{
cursor: 'pointer'
}}
>{item.trademarkName}</span>
</span>
{/* {record} */}
</span>
</div>
<div
onClick={async () => {
setTrademarkId(item.trademarkId)
setVisible(true)
getBuySupplementList(1, item.trademarkId)
}}
style={{
cursor: 'pointer',
// color: '#007FFF',
position: 'relative',
// display: record.waitCorrectionCount > 0 ? 'unset' : 'none',
display: Number(item.trademarkStatus) >= 4 ? 'unset' : 'none',
}}
>
<div style={{
display: item.waitCorrectionCount > 0 ? 'unset' : 'none',
}}>
<div style={{
<Table
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',
}}>
{item.waitCorrectionCount}
</div>
</div>
<div style={{
display: 'flex',
}}>
<div style={{
marginTop: 5,
// background:'red'
marginRight: 5
}}>
<img src={talk} alt="" height={18} />
</div>
<div
>
</div>
</div>
</div>
</div>
<div className='tradermarkBoxCen'>
<div>{item.trademarkModeName}</div>
<div style={{
cursor: 'pointer',
color: '#007FFF',
display: item.trademarkModeName === '智能申请注册' ? 'unset' : 'none',
}} onClick={() => {
nav(`/trademark-ai-edit/${item.trademarkId}`, {
// state: {
// trademarkMode: record.trademarkMode, //申请类型id
// trademarkModeName: record.trademarkModeName, //申请类型名称
// trademarkId: record.trademarkId, //商标id
// }
})
// console.log(record.checkStatus);
}}>
{
item.trademarkStatus == '2' || item.trademarkStatus == '3' || item.trademarkStatus == '4' || item.trademarkStatus == '5' || item.trademarkStatus == '6' || item.trademarkStatus == '7' || item.trademarkStatus == '8' || item.trademarkStatus == '9' ? '查看' : '编辑'
}
</div>
</div>
<div className='tradermarkBoxImg'>
<div>
<Image
className="trademark-image"
src={item.trademarkPhoto ? showImage(item.trademarkPhoto, false) : nogoods}
style={{ maxWidth: '100%' }}
height={150}
></Image>
</div>
<div style={{
marginTop: 20,
fontSize: 16,
color: '#9B833C'
}}>
{item.trademarkStatus == '-1' ?
<div style={{
color: 'red',
cursor: 'pointer',
}}
title='点击查看原因'
onClick={() => {
setCheckRemark(item.checkRemark)
setModal(true)
// console.log(record.checkRemark);
}}
>
<div title='点击查看原因' style={{
position: 'relative',
// background:'pink'
}}>
<div style={{
position: 'absolute',
top: 25,
fontSize: 12,
left: 30
}}>
()
</div>
(退)</div>
</div>
: item.trademarkStatus == '0' ?
<span
style={{
// color: 'skyblue',
}}
></span>
: item.trademarkStatus == '1' ?
<span
style={{
// color: 'green',
}}
></span>
: item.trademarkStatus == '2' ?
<span
style={{
// color: 'rgb(0, 127, 255)',
}}
>{item.trademarkMode == '1'?'审核中':'已线下沟通'}</span>
// : item.trademarkStatus == '2' && item.trademarkMode != '1' ?
// <span
// style={{
// // color: 'rgb(0, 127, 255)',
// }}
// >已线下沟通</span>
: item.trademarkStatus == '3'?
<span
style={{
// color: 'rgb(136, 185, 233)',
}}
>{item.trademarkMode == '1'?'提交至商标局':'已接单并提交至商标局'}</span>
// : item.trademarkStatus == '3' && item.trademarkMode != '1' ?
// <span
// style={{
// // color: 'rgb(136, 185, 233)',
// }}
// >已接单并提交至商标局</span>
: item.trademarkStatus == '4' ?
<span
style={{
// color: 'red',
}}
></span>
: item.trademarkStatus == '5' ?
<span
style={{
// color: 'rgb(136, 185, 233)',
}}
></span>
: item.trademarkStatus == '6' ?
<span
style={{
// color: 'rgb(136, 185, 233)',
}}
></span>
: item.trademarkStatus == '7' ?
<span
style={{
// color: 'rgb(136, 185, 233)',
}}
></span>
: item.trademarkStatus == '8' ?
<span
style={{
// color: 'rgb(136, 185, 233)',
}}
></span>
: item.trademarkStatus == '9' ?
<span
style={{
// color: 'rgb(136, 185, 233)',
}}
></span> : '未知'
}
</div>
</div>
<div className='tradermarkBoxBot'>
<div className='tradermarkBoxBotB'>
{
item.trademarkTypeDTOS.length > 0 ? (
item.trademarkTypeDTOS.map((item: any) => {
return (
<div key={item.id} title={item.name}>
{item.code} : {item.name}
</div>
)
})
) : '暂无'
}
</div>
</div>
</div>
)
})
}
{/* </div> */}
{/* <Table
scroll={{ y: `${height - 150}px` }}
dataSource={data}
columns={columns}
@ -725,10 +985,12 @@ export default function TrademarkMall() {
style={{ textAlign: 'center' }} // 设置表格内容居中显示
rowKey="trademarkId" // 指定数据项的唯一标识符
locale={{ emptyText: '暂无数据' }}
></Table>
></Table> */}
</div>
<div className='product-release-pagination'>
<div className='product-release-pagination' style={{
borderTop: '1px solid #d6d6d6ff'
}}>
<Pagination
showSizeChanger={false}
current={page} total={total} defaultPageSize={10} onChange={(page) => {
@ -888,7 +1150,7 @@ export default function TrademarkMall() {
// const uids = upFileArray.map((file: any) => file.response.data.fileId).join(',');
// console.log('提取的 uid 字符串:', uids);
submitData({
correctionFiles:value.upFile ? value.upFile : '',
correctionFiles: value.upFile ? value.upFile : '',
correctionRemark: value.upCorrectionRemark,
})

View File

@ -63,4 +63,80 @@
display: flex;
justify-content: center;
margin-top: 50px;
}
.trademarkGoodsBox {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 10px;
}
.trademarksmallBox {
/* 可以添加其他样式 */
max-height: 470px;
background-color: #ffffff;
/* border-radius: 8px; */
/* padding: 16px; */
/* cursor: pointer; */
}
.trademarkBoxTop {
height: 30px;
padding: 10px;
background-color: #F7F1DE;
display: flex;
align-items: center;
justify-content: space-between;
color: #E7AD00;
font-size: 16px;
}
.trademarkBoxTopL {
width: 65%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
/* background-color: red; */
}
.tradermarkBoxCen {
height: 20px;
padding: 10px;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 16px;
/* background-color: pink; */
}
.tradermarkBoxImg {
height: 200px;
padding: 20px;
/* background-color: skyblue; */
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.tradermarkBoxBot {
height: 100px;
padding: 20px;
background-color: #ffffff;
}
.tradermarkBoxBotB{
/* width: 100%; */
height: 100%;
background-color: #F9F9F9;
overflow-y: auto;
padding: 10px;
box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
line-height: 25px;
font-size: 16px;
}

View File

@ -1843,7 +1843,7 @@ export default function Index() {
setRrefunSearchBox(false)
setCorrectionSearchBox(false)
setContractSearchBox(false)
setNow('首页 / 电子软著APP')
setNow('首页 / 申请电子软著')
setSellSearchBox(false)
setSellOrderSearchBox(false)
setCopyrightSearchBox(false)
@ -1872,7 +1872,7 @@ export default function Index() {
setRrefunSearchBox(false)
setCorrectionSearchBox(false)
setContractSearchBox(false)
setNow('首页 / 商标商城')
setNow('首页 / 申请商标')
setSellSearchBox(false)
setSellOrderSearchBox(false)
setCopyrightSearchBox(false)
@ -2248,7 +2248,7 @@ export default function Index() {
<img src={getMenuActive() == 'APP' ? appnew : app} width={21} height={23} alt=""
style={{ marginLeft: 20, marginRight: 9 }}
/>
<div>APP</div>
<div></div>
</div>
<div style={{
@ -2282,7 +2282,7 @@ export default function Index() {
<img src={getMenuActive() == 'TRADEMARK' ? tranew : tra} width={21} height={21} alt=""
style={{ marginLeft: 20, marginRight: 9, marginTop: 3 }}
/>
<div></div>
<div></div>
</div>
@ -3782,8 +3782,9 @@ export default function Index() {
// { value: '1', label: '未付款' },
{ value: '2', label: '资料填写中' },
{ value: '3', label: '资料审核中' },
{ value: '4', label: '线下申请中' },
{ value: '5', label: '已下证' },
{ value: '4', label: '待签字盖章' },
{ value: '5', label: '线下申请中' },
{ value: '6', label: '平台已下证' },
]}
>
@ -3831,7 +3832,7 @@ export default function Index() {
<Select
value={trademarkStatus}
allowClear
style={{ height: '31px', width: '150px', marginLeft: 5 }}
style={{ height: '31px', width: '160px', marginLeft: 5 }}
onChange={(value: string) => {
setTrademarkStatus(value)
@ -3841,7 +3842,7 @@ export default function Index() {
{ value: '-1', label: '未通过' },
{ value: '0', label: '待付款' },
{ value: '1', label: '已付款' },
{ value: '2', label: '审核中' },
{ value: '2', label: '审核中/已线下沟通' },
{ value: '3', label: '提交至商标局' },
{ value: '4', label: '不予受理' },
{ value: '5', label: '已受理' },
@ -4368,6 +4369,12 @@ export default function Index() {
})}
</div>
<div style={{
marginTop:10,
fontSize:16,
fontWeight:700,
color:'red'
}}>:下证时间以提交盖章页第二个工作日算起</div>
<div className='appGoodsBtnBox'>
<div className='appGoodsBtn' onClick={async () => {
if (appGoodsId) {

BIN
src/static/nogoods.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
src/static/talk.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB