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.
136 lines
5.0 KiB
JavaScript
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;
|