Commit e0eb579b authored by lxd's avatar lxd

feat: 订单审核时效

parent e828e210
......@@ -2,12 +2,12 @@ const isProduction = process.env.NODE_ENV === 'production';
const isPre = process.env.PRE_ENV === 'pre';
const envAPi = {
api: '//backstms-test2.liangkebang.net',
kdspOpApi: 'https://kdsp-operation-test2.liangkebang.net',
kdspApi: 'https://sc-op-api-test2.liangkebang.net',
goodsApi: 'https://sc-op-api-test2.liangkebang.net',
api: '//backstms-gyl.liangkebang.net',
kdspOpApi: 'https://kdsp-operation-gyl.liangkebang.net',
kdspApi: 'https://sc-op-api-gyl.liangkebang.net',
goodsApi: 'https://sc-op-api-gyl.liangkebang.net',
// goodsApi: '//192.168.28.107:7000',
prologueDomain: 'https://mall-test2.liangkebang.net',
prologueDomain: 'https://mall-gyl2.liangkebang.net',
qiniuHost: 'https://appsync.lkbang.net',
opapiHost: 'https://opapi-gyl2.liangkebang.net',
};
......
import React from 'react';
import React, { useState, useEffect } from 'react';
import { Row, Col } from 'antd';
import Link from 'umi/link';
// import { PageHeaderWrapper } from '@ant-design/pro-layout';
// eslint-disable-next-line import/no-extraneous-dependencies
import { FileTextOutlined } from '@ant-design/icons';
import style from './styles.less';
import { getPendingNum } from './service';
const Admin = () => (
<div>
<h2>欢迎使用商户管理后台系统</h2>
const Admin = props => {
const [pendingNum, setpendingNum] = useState({});
useEffect(() => {
const qurey = async () => {
const { data } = await getPendingNum();
setpendingNum(data);
};
qurey();
}, []);
return (
<div>
<h2>欢迎使用商户管理后台系统</h2>
<div>
<span className={style.orderleft}></span>
<span className={style.orderRight}>待办事项</span>
</div>
<div style={{ marginTop: '20px' }}>
<Row className={style.orderContent}>
<Col span={2} className="titleOne">
<div>
<FileTextOutlined />
<p>订单</p>
</div>
</Col>
<Col span={2}>
<Link
to={{
pathname: '/orderManage/pendingDeliveryOrder',
state: { status: 2 },
}}
>
<strong>9</strong>
<p>待发货</p>
</Link>
</Col>
<Col span={3}>
<Link
to={{
pathname: '/orderManage/pendingDeliveryOrder',
state: { status: 1 },
}}
>
<strong>9</strong>
<p>待发货{'>'}48小时</p>
</Link>
</Col>
<Col span={4}>
<Link
to={{
pathname: 'cancelBillManage',
}}
>
<strong>9</strong>
<p>取消订单审核{'<'}24小时</p>
</Link>
</Col>
<Col span={2} className="titleTwo" offset={4}>
<div>
<FileTextOutlined />
<p> 售后</p>
</div>
</Col>
<Col span={3}>
<Link
to={{
pathname: 'afterSaleManage',
}}
>
<strong>9</strong>
<p>退款待审核</p>
</Link>
</Col>
</Row>
<div>
<span className={style.orderleft}></span>
<span className={style.orderRight}>待办事项</span>
</div>
<div style={{ marginTop: '20px' }}>
<Row className={style.orderContent}>
<Col span={2} className="titleOne">
<div>
<FileTextOutlined />
<p>订单</p>
</div>
</Col>
<Col span={2}>
<Link
to={{
pathname: '/orderManage/pendingDeliveryOrder',
}}
>
<strong>{pendingNum?.pendingShipNum}</strong>
<p>待发货</p>
</Link>
</Col>
<Col span={3}>
<Link
to={{
pathname: '/orderManage/pendingDeliveryOrder',
state: { status: 1 },
}}
>
<strong>{pendingNum?.timeOutShipNum}</strong>
<p>待发货{'>'}48小时</p>
</Link>
</Col>
<Col span={4}>
<Link
to={{
pathname: 'cancelBillManage',
}}
>
<strong>{pendingNum?.cancelOrderPendingAuditNum}</strong>
<p>取消订单审核{'<'}24小时</p>
</Link>
</Col>
<Col span={2} className="titleTwo" offset={4}>
<div>
<FileTextOutlined />
<p> 售后</p>
</div>
</Col>
<Col span={3}>
<Link
to={{
pathname: 'afterSaleManage',
}}
>
<strong>{pendingNum?.afterOrderPendingAuditNum}</strong>
<p>退款待审核</p>
</Link>
</Col>
</Row>
</div>
</div>
</div>
</div>
);
);
};
export default Admin;
import { stringify } from 'querystring';
import _ from 'lodash';
import request from '@/utils/request';
import { saveAs } from 'file-saver';
import { format } from 'date-fns';
import config from '../../../config/env.config';
// 查询待办页订单数量
export async function getPendingNum() {
const data = await request.get('/api/kdsp/admin/merchants/getPendingNum', {
prefix: config.kdspApi,
});
return data;
}
......@@ -27,8 +27,7 @@
}
}
a:hover {
color: #fff;
background-color: #5468ff;
background-color: #e6f7ff;
}
}
.titleOne {
......
/* eslint-disable no-mixed-operators */
/* eslint-disable radix */
import React, { useState, useRef } from 'react';
import React, { useState, useRef, useEffect } from 'react';
import { Button, notification } from 'antd';
import ProTable from '@ant-design/pro-table';
import _ from 'lodash';
......@@ -78,10 +78,11 @@ export default () => {
setDetailVisible(true);
};
const renderContent = (record, index, action) => {
if (!time[index]) {
const timestart = new Date().getTime();
let timeNumber = (record.startTime - timestart) / 1000;
time[index] = setInterval(() => {
if (!time[record.orderId]) {
const applyTime = new Date(record.applyTime).getTime() + 24 * 3600 * 1000;
const nowTime = new Date(record.nowTime).getTime();
let timeNumber = (applyTime - nowTime) / 1000;
time[record.orderId] = setInterval(() => {
if (timeNumber > 0) {
timeNumber -= 1;
const hours = parseInt((timeNumber / 3600) % 24)
......@@ -94,16 +95,19 @@ export default () => {
.toString()
.padStart(2, '0');
const str = `${hours}${minutes}${seconds}秒`;
timeString[index] = str;
timeString[record.orderId] = str;
const strings = _.cloneDeep(timeString);
settimeString(strings);
} else {
clearInterval(time[index]);
action.reload();
clearInterval(time[record.orderId]);
timeString[record.orderId] = '处理中';
const strings = _.cloneDeep(timeString);
settimeString(strings);
}
}, 1000);
}
};
const closeModal = isReload => {
if (isReload === true) {
// eslint-disable-next-line no-unused-expressions
......@@ -117,6 +121,7 @@ export default () => {
setAuditInfo({ serviceNo });
setVisible(true);
};
const columns = [
{
title: '审核倒计时',
......@@ -128,7 +133,7 @@ export default () => {
render: (_, record, index, action) => [
<span style={{ color: 'red' }}>
{renderContent(record, index, action)}
{timeString[index]}
{timeString[record.orderId]}
</span>,
],
},
......@@ -155,7 +160,7 @@ export default () => {
<ProTable
columns={columns}
request={params => query(params, 1)}
rowKey="serviceNo"
rowKey={r => r.orderId}
pagination={{
pagesSize: 20,
}}
......
......@@ -22,18 +22,15 @@ export async function searchList(params, auditStatus) {
// 'Content-Type': 'application/x-www-form-urlencoded',
// },
});
// if (data && data.data) {
// return {
// total: data.data.total,
// data: data.data.records,
// };
// }
if (data && data.data) {
return {
total: data.data.total,
data: data.data.records,
};
}
return {
total: 10,
data: [
{ serviceNo: 1, receiverName: 1, startTime: 1649924464730 },
{ serviceNo: 2, receiverName: 2, startTime: 1649920460730 },
],
data: [],
};
}
......
......@@ -121,9 +121,9 @@ const TableList = props => {
hideInTable: true,
formItemProps: {
// eslint-disable-next-line no-nested-ternary
value: orderStatus ? (orderStatus === '1' ? '' : '') : '',
value: orderStatus ? (orderStatus === 1 ? '' : '') : '',
onChange(status) {
setorderStatus(status);
setorderStatus(Number(status));
},
},
valueEnum: {
......@@ -326,7 +326,7 @@ const TableList = props => {
logisticsStatus: props.type || 1,
pageNo: params.current,
pageSize: params.pageSize || 20,
status: orderStatus || '',
timeOutType: orderStatus || '',
};
return queryToSend(transformedParam);
};
......
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