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': '订单总额',
}
/*
* @Author: XieZhiXiong
* @Date: 2021-08-11 14:20:42
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-08-18 10:44:56
* @Description: 解释 Modal
*/
import React from 'react';
import { Modal, Tooltip } from 'antd';
import { QuestionCircleOutlined } from '@ant-design/icons';
import { createAsyncFormActions } from '@formily/antd';
import NiceForm from '@/components/NiceForm';
import schema from './schema';
const modalFormActions = createAsyncFormActions();
export type ValuesType = {
/**
* 解释内容
*/
content: string,
}
interface ExplainModalProps {
visible: boolean;
confirmLoading: boolean;
onSubmit: (values: ValuesType) => void;
/**
* 关闭触发事件
*/
onClose: () => void;
/**
* 是否只可以选择 不接受申请
*/
rejected?: boolean;
}
const ExplainModal: React.FC<ExplainModalProps> = (props) => {
const {
visible,
confirmLoading,
onSubmit,
onClose,
} = props;
const handleClose = () => {
onClose?.();
};
const handleSubmit = values => {
if (onSubmit) {
onSubmit(values);
}
};
return (
<Modal
title={(
<>
商家解释
<Tooltip title="商家对于评价的解释,显示在商品交易评价中">
<QuestionCircleOutlined style={{ marginLeft: 3 }} />
</Tooltip>
</>
)}
visible={visible}
confirmLoading={confirmLoading}
onOk={() => modalFormActions.submit()}
onCancel={handleClose}
destroyOnClose
>
<NiceForm
effects={() => {
}}
actions={modalFormActions}
schema={schema}
onSubmit={handleSubmit}
/>
</Modal>
);
};
export default ExplainModal;
/*
* @Author: XieZhiXiong
* @Date: 2021-08-11 14:20:42
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-08-18 10:44:56
* @Description: 解释 Modal
*/
import React from 'react';
import { Modal, Tooltip } from 'antd';
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 = {
/**
* 解释内容
*/
content: string,
}
interface ExplainModalProps {
visible: boolean;
confirmLoading: boolean;
onSubmit: (values: ValuesType) => void;
/**
* 关闭触发事件
*/
onClose: () => void;
/**
* 是否只可以选择 不接受申请
*/
rejected?: boolean;
}
const ExplainModal: React.FC<ExplainModalProps> = (props) => {
const {
visible,
confirmLoading,
onSubmit,
onClose,
} = props;
const handleClose = () => {
onClose?.();
};
const handleSubmit = values => {
if (onSubmit) {
onSubmit(values);
}
};
return (
<Modal
title={(
<>
{intl.formatMessage({id: 'supplierEvaluation.shangjiajieshi'})}
<Tooltip title={intl.formatMessage({id: 'supplierEvaluation.shangjiaduiyupingjiadejie'})}>
<QuestionCircleOutlined style={{ marginLeft: 3 }} />
</Tooltip>
</>
)}
visible={visible}
confirmLoading={confirmLoading}
onOk={() => modalFormActions.submit()}
onCancel={handleClose}
destroyOnClose
>
<NiceForm
effects={() => {
}}
actions={modalFormActions}
schema={schema}
onSubmit={handleSubmit}
/>
</Modal>
);
};
export default ExplainModal;
/*
* @Author: XieZhiXiong
* @Date: 2021-08-11 14:23:08
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-08-11 14:58:47
* @Description:
*/
import { ISchema } from '@formily/antd';
const schema: ISchema = {
type: 'object',
properties: {
MEGA_LAYOUT: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
labelAlign: 'top',
},
properties: {
content: {
type: 'string',
'x-component': 'textarea',
'x-component-props': {
placeholder: '在此输入你的内容',
rows: 5,
},
'x-rules': [
{
required: true,
message: '请输入内容',
},
],
},
},
},
},
};
export default schema;
/*
* @Author: XieZhiXiong
* @Date: 2021-08-11 14:23:08
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-08-11 14:58:47
* @Description:
*/
import { ISchema } from '@formily/antd';
import { getIntl } from 'umi';
const intl = getIntl();
const schema: ISchema = {
type: 'object',
properties: {
MEGA_LAYOUT: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
labelAlign: 'top',
},
properties: {
content: {
type: 'string',
'x-component': 'textarea',
'x-component-props': {
placeholder: intl.formatMessage({id: 'supplierEvaluation.zaicishurunideneirong'}),
rows: 5,
},
'x-rules': [
{
required: true,
message: intl.formatMessage({id: 'supplierEvaluation.qingshuruneirong'}),
},
],
},
},
},
},
};
export default schema;
import React, { useState, useRef } from 'react';
import { Card, Badge, Button } from 'antd';
import { Link } from 'umi';
import { StandardTable } from 'god';
import { ColumnType } from 'antd/lib/table/interface';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { createFormActions } from '@formily/antd';
import moment from 'moment';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { getMemberOrderCommentVendorPage } from '@/services/MemberV2Api';
import EyePreview from '@/components/EyePreview';
import NiceForm from '@/components/NiceForm';
import StatusTag from '@/components/StatusTag';
import { listSearchSchema } from './schema';
import styles from './index.less';
const formActions = createFormActions();
const Unevaluated: React.FC = () => {
const ref = useRef<any>({});
const defaultColumns: ColumnType<any>[] = [
{
title: '订单号',
dataIndex: 'orderNo',
align: 'center',
render: (text, record) => (
<EyePreview
url={`/memberCenter/tranactionAbility/supplierEvaluation/unevaluated/order?id=${record.id}`}
>
{text}
</EyePreview>
),
},
{
title: '订单摘要',
dataIndex: 'digest',
align: 'center',
ellipsis: true,
},
{
title: '采购会员',
dataIndex: 'memberName',
align: 'center',
render: (text, record) => <>{text}</>,
},
{
title: '下单时间',
dataIndex: 'createTime',
align: 'center',
},
{
title: '订单总额',
dataIndex: 'totalAmount',
align: 'center',
render: (text) => ${text}`,
},
{
title: '订单类型',
dataIndex: 'orderTypeName',
align: 'center',
},
{
title: '外部状态',
dataIndex: 'outerStatusName',
align: 'center',
render: (text, record) => (
<StatusTag type="success" title="已完成" />
),
},
{
title: '内部状态',
dataIndex: 'innerStatusName',
align: 'center',
render: (text, record) => <Badge color="#41CC9E" text="已完成" />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
<Link to={`/memberCenter/tranactionAbility/supplierEvaluation/unevaluated/evaluate?id=${record.id}`}>
{!record.completeCommentStatus && (
<Button
type="link"
>
评价
</Button>
)}
</Link>
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
let { createTimeStart, createTimeEnd , ...rest } = params;
createTimeStart = createTimeStart ? moment(+createTimeStart).format('YYYY-MM-DD HH:mm:ss') : undefined;
createTimeEnd = createTimeEnd ? moment(+createTimeEnd).format('YYYY-MM-DD HH:mm:ss') : undefined;
return new Promise((resolve, reject) => {
getMemberOrderCommentVendorPage({
createTimeStart,
createTimeEnd,
...rest
})
.then(res => {
if (res.code === 1000) {
resolve(res.data);
}
reject();
})
.catch(() => {
reject();
});
});
};
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'orderNo',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchListData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'orderNo',
FORM_FILTER_PATH,
);
}}
schema={listSearchSchema}
/>
}
/>
</Card>
</PageHeaderWrapper>
);
};
export default Unevaluated;
import React, { useState, useRef } from 'react';
import { Card, Badge, Button } from 'antd';
import { getIntl, Link } from 'umi';
import { StandardTable } from 'god';
import { ColumnType } from 'antd/lib/table/interface';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { createFormActions } from '@formily/antd';
import moment from 'moment';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { getMemberOrderCommentVendorPage } from '@/services/MemberV2Api';
import EyePreview from '@/components/EyePreview';
import NiceForm from '@/components/NiceForm';
import StatusTag from '@/components/StatusTag';
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: intl.formatMessage({id: 'supplierEvaluation.dingdanhao'}),
dataIndex: 'orderNo',
align: 'center',
render: (text, record) => (
<EyePreview
url={`/memberCenter/tranactionAbility/supplierEvaluation/unevaluated/order?id=${record.id}`}
>
{text}
</EyePreview>
),
},
{
title: intl.formatMessage({id: 'supplierEvaluation.dingdanzhaiyao'}),
dataIndex: 'digest',
align: 'center',
ellipsis: true,
},
{
title: intl.formatMessage({id: 'supplierEvaluation.caigouhuiyuan'}),
dataIndex: 'memberName',
align: 'center',
render: (text, record) => <>{text}</>,
},
{
title: intl.formatMessage({id: 'supplierEvaluation.xiadanshijian'}),
dataIndex: 'createTime',
align: 'center',
},
{
title: intl.formatMessage({id: 'supplierEvaluation.dingdanzonge'}),
dataIndex: 'totalAmount',
align: 'center',
render: (text) => ${text}`,
},
{
title: intl.formatMessage({id: 'supplierEvaluation.dingdanleixing'}),
dataIndex: 'orderTypeName',
align: 'center',
},
{
title: intl.formatMessage({id: 'supplierEvaluation.waibuzhuangtai'}),
dataIndex: 'outerStatusName',
align: 'center',
render: (text, record) => (
<StatusTag type="success" title={intl.formatMessage({id: 'supplierEvaluation.yiwancheng'})} />
),
},
{
title: intl.formatMessage({id: 'supplierEvaluation.neibuzhuangtai'}),
dataIndex: 'innerStatusName',
align: 'center',
render: (text, record) => <Badge color="#41CC9E" text={intl.formatMessage({id: 'supplierEvaluation.yiwancheng'})} />,
},
{
title: intl.formatMessage({id: 'supplierEvaluation.caozuo'}),
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<>
<Link to={`/memberCenter/tranactionAbility/supplierEvaluation/unevaluated/evaluate?id=${record.id}`}>
{!record.completeCommentStatus && (
<Button
type="link"
>
{intl.formatMessage({id: 'supplierEvaluation.pingjia'})}
</Button>
)}
</Link>
</>
),
},
];
const [columns, setColumns] = useState<any[]>(defaultColumns);
const fetchListData = (params: any) => {
let { createTimeStart, createTimeEnd , ...rest } = params;
createTimeStart = createTimeStart ? moment(+createTimeStart).format('YYYY-MM-DD HH:mm:ss') : undefined;
createTimeEnd = createTimeEnd ? moment(+createTimeEnd).format('YYYY-MM-DD HH:mm:ss') : undefined;
return new Promise((resolve, reject) => {
getMemberOrderCommentVendorPage({
createTimeStart,
createTimeEnd,
...rest
})
.then(res => {
if (res.code === 1000) {
resolve(res.data);
}
reject();
})
.catch(() => {
reject();
});
});
};
return (
<PageHeaderWrapper>
<Card>
<StandardTable
tableProps={{
rowKey: 'orderNo',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchListData(params)}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'orderNo',
FORM_FILTER_PATH,
);
}}
schema={listSearchSchema}
/>
}
/>
</Card>
</PageHeaderWrapper>
);
};
export default Unevaluated;
/*
* @Author: XieZhiXiong
* @Date: 2021-01-06 11:36:35
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-08-12 14:03:15
* @Description:
*/
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { GlobalConfig } from '@/global/config';
const orderTypeArr = GlobalConfig.web.orderType.map((item) => ({
label: item.platformWayName,
value: item.id,
}));
export const listSearchSchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
type: 'object',
'x-component': 'mega-layout',
properties: {
orderNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索',
align: 'flex-left',
tip: '输入 订单号 进行搜索',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
grid: true,
full: true,
autoRow: true,
columns: 6,
},
properties: {
digest: {
type: 'string',
'x-component-props': {
placeholder: '订单摘要',
allowClear: true,
},
},
memberName: {
type: 'string',
default: undefined,
'x-component-props': {
placeholder: '采购会员',
allowClear: true,
},
},
'[createTimeStart, createTimeEnd]': {
type: 'string',
default: '',
'x-component': 'dateSelect',
'x-component-props': {
placeholder: '下单时间',
allowClear: true,
},
},
orderType: {
type: 'string',
default: undefined,
enum: orderTypeArr,
'x-component-props': {
placeholder: '订单类型',
allowClear: true,
},
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
span: 1,
},
'x-component-props': {
children: '查询',
},
},
},
},
},
},
},
};
\ No newline at end of file
/*
* @Author: XieZhiXiong
* @Date: 2021-01-06 11:36:35
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-08-12 14:03:15
* @Description:
*/
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,
}));
export const listSearchSchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
type: 'object',
'x-component': 'mega-layout',
properties: {
orderNo: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: intl.formatMessage({id: 'supplierEvaluation.sousuo'}),
align: 'flex-left',
tip: intl.formatMessage({id: 'supplierEvaluation.shurudingdanhao'}),
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
grid: true,
full: true,
autoRow: true,
columns: 6,
},
properties: {
digest: {
type: 'string',
'x-component-props': {
placeholder: intl.formatMessage({id: 'supplierEvaluation.dingdanzhaiyao'}),
allowClear: true,
},
},
memberName: {
type: 'string',
default: undefined,
'x-component-props': {
placeholder: intl.formatMessage({id: 'supplierEvaluation.caigouhuiyuan'}),
allowClear: true,
},
},
'[createTimeStart, createTimeEnd]': {
type: 'string',
default: '',
'x-component': 'dateSelect',
'x-component-props': {
placeholder: intl.formatMessage({id: 'supplierEvaluation.xiadanshijian'}),
allowClear: true,
},
},
orderType: {
type: 'string',
default: undefined,
enum: orderTypeArr,
'x-component-props': {
placeholder: intl.formatMessage({id: 'supplierEvaluation.dingdanleixing'}),
allowClear: true,
},
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
span: 1,
},
'x-component-props': {
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