You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
GHHub/src/stores/Invoice.js

136 lines
5.0 KiB
JavaScript

import { fetchJSON, postForm } from "@/utils/request";
import { HT_HOST } from "@/config";
import { create } from 'zustand';
import { devtools } from 'zustand/middleware';
export const fetchInvoiceDetail = async (VEI_SN, GMD_SN, GRI_SN) => {
const { errcode, ...json } = await fetchJSON(`${HT_HOST}/service-cusservice/PTGetZDDetail`, { VEI_SN, GMD_SN, GRI_SN, LGC: 1, Bill: 1 });
return errcode !== 0 ? {} : { invoiceGroupInfo: json.GroupInfo[0], invoiceProductList: json.ProductList, invoiceCurrencyList: json.CurrencyList, invoiceZDDetail: json.ZDDetail };
};
export const getInvoicekImages = async (VEI_SN, GRI_SN) => {
const { errcode, result, ...json } = await fetchJSON(`${HT_HOST}/service-fileServer/ListFile`, { VEI_SN, GRI_SN, FilePathName: 'invoice' });
return errcode !== 0 ? [] : result.map((data, index) => {
return {
uid: -index, //用负数,防止添加删除的时候错误
name: data.file_name,
status: "done",
url: data.file_url,
};
});
};
export const postEditInvoiceDetail = async (LMI_SN, GMD_SN, Currency, Cost, PayDate, Pic, Memo) => {
const postbody = { LMI_SN, GMD_SN, Currency, Cost, PayDate, Pic, Memo };
const formData = new FormData();
Object.keys(postbody).forEach((key) => {
formData.append(key, postbody[key]);
});
const res = await postForm(`${HT_HOST}/service-cusservice/EditSupplierFK`, formData);
return res;
};
export const postAddInvoice = async (LMI_SN, VEI_SN, GRI_SN, Currency, Cost, PayDate, Pic, Memo) => {
const postbody = { LMI_SN, VEI_SN, GRI_SN, Currency, Cost, PayDate, Pic, Memo };
const formData = new FormData();
Object.keys(postbody).forEach((key) => {
formData.append(key, postbody[key]);
});
const res = await postForm(`${HT_HOST}/service-cusservice/AddSupplierFK`, formData);
return res;
};
export const getInvoicePaid = async (VEI_SN, GroupNo, DateStart, DateEnd) => {
const { errcode, Result } = await fetchJSON(`${HT_HOST}/service-Cooperate/Cooperate/GetInvoicePaid`, {VEI_SN, GroupNo, DateStart, DateEnd});
return errcode !== 0 ? [] : (Result || []).map((data, index) => ({ ...data, key: data.fl_id, }));
};
export const fetchInvoicePaidDetail = async (VEI_SN, FLID) => {
const { errcode, Result } = await fetchJSON(`${HT_HOST}/service-Cooperate/Cooperate/GetInvoicePaidDetail`, { VEI_SN, fl_id: FLID });
return errcode !== 0 ? [] : (Result || []).map((data, index) => ({ ...data, key: data.fl2_id, }));
};
const initialState = {
invoiceList: [], //账单列表
invoicekImages: [], //图片列表
invoiceGroupInfo: {}, //账单详细
invoiceProductList: [], //账单细项
invoiceZDDetail: [], //报账信息
invoiceCurrencyList: [], //币种
invoicePicList: [], //多账单图片列表数组
invoiceFormData: { info_money: 0, info_Currency: '', info_date: '' }, //存储form数据
invoicePaid: [], //支付账单列表
invoicePaidDetail: [], //每期账单详细
loading: false,
};
const useInvoiceStore = create(
devtools((set, get) => ({
// 初始化状态
...initialState,
reset: () => set(initialState),
setLoading: (loading) => set(() => ({ loading })),
setInvoiceList: (invoiceList) => set(() => ({ invoiceList })),
setInvoicePaid: (invoicePaid) => set(() => ({ invoicePaid })),
async fetchInvoiceList(VEI_SN, GroupNo, DateStart, DateEnd,OrderType){
const { setLoading, setInvoiceList } = get();
setLoading(true);
const searchParams = {
VEI_SN,
GroupNo,
DateStart,
DateEnd,
OrderType: 0,
TimeType: 0,
limitmarket: '',
mddgroup: '',
SecuryGroup: '',
TotalNum: 0,
PageSize: 2000,
PageIndex: 1,
PayState: OrderType,
};
const { errcode, Result } = await fetchJSON(`${HT_HOST}/service-cusservice/PTSearchGMBPageList`, searchParams);
const _result = errcode !== 0 ? [] : (Result || []).map((data, index) => {
return {
key: data.GMDSN,
gmd_gri_sn: data.GMD_GRI_SN,
gmd_vei_sn: data.GMD_VEI_SN,
GetGDate: data.GetGDate,
GMD_FillWorkers_SN: data.GMD_FillWorkers_SN,
GMD_FWks_LastEditTime: data.GMD_FWks_LastEditTime,
GMD_VerifyUser_SN: data.GMD_VerifyUser_SN,
GMD_Dealed: data.GMD_Dealed,
GMD_VRequestVerify: data.GMD_VRequestVerify,
LeftGDate: data.LeftGDate,
GMD_FillWorkers_Name: data.GMD_FillWorkers_Name,
GroupName: data.GroupName,
AllMoney: data.AllMoney,
PersonNum: data.PersonNum,
GMD_Currency: data.GMD_Currency,
VName: data.VName,
FKState: data.FKState,
};
});
setInvoiceList(_result);
setLoading(false);
},
async fetchInvoicePaid(VEI_SN, GroupNo, DateStart, DateEnd){
const { setLoading, setInvoicePaid } = get();
setLoading(true);
const res = await getInvoicePaid(VEI_SN, GroupNo, DateStart, DateEnd);
setInvoicePaid(res);
setLoading(false);
},
}))
);
export default useInvoiceStore;