This commit is contained in:
lyp 2025-06-25 13:58:43 +08:00
parent fdf06a145d
commit 1520254e75
7 changed files with 263 additions and 161 deletions

View File

@ -223,6 +223,8 @@ export const uploadDepute = (trademarkId:any,params:any) => aiShopRequest.post(`
// 第六步上传 // 第六步上传
export const uploadSix = (trademarkId:any) => aiShopRequest.post(`/aishop/api/trademark/save6/${trademarkId}`) export const uploadSix = (trademarkId:any) => aiShopRequest.post(`/aishop/api/trademark/save6/${trademarkId}`)
//专家辅助注册/至尊无忧注册
export const expertRegister = (params:any) => aiShopRequest.post(`/aishop/api/trademark/save1L`,params)
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

View File

@ -19,9 +19,10 @@ export default function TrademarkAiEdit() {
const getOrderList = async () => { const getOrderList = async () => {
try { try {
const res = await getOrder(trademarkId) const res = await getOrder(trademarkId)
console.log('订单详情列表', res); // console.log('订单详情列表', res);
setOrderList(res) setOrderList(res)
} catch (error: any) { } catch (error: any) {
setOrderList([])
if (error.response) { if (error.response) {
const data = error.response.data; const data = error.response.data;
messageApi.open({ messageApi.open({
@ -44,6 +45,7 @@ export default function TrademarkAiEdit() {
const [trademarkMode, setTrademarkMode] = useState(state?.trademarkMode); const [trademarkMode, setTrademarkMode] = useState(state?.trademarkMode);
const [trademarkModeName, setTrademarkModeName] = useState(state?.trademarkModeName); const [trademarkModeName, setTrademarkModeName] = useState(state?.trademarkModeName);
const [trademarkModePrice, setTrademarkModePrice] = useState(0) const [trademarkModePrice, setTrademarkModePrice] = useState(0)
const [trademarkModeOldPrice, setTrademarkModeOldPrice] = useState(0)
// const [trademarkStatus, setTrademarkStatus] = useState('') // const [trademarkStatus, setTrademarkStatus] = useState('')
const [editOneData, setEditOneData] = useState<any>({ const [editOneData, setEditOneData] = useState<any>({
trademarkType: '', //商标类型 text 文字 image 图形 text-image 图文 trademarkType: '', //商标类型 text 文字 image 图形 text-image 图文
@ -90,6 +92,7 @@ export default function TrademarkAiEdit() {
setTrademarkMode(res.trademarkMode) setTrademarkMode(res.trademarkMode)
setTrademarkModeName(res.trademarkModeName) setTrademarkModeName(res.trademarkModeName)
setTrademarkModePrice(res.trademarkModePrice / 100) setTrademarkModePrice(res.trademarkModePrice / 100)
setTrademarkModeOldPrice(res.trademarkModeOldPrice / 100)
setEditOneData({ setEditOneData({
trademarkType: res.trademarkType, //商标类型 text 文字 image 图形 text-image 图文 trademarkType: res.trademarkType, //商标类型 text 文字 image 图形 text-image 图文
trademarkName: res.trademarkName, //商标名称 trademarkName: res.trademarkName, //商标名称
@ -269,6 +272,7 @@ export default function TrademarkAiEdit() {
<EditTwo <EditTwo
getOrderList={getOrderList} getOrderList={getOrderList}
trademarkModePrice={trademarkModePrice} trademarkModePrice={trademarkModePrice}
trademarkModeOldPrice={trademarkModeOldPrice}
setEditTwoData={setEditTwoData} setEditTwoData={setEditTwoData}
editTwoData={editTwoData} editTwoData={editTwoData}
trademarkId={trademarkId} //商标id trademarkId={trademarkId} //商标id
@ -293,6 +297,7 @@ export default function TrademarkAiEdit() {
}}> }}>
<EditFour <EditFour
// key={editProcess} // key={editProcess}
trademarkType={editOneData.trademarkType}
orderList={orderList} orderList={orderList}
trademarkStatus={trademarkStatus} trademarkStatus={trademarkStatus}
setTrademarkStatus={setTrademarkStatus} setTrademarkStatus={setTrademarkStatus}

View File

@ -1,151 +1,202 @@
import { useEffect, useState } from 'react' import { useEffect, useState, useContext } from 'react'
import './trademark-edit.css' import './trademark-edit.css'
import { useLocation } from 'react-router-dom'; import { useLocation, useNavigate } from 'react-router-dom';
import { expertRegister } from '../../request/api'
import { GlobalDispatchContext, reloadUser } from "../../context/GlobalContext";
// import { useNavigate } from 'react-router-dom';
import { import {
Form, Form,
Input, Button, Input, Button,
Modal Modal,
message,
Spin
} from 'antd'; } from 'antd';
import useMessage from "antd/es/message/useMessage";
const { TextArea } = Input; const { TextArea } = Input;
export default function TrademarkExpertEdit() { export default function TrademarkExpertEdit() {
const nav = useNavigate()
const globalDispatchContext = useContext(GlobalDispatchContext);
const [messageApi, contextHolder] = useMessage();
const { state } = useLocation() const { state } = useLocation()
const height = window.innerHeight - 180; const height = window.innerHeight - 180;
const [form] = Form.useForm<any>(); const [form] = Form.useForm<any>();
const [upLodaing, setUpLodaing] = useState(false)
const [modal, setModal] = useState(false) const [modal, setModal] = useState(false)
const [trademarkName, setTrademarkName] = useState('') //名称
const [trademarkContent, setTrademarkContent] = useState('') //描述
const onFinish = (values: any) => { const onFinish = (values: any) => {
console.log(values); console.log(values);
setTrademarkName(values.trademarkName)
setTrademarkContent(values.trademarkContent ? values.trademarkContent : '')
setModal(true) setModal(true)
} }
useEffect(() => { useEffect(() => {
console.log('state', state); console.log('state', state);
}, []) }, [])
return ( return (
<div className='trademarkExpertBox' style={{ height: `${height}px`, overflow: 'auto' }}> <Spin tip="正在提交,请稍后..." size="small" spinning={upLodaing}>
<div style={{ {contextHolder}
display: state.id == '2' ? 'unset' : 'none' <div className='trademarkExpertBox' style={{ height: `${height}px`, overflow: 'auto' }}>
}}> <div style={{
<div className='trademarkTop'> display: state.id == '2' ? 'unset' : 'none'
<div className='trademarkTopL'> }}>
! <div className='trademarkTop'>
</div> <div className='trademarkTopL'>
<div> !
</div>
<div>
</div>
</div> </div>
</div> </div>
</div> <div style={{
<div style={{ display: state.id == '3' ? 'unset' : 'none'
display: state.id == '3'? 'unset' : 'none' }}>
}}> <div className='trademarkTop'>
<div className='trademarkTop'> <div className='trademarkTopL'>
<div className='trademarkTopL'> !
! </div>
</div> <div>
<div> <div></div>
<div></div> <div style={{
<div style={{ marginTop: '5px'
marginTop: '5px' }}>;</div>
}}>;</div> <div style={{
<div style={{ marginTop: '5px'
marginTop: '5px' }}></div>
}}></div> </div>
</div> </div>
</div> </div>
</div> <div className='trademarkForm '>
<div className='trademarkForm '>
<Form <Form
name="Form" name="Form"
form={form} form={form}
onFinish={onFinish} onFinish={onFinish}
initialValues={{ softWare: '' }} initialValues={{ softWare: '' }}
style={{ maxWidth: 600, marginTop: 20 }} style={{ maxWidth: 600, marginTop: 20 }}
>
<div className='trademarkForm-item'>
<div className='trademarkForm-title'>
<span style={{
color: 'red'
}}>*</span>
</div>
<div className='trademarkInput'>
<Form.Item
name="trademarkName"
rules={[{ required: true, message: '请输入商标名称!' }]}
>
<Input style={{
width: 500,
height: 46,
background: '#FFF',
color: 'black'
}}
placeholder="商标名称"
>
</Input>
</Form.Item>
</div>
</div>
<div className='trademarkForm-item'>
<div className='trademarkForm-title'>
</div>
<div className='trademarkInput'>
<Form.Item
name="trademarkContent"
// rules={[{ required: true, message: '请输入商标名称!' }]}
>
<TextArea style={{
width: 500,
height: 200,
background: '#FFF',
color: 'black',
resize: 'none'
}}
placeholder="需求描述"
>
</TextArea>
</Form.Item>
</div>
</div>
<div style={{
textWrap: 'nowrap',
}}>1</div>
<div style={{
textWrap: 'nowrap',
}}></div>
<Form.Item>
<div className='trademark-btn'>
<Button type="primary" htmlType="submit" style={{
width: 273,
height: 52
}}
>
</Button>
</div>
</Form.Item>
</Form>
</div>
<Modal title="提示"
centered
destroyOnClose={true}
open={modal}
onCancel={() => { setModal(false) }}
okText='确定'
cancelText='取消'
onOk={async () => {
setModal(false)
try {
setUpLodaing(true)
await expertRegister({
trademarkName,
trademarkContent,
trademarkMode: state.id,
trademarkModeName: state.title
})
reloadUser(messageApi, globalDispatchContext).then(() => {
setModal(false)
message.success('付款成功');
nav(-1)
});
setUpLodaing(false)
} catch (error: any) {
setUpLodaing(false)
// setAddLoading(false)
if (error.response) {
const data = error.response.data;
message.error(data.msg ? data.msg : `${data.path}(${data.status})`)
} else {
console.error(error)
}
} finally {
// setAddLoading(false)
setUpLodaing(false)
}
// setModal(false)
}}
> >
<div className='trademarkForm-item'> {state.price}
<div className='trademarkForm-title'> </Modal>
<span style={{
color: 'red'
}}>*</span>
</div>
<div className='trademarkInput'>
<Form.Item
name="title"
rules={[{ required: true, message: '请输入商标名称!' }]}
>
<Input style={{
width: 500,
height: 46,
background: '#FFF',
color: 'black'
}}
placeholder="商标名称"
>
</Input>
</Form.Item>
</div>
</div>
<div className='trademarkForm-item'>
<div className='trademarkForm-title'>
</div>
<div className='trademarkInput'>
<Form.Item
name="text"
// rules={[{ required: true, message: '请输入商标名称!' }]}
>
<TextArea style={{
width: 500,
height: 200,
background: '#FFF',
color: 'black',
resize: 'none'
}}
placeholder="需求描述"
>
</TextArea>
</Form.Item>
</div>
</div>
<div style={{
textWrap: 'nowrap',
}}>1</div>
<div style={{
textWrap: 'nowrap',
}}></div>
<Form.Item>
<div className='trademark-btn'>
<Button type="primary" htmlType="submit" style={{
width: 273,
height: 52
}}
>
</Button>
</div>
</Form.Item>
</Form>
</div> </div>
<Modal title="提示" </Spin>
centered
destroyOnClose={true}
open={modal}
onCancel={() => { setModal(false) }}
okText='确定'
cancelText='取消'
>
{state.price}
</Modal>
</div>
) )
} }

View File

@ -50,9 +50,13 @@ export default function TrademarkMall() {
width: 200, width: 200,
render: (_text, record) => ( render: (_text, record) => (
<span> <span>
{record.trademarkType == 'text' ? '文字' : record.trademarkType == 'image' ? '图形' : record.trademarkType == 'text-image' ? '图文' : '未知'} <span style={{ {record.trademarkType == 'text' ? '文字' : record.trademarkType == 'image' ? '图形' : record.trademarkType == 'text-image' ? '图文' : ''} <span style={{
display: record.trademarkType == 'image' ? 'none' : 'unset', display: record.trademarkType == 'image' ? 'none' : 'unset',
}}>/{record.trademarkName}</span> }}>
<span style={{
display: record.trademarkType == '' ? 'none' : 'unset',
}}>/</span>
{record.trademarkName}</span>
{/* {record} */} {/* {record} */}
</span> </span>
) )
@ -66,14 +70,16 @@ export default function TrademarkMall() {
key: 'trademarkPhoto', key: 'trademarkPhoto',
width: 200, width: 200,
render: (text) => ( render: (text) => (
<Image src={showImage(text, false)}
height={100}
style={{
maxWidth: 200,
}}
>
</Image> text ? (
<Image src={showImage(text, false)}
height={100}
style={{
maxWidth: 200,
}}
>
</Image>
) : '暂无'
) )
}, },
{ {
@ -85,7 +91,7 @@ export default function TrademarkMall() {
render: (text) => ( render: (text) => (
<span> <span>
{text == '-1' ? {text == '-1' ?
<span ></span> <span ></span>
: text == '0' ? : text == '0' ?
<span <span
style={{ style={{
@ -105,47 +111,56 @@ export default function TrademarkMall() {
style={{ style={{
color: 'rgb(0, 127, 255)', color: 'rgb(0, 127, 255)',
}} }}
></span> ></span>
: text == '3' ? : text == '3' ?
<span <span
style={{ style={{
color: 'rgb(136, 185, 233)', color: 'rgb(136, 185, 233)',
}} }}
></span> ></span>
: text == '4' ? : text == '4' ?
<span <span
style={{ style={{
color: 'rgb(136, 185, 233)', color: 'rgb(136, 185, 233)',
}} }}
></span> ></span>
: text == '5' ? : text == '5' ?
<span <span
style={{ style={{
color: 'rgb(136, 185, 233)', color: 'rgb(136, 185, 233)',
}} }}
></span> ></span>
: text == '6' ? : text == '6' ?
<span <span
style={{ style={{
color: 'rgb(136, 185, 233)', color: 'rgb(136, 185, 233)',
}} }}
></span> ></span>
: text == '7' ? : text == '7' ?
<span <span
style={{ style={{
color: 'rgb(136, 185, 233)', color: 'rgb(136, 185, 233)',
}} }}
></span> ></span>
: '未知' :
text == '8' ?
<span
style={{
color: 'rgb(136, 185, 233)',
}}
></span>:'未知'
} }
</span> </span>
) )
}, },
// { // {
// title: '申请人', // title: '申请人',
// // 使用数组形式访问嵌套对象属性 // // 使用数组形式访问嵌套对象属性
@ -200,7 +215,7 @@ export default function TrademarkMall() {
<div style={{ <div style={{
cursor: 'pointer', cursor: 'pointer',
color: '#007FFF', color: '#007FFF',
display: record.trademarkStatus != '-1' ? 'unset' : 'none', display: record.trademarkStatus != '-1' && record.trademarkModeName === '智能申请注册' ? 'unset' : 'none',
}} onClick={() => { }} onClick={() => {
nav(`/trademark-ai-edit/${record.trademarkId}`, { nav(`/trademark-ai-edit/${record.trademarkId}`, {
@ -215,8 +230,8 @@ export default function TrademarkMall() {
}}>{ }}>{
record.trademarkStatus == '2' ? '查看' : '编辑' record.trademarkStatus == '2' || record.trademarkStatus == '3'? '查看' : '编辑'
}</div> }</div>
) )

View File

@ -1,7 +1,7 @@
import { useState, useContext, useEffect } from 'react' import { useState, useContext, useEffect } from 'react'
import './edit-four.css' import './edit-four.css'
import { Button, Table, Modal, message, Spin } from 'antd' import { Button, Table, Modal, message, Spin } from 'antd'
import { orderPay, getOrder } from '../../../../request/api' import { orderPay } from '../../../../request/api'
// import { GlobalDispatchContext, reloadUser } from "../../context/GlobalContext.ts"; // import { GlobalDispatchContext, reloadUser } from "../../context/GlobalContext.ts";
import { GlobalDispatchContext, reloadUser } from "../../../../context/GlobalContext"; import { GlobalDispatchContext, reloadUser } from "../../../../context/GlobalContext";
import type { TableProps } from 'antd'; import type { TableProps } from 'antd';
@ -91,16 +91,26 @@ export default function EditFour(props: any) {
key: 'subNames', key: 'subNames',
render: (text) => { render: (text) => {
return ( return (
<span>{text.split(',').length}</span> <span title={text}>{text.split(',').length} : {text}</span>
) )
}, },
}, },
{ {
align: 'center', align: 'center',
width: 150, width: 150,
title: '商标类型', title: '商标类型',
dataIndex: 'goodsType', render: () => {
key: 'goodsType', if (props.trademarkType == 'text') {
return '文字'
}
if (props.trademarkType == 'image') {
return '图形'
}
if (props.trademarkType == 'text-image') {
return '图文'
}
},
}, },
{ {
align: 'center', align: 'center',
@ -122,9 +132,9 @@ export default function EditFour(props: any) {
]; ];
const [data, setData] = useState<any>([]) const [data, setData] = useState<any>([])
useEffect(() => { useEffect(() => {
if (props.orderList.length > 0) {
setData(props.orderList) setData(props.orderList)
}
}, [props.orderList]) }, [props.orderList])
// const data: DataType[] = [ // const data: DataType[] = [
// { // {
@ -171,12 +181,14 @@ export default function EditFour(props: any) {
<div className='editFourTop'> <div className='editFourTop'>
<div className='editFourTopL'></div> <div className='editFourTopL'></div>
<div className='editFourTopR'> <div className='editFourTopR'>
<span>数量 : 2</span> <span> : {data.length}</span>
<span style={{ <span style={{
marginLeft: '10px', marginLeft: '10px',
}}><span style={{ }}><span style={{
color: 'red', color: 'red',
}}>630.66</span></span> }}>{data.reduce((pre: number, cur: any) => pre + cur.money, 0) / 100}</span></span>
{/* 将data里的每一项得money取出来 获取和 */}
{/* reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。 */}
</div> </div>
@ -185,7 +197,8 @@ export default function EditFour(props: any) {
// 取消自带分页 // 取消自带分页
pagination={false} pagination={false}
dataSource={data} dataSource={data}
rowKey='id' rowKey='typeId'
/> />
</div> </div>
@ -277,7 +290,7 @@ export default function EditFour(props: any) {
}} }}
> >
999, {data.reduce((pre: number, cur: any) => pre + cur.money, 0) / 100},
</Modal> </Modal>
</div> </div>
</Spin> </Spin>

View File

@ -216,7 +216,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' ? 'none' : 'unset' display: props.trademarkStatus == '2' || props.trademarkStatus == '3' ? 'none' : 'unset'
}}> }}>
<div style={{ <div style={{
marginTop: '8px', marginTop: '8px',
@ -256,12 +256,28 @@ export default function EditSix(props: any) {
alignItems: 'center', alignItems: 'center',
// backgroundColor: 'rgb(238, 159, 159)', // backgroundColor: 'rgb(238, 159, 159)',
height: '65px', height: '65px',
fontSize:'18px', fontSize: '18px',
color:'green', color: 'green',
}}> }}>
... ...
</div> </div>
</div>
<div style={{
display: props.trademarkStatus == '3' ? 'unset' : 'none',
}}>
<div style={{
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
// backgroundColor: 'rgb(238, 159, 159)',
height: '65px',
fontSize: '18px',
color: 'green',
}}>
</div>
</div> </div>
<Modal <Modal
title="提示" title="提示"

View File

@ -75,7 +75,7 @@ export default function EditTwo(props: any) {
trademarkTypeDTOS: selectedTreeList trademarkTypeDTOS: selectedTreeList
}) })
props.setEditProcess(3); props.setEditProcess(3);
props.getOrderList()
setLoading(false) setLoading(false)
} catch (error: any) { } catch (error: any) {
setLoading(false) setLoading(false)
@ -531,7 +531,7 @@ export default function EditTwo(props: any) {
<span style={{ <span style={{
display: index > 0 ? 'unset' : 'none' display: index > 0 ? 'unset' : 'none'
}}> }}>
{formatNumber(item.price * totalCount <= item.price * 10 ? item.price * 10 : item.price * totalCount)} {formatNumber( totalCount <= 10 ? props.trademarkModeOldPrice :props.trademarkModeOldPrice + item.price * (totalCount - 10))}
</span> </span>
<span onClick={() => { <span onClick={() => {