| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import {getDays, addDeliver} from '@apis';
- import {useMutation, useQuery} from '@tanstack/react-query';
- import dayjs from 'dayjs';
- import {useEffect, useState, useMemo} from 'react';
- import {showLoading, hideLoading, showToast, showModal} from '@tarojs/taro';
- import {useNavigate} from '@hooks';
- export function useDate(customerNo) {
- const [date, setDate] = useState('');
- const {data} = useQuery({
- queryKey: [getDays.name, customerNo],
- async queryFn() {
- showLoading({title: '获取发货时长', mask: true});
- const data = await getDays(customerNo);
- hideLoading({noConflict: true});
- if (data.code === '200') return Number(data.data.days);
- return 0;
- },
- enabled: customerNo.length > 0,
- initialData: 0,
- });
- useEffect(
- function () {
- setDate(dayjs().add(data, 'day').format('YYYY-MM-DD'));
- },
- [data],
- );
- function onDateChagne(e) {
- setDate(e.detail.value);
- }
- return [date, onDateChagne];
- }
- export function useSubmit({goodsList, customerNo, truckNo, date}) {
- const dataList = useMemo(
- function () {
- return goodsList.map(function ({no, num}) {
- return {partNumber: no, qty: num};
- });
- },
- [goodsList],
- );
- const {pop} = useNavigate();
- const {isLoading, mutate} = useMutation({
- mutationFn: addDeliver,
- onSuccess({code}) {
- if (code === '200') {
- pop();
- showToast({title: '上传成功', icon: 'success'});
- }
- },
- });
- function onSubmit() {
- if (!customerNo || !truckNo) {
- return showToast({title: '请先扫码', icon: 'error'});
- }
- showModal({
- title: '提交发货',
- content: `你确定要提交${truckNo}${customerNo}发货单吗?`,
- success({confirm}) {
- confirm &&
- mutate({dataList, customer: customerNo, truckNo, arrivalTime: date});
- },
- });
- }
- return [isLoading, onSubmit];
- }
|