Commit 58cd5ee7 authored by 前端-黄佳鑫's avatar 前端-黄佳鑫

feat: 交易能力 -> 供应会员评价管理国际化

parent 78925a60
......@@ -19,6 +19,7 @@ import logistics from './zh-CN/logistics'
import dealAbility from './zh-CN/dealAbility'
import purchaserEvaluation from './zh-CN/purchaserEvaluation'
import stockSellStorage from './zh-CN/stockSellStorage'
import supplierEvaluation from './zh-CN/supplierEvaluation'
import content from './zh-CN/content'
import commodity from './zh-CN/commodity'
import trademark from './zh-CN/trademark'
......@@ -53,6 +54,7 @@ export default {
...dealAbility,
...purchaserEvaluation,
...stockSellStorage,
...supplierEvaluation,
...content,
...processRuleSetting,
}
export default {
'supplierEvaluation.sousuo': '搜索',
'supplierEvaluation.shurudingdanhao': '输入 订单号 进行搜索',
'supplierEvaluation.dingdanzhaiyao': '订单摘要',
'supplierEvaluation.caigouhuiyuan': '采购会员',
'supplierEvaluation.xiadanshijian': '下单时间',
'supplierEvaluation.dingdanleixing': '订单类型',
'supplierEvaluation.chaxun': '查询',
'supplierEvaluation.tupiandaxiaochaoguo10M': '图片大小超过10M',
'supplierEvaluation.xiugai': '修改',
'supplierEvaluation.zhichiJPGPNGJPEG': '支持JPG/PNG/JPEG',
'supplierEvaluation.meizhangzuidabuchaoguo': '每张最大不超过 10M,尺寸不限',
'supplierEvaluation.zuidashuliangxianzhi4': '最大数量限制 4张',
'supplierEvaluation.ninhaiyouweibaocunde': '"您还有未保存的内容,是否确定要离开?"',
'supplierEvaluation.fabu': '发布',
'supplierEvaluation.dingdanhao': '订单号',
'supplierEvaluation.waibuzhuangtai': '外部状态',
'supplierEvaluation.neibuzhuangtai': '内部状态',
'supplierEvaluation.caozuo': '操作',
'supplierEvaluation.pingjia': '评价',
'supplierEvaluation.yiwancheng': '已完成',
'supplierEvaluation.zaicishurunideneirong': '在此输入你的内容',
'supplierEvaluation.qingshuruneirong': '请输入内容',
'supplierEvaluation.shangjiajieshi': '商家解释',
'supplierEvaluation.shangjiaduiyupingjiadejie': '商家对于评价的解释,显示在商品交易评价中',
'supplierEvaluation.beipingjiafang': '被评价方',
'supplierEvaluation.fachudepingjia': '发出的评价',
'supplierEvaluation.shoudaodepingjia': '收到的评价',
'supplierEvaluation.pingjiajilu': '评价记录',
'supplierEvaluation.leijipingjia': '累计评价',
'supplierEvaluation.pingjiatongji': '评价统计',
'supplierEvaluation.gailan': '概览',
'supplierEvaluation.180tianqian': '180天前',
'supplierEvaluation.zuijin180tian': '最近180天',
'supplierEvaluation.zuijin30tian': '最近30天',
'supplierEvaluation.zuijin7tian': '最近7天',
'supplierEvaluation.chaping': '差评',
'supplierEvaluation.zhongping': '中评',
'supplierEvaluation.haoping': '好评',
'supplierEvaluation.dingdanzonge': '订单总额',
}
......@@ -11,7 +11,8 @@ import { QuestionCircleOutlined } from '@ant-design/icons';
import { createAsyncFormActions } from '@formily/antd';
import NiceForm from '@/components/NiceForm';
import schema from './schema';
import { getIntl } from 'umi';
const intl = getIntl();
const modalFormActions = createAsyncFormActions();
export type ValuesType = {
......@@ -57,8 +58,8 @@ const ExplainModal: React.FC<ExplainModalProps> = (props) => {
<Modal
title={(
<>
商家解释
<Tooltip title="商家对于评价的解释,显示在商品交易评价中">
{intl.formatMessage({id: 'supplierEvaluation.shangjiajieshi'})}
<Tooltip title={intl.formatMessage({id: 'supplierEvaluation.shangjiaduiyupingjiadejie'})}>
<QuestionCircleOutlined style={{ marginLeft: 3 }} />
</Tooltip>
</>
......
......@@ -6,7 +6,8 @@
* @Description:
*/
import { ISchema } from '@formily/antd';
import { getIntl } from 'umi';
const intl = getIntl();
const schema: ISchema = {
type: 'object',
properties: {
......@@ -21,13 +22,13 @@ const schema: ISchema = {
type: 'string',
'x-component': 'textarea',
'x-component-props': {
placeholder: '在此输入你的内容',
placeholder: intl.formatMessage({id: 'supplierEvaluation.zaicishurunideneirong'}),
rows: 5,
},
'x-rules': [
{
required: true,
message: '请输入内容',
message: intl.formatMessage({id: 'supplierEvaluation.qingshuruneirong'}),
},
],
},
......
import React, { useEffect, useState, useRef } from 'react';
import { Tabs, Row, Col } from 'antd';
import { history } from 'umi';
import { getIntl, history } from 'umi';
import { observer, inject } from 'mobx-react';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { getMemberCommentSupplyCountTradeSummary, getMemberCommentSupplyCountTradeHistoryPage, getMemberCommentSupplyReceiveTradeHistoryPage, getMemberCommentSupplySendTradeHistoryPage, postMemberCommentSupplyReceiveTradeHistoryReply } from '@/services/MemberV2Api';
......@@ -16,7 +16,7 @@ import RecordList, { ListParams, RecordRes, RecordItem } from '../../purchaserEv
import styles from './index.less';
const { TabPane } = Tabs;
const intl = getIntl();
interface ReceivedSearch {
/**
* 评价星级(1-5)
......@@ -144,15 +144,15 @@ const Analysis: React.FC<AnalysisProps> = ({
const ret = [
{
x: `好评 ${count > 0 ? (good / count * 100).toFixed(2) : '0'}%`,
x: `${intl.formatMessage({id: 'supplierEvaluation.haoping'})} ${count > 0 ? (good / count * 100).toFixed(2) : '0'}%`,
y: good,
},
{
x: `中评 ${count > 0 ? (notBad / count * 100).toFixed(2) : 0}%`,
x: `${intl.formatMessage({id: 'supplierEvaluation.zhongping'})} ${count > 0 ? (notBad / count * 100).toFixed(2) : 0}%`,
y: notBad,
},
{
x: `差评 ${count > 0 ? (bad / count * 100).toFixed(2) : 0}%`,
x: `${intl.formatMessage({id: 'supplierEvaluation.chaping'})} ${count > 0 ? (bad / count * 100).toFixed(2) : 0}%`,
y: bad,
},
];
......@@ -283,22 +283,22 @@ const Analysis: React.FC<AnalysisProps> = ({
align: 'center',
},
{
title: '最近7天',
title: intl.formatMessage({id: 'supplierEvaluation.zuijin7tian'}),
dataIndex: 'last7days',
align: 'center',
},
{
title: '最近30天',
title: intl.formatMessage({id: 'supplierEvaluation.zuijin30tian'}),
dataIndex: 'last30days',
align: 'center',
},
{
title: '最近180天',
title: intl.formatMessage({id: 'supplierEvaluation.zuijin180tian'}),
dataIndex: 'last180days',
align: 'center',
},
{
title: '180天前',
title: intl.formatMessage({id: 'supplierEvaluation.180tianqian'}),
dataIndex: 'before180days',
align: 'center',
},
......@@ -356,13 +356,13 @@ const Analysis: React.FC<AnalysisProps> = ({
activeKey={supplier.activeKey}
onChange={setSupplierActiveKey}
>
<TabPane tab="概览" key="1">
<Shelves title="评价统计">
<TabPane tab={intl.formatMessage({id: 'supplierEvaluation.gailan'})} key="1">
<Shelves title={intl.formatMessage({id: 'supplierEvaluation.pingjiatongji'})}>
<Row gutter={24}>
<Col flex="399px">
<Pie
hasLegend
subTitle="累计评价"
subTitle={intl.formatMessage({id: 'supplierEvaluation.leijipingjia'})}
total={() => evaluatePie.reduce((pre, now) => now.y + pre, 0)}
data={evaluatePie}
height={200}
......@@ -385,7 +385,7 @@ const Analysis: React.FC<AnalysisProps> = ({
</Row>
</Shelves>
<Shelves title="评价记录">
<Shelves title={intl.formatMessage({id: 'supplierEvaluation.pingjiajilu'})}>
<RecordList
fetchList={getTradeHistory}
paginationType="button"
......@@ -395,7 +395,7 @@ const Analysis: React.FC<AnalysisProps> = ({
</Shelves>
</TabPane>
<TabPane tab="收到的评价" key="2">
<TabPane tab={intl.formatMessage({id: 'supplierEvaluation.shoudaodepingjia'})} key="2">
<RecordList
fetchList={getReceivedList}
onCheck={handleJumpReceived}
......@@ -406,14 +406,14 @@ const Analysis: React.FC<AnalysisProps> = ({
/>
</TabPane>
<TabPane tab="发出的评价" key="3">
<TabPane tab={intl.formatMessage({id: 'supplierEvaluation.fachudepingjia'})} key="3">
<RecordList
fetchList={getSentList}
onCheck={handleJumpSent}
onEdit={handleEditSent}
opposite={false}
editable={true}
searchTip="被评价方"
searchTip={intl.formatMessage({id: 'supplierEvaluation.beipingjiafang'})}
/>
</TabPane>
</Tabs>
......
......@@ -7,7 +7,7 @@ import {
Upload,
} from 'antd';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { history } from 'umi';
import { getIntl, history } from 'umi';
import { createFormActions } from '@formily/antd';
import { usePageStatus } from '@/hooks/usePageStatus';
import { getMemberCommentSupplyReceiveTradeHistoryGet } from '@/services/MemberV2Api';
......@@ -19,7 +19,7 @@ import { createEffects } from '../../../purchaserEvaluation/common/effects';
import EvaluationList from '../../../purchaserEvaluation/components/EvaluationList';
const formActions = createFormActions();
const intl = getIntl();
interface Unevaluated {
good: {
pic: string,
......@@ -97,7 +97,7 @@ const ReceivedDetail: React.FC = () => {
const beforeUpload = file => {
if (file.size / 1024 / 1024 > 10) {
message.warning('图片大小超过10M');
message.warning(intl.formatMessage({id: 'supplierEvaluation.tupiandaxiaochaoguo10M'}));
return Upload.LIST_IGNORE;
}
return Promise.resolve();
......@@ -114,7 +114,7 @@ const ReceivedDetail: React.FC = () => {
top: '34px',
}}
>
支持JPG/PNG/JPEG <br />每张最大不超过 10M,尺寸不限 <br />最大数量限制 4张
{intl.formatMessage({id: 'supplierEvaluation.zhichiJPGPNGJPEG'})} <br />{intl.formatMessage({id: 'supplierEvaluation.meizhangzuidabuchaoguo'})} <br />{intl.formatMessage({id: 'supplierEvaluation.zuidashuliangxianzhi4'})}
</span>
);
......@@ -132,7 +132,7 @@ const ReceivedDetail: React.FC = () => {
title={
<AvatarWrap
info={{
aloneTxt: '单',
aloneTxt: intl.formatMessage({id: 'supplierEvaluation.dan'}),
name: orderInfo?.orderNo,
}}
/>
......@@ -150,8 +150,8 @@ const ReceivedDetail: React.FC = () => {
padding: '0 32px',
}}
>
<Descriptions.Item label="采购会员">{orderInfo?.memberName}</Descriptions.Item>
<Descriptions.Item label="下单时间" span={2}>
<Descriptions.Item label={intl.formatMessage({id: 'supplierEvaluation.caigouhuiyuan'})}>{orderInfo?.memberName}</Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({id: 'supplierEvaluation.xiadanshijian'})} span={2}>
{orderInfo?.dealTime}
</Descriptions.Item>
</Descriptions>
......
......@@ -9,7 +9,7 @@ import {
} from 'antd';
import { FormOutlined } from '@ant-design/icons';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { history } from 'umi';
import { getIntl, history } from 'umi';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { getMemberCommentSupplySendTradeHistoryGet, postMemberCommentSupplySendTradeHistoryUpdate } from '@/services/MemberV2Api';
import { normalizeFiledata, FileData } from '@/utils';
......@@ -23,7 +23,7 @@ const formActions = createFormActions();
const {
onFormInit$,
} = FormEffectHooks;
const intl = getIntl();
interface Unevaluated {
good: {
pic: string,
......@@ -138,7 +138,7 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
const beforeUpload = file => {
if (file.size / 1024 / 1024 > 10) {
message.warning('图片大小超过10M');
message.warning(intl.formatMessage({id: 'supplierEvaluation.tupiandaxiaochaoguo10M'}));
return Upload.LIST_IGNORE;
}
return Promise.resolve();
......@@ -154,7 +154,7 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
position: 'relative',
}}
>
支持JPG/PNG/JPEG <br />每张最大不超过 10M,尺寸不限 <br />最大数量限制 4张
{intl.formatMessage({id: 'supplierEvaluation.zhichiJPGPNGJPEG'})} <br />{intl.formatMessage({id: 'supplierEvaluation.meizhangzuidabuchaoguo'})} <br />{intl.formatMessage({id: 'supplierEvaluation.zuidashuliangxianzhi4'})}
</div>
);
......@@ -172,7 +172,7 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
title={
<AvatarWrap
info={{
aloneTxt: '单',
aloneTxt: intl.formatMessage({id: 'supplierEvaluation.dan'}),
name: orderInfo?.orderNo,
}}
/>
......@@ -188,7 +188,7 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
loading={submitLoading}
onClick={() => formActions.submit()}
>
修改
{intl.formatMessage({id: 'supplierEvaluation.xiugai'})}
</Button>
)
}
......@@ -202,10 +202,10 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
padding: '0 32px',
}}
>
<Descriptions.Item label="采购会员">
<Descriptions.Item label={intl.formatMessage({id: 'supplierEvaluation.caigouhuiyuan'})}>
{orderInfo?.memberName}
</Descriptions.Item>
<Descriptions.Item label="下单时间" span={2}>
<Descriptions.Item label={intl.formatMessage({id: 'supplierEvaluation.xiadanshijian'})} span={2}>
{orderInfo?.dealTime}
</Descriptions.Item>
</Descriptions>
......
......@@ -9,7 +9,7 @@ import {
} from 'antd';
import { FormOutlined } from '@ant-design/icons';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { history, Prompt } from 'umi';
import { getIntl, history, Prompt } from 'umi';
import moment from 'moment';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { usePageStatus } from '@/hooks/usePageStatus';
......@@ -25,7 +25,7 @@ const formActions = createFormActions();
const {
onFormInputChange$,
} = FormEffectHooks;
const intl = getIntl();
interface Unevaluated {
good: {
pic: string,
......@@ -120,7 +120,7 @@ const EvaluateOrder: React.FC = () => {
const beforeUpload = file => {
if (file.size / 1024 / 1024 > 10) {
message.warning('图片大小超过10M');
message.warning(intl.formatMessage({id: 'supplierEvaluation.tupiandaxiaochaoguo10M'}));
return Upload.LIST_IGNORE;
}
return Promise.resolve();
......@@ -136,7 +136,7 @@ const EvaluateOrder: React.FC = () => {
position: 'relative',
}}
>
支持JPG/PNG/JPEG <br />每张最大不超过 10M,尺寸不限 <br />最大数量限制 4张
{intl.formatMessage({id: 'supplierEvaluation.zhichiJPGPNGJPEG'})} <br />{intl.formatMessage({id: 'supplierEvaluation.meizhangzuidabuchaoguo'})} <br />{intl.formatMessage({id: 'supplierEvaluation.zuidashuliangxianzhi4'})}
</div>
);
......@@ -154,7 +154,7 @@ const EvaluateOrder: React.FC = () => {
title={
<AvatarWrap
info={{
aloneTxt: '单',
aloneTxt: intl.formatMessage({id: 'supplierEvaluation.dan'}),
name: orderInfo?.orderNo,
}}
/>
......@@ -168,7 +168,7 @@ const EvaluateOrder: React.FC = () => {
loading={submitLoading}
onClick={() => formActions.submit()}
>
发布
{intl.formatMessage({id: 'supplierEvaluation.fabu'})}
</Button>
</>
)}
......@@ -180,8 +180,8 @@ const EvaluateOrder: React.FC = () => {
padding: '0 32px',
}}
>
<Descriptions.Item label="采购会员">{orderInfo?.memberName}</Descriptions.Item>
<Descriptions.Item label="下单时间" span={2}>
<Descriptions.Item label={intl.formatMessage({id: 'supplierEvaluation.caigouhuiyuan'})}>{orderInfo?.memberName}</Descriptions.Item>
<Descriptions.Item label={intl.formatMessage({id: 'supplierEvaluation.xiadanshijian'})} span={2}>
{orderInfo?.createTime}
</Descriptions.Item>
</Descriptions>
......@@ -216,7 +216,7 @@ const EvaluateOrder: React.FC = () => {
/>
</PageHeaderWrapper>
<Prompt when={unsaved} message="您还有未保存的内容,是否确定要离开?" />
<Prompt when={unsaved} message={intl.formatMessage({id: 'supplierEvaluation.ninhaiyouweibaocunde'})} />
</Spin>
);
};
......
import React, { useState, useRef } from 'react';
import { Card, Badge, Button } from 'antd';
import { Link } from 'umi';
import { getIntl, Link } from 'umi';
import { StandardTable } from 'god';
import { ColumnType } from 'antd/lib/table/interface';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
......@@ -16,14 +16,14 @@ import { listSearchSchema } from './schema';
import styles from './index.less';
const formActions = createFormActions();
const intl = getIntl();
const Unevaluated: React.FC = () => {
const ref = useRef<any>({});
const defaultColumns: ColumnType<any>[] = [
{
title: '订单号',
title: intl.formatMessage({id: 'supplierEvaluation.dingdanhao'}),
dataIndex: 'orderNo',
align: 'center',
render: (text, record) => (
......@@ -35,49 +35,49 @@ const Unevaluated: React.FC = () => {
),
},
{
title: '订单摘要',
title: intl.formatMessage({id: 'supplierEvaluation.dingdanzhaiyao'}),
dataIndex: 'digest',
align: 'center',
ellipsis: true,
},
{
title: '采购会员',
title: intl.formatMessage({id: 'supplierEvaluation.caigouhuiyuan'}),
dataIndex: 'memberName',
align: 'center',
render: (text, record) => <>{text}</>,
},
{
title: '下单时间',
title: intl.formatMessage({id: 'supplierEvaluation.xiadanshijian'}),
dataIndex: 'createTime',
align: 'center',
},
{
title: '订单总额',
title: intl.formatMessage({id: 'supplierEvaluation.dingdanzonge'}),
dataIndex: 'totalAmount',
align: 'center',
render: (text) => ${text}`,
},
{
title: '订单类型',
title: intl.formatMessage({id: 'supplierEvaluation.dingdanleixing'}),
dataIndex: 'orderTypeName',
align: 'center',
},
{
title: '外部状态',
title: intl.formatMessage({id: 'supplierEvaluation.waibuzhuangtai'}),
dataIndex: 'outerStatusName',
align: 'center',
render: (text, record) => (
<StatusTag type="success" title="已完成" />
<StatusTag type="success" title={intl.formatMessage({id: 'supplierEvaluation.yiwancheng'})} />
),
},
{
title: '内部状态',
title: intl.formatMessage({id: 'supplierEvaluation.neibuzhuangtai'}),
dataIndex: 'innerStatusName',
align: 'center',
render: (text, record) => <Badge color="#41CC9E" text="已完成" />,
render: (text, record) => <Badge color="#41CC9E" text={intl.formatMessage({id: 'supplierEvaluation.yiwancheng'})} />,
},
{
title: '操作',
title: intl.formatMessage({id: 'supplierEvaluation.caozuo'}),
dataIndex: 'option',
align: 'center',
render: (text, record) => (
......@@ -87,7 +87,7 @@ const Unevaluated: React.FC = () => {
<Button
type="link"
>
评价
{intl.formatMessage({id: 'supplierEvaluation.pingjia'})}
</Button>
)}
</Link>
......
......@@ -8,7 +8,8 @@
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { GlobalConfig } from '@/global/config';
import { getIntl } from 'umi';
const intl = getIntl();
const orderTypeArr = GlobalConfig.web.orderType.map((item) => ({
label: item.platformWayName,
value: item.id,
......@@ -25,9 +26,9 @@ export const listSearchSchema: ISchema = {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索',
placeholder: intl.formatMessage({id: 'supplierEvaluation.sousuo'}),
align: 'flex-left',
tip: '输入 订单号 进行搜索',
tip: intl.formatMessage({id: 'supplierEvaluation.shurudingdanhao'}),
},
},
[FORM_FILTER_PATH]: {
......@@ -43,7 +44,7 @@ export const listSearchSchema: ISchema = {
digest: {
type: 'string',
'x-component-props': {
placeholder: '订单摘要',
placeholder: intl.formatMessage({id: 'supplierEvaluation.dingdanzhaiyao'}),
allowClear: true,
},
},
......@@ -51,7 +52,7 @@ export const listSearchSchema: ISchema = {
type: 'string',
default: undefined,
'x-component-props': {
placeholder: '采购会员',
placeholder: intl.formatMessage({id: 'supplierEvaluation.caigouhuiyuan'}),
allowClear: true,
},
},
......@@ -60,7 +61,7 @@ export const listSearchSchema: ISchema = {
default: '',
'x-component': 'dateSelect',
'x-component-props': {
placeholder: '下单时间',
placeholder: intl.formatMessage({id: 'supplierEvaluation.xiadanshijian'}),
allowClear: true,
},
},
......@@ -69,7 +70,7 @@ export const listSearchSchema: ISchema = {
default: undefined,
enum: orderTypeArr,
'x-component-props': {
placeholder: '订单类型',
placeholder: intl.formatMessage({id: 'supplierEvaluation.dingdanleixing'}),
allowClear: true,
},
},
......@@ -79,7 +80,7 @@ export const listSearchSchema: ISchema = {
span: 1,
},
'x-component-props': {
children: '查询',
children: intl.formatMessage({id: 'supplierEvaluation.chaxun'}),
},
},
},
......
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