refactor: `urils/commons` --> `@haina/utils-commons`; `urils/request` --> `@haina/utils-request`;

main
Lei OT 4 months ago
parent 666b8cffb7
commit 7087954bd3

@ -12,6 +12,8 @@
},
"dependencies": {
"@ant-design/icons": "^5.5.1",
"@haina/utils-commons": "http://202.103.68.93:9000/npm/utils-commons-0.1.0.tgz",
"@haina/utils-request": "http://202.103.68.93:9000/npm/utils-request-0.1.0.tgz",
"@react-pdf/renderer": "^3.4.0",
"antd": "^5.28.0",
"dayjs": "^1.11.13",

@ -2,7 +2,7 @@ import { createContext, useContext, useEffect, useState } from 'react';
import { Link, useNavigate } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { Button } from 'antd';
import { isNotEmpty } from '@/utils/commons';
import { isNotEmpty } from '@haina/utils-commons';
const BackBtn = ({to, ...props}) => {
const { t } = useTranslation();

@ -1,7 +1,7 @@
import { createContext, useEffect, useState } from 'react';
import {} from 'antd';
import SearchInput from './SearchInput';
import { fetchJSON } from '@/utils/request';
import { fetchJSON } from '@haina/utils-request';
import { HT_HOST } from '@/config';
import { useTranslation } from 'react-i18next';

@ -2,7 +2,7 @@ import React, { useState, useEffect } from "react";
import { Tag, Button, message } from 'antd';
import { CaretUpOutlined, CaretDownOutlined, DownloadOutlined } from '@ant-design/icons';
import { utils, writeFile } from "xlsx";
import { isEmpty, getNestedValue } from "../utils/commons";
import { isEmpty, getNestedValue } from "@haina/utils-commons";
/**
* @property diffPercent

@ -2,7 +2,7 @@ import { useEffect, useState } from "react";
import { Upload, List, Button, Tooltip, Popconfirm, Col, Row } from "antd";
import { UploadOutlined, FileTextOutlined, DeleteOutlined, StopOutlined } from "@ant-design/icons";
import { Image } from "antd";
import { fetchJSON } from "@/utils/request";
import { fetchJSON } from "@haina/utils-request";
import { HT3_HOST } from "@/config";
//

@ -1,9 +1,9 @@
import { useEffect, useState } from 'react';
import { Spin, Cascader } from 'antd';
import { fetchJSON } from '@/utils/request';
import { fetchJSON } from '@haina/utils-request';
import { HT_HOST } from '@/config';
import { useTranslation } from 'react-i18next';
import { groupBy } from '@/utils/commons';
import { groupBy } from '@haina/utils-commons';
//
export const fetchAgencyProductsList = async (params) => {

@ -1,6 +1,6 @@
import { useEffect } from "react";
import { Form, Input, Row, Col, Select, DatePicker, Space, Button, Checkbox, Tag } from "antd";
import { objectMapper, at, isEmpty } from "@/utils/commons";
import { objectMapper, at, isEmpty } from "@haina/utils-commons";
import { DATE_FORMAT, SMALL_DATETIME_FORMAT, PERM_AGENCY_ALL } from "@/config";
import useFormStore from "@/stores/Form";
import { useDatePresets } from "@/hooks/useDatePresets";

@ -1,6 +1,6 @@
import React, { useMemo, useRef, useState, useEffect } from 'react';
import { Select, Spin } from 'antd';
import { debounce, objectMapper } from '@/utils/commons';
import { debounce, objectMapper } from '@haina/utils-commons';
function DebounceSelect({ fetchOptions, debounceTimeout = 500, initLoad = false, defaultOptions=[], onFetch=null, ...props }) {
const [fetching, setFetching] = useState(false);

@ -1,13 +1,13 @@
import { createContext, useEffect, useState } from 'react';
import {} from 'antd';
import SearchInput from './SearchInput';
import { fetchJSON } from '@/utils/request';
import { fetchJSON } from '@haina/utils-request';
import { HT_HOST } from '@/config';
import { useTranslation } from 'react-i18next';
import useFormStore from "@/stores/Form";
import { usingStorage } from "@/hooks/usingStorage";
import useAuthStore from '@/stores/Auth'
import { isEmpty, objectMapper } from '@/utils/commons';
import { isEmpty, objectMapper } from '@haina/utils-commons';
const mapper = { travel_agency_name: 'label', travel_agency_id: 'value' };

@ -1,4 +1,4 @@
import { flush, groupBy, isEmpty, isNotEmpty, pick, unique, uniqWith } from '@/utils/commons';
import { flush, groupBy, isEmpty, isNotEmpty, pick, unique, uniqWith } from '@haina/utils-commons';
import dayjs from 'dayjs';
import { formatGroupSize } from './useProductsSets';

@ -2,7 +2,7 @@ import { useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import useAuthStore from '@/stores/Auth';
import { PERM_OVERSEA, PERM_AIR_TICKET, PERM_PRODUCTS_MANAGEMENT } from '@/config';
import { isEmpty } from '@/utils/commons';
import { isEmpty } from '@haina/utils-commons';
/**
* 产品管理 相关的预设数据

@ -1,7 +1,7 @@
import { useState, useEffect } from 'react';
import { Dropdown } from 'antd';
import { useTranslation } from 'react-i18next';
import { appendRequestParams } from '@/utils/request';
import { appendRequestParams } from '@haina/utils-request';
const i18n_to_htcode = {
'zh': 2,

@ -45,7 +45,7 @@ import TrainticketInvoicePaid from '@/views/trainticket/invoicePaid'
import { ThemeContext } from '@/stores/ThemeContext'
import { usingStorage } from '@/hooks/usingStorage'
import useAuthStore from './stores/Auth'
import { isNotEmpty } from '@/utils/commons'
import { isNotEmpty } from '@haina/utils-commons'
import ProductsManage from '@/views/products/Manage';
import ProductsDetail from '@/views/products/Detail';
@ -54,10 +54,11 @@ import ImageViewer from '@/views/ImageViewer';
import CustomerImageViewer from '@/views/CustomerImageViewer';
import PickYear from './views/products/PickYear'
import { PERM_ACCOUNT_MANAGEMENT, PERM_ROLE_NEW,
import { BUILD_VERSION, PERM_ACCOUNT_MANAGEMENT, PERM_ROLE_NEW,
PERM_TRAIN_TICKET, PERM_AIR_TICKET, PERM_PRODUCTS_MANAGEMENT, PERM_PRODUCTS_OFFER_PUT,
PERM_RESERVATION_ALL, PERM_FEEDBACK_ALL, PERM_INVOICE_ALL, PERM_REPORT_ALL, PERM_REVIEW_ALL, PERM_PRODUCTS_INFO_PUT
} from '@/config'
import { appendRequestHeader } from '@haina/utils-request';
import './i18n'
@ -128,6 +129,8 @@ const initRouter = async () => {
const initAppliction = async () => {
appendRequestHeader('X-Web-Version', BUILD_VERSION);
const { loginToken, userId } = usingStorage()
if (isNotEmpty(userId) && isNotEmpty(loginToken)) {

@ -1,7 +1,7 @@
import { create } from 'zustand'
import { devtools } from 'zustand/middleware'
import { fetchJSON, postForm } from '@/utils/request'
import { isEmpty, isNotEmpty } from '@/utils/commons'
import { fetchJSON, postForm } from '@haina/utils-request'
import { isEmpty, isNotEmpty } from '@haina/utils-commons'
import { HT_HOST } from "@/config"
import { usingStorage } from '@/hooks/usingStorage'
@ -188,4 +188,4 @@ const useAccountStore = create(devtools((set) => ({
},
}), { name: 'accountStore' }))
export default useAccountStore
export default useAccountStore

@ -1,6 +1,6 @@
import { create } from "zustand";
import { fetchJSON, postForm } from "@/utils/request";
import { prepareUrl, isNotEmpty } from "@/utils/commons";
import { fetchJSON, postForm } from "@haina/utils-request";
import { prepareUrl, isNotEmpty } from "@haina/utils-commons";
import { HT_HOST, DATE_FORMAT } from "@/config";
import dayjs from "dayjs";

@ -1,10 +1,10 @@
import { create } from 'zustand'
import { devtools } from 'zustand/middleware'
import { appendRequestParams, fetchJSON, postForm } from '@/utils/request'
import { appendRequestParams, fetchJSON, postForm } from '@haina/utils-request'
import { HT_HOST } from "@/config"
import { loadPageSpy } from '@/pageSpy'
import { usingStorage } from '@/hooks/usingStorage'
import { isEmpty } from "@/utils/commons";
import { isEmpty } from "@haina/utils-commons";
const KEY_LOGIN_TOKEN = 'G-STR:LOGIN_TOKEN'
const KEY_TRAVEL_AGENCY_ID = 'G-INT:TRAVEL_AGENCY_ID'

@ -1,6 +1,6 @@
import { create } from 'zustand'
import { devtools } from 'zustand/middleware'
import { fetchJSON, postForm } from '@/utils/request'
import { fetchJSON, postForm } from '@haina/utils-request'
import { DATE_FORMAT, TGA_HOST } from "@/config"
import dayjs from "dayjs";

@ -1,5 +1,5 @@
import { fetchJSON, postForm , postJSON} from '@/utils/request';
import { groupBy } from '@/utils/commons';
import { fetchJSON, postForm , postJSON} from '@haina/utils-request';
import { groupBy } from '@haina/utils-commons';
import * as config from '@/config';
import dayjs from 'dayjs';

@ -1,4 +1,4 @@
import { fetchJSON, postForm } from "@/utils/request";
import { fetchJSON, postForm } from "@haina/utils-request";
import { HT_HOST } from "@/config";
import { create } from 'zustand';

@ -4,7 +4,7 @@ import * as config from "@/config";
import { create } from 'zustand';
import { devtools } from 'zustand/middleware';
import { fetchJSON, postJSON } from '@/utils/request';
import { fetchJSON, postJSON } from '@haina/utils-request';
const { HT_HOST } = config;
/**

@ -1,9 +1,9 @@
import { create } from 'zustand';
import { devtools } from 'zustand/middleware';
import dayjs from 'dayjs'
import { fetchJSON, postForm, postJSON } from '@/utils/request';
import { fetchJSON, postForm, postJSON } from '@haina/utils-request';
import { HT_HOST } from '@/config';
import { groupBy, generateId, isNotEmpty } from '@/utils/commons';
import { groupBy, generateId, isNotEmpty } from '@haina/utils-commons';
export const searchAgencyAction = async (param) => {
const { errcode, result } = await fetchJSON(`${HT_HOST}/Service_BaseInfoWeb/products_search`, param);

@ -1,4 +1,4 @@
import { fetchJSON } from "@/utils/request";
import { fetchJSON } from "@haina/utils-request";
import { HT_HOST } from "@/config";
import { create } from 'zustand';
import { devtools } from 'zustand/middleware';

@ -1,8 +1,8 @@
import { create } from 'zustand'
import { devtools } from 'zustand/middleware'
import { fetchJSON, postForm } from '@/utils/request'
import { fetchJSON, postForm } from '@haina/utils-request'
import { HT_HOST, TGA_HOST } from "@/config"
import { prepareUrl } from '@/utils/commons'
import { prepareUrl } from '@haina/utils-commons'
import { usingStorage } from '@/hooks/usingStorage'
export const fetchCityList = async (travelAgencyId, reservationId) => {

@ -1,6 +1,6 @@
import { create } from "zustand";
import { fetchJSON, postForm } from "@/utils/request";
import { prepareUrl, isNotEmpty } from "@/utils/commons";
import { fetchJSON, postForm } from "@haina/utils-request";
import { prepareUrl, isNotEmpty } from "@haina/utils-commons";
import { HT_HOST, DATE_FORMAT } from "@/config";
import dayjs from "dayjs";

@ -8,7 +8,7 @@ import {
import { DownOutlined } from '@ant-design/icons'
import 'antd/dist/reset.css'
import AppLogo from '@/assets/highlights_travel_600_550.png'
import { isEmpty } from '@/utils/commons'
import { isEmpty } from '@haina/utils-commons'
import { useTranslation } from 'react-i18next'
import zhLocale from 'antd/locale/zh_CN'
import enLocale from 'antd/locale/en_US'
@ -20,7 +20,7 @@ import useAuthStore from '@/stores/Auth'
import { useThemeContext } from '@/stores/ThemeContext'
import { usingStorage } from '@/hooks/usingStorage'
import { useDefaultLgc } from '@/i18n/LanguageSwitcher'
import { appendRequestParams } from '@/utils/request'
import { appendRequestParams } from '@haina/utils-request'
import LogUploader from '@/components/LogUploader'
import { PERM_ACCOUNT_MANAGEMENT, PERM_ROLE_NEW, PERM_REVIEW_ALL, PERM_AIR_TICKET, PERM_PRODUCTS_MANAGEMENT,PERM_TRAIN_TICKET,

@ -3,7 +3,7 @@ import { useEffect } from "react";
import { Button, Form, Input, Row, Radio, App, Typography } from "antd";
import { useTranslation } from "react-i18next";
import useAuthStore from "@/stores/Auth";
import { appendRequestParams } from "@/utils/request";
import { appendRequestParams } from "@haina/utils-request";
function Login() {
const [authenticate, loginStatus, defaultRoute] = useAuthStore((state) => [

@ -1,5 +1,5 @@
import { Button } from 'antd';
import { clearAllCaches } from '@/utils/commons';
import { clearAllCaches } from '@haina/utils-commons';
import { useTranslation } from 'react-i18next'
const ReloadUpdate = ({ ...props }) => {

@ -1,7 +1,7 @@
import SearchForm from '@/components/SearchForm'
import useAccountStore, { fetchRoleList, fetchTravelAgencyByName, genRandomPassword } from '@/stores/Account'
import useFormStore from '@/stores/Form'
import { isEmpty, debounce } from '@/utils/commons'
import { isEmpty, debounce } from '@haina/utils-commons'
import { ExclamationCircleFilled } from '@ant-design/icons'
import { App, Button, Col, Form, Input, Modal, Row, Select, Space, Table, Typography, Switch, Spin } from 'antd'
import dayjs from 'dayjs'

@ -1,7 +1,7 @@
import RequireAuth from '@/components/RequireAuth'
import { PERM_ROLE_NEW } from '@/config'
import useAccountStore, { fetchPermissionList, fetchPermissionListByRoleId, fetchRoleList } from '@/stores/Account'
import { isEmpty } from '@/utils/commons'
import { isEmpty } from '@haina/utils-commons'
import {
PushpinTwoTone,
} from '@ant-design/icons'

@ -2,7 +2,7 @@ import { useState, useEffect } from "react";
import { Grid, Divider, Layout, Spin, Input, Col, Row, Space, List, Table, Button } from "antd";
import { PhoneOutlined, CustomerServiceOutlined, AudioOutlined, AuditOutlined } from "@ant-design/icons";
import { useParams, useHref, useNavigate, NavLink } from "react-router-dom";
import { isEmpty, formatColonTime } from "@/utils/commons";
import { isEmpty, formatColonTime } from "@haina/utils-commons";
import dayjs from "dayjs";
import SearchForm from "@/components/SearchForm";
import { DATE_FORMAT } from "@/config";

@ -2,7 +2,7 @@ import { useState, useEffect } from "react";
import { Grid, Divider, Layout, Steps, Statistic, Col, Row, Space, Checkbox, Table, Button, App, Typography } from "antd";
import { PhoneOutlined, CustomerServiceOutlined, FrownTwoTone, LikeTwoTone } from "@ant-design/icons";
import { useParams, useHref, useNavigate, NavLink } from "react-router-dom";
import { isEmpty, formatColonTime } from "@/utils/commons";
import { isEmpty, formatColonTime } from "@haina/utils-commons";
import dayjs from "dayjs";
import SearchForm from "@/components/SearchForm";
import BackBtn from "@/components/BackBtn";

@ -2,7 +2,7 @@ import { useState, useEffect } from "react";
import { Grid, Divider, Layout, Spin, Input, Col, Row, Space, Checkbox, Table, Button, App } from "antd";
import { PhoneOutlined, CustomerServiceOutlined, FrownTwoTone, LikeTwoTone } from "@ant-design/icons";
import { useParams, useHref, useNavigate, NavLink } from "react-router-dom";
import { isEmpty, formatColonTime, formatDate, isNotEmpty } from "@/utils/commons";
import { isEmpty, formatColonTime, formatDate, isNotEmpty } from "@haina/utils-commons";
import { DATE_FORMAT } from "@/config";
import dayjs from "dayjs";
import SearchForm from "@/components/SearchForm";

@ -2,7 +2,7 @@ import { useState, useEffect } from 'react';
import { Checkbox, Divider, DatePicker, Modal, Form, Input, Col, Row, Space, Collapse, Table, Button, Select, App, Popconfirm, Switch, Radio, List } from 'antd';
import { PhoneOutlined, FrownTwoTone, LikeTwoTone, ArrowUpOutlined, ArrowDownOutlined, PlusOutlined } from '@ant-design/icons';
import { useParams, useHref, useNavigate, NavLink } from 'react-router-dom';
import { isEmpty, formatColonTime } from '@/utils/commons';
import { isEmpty, formatColonTime } from '@haina/utils-commons';
import { OFFICEWEBVIEWERURL } from '@/config';
import dayjs from 'dayjs';
import airTicketStore from '@/stores/Airticket';

@ -15,7 +15,7 @@ import {
} from "antd";
import dayjs from "dayjs";
import { FileAddOutlined, EditOutlined } from "@ant-design/icons";
import { groupBy, isNotEmpty, isEmpty } from "@/utils/commons";
import { groupBy, isNotEmpty, isEmpty } from "@haina/utils-commons";
import { useTranslation } from "react-i18next";
import useFormStore from "@/stores/Form";
import { usingStorage } from "@/hooks/usingStorage";

@ -2,7 +2,7 @@ import { useParams, useNavigate } from "react-router-dom";
import { useEffect, useState } from "react";
import { Row, Col, Space, Button, Typography, Card, Form, Upload, Input, Divider, DatePicker, Select, App, Descriptions, Image } from "antd";
import { PlusOutlined,AuditOutlined } from "@ant-design/icons";
import { isNotEmpty } from "@/utils/commons";
import { isNotEmpty } from "@haina/utils-commons";
import * as config from "@/config";
import dayjs from "dayjs";
import { fetchInvoiceDetail, postEditInvoiceDetail, postAddInvoice } from "@/stores/Invoice";

@ -1,7 +1,7 @@
import { useParams, NavLink, useNavigate } from "react-router-dom";
import { useEffect, useState } from "react";
import { Row, Col, Space, Table, Image,App } from "antd";
import { formatDate, isNotEmpty } from "@/utils/commons";
import { formatDate, isNotEmpty } from "@haina/utils-commons";
import SearchForm from "@/components/SearchForm";
import dayjs from "dayjs";
import BackBtn from "@/components/BackBtn";

@ -1,6 +1,6 @@
import { NavLink, useNavigate } from "react-router-dom";
import { Row, Col, Space, Button, Table, App, Steps } from "antd";
import { formatDate, isNotEmpty } from "@/utils/commons";
import { formatDate, isNotEmpty } from "@haina/utils-commons";
import { AuditOutlined, SmileOutlined, SolutionOutlined, EditOutlined } from "@ant-design/icons";
import SearchForm from '@/components/SearchForm';
import dayjs from 'dayjs';

@ -1,7 +1,7 @@
import { NavLink, useNavigate } from 'react-router-dom';
import { useEffect } from 'react';
import { Row, Col, Space, Table, Image } from 'antd';
import { formatDate, isNotEmpty } from '@/utils/commons';
import { formatDate, isNotEmpty } from '@haina/utils-commons';
import SearchForm from '@/components/SearchForm';
import dayjs from 'dayjs';
import BackBtn from '@/components/BackBtn';

@ -1,7 +1,7 @@
import { useNavigate, useParams } from 'react-router-dom';
import { useEffect, useState } from 'react';
import { Row, Col, Space, Table, Typography } from 'antd';
import { formatDate, isNotEmpty } from '@/utils/commons';
import { formatDate, isNotEmpty } from '@haina/utils-commons';
import BackBtn from '@/components/BackBtn';
import { fetchInvoicePaidDetail } from '@/stores/Invoice';
import { usingStorage } from '@/hooks/usingStorage';

@ -7,7 +7,7 @@ import useFormStore from "@/stores/Form";
import BackBtn from '@/components/BackBtn';
import { usingStorage } from '@/hooks/usingStorage';
import VendorSelector from '@/components/VendorSelector';
import { isEmpty, objectMapper } from '@/utils/commons';
import { isEmpty, objectMapper } from '@haina/utils-commons';
import Editor from '@/components/Editor';
const { Title, Paragraph } = Typography;

@ -5,7 +5,7 @@ import { useProductsTypes, useProductsAuditStatesMapVal } from '@/hooks/useProdu
import SecondHeaderWrapper from '@/components/SecondHeaderWrapper';
import { useTranslation } from 'react-i18next';
import useProductsStore, { postProductsQuoteAuditAction, } from '@/stores/Products/Index';
import { cloneDeep, groupBy, isEmpty, isNotEmpty } from '@/utils/commons';
import { cloneDeep, groupBy, isEmpty, isNotEmpty } from '@haina/utils-commons';
import useAuthStore from '@/stores/Auth';
import RequireAuth from '@/components/RequireAuth';
import { PERM_PRODUCTS_MANAGEMENT, PERM_PRODUCTS_OFFER_AUDIT, PERM_PRODUCTS_OFFER_PUT } from '@/config';

@ -1,6 +1,6 @@
import { useState } from 'react';
import { App, Divider, Empty, Flex } from 'antd';
import { isEmpty } from '@/utils/commons';
import { isEmpty } from '@haina/utils-commons';
import SecondHeaderWrapper from '@/components/SecondHeaderWrapper';
import Header from './Detail/Header';
import { useParams } from 'react-router-dom';

@ -1,6 +1,6 @@
import { useState, useEffect } from 'react';
import { App, Form, Modal, DatePicker, Divider, Switch, Space, Flex, Radio } from 'antd';
import { isEmpty, objectMapper } from '@/utils/commons';
import { isEmpty, objectMapper } from '@haina/utils-commons';
import { useTranslation } from 'react-i18next';
import DeptSelector from '@/components/DeptSelector';
@ -163,7 +163,7 @@ export const CopyProductsFormModal = ({ source, action = '#' | 'o', open, onSubm
// debug:
// console.log('ready params', param);
// setCopyLoading(false);
// throw new Error('');
// throw new Error('');
// const toID = param.target_agency;
const success = await copyAgencyDataAction({ ...param, source_agency: source.sourceAgency.travel_agency_id }).catch((ex) => {
notification.error({

@ -3,7 +3,7 @@ import { useParams } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { App, Table, Button, Modal, Popconfirm } from 'antd';
import { getAgencyProductExtrasAction, searchPublishedProductsAction, addProductExtraAction, delProductExtrasAction } from '@/stores/Products/Index';
import { cloneDeep, pick } from '@/utils/commons';
import { cloneDeep, pick } from '@haina/utils-commons';
import SearchForm from '@/components/SearchForm';
import RequireAuth from '@/components/RequireAuth';

@ -8,7 +8,7 @@ import useProductsStore, {
postAgencyProductsAuditAction,
postAgencyAuditAction,
} from "@/stores/Products/Index";
import { isEmpty, objectMapper } from "@/utils/commons";
import { isEmpty, objectMapper } from "@haina/utils-commons";
import useAuthStore from "@/stores/Auth";
import RequireAuth from "@/components/RequireAuth";
import { PERM_PRODUCTS_OFFER_AUDIT, PERM_PRODUCTS_OFFER_PUT } from "@/config";

@ -1,6 +1,6 @@
import { useState, useEffect } from 'react';
import { Form, Modal, Input, Button } from 'antd';
import { objectMapper } from '@/utils/commons';
import { objectMapper } from '@haina/utils-commons';
import { useTranslation } from 'react-i18next';
import ProductsTypesSelector from '@/components/ProductsTypesSelector';

@ -5,7 +5,7 @@ import { useProductsTypesMapVal, useNewProductRecord } from '@/hooks/useProducts
import useProductsStore, { postProductsSaveAction } from '@/stores/Products/Index';
import useAuthStore from '@/stores/Auth';
import { PERM_PRODUCTS_MANAGEMENT, PERM_PRODUCTS_OFFER_PUT, PERM_PRODUCTS_INFO_PUT, PERM_PRODUCTS_NEW } from '@/config';
import { isEmpty, objectMapper, pick, unique } from '@/utils/commons';
import { isEmpty, objectMapper, pick, unique } from '@haina/utils-commons';
import ProductInfoForm from './ProductInfoForm';
import { usingStorage } from '@/hooks/usingStorage';
import Extras from './Extras';

@ -1,6 +1,6 @@
import { useEffect, useState } from 'react';
import { App, Form, Input, Row, Col, Select, Button, InputNumber, Checkbox } from 'antd';
import { objectMapper, isEmpty, isNotEmpty, pick } from '@/utils/commons';
import { objectMapper, isEmpty, isNotEmpty, pick } from '@haina/utils-commons';
import { useTranslation } from 'react-i18next';
import { useWeekdays } from '@/hooks/useDatePresets';
import DeptSelector from '@/components/DeptSelector';

@ -4,7 +4,7 @@ import useProductsStore from '@/stores/Products/Index';
import { useHTLanguageSets, useHTLanguageSetsMapVal } from '@/hooks/useHTLanguageSets';
import { useTranslation } from 'react-i18next';
import { useDefaultLgc } from '@/i18n/LanguageSwitcher';
import { cloneDeep, isEmpty, isNotEmpty } from '@/utils/commons';
import { cloneDeep, isEmpty, isNotEmpty } from '@haina/utils-commons';
const ProductInfoLgc = ({ editable, formInstance, pickEditedInfo, ...props }) => {
const { t } = useTranslation('products');

@ -2,9 +2,9 @@ import { useState, useMemo } from 'react';
import { Button, Table, Popover, Typography } from 'antd';
import { useTranslation } from 'react-i18next';
import { HT_HOST } from '@/config';
import { fetchJSON } from '@/utils/request';
import { fetchJSON } from '@haina/utils-request';
import { formatGroupSize } from '@/hooks/useProductsSets';
import { isEmpty, isNotEmpty } from '@/utils/commons';
import { isEmpty, isNotEmpty } from '@haina/utils-commons';
import { usingStorage } from '@/hooks/usingStorage';
/**

@ -2,9 +2,9 @@ import { useState, useMemo } from 'react';
import { Button, Table, Popover, Typography, List, Flex } from 'antd';
import { useTranslation } from 'react-i18next';
import { HT_HOST } from '@/config';
import { fetchJSON } from '@/utils/request';
import { fetchJSON } from '@haina/utils-request';
import { formatGroupSize } from '@/hooks/useProductsSets';
import { isEmpty, isNotEmpty } from '@/utils/commons';
import { isEmpty, isNotEmpty } from '@haina/utils-commons';
import { chunkBy } from '@/hooks/useProductsQuotationFormat';
/**

@ -5,7 +5,7 @@ import { CaretDownOutlined } from '@ant-design/icons';
import { useTranslation } from 'react-i18next';
import useProductsStore from '@/stores/Products/Index';
import { useProductsTypes, useProductsAuditStatesMapVal } from '@/hooks/useProductsSets';
import { groupBy, isEmpty, sortBy } from '@/utils/commons';
import { groupBy, isEmpty, sortBy } from '@haina/utils-commons';
import NewProductModal from './NewProductModal';
import ContractRemarksModal from './ContractRemarksModal'

@ -8,7 +8,7 @@ import { useTranslation } from 'react-i18next';
import useProductsStore, { copyAgencyDataAction } from '@/stores/Products/Index';
import { useProductsTypes, useProductsAuditStatesMapVal } from '@/hooks/useProductsSets';
import useFormStore from '@/stores/Form';
import { objectMapper } from '@/utils/commons';
import { objectMapper } from '@haina/utils-commons';
import CopyProductsFormModal from './Detail/CopyProducts';
import useAuthStore from '@/stores/Auth';
import RequireAuth from '@/components/RequireAuth';

@ -1,4 +1,4 @@
import { isEmpty } from '@/utils/commons'
import { isEmpty } from '@haina/utils-commons'
import dayjs from 'dayjs'
import {
AlignmentType,

@ -22,7 +22,7 @@ import {
PositionalTabLeader,
} from 'docx';
import dayjs from 'dayjs';
import { cloneDeep, flush, groupBy, isEmpty, isNotEmpty, sortBy, unique, uniqWith } from '@/utils/commons';
import { cloneDeep, flush, groupBy, isEmpty, isNotEmpty, sortBy, unique, uniqWith } from '@haina/utils-commons';
// Shoulder Season ; peak season
const isFullYearOrLonger = (year, startDate, endDate) => {

@ -22,7 +22,7 @@ import {
PositionalTabLeader,
} from 'docx';
import dayjs from 'dayjs';
import { cloneDeep, groupBy, isEmpty, isNotEmpty, sortBy, unique, uniqWith } from '@/utils/commons';
import { cloneDeep, groupBy, isEmpty, isNotEmpty, sortBy, unique, uniqWith } from '@haina/utils-commons';
// Shoulder Season ; peak season
const isFullYearOrLonger = (year, startDate, endDate) => {

@ -5,7 +5,7 @@ import { useTranslation } from 'react-i18next';
import useProductsStore, { getAgencyAllExtrasAction } from '@/stores/Products/Index';
import { useProductsTypes, formatGroupSize, useProductsTypesMapVal } from '@/hooks/useProductsSets';
import { chunkBy, splitTable_6, splitTable_7, splitTable_8, splitTable_B, splitTable_D, splitTable_J, splitTable_Q, splitTable_R } from '@/hooks/useProductsQuotationFormat';
import { groupBy, isNotEmpty } from '@/utils/commons';
import { groupBy, isNotEmpty } from '@haina/utils-commons';
import useAuthStore from '@/stores/Auth';
import { PERM_PRODUCTS_MANAGEMENT, PERM_PRODUCTS_OFFER_AUDIT, PERM_PRODUCTS_OFFER_PUT } from '@/config';
import ExportDocxBtn from './ExportDocxBtn';

@ -9,7 +9,7 @@ import dayjs from 'dayjs';
import AgencyContract from '../Print/AgencyContract';
import { saveAs } from 'file-saver';
import { Packer } from 'docx';
import { isEmpty } from '@/utils/commons';
import { isEmpty } from '@haina/utils-commons';
const ExportDocxBtn = ({ params = { travel_agency_id: '', use_year: '', audit_state: '' }, ...props }) => {
const { t } = useTranslation();

@ -1,5 +1,5 @@
import { Row, Col, Space, Button, Table, Divider, Typography, } from 'antd';
import * as comm from '@/utils/commons';
import * as comm from '@haina/utils-commons';
import { usePDF } from 'react-to-pdf';
import dayjs from 'dayjs';
import SearchForm from '@/components/SearchForm';

@ -2,7 +2,7 @@ import { NavLink } from 'react-router-dom'
import { useState, useEffect } from 'react'
import { Row, Col, Space, Button, Table, Typography, Modal, App, Select } from 'antd'
import dayjs from 'dayjs'
import { groupBy, isEmpty } from '@/utils/commons'
import { groupBy, isEmpty } from '@haina/utils-commons'
import { useTranslation } from 'react-i18next'
import useFormStore from '@/stores/Form'
import useReservationStore from '@/stores/Reservation'

@ -2,7 +2,7 @@ import { useState, useEffect } from "react";
import { Grid, Divider, Layout, Spin, Input, Col, Row, Space, List, Table, Button, Typography } from "antd";
import { PhoneOutlined, CustomerServiceOutlined, AudioOutlined, AuditOutlined } from "@ant-design/icons";
import { useParams, useHref, useNavigate, NavLink } from "react-router-dom";
import { isEmpty, formatColonTime } from "@/utils/commons";
import { isEmpty, formatColonTime } from "@haina/utils-commons";
import dayjs from "dayjs";
import SearchForm from "@/components/SearchForm";
import { DATE_FORMAT } from "@/config";

@ -2,7 +2,7 @@ import { useState, useEffect } from "react";
import { Grid, Divider, Layout, Steps, Statistic, Col, Row, Space, Checkbox, Table, Button, App, Typography } from "antd";
import { PhoneOutlined, CustomerServiceOutlined, FrownTwoTone, LikeTwoTone } from "@ant-design/icons";
import { useParams, useHref, useNavigate, NavLink } from "react-router-dom";
import { isEmpty, formatColonTime } from "@/utils/commons";
import { isEmpty, formatColonTime } from "@haina/utils-commons";
import dayjs from "dayjs";
import SearchForm from "@/components/SearchForm";
import BackBtn from "@/components/BackBtn";

@ -2,7 +2,7 @@ import { useState, useEffect } from "react";
import { Grid, Divider, Layout, Spin, Input, Col, Row, Space, Checkbox, Table, Button, App } from "antd";
import { PhoneOutlined, CustomerServiceOutlined, FrownTwoTone, LikeTwoTone } from "@ant-design/icons";
import { useParams, useHref, useNavigate, NavLink } from "react-router-dom";
import { isEmpty, formatColonTime, formatDate, isNotEmpty } from "@/utils/commons";
import { isEmpty, formatColonTime, formatDate, isNotEmpty } from "@haina/utils-commons";
import { DATE_FORMAT } from "@/config";
import dayjs from "dayjs";
import SearchForm from "@/components/SearchForm";

@ -2,7 +2,7 @@ import { useState, useEffect } from "react";
import { Checkbox, Divider, DatePicker, Modal, Form, Input, Col, Row, Space, Collapse, Table, Button, Select, App, Popconfirm, Switch, Radio, List } from "antd";
import { PhoneOutlined, FrownTwoTone, LikeTwoTone, ArrowUpOutlined, ArrowDownOutlined, PlusOutlined } from "@ant-design/icons";
import { useParams, useHref, useNavigate, NavLink } from "react-router-dom";
import { isEmpty, formatColonTime } from "@/utils/commons";
import { isEmpty, formatColonTime } from "@haina/utils-commons";
import { OFFICEWEBVIEWERURL } from "@/config";
import dayjs from "dayjs";
import trainTicketStore from "@/stores/Trainticket";

Loading…
Cancel
Save