|
@@ -1,924 +0,0 @@
|
|
|
-import React from 'react'
|
|
|
-import { connect } from 'dva'
|
|
|
-import { fetchApi } from '@/apis/'
|
|
|
-import { Descriptions, message, Collapse, Col, Row, Alert, Tabs, Card, Button, Table, Tag,Modal, Input } from 'antd'
|
|
|
-import { apiCdn } from '@/conf/config'
|
|
|
-import Tags from './component/AuctionTag';
|
|
|
-import moment from 'moment';
|
|
|
-import { FilterTable, ImageGallery, LongText } from 'wptpc-design';
|
|
|
-import styles from './index.less';
|
|
|
-import isEmpty from 'lodash/isEmpty';
|
|
|
-import get from 'lodash/get';
|
|
|
-import { getSaleDetail,getUserPhoneNum } from './services';
|
|
|
-import { tc } from '../../../conf/config';
|
|
|
-import AfterSale from './component/AfterSale';
|
|
|
-import Identify from './component/Identify';
|
|
|
-import TradedReturnPage from './component/TradedReturn';
|
|
|
-
|
|
|
-const { Panel } = Collapse;
|
|
|
-const { TabPane } = Tabs;
|
|
|
-
|
|
|
-const bidSaleListUrl = `${tc}/ms/web/get-sale-bid-list`
|
|
|
-const paySaleListUrl = `${tc}/ms/web/get-sale-pay-list`
|
|
|
-const expressUrl = `${tc}/ms/web/get-express`; // 查询物流信息
|
|
|
-
|
|
|
-
|
|
|
-@connect(({ loading }) => ({
|
|
|
- // 添加或者编辑接口触发的loading属性,可以用于控制接口请求阶段让对话框的”确定“按钮不可点击
|
|
|
- // actionLoading: loading.effects['tctemplate/_addItem'] || loading.effects['ugc/_editItem']
|
|
|
-}))
|
|
|
-class Index extends React.PureComponent {
|
|
|
-
|
|
|
- constructor(props) {
|
|
|
- super();
|
|
|
- this.saleId = props.location.query.saleId;
|
|
|
- this.state = {
|
|
|
- saleId: this.saleId,
|
|
|
- total: 0,
|
|
|
- computedModal: false,
|
|
|
- dataSource: [],
|
|
|
- computedLoading: false,
|
|
|
- data: {},
|
|
|
- visible: false,
|
|
|
- loading: false,
|
|
|
- commitLoading: false, // 控制表单提交按钮的loading
|
|
|
- merchantsTel: '',
|
|
|
- merchantsTelTag: true,
|
|
|
- masterTel: '',
|
|
|
- masterTelTag: true,
|
|
|
- tradingTel: '',
|
|
|
- tradingTelTag: true,
|
|
|
- isContinue: false,
|
|
|
- }
|
|
|
- }
|
|
|
- componentDidMount() {
|
|
|
- this.search();
|
|
|
- }
|
|
|
-
|
|
|
- normalFilterSetting = {
|
|
|
- formFields: [],
|
|
|
- hasSearchBtn: false, // 是否有搜索按钮
|
|
|
- hasClearBtn: false, // 是否有重置按钮
|
|
|
- beforeSearchFunc: params => {
|
|
|
- params.saleId = this.state.saleId;
|
|
|
- return params;
|
|
|
- },
|
|
|
- };
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- viewExpress = ({ com, code: nu }, sign) => e => {
|
|
|
- e.stopPropagation();
|
|
|
- fetchApi(expressUrl, {
|
|
|
- com,
|
|
|
- nu,
|
|
|
- sign,
|
|
|
- }).then(resp => {
|
|
|
- if (resp.code === 0) {
|
|
|
- const expressInfo = get(resp, 'data.expressInfo.showapi_res_body.data', []);
|
|
|
- const msg = expressInfo.length
|
|
|
- ? expressInfo.map(({ time, context }) => `${time} ${context}`).join('\n')
|
|
|
- : '暂无物流信息';
|
|
|
- Modal.info({
|
|
|
- title: '物流信息',
|
|
|
- width: 720,
|
|
|
- content: <pre style={{ whiteSpace: 'pre-wrap', wordWrap: 'break-word' }}>{msg}</pre>,
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
- };
|
|
|
- // filtertable的列表配置
|
|
|
- bidTableSetting = {
|
|
|
- pagination: {
|
|
|
- pageSize: 10
|
|
|
- },
|
|
|
- columnConfig: [
|
|
|
- {
|
|
|
- title: '用户id',
|
|
|
- dataIndex: 'userinfoId'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '用户昵称',
|
|
|
- dataIndex: 'nickname'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '出价金额',
|
|
|
- dataIndex: 'price'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '创建时间',
|
|
|
- dataIndex: 'createTime'
|
|
|
- },
|
|
|
- {
|
|
|
- title: 'IP',
|
|
|
- dataIndex: 'ip'
|
|
|
- },
|
|
|
- ]
|
|
|
- }
|
|
|
-
|
|
|
- payTableSetting = {
|
|
|
- pagination: {
|
|
|
- pageSize: 10
|
|
|
- },
|
|
|
- columnConfig: [
|
|
|
- {
|
|
|
- title: '付款人昵称',
|
|
|
- dataIndex: 'nickname'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '金额',
|
|
|
- dataIndex: 'money'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '付款类型',
|
|
|
- dataIndex: 'type'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '当前款项状态',
|
|
|
- dataIndex: 'status'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '商户交易号',
|
|
|
- dataIndex: 'out_trade_no'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '付款时间',
|
|
|
- dataIndex: 'createTime',
|
|
|
- render: text => moment(text * 1000).format('YYYY-MM-DD HH:mm:ss'),
|
|
|
- },
|
|
|
- ]
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- getPhoneNum = () =>{
|
|
|
-
|
|
|
- if (this.state.merchantsTelTag) {
|
|
|
- getUserPhoneNum({from:2, dataId:this.state.saleId, field:3}).then(res => {
|
|
|
- if (res.code === 0) {
|
|
|
- if(JSON.stringify(res.data) !== '{}'){
|
|
|
- this.setState({
|
|
|
- merchantsTel: res.data,
|
|
|
- merchantsTelTag: false,
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- if (this.state.tradingTelTag) {
|
|
|
- getUserPhoneNum({from:2, dataId:this.state.saleId, field:4}).then(res => {
|
|
|
- if (res.code === 0) {
|
|
|
- this.setState({
|
|
|
- tradingTel: res.data,
|
|
|
- tradingTelTag: false,
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- getDetails = () => {
|
|
|
- const { saleId, pending } = this.state;
|
|
|
- if (!pending) {
|
|
|
- this.setState({
|
|
|
- pending: true,
|
|
|
- });
|
|
|
- }
|
|
|
- fetchApi(`${tc}/ms/web/get-sale-detail`, {
|
|
|
- saleId,
|
|
|
- }).then(resp => {
|
|
|
- const newState = {
|
|
|
- pending: false,
|
|
|
- };
|
|
|
- this.setState(newState);
|
|
|
- });
|
|
|
- };
|
|
|
-
|
|
|
- search = () => {
|
|
|
- this.setState({ loading: true });
|
|
|
- console.log("search");
|
|
|
- getSaleDetail({ saleId: this.saleId }).then(res => {
|
|
|
- if (res) {
|
|
|
- console.log("res set state");
|
|
|
- this.setState({ dataSource: res.data, loading: false });
|
|
|
- if(res.code === 0){
|
|
|
- this.setState({isContinue:true})
|
|
|
- this.getPhoneNum();
|
|
|
- }
|
|
|
- // if(res.data.trading.winner){
|
|
|
- // // this.setState({buyer})
|
|
|
- // }
|
|
|
- } else {
|
|
|
- console.log("set state");
|
|
|
- this.setState({ loading: false });
|
|
|
- }
|
|
|
- });
|
|
|
- };
|
|
|
-
|
|
|
- onSearch = value => {
|
|
|
- this.state.isContinue = false
|
|
|
- this.state.saleId = value
|
|
|
- this.state.merchantsTelTag = true
|
|
|
- this.state.tradingTelTag = true
|
|
|
- //this.setState({saleId: value})
|
|
|
- if (!value) {
|
|
|
- message.warning('请输入拍品ID')
|
|
|
- return;
|
|
|
- }
|
|
|
- getSaleDetail({ saleId: value }).then(res => {
|
|
|
- if (res) {
|
|
|
- console.log(res.code);
|
|
|
- this.setState({ dataSource: res.data, loading: false });
|
|
|
- if(res.code === 0){
|
|
|
- this.setState({isContinue: true})
|
|
|
- this.getPhoneNum()
|
|
|
- console.log(this.state.isContinue)
|
|
|
- }
|
|
|
- } else {
|
|
|
- console.log("set state");
|
|
|
- this.setState({ loading: false });
|
|
|
- }
|
|
|
- });
|
|
|
- };
|
|
|
-
|
|
|
- callback(key) {
|
|
|
- console.log(key);
|
|
|
- }
|
|
|
-
|
|
|
- returnTime = time => {
|
|
|
- if (time) {
|
|
|
- return moment(time * 1000).format('YYYY-MM-DD HH:mm:ss');
|
|
|
- } else {
|
|
|
- return '';
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- render() {
|
|
|
- const customPanelStyle = {
|
|
|
- borderRadius: 4,
|
|
|
- border: 0,
|
|
|
- verticalAlign: 'top',
|
|
|
- };
|
|
|
-
|
|
|
- const { dataSource = {}} = this.state
|
|
|
- const { base = {}, traded = {}, trading = {} } = dataSource
|
|
|
- const { priceData = {} } = base
|
|
|
- const { deliveryInfo = {}} = trading
|
|
|
- const { address = {}} = deliveryInfo
|
|
|
- const isContinue = this.state.isContinue
|
|
|
- const afterMergeColums = [
|
|
|
- // 申请售后信息
|
|
|
- {
|
|
|
-
|
|
|
- title: '操作人',
|
|
|
- dataIndex: 'operator',
|
|
|
- width: '100px',
|
|
|
- },
|
|
|
- {
|
|
|
-
|
|
|
- title: '操作内容',
|
|
|
- dataIndex: 'content',
|
|
|
- width: '100px',
|
|
|
- render: text => <LongText text={text} limit={10}/>,
|
|
|
- },
|
|
|
- {
|
|
|
-
|
|
|
- title: '原因',
|
|
|
- dataIndex: 'reason',
|
|
|
- width: '100px',
|
|
|
- render: text => <LongText text={text} limit={10}/>,
|
|
|
- },
|
|
|
- {
|
|
|
-
|
|
|
- title: '举证信息',
|
|
|
- dataIndex: 'disputeContent',
|
|
|
- width: '250px',
|
|
|
- render: text => <LongText text={text} limit={25}/>,
|
|
|
- },
|
|
|
- {
|
|
|
-
|
|
|
- title: '举证图片',
|
|
|
- dataIndex: 'disputeImgs',
|
|
|
- width: '100px',
|
|
|
- render: text =>
|
|
|
- text && text[0] && <ImageGallery imgGroup={{ src: `${apiCdn}/${text[0]}` }}/>,
|
|
|
- },
|
|
|
- {
|
|
|
-
|
|
|
- title: '时间',
|
|
|
- dataIndex: 'createTime',
|
|
|
- width: '100px',
|
|
|
- render: text => {
|
|
|
- return moment(text * 1000).format('YYYY-MM-DD HH:mm:ss');
|
|
|
- },
|
|
|
- },
|
|
|
- ];
|
|
|
-
|
|
|
- // 鉴定信息
|
|
|
- const identListColums = [
|
|
|
- // 鉴定进程
|
|
|
- {
|
|
|
-
|
|
|
- title: '恢复内容',
|
|
|
- dataIndex: 'replyContent',
|
|
|
- width: '200px',
|
|
|
- },
|
|
|
- {
|
|
|
- title: '鉴定结果',
|
|
|
- dataIndex: 'truth',
|
|
|
- width: '200px',
|
|
|
- render: text => {
|
|
|
- const truth = {
|
|
|
- 0: '假货',
|
|
|
- 1: '真品',
|
|
|
- 2: '无法鉴定',
|
|
|
- 3: '与实物不符',
|
|
|
- };
|
|
|
- return truth[`${text}`];
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
-
|
|
|
- title: '鉴定状态',
|
|
|
- dataIndex: 'status',
|
|
|
- width: '200px',
|
|
|
- render: text => {
|
|
|
- const truth = {
|
|
|
- '-1': '待审核',
|
|
|
- 1: '通过',
|
|
|
- 0: '不通过',
|
|
|
- '-2': '取消鉴定',
|
|
|
- };
|
|
|
- return truth[`${text}`];
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
-
|
|
|
- title: '处理状态',
|
|
|
- dataIndex: 'processName',
|
|
|
- width: '200px',
|
|
|
- },
|
|
|
- {
|
|
|
- title: '鉴定号',
|
|
|
- width: 120,
|
|
|
- dataIndex: 'uri',
|
|
|
- key: 'uri',
|
|
|
- render: (text, record) => {
|
|
|
- return text !== '-' ? (
|
|
|
- <div style={{ width: 100, height: 60 }}>
|
|
|
- <a
|
|
|
- // onClick={() => {
|
|
|
- // window.open(
|
|
|
- // `${hostDev}/yzl/traded.thawTimezg/progress?userId=${this.props.userId}&uri=${text}`,
|
|
|
- // );
|
|
|
- // }}
|
|
|
- >
|
|
|
- {text}
|
|
|
- </a>
|
|
|
- </div>
|
|
|
- ) : (
|
|
|
- '-'
|
|
|
- );
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
-
|
|
|
- title: '处理状态',
|
|
|
- dataIndex: 'processName',
|
|
|
- width: '200px',
|
|
|
- },
|
|
|
- ];
|
|
|
-
|
|
|
- const baseImages = Array.isArray(base.images) && base.images.length
|
|
|
- ? base.images.map(relativeUrl => apiCdn + relativeUrl)
|
|
|
- : null;
|
|
|
-
|
|
|
- return (
|
|
|
- <div>
|
|
|
- <Input.Search placeholder="请输入拍品ID" style={{ width: 246,float:'right' }} size="small" onSearch={this.onSearch}/>
|
|
|
- <Descriptions title="基础信息" column={2}>
|
|
|
- <Descriptions.Item label="拍品ID/Uri">{base.saleId}</Descriptions.Item>
|
|
|
- <Descriptions.Item label="拍品类型">{base.saleType}</Descriptions.Item>
|
|
|
- <Descriptions.Item label="拍品分类">{base.saleCategory}</Descriptions.Item>
|
|
|
- <Descriptions.Item label="拍品状态">{base.saleStatus}</Descriptions.Item>
|
|
|
- <Descriptions.Item label="开拍时间">{this.returnTime(base.openTime)}</Descriptions.Item>
|
|
|
- <Descriptions.Item label="截拍时间">{this.returnTime(base.endTime)}</Descriptions.Item>
|
|
|
- <Descriptions.Item label="拍品描述">{base.content}</Descriptions.Item>
|
|
|
- <Descriptions.Item label="拍品属性">
|
|
|
- {base.saleAttr && (
|
|
|
- <Tags all={base.saleAttr} ids={base.saleId} getDetails={this.props.getDetails} />
|
|
|
- )}
|
|
|
- </Descriptions.Item>
|
|
|
- <Descriptions.Item label="价格信息">
|
|
|
- <Collapse bordered={false} defaultActiveKey={['1']}>
|
|
|
- <Panel header={
|
|
|
- <div style={{ marginBottom: 4 }}>
|
|
|
- <span>起拍价:</span>
|
|
|
- <span style={{ marginLeft: 8 }}>{priceData.bidmoney}</span>
|
|
|
- </div>
|
|
|
- } key="1" style={customPanelStyle}>
|
|
|
- <Row>
|
|
|
- <Col span={12}>
|
|
|
- <p style={{ marginBottom: 4 }}>加价:{priceData.increase}</p>
|
|
|
- </Col>
|
|
|
- <Col span={12}>
|
|
|
- <p style={{ marginBottom: 4 }}>一口价:{priceData.fixedPrice}</p>
|
|
|
- </Col>
|
|
|
- <Col span={12}>
|
|
|
- <p style={{ marginBottom: 4 }}>参考价:{priceData.referencePrice}</p>
|
|
|
- </Col>
|
|
|
- <Col span={12}>
|
|
|
- <p style={{ marginBottom: 4 }}>供货价:{priceData.depotPdPrice}</p>
|
|
|
- </Col>
|
|
|
- </Row>
|
|
|
- </Panel>
|
|
|
- </Collapse>
|
|
|
- </Descriptions.Item>
|
|
|
- <Descriptions term="商家信息" style={{ marginBottom: 1 }}>
|
|
|
- {/* defaultActiveKey={['1']} */}
|
|
|
- {base.merchants && (
|
|
|
- <Collapse bordered={false}>
|
|
|
- {base.merchants.shopInfo && (
|
|
|
- <Panel
|
|
|
- header={
|
|
|
- <div style={{ marginBottom: 4 }}>
|
|
|
- <span>卖家名称(id):</span>
|
|
|
- <a
|
|
|
- // onClick={() => {
|
|
|
- // window.open(
|
|
|
- // `${hostDev}/wptmanage/user/profile/${base.merchants.shopInfo.id}`,
|
|
|
- // );
|
|
|
- // }}
|
|
|
- style={{ marginLeft: 8 }}
|
|
|
- >
|
|
|
- {base.merchants.shopInfo.shopName}
|
|
|
- </a>
|
|
|
- <span style={{ marginLeft: 2 }}>({base.merchants.shopInfo.id})</span>
|
|
|
- </div>
|
|
|
- }
|
|
|
- key="1"
|
|
|
- style={customPanelStyle}
|
|
|
- >
|
|
|
- <p style={{ marginBottom: 4 }}>
|
|
|
- 卖家手机号:{this.state.merchantsTel}
|
|
|
- </p>
|
|
|
- </Panel>
|
|
|
- )}
|
|
|
- {base.merchants.master && (
|
|
|
- <Panel header="库主" key="2" style={customPanelStyle}>
|
|
|
- <div style={{ marginBottom: 4 }}>
|
|
|
- <span>库主id:</span>
|
|
|
- <span style={{ marginLeft: 8 }}>{base.merchants.master.id}</span>
|
|
|
- </div>
|
|
|
- <div style={{ marginBottom: 4 }}>
|
|
|
- <span>库主名称:</span>
|
|
|
- <a
|
|
|
- // onClick={() => {
|
|
|
- // window.open(
|
|
|
- // `${hostDev}/wptmanage/user/profile/${base.merchants.master.id}`,
|
|
|
- // );
|
|
|
- // }}
|
|
|
- style={{ marginLeft: 8 }}
|
|
|
- >
|
|
|
- {base.merchants.master.shopName}
|
|
|
- </a>
|
|
|
- </div>
|
|
|
- <p style={{ marginBottom: 4 }}>
|
|
|
- <span>库主手机号:</span>
|
|
|
- <span style={{ marginLeft: 8 }}>{this.state.masterTel || base.merchants.master.tel}</span>
|
|
|
- <a style={{ marginLeft: 4 }} onClick={this.handleShowMasterTel}>
|
|
|
- 显示电话
|
|
|
- </a>
|
|
|
- </p>
|
|
|
- </Panel>
|
|
|
- )}
|
|
|
- </Collapse>
|
|
|
- )}
|
|
|
- </Descriptions>
|
|
|
- <Descriptions.Item label="拍品图片">{baseImages && <ImageGallery imgGroup={baseImages} />}</Descriptions.Item>
|
|
|
- </Descriptions>
|
|
|
-
|
|
|
-
|
|
|
- {(!isEmpty(trading) || !isEmpty(traded)) &&
|
|
|
- <Alert
|
|
|
- style={{ marginBottom: 10 }}
|
|
|
- message={
|
|
|
- <div className={styles.readForm}>
|
|
|
- {!!traded.finishedTime &&
|
|
|
- (traded.status === 'finished' || traded.status === 'unsold') && (
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>
|
|
|
- {traded.status === 'finished' ? '交易完成时间' : ''}
|
|
|
- {traded.status === 'unsold' ? '交易失败时间' : ''}:
|
|
|
- </div>
|
|
|
- <div className={styles.readFormValue}>{this.returnTime(traded.finishedTime)}</div>
|
|
|
- </div>
|
|
|
- )}
|
|
|
- {!!traded.launchTime && (
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>退货时间:</div>
|
|
|
- <div className={styles.readFormValue}>{this.returnTime(traded.launchTime)}</div>
|
|
|
- </div>
|
|
|
- )}
|
|
|
- {!!traded.thawTime && (
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>货款解冻:</div>
|
|
|
- <div className={styles.readFormValue}>{this.returnTime(traded.thawTime)}</div>
|
|
|
- </div>
|
|
|
- )}
|
|
|
- {!!trading.paidTime && (
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>付款时间:</div>
|
|
|
- <div className={styles.readFormValue}>{this.returnTime(trading.paidTime)}</div>
|
|
|
- </div>
|
|
|
- )}
|
|
|
- {!!trading.delayPayTime && (
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>截止付款:</div>
|
|
|
- <div className={styles.readFormValue}>{this.returnTime(trading.delayPayTime)}</div>
|
|
|
- </div>
|
|
|
- )}
|
|
|
- {!!trading.deliveryTime && (
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>发货时间:</div>
|
|
|
- <div className={styles.readFormValue}>{this.returnTime(trading.deliveryTime)}</div>
|
|
|
- </div>
|
|
|
- )}
|
|
|
- {!!trading.originDelayPayTime && (
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>原截止日期:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {this.returnTime(trading.originDelayPayTime)}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- )}
|
|
|
- {!!trading.delayReceiptTime && (
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>截止收货:</div>
|
|
|
- <div className={styles.readFormValue}>{this.returnTime(trading.delayReceiptTime)}</div>
|
|
|
- </div>
|
|
|
- )}
|
|
|
- </div>
|
|
|
- }
|
|
|
- type="info"
|
|
|
- />
|
|
|
- }
|
|
|
-
|
|
|
- {/* 显示各类信息 */}
|
|
|
- <Tabs defaultActiveKey="1" onChange={this.callback}>
|
|
|
-
|
|
|
- <TabPane tab="交易信息" key="1">
|
|
|
- {trading.winner && (
|
|
|
- <div className={styles.buyerInfoItem}>
|
|
|
- <Card size="small" title="中拍买家信息">
|
|
|
- <div className={`${styles.readForm} ${styles.normal}`}>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>买家id:</div>
|
|
|
- <div className={styles.readFormValue}>{trading.winner.id}</div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>买家名称:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- <a
|
|
|
- onClick={() => {
|
|
|
- }}
|
|
|
- >
|
|
|
- {trading.winner.shopName}
|
|
|
- </a>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>买家手机号:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {this.state.tradingTel || trading.winner.tel}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </Card>
|
|
|
- </div>
|
|
|
- )}
|
|
|
-
|
|
|
- {trading.dealInfo && (
|
|
|
- <div className={styles.buyerInfoItem}>
|
|
|
- <Card size="small" title="拍品成交价格信息">
|
|
|
- <div className={`${styles.readForm} ${styles.normal}`}>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>成交价:</div>
|
|
|
- <div className={styles.readFormValue}>{trading.dealInfo.price}</div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>原价:</div>
|
|
|
- <div className={styles.readFormValue}>{trading.dealInfo.originPrice}</div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>折扣:</div>
|
|
|
- <div className={styles.readFormValue}>{trading.dealInfo.discount}</div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>定金:</div>
|
|
|
- <div className={styles.readFormValue}>{trading.dealInfo.deposit}</div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>尾款:</div>
|
|
|
- <div className={styles.readFormValue}>{trading.dealInfo.finalPrice}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </Card>
|
|
|
- </div>)}
|
|
|
-
|
|
|
-
|
|
|
- <p className={styles.sectionTitle}>出价列表</p>
|
|
|
- {isContinue && <FilterTable
|
|
|
- filterSetting={this.normalFilterSetting}
|
|
|
- tableSetting={this.bidTableSetting}
|
|
|
- apiUrl={bidSaleListUrl}
|
|
|
- isPage={false}
|
|
|
- />
|
|
|
- }
|
|
|
- <p className={styles.sectionTitle}>付款信息</p>
|
|
|
- {isContinue &&
|
|
|
- <FilterTable
|
|
|
- filterSetting={this.normalFilterSetting}
|
|
|
- tableSetting={this.payTableSetting}
|
|
|
- apiUrl={paySaleListUrl}
|
|
|
- isPage={false}
|
|
|
- />
|
|
|
- }
|
|
|
-
|
|
|
- {/* // 底部 */}
|
|
|
- <div className={styles.otherInfo}>
|
|
|
- <Row gutter={16} type="flex" align="top">
|
|
|
- {traded.poundage && (
|
|
|
- <Col span={8}>
|
|
|
- <div className={styles.otherInfoItem}>
|
|
|
- <Card size="small" title="手续费信息">
|
|
|
- <div className={`${styles.readForm} ${styles.normal}`}>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>手续费金额:</div>
|
|
|
- <div className={styles.readFormValue}>¥{traded.poundage.total_fee}</div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {traded.poundage.feeList.map(item => {
|
|
|
- return <span>{item}</span>;
|
|
|
- })}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </Card>
|
|
|
- </div>
|
|
|
- </Col>
|
|
|
- )}
|
|
|
- {trading.disCountInfo && (
|
|
|
- <Col span={8}>
|
|
|
- <div className={styles.otherInfoItem}>
|
|
|
- <Card
|
|
|
- className={styles.sendInfo}
|
|
|
- size="small"
|
|
|
- title="折扣信息"
|
|
|
- >
|
|
|
-
|
|
|
- <Collapse bordered={false}>
|
|
|
- {trading.disCountInfo.couponList && (
|
|
|
- <Panel header="优惠券列表" key="1" style={customPanelStyle}>
|
|
|
- <Table
|
|
|
- dataSource={trading.disCountInfo.couponList}
|
|
|
- // columns={couponListColums}
|
|
|
- pagination={false}
|
|
|
- style={{ marginBottom: 16 }}
|
|
|
- size="small"
|
|
|
- />
|
|
|
- </Panel>
|
|
|
- )}
|
|
|
- <Panel header="其他折扣信息" key="2" style={customPanelStyle}>
|
|
|
- <p style={{ paddingLeft: 24 }}>
|
|
|
- 店铺红包金额:{trading.disCountInfo.shopRedPack}
|
|
|
- </p>
|
|
|
- <p style={{ paddingLeft: 24 }}>平台补贴:{trading.disCountInfo.wptSubsidy}</p>
|
|
|
- </Panel>
|
|
|
- </Collapse>
|
|
|
-
|
|
|
- </Card>
|
|
|
- </div>
|
|
|
- </Col>
|
|
|
- )}
|
|
|
- {trading.deliveryInfo && (
|
|
|
- <Col span={8}>
|
|
|
- <div className={styles.otherInfoItem}>
|
|
|
- <Card
|
|
|
- className={styles.sendInfo}
|
|
|
- size="small"
|
|
|
- title="发货信息"
|
|
|
- // extra={this.sendInfoExtraBtn()}
|
|
|
- >
|
|
|
-
|
|
|
- <div className={`${styles.readForm} ${styles.normal}`}>
|
|
|
- {trading.deliveryInfo.delivery && (
|
|
|
- <>
|
|
|
- <h3 style={{ width: '100%', margin: 0, fontSize: 13 }}>
|
|
|
- <span>物流信息:</span>
|
|
|
- {trading.deliveryInfo.delivery &&
|
|
|
- trading.deliveryInfo.delivery.com &&
|
|
|
- trading.deliveryInfo.delivery.code && (
|
|
|
- <Button
|
|
|
- type="primary"
|
|
|
- onClick={this.viewExpress(
|
|
|
- trading.deliveryInfo.delivery,
|
|
|
- trading.deliveryInfo.sign,
|
|
|
- )}
|
|
|
- size="small"
|
|
|
- style={{
|
|
|
- height: 20,
|
|
|
- lineHeight: '18px',
|
|
|
- fontSize: 13,
|
|
|
- }}
|
|
|
- >
|
|
|
- 查看物流
|
|
|
- </Button>
|
|
|
- )}
|
|
|
- </h3>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>物流公司:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {trading.deliveryInfo.delivery.com}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>物流编号:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {trading.deliveryInfo.delivery.code}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </>
|
|
|
- )}
|
|
|
-
|
|
|
- <h3 style={{ width: '100%', margin: '5px 0 0', fontSize: 13 }}>
|
|
|
- <span>收货地址:{isEmpty(address) && <Button
|
|
|
- type="primary"
|
|
|
- onClick={this.handleShowAddr}
|
|
|
- size="small"
|
|
|
- style={{
|
|
|
- height: 20,
|
|
|
- lineHeight: '18px',
|
|
|
- fontSize: 13,
|
|
|
- }}
|
|
|
- >
|
|
|
- 查看地址
|
|
|
- </Button>}</span>
|
|
|
- </h3>
|
|
|
- {!isEmpty(address) && (
|
|
|
- <>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>地址:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {address.proviceFirstStageName}-
|
|
|
- {address.addressCitySecondStageName}-
|
|
|
- {address.addressCountiesThirdStageName}-
|
|
|
- {address.addressDetailInfo}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>姓名:</div>
|
|
|
- <div className={styles.readFormValue}>{address.userName}</div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>电话:</div>
|
|
|
- <div className={styles.readFormValue}>{address.telNumber}</div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>邮编:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {address.addressPostalCode}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </>)
|
|
|
- }
|
|
|
- </div>
|
|
|
-
|
|
|
- </Card>
|
|
|
- </div>
|
|
|
- </Col>
|
|
|
- )}
|
|
|
- {traded.credits && (
|
|
|
- <Col span={8}>
|
|
|
- <div className={styles.otherInfoItem}>
|
|
|
- <Card size="small" title="积分信息">
|
|
|
-
|
|
|
- <div className={`${styles.readForm} ${styles.normal}`}>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>结算前卖家总积分:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {traded.credits.totalSellerLevelScores}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>此单结算卖家积分:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {traded.credits.sellerLevelScores}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>结算前买家成长值:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {traded.credits.preMemberLevelScores}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>此单结算买家成长值:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {traded.credits.memberLevelScores}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- </Card>
|
|
|
- </div>
|
|
|
- </Col>
|
|
|
- )}
|
|
|
- {traded.rate && (
|
|
|
- <Col span={8}>
|
|
|
- <div className={styles.otherInfoItem}>
|
|
|
- <Card size="small" title="评价信息">
|
|
|
-
|
|
|
- <div className={`${styles.readForm} ${styles.normal}`}>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>评分:</div>
|
|
|
- <div className={styles.readFormValue}>{traded.rate.stars}</div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>是否匿名:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {traded.rate.isAnonymous ? '是' : '否'}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>评价内容:</div>
|
|
|
- <div className={styles.readFormValue}>{traded.rate.content}</div>
|
|
|
- </div>
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>评价时间:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {/* {returnTime(traded.rate.createTime)} */}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- {traded.rate.imgs && (
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>评价图片:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {traded.rate.imgs.map(relativeSrc => {
|
|
|
- return (
|
|
|
- <img
|
|
|
- // src={`${apiCdn}/${relativeSrc}`}
|
|
|
- alt=""
|
|
|
- style={{ maxWidth: 50 }}
|
|
|
- />
|
|
|
- );
|
|
|
- })}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- )}
|
|
|
- {traded.rate.tags && (
|
|
|
- <div className={styles.readFormItem}>
|
|
|
- <div className={styles.readFormLabel}>评价标签:</div>
|
|
|
- <div className={styles.readFormValue}>
|
|
|
- {traded.rate.tags.map(item => {
|
|
|
- if (item.isSelected) {
|
|
|
- return <Tag>{item.tagName}</Tag>;
|
|
|
- } else {
|
|
|
- return null;
|
|
|
- }
|
|
|
- })}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- )}
|
|
|
- </div>
|
|
|
- </Card>
|
|
|
- </div>
|
|
|
- </Col>
|
|
|
- )}
|
|
|
- </Row>
|
|
|
- </div>
|
|
|
- </TabPane>
|
|
|
-
|
|
|
- <TabPane tab="售后信息" key="2">
|
|
|
- {traded && (
|
|
|
- <AfterSale refresh={this.getDetails} goodsInfo={dataSource} saleId={this.saleId} />)}
|
|
|
- </TabPane>
|
|
|
- <TabPane tab="鉴定信息" key="3">
|
|
|
- {traded && (
|
|
|
- <Identify refresh={this.getDetails} goodsInfo={dataSource} saleId={this.saleId} />
|
|
|
- )}
|
|
|
- </TabPane>
|
|
|
- <TabPane tab="售后退货信息" key="4">
|
|
|
- {dataSource.tradedReturn && (
|
|
|
- <TradedReturnPage refresh={this.getDetails} goodsInfo={dataSource} saleId={this.saleId} />
|
|
|
- )}
|
|
|
- </TabPane>
|
|
|
- </Tabs>
|
|
|
-
|
|
|
- </div>
|
|
|
- )
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-export default Index
|