release
赵鹏 2 years ago
parent 3ab6efc5d2
commit 450e1f1f26

@ -18,7 +18,7 @@ class Invoice {
invoiceProductList=[];//账单细项 invoiceProductList=[];//账单细项
invoiceZDDetail = []; //报账信息 invoiceZDDetail = []; //报账信息
invoiceCurrencyList=[];//币种 invoiceCurrencyList=[];//币种
invoicePicList = []; //多账单图片列表数组 invoicePicList = [] //多账单图片列表数组
invoiceFormData = {'info_money':0,'info_Currency':'','info_date':''}; //存储form数据 invoiceFormData = {'info_money':0,'info_Currency':'','info_date':''}; //存储form数据
@ -106,13 +106,11 @@ class Invoice {
this.invoiceProductList = json.ProductList; this.invoiceProductList = json.ProductList;
this.invoiceCurrencyList = json.CurrencyList; this.invoiceCurrencyList = json.CurrencyList;
this.invoiceZDDetail = json.ZDDetail; this.invoiceZDDetail = json.ZDDetail;
//循环获取图片列表
this.getInvoicekImages_fromData(json.ZDDetail);
this.getFormData(json.ZDDetail);
}else{ }else{
throw new Error(json.errmsg + ': ' + json.errcode); throw new Error(json.errmsg + ': ' + json.errcode);
} }
}) })
return json;
}); });
} }
@ -145,7 +143,7 @@ class Invoice {
//从数据库获取图片列表 //从数据库获取图片列表
getInvoicekImages_fromData(jsonData){ getInvoicekImages_fromData(jsonData){
let arrLen = jsonData.length; let arrLen = jsonData.length;
const arrPicList = jsonData.map((data,index)=>{ let arrPicList = jsonData.map((data,index)=>{
const GMD_Pic = data.GMD_Pic; const GMD_Pic = data.GMD_Pic;
let picList = []; let picList = [];
if (isNotEmpty(GMD_Pic)){ if (isNotEmpty(GMD_Pic)){
@ -160,12 +158,17 @@ class Invoice {
}); });
} }
if (data.GMD_Dealed == false && arrLen == (index+1)){ if (data.GMD_Dealed == false && arrLen == (index+1)){
this.invoicekImages = picList; this.invoicekImages = picList;
} }
return picList; return picList;
}) })
runInAction(()=>{
this.invoicePicList = arrPicList; this.invoicePicList = arrPicList;
});
} }
//获取数据库的表单默认数据回填。 //获取数据库的表单默认数据回填。
@ -173,7 +176,9 @@ class Invoice {
let arrLen = jsonData.length; let arrLen = jsonData.length;
return jsonData.map((data,index)=>{ return jsonData.map((data,index)=>{
if (data.GMD_Dealed == false && arrLen == (index+1)){ //只有最后一条账单未审核通过才显示 if (data.GMD_Dealed == false && arrLen == (index+1)){ //只有最后一条账单未审核通过才显示
runInAction(() => {
this.invoiceFormData = {'info_money':data.GMD_Cost,'info_Currency':data.GMD_Currency,'info_date':isNotEmpty(data.GMD_PayDate)?dayjs(data.GMD_PayDate):''}; this.invoiceFormData = {'info_money':data.GMD_Cost,'info_Currency':data.GMD_Currency,'info_date':isNotEmpty(data.GMD_PayDate)?dayjs(data.GMD_PayDate):''};
});
} }
}); });
} }
@ -212,6 +217,24 @@ class Invoice {
}); });
} }
postAddInvoice(GRI_SN,Currency,Cost,PayDate,Pic,Memo){
let postUrl = HT_HOST + '/service-cusservice/AddSupplierFK';
let formData = new FormData();
formData.append('LMI_SN', this.root.authStore.login.userId);
formData.append('VEI_SN', this.root.authStore.login.travelAgencyId);
formData.append('GRI_SN', GRI_SN);
formData.append('Currency', Currency);
formData.append('Cost', Cost);
formData.append('PayDate', isNotEmpty(PayDate)?PayDate:'' );
formData.append('Pic', Pic);
formData.append('Memo', Memo);
return postForm(postUrl,formData)
.then(json=>{
console.info(json);
return json;
});
}
invoicePage = { invoicePage = {
current:1, current:1,

@ -1,5 +1,5 @@
import { useParams, useNavigate } from "react-router-dom"; import { useParams, useNavigate } from "react-router-dom";
import { useEffect, useState } from "react"; import { useEffect, useState ,useRef } from "react";
import { observer } from "mobx-react"; import { observer } from "mobx-react";
import { toJS, runInAction } from "mobx"; import { toJS, runInAction } from "mobx";
import { Row, Col, Space, Button, Typography, Card, Form, Upload, Input, Divider, DatePicker, Select, App, Modal } from "antd"; import { Row, Col, Space, Button, Typography, Card, Form, Upload, Input, Divider, DatePicker, Select, App, Modal } from "antd";
@ -16,7 +16,7 @@ function Detail() {
const navigate = useNavigate(); const navigate = useNavigate();
const { GMDSN, GSN } = useParams(); const { GMDSN, GSN } = useParams();
const { invoiceStore, authStore } = useStore(); const { invoiceStore, authStore } = useStore();
const { invoicekImages, invoiceGroupInfo, invoiceProductList, invoiceCurrencyList, invoiceZDDetail, invoicePicList } = invoiceStore; const { invoicekImages, invoiceGroupInfo, invoiceProductList, invoiceCurrencyList, invoiceZDDetail } = invoiceStore;
const [form] = Form.useForm(); const [form] = Form.useForm();
const [dataLoading, setDataLoading] = useState(false); const [dataLoading, setDataLoading] = useState(false);
const { formCurrency, onCurrencyChange } = useState(); const { formCurrency, onCurrencyChange } = useState();
@ -25,13 +25,51 @@ function Detail() {
const [isModalOpen, setIsModalOpen] = useState(false); const [isModalOpen, setIsModalOpen] = useState(false);
const [confirmLoading, setConfirmLoading] = useState(false); const [confirmLoading, setConfirmLoading] = useState(false);
const [invoicePicList,setInvoicePicList] = useState([]);
useEffect(() => { useEffect(() => {
console.info("Detail.useEffect: " + GMDSN + "/" + GSN); console.info("Detail.useEffect: " + GMDSN + "/" + GSN);
setDataLoading(true); setDataLoading(true);
invoiceStore.fetchInvoiceDetail(GMDSN, GSN) invoiceStore.fetchInvoiceDetail(GMDSN, GSN)
.then(() => { .then((json) => {
form.setFieldsValue(invoiceStore.invoiceFormData); //{'info_money':'111','info_Currency':'THB','info_date':''} let ZDDetail = json.ZDDetail;
let arrLen = ZDDetail.length;
const formData = ZDDetail.map((data,index)=>{
if (data.GMD_Dealed == false && arrLen == (index+1)){ //
runInAction(() => {
invoiceStore.invoiceFormData = {'info_money':data.GMD_Cost,'info_Currency':data.GMD_Currency,'info_date':isNotEmpty(data.GMD_PayDate)?dayjs(data.GMD_PayDate):''};
});
return {'info_money':data.GMD_Cost,'info_Currency':data.GMD_Currency,'info_date':isNotEmpty(data.GMD_PayDate)?dayjs(data.GMD_PayDate):''};
}
});
form.setFieldsValue(formData[arrLen-1]); //{'info_money':'111','info_Currency':'THB','info_date':''}
//
let arrPicList = ZDDetail.map((data,index)=>{
const GMD_Pic = data.GMD_Pic;
let picList = [];
if (isNotEmpty(GMD_Pic)){
let js_Pic = JSON.parse(GMD_Pic)
picList = js_Pic.map((picData,pic_Index)=>{
return {
uid: -pic_Index, //
name: '',
status: "done",
url: picData.url,
}
});
}
if (data.GMD_Dealed == false && arrLen == (index+1)){
runInAction(() => {
//invoiceStore.invoicekImages = picList;
});
}
return picList;
})
setInvoicePicList(arrPicList);
}) })
.catch(ex => { .catch(ex => {
notification.error({ notification.error({
@ -45,6 +83,10 @@ function Detail() {
setDataLoading(false); setDataLoading(false);
}); });
// if (invoiceStore.invoiceFormData){
// form.setFieldsValue(invoiceStore.invoiceFormData);
// }
}, [GMDSN, GSN]); }, [GMDSN, GSN]);
const fileList = toJS(invoicekImages); const fileList = toJS(invoicekImages);
@ -72,11 +114,51 @@ function Detail() {
let param = { 'info_money': fieldVaule.info_money, 'info_Currency': fieldVaule.info_Currency, 'info_date': fieldVaule.info_date }; let param = { 'info_money': fieldVaule.info_money, 'info_Currency': fieldVaule.info_Currency, 'info_date': fieldVaule.info_date };
invoiceStore.invoiceFormData = param; invoiceStore.invoiceFormData = param;
}) })
if (data.errcode == 0 ){
notification.success({
message: `Notification`,
description: "Success Submit!",
placement: "top",
duration: 4,
}); });
} }
});
}
};
const onAddFinish = values => {
const fieldVaule = {
...values,
'info_date': isNotEmpty(values['info_date']) ? values['info_date'].format('YYYY-MM-DD') : null,
'info_images': JSON.stringify(arrimg),
}
console.log("Success:", fieldVaule);
//
if (fieldVaule) {
invoiceStore.postAddInvoice(GSN, fieldVaule.info_Currency, fieldVaule.info_money, fieldVaule.info_date, fieldVaule.info_images, "").then((data) => {
console.log("return:",data);
runInAction(() => {
let param = { 'info_money': fieldVaule.info_money, 'info_Currency': fieldVaule.info_Currency, 'info_date': fieldVaule.info_date };
invoiceStore.invoiceFormData = param;
})
if (data.errcode == 0 ){
// notification.success({
// message: `Notification`,
// description: "Success Submit!",
// placement: "top",
// duration: 4,
// });
setIsModalOpen(false);
}
});
}
}; };
const handleChange = info => { const handleChange = info => {
console.log(info); console.log(info);
let newFileList = [...info.fileList]; let newFileList = [...info.fileList];
@ -140,7 +222,7 @@ function Detail() {
accept="image/*" accept="image/*"
multiple={true} multiple={true}
action={config.HT_HOST + `/service-fileServer/FileUpload?GRI_SN=${GSN}&VEI_SN=${authStore.login.travelAgencyId}&FilePathName=invoice`} action={config.HT_HOST + `/service-fileServer/FileUpload?GRI_SN=${GSN}&VEI_SN=${authStore.login.travelAgencyId}&FilePathName=invoice`}
fileList={invoiceStore.invoicePicList[index]} fileList={invoicePicList[index]}
listType="picture-card" listType="picture-card"
> >
<div> <div>
@ -186,7 +268,7 @@ function Detail() {
name="ghhfile" name="ghhfile"
accept="image/*" accept="image/*"
multiple={true} multiple={true}
action={config.HT_HOST + `/service-fileServer/FileUpload?GRI_SN=${GSN}&VEI_SN=${authStore.login.travelAgencyId}&FilePathName=invoice`} action={config.HT_HOST + `/service-fileServer/FileUpload?GRI_SN=${GSN}&VEI_SN=${authStore.login.travelAgencyId}&FilePathName=invoice&token=${authStore.login.token}`}
fileList={fileList} fileList={fileList}
listType="picture-card" listType="picture-card"
onChange={handleChange} onChange={handleChange}
@ -252,9 +334,6 @@ function Detail() {
} }
}) })
// console.info(invoiceStore.invoiceFormData)
return submitForm; return submitForm;
} }
@ -262,17 +341,20 @@ function Detail() {
//#region Modal //#region Modal
const showConfirmModal = (confirm) => { const showConfirmModal = (confirm) => {
setIsModalOpen(true); setIsModalOpen(true);
// setConfirmText(confirm.PCI_ConfirmText);
//reservationStore.editConfirmation(confirm);
}; };
const fromRef = useRef()
const handleOk = () => { const handleOk = () => {
setConfirmLoading(true); setConfirmLoading(true);
// reservationStore.submitConfirmation(confirmText) try{
// .finally(() => { fromRef.current?.submit();
// setIsModalOpen(false); //onAddFinish;
// setConfirmLoading(false); //setIsModalOpen(false);
// }); } finally{
setConfirmLoading(false);
navigate("/invoice/detail/"+GMDSN+"/"+GSN)
}
}; };
const handleCancel = () => { const handleCancel = () => {
setIsModalOpen(false); setIsModalOpen(false);
@ -291,7 +373,7 @@ function Detail() {
width={1000} width={1000}
> >
<Title level={4}>Add New Invoice</Title> <Title level={4}>Add New Invoice</Title>
<Form name="invoice_submit" onFinish={onFinish} labelCol={{ span: 5 }} form={form}> <Form name="invoice_add" onFinish={onAddFinish} labelCol={{ span: 5 }} form={form} ref={fromRef}>
<Divider orientation="left">上传照片</Divider> <Divider orientation="left">上传照片</Divider>
<Form.Item <Form.Item
labelCol={{ labelCol={{
@ -305,7 +387,7 @@ function Detail() {
name="ghhfile" name="ghhfile"
accept="image/*" accept="image/*"
multiple={true} multiple={true}
action={config.HT_HOST + `/service-fileServer/FileUpload?GRI_SN=${GSN}&VEI_SN=${authStore.login.travelAgencyId}&FilePathName=invoice`} action={config.HT_HOST + `/service-fileServer/FileUpload?GRI_SN=${GSN}&VEI_SN=${authStore.login.travelAgencyId}&FilePathName=invoice&token=${authStore.login.token}`}
fileList={fileList} fileList={fileList}
listType="picture-card" listType="picture-card"
onChange={handleChange} onChange={handleChange}
@ -318,7 +400,6 @@ function Detail() {
</Form.Item> </Form.Item>
<Divider orientation="left">提交信息</Divider> <Divider orientation="left">提交信息</Divider>
<Form.Item <Form.Item
name="info_money" name="info_money"
label="报账总额:" label="报账总额:"

Loading…
Cancel
Save