diff --git a/src/config.js b/src/config.js index d353614..8c7446c 100644 --- a/src/config.js +++ b/src/config.js @@ -4,27 +4,27 @@ import dayjs from "dayjs"; export const DATE_FORMAT = "YYYY-MM-DD"; export const DATE_PRESETS = [ { - label: "本周", + label: "This Week", value: [dayjs().startOf("w"), dayjs().endOf("w")], }, { - label: "上周", + label: "Last Week", value: [dayjs().startOf("w").subtract(7, "days"), dayjs().endOf("w").subtract(7, "days")], }, { - label: "本月", + label: "This Month", value: [dayjs().startOf("M"), dayjs().endOf("M")], }, { - label: "上个月", + label: "Last Month", value: [dayjs().subtract(1, "M").startOf("M"), dayjs().subtract(1, "M").endOf("M")], }, { - label: "近三月", + label: "Last Three Month", value: [dayjs().subtract(2, "M").startOf("M"), dayjs().endOf("M")], }, { - label: "今年", + label: "This Year", value: [dayjs().startOf("y"), dayjs().endOf("y")], }, // 本月: [dayjs().startOf("month"), moment().endOf("month")], diff --git a/src/stores/Feedback.js b/src/stores/Feedback.js index cafe688..cf014e0 100644 --- a/src/stores/Feedback.js +++ b/src/stores/Feedback.js @@ -1,5 +1,5 @@ import { makeAutoObservable, runInAction } from "mobx"; -import * as req from "@/utils/request"; +import { fetchJSON, postForm } from "@/utils/request"; import { prepareUrl } from "@/utils/commons"; import * as config from "@/config"; import dayjs from "dayjs"; @@ -34,19 +34,16 @@ class Feedback { this.loading = true; let url = `/service-Cooperate/Cooperate/SearchFeedbackList`; url += `?PageSize=2000&PageIndex=1&PageTotal=0&veisn=${veisn}&GruopNo=${EOI_Group_Name}&TimeStart=${TimeStart}&TimeEnd=${TimeEnd}`; - fetch(config.HT_HOST + url) - .then(response => response.json()) - .then(json => { - console.log(json); - runInAction(() => { - this.feedbackList = json.Result; - this.loading = false; - }); - }) - .catch(error => { + url += `&token=${this.root.authStore.login.token}`; + return fetchJSON(config.HT_HOST + url).then(json => { + runInAction(() => { + this.feedbackList = json.Result; this.loading = false; - console.log("fetch data failed", error); }); + if (json.errcode !== 0) { + throw new Error(json.errmsg + ": " + json.errcode); + } + }); } /* 查询反馈表信息 @@ -56,6 +53,7 @@ class Feedback { getFeedbackDetail(VEI_SN, GRI_SN) { let url = `/service-Cooperate/Cooperate/getFeedbackDetail`; url += `?GRI_SN=${GRI_SN}&VEI_SN=${VEI_SN}`; + url += `&token=${this.root.authStore.login.token}`; fetch(config.HT_HOST + url) .then(response => response.json()) .then(json => { @@ -74,6 +72,7 @@ class Feedback { getFeedbackImages(VEI_SN, GRI_SN) { let url = `/service-fileServer/ListFile`; url += `?GRI_SN=${GRI_SN}&VEI_SN=${VEI_SN}`; + url += `&token=${this.root.authStore.login.token}`; fetch(config.HT_HOST + url) .then(response => response.json()) .then(json => { @@ -98,6 +97,7 @@ class Feedback { getFeedbackInfo(VEI_SN, GRI_SN) { let url = `/service-Cooperate/Cooperate/getVEIFeedbackInfo`; url += `?GRI_SN=${GRI_SN}&VEI_SN=${VEI_SN}`; + url += `&token=${this.root.authStore.login.token}`; return fetch(config.HT_HOST + url) .then(response => response.json()) .then(json => { @@ -115,6 +115,7 @@ class Feedback { removeFeedbackImages(fileurl) { let url = `/service-fileServer/FileDelete`; url += `?fileurl=${fileurl}`; + url += `&token=${this.root.authStore.login.token}`; return fetch(config.HT_HOST + url) .then(response => response.json()) .then(json => { @@ -134,6 +135,7 @@ class Feedback { formData.append("GRI_SN", GRI_SN); formData.append("EOI_SN", EOI_SN); formData.append("FeedbackInfo", info_content); + formData.append("token", this.root.authStore.login.token); return fetch(config.HT_HOST + url, { method: "POST", body: formData, diff --git a/src/stores/Invoice.js b/src/stores/Invoice.js index 59da0fe..53e06b0 100644 --- a/src/stores/Invoice.js +++ b/src/stores/Invoice.js @@ -18,7 +18,7 @@ class Invoice { invoiceProductList=[];//账单细项 invoiceZDDetail = []; //报账信息 invoiceCurrencyList=[];//币种 - invoicePicList = []; //多账单图片列表数组 + invoicePicList = [] //多账单图片列表数组 invoiceFormData = {'info_money':0,'info_Currency':'','info_date':''}; //存储form数据 @@ -105,14 +105,12 @@ class Invoice { this.invoiceGroupInfo = json.GroupInfo[0]; this.invoiceProductList = json.ProductList; this.invoiceCurrencyList = json.CurrencyList; - this.invoiceZDDetail = json.ZDDetail; - //循环获取图片列表 - this.getInvoicekImages_fromData(json.ZDDetail); - this.getFormData(json.ZDDetail); + this.invoiceZDDetail = json.ZDDetail; }else{ throw new Error(json.errmsg + ': ' + json.errcode); } }) + return json; }); } @@ -145,7 +143,7 @@ class Invoice { //从数据库获取图片列表 getInvoicekImages_fromData(jsonData){ let arrLen = jsonData.length; - const arrPicList = jsonData.map((data,index)=>{ + let arrPicList = jsonData.map((data,index)=>{ const GMD_Pic = data.GMD_Pic; let picList = []; if (isNotEmpty(GMD_Pic)){ @@ -160,12 +158,17 @@ class Invoice { }); } if (data.GMD_Dealed == false && arrLen == (index+1)){ + this.invoicekImages = picList; } return picList; }) - this.invoicePicList = arrPicList; + + runInAction(()=>{ + this.invoicePicList = arrPicList; + }); + } //获取数据库的表单默认数据回填。 @@ -173,7 +176,9 @@ class Invoice { let arrLen = jsonData.length; return jsonData.map((data,index)=>{ if (data.GMD_Dealed == false && arrLen == (index+1)){ //只有最后一条账单未审核通过才显示 - this.invoiceFormData = {'info_money':data.GMD_Cost,'info_Currency':data.GMD_Currency,'info_date':isNotEmpty(data.GMD_PayDate)?dayjs(data.GMD_PayDate):''}; + runInAction(() => { + 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 = { current:1, diff --git a/src/stores/Notice.js b/src/stores/Notice.js index 3a17be2..c2b15eb 100644 --- a/src/stores/Notice.js +++ b/src/stores/Notice.js @@ -17,6 +17,7 @@ class Notice { getBulletinList(LMI_SN) { let url = `/service-Cooperate/Cooperate/GetBulletinList`; url += `?LMI_SN=${LMI_SN}`; + url+=`&token=${this.root.authStore.login.token}`; fetch(config.HT_HOST + url) .then(response => response.json()) .then(json => { @@ -37,6 +38,7 @@ class Notice { getNoticeDetail(LMI_SN, CCP_BLID) { let url = `/service-Cooperate/Cooperate/GetBulletinDetail`; url += `?LMI_SN=${LMI_SN}&CCP_BLID=${CCP_BLID}`; + url+=`&token=${this.root.authStore.login.token}`; fetch(config.HT_HOST + url) .then(response => response.json()) .then(json => { @@ -54,6 +56,7 @@ class Notice { getBulletinUnReadCount(LMI_SN) { let url = `/service-Cooperate/Cooperate/GetBulletinUnReadCount`; url += `?LMI_SN=${LMI_SN}`; + url+=`&token=${this.root.authStore.login.token}`; fetch(config.HT_HOST + url) .then(response => response.json()) .then(json => { diff --git a/src/views/feedback/Detail.jsx b/src/views/feedback/Detail.jsx index 323a81e..b9cefd6 100644 --- a/src/views/feedback/Detail.jsx +++ b/src/views/feedback/Detail.jsx @@ -60,7 +60,7 @@ function Detail() { feedbackStore.postFeedbackInfo(feedbackInfo.EEF_VEI_SN, feedbackInfo.EEF_GRI_SN, feedbackInfo.EEF_EOI_SN, values.info_content).then(() => { notification.success({ message: `Notification`, - description: "提交成功", + description: "Submit Successful", placement: "top", duration: 4, }); @@ -141,7 +141,7 @@ function Detail() { - 站外好评 + External Reviews @@ -155,7 +155,7 @@ function Detail() { - 地接社的反馈 + Send Feedback @@ -164,7 +164,7 @@ function Detail() {
- 上传照片 + Upload photos - 地接社反馈信息 - + diff --git a/src/views/invoice/Detail.jsx b/src/views/invoice/Detail.jsx index 3d4999b..0cd3dfa 100644 --- a/src/views/invoice/Detail.jsx +++ b/src/views/invoice/Detail.jsx @@ -1,5 +1,5 @@ import { useParams, useNavigate } from "react-router-dom"; -import { useEffect, useState } from "react"; +import { useEffect, useState ,useRef } from "react"; import { observer } from "mobx-react"; import { toJS, runInAction } from "mobx"; 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 { GMDSN, GSN } = useParams(); const { invoiceStore, authStore } = useStore(); - const { invoicekImages, invoiceGroupInfo, invoiceProductList, invoiceCurrencyList, invoiceZDDetail, invoicePicList } = invoiceStore; + const { invoicekImages, invoiceGroupInfo, invoiceProductList, invoiceCurrencyList, invoiceZDDetail } = invoiceStore; const [form] = Form.useForm(); const [dataLoading, setDataLoading] = useState(false); const { formCurrency, onCurrencyChange } = useState(); @@ -25,25 +25,67 @@ function Detail() { const [isModalOpen, setIsModalOpen] = useState(false); const [confirmLoading, setConfirmLoading] = useState(false); + const [invoicePicList,setInvoicePicList] = useState([]); + useEffect(() => { console.info("Detail.useEffect: " + GMDSN + "/" + GSN); setDataLoading(true); invoiceStore.fetchInvoiceDetail(GMDSN, GSN) - .then(() => { - form.setFieldsValue(invoiceStore.invoiceFormData); //{'info_money':'111','info_Currency':'THB','info_date':''} - }) - .catch(ex => { - notification.error({ - message: `Notification`, - description: ex.message, - placement: 'top', - duration: 4, - }); + .then((json) => { + 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):'','info_gmdsn':data.GMD_SN}; + }); + return {'info_money':data.GMD_Cost,'info_Currency':data.GMD_Currency,'info_date':isNotEmpty(data.GMD_PayDate)?dayjs(data.GMD_PayDate):'','info_gmdsn':data.GMD_SN}; + } + }); + 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; + }) - .finally(() => { - setDataLoading(false); + setInvoicePicList(arrPicList); + + }) + .catch(ex => { + notification.error({ + message: `Notification`, + description: ex.message, + placement: 'top', + duration: 4, }); + }) + .finally(() => { + setDataLoading(false); + }); + + // if (invoiceStore.invoiceFormData){ + // form.setFieldsValue(invoiceStore.invoiceFormData); + // } }, [GMDSN, GSN]); @@ -66,17 +108,57 @@ function Detail() { console.log("Success:", fieldVaule); //入库 if (fieldVaule) { - invoiceStore.postEditInvoiceDetail(GMDSN, fieldVaule.info_Currency, fieldVaule.info_money, fieldVaule.info_date, fieldVaule.info_images, "").then((data) => { + invoiceStore.postEditInvoiceDetail(fieldVaule.info_gmdsn, fieldVaule.info_Currency, fieldVaule.info_money, fieldVaule.info_date, fieldVaule.info_images, "").then((data) => { console.log(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, + }); + } }); } + }; + + + 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 => { console.log(info); let newFileList = [...info.fileList]; @@ -140,7 +222,7 @@ function Detail() { accept="image/*" multiple={true} 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" >
@@ -186,7 +268,7 @@ function Detail() { name="ghhfile" accept="image/*" 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} listType="picture-card" onChange={handleChange} @@ -239,6 +321,12 @@ function Detail() { +