diff --git a/src/views/products/Detail.jsx b/src/views/products/Detail.jsx index 145218e..af0ee47 100644 --- a/src/views/products/Detail.jsx +++ b/src/views/products/Detail.jsx @@ -1,9 +1,13 @@ import React, { useState, useEffect } from 'react'; -import { Tooltip, Button, Card, Col, Row, Breadcrumb, Table, Popconfirm, Form, Input, InputNumber, Tag, Modal, Select, Tree, FloatButton, DatePicker, Spin, message, Divider } from 'antd'; +import { Tooltip, Button, Card, Col, Row, Breadcrumb, Table, Popconfirm, Form, Input, InputNumber, Tag, Modal, Select, Tree, FloatButton, DatePicker, Spin, message, Divider,Empty } from 'antd'; import { Link, useNavigate } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { useProductsTypes, useProductsAuditStatesMapVal } from '@/hooks/useProductsSets'; import Extras from './Detail/Extras'; +import { isEmpty } from '@/utils/commons'; +import SecondHeaderWrapper from '@/components/SecondHeaderWrapper'; +import Header from './Detail/Header'; +import YearSelector from './Detail/YearSelector' import { useParams } from 'react-router-dom'; import useProductsStore from '@/stores/Products/Index'; import postProductsSave from '@/stores/Products/Index'; @@ -79,6 +83,8 @@ function Detail() { getAgencyProducts({ travel_agency_id: agency, use_year: year, audit_state }); console.log("loading",loading); console.log("AgencyProducts",agencyProducts); + // navigate(`/products/${agency}/${year}/${audit_state}/edit`); + }; const travel_agency_name = activeAgency.travel_agency_name; const audit_state_id = activeAgency.audit_state_id; @@ -1013,29 +1019,47 @@ function Detail() { }; + //提交审核方法 + const submitReview = async () => { + const formData = new FormData(); + formData.append('use_year', use_year); + formData.append('travel_agency_id', travel_agency_id); + try { + const { errcode, result } = await postForm(`${HT_HOST}/Service_BaseInfoWeb/agency_submit`, formData); + console.log("errcode", errcode); + if (errcode === 0) { + message.success("提交审核成功"); + navigate(`/products/${travel_agency_id}/${use_year}/${audit_state}/audit`); + } else { + message.error("提交审核失败"); + } + console.log("result", result); + } catch (error) { + console.error("提交审核请求失败", error); + message.error("提交审核请求失败"); + } + }; + + const handleStateChange = (newState) => { + console.log("newState",newState) + if(newState === 'addProducts'){ + setAddProductVisible(true); + } + if(newState === 'submitReview'){ + submitReview(); + } + }; + return ( - -
+ + // + }> + {isEmpty(agencyProducts) ? :
- - - - - - - ))} -
-
+
} + + //
); } export default Detail; diff --git a/src/views/products/Detail/YearSelector.jsx b/src/views/products/Detail/YearSelector.jsx new file mode 100644 index 0000000..62e2751 --- /dev/null +++ b/src/views/products/Detail/YearSelector.jsx @@ -0,0 +1,81 @@ +import { useEffect, useState } from 'react'; +import { useParams, Link, useNavigate } from 'react-router-dom'; +import { App, Button, Divider, Select } from 'antd'; +import { useProductsAuditStatesMapVal } from '@/hooks/useProductsSets'; +import { useTranslation } from 'react-i18next'; +import useProductsStore, { postProductsQuoteAuditAction, } from '@/stores/Products/Index'; +import { isEmpty } from '@/utils/commons'; +import useAuthStore from '@/stores/Auth'; +import RequireAuth from '@/components/RequireAuth'; +// import PrintContractPDF from './PrintContractPDF'; +import { PERM_PRODUCTS_OFFER_AUDIT, PERM_PRODUCTS_OFFER_PUT } from '@/config'; +import dayjs from 'dayjs'; +import AuditStateSelector from '@/components/AuditStateSelector'; +const YearSelector = ({ refresh,onStateChange }) => { + const { travel_agency_id, use_year, audit_state } = useParams(); + const { t } = useTranslation(); + const stateMapVal = useProductsAuditStatesMapVal(); + const navigate = useNavigate(); + + const yearOptions = []; + const currentYear = dayjs().year(); + const baseYear = Number(use_year === 'all' ? currentYear : use_year); + for (let i = baseYear - 3; i <= baseYear + 3; i++) { + yearOptions.push({ label: i, value: i, }); + } + + const [param, setParam] = useState({ pick_year: baseYear, pick_agency: travel_agency_id, }); + const [pickYear, setPickYear] = useState(baseYear); + const [pickAuditState, setPickAuditState] = useState(); + useEffect(() => { + refresh(param); + + return () => {}; + }, [param]); + + const emptyPickState = { value: '', label: t('products:State') }; + useEffect(() => { + const baseState = audit_state === 'all' ? emptyPickState : stateMapVal[`${audit_state}`]; + if (isEmpty(pickAuditState)) { + setPickAuditState(baseState); + } + return () => {}; + }, [audit_state, stateMapVal]) + + + const handleYearChange = (value) => { + setPickYear(value); + setParam((pre) => ({ ...pre, ...{ pick_year: value } })); + }; + const handleAuditStateChange = (labelValue) => { + const { value } = labelValue || emptyPickState; + setPickAuditState(labelValue || emptyPickState); + setParam((pre) => ({ ...pre, ...{ pick_state: value } })); + }; + const addproducts = () => { + onStateChange('addProducts'); + }; + const submitreview = () => { + onStateChange('submitReview'); + } + return ( +
+
+

+ +