Commit 00ddc67b authored by Bill's avatar Bill

Merge branch 'dev' of 10.0.0.22:lingxi/lingxi-business-paltform into dev

parents cb601a4d 65db2fd9
import React, { useState, useEffect } from 'react';
import { Input, Space, Select, Button, Cascader } from 'antd';
import { useFieldState, FormPath, FormEffectHooks, useFormEffects } from '@formily/antd';
/**
* 筛选项 搜索和远程数据结合的 Cascader
* 属性Data数据暂存至schema的props下的dataOption
*/
const CustomCategorySearch = props => {
const justifyAlign = props.props['x-component-props'].align || 'flex-end'
const option = props.props['x-component-props'].dataoption
const [dataOption, setDataOption] = useState<any>([])
const [value, setValue] = useState<any>([])
useEffect(() => {
setDataOption(option)
}, [option])
useFormEffects(() => {
FormEffectHooks.onFormReset$().subscribe(() => {
setValue([])
})
})
const onChange = (value, selectedOptions) => {
props.mutators.change(value[value.length - 1])
setValue(value)
}
const displayRender = (label) => {
return label[label.length - 1];
}
return (
<Space size={20} style={{ justifyContent: justifyAlign, width: '100%' }}>
<Cascader
options={dataOption}
onChange={onChange}
value={value}
displayRender={displayRender}
{...props.props['x-component-props']}
/>
</Space>
);
};
CustomCategorySearch.defaultProps = {};
CustomCategorySearch.isFieldComponent = true;
export default CustomCategorySearch;
import React from 'react'; import React from 'react';
import SchemaForm, { import SchemaForm, {
IAntdSchemaFormProps, createVirtualBox, registerVirtualBox, Schema, SchemaField, FormButtonGroup, Reset, createControllerBox, registerValidationRules, IAntdSchemaFormProps, createVirtualBox, registerVirtualBox, Schema, SchemaField, FormButtonGroup, Reset, createControllerBox, registerValidationRules,
} from '@formily/antd'; } from '@formily/antd';
import { Button, Space, Row, Col, DatePicker } from 'antd'; import { Button, Space, Row, Col, DatePicker } from 'antd';
import CustomUpload from './components/CustomUpload'; import CustomUpload from './components/CustomUpload';
import CustomStatus from './components/CustomStatus'; import CustomStatus from './components/CustomStatus';
import CustomAddArray from './components/CustomAddArray'; import CustomAddArray from './components/CustomAddArray';
import CustomSlider from './components/CustomSlider'; import CustomSlider from './components/CustomSlider';
import Search from './components/Search'; import Search from './components/Search';
import CustomInputSearch from './components/CustomInputSearch' import CustomInputSearch from './components/CustomInputSearch';
import Submit from './components/Submit'; import CustomCategorySearch from './components/CustomCategorySearch';
import Text from './components/Text'; import Submit from './components/Submit';
import CardCheckBox from './components/CardCheckBox'; import Text from './components/Text';
import MultTable from './components/MultTable'; import CardCheckBox from './components/CardCheckBox';
import CustomRegistryPhone from './components/CustomRegistryPhone'; import MultTable from './components/MultTable';
import CustomRelevance from './components/CustomRelevance'; import CustomRegistryPhone from './components/CustomRegistryPhone';
import Children from './components/Children'; import CustomRelevance from './components/CustomRelevance';
import CircleBox from './components/CircleBox'; import Children from './components/Children';
import Phone from './components/Phone'; import CircleBox from './components/CircleBox';
import CustomRadio from './components/CustomRadio'; import Phone from './components/Phone';
import Select from './components/Select'; import CustomRadio from './components/CustomRadio';
import SearchSelect from './components/SearchSelect'; import Select from './components/Select';
import TableTagList from './components/TableTagList'; import SearchSelect from './components/SearchSelect';
import './index.less' import TableTagList from './components/TableTagList';
import { Checkbox, Radio } from '@formily/antd-components'; import './index.less'
import DateSelect from './components/DateSelect'; import { Checkbox, Radio } from '@formily/antd-components';
import DateRangePickerUnix from './components/DateRangePickerUnix'; import DateSelect from './components/DateSelect';
import NumberRange from './components/NumberRange'; import DateRangePickerUnix from './components/DateRangePickerUnix';
import VirtualChildren from './components/VirtualChildren'; import NumberRange from './components/NumberRange';
import SmilingFace from './components/SmilingFace'; import VirtualChildren from './components/VirtualChildren';
import SliderValidate from './components/SliderValidate'; import SmilingFace from './components/SmilingFace';
import AntUpload from './components/AntUpload'; import SliderValidate from './components/SliderValidate';
import { useLinkComponentProps } from './linkages/linkComponentProps'; import AntUpload from './components/AntUpload';
import Loading from '../Loading'; import { useLinkComponentProps } from './linkages/linkComponentProps';
import Loading from '../Loading';
export interface NiceFormProps extends IAntdSchemaFormProps {
loading?: boolean export interface NiceFormProps extends IAntdSchemaFormProps {
} loading?: boolean
}
const SchemaFormButtonGroup = createVirtualBox('schemaButtonGroup', FormButtonGroup)
const SchemaButton = createVirtualBox('schemaButton', Button) const SchemaFormButtonGroup = createVirtualBox('schemaButtonGroup', FormButtonGroup)
const SchemaSubmit = createVirtualBox('schemaSubmit', Submit) const SchemaButton = createVirtualBox('schemaButton', Button)
const SchemaReset = createVirtualBox('schemaReset', Reset) const SchemaSubmit = createVirtualBox('schemaSubmit', Submit)
export const FlexBox = createVirtualBox('flexBox', props => <Row {...props}/>) const SchemaReset = createVirtualBox('schemaReset', Reset)
export const FlexBox = createVirtualBox('flexBox', props => <Row {...props}/>)
// 自定义校验规则
registerValidationRules({ // 自定义校验规则
limitByte: (value, desc, rules) => { registerValidationRules({
const { allowChineseTransform = true, maxByte } = desc; limitByte: (value, desc, rules) => {
let str = value; const { allowChineseTransform = true, maxByte } = desc;
let message = `不能超过${maxByte}个字符` let str = value;
if (allowChineseTransform) { let message = `不能超过${maxByte}个字符`
str = str.replace(/[\u4E00-\u9FA5]/g, "AA"); if (allowChineseTransform) {
message += `,或者${maxByte / 2}个汉字` str = str.replace(/[\u4E00-\u9FA5]/g, "AA");
} message += `,或者${maxByte / 2}个汉字`
return str.length > maxByte ? message : ""; }
} return str.length > maxByte ? message : "";
}); }
});
// 该组件用于schema中嵌套表单, 不过控制台会出现警告
const schemaLayout = createControllerBox("schemaLayout", (_props) => { // 该组件用于schema中嵌套表单, 不过控制台会出现警告
const { schema } = _props; const schemaLayout = createControllerBox("schemaLayout", (_props) => {
const componentProps = schema.getExtendsComponentProps(); const { schema } = _props;
const { properties } = schema.toJSON(); const componentProps = schema.getExtendsComponentProps();
const nestedSchema = new Schema({ const { properties } = schema.toJSON();
type: "object", const nestedSchema = new Schema({
properties type: "object",
}); properties
});
// const { visible, title, onCancel, footer, ...others } = componentProps;
// const { visible, title, onCancel, footer, ...others } = componentProps;
return (
<NiceForm> return (
<SchemaField schema={nestedSchema}></SchemaField> <NiceForm>
</NiceForm> <SchemaField schema={nestedSchema}></SchemaField>
); </NiceForm>
}); );
});
export const componentExport = {
CheckboxSingle: Checkbox, export const componentExport = {
CustomUpload, CheckboxSingle: Checkbox,
CustomStatus, CustomUpload,
CustomAddArray, CustomStatus,
CustomSlider, CustomAddArray,
CustomRadio, CustomSlider,
Search, CustomRadio,
CustomInputSearch, Search,
Submit, CustomInputSearch,
Text, CustomCategorySearch,
CardCheckBox, Submit,
MultTable, Text,
CustomRegistryPhone, CardCheckBox,
CustomRelevance, MultTable,
Children, CustomRegistryPhone,
CircleBox, CustomRelevance,
SchemaFormButtonGroup, Children,
FlexBox, CircleBox,
Phone, SchemaFormButtonGroup,
Select, FlexBox,
SearchSelect, Phone,
DateRangePicker: DatePicker.RangePicker, Select,
TableTagList, SearchSelect,
DateSelect, DateRangePicker: DatePicker.RangePicker,
DateRangePickerUnix, TableTagList,
NumberRange, DateSelect,
VirtualChildren, DateRangePickerUnix,
SmilingFace, NumberRange,
SliderValidate, VirtualChildren,
RadioGroup: Radio.Group, SmilingFace,
AntUpload, SliderValidate,
} RadioGroup: Radio.Group,
const NiceForm: React.FC<NiceFormProps> = props => { AntUpload,
const { children, components, effects, expressionScope, loading = false, ...reset } = props; }
const NiceForm: React.FC<NiceFormProps> = props => {
const defineComponents = Object.assign(componentExport, components); const { children, components, effects, expressionScope, loading = false, ...reset } = props;
return ( const defineComponents = Object.assign(componentExport, components);
<div style={{width: '100%', position: 'relative'}}>
<SchemaForm return (
colon={false} <div style={{width: '100%', position: 'relative'}}>
components={defineComponents} <SchemaForm
style={{opacity: loading ? 0 : 1, position: loading ? 'absolute' : 'initial'}} colon={false}
effects={($, ctx) => { components={defineComponents}
// 自定义联动scope收集器 style={{opacity: loading ? 0 : 1, position: loading ? 'absolute' : 'initial'}}
useLinkComponentProps(expressionScope) effects={($, ctx) => {
// 自定义联动scope收集器
// 组件联动 useLinkComponentProps(expressionScope)
effects && effects($, ctx)
}} // 组件联动
expressionScope={expressionScope} effects && effects($, ctx)
{...reset} }}
> expressionScope={expressionScope}
{children} {...reset}
</SchemaForm> >
{ loading && <Loading/> } {children}
</div> </SchemaForm>
); { loading && <Loading/> }
}; </div>
);
NiceForm.defaultProps = {}; };
export default NiceForm; NiceForm.defaultProps = {};
export default NiceForm;
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: XieZhiXiong * @Author: XieZhiXiong
* @Date: 2020-11-04 15:09:09 * @Date: 2020-11-04 15:09:09
* @LastEditors: XieZhiXiong * @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-21 11:44:17 * @LastEditTime: 2020-12-24 10:32:10
* @Description: 维修商品抽屉组件 * @Description: 维修商品抽屉组件
*/ */
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
...@@ -246,6 +246,11 @@ class GoodsDrawer extends React.Component<GoodsDrawerProps, GoodsDrawerState> { ...@@ -246,6 +246,11 @@ class GoodsDrawer extends React.Component<GoodsDrawerProps, GoodsDrawerState> {
payload.push(atom); payload.push(atom);
}); });
}); });
if (!payload.length) {
this.setState({ loading: false });
return;
}
processEnumRes = await PublicApi.postOrderGetProcessEnum({ processEnumRes = await PublicApi.postOrderGetProcessEnum({
list: payload, list: payload,
......
/* /*
* @Author: XieZhiXiong * @Author: XieZhiXiong
* @Date: 2020-09-29 15:04:46 * @Date: 2020-09-29 15:04:46
* @LastEditors: XieZhiXiong * @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-11 16:39:17 * @LastEditTime: 2020-12-24 10:55:51
* @Description: 外部流转记录 * @Description: 外部流转记录
*/ */
import React from 'react'; import React from 'react';
import { REPAIR_OUTER_STATUS } from '@/constants'; import { REPAIR_OUTER_STATUS } from '@/constants';
import MellowCard from '@/components/MellowCard'; import MellowCard from '@/components/MellowCard';
import PolymericTable from '@/components/PolymericTable'; import PolymericTable from '@/components/PolymericTable';
import { EditableColumns } from '@/components/PolymericTable/interface'; import { EditableColumns } from '@/components/PolymericTable/interface';
import StatusTag from '@/components/StatusTag'; import StatusTag from '@/components/StatusTag';
import { REPAIR_OUTER_STATUS_TAG_MAP } from '../../constants'; import { REPAIR_OUTER_STATUS_TAG_MAP } from '../../constants';
interface OuterCirculationRecordProps { interface OuterCirculationRecordProps {
dataSource: { dataSource: {
roleName: string, roleName: string,
status: number | string, status: number | string,
operate: string, operate: string,
operateTime: string, operateTime: string,
opinion: string, opinion: string,
}[]; }[];
onPaginationChange?: (page: number, size: number) => void; onPaginationChange?: (page: number, size: number) => void;
}; };
const OuterCirculationRecord: React.FC<OuterCirculationRecordProps> = ({ const OuterCirculationRecord: React.FC<OuterCirculationRecordProps> = ({
dataSource = [], dataSource = [],
onPaginationChange, onPaginationChange,
}) => { }) => {
const columns: EditableColumns[] = [ const columns: EditableColumns[] = [
{ {
title: '序号', title: '序号',
dataIndex: 'order', dataIndex: 'order',
align: 'center', align: 'center',
render: (_, record, index) => index + 1, render: (_, record, index) => index + 1,
}, },
{ {
title: '操作角色', title: '操作角色',
dataIndex: 'roleName', dataIndex: 'roleName',
align: 'center', align: 'center',
}, },
{ {
title: '状态', title: '状态',
dataIndex: 'statusName', dataIndex: 'status',
align: 'center', align: 'center',
render: (text, record) => <StatusTag type={REPAIR_OUTER_STATUS_TAG_MAP[record.status]} title={text} /> render: (text, record) => <StatusTag type={REPAIR_OUTER_STATUS_TAG_MAP[record.statusCode]} title={text} />
}, },
{ {
title: '操作', title: '操作',
dataIndex: 'operate', dataIndex: 'operate',
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
}, },
{ {
title: '操作时间', title: '操作时间',
dataIndex: 'operateTime', dataIndex: 'operateTime',
align: 'center', align: 'center',
}, },
{ {
title: '审核意见', title: '审核意见',
dataIndex: 'opinion', dataIndex: 'opinion',
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
}, },
]; ];
const handlePaginationChange = (page, size) => { const handlePaginationChange = (page, size) => {
if (onPaginationChange) { if (onPaginationChange) {
onPaginationChange(page, size); onPaginationChange(page, size);
} }
}; };
return ( return (
<MellowCard <MellowCard
title="外部流转记录" title="外部流转记录"
> >
<PolymericTable <PolymericTable
rowKey="operateTime" rowKey="operateTime"
dataSource={dataSource} dataSource={dataSource}
columns={columns} columns={columns}
loading={false} loading={false}
pagination={null} pagination={null}
/> />
</MellowCard> </MellowCard>
); );
}; };
export default OuterCirculationRecord; export default OuterCirculationRecord;
\ No newline at end of file
/* /*
* @Author: XieZhiXiong * @Author: XieZhiXiong
* @Date: 2020-11-03 18:30:47 * @Date: 2020-11-03 18:30:47
* @LastEditors: XieZhiXiong * @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-11 10:29:51 * @LastEditTime: 2020-12-24 10:36:02
* @Description: 联动逻辑相关 * @Description: 联动逻辑相关
*/ */
import { Modal } from 'antd'; import { Modal } from 'antd';
import { FormEffectHooks, FormPath } from '@formily/antd'; import { FormEffectHooks, FormPath } from '@formily/antd';
import { useLinkageUtils } from '@/utils/formEffectUtils'; import { useLinkageUtils } from '@/utils/formEffectUtils';
const { const {
onFieldInputChange$, onFieldInputChange$,
onFieldValueChange$, onFieldValueChange$,
} = FormEffectHooks; } = FormEffectHooks;
export const useBusinessEffects = (context, actions) => { export const useBusinessEffects = (context, actions) => {
const { const {
getFieldValue, getFieldValue,
setFieldValue, setFieldValue,
getFieldState, getFieldState,
setFieldState, setFieldState,
} = actions; } = actions;
const linkage = useLinkageUtils(); const linkage = useLinkageUtils();
// 联动配送方式 // 联动配送方式
onFieldValueChange$('deliveryType').subscribe(fieldState => { onFieldValueChange$('deliveryType').subscribe(fieldState => {
const { name, value } = fieldState; const { name, value } = fieldState;
switch (value) { switch (value) {
// 物流 // 物流
case 1: { case 1: {
linkage.show('shippingAddress'); linkage.show('shippingAddress');
linkage.hide('pickupAddress'); linkage.hide('pickupAddress');
break; break;
}; };
// 自提 // 自提
case 2: { case 2: {
linkage.hide('shippingAddress'); linkage.hide('shippingAddress');
linkage.show('pickupAddress'); linkage.show('pickupAddress');
break; break;
}; };
// 无需物流 // 无需物流
case 3: { case 3: {
linkage.hide('*(shippingAddress,pickupAddress)'); linkage.hide('*(shippingAddress,pickupAddress)');
break; break;
}; };
default: default:
break break
}; };
}); });
// 校验换货数量 // 校验换货数量
onFieldInputChange$('replaceGoodsList.*.replaceCount').subscribe(fieldState => { onFieldInputChange$('replaceGoodsList.*.replaceCount').subscribe(fieldState => {
const { name, value } = fieldState; const { name, value } = fieldState;
// 已换货数量 // 已换货数量
const replacedCountValue = getFieldState( const replacedCountValue = getFieldState(
FormPath.transform(name, /\d/, $1 => { FormPath.transform(name, /\d/, $1 => {
return `replaceGoodsList.${$1}.extraData` return `replaceGoodsList.${$1}.extraData`
}), }),
state => state.value.replacedCount, state => state.value.replacedCount,
); );
setFieldState( setFieldState(
FormPath.transform(name, /\d/, $1 => { FormPath.transform(name, /\d/, $1 => {
return `replaceGoodsList.${$1}.replaceCount` return `replaceGoodsList.${$1}.replaceCount`
}), }),
state => { state => {
if (+value > replacedCountValue) { if (+value > replacedCountValue) {
state.errors = '填写值已超过最大可换货数量,请重新填写'; state.errors = '填写值已超过最大可换货数量,请重新填写';
} else { } else {
state.errors = ''; state.errors = '';
} }
} }
); );
}); });
// 供应会员联动 单据明细
onFieldInputChange$('supplierMember').subscribe(fieldState => {
const replaceGoodsListValue = getFieldValue('replaceGoodsList');
if (replaceGoodsListValue && replaceGoodsListValue.length) {
setFieldValue('replaceGoodsList', []);
}
});
} }
\ No newline at end of file
/* /*
* @Author: XieZhiXiong * @Author: XieZhiXiong
* @Date: 2020-11-03 18:30:47 * @Date: 2020-11-03 18:30:47
* @LastEditors: XieZhiXiong * @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-17 10:32:48 * @LastEditTime: 2020-11-17 10:32:48
* @Description: 联动逻辑相关 * @Description: 联动逻辑相关
*/ */
import { Modal } from 'antd'; import { Modal } from 'antd';
import { FormEffectHooks, FormPath } from '@formily/antd'; import { FormEffectHooks, FormPath } from '@formily/antd';
import { useLinkageUtils } from '@/utils/formEffectUtils'; import { useLinkageUtils } from '@/utils/formEffectUtils';
import { import {
} from '@/constants'; } from '@/constants';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
const { const {
onFieldInputChange$, onFieldInputChange$,
onFieldValueChange$, onFieldValueChange$,
} = FormEffectHooks; } = FormEffectHooks;
export const useBusinessEffects = (context, actions) => { export const useBusinessEffects = (context, actions) => {
const { const {
getFieldValue, getFieldValue,
setFieldValue, setFieldValue,
getFieldState, getFieldState,
setFieldState, setFieldState,
} = actions; } = actions;
// const linkage = useLinkageUtils(); // const linkage = useLinkageUtils();
// 校验维修数量 // 校验维修数量
onFieldInputChange$('repairGoodsList.*.repairCount').subscribe(fieldState => { onFieldInputChange$('repairGoodsList.*.repairCount').subscribe(fieldState => {
const { name, value } = fieldState; const { name, value } = fieldState;
// 已维修数量 // 已维修数量
const repairedCountValue = getFieldState( const repairedCountValue = getFieldState(
FormPath.transform(name, /\d/, $1 => { FormPath.transform(name, /\d/, $1 => {
return `repairGoodsList.${$1}.extraData` return `repairGoodsList.${$1}.extraData`
}), }),
state => state.value.repairedCount, state => state.value.repairedCount,
); );
setFieldState( setFieldState(
FormPath.transform(name, /\d/, $1 => { FormPath.transform(name, /\d/, $1 => {
return `repairGoodsList.${$1}.repairCount` return `repairGoodsList.${$1}.repairCount`
}), }),
state => { state => {
if (+value > repairedCountValue) { if (+value > repairedCountValue) {
state.errors = '填写值已超过最大可维修数量,请重新填写'; state.errors = '填写值已超过最大可维修数量,请重新填写';
} else { } else {
state.errors = ''; state.errors = '';
} }
} }
); );
}); });
// 供应会员联动 单据明细
onFieldInputChange$('supplierMember').subscribe(fieldState => {
const replaceGoodsListValue = getFieldValue('repairGoodsList');
if (replaceGoodsListValue && replaceGoodsListValue.length) {
setFieldValue('repairGoodsList', []);
}
});
} }
\ No newline at end of file
/* /*
* @Author: XieZhiXiong * @Author: XieZhiXiong
* @Date: 2020-11-04 18:22:57 * @Date: 2020-11-04 18:22:57
* @LastEditors: XieZhiXiong * @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-11 17:15:08 * @LastEditTime: 2020-12-24 10:55:25
* @Description: 内、外部流转记录 * @Description: 内、外部流转记录
*/ */
import React from 'react'; import React from 'react';
import { import {
Tabs, Tabs,
Badge, Badge,
} from 'antd'; } from 'antd';
import PolymericTable from '@/components/PolymericTable'; import PolymericTable from '@/components/PolymericTable';
import { EditableColumns } from '@/components/PolymericTable/interface'; import { EditableColumns } from '@/components/PolymericTable/interface';
import MellowCard from '@/components/MellowCard'; import MellowCard from '@/components/MellowCard';
import StatusTag from '@/components/StatusTag'; import StatusTag from '@/components/StatusTag';
import { import {
REPAIR_OUTER_STATUS_TAG_MAP, REPAIR_OUTER_STATUS_TAG_MAP,
REPAIR_INNER_STATUS_BADGE_MAP, REPAIR_INNER_STATUS_BADGE_MAP,
} from '../../../constants'; } from '../../../constants';
import styles from './index.less'; import styles from './index.less';
export interface InnerHistoryItem { export interface InnerHistoryItem {
step: number; step: number;
operator: string; operator: string;
department: string; department: string;
jobTitle: string; jobTitle: string;
status: string; status: string;
operate: string; operate: string;
operateTime: string, operateTime: string,
opinion: string; opinion: string;
}; };
export interface OuterHistoryItem { export interface OuterHistoryItem {
roleName: string; roleName: string;
status: string; status: string;
operate: string; operate: string;
operateTime: string; operateTime: string;
opinion: string; opinion: string;
}; };
interface FlowRecordsProps { interface FlowRecordsProps {
outerHistory?: OuterHistoryItem[]; outerHistory?: OuterHistoryItem[];
innerHistory: InnerHistoryItem[]; innerHistory: InnerHistoryItem[];
}; };
const FlowRecords: React.FC<FlowRecordsProps> = ({ outerHistory = [], innerHistory }) => { const FlowRecords: React.FC<FlowRecordsProps> = ({ outerHistory = [], innerHistory }) => {
const outerColumns: EditableColumns[] = [ const outerColumns: EditableColumns[] = [
{ {
title: '序号', title: '序号',
dataIndex: 'index', dataIndex: 'index',
align: 'center', align: 'center',
render: (_, record, index) => index + 1, render: (_, record, index) => index + 1,
}, },
{ {
title: '操作角色', title: '操作角色',
dataIndex: 'roleName', dataIndex: 'roleName',
align: 'center', align: 'center',
}, },
{ {
title: '状态', title: '状态',
dataIndex: 'statusName', dataIndex: 'status',
align: 'center', align: 'center',
render: (text, record) => ( render: (text, record) => (
<StatusTag type={REPAIR_OUTER_STATUS_TAG_MAP[record.status]} title={text} /> <StatusTag type={REPAIR_OUTER_STATUS_TAG_MAP[record.statusCode]} title={text} />
), ),
}, },
{ {
title: '操作', title: '操作',
dataIndex: 'operate', dataIndex: 'operate',
align: 'center', align: 'center',
}, },
{ {
title: '操作时间', title: '操作时间',
dataIndex: 'operateTime', dataIndex: 'operateTime',
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
}, },
{ {
title: '审核意见', title: '审核意见',
dataIndex: 'opinion', dataIndex: 'opinion',
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
}, },
]; ];
const innerColumns: EditableColumns[] = [ const innerColumns: EditableColumns[] = [
{ {
title: '序号', title: '序号',
dataIndex: 'step', dataIndex: 'step',
align: 'center', align: 'center',
}, },
{ {
title: '操作人', title: '操作人',
dataIndex: 'operator', dataIndex: 'operator',
align: 'center', align: 'center',
}, },
{ {
title: '部门', title: '部门',
dataIndex: 'department', dataIndex: 'department',
align: 'center', align: 'center',
}, },
{ {
title: '职位', title: '职位',
dataIndex: 'jobTitle', dataIndex: 'jobTitle',
align: 'center', align: 'center',
}, },
{ {
title: '状态', title: '状态',
dataIndex: 'statusName', dataIndex: 'statusName',
align: 'center', align: 'center',
render: (text, record) => ( render: (text, record) => (
<Badge color={REPAIR_INNER_STATUS_BADGE_MAP[record.status]} text={text} /> <Badge color={REPAIR_INNER_STATUS_BADGE_MAP[record.status]} text={text} />
), ),
}, },
{ {
title: '操作', title: '操作',
dataIndex: 'operate', dataIndex: 'operate',
align: 'center', align: 'center',
}, },
{ {
title: '操作时间', title: '操作时间',
dataIndex: 'operateTime', dataIndex: 'operateTime',
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
}, },
{ {
title: '审核意见', title: '审核意见',
dataIndex: 'opinion', dataIndex: 'opinion',
align: 'center', align: 'center',
ellipsis: true, ellipsis: true,
}, },
]; ];
return ( return (
<MellowCard> <MellowCard>
<Tabs onChange={() => {}}> <Tabs onChange={() => {}}>
{outerHistory ? ( {outerHistory ? (
<Tabs.TabPane tab="外部流转记录" key="1"> <Tabs.TabPane tab="外部流转记录" key="1">
<PolymericTable <PolymericTable
rowKey="operateTime" rowKey="operateTime"
dataSource={outerHistory} dataSource={outerHistory}
columns={outerColumns} columns={outerColumns}
loading={false} loading={false}
pagination={null} pagination={null}
/> />
</Tabs.TabPane> </Tabs.TabPane>
) : null} ) : null}
<Tabs.TabPane tab="内部流转记录" key="2"> <Tabs.TabPane tab="内部流转记录" key="2">
<PolymericTable <PolymericTable
rowKey="operateTime" rowKey="operateTime"
dataSource={innerHistory} dataSource={innerHistory}
columns={innerColumns} columns={innerColumns}
loading={false} loading={false}
pagination={null} pagination={null}
/> />
</Tabs.TabPane> </Tabs.TabPane>
</Tabs> </Tabs>
</MellowCard> </MellowCard>
); );
}; };
export default FlowRecords; export default FlowRecords;
\ No newline at end of file
/* /*
* @Author: XieZhiXiong * @Author: XieZhiXiong
* @Date: 2020-11-03 18:30:47 * @Date: 2020-11-03 18:30:47
* @LastEditors: XieZhiXiong * @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-09 16:18:45 * @LastEditTime: 2020-12-09 16:18:45
* @Description: 联动逻辑相关 * @Description: 联动逻辑相关
*/ */
import { FormEffectHooks, FormPath } from '@formily/antd'; import { FormEffectHooks, FormPath } from '@formily/antd';
import { useLinkageUtils } from '@/utils/formEffectUtils'; import { useLinkageUtils } from '@/utils/formEffectUtils';
const { const {
onFieldInputChange$, onFieldInputChange$,
onFieldValueChange$, onFieldValueChange$,
} = FormEffectHooks; } = FormEffectHooks;
export const useBusinessEffects = (context, actions) => { export const useBusinessEffects = (context, actions) => {
const { const {
getFieldValue, getFieldValue,
setFieldValue, setFieldValue,
getFieldState, getFieldState,
setFieldState, setFieldState,
} = actions; } = actions;
const linkage = useLinkageUtils(); const linkage = useLinkageUtils();
// 联动配送方式 // 联动配送方式
onFieldValueChange$('deliveryType').subscribe(fieldState => { onFieldValueChange$('deliveryType').subscribe(fieldState => {
const { name, value } = fieldState; const { name, value } = fieldState;
switch (value) { switch (value) {
// 物流 // 物流
case 1: { case 1: {
linkage.show('shippingAddress'); linkage.show('shippingAddress');
linkage.hide('pickupAddress'); linkage.hide('pickupAddress');
break; break;
}; };
// 自提 // 自提
case 2: { case 2: {
linkage.hide('shippingAddress'); linkage.hide('shippingAddress');
linkage.show('pickupAddress'); linkage.show('pickupAddress');
break; break;
}; };
// 无需物流 // 无需物流
case 3: { case 3: {
linkage.hide('*(shippingAddress,pickupAddress)'); linkage.hide('*(shippingAddress,pickupAddress)');
break; break;
}; };
default: default:
break break
}; };
}); });
// 供应会员联动 单据明细
onFieldInputChange$('supplierMember').subscribe(fieldState => {
const replaceGoodsListValue = getFieldValue('returnGoodsList');
if (replaceGoodsListValue && replaceGoodsListValue.length) {
setFieldValue('returnGoodsList', []);
}
});
} }
\ No newline at end of file
...@@ -11,7 +11,7 @@ import { createFormActions, FormEffectHooks, FormPath } from '@formily/antd'; ...@@ -11,7 +11,7 @@ import { createFormActions, FormEffectHooks, FormPath } from '@formily/antd';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
import { GetAsReturnGoodsPageReturnedGoodsResponse } from '@/services/AfterServiceApi'; import { GetAsReturnGoodsPageReturnedGoodsResponse } from '@/services/AfterServiceApi';
import { normalizeFiledata, FileData, isJSONStr } from '@/utils'; import { normalizeFiledata, FileData, isJSONStr } from '@/utils';
import { PurchaseOrderInsideWorkStateTexts, ORDER_TYPE2 } from '@/constants'; import { PurchaseOrderOutWorkStateTexts, ORDER_TYPE2 } from '@/constants';
import ReutrnEle from '@/components/ReturnEle'; import ReutrnEle from '@/components/ReturnEle';
import StatusTag from '@/components/StatusTag'; import StatusTag from '@/components/StatusTag';
import NiceForm from '@/components/NiceForm'; import NiceForm from '@/components/NiceForm';
...@@ -93,7 +93,7 @@ const ReturnForm: React.FC<BillsFormProps> = ({ ...@@ -93,7 +93,7 @@ const ReturnForm: React.FC<BillsFormProps> = ({
title: '订单状态', title: '订单状态',
dataIndex: 'externalState', dataIndex: 'externalState',
align: 'center', align: 'center',
render: text => PurchaseOrderInsideWorkStateTexts[text], render: text => PurchaseOrderOutWorkStateTexts[text],
}, },
{ {
title: '订单类型', title: '订单类型',
...@@ -557,7 +557,7 @@ const ReturnForm: React.FC<BillsFormProps> = ({ ...@@ -557,7 +557,7 @@ const ReturnForm: React.FC<BillsFormProps> = ({
> >
<Card> <Card>
<NiceForm <NiceForm
initialValues={{ value={{
...detailInfo, ...detailInfo,
returnGoodsList: returnGoodsList.data, returnGoodsList: returnGoodsList.data,
}} }}
......
...@@ -110,7 +110,7 @@ const DetailInfo: React.FC<DetailInfoProps> = ({ ...@@ -110,7 +110,7 @@ const DetailInfo: React.FC<DetailInfoProps> = ({
}); });
PublicApi.postAsReturnGoodsSetNeedReturnGoods({ PublicApi.postAsReturnGoodsSetNeedReturnGoods({
returnId: +id, returnId: +id,
returnGoodsId: record.orderRecordId, returnGoodsId: record.returnGoodsId,
isNeed: record.isNeedReturn === 1 ? 0 : 1, isNeed: record.isNeedReturn === 1 ? 0 : 1,
}).then(res => { }).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: XieZhiXiong * @Author: XieZhiXiong
* @Date: 2020-11-05 14:25:41 * @Date: 2020-11-05 14:25:41
* @LastEditors: XieZhiXiong * @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-08 17:32:59 * @LastEditTime: 2020-12-24 10:04:24
* @Description: 退货申请单查询 * @Description: 退货申请单查询
*/ */
import React, { useState, useRef } from 'react'; import React, { useState, useRef } from 'react';
...@@ -99,7 +99,7 @@ const ReturnPrReturn: React.FC = () => { ...@@ -99,7 +99,7 @@ const ReturnPrReturn: React.FC = () => {
type="link" type="link"
onClick={() => history.push(`/memberCenter/afterService/returnManage/returnPrReturn/verify?id=${record.returnId}`)} onClick={() => history.push(`/memberCenter/afterService/returnManage/returnPrReturn/verify?id=${record.returnId}`)}
> >
提交审核 退款
</Button> </Button>
</> </>
), ),
......
...@@ -21,10 +21,15 @@ export const searchBrandOptionEffect = (context: any, fieldName: string) => { ...@@ -21,10 +21,15 @@ export const searchBrandOptionEffect = (context: any, fieldName: string) => {
export const searchCustomerCategoryOptionEffect = (context: any, fieldName: string) => { export const searchCustomerCategoryOptionEffect = (context: any, fieldName: string) => {
context.getFieldState(fieldName, state => { context.getFieldState(fieldName, state => {
PublicApi.getProductSelectGetSelectCustomerCategory({ name: state.props['x-component-props'].searchValue }).then(res => { // PublicApi.getProductSelectGetSelectCustomerCategory({ name: state.props['x-component-props'].searchValue }).then(res => {
// context.setFieldState(fieldName, state => {
// state.props['x-component-props'].dataoption = res.data
// })
// })
PublicApi.getProductCustomerGetCustomerCategoryTree().then(res => {
context.setFieldState(fieldName, state => { context.setFieldState(fieldName, state => {
state.props['x-component-props'].dataoption = res.data state.props['x-component-props'].dataoption = res.data
}) })
}) })
}) })
} }
\ No newline at end of file
...@@ -66,17 +66,14 @@ export const goodsSchema: ISchema = { ...@@ -66,17 +66,14 @@ export const goodsSchema: ISchema = {
}, },
customerCategoryId: { customerCategoryId: {
type: 'string', type: 'string',
'x-component': 'CustomInputSearch', 'x-component': 'CustomCategorySearch',
'x-component-props': { 'x-component-props': {
placeholder: '商品品类', placeholder: '商品品类',
showSearch: true, showSearch: true,
showArrow: true,
defaultActiveFirstOption: false,
filterOption: false,
notFoundContent: null, notFoundContent: null,
style: { width: '174px' }, style: { width: '174px' },
searchValue: null, dataoption: [],
dataoption: [] fieldNames: { label: 'title', value: 'id', children: 'children' },
}, },
}, },
batch: { batch: {
...@@ -99,4 +96,4 @@ export const goodsSchema: ISchema = { ...@@ -99,4 +96,4 @@ export const goodsSchema: ISchema = {
}, },
}, },
}, },
}; };
\ No newline at end of file
...@@ -21,10 +21,15 @@ export const searchBrandOptionEffect = (context: any, fieldName: string) => { ...@@ -21,10 +21,15 @@ export const searchBrandOptionEffect = (context: any, fieldName: string) => {
export const searchCustomerCategoryOptionEffect = (context: any, fieldName: string) => { export const searchCustomerCategoryOptionEffect = (context: any, fieldName: string) => {
context.getFieldState(fieldName, state => { context.getFieldState(fieldName, state => {
PublicApi.getProductSelectGetSelectCustomerCategory({ name: state.props['x-component-props'].searchValue }).then(res => { // PublicApi.getProductSelectGetSelectCustomerCategory({ name: state.props['x-component-props'].searchValue }).then(res => {
// context.setFieldState(fieldName, state => {
// state.props['x-component-props'].dataoption = res.data
// })
// })
PublicApi.getProductCustomerGetCustomerCategoryTree().then(res => {
context.setFieldState(fieldName, state => { context.setFieldState(fieldName, state => {
state.props['x-component-props'].dataoption = res.data state.props['x-component-props'].dataoption = res.data
}) })
}) })
}) })
} }
\ No newline at end of file
...@@ -349,7 +349,7 @@ const AddLogistics: React.FC<{}> = () => { ...@@ -349,7 +349,7 @@ const AddLogistics: React.FC<{}> = () => {
switch (Number(createType)) { switch (Number(createType)) {
case 1: case 1:
case 2: case 2:
PublicApi.getWarehouseInvoicesProductList({ ...params, invoicesId: query.relevanceOrderId ? query.relevanceOrderId : query.shipmentOrderId }).then((res: any) => { PublicApi.getWarehouseInvoicesProductList({ ...params, invoicesId: query.shipmentOrderId ? query.shipmentOrderId : query.relevanceOrderId }).then((res: any) => {
if (res.code === 1000) { if (res.code === 1000) {
res.data.data.forEach(item => { res.data.data.forEach(item => {
item.category = item.categoryName item.category = item.categoryName
...@@ -361,7 +361,7 @@ const AddLogistics: React.FC<{}> = () => { ...@@ -361,7 +361,7 @@ const AddLogistics: React.FC<{}> = () => {
}) })
break; break;
case 3: case 3:
PublicApi.getWarehouseInvoicesProductList({ ...params, invoicesId: query.shipmentOrderId ? query.shipmentOrderId : query.relevanceOrderId }).then((res: any) => { PublicApi.getWarehouseInvoicesProductList({ ...params, invoicesId: query.relevanceOrderId ? query.relevanceOrderId : query.shipmentOrderId }).then((res: any) => {
if (res.code === 1000) { if (res.code === 1000) {
res.data.data.forEach(item => { res.data.data.forEach(item => {
item.category = item.categoryName item.category = item.categoryName
......
...@@ -65,7 +65,12 @@ export const searchBrandOptionEffect = (context: any, fieldName: string) => { ...@@ -65,7 +65,12 @@ export const searchBrandOptionEffect = (context: any, fieldName: string) => {
export const searchCustomerCategoryOptionEffect = (context: any, fieldName: string) => { export const searchCustomerCategoryOptionEffect = (context: any, fieldName: string) => {
context.getFieldState(fieldName, state => { context.getFieldState(fieldName, state => {
PublicApi.getProductSelectGetSelectCustomerCategory({ name: state.props['x-component-props'].searchValue }).then(res => { // PublicApi.getProductSelectGetSelectCustomerCategory({ name: state.props['x-component-props'].searchValue }).then(res => {
// context.setFieldState(fieldName, state => {
// state.props['x-component-props'].dataoption = res.data
// })
// })
PublicApi.getProductCustomerGetCustomerCategoryTree().then(res => {
context.setFieldState(fieldName, state => { context.setFieldState(fieldName, state => {
state.props['x-component-props'].dataoption = res.data state.props['x-component-props'].dataoption = res.data
}) })
......
This diff is collapsed.
This diff is collapsed.
...@@ -246,7 +246,7 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => { ...@@ -246,7 +246,7 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
if(current === 1) { if(current === 1) {
const payOrderUrls = formRef.current.urlList const payOrderUrls = formRef.current.urlList
const checkedId = checked.id const checkedId = checked.id
if (!payOrderUrls || payOrderUrls.length === 0) { if (!payOrderUrls || payOrderUrls.length === 0 || payOrderUrls.includes('')) {
message.error('请先上传凭证') message.error('请先上传凭证')
return; return;
} }
......
...@@ -287,10 +287,9 @@ const OrderSaleRecord:React.FC<OrderSaleRecordProps> = (props) => { ...@@ -287,10 +287,9 @@ const OrderSaleRecord:React.FC<OrderSaleRecordProps> = (props) => {
// 确认全部发货单已收到回单 // 确认全部发货单已收到回单
const handelReciveReturnOrder = async () => { const handelReciveReturnOrder = async () => {
const res = await PublicApi.getOrderIsDeliveryCompleted({id: data.id}) const res = await PublicApi.getOrderIsDeliveryCompleted({id: data.id}, {ctlType: "none"})
const { code } = res
let tip = '' let tip = ''
if(code === 1000) if(res.data)
tip = '是否确认本单全部发货单已收到回单?' tip = '是否确认本单全部发货单已收到回单?'
else else
tip = '您还有未发货的商品,是否确认全部发货都已完成?' tip = '您还有未发货的商品,是否确认全部发货都已完成?'
...@@ -306,10 +305,9 @@ const OrderSaleRecord:React.FC<OrderSaleRecordProps> = (props) => { ...@@ -306,10 +305,9 @@ const OrderSaleRecord:React.FC<OrderSaleRecordProps> = (props) => {
// 继续发货 // 继续发货
const handleContinueDeliver = async () => { const handleContinueDeliver = async () => {
const res = await PublicApi.getOrderIsDeliveryCompleted({id: data.id}) const res = await PublicApi.getOrderIsDeliveryCompleted({id: data.id}, {ctlType: 'none'})
const { code } = res
let tip = '' let tip = ''
if(code === 1000) if(res.data)
tip = '您商品都已发货.是否确认还需要继续发货?' tip = '您商品都已发货.是否确认还需要继续发货?'
else else
tip = '是否继续发货?' tip = '是否继续发货?'
......
...@@ -97,12 +97,12 @@ export const MoneyTotalBox = ({ dataSource, isEditData }) => { ...@@ -97,12 +97,12 @@ export const MoneyTotalBox = ({ dataSource, isEditData }) => {
modelRef.current.setVisible(true) modelRef.current.setVisible(true)
} }
const [amountMoney, setAmountMoney] = useState<number>(sumPrice || sum + freePrice) const [amountMoney, setAmountMoney] = useState<number>((sumPrice*1000)/1000 || (sum*1000 + freePrice*1000)/1000)
// 总计金额 // 总计金额
useEffect(() => { useEffect(() => {
console.log(sumPrice || (sum*1000 + freePrice*1000)/1000, 'iiiiii') console.log((sumPrice*1000)/1000 || (sum*1000 + freePrice*1000)/1000, 'iiiiii')
setAmountMoney(() => sumPrice || (sum*1000 + freePrice*1000)/1000) setAmountMoney(() => (sumPrice*1000)/1000 || (sum*1000 + freePrice*1000)/1000)
}, [sum, freePrice, sumPrice]) }, [sum, freePrice, sumPrice])
const handleConfirm = () => { const handleConfirm = () => {
......
import React, { useState, useCallback, useRef } from 'react'; import React, { useState, useCallback, useRef } from 'react';
import { OrderDetailContext } from '../../../_public/order/context'; import { OrderDetailContext } from '../../../_public/order/context';
import { PublicApi } from '@/services/api'; import { PublicApi } from '@/services/api';
import { Button } from 'antd'; import { Button } from 'antd';
import OrderDetailHeader from '@/pages/transaction/components/OrderDetailHeader'; import OrderDetailHeader from '@/pages/transaction/components/OrderDetailHeader';
import OrderDetailWrapper from '@/pages/transaction/components/OrderDetailWrapper'; import OrderDetailWrapper from '@/pages/transaction/components/OrderDetailWrapper';
import PreLoading from '@/components/PreLoading'; import PreLoading from '@/components/PreLoading';
import { useOrderDetail } from '../../../_public/order/effects/useOrderDetail'; import { useOrderDetail } from '../../../_public/order/effects/useOrderDetail';
import ApprovedOrderModal from '../../../components/approvedOrderModal'; import ApprovedOrderModal from '../../../components/approvedOrderModal';
import { history } from 'umi' import { history } from 'umi'
import { useHttpRequest } from '@/hooks/useHttpRequest'; import { useHttpRequest } from '@/hooks/useHttpRequest';
import OrderDetailSection from '../../../components/orderDetailSection'; import OrderDetailSection from '../../../components/orderDetailSection';
const ReadyConfirmReturnOrderDetail: React.FC = () => { const ReadyConfirmReturnOrderDetail: React.FC = () => {
const { formContext, id, detailList } = useOrderDetail({type: 'saleOrder'}) const { formContext, id, detailList } = useOrderDetail({type: 'saleOrder'})
const { run, loading } = useHttpRequest(PublicApi.postOrderReceiptOrderConfirmedAll) const { run, loading } = useHttpRequest(PublicApi.postOrderReceiptOrderConfirmedAll)
// 提交表单 // 提交表单
const handleSubmit = useCallback(async () => { // const handleSubmit = useCallback(async () => {
const params = { // const params = {
id: Number(id), // id: Number(id),
state: 1 // state: 1
} // }
const result = await run(params) // const result = await run(params)
if (result.code === 1000) { // if (result.code === 1000) {
history.goBack() // history.goBack()
} // }
}, []) // }, [])
return ( const handleSubmit = () => {
<div> const deleveBox = document.querySelector('#deleveBox') as any
<OrderDetailContext.Provider value={formContext}> window.scrollTo(0, deleveBox.offsetTop)
<OrderDetailHeader }
detailList={detailList}
detailData={formContext.data} return (
// extraRight={ <div>
// <Button type='primary' onClick={handleSubmit} loading={loading}> <OrderDetailContext.Provider value={formContext}>
// 确认全部已回单 <OrderDetailHeader
// </Button> detailList={detailList}
// } detailData={formContext.data}
/> extraRight={
<Button type='primary' onClick={handleSubmit} loading={loading}>
<OrderDetailWrapper> 确认全部已回单
<PreLoading loading={!formContext.data} active paragraph={{rows: 6}}> </Button>
<OrderDetailSection formContext={formContext} type='saleOrder'/> }
</PreLoading> />
</OrderDetailWrapper>
</OrderDetailContext.Provider> <OrderDetailWrapper>
</div> <PreLoading loading={!formContext.data} active paragraph={{rows: 6}}>
); <OrderDetailSection formContext={formContext} type='saleOrder'/>
}; </PreLoading>
</OrderDetailWrapper>
export default ReadyConfirmReturnOrderDetail; </OrderDetailContext.Provider>
\ No newline at end of file </div>
);
};
export default ReadyConfirmReturnOrderDetail;
...@@ -2,9 +2,10 @@ ...@@ -2,9 +2,10 @@
* @Author: XieZhiXiong * @Author: XieZhiXiong
* @Date: 2020-12-22 18:01:50 * @Date: 2020-12-22 18:01:50
* @LastEditors: XieZhiXiong * @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-22 18:01:51 * @LastEditTime: 2020-12-24 11:01:22
* @Description: 单据列表 弹窗表格列 * @Description: 单据列表 弹窗表格列
*/ */
import moment from 'moment';
import { import {
ORDER_TYPE2, ORDER_TYPE2,
PurchaseOrderInsideWorkStateTexts, PurchaseOrderInsideWorkStateTexts,
...@@ -109,6 +110,7 @@ export const machiningWarehousingColumns = [ ...@@ -109,6 +110,7 @@ export const machiningWarehousingColumns = [
title: '单据时间', title: '单据时间',
align: 'center', align: 'center',
dataIndex: 'createTime', dataIndex: 'createTime',
render: text => moment(text).format('YYYY-MM-DD HH:mm:ss'),
}, },
{ {
title: '申请单状态', title: '申请单状态',
...@@ -140,6 +142,7 @@ export const machiningDeliveryColumns = [ ...@@ -140,6 +142,7 @@ export const machiningDeliveryColumns = [
title: '单据时间', title: '单据时间',
align: 'center', align: 'center',
dataIndex: 'createTime', dataIndex: 'createTime',
render: text => moment(text).format('YYYY-MM-DD HH:mm:ss'),
}, },
{ {
title: '申请单状态', title: '申请单状态',
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: XieZhiXiong * @Author: XieZhiXiong
* @Date: 2020-09-16 15:16:47 * @Date: 2020-09-16 15:16:47
* @LastEditors: XieZhiXiong * @LastEditors: XieZhiXiong
* @LastEditTime: 2020-12-22 18:04:58 * @LastEditTime: 2020-12-23 20:20:35
* @Description: 联动逻辑相关 * @Description: 联动逻辑相关
*/ */
import { Modal } from 'antd'; import { Modal } from 'antd';
...@@ -140,8 +140,6 @@ const getParams = type => { ...@@ -140,8 +140,6 @@ const getParams = type => {
basicParams.columns = getAfterSaleColumns(true); basicParams.columns = getAfterSaleColumns(true);
basicParams.fetchTableData = getRefundDeliveryList; basicParams.fetchTableData = getRefundDeliveryList;
basicParams.formilyProps.ctx.schema = afterSaleBillSchema(true); basicParams.formilyProps.ctx.schema = afterSaleBillSchema(true);
basicParams.tableProps.rowKey = 'applyNo';
basicParams.tableProps.lableKey = 'applyNo';
break; break;
} }
...@@ -151,8 +149,6 @@ const getParams = type => { ...@@ -151,8 +149,6 @@ const getParams = type => {
basicParams.columns = getAfterSaleColumns(false); basicParams.columns = getAfterSaleColumns(false);
basicParams.fetchTableData = getRefundWarehousingList; basicParams.fetchTableData = getRefundWarehousingList;
basicParams.formilyProps.ctx.schema = afterSaleBillSchema(false); basicParams.formilyProps.ctx.schema = afterSaleBillSchema(false);
basicParams.tableProps.rowKey = 'applyNo';
basicParams.tableProps.lableKey = 'applyNo';
break; break;
} }
...@@ -162,8 +158,6 @@ const getParams = type => { ...@@ -162,8 +158,6 @@ const getParams = type => {
basicParams.columns = getAfterSaleColumns(true); basicParams.columns = getAfterSaleColumns(true);
basicParams.fetchTableData = getExchangeReturnDeliveryList; basicParams.fetchTableData = getExchangeReturnDeliveryList;
basicParams.formilyProps.ctx.schema = afterSaleBillSchema(true); basicParams.formilyProps.ctx.schema = afterSaleBillSchema(true);
basicParams.tableProps.rowKey = 'applyNo';
basicParams.tableProps.lableKey = 'applyNo';
break; break;
} }
...@@ -173,8 +167,6 @@ const getParams = type => { ...@@ -173,8 +167,6 @@ const getParams = type => {
basicParams.columns = getAfterSaleColumns(false); basicParams.columns = getAfterSaleColumns(false);
basicParams.fetchTableData = getExchangeReturnWarehousingList; basicParams.fetchTableData = getExchangeReturnWarehousingList;
basicParams.formilyProps.ctx.schema = afterSaleBillSchema(false); basicParams.formilyProps.ctx.schema = afterSaleBillSchema(false);
basicParams.tableProps.rowKey = 'applyNo';
basicParams.tableProps.lableKey = 'applyNo';
break; break;
} }
...@@ -184,8 +176,6 @@ const getParams = type => { ...@@ -184,8 +176,6 @@ const getParams = type => {
basicParams.columns = getAfterSaleColumns(true); basicParams.columns = getAfterSaleColumns(true);
basicParams.fetchTableData = getExchangeDeliveryList; basicParams.fetchTableData = getExchangeDeliveryList;
basicParams.formilyProps.ctx.schema = afterSaleBillSchema(true); basicParams.formilyProps.ctx.schema = afterSaleBillSchema(true);
basicParams.tableProps.rowKey = 'applyNo';
basicParams.tableProps.lableKey = 'applyNo';
break; break;
} }
...@@ -195,8 +185,6 @@ const getParams = type => { ...@@ -195,8 +185,6 @@ const getParams = type => {
basicParams.columns = getAfterSaleColumns(false); basicParams.columns = getAfterSaleColumns(false);
basicParams.fetchTableData = getExchangeWarehousingList; basicParams.fetchTableData = getExchangeWarehousingList;
basicParams.formilyProps.ctx.schema = afterSaleBillSchema(false); basicParams.formilyProps.ctx.schema = afterSaleBillSchema(false);
basicParams.tableProps.rowKey = 'applyNo';
basicParams.tableProps.lableKey = 'applyNo';
break; break;
} }
......
...@@ -186,7 +186,7 @@ const BillsForm: React.FC<BillsFormProps> = ({ ...@@ -186,7 +186,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
); );
setBillInfo({ setBillInfo({
transactionTime: transactionTime ? moment(transactionTime).format('YYYY-MM-DD HH:mm:ss') : moment().format('YYYY-MM-DD HH:mm:ss'), transactionTime: transactionTime ? moment(transactionTime).format('YYYY-MM-DD HH:mm:ss') : '',
orderNo: orderNo:
relevanceInvoicesId ? relevanceInvoicesId ?
[ [
...@@ -448,12 +448,11 @@ const BillsForm: React.FC<BillsFormProps> = ({ ...@@ -448,12 +448,11 @@ const BillsForm: React.FC<BillsFormProps> = ({
supplyMembersName: supplierName, supplyMembersName: supplierName,
supplyMembersId: parentMemberId, supplyMembersId: parentMemberId,
supplyMembersRoleId: parentMemberRoleId, supplyMembersRoleId: parentMemberRoleId,
deliveryType: returnGoodsAddress.deliveryType,
} }
] : ] :
[] []
, ,
deliveryType: returnGoodsAddress.deliveryType,
transport: DELIVERY_TYPE[returnGoodsAddress.deliveryType],
}); });
}).finally(() => { }).finally(() => {
setInfoLoading(false); setInfoLoading(false);
...@@ -495,12 +494,11 @@ const BillsForm: React.FC<BillsFormProps> = ({ ...@@ -495,12 +494,11 @@ const BillsForm: React.FC<BillsFormProps> = ({
supplyMembersName: supplierName, supplyMembersName: supplierName,
supplyMembersId: parentMemberId, supplyMembersId: parentMemberId,
supplyMembersRoleId: parentMemberRoleId, supplyMembersRoleId: parentMemberRoleId,
deliveryType: returnGoodsAddress.deliveryType,
} }
] : ] :
[] []
, ,
deliveryType: returnGoodsAddress.deliveryType,
transport: DELIVERY_TYPE[returnGoodsAddress.deliveryType],
}); });
}).finally(() => { }).finally(() => {
setInfoLoading(false); setInfoLoading(false);
...@@ -543,12 +541,11 @@ const BillsForm: React.FC<BillsFormProps> = ({ ...@@ -543,12 +541,11 @@ const BillsForm: React.FC<BillsFormProps> = ({
supplyMembersName: supplierName, supplyMembersName: supplierName,
supplyMembersId: parentMemberId, supplyMembersId: parentMemberId,
supplyMembersRoleId: parentMemberRoleId, supplyMembersRoleId: parentMemberRoleId,
deliveryType: returnGoodsAddress.deliveryType,
} }
] : ] :
[] []
, ,
deliveryType: returnGoodsAddress.deliveryType,
transport: DELIVERY_TYPE[returnGoodsAddress.deliveryType],
}); });
}).finally(() => { }).finally(() => {
setInfoLoading(false); setInfoLoading(false);
...@@ -590,12 +587,11 @@ const BillsForm: React.FC<BillsFormProps> = ({ ...@@ -590,12 +587,11 @@ const BillsForm: React.FC<BillsFormProps> = ({
supplyMembersName: supplierName, supplyMembersName: supplierName,
supplyMembersId: parentMemberId, supplyMembersId: parentMemberId,
supplyMembersRoleId: parentMemberRoleId, supplyMembersRoleId: parentMemberRoleId,
deliveryType: returnGoodsAddress.deliveryType,
} }
] : ] :
[] []
, ,
deliveryType: returnGoodsAddress.deliveryType,
transport: DELIVERY_TYPE[returnGoodsAddress.deliveryType],
}); });
}).finally(() => { }).finally(() => {
setInfoLoading(false); setInfoLoading(false);
...@@ -616,6 +612,7 @@ const BillsForm: React.FC<BillsFormProps> = ({ ...@@ -616,6 +612,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
supplierName, supplierName,
consumerName, consumerName,
returnGoodsAddress, returnGoodsAddress,
replaceGoodsAddress,
applyNo, applyNo,
parentMemberId, parentMemberId,
parentMemberRoleId, parentMemberRoleId,
...@@ -638,12 +635,11 @@ const BillsForm: React.FC<BillsFormProps> = ({ ...@@ -638,12 +635,11 @@ const BillsForm: React.FC<BillsFormProps> = ({
supplyMembersName: supplierName, supplyMembersName: supplierName,
supplyMembersId: parentMemberId, supplyMembersId: parentMemberId,
supplyMembersRoleId: parentMemberRoleId, supplyMembersRoleId: parentMemberRoleId,
deliveryType: replaceGoodsAddress.deliveryType,
} }
] : ] :
[] []
, ,
deliveryType: returnGoodsAddress.deliveryType,
transport: DELIVERY_TYPE[returnGoodsAddress.deliveryType],
}); });
}).finally(() => { }).finally(() => {
setInfoLoading(false); setInfoLoading(false);
...@@ -663,6 +659,7 @@ const BillsForm: React.FC<BillsFormProps> = ({ ...@@ -663,6 +659,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
const { const {
supplierName, supplierName,
returnGoodsAddress, returnGoodsAddress,
replaceGoodsAddress,
applyNo, applyNo,
parentMemberId, parentMemberId,
parentMemberRoleId, parentMemberRoleId,
...@@ -685,12 +682,11 @@ const BillsForm: React.FC<BillsFormProps> = ({ ...@@ -685,12 +682,11 @@ const BillsForm: React.FC<BillsFormProps> = ({
supplyMembersName: supplierName, supplyMembersName: supplierName,
supplyMembersId: parentMemberId, supplyMembersId: parentMemberId,
supplyMembersRoleId: parentMemberRoleId, supplyMembersRoleId: parentMemberRoleId,
deliveryType: replaceGoodsAddress.deliveryType,
} }
] : ] :
[] []
, ,
deliveryType: returnGoodsAddress.deliveryType,
transport: DELIVERY_TYPE[returnGoodsAddress.deliveryType],
}); });
}).finally(() => { }).finally(() => {
setInfoLoading(false); setInfoLoading(false);
...@@ -1660,7 +1656,7 @@ const BillsForm: React.FC<BillsFormProps> = ({ ...@@ -1660,7 +1656,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
> >
<Card> <Card>
<NiceForm <NiceForm
initialValues={billInfo} value={billInfo}
expressionScope={{ expressionScope={{
TableAddButton, TableAddButton,
renderListTableRemove, renderListTableRemove,
......
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