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;