123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- import { message } from 'antd';
- import { routerRedux } from 'dva/router';
- import {
- querySnapshotList,
- queryTerminalBuyMsg,
- queryOrderList,
- queryOrderItem,
- querySubOrderItem,
- createOrderItem,
- invalidOrderItem,
- payOrderItem,
- sendOrderItem,
- receiveOrderItem,
- } from '../services/trade';
- export default {
- namespace: 'trade',
- state: {
- list: [],
- pageNo: 1,
- pageSize: 15,
- totalSize: 0,
- currentItem: {},
- },
- effects: {
- *fetchSnapshotList({ payload }, { call, put }) {
- const response = yield call(querySnapshotList, payload);
- if (response.success) {
- yield put({
- type: 'querySuccess',
- payload: {
- list: response.data.list || [],
- pageSize: response.data.pageSize,
- totalSize: response.data.totalSize,
- pageNo: response.data.pageNo,
- },
- });
- }
- },
- *fetchTerminalBuyMsg({ payload }, { call, put }) {
- const response = yield call(queryTerminalBuyMsg, payload);
- if (response.success) {
- yield put({
- type: 'querySuccess',
- payload: {
- list: response.data || [],
- },
- });
- }
- },
- *fetchOrderList({ payload }, { call, put }) {
- const response = yield call(queryOrderList, payload);
- if (response.success) {
- yield put({
- type: 'querySuccess',
- payload: {
- list: response.data.list || [],
- pageSize: response.data.pageSize,
- totalSize: response.data.totalSize,
- pageNo: response.data.pageNo,
- },
- });
- }
- },
- *fetchOrderItem({ payload }, { call, put }) {
- const response = yield call(queryOrderItem, payload);
- if (response.success) {
- yield put({
- type: 'querySuccess',
- payload: {
- currentItem: response.data,
- },
- });
- }
- },
- *createOrderItem({ payload }, { call, put }) {
- const response = yield call(createOrderItem, payload);
- if (response.success) {
- message.success('创建订单成功');
- const { id } = response.data;
- yield put(routerRedux.push({
- pathname: `/trade/order/view/${id}`,
- }));
- }
- },
- *invalidOrderItem({ payload, states }, { call, put }) {
- const response = yield call(invalidOrderItem, payload);
- if (response.success) {
- message.success('作废订单成功');
- const { orderId } = states;
- // 详情页作废成功刷新详情页,列表页支付成功刷新列表页
- if (orderId) {
- yield put({
- type: 'fetchOrderItem',
- payload: { id: orderId },
- });
- } else {
- yield put({
- type: 'fetchOrderList',
- payload: states.Queryers,
- });
- }
- }
- },
- *payOrderItem({ payload, states }, { call, put }) {
- const response = yield call(payOrderItem, payload);
- if (response.success) {
- message.success('支付订单成功');
- const { orderId } = states;
- // 详情页支付成功刷新详情页,列表页支付成功刷新列表页
- if (orderId) {
- yield put({
- type: 'fetchOrderItem',
- payload: { id: orderId },
- });
- } else {
- yield put({
- type: 'fetchOrderList',
- payload: states.Queryers,
- });
- }
- }
- },
- *fetchSubOrderItem({ payload }, { call, put }) {
- const response = yield call(querySubOrderItem, payload);
- if (response.success) {
- yield put({
- type: 'querySuccess',
- payload: {
- currentItem: response.data,
- },
- });
- }
- },
- *sendOrderItem({ payload, states }, { call, put }) {
- const response = yield call(sendOrderItem, payload);
- if (response.success) {
- message.success('发货成功');
- const { orderId } = states;
- if (orderId) {
- yield put({
- type: 'fetchSubOrderItem',
- payload: { id: orderId },
- });
- } else {
- yield put({
- type: 'fetchOrderList',
- payload: states.Queryers,
- });
- }
- }
- },
- *receiveOrderItem({ payload, states }, { call, put }) {
- const response = yield call(receiveOrderItem, payload);
- if (response.success) {
- message.success('确认收货成功');
- const { orderId } = states;
- if (orderId) {
- yield put({
- type: 'fetchSubOrderItem',
- payload: { id: orderId },
- });
- } else {
- yield put({
- type: 'fetchOrderList',
- payload: states.Queryers,
- });
- }
- }
- },
- },
- reducers: {
- querySuccess(state, action) {
- return {
- ...state,
- ...action.payload,
- };
- },
- fixList(state, action) {
- return {
- ...state,
- ...action.payload,
- };
- },
- fixCurrentItem(state, action) {
- const { currentItem } = state;
- return {
- ...state,
- currentItem: {
- ...currentItem,
- ...action.payload,
- },
- };
- },
- cleanState(state) {
- return {
- ...state,
- currentItem: {},
- list: [],
- };
- },
- },
- };
|