diff --git a/src/App.jsx b/src/App.jsx
index 4db3f01..1c4bec5 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -55,6 +55,8 @@ import CooperationIcon from './components/icons/CooperationIcon';
import OPDashboard from './views/OPDashboard';
import OPActivity from './views/OPActivity';
import OPRisk from './views/OPRisk';
+import Cruise from './views/Cruise';
+import Hotel from './views/Hotel';
const App = () => {
const { Content, Footer, Sider, } = Layout;
@@ -158,6 +160,8 @@ const App = () => {
key: 62,
label: 目的地接团,
},
+ { key: 'cruise', label: 三峡游船 },
+ { key: 'hotel', label: 酒店 },
],
},
{
@@ -259,7 +263,9 @@ const App = () => {
} />
} />
} />
-
+ } />
+ } />
+
}>
} />
} />
diff --git a/src/components/search/HotelStarSelect.jsx b/src/components/search/HotelStarSelect.jsx
new file mode 100644
index 0000000..8796dd0
--- /dev/null
+++ b/src/components/search/HotelStarSelect.jsx
@@ -0,0 +1,40 @@
+import React from 'react';
+import { Select } from 'antd';
+import { observer } from 'mobx-react';
+import { HotelStars as options } from '../../libs/ht';
+
+const HotelStars = (props) => {
+ const { mode, value, onChange, show_all, ...extProps } = props;
+ const _show_all = ['tags', 'multiple'].includes(mode) ? false : show_all;
+ return (
+
+
+
+ );
+};
+/**
+ * 酒店星级
+ */
+export default observer(HotelStars);
diff --git a/src/components/search/SearchForm.jsx b/src/components/search/SearchForm.jsx
index cb93e7f..59b58b5 100644
--- a/src/components/search/SearchForm.jsx
+++ b/src/components/search/SearchForm.jsx
@@ -3,7 +3,7 @@ import { toJS } from 'mobx';
import { observer } from 'mobx-react';
import { DATE_FORMAT, SMALL_DATETIME_FORMAT, stores_Context } from './../../config';
import { SearchOutlined } from '@ant-design/icons';
-import { Form, Row, Col, Select, Button, Space, DatePicker } from 'antd';
+import { Form, Row, Col, Select, Button, Space, DatePicker, Input } from 'antd';
import moment from 'moment';
// import locale from 'antd/es/date-picker/locale/zh_CN';
import BusinessSelect from './BusinessSelect';
@@ -17,6 +17,7 @@ import SearchInput from './Input';
import { objectMapper, at, empty, isEmpty } from './../../utils/commons';
import './search.css';
+import HotelStarSelect from './HotelStarSelect';
const EditableContext = createContext();
const Option = Select.Option;
@@ -263,6 +264,14 @@ function getFields(props) {
};
let baseChildren = [];
baseChildren = [
+ item(
+ "keyword", // 关键词搜索 {...fieldComProps.keyword}
+ 99,
+
+
+ ,
+ fieldProps?.keyword?.col || 6
+ ),
item(
'agency',
99,
@@ -456,6 +465,73 @@ function getFields(props) {
),
+ item(
+ 'cruiseType',
+ 99,
+
+
+ ,
+ 3
+ ),
+ item(
+ 'bookType',
+ 99,
+
+
+ ,
+ 3
+ ),
+ item(
+ 'recommandRate',
+ 99,
+
+
+ ,
+ 3
+ ),
+ item(
+ 'hotelStar',
+ 99,
+
+
+
+ ),
];
baseChildren = baseChildren
.map((x) => {
diff --git a/src/libs/ht.js b/src/libs/ht.js
index 5f878c5..a1fa130 100644
--- a/src/libs/ht.js
+++ b/src/libs/ht.js
@@ -178,6 +178,22 @@ export const KPISubjects = [
// { key: 'sum_person_num', value: 'sum_person_num', label: '人数' },
];
+export const HotelStars = [
+ { key: '5', value: '5', label: '5星' },
+ { key: '4', value: '4', label: '4星' },
+ { key: '3', value: '3', label: '3星' },
+ { key: '2', value: '2', label: '2星' },
+ { key: 'intl', value: 'intl', label: '国际社' },
+ { key: 'internal', value: 'internal', label: '国内社' },
+ { key: 'other', value: 'other', label: '其它' },
+ { key: 'f5', value: 'f5', label: '准5星' },
+ { key: 'f4', value: 'f4', label: '准4星' },
+ { key: 'inn', value: 'inn', label: '客栈' },
+ { key: 'apartment', value: 'apartment', label: '公寓' },
+ { key: 'siheyuan', value: 'siheyuan', label: '四合院酒店' },
+ { key: 'luxury5', value: 'luxury5', label: '豪华五星' },
+];
+
/**
* 计算指标值的分段区间
* @param {number} value
diff --git a/src/stores/CustomerServices.js b/src/stores/CustomerServices.js
index 141a7f4..e7ed2d4 100644
--- a/src/stores/CustomerServices.js
+++ b/src/stores/CustomerServices.js
@@ -459,6 +459,7 @@ class CustomerServices {
searchValues = {
DateType: { key: 'startDate', label: '走团日期'},
+ countryArea: { key: 'china', label: '国内' },
};
setSearchValues(obj, values) {
diff --git a/src/views/Cruise.jsx b/src/views/Cruise.jsx
new file mode 100644
index 0000000..ab189fd
--- /dev/null
+++ b/src/views/Cruise.jsx
@@ -0,0 +1,59 @@
+import React, { Children, useContext, useState } from 'react';
+import { observer } from 'mobx-react';
+import { stores_Context } from '../config';
+import moment from 'moment';
+import { Row, Col, Table, Select, Space, Typography, Progress, Spin, Divider, Button, Switch } from 'antd';
+import SearchForm from './../components/search/SearchForm';
+
+export default observer((props) => {
+ const { sale_store, date_picker_store: searchFormStore } = useContext(stores_Context);
+ const { customerServicesStore, date_picker_store } = useContext(stores_Context);
+
+ const { formValues, siderBroken } = searchFormStore;
+
+ const tableProps = {
+ size: 'small',
+ columns: [
+ { title: '产品', dataIndex: 'op', key: 'op' },
+ { title: '房间数', dataIndex: 'action', key: 'action' },
+ { title: '人数', dataIndex: 'action', key: 'action' },
+ { title: '总利润', dataIndex: 'action', key: 'action' },
+ { title: '单订船', dataIndex: 'action', key: 'action' },
+ { title: '订单含行程', dataIndex: 'action', key: 'action' },
+ { title: '国籍', dataIndex: 'action', key: 'action' },
+ ],
+ };
+
+ return (
+ <>
+
+
+ {
+ customerServicesStore.setSearchValues(obj, form);
+ // customerServicesStore.fetchDestinationGroupCount();
+ }}
+ />
+
+
+
+ >
+ );
+});
diff --git a/src/views/Hotel.jsx b/src/views/Hotel.jsx
new file mode 100644
index 0000000..8ad1902
--- /dev/null
+++ b/src/views/Hotel.jsx
@@ -0,0 +1,55 @@
+import React, { useContext } from 'react';
+import { observer } from 'mobx-react';
+import { stores_Context } from '../config';
+import { Row, Col, Table } from 'antd';
+import SearchForm from './../components/search/SearchForm';
+
+export default observer((props) => {
+ const { sale_store, date_picker_store: searchFormStore } = useContext(stores_Context);
+ const { customerServicesStore, date_picker_store } = useContext(stores_Context);
+
+ const { formValues, siderBroken } = searchFormStore;
+
+ const tableProps = {
+ size: 'small',
+ columns: [
+ { title: '目的地', dataIndex: 'op', key: 'op' },
+ { title: '总间夜', dataIndex: 'action', key: 'action' },
+ { title: '主推', dataIndex: 'action', key: 'action' },
+ { title: '使用比例', dataIndex: 'action', key: 'action' },
+ ],
+ };
+
+ return (
+ <>
+
+
+ {
+ customerServicesStore.setSearchValues(obj, form);
+ // customerServicesStore.fetchDestinationGroupCount();
+ }}
+ />
+
+
+
+ >
+ );
+});