Commit 3f7fc261 authored by 前端-钟卫鹏's avatar 前端-钟卫鹏

feat:对接品牌相关功能

parent 88bbcb19
......@@ -12,7 +12,7 @@ const ReutrnEle:React.FC<IProps> = (props) => {
const { description, logoSrc } = props
return <>
<span style={{fontSize:15,color:'#6B778CFF'}}><ArrowLeftOutlined /> {logoSrc?<img src={logoSrc} style={{width:48,height:48,margin:'0 14px'}}/>:description}</span>
<span style={{fontSize:15,color:'#6B778CFF'}}><ArrowLeftOutlined /> {logoSrc?<img src={logoSrc} style={{width:48,height:48,margin:'0 0 0 14px'}}/>:description}</span>
</>
}
......
......@@ -375,6 +375,7 @@ const ClassProperty: React.FC<{}> = () => {
<Option value={1}>实物商品</Option>
<Option value={2}>虚拟商品</Option>
<Option value={3}>服务商品</Option>
<Option value={4}>积分兑换商品</Option>
</Select>
</Form.Item>
</Col>
......
This diff is collapsed.
.proveBox{
width:175px;
height:120px;
border:1px solid rgba(235,236,240,1);
img {
height: 100%;
padding: 18px;
}
}
\ No newline at end of file
import React, { ReactNode, useRef, useEffect } from 'react'
import { history } from 'umi'
import { Button, Popconfirm, Card, message } from 'antd'
import { Button, Popconfirm, Card, message, Dropdown, Menu } from 'antd'
import { PageHeaderWrapper } from '@ant-design/pro-layout'
import {
PlusOutlined,
PlayCircleOutlined,
EyeOutlined,
PauseCircleOutlined
PauseCircleOutlined,
DownOutlined,
CaretDownOutlined
} from '@ant-design/icons'
import { StandardTable } from 'god'
import { ColumnType } from 'antd/lib/table/interface'
import { getTradeMarkLists, updateTradeMarkStatus, deleteTradeMark } from '@/services/trademark'
import { getTradeMarkLists, updateTradeMarkStatus, deleteTradeMark, applyCheckTradeMark } from '@/services/trademark'
import moment from 'moment'
const Trademark: React.FC<{}> = () => {
......@@ -42,7 +44,7 @@ const Trademark: React.FC<{}> = () => {
title: '申请时间',
dataIndex: 'applyTime',
key: 'applyTime',
render: (text: any, record: any) => moment(text).format('YYYY-MM-DD HH:mm:ss')
render: (text: any, record: any) => text && moment(text).format('YYYY-MM-DD HH:mm:ss')
},
{
title: '状态',
......@@ -90,17 +92,33 @@ const Trademark: React.FC<{}> = () => {
render: (text: any, record: any) => {
return (
<>
{record.status === 1 ? <Button type='link'>提交审核</Button> : ''}
{(record.status === 1 || record.status === 3) ? <Button type='link'>修改</Button> : ''}
<Popconfirm
title="确定要执行这个操作?"
onConfirm={() => handelDelete(record)}
onCancel={cancel}
okText="是"
cancelText="否"
>
<Button type='link'>删除</Button>
</Popconfirm>
{record.status === 1 ? <Button type='link' onClick={()=>handleApplyCheck(record)}>提交审核</Button> : ''}
{(record.status === 1 || record.status === 3) ?
<Dropdown overlay={
<Menu>
<Menu.Item>
<Button type='link' onClick={()=>history.push(`/memberCenter/commodityAbility/trademark/addBrand?id=${record.id}`)}>修改</Button>
</Menu.Item>
<Menu.Item>
<Button type='link' onClick={() => handelDelete(record)}>删除</Button>
</Menu.Item>
</Menu>
}>
<a className="ant-dropdown-link" onClick={e => e.preventDefault()}>
更多 <CaretDownOutlined />
</a>
</Dropdown> : <>
<Popconfirm
title="确定要执行这个操作?"
onConfirm={() => handelDelete(record)}
onCancel={cancel}
okText="是"
cancelText="否"
>
<Button type='link'>删除</Button>
</Popconfirm>
</>
}
</>
)
}
......@@ -135,6 +153,15 @@ const Trademark: React.FC<{}> = () => {
}
})
}
const handleApplyCheck = (record:any) => {
applyCheckTradeMark({id: record.id}).then(res=>{
if(res.code === 1000){
message.success(res.message)
//@ts-ignore
ref.current.reload()
}
})
}
return (
<PageHeaderWrapper>
......
import React, { useState, useRef, ReactNode } from 'react'
import React, { useState, useRef, ReactNode, useEffect } from 'react'
import { history } from 'umi'
import { Button, Steps, Card, Space, Tooltip, Row, Col, Descriptions, Table } from 'antd'
import { PageHeaderWrapper } from '@ant-design/pro-layout'
......@@ -10,129 +10,165 @@ import {
} from '@ant-design/icons'
import { ColumnType } from 'antd/lib/table/interface'
import ReutrnEle from '@/components/ReturnEle'
import { getTradeMarkDetail, getTradeMarkCheckRecord } from '@/services/trademark'
import moment from 'moment'
import styles from './index.less'
const { Step } = Steps;
const viewBrand: React.FC<{}> = () => {
const dataSource = [
{
key: '1',
name: '供应商',
status: 0,
action: '提交审核',
time: '2015-44-15 12:34:32',
advice: '同意',
},
{
key: '2',
name: '平台',
status: 2,
action: '品牌审核',
time: '2334-23-32 45:23:21',
advice: '重新整改',
},
];
const [queryId, setQueryId] = useState<number>(null)
const [brandInfo, setBrandInfo] = useState<any>({})
const [fixStep, setFixStep] = useState(0)
const [recordData, setRecordData] = useState<any[]>([])
useEffect(() => {
const { id } = history.location.query
if(id){
setQueryId(id)
getTradeMarkDetail({id: id}).then(res => {
console.log(res.data, 'data')
if(res.code===1000){
setBrandInfo(res.data)
if(res.data.status===1)
setFixStep(0)
else if(res.data.status===2)
setFixStep(1)
}
})
getTradeMarkCheckRecord({brandId: id}).then(res=> {
if(res.code===1000)
setRecordData(res.data)
})
}
}, [])
const columns: ColumnType<any>[] = [
{
title: '序号',
dataIndex: 'key',
key: 'key',
align: 'center',
dataIndex: 'id',
key: 'id',
render: (text, record, index)=> index+1
},
{
title: '角色',
dataIndex: 'name',
key: 'name',
align: 'center',
dataIndex: 'merchantRoleName',
key: 'merchantRoleName',
},
{
title: '状态',
dataIndex: 'status',
key: 'status',
align: 'center',
render: (text:any, record:any) => {
let component: ReactNode = null
if(record.status === 0)
component = (<><span className="commonStatusValid"></span>通过</>)
else if(record.status === 1)
component = (<><span className="commonStatusInvalid"></span>待提交</>)
if(record.status === 1)
component = (<><span className="commonStatusInvalid"></span>待提交审核</>)
else if(record.status === 2)
component = (<><span className="commonStatusModify"></span>待审核</>)
else if(record.status === 3)
component = (<><span className="commonStatusStop"></span>审核不通过</>)
else if(record.status === 4)
component = (<><span className="commonStatusValid"></span>审核通过</>)
return component
}
},
{
title: '操作',
dataIndex: 'action',
key: 'action',
align: 'center',
dataIndex: 'operation',
key: 'operation',
render: (text:any, record:any) => {
let component: ReactNode = null
if(record.operation === 1)
component = (<>新增</>)
else if(record.operation === 2)
component = (<>修改</>)
else if(record.operation === 3)
component = (<>审核</>)
return component
}
},
{
title: '操作时间',
dataIndex: 'time',
key: 'time',
align: 'center',
dataIndex: 'createTime',
key: 'createTime',
render: (text:any, record:any) => moment(text).format('YYYY-MM-DD HH:mm:ss')
},
{
title: '意见',
dataIndex: 'advice',
key: 'advice',
align: 'center',
dataIndex: 'checkRemark',
key: 'checkRemark',
},
];
const tips = <>证明材料<Tooltip title="这是一段描述的文字"><span>&nbsp;<QuestionCircleOutlined /></span></Tooltip></>
const fixStatus = (state: number) => {
if(state === 1)
return <><span className="commonStatusInvalid"></span>待提交审核</>
else if(state === 2)
return <><span className="commonStatusModify"></span>待审核</>
else if(state === 3)
return <><span className="commonStatusStop"></span>审核不通过</>
else if(state === 4)
return <><span className="commonStatusValid"></span>审核通过</>
else if(state === 5)
return <><span className="commonStatusValid"></span>已上架</>
else if(state === 6)
return <><span className="commonStatusStop"></span>已下架</>
}
const fixProveUrl = (proveInfo: any) => {
if(proveInfo){
let imgArray = Object.values(proveInfo)
return imgArray.map((item: string, index: number) => <Col key={index} span={3}>
<div className={styles.proveBox}>
<img src={item} alt=""/>
</div>
</Col>
)
}
}
const tips = <>证明材料<Tooltip title="证明材料:如商标注册证书、品牌授权证书等证明材料"><span>&nbsp;<QuestionCircleOutlined /></span></Tooltip></>
const content = <>
<Descriptions colon={true} style={{textAlign: 'center'}}>
<Descriptions.Item label="申请审核时间">2020-08-25 09:00:32</Descriptions.Item>
<Descriptions.Item label="审核状态"><span className="commonStatusValid"></span>通过</Descriptions.Item>
<Descriptions.Item label="品牌状态">有效</Descriptions.Item>
<Descriptions.Item label="申请审核时间">{brandInfo.applyTime && moment(brandInfo.applyTime).format('YYYY-MM-DD HH:mm:ss')}</Descriptions.Item>
<Descriptions.Item label="审核状态">
{
fixStatus(brandInfo?.status)
}
</Descriptions.Item>
<Descriptions.Item label="品牌状态">{brandInfo.isEnable?'有效':'无效'}</Descriptions.Item>
</Descriptions>
</>
return (
<PageHeaderWrapper
title="万宝龙"
title={brandInfo?.name}
onBack={() => history.goBack()}
backIcon={<ReutrnEle logoSrc='https://avatars1.githubusercontent.com/u/8186664?s=460&v=4' />}
backIcon={<ReutrnEle logoSrc={brandInfo?.logoUrl} />}
content={content}
extra={[
<Button icon={<FormOutlined />} key="1" type="primary">
<Button
icon={<FormOutlined />}
key="1"
type="primary"
onClick={()=>history.push(`/memberCenter/commodityAbility/trademark/addBrand?id=${brandInfo.id}`)}
disabled={!(brandInfo.status===1||brandInfo.status===3)}
>
修改
</Button>,
]}
>
<Space direction="vertical" style={{width:'100%'}}>
<Card headStyle={{borderBottom:'none'}} title={tips}>
<Row>
<Col span={4}>
<div>横版</div>
</Col>
<Col span={4}>
<div>竖版</div>
</Col>
<Col span={4}>
<div>上版</div>
</Col>
<Col span={4}>
<div>下版</div>
</Col>
<Col span={4}>
<div>左版</div>
</Col>
<Col span={4}>
<div>右版</div>
</Col>
<Row gutter={24}>
{
fixProveUrl(brandInfo.proveUrl)
}
</Row>
</Card>
</Space>
<Space direction="vertical" style={{width:'100%'}}>
<Card headStyle={{borderBottom:'none'}} title="流程进度">
<Steps progressDot current={2}>
<Steps progressDot current={fixStep}>
<Step title="提交审核" description="供应商" />
<Step title="审核品牌" description="平台" />
<Step title="完成" description="" />
......@@ -141,7 +177,7 @@ const viewBrand: React.FC<{}> = () => {
</Space>
<Space direction="vertical" style={{width:'100%'}}>
<Card headStyle={{borderBottom:'none'}} title="审核历史">
<Table dataSource={dataSource} columns={columns} pagination={false} />
<Table dataSource={recordData} columns={columns} pagination={false} />
</Card>
</Space>
</PageHeaderWrapper>
......
......@@ -14,10 +14,7 @@ declare namespace TradeMarkApi {
status: number;
checkTime: string;
isEnable: boolean;
proveUrl: {
mapkey: {},
mapValue: {}
}
proveUrl: {}
}
export interface TradeMarkListsModel {
......@@ -42,4 +39,19 @@ declare namespace TradeMarkApi {
isEnable: boolean;
}
export interface TradeMarkRecordByQueryDTO {
brandId: number;
}
export interface TradeMarkRecodModel {
id: number;
merchantRoleId: number;
merchantRoleName: string;
status: number;
createTime: number;
operation: number;
checkRemark: string;
brandId: number;
}
}
\ No newline at end of file
......@@ -73,4 +73,11 @@ export async function applyCheckTradeMark(params: TradeMarkApi.TradeMarkByQueryD
prefix,
params
})
}
export async function getTradeMarkCheckRecord(params: TradeMarkApi.TradeMarkRecordByQueryDTO) {
return request<TradeMarkApi.TradeMarkRecodModel[]>('/brand/getBrandCheckRecord', {
prefix,
params
})
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment