diff --git a/public/locales/en/group.json b/public/locales/en/group.json index 4286b80..2083c6e 100644 --- a/public/locales/en/group.json +++ b/public/locales/en/group.json @@ -1,6 +1,7 @@ { "ArrivalDate": "Arrival Date", "RefNo": "Reference number", + "unconfirmed": "Unconfirmed", "Pax": "Pax", "Status": "Status", "City": "City", diff --git a/public/locales/zh/group.json b/public/locales/zh/group.json index 2f25071..5b18f89 100644 --- a/public/locales/zh/group.json +++ b/public/locales/zh/group.json @@ -1,6 +1,7 @@ { "ArrivalDate": "抵达日期", "RefNo": "团号", + "unconfirmed": "未确认", "Pax": "人数", "Status": "状态", "City": "城市", @@ -11,6 +12,5 @@ "ConfirmationDate": "确认日期", "ConfirmationDetails": "确认信息", "PNR": "旅客订座记录", - "#": "#" } diff --git a/src/components/SearchForm.jsx b/src/components/SearchForm.jsx index 1dcafe2..153677d 100644 --- a/src/components/SearchForm.jsx +++ b/src/components/SearchForm.jsx @@ -1,5 +1,5 @@ import { useEffect } from 'react'; -import { Form, Input, Row, Col, Select, DatePicker, Space, Button } from 'antd'; +import { Form, Input, Row, Col, Select, DatePicker, Space, Button, Checkbox } from 'antd'; import { objectMapper, at } from '@/utils/commons'; import { DATE_FORMAT, SMALL_DATETIME_FORMAT } from '@/config'; import useFormStore from '@/stores/Form'; @@ -301,6 +301,14 @@ function getFields(props) { , fieldProps?.dept?.col || 6 ), + item( + 'unconfirmed', + 99, + + {t('group:unconfirmed')} + , + fieldProps?.unconfirmed?.col || 2 + ), ]; baseChildren = baseChildren .map((x) => { diff --git a/src/hooks/useProductsSets.js b/src/hooks/useProductsSets.js index 888ad43..6f7fbe5 100644 --- a/src/hooks/useProductsSets.js +++ b/src/hooks/useProductsSets.js @@ -75,10 +75,10 @@ export const useProductsAuditStates = () => { useEffect(() => { const newData = [ - { key: '-1', value: '-1', label: t('products:auditState.New'), color: 'gray-500' }, + { key: '-1', value: '-1', label: t('products:auditState.New'), color: 'muted' }, { key: '0', value: '0', label: t('products:auditState.Pending'), color: '' }, { key: '2', value: '2', label: t('products:auditState.Approved'), color: 'primary' }, - { key: '3', value: '3', label: t('products:auditState.Rejected'), color: 'red-500' }, + { key: '3', value: '3', label: t('products:auditState.Rejected'), color: 'danger' }, { key: '1', value: '1', label: t('products:auditState.Published'), color: 'primary' }, // ELSE 未知 ]; diff --git a/src/stores/Account.js b/src/stores/Account.js index 47abc92..22c96ca 100644 --- a/src/stores/Account.js +++ b/src/stores/Account.js @@ -1,6 +1,6 @@ import { create } from 'zustand' import { fetchJSON, postForm } from '@/utils/request' -import { isEmpty } from '@/utils/commons' +import { isEmpty, isNotEmpty } from '@/utils/commons' import { HT_HOST } from "@/config" import { usingStorage } from '@/hooks/usingStorage' @@ -139,16 +139,19 @@ const useAccountStore = create((set, get) => ({ }, searchAccountByCriteria: async (formValues) => { - + let travel_agency_ids = null + if (isNotEmpty(formValues.agency)) { + travel_agency_ids = formValues.agency.map((ele) => ele.key).join(',') + } const searchParams = { username: formValues.username, realname: formValues.realname, + travel_agency_ids: travel_agency_ids, lgc: 2 } const resultArray = await fetchAccountList(searchParams) - console.info(resultArray) const mapAccoutList = resultArray.map((r) => { return { accountId: r.wu_id, diff --git a/src/stores/Reservation.js b/src/stores/Reservation.js index 8990ae7..f777162 100644 --- a/src/stores/Reservation.js +++ b/src/stores/Reservation.js @@ -91,17 +91,18 @@ const useReservationStore = create((set, get) => ({ })) }, - fetchReservationList: (formVal, current=1) => { + fetchReservationList: (formValues, current=1) => { const { travelAgencyId } = usingStorage() const { reservationPage } = get() // 设置为 0,后端会重新计算总数,当跳转第 X 页时可用原来的总数。 - const totalNum = current == 1 ? 0 : reservationPage.total; + const totalNum = current == 1 ? 0 : reservationPage.total + const notConfirmValue = formValues.notConfirm ? 1 : 0 const fetchUrl = prepareUrl(HT_HOST + '/service-cusservice/GetPlanSearchList') .append('VEI_SN', travelAgencyId) - .append('GroupNo', formVal.referenceNo) - .append('DateStart', formVal.startdate) - .append('DateEnd', formVal.enddate) - .append('NotConfirm', '')//status)// Todo: 待解决 + .append('GroupNo', formValues.referenceNo) + .append('DateStart', formValues.startdate) + .append('DateEnd', formValues.enddate) + .append('NotConfirm', notConfirmValue) .append('TotalNum', totalNum) .append('PageSize', reservationPage.size) .append('PageIndex', current) diff --git a/src/views/App.jsx b/src/views/App.jsx index e31a19d..73abe43 100644 --- a/src/views/App.jsx +++ b/src/views/App.jsx @@ -17,7 +17,7 @@ import useAuthStore from '@/stores/Auth' import { useThemeContext } from '@/stores/ThemeContext' import { usingStorage } from '@/hooks/usingStorage' -import { PERM_ACCOUNT_MANAGEMENT, PERM_ROLE_NEW, PERM_OVERSEA, PERM_AIR_TICKET } from '@/config' +import { PERM_ACCOUNT_MANAGEMENT, PERM_ROLE_NEW, PERM_OVERSEA, PERM_AIR_TICKET, PERM_PRODUCTS_MANAGEMENT } from '@/config' const { Header, Content, Footer } = Layout; const { Title } = Typography; @@ -38,7 +38,6 @@ function App() { const noticeUnRead = useNoticeStore((state) => state.noticeUnRead) const href = useHref() const navigate = useNavigate() - const location = useLocation() // 除了路由 /p...以外都需要登陆系统 const needToLogin = href !== '/login' && isEmpty(loginToken) @@ -118,7 +117,7 @@ function App() { isPermitted(PERM_OVERSEA) ? { key: 'feedback', label: {t('menu.Feedback')} } : null, isPermitted(PERM_OVERSEA) ? { key: 'report', label: {t('menu.Report')} } : null, isPermitted(PERM_AIR_TICKET) ? { key: 'airticket', label: {t('menu.Airticket')} } : null, - { key: 'products', label: {t('menu.Products')} }, + isPermitted(PERM_PRODUCTS_MANAGEMENT) ? { key: 'products', label: {t('menu.Products')} } : null, { key: 'notice', label: ( diff --git a/src/views/Login.jsx b/src/views/Login.jsx index 647a3fb..43119f5 100644 --- a/src/views/Login.jsx +++ b/src/views/Login.jsx @@ -40,14 +40,15 @@ function Login() { return (
), }, @@ -141,13 +141,13 @@ const Extras = ({ productId, onChange, ...props }) => { const columns = [ { title: t('products:Title'), dataIndex: ['info', 'title'], width: '16rem', }, - { - title: t('products:Offer'), - dataIndex: ['quotation', '0', 'value'], - width: '10rem', + // { + // title: t('products:Offer'), + // dataIndex: ['quotation', '0', 'value'], + // width: '10rem', - render: (_, { quotation }) => `${quotation[0].adult_cost} ${quotation[0].currency} / ${quotation[0].unit_name}`, // todo: 成人 儿童 - }, + // render: (_, { quotation }) => `${quotation[0].adult_cost} ${quotation[0].currency} / ${quotation[0].unit_name}`, + // }, // { title: t('products:Types'), dataIndex: 'age_type', width: '40%', }, { title: '', diff --git a/src/views/reservation/Newest.jsx b/src/views/reservation/Newest.jsx index b2330ab..9a02816 100644 --- a/src/views/reservation/Newest.jsx +++ b/src/views/reservation/Newest.jsx @@ -201,8 +201,9 @@ function Newest() {