From 7c00c9167e79e42a75562c731a7b15fb67dd6bfb Mon Sep 17 00:00:00 2001 From: Lei OT Date: Fri, 9 Jan 2026 15:48:40 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=20`urils/commons`=20-->=20`@haina/?= =?UTF-8?q?utils-commons`,=20`@haina/utils-request`=20=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 36 +++++++------- package.json | 6 +-- src/charts/Customer_care_regular_pivot.jsx | 2 +- src/charts/ExchangeRate.jsx | 4 +- src/components/BulletWithSort.jsx | 2 +- src/components/Column.jsx | 2 +- src/components/DateGroupRadio/date.js | 2 +- src/components/Donut.jsx | 2 +- src/components/LineWithAvg.jsx | 14 +++--- src/components/LineWithKPI.jsx | 2 +- src/components/MapCountry.jsx | 2 +- src/components/MixFieldsDetail.jsx | 2 +- src/components/MixTBWithKPI.jsx | 2 +- src/components/MixYnQ.jsx | 2 +- src/components/Pareto.jsx | 2 +- src/components/Scatter.jsx | 2 +- src/components/Waterfall.jsx | 2 +- src/components/kpi/KPISettings.jsx | 2 +- src/components/kpi/OverviewPanel.jsx | 2 +- src/components/kpi/SubjectTable/Count.jsx | 2 +- src/components/kpi/SubjectTable/Profit.jsx | 2 +- src/components/kpi/SubjectTable/Rates.jsx | 2 +- src/components/search/Input.jsx | 4 +- src/components/search/SearchForm.jsx | 16 +++--- src/libs/ht.js | 2 +- src/stores/CustomerServices.js | 5 +- src/stores/CustomerStore.js | 7 +-- src/stores/DataPivot.js | 9 ++-- src/stores/DictData.js | 15 +++--- src/stores/Distribution.js | 26 +++++----- src/stores/FinancialStore.js | 14 +++--- src/stores/HotelCruise.js | 10 ++-- src/stores/KPI.js | 11 +++-- src/stores/MeetingData2024.js | 14 +++--- src/stores/MeetingData2025.js | 14 +++--- src/stores/OrdersStore.js | 6 +-- src/stores/SaleStore.js | 41 ++++++++-------- src/stores/SalesCRMData.js | 12 ++--- src/stores/Trade.js | 10 ++-- src/stores/Wechat.js | 10 ++-- src/stores/WhatsApp.js | 10 ++-- src/views/Credit_card_bill.jsx | 23 ++++----- src/views/DataPivot.jsx | 2 +- src/views/Detail.jsx | 4 +- src/views/Distribution.jsx | 4 +- src/views/Home.jsx | 2 +- src/views/HostCaseCount.jsx | 4 +- src/views/KPI.jsx | 2 +- src/views/Meeting2024-GH.jsx | 2 +- src/views/Meeting2025-GH.jsx | 2 +- src/views/Orders.jsx | 57 +++++++++++----------- src/views/Orders_sub.jsx | 6 +-- src/views/Sale.jsx | 4 +- src/views/Sale_KPI.jsx | 2 +- src/views/Sale_sub.jsx | 6 +-- src/views/ServicePersonNum.jsx | 4 +- src/views/biz/BizOrder.jsx | 27 +++++----- src/views/biz/BizOrderSub.jsx | 4 +- src/views/biz/reports/TrainsUpsell.jsx | 23 ++++----- src/views/sales-crm/Dashboard.jsx | 2 +- src/views/sales-crm/Process.jsx | 2 +- src/views/sales-crm/Risk.jsx | 2 +- 62 files changed, 263 insertions(+), 253 deletions(-) diff --git a/package-lock.json b/package-lock.json index 31d28f8..27fe9d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,9 +10,9 @@ "dependencies": { "@ant-design/charts": "^1.4.2", "@ant-design/pro-components": "^2.6.16", - "@haina/utils-commons": "https://research.hainatravel.com/npm/utils-commons-0.1.1.tgz", - "@haina/utils-pagespy": "https://research.hainatravel.com/npm/utils-pagespy-0.1.1.tgz", - "@haina/utils-request": "https://research.hainatravel.com/npm/utils-request-0.1.1.tgz", + "@haina/utils-commons": "https://research.hainatravel.com/npm/utils-commons-0.1.2.tgz", + "@haina/utils-pagespy": "https://research.hainatravel.com/npm/utils-pagespy-0.1.2.tgz", + "@haina/utils-request": "https://research.hainatravel.com/npm/utils-request-0.1.2.tgz", "antd": "^4.22.6", "dingtalk-jsapi": "^3.0.9", "docx": "^9.5.1", @@ -3847,21 +3847,21 @@ } }, "node_modules/@haina/utils-commons": { - "version": "0.1.1", - "resolved": "https://research.hainatravel.com/npm/utils-commons-0.1.1.tgz", - "integrity": "sha512-I3Ll5iNLtrnOCzs0IB3OXGQa0l75aQT740NKCUFwR1DHRx9vjeoqestS/PamZN1fuiodxWHkOao3JXOPRwSSfw==", + "version": "0.1.2", + "resolved": "https://research.hainatravel.com/npm/utils-commons-0.1.2.tgz", + "integrity": "sha512-7BhbQ6aLTzhLm7lHyswVj4Jl2FGfj9/W5xQiLYcEkzZGdQViXa7ILxVHPFLKPeAD4LdcWJBpeS3fOQ/Z3XHwdg==", "hasInstallScript": true }, "node_modules/@haina/utils-pagespy": { - "version": "0.1.1", - "resolved": "https://research.hainatravel.com/npm/utils-pagespy-0.1.1.tgz", - "integrity": "sha512-aMyp8QPDM1URGOn0Bw1z1zUM7MDUDuHiPT8U5Zmusb6EIka+7XVmunQGy7HMPSgrfByD5DlNFkF/l5ej45PRtA==", + "version": "0.1.2", + "resolved": "https://research.hainatravel.com/npm/utils-pagespy-0.1.2.tgz", + "integrity": "sha512-0kpGUgIiKWnyJjVw/ZzE8cLRc36p/vuHTcDrgyi41VLexRTX1NrdJgh5wUYpC/TMqWpIx+OYutPITTuG6z0YOQ==", "hasInstallScript": true }, "node_modules/@haina/utils-request": { - "version": "0.1.1", - "resolved": "https://research.hainatravel.com/npm/utils-request-0.1.1.tgz", - "integrity": "sha512-p+0ApwEf+lcSOr7tS9kdgZmW+vZc0Gol6+8IejNv/qfMk6cmuBJYn5khvcSR1mblBPMag+464YpoBI32R9OMDQ==", + "version": "0.1.2", + "resolved": "https://research.hainatravel.com/npm/utils-request-0.1.2.tgz", + "integrity": "sha512-TnaqEMT/WrIGVFxEH0x0qxjwnIuvNoDOJrw/vACYdpSsdx1TjFwOPjh0bLaiBn41tvVGWK8QDUwQqfB9pFFxOg==", "hasInstallScript": true }, "node_modules/@humanwhocodes/config-array": { @@ -24413,16 +24413,16 @@ "integrity": "sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==" }, "@haina/utils-commons": { - "version": "https://research.hainatravel.com/npm/utils-commons-0.1.1.tgz", - "integrity": "sha512-I3Ll5iNLtrnOCzs0IB3OXGQa0l75aQT740NKCUFwR1DHRx9vjeoqestS/PamZN1fuiodxWHkOao3JXOPRwSSfw==" + "version": "https://research.hainatravel.com/npm/utils-commons-0.1.2.tgz", + "integrity": "sha512-7BhbQ6aLTzhLm7lHyswVj4Jl2FGfj9/W5xQiLYcEkzZGdQViXa7ILxVHPFLKPeAD4LdcWJBpeS3fOQ/Z3XHwdg==" }, "@haina/utils-pagespy": { - "version": "https://research.hainatravel.com/npm/utils-pagespy-0.1.1.tgz", - "integrity": "sha512-aMyp8QPDM1URGOn0Bw1z1zUM7MDUDuHiPT8U5Zmusb6EIka+7XVmunQGy7HMPSgrfByD5DlNFkF/l5ej45PRtA==" + "version": "https://research.hainatravel.com/npm/utils-pagespy-0.1.2.tgz", + "integrity": "sha512-0kpGUgIiKWnyJjVw/ZzE8cLRc36p/vuHTcDrgyi41VLexRTX1NrdJgh5wUYpC/TMqWpIx+OYutPITTuG6z0YOQ==" }, "@haina/utils-request": { - "version": "https://research.hainatravel.com/npm/utils-request-0.1.1.tgz", - "integrity": "sha512-p+0ApwEf+lcSOr7tS9kdgZmW+vZc0Gol6+8IejNv/qfMk6cmuBJYn5khvcSR1mblBPMag+464YpoBI32R9OMDQ==" + "version": "https://research.hainatravel.com/npm/utils-request-0.1.2.tgz", + "integrity": "sha512-TnaqEMT/WrIGVFxEH0x0qxjwnIuvNoDOJrw/vACYdpSsdx1TjFwOPjh0bLaiBn41tvVGWK8QDUwQqfB9pFFxOg==" }, "@humanwhocodes/config-array": { "version": "0.11.10", diff --git a/package.json b/package.json index 7493481..e30ac06 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,9 @@ "dependencies": { "@ant-design/charts": "^1.4.2", "@ant-design/pro-components": "^2.6.16", - "@haina/utils-commons": "https://research.hainatravel.com/npm/utils-commons-0.1.1.tgz", - "@haina/utils-pagespy": "https://research.hainatravel.com/npm/utils-pagespy-0.1.1.tgz", - "@haina/utils-request": "https://research.hainatravel.com/npm/utils-request-0.1.1.tgz", + "@haina/utils-commons": "https://research.hainatravel.com/npm/utils-commons-0.1.2.tgz", + "@haina/utils-pagespy": "https://research.hainatravel.com/npm/utils-pagespy-0.1.2.tgz", + "@haina/utils-request": "https://research.hainatravel.com/npm/utils-request-0.1.2.tgz", "antd": "^4.22.6", "dingtalk-jsapi": "^3.0.9", "docx": "^9.5.1", diff --git a/src/charts/Customer_care_regular_pivot.jsx b/src/charts/Customer_care_regular_pivot.jsx index d274c9a..62aebe2 100644 --- a/src/charts/Customer_care_regular_pivot.jsx +++ b/src/charts/Customer_care_regular_pivot.jsx @@ -4,7 +4,7 @@ import { stores_Context } from '../config'; import { Table, Row, Col, Divider, Switch, Space, Tabs } from 'antd'; import SearchForm from '../components/search/SearchForm'; import { TableExportBtn, VSTag } from '../components/Data'; -import { fixTo2Decimals, isEmpty } from '../utils/commons'; +import { fixTo2Decimals, isEmpty } from '@haina/utils-commons'; // 注意TdCell要提到DataTable作用域外声明 const TdCell = (tdprops) => { diff --git a/src/charts/ExchangeRate.jsx b/src/charts/ExchangeRate.jsx index 005cc0a..e9bccda 100644 --- a/src/charts/ExchangeRate.jsx +++ b/src/charts/ExchangeRate.jsx @@ -5,7 +5,7 @@ import GroupSelect from "../components/search/GroupSelect"; import DatePickerCharts from "../components/search/DatePickerCharts"; import { stores_Context } from "../config"; import { observer } from "mobx-react"; -import * as comm from "../utils/commons"; +import { emptyValue } from "@haina/utils-commons"; import { Line } from "@ant-design/charts"; import * as config from "../config"; @@ -19,7 +19,7 @@ class ExchangeRate extends Component { render() { const { dashboard_store, date_picker_store } = this.context; const { exchangeRate_data } = dashboard_store; - const line_data_source = comm.empty(exchangeRate_data.data) ? [] : exchangeRate_data.data.CurrencyData1; + const line_data_source = emptyValue(exchangeRate_data.data) ? [] : exchangeRate_data.data.CurrencyData1; const line_config = { data: line_data_source, padding: "auto", diff --git a/src/components/BulletWithSort.jsx b/src/components/BulletWithSort.jsx index 883cdac..8d1fc90 100644 --- a/src/components/BulletWithSort.jsx +++ b/src/components/BulletWithSort.jsx @@ -1,7 +1,7 @@ import { useEffect, useState } from 'react'; import { observer } from 'mobx-react'; import { Bullet } from '@ant-design/plots'; -import { sortBy, merge, isEmpty } from '../utils/commons'; +import { sortBy, merge, isEmpty } from '@haina/utils-commons'; import { dataFieldAlias } from '../libs/ht'; export default observer((props) => { diff --git a/src/components/Column.jsx b/src/components/Column.jsx index d5a8e40..91a9ef7 100644 --- a/src/components/Column.jsx +++ b/src/components/Column.jsx @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react'; import { observer } from 'mobx-react'; -import { sortBy, merge } from '../utils/commons'; +import { sortBy, merge } from '@haina/utils-commons'; import { dataFieldAlias } from '../libs/ht'; import { Column } from '@ant-design/plots'; diff --git a/src/components/DateGroupRadio/date.js b/src/components/DateGroupRadio/date.js index 813d575..69eeeae 100644 --- a/src/components/DateGroupRadio/date.js +++ b/src/components/DateGroupRadio/date.js @@ -1,5 +1,5 @@ import moment from 'moment'; -import { fixTo2Decimals, groupBy, isEmpty, sortBy } from '../../utils/commons'; +import { fixTo2Decimals, groupBy, isEmpty, sortBy } from '@haina/utils-commons'; export const datePartOptions = [ { label: '日', value: 'day' }, diff --git a/src/components/Donut.jsx b/src/components/Donut.jsx index e7e5f2f..26f20b8 100644 --- a/src/components/Donut.jsx +++ b/src/components/Donut.jsx @@ -1,6 +1,6 @@ import { observer } from 'mobx-react'; import { Pie, measureTextWidth } from '@ant-design/plots'; -import { fixTo2Decimals, merge } from '../utils/commons'; +import { fixTo2Decimals, merge } from '@haina/utils-commons'; import { dataFieldAlias } from './../libs/ht'; export default observer((props) => { diff --git a/src/components/LineWithAvg.jsx b/src/components/LineWithAvg.jsx index f4e0432..9150b92 100644 --- a/src/components/LineWithAvg.jsx +++ b/src/components/LineWithAvg.jsx @@ -4,10 +4,10 @@ import { Line } from '@ant-design/plots'; import { observer } from 'mobx-react'; import { dataFieldAlias } from '../libs/ht'; import DateGroupRadio from '../components/DateGroupRadio'; -import { cloneDeep, groupBy, sortBy } from '../utils/commons'; +import { cloneDeep, groupBy, sortBy } from '@haina/utils-commons'; export default observer((props) => { - const { dataSource: rawData, showAVG, showCompareSum, loading, solidLineTime, + const { dataSource: rawData, showAVG, showCompareSum, loading, solidLineTime, solidLineDash, isCompareLine,solidLineCompareTime, ...config } = props; const { xField, yField, yFieldAlias, seriesField } = config; @@ -105,7 +105,7 @@ export default observer((props) => { setLineConfig({ ...lineConfig, yField, xField,}); if (showCompareSum) { const _sumLine = Object.keys(byDays).reduce((r, _d) => { - const summaryVal = byDays[_d].reduce((rows, row) => + const summaryVal = byDays[_d].reduce((rows, row) => { if (row[seriesField].includes(solidLineTime)){ return rows + row[yField]; @@ -115,7 +115,7 @@ export default observer((props) => { } } , 0); - const summaryCompareVal = byDays[_d].reduce((rows, row) => + const summaryCompareVal = byDays[_d].reduce((rows, row) => { if (row[seriesField].includes(solidLineCompareTime)){ return rows + row[yField]; @@ -153,7 +153,7 @@ export default observer((props) => { // console.log(groupByDate); const _data = Object.keys(groupByDate).reduce((r, _d) => { if (showCompareSum) { - const summaryVal = groupByDate[_d].reduce((rows, row) => + const summaryVal = groupByDate[_d].reduce((rows, row) => { if (row[seriesField].includes(solidLineTime)){ return rows + row[yField]; @@ -163,7 +163,7 @@ export default observer((props) => { } } , 0); - const summaryCompareVal = groupByDate[_d].reduce((rows, row) => + const summaryCompareVal = groupByDate[_d].reduce((rows, row) => { if (row[seriesField].includes(solidLineCompareTime)){ return rows + row[yField]; @@ -180,7 +180,7 @@ export default observer((props) => { const summaryVal = groupByDate[_d].reduce((rows, row) => rows + row[yField], 0); _sumLine.push({ ...groupByDate[_d][0], [yField]: summaryVal, [seriesField]: '总计' }); } - + const xAxisGroup = groupByDate[_d].reduce((a, v) => { (a[v[seriesField]] || (a[v[seriesField]] = [])).push(v); diff --git a/src/components/LineWithKPI.jsx b/src/components/LineWithKPI.jsx index 0ef90af..632d0c3 100644 --- a/src/components/LineWithKPI.jsx +++ b/src/components/LineWithKPI.jsx @@ -1,6 +1,6 @@ import { observer } from 'mobx-react'; import { Line } from '@ant-design/plots'; -import { merge, isEmpty, groupBy, sortBy } from '../utils/commons'; +import { merge, isEmpty, groupBy, sortBy } from '@haina/utils-commons'; import { dataFieldAlias } from '../libs/ht'; export default observer((props) => { diff --git a/src/components/MapCountry.jsx b/src/components/MapCountry.jsx index ab44db3..5e2870e 100644 --- a/src/components/MapCountry.jsx +++ b/src/components/MapCountry.jsx @@ -2,7 +2,7 @@ import { useContext, useState, useEffect, useMemo } from 'react'; import { observer } from 'mobx-react'; import { ChoroplethMap } from '@ant-design/maps'; import { dataFieldAlias } from '../libs/ht'; -import { cloneDeep } from '../utils/commons'; +import { cloneDeep } from '@haina/utils-commons'; export default observer((props) => { const { dataSource, sourceField, valueField, containerNode, ...extConfig } = props; diff --git a/src/components/MixFieldsDetail.jsx b/src/components/MixFieldsDetail.jsx index d0e3f88..48ba5ef 100644 --- a/src/components/MixFieldsDetail.jsx +++ b/src/components/MixFieldsDetail.jsx @@ -1,7 +1,7 @@ import { observer } from 'mobx-react'; import { message } from 'antd'; import { Mix, getCanvasPattern, } from '@ant-design/plots'; -import { merge, isEmpty, cloneDeep } from '../utils/commons'; +import { merge, isEmpty, cloneDeep } from '@haina/utils-commons'; import { dataFieldAlias } from '../libs/ht'; const COLOR_SETS = [ diff --git a/src/components/MixTBWithKPI.jsx b/src/components/MixTBWithKPI.jsx index 1737a57..80ca611 100644 --- a/src/components/MixTBWithKPI.jsx +++ b/src/components/MixTBWithKPI.jsx @@ -1,6 +1,6 @@ import { observer } from 'mobx-react'; import { Mix } from '@ant-design/plots'; -import { merge, isEmpty, groupBy, cloneDeep } from '../utils/commons'; +import { merge, isEmpty, groupBy, cloneDeep } from '@haina/utils-commons'; import { dataFieldAlias } from '../libs/ht'; export default observer((props) => { diff --git a/src/components/MixYnQ.jsx b/src/components/MixYnQ.jsx index 26c456c..fa2c4fe 100644 --- a/src/components/MixYnQ.jsx +++ b/src/components/MixYnQ.jsx @@ -1,6 +1,6 @@ import { observer } from 'mobx-react'; import { Mix, getCanvasPattern } from '@ant-design/plots'; -import { merge, isEmpty, cloneDeep } from '../utils/commons'; +import { merge, isEmpty, cloneDeep } from '@haina/utils-commons'; import { dataFieldAlias } from '../libs/ht'; const COLOR_SETS = [ diff --git a/src/components/Pareto.jsx b/src/components/Pareto.jsx index 0545e6f..febd65b 100644 --- a/src/components/Pareto.jsx +++ b/src/components/Pareto.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { DualAxes } from '@ant-design/charts'; -import { fixTo2Decimals, fixTo4Decimals, fixTo1Decimals, groupBy } from '../utils/commons'; +import { fixTo2Decimals, fixTo4Decimals, fixTo1Decimals, groupBy } from '@haina/utils-commons'; const ParetoChart = ({ data, xField, yField, thresholds = { A: 80, B: 90 }, title = '帕累托分析', showCategory = true, showThresholds = true, yFieldAlias }) => { // 1. 数据清洗 diff --git a/src/components/Scatter.jsx b/src/components/Scatter.jsx index 3ef84a2..9ef385a 100644 --- a/src/components/Scatter.jsx +++ b/src/components/Scatter.jsx @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react'; import { observer } from 'mobx-react'; -import { sortBy, merge } from '../utils/commons'; +import { sortBy, merge } from '@haina/utils-commons'; import { dataFieldAlias } from '../libs/ht'; import { Mix, Scatter } from '@ant-design/plots'; diff --git a/src/components/Waterfall.jsx b/src/components/Waterfall.jsx index 9e55075..6c48e10 100644 --- a/src/components/Waterfall.jsx +++ b/src/components/Waterfall.jsx @@ -1,7 +1,7 @@ import { observer } from 'mobx-react'; import { Waterfall } from '@ant-design/plots'; import { dataFieldAlias } from './../libs/ht'; -import { fixTo4Decimals, merge } from '../utils/commons'; +import { fixTo4Decimals, merge } from '@haina/utils-commons'; export default observer((props) => { const { dataSource, line, title, ...extProps } = props; diff --git a/src/components/kpi/KPISettings.jsx b/src/components/kpi/KPISettings.jsx index 1fa48d1..5a23767 100644 --- a/src/components/kpi/KPISettings.jsx +++ b/src/components/kpi/KPISettings.jsx @@ -4,7 +4,7 @@ import { stores_Context } from './../../config'; import { Typography, Row, Col, Tabs, } from 'antd'; import SearchForm from './../search/SearchForm'; import { KPIObjects } from './../../libs/ht'; -import { merge, pick } from './../../utils/commons'; +import { merge, pick } from '@haina/utils-commons'; import ProfitTable from './SubjectTable/Profit'; import Count from './SubjectTable/Count'; import Rates from './SubjectTable/Rates'; diff --git a/src/components/kpi/OverviewPanel.jsx b/src/components/kpi/OverviewPanel.jsx index ff41007..10be00f 100644 --- a/src/components/kpi/OverviewPanel.jsx +++ b/src/components/kpi/OverviewPanel.jsx @@ -7,7 +7,7 @@ import { Button, Table, Switch, Input, Space, Typography, Row, Col, Spin, Radio, import { EditableProTable, ProCard, ProFormField } from '@ant-design/pro-components'; import SearchForm from './../search/SearchForm'; import { bu } from './../../libs/ht'; -import { isEmpty, objectMapper, fixToInt, fixTo2Decimals, fixTo4Decimals, cloneDeep, numberFormatter } from './../../utils/commons'; +import { isEmpty, objectMapper, fixToInt, fixTo2Decimals, fixTo4Decimals, cloneDeep, numberFormatter } from '@haina/utils-commons'; const { Text } = Typography; const initialPercentKey = new Array(12).fill(1).reduce((r, v, i) => ({ ...r, [`M${i + 1}Percent`]: [8, 9].includes(i) ? 10 : 8 }), {}); diff --git a/src/components/kpi/SubjectTable/Count.jsx b/src/components/kpi/SubjectTable/Count.jsx index 7c5afd8..7a50e1c 100644 --- a/src/components/kpi/SubjectTable/Count.jsx +++ b/src/components/kpi/SubjectTable/Count.jsx @@ -5,7 +5,7 @@ import { stores_Context } from '../../../config'; import { Button, Switch, Input, Space, Typography, Row, Col, message } from 'antd'; import { EditableProTable } from '@ant-design/pro-components'; import { KPIObjects } from '../../../libs/ht'; -import { isEmpty, fixTo2Decimals, fixTo4Decimals, cloneDeep, numberFormatter, fixToInt } from '../../../utils/commons'; +import { isEmpty, fixTo2Decimals, fixTo4Decimals, cloneDeep, numberFormatter, fixToInt } from '@haina/utils-commons'; export const KPIObjectsMapped = KPIObjects.reduce((a, c) => ({ ...a, [String(c.key)]: c }), {}); const { Text } = Typography; diff --git a/src/components/kpi/SubjectTable/Profit.jsx b/src/components/kpi/SubjectTable/Profit.jsx index 0aafaf0..a616c3b 100644 --- a/src/components/kpi/SubjectTable/Profit.jsx +++ b/src/components/kpi/SubjectTable/Profit.jsx @@ -5,7 +5,7 @@ import { stores_Context } from './../../../config'; import { Button, Switch, Input, Space, Typography, Row, Col, message } from 'antd'; import { EditableProTable } from '@ant-design/pro-components'; import { KPIObjects } from './../../../libs/ht'; -import { isEmpty, fixTo2Decimals, fixTo4Decimals, cloneDeep, numberFormatter, fixToInt } from './../../../utils/commons'; +import { isEmpty, fixTo2Decimals, fixTo4Decimals, cloneDeep, numberFormatter, fixToInt } from '@haina/utils-commons'; export const KPIObjectsMapped = KPIObjects.reduce((a, c) => ({ ...a, [String(c.key)]: c }), {}); const { Text } = Typography; diff --git a/src/components/kpi/SubjectTable/Rates.jsx b/src/components/kpi/SubjectTable/Rates.jsx index cb94cfa..0e684af 100644 --- a/src/components/kpi/SubjectTable/Rates.jsx +++ b/src/components/kpi/SubjectTable/Rates.jsx @@ -5,7 +5,7 @@ import { stores_Context } from '../../../config'; import { Button, Switch, Input, Space, Typography, Row, Col, message } from 'antd'; import { EditableProTable } from '@ant-design/pro-components'; import { KPIObjects } from '../../../libs/ht'; -import { isEmpty, fixTo2Decimals, fixTo4Decimals, cloneDeep, numberFormatter, fixToInt } from '../../../utils/commons'; +import { isEmpty, fixTo2Decimals, fixTo4Decimals, cloneDeep, numberFormatter, fixToInt } from '@haina/utils-commons'; export const KPIObjectsMapped = KPIObjects.reduce((a, c) => ({ ...a, [String(c.key)]: c }), {}); const { Text } = Typography; diff --git a/src/components/search/Input.jsx b/src/components/search/Input.jsx index dffe4c9..2ea3a4b 100644 --- a/src/components/search/Input.jsx +++ b/src/components/search/Input.jsx @@ -1,8 +1,8 @@ import React from 'react'; import { Select } from 'antd'; -import { fetchJSON } from './../../utils/request'; +import { fetchJSON } from '@haina/utils-request'; import { observer } from 'mobx-react'; -import { isEmpty, merge, objectMapper } from './../../utils/commons'; +import { isEmpty, merge, objectMapper } from '@haina/utils-commons'; const { Option } = Select; diff --git a/src/components/search/SearchForm.jsx b/src/components/search/SearchForm.jsx index e62fc09..9cdd309 100644 --- a/src/components/search/SearchForm.jsx +++ b/src/components/search/SearchForm.jsx @@ -1,7 +1,7 @@ import { createContext, useContext, useEffect } from 'react'; import { toJS } from 'mobx'; import { observer } from 'mobx-react'; -import { DATE_FORMAT, SMALL_DATETIME_FORMAT, stores_Context } from './../../config'; +import { DATE_FORMAT, HT_HOST, SMALL_DATETIME_FORMAT, stores_Context } from './../../config'; import { SearchOutlined } from '@ant-design/icons'; import { Form, Row, Col, Select, Button, Space, DatePicker, Input, InputNumber } from 'antd'; import moment from 'moment'; @@ -14,7 +14,7 @@ import DateTypeSelect from './DataTypeSelect'; import DatePickerCharts from './DatePickerCharts'; import YearPickerCharts from './YearPickerCharts'; import SearchInput from './Input'; -import { objectMapper, at, empty, isEmpty } from './../../utils/commons'; +import { objectMapper, at, empty, isEmpty } from '@haina/utils-commons'; import { departureDateTypes } from './../../libs/ht'; import './search.css'; @@ -317,7 +317,7 @@ function getFields(props) { 'agency', 99, - + ), item( @@ -326,7 +326,7 @@ function getFields(props) { - + ), item( 'city', 99, - + ), item( 'globalCity', 99, - + ), item( diff --git a/src/libs/ht.js b/src/libs/ht.js index 8da95c0..e643885 100644 --- a/src/libs/ht.js +++ b/src/libs/ht.js @@ -1,5 +1,5 @@ import moment from 'moment'; -import { fixTo4Decimals, fixTo1Decimals, fixToInt, groupBy, sortBy, cloneDeep, pick, unique, flush, fixTo2Decimals, isEmpty } from '../utils/commons'; +import { fixTo4Decimals, fixTo1Decimals, fixToInt, groupBy, sortBy, cloneDeep, pick, unique, flush, fixTo2Decimals, isEmpty } from '@haina/utils-commons'; /** * 事业部 diff --git a/src/stores/CustomerServices.js b/src/stores/CustomerServices.js index f37af87..bedc9f6 100644 --- a/src/stores/CustomerServices.js +++ b/src/stores/CustomerServices.js @@ -2,8 +2,9 @@ import {makeAutoObservable, runInAction} from "mobx"; import moment from "moment"; import { NavLink } from "react-router-dom"; import * as config from "../config"; -import * as req from '../utils/request'; -import { groupBy, prepareUrl, isEmpty, show_vs_tag, formatPercent, percentToDecimal } from '../utils/commons'; +import * as req from '@haina/utils-request'; +import { groupBy, prepareUrl, isEmpty, formatPercent, percentToDecimal } from '@haina/utils-commons'; +import { show_vs_tag, } from "./../utils/commons"; class CustomerServices { diff --git a/src/stores/CustomerStore.js b/src/stores/CustomerStore.js index e428826..b5c045b 100644 --- a/src/stores/CustomerStore.js +++ b/src/stores/CustomerStore.js @@ -1,15 +1,16 @@ import {makeAutoObservable, runInAction, toJS } from "mobx"; -import { fetchJSON } from '../utils/request'; +import { fetchJSON } from '@haina/utils-request'; import * as config from "../config"; import { groupsMappedByKey, sitesMappedByCode, pivotBy } from './../libs/ht'; -import { sortBy, show_vs_tag, formatPercent, groupBy, isEmpty, uniqWith, formatPercentToFloat } from "../utils/commons"; +import { sortBy, formatPercent, groupBy, isEmpty, uniqWith, formatPercentToFloat } from "@haina/utils-commons"; +import { show_vs_tag, } from "./../utils/commons"; import moment from 'moment'; /** * 用于透视的数据 */ const getDetailData = async (param) => { - const json = await fetchJSON('/service-Analyse2/GetTradeApartDetail', param); + const json = await fetchJSON(config.HT_HOST + '/service-Analyse2/GetTradeApartDetail', param); return json.errcode === 0 ? json.result : []; }; diff --git a/src/stores/DataPivot.js b/src/stores/DataPivot.js index 9117f8b..d2b3e40 100644 --- a/src/stores/DataPivot.js +++ b/src/stores/DataPivot.js @@ -1,7 +1,8 @@ import { makeAutoObservable, runInAction, toJS } from 'mobx'; -import { fetchJSON } from '../utils/request'; -import { isEmpty, sortBy, pick, merge, fixTo2Decimals, groupBy, sortKeys, fixToInt, cloneDeep } from '../utils/commons'; +import { fetchJSON } from '@haina/utils-request'; +import { isEmpty, sortBy, pick, merge, fixTo2Decimals, groupBy, sortKeys, fixToInt, cloneDeep } from '@haina/utils-commons'; import { dataFieldAlias } from './../libs/ht'; +import { HT_HOST } from '../config'; class Trade { constructor(rootStore) { @@ -15,7 +16,7 @@ class Trade { getDetailData = async (param, page) => { this.loading = true; this.detailData[page] = { loading: true, dataSource: [], originData: [] }; - const json = await fetchJSON('/service-Analyse2/GetTradeApartDetail', param); + const json = await fetchJSON(HT_HOST + '/service-Analyse2/GetTradeApartDetail', param); if (json.errcode === 0) { runInAction(() => { this.loading = false; @@ -27,7 +28,7 @@ class Trade { if (!isEmpty(param.DateDiff1)) { this.loading2 = true; const param2 = { ...cloneDeep(param), Date1: param.DateDiff1, Date2: param.DateDiff2 }; - const json2 = await fetchJSON('/service-Analyse2/GetTradeApartDetail', param2); + const json2 = await fetchJSON(HT_HOST + '/service-Analyse2/GetTradeApartDetail', param2); if (json2.errcode === 0) { runInAction(() => { this.loading2 = false; diff --git a/src/stores/DictData.js b/src/stores/DictData.js index 6c53bd3..abda859 100644 --- a/src/stores/DictData.js +++ b/src/stores/DictData.js @@ -1,10 +1,11 @@ import { makeAutoObservable, runInAction, toJS } from 'mobx'; -import * as req from '../utils/request'; -import { isEmpty, sortBy, objectMapper } from '../utils/commons'; +import * as req from '@haina/utils-request'; +import { isEmpty, sortBy, objectMapper } from '@haina/utils-commons'; +import { HT_HOST } from '../config'; const modelMapper = { 'operator': { - url: '/service-Analyse2/GetOperatorInfo', + url: HT_HOST + '/service-Analyse2/GetOperatorInfo', mapper: { op_id: [{ key: 'key' }, { key: 'value' }], cn_name: { key: 'label' }, @@ -12,7 +13,7 @@ const modelMapper = { }, }, 'country': { - url: '/service-Analyse2/GetCountryInfo', + url: HT_HOST + '/service-Analyse2/GetCountryInfo', mapper: { c_id: [{ key: 'key' }, { key: 'value' }], cn_name: { key: 'label' }, @@ -20,7 +21,7 @@ const modelMapper = { }, }, 'destination': { - url: '/service-Analyse2/GetDestinationInfo/test', + url: HT_HOST + '/service-Analyse2/GetDestinationInfo/test', mapper: { id: [{ key: 'key' }, { key: 'value' }], cn_name: { key: 'label' }, @@ -28,14 +29,14 @@ const modelMapper = { }, }, 'vendor': { - url: '/service-web/QueryData/GetVEIName', + url: HT_HOST + '/service-web/QueryData/GetVEIName', mapper: { CAV_VEI_SN: [{ key: 'key' }, { key: 'value' }], VEI2_CompanyBN: { key: 'label' }, }, }, 'creditcardbilltype': { - url: '/service-web/QueryData/GetCreditCardBillType', + url: HT_HOST + '/service-web/QueryData/GetCreditCardBillType', mapper: { cb_billtype: [{ key: 'key' }, { key: 'value' }, { key: 'label' }], }, diff --git a/src/stores/Distribution.js b/src/stores/Distribution.js index 3d387a8..745d46b 100644 --- a/src/stores/Distribution.js +++ b/src/stores/Distribution.js @@ -1,19 +1,19 @@ import { makeAutoObservable, runInAction, toJS } from 'mobx'; -import * as req from '../utils/request'; -import { DATE_FORMAT, SMALL_DATETIME_FORMAT } from './../config'; +import * as req from '@haina/utils-request'; +import { DATE_FORMAT, SMALL_DATETIME_FORMAT, HT_HOST } from './../config'; import moment from 'moment'; -import { isEmpty, pick, sortBy, fixTo2Decimals, cloneDeep, unique } from '../utils/commons'; +import { isEmpty, pick, sortBy, fixTo2Decimals, cloneDeep, unique } from '@haina/utils-commons'; const modelMapper = { - 'tourDays': { url: '/service-Analyse2/GetTradeApartByTourDays', keySort: true, dynamicsX: false }, - 'PML': { url: '/service-Analyse2/GetTradeApartByPML', keySort: true, dynamicsX: false }, - 'ConfirmDays': { url: '/service-Analyse2/GetTradeApartByConfirmDays', keySort: true, dynamicsX: false }, - 'ApplyDays': { url: '/service-Analyse2/GetTradeApartByApplyDays', keySort: true, dynamicsX: false }, - 'PersonNum': { url: '/service-Analyse2/GetTradeApartByPersonNum', keySort: true, dynamicsX: false }, - 'destination': { url: '/service-Analyse2/GetTradeApartByDestination', keySort: false, dynamicsX: true, }, - 'GlobalDestination': { url: '/service-Analyse2/GetTradeApartByGlobalDestination', keySort: false, dynamicsX: true, }, - 'destinationCountry': { url: '/service-Analyse2/GetTradeApartByDestinationCountry', keySort: false, dynamicsX: true, }, - 'guestCountry': { url: '/service-Analyse2/GetTradeApartByGuestCountry', keySort: false, dynamicsX: true, }, + 'tourDays': { url: HT_HOST + '/service-Analyse2/GetTradeApartByTourDays', keySort: true, dynamicsX: false }, + 'PML': { url: HT_HOST + '/service-Analyse2/GetTradeApartByPML', keySort: true, dynamicsX: false }, + 'ConfirmDays': { url: HT_HOST + '/service-Analyse2/GetTradeApartByConfirmDays', keySort: true, dynamicsX: false }, + 'ApplyDays': { url: HT_HOST + '/service-Analyse2/GetTradeApartByApplyDays', keySort: true, dynamicsX: false }, + 'PersonNum': { url: HT_HOST + '/service-Analyse2/GetTradeApartByPersonNum', keySort: true, dynamicsX: false }, + 'destination': { url: HT_HOST + '/service-Analyse2/GetTradeApartByDestination', keySort: false, dynamicsX: true, }, + 'GlobalDestination': { url: HT_HOST + '/service-Analyse2/GetTradeApartByGlobalDestination', keySort: false, dynamicsX: true, }, + 'destinationCountry': { url: HT_HOST + '/service-Analyse2/GetTradeApartByDestinationCountry', keySort: false, dynamicsX: true, }, + 'guestCountry': { url: HT_HOST + '/service-Analyse2/GetTradeApartByGuestCountry', keySort: false, dynamicsX: true, }, }; class Distribution { constructor(appStore) { @@ -76,7 +76,7 @@ class Distribution { */ getDetailData = async (param) => { this.detailData.loading = true; - const json = await req.fetchJSON('/service-Analyse2/GetTradeApartDetail', param); + const json = await req.fetchJSON(HT_HOST + '/service-Analyse2/GetTradeApartDetail', param); if (json.errcode === 0) { runInAction(() => { this.detailData.loading = false; diff --git a/src/stores/FinancialStore.js b/src/stores/FinancialStore.js index 0466fc2..6c0702f 100644 --- a/src/stores/FinancialStore.js +++ b/src/stores/FinancialStore.js @@ -1,7 +1,7 @@ import {makeAutoObservable, runInAction} from "mobx"; import * as config from "../config"; -import * as comm from '../utils/commons'; -import { fetchJSON } from '../utils/request'; +import * as comm from '@haina/utils-commons'; +import { fetchJSON } from '@haina/utils-request'; // 财务管理 @@ -42,7 +42,7 @@ class FinancialStore { set_bill_filtered(values) { if (Array.isArray(values)) { this.credit_card_data.filteredValue = values; - } else if (comm.empty(values)) { + } else if (comm.emptyValue(values)) { this.credit_card_data.filteredValue = []; } else { this.credit_card_data.filteredValue = [values]; @@ -55,7 +55,7 @@ class FinancialStore { set_table_handleChange = (pagination, filters, sorter) => { const filters_arr = Object.values(filters); - if (!comm.empty(filters_arr)) { + if (!comm.emptyValue(filters_arr)) { this.set_bill_filtered(filters_arr[0]); } }; @@ -138,9 +138,9 @@ class FinancialStore { */ serviceModelMapper = { - 'inbound': { url: '/service-Analyse2/inbound_person_num', keySort: true, dynamicsX: false }, - 'outbound': { url: '/service-Analyse2/outbound_person_num', keySort: true, dynamicsX: false }, - 'domestic': { url: '/service-Analyse2/domestic_person_num', keySort: true, dynamicsX: false }, + 'inbound': { url: config.HT_HOST + '/service-Analyse2/inbound_person_num', keySort: true, dynamicsX: false }, + 'outbound': { url: config.HT_HOST + '/service-Analyse2/outbound_person_num', keySort: true, dynamicsX: false }, + 'domestic': { url: config.HT_HOST + '/service-Analyse2/domestic_person_num', keySort: true, dynamicsX: false }, }; servicePersonNum = { curTab: 'inbound', loading: false, diff --git a/src/stores/HotelCruise.js b/src/stores/HotelCruise.js index 026f148..1c54be8 100644 --- a/src/stores/HotelCruise.js +++ b/src/stores/HotelCruise.js @@ -1,8 +1,8 @@ import { makeAutoObservable, runInAction, toJS } from 'mobx'; -import { fetchJSON } from '../utils/request'; -import { isEmpty, sortDescBy, objectMapper, groupBy, pick, unique, cloneDeep, omit, fixTo2Decimals } from '../utils/commons'; +import { fetchJSON } from '@haina/utils-request'; +import { isEmpty, sortDescBy, objectMapper, groupBy, pick, unique, cloneDeep, omit, fixTo2Decimals } from '@haina/utils-commons'; import { groupsMappedByCode, dataFieldAlias } from './../libs/ht'; -import { DATE_FORMAT, SMALL_DATETIME_FORMAT } from './../config'; +import { DATE_FORMAT, SMALL_DATETIME_FORMAT, HT_HOST } from './../config'; import moment from 'moment'; const fetchHotelData = async (param) => { @@ -24,7 +24,7 @@ const fetchHotelData = async (param) => { CompareDateEnd: '', Area: '-1', }; - const json = await fetchJSON('/service-Analyse2/HotelReservation', { ...defaultParam, ...param }); + const json = await fetchJSON(HT_HOST + '/service-Analyse2/HotelReservation', { ...defaultParam, ...param }); return json.errcode === 0 ? json.result || [] : []; }; @@ -47,7 +47,7 @@ const fetchCruiseData = async (param) => { PersonNumEnd: '', Country: '-1', }; - const json = await fetchJSON('/service-Analyse2/CruiseReservation', { ...defaultParam, ...param }); + const json = await fetchJSON(HT_HOST + '/service-Analyse2/CruiseReservation', { ...defaultParam, ...param }); return json.errcode === 0 ? json.result || [] : []; }; diff --git a/src/stores/KPI.js b/src/stores/KPI.js index 4f22898..16e4de9 100644 --- a/src/stores/KPI.js +++ b/src/stores/KPI.js @@ -1,6 +1,7 @@ import { makeAutoObservable, runInAction, toJS } from 'mobx'; -import * as req from '../utils/request'; -import { isEmpty, sortBy, groupBy, cloneDeep, fixTo4Decimals, flush } from '../utils/commons'; +import * as req from '@haina/utils-request'; +import { isEmpty, sortBy, groupBy, cloneDeep, fixTo4Decimals, flush } from '@haina/utils-commons'; +import { HT_HOST } from '../config'; import moment from 'moment'; class KPI { @@ -11,13 +12,13 @@ class KPI { async delByID(ids) { const data = { 'kpi_ids': ids }; - const json = await req.delJSON('/service-Analyse2/delkpi_multi', data); + const json = await req.delJSON(HT_HOST + '/service-Analyse2/delkpi_multi', data); return json.errcode === 0; } async saveOrUpdate(tableData) { const data = { 'kpis': tableData }; - const json = await req.postJSON('/service-Analyse2/setkpi_multi', data); + const json = await req.postJSON(HT_HOST + '/service-Analyse2/setkpi_multi', data); return json.errcode === 0; } @@ -39,7 +40,7 @@ class KPI { }; this.listLoading = true; this.pageData = []; - const json = await req.fetchJSON('/service-Analyse2/getkpi', _param); + const json = await req.fetchJSON(HT_HOST + '/service-Analyse2/getkpi', _param); if (json.errcode === 0) { const yearData = parseKPI(json.result, ['subject', 'object_id']); runInAction(() => { diff --git a/src/stores/MeetingData2024.js b/src/stores/MeetingData2024.js index 75cd379..e72d8c2 100644 --- a/src/stores/MeetingData2024.js +++ b/src/stores/MeetingData2024.js @@ -1,15 +1,15 @@ import { makeAutoObservable, runInAction } from 'mobx'; -import { fetchJSON } from '../utils/request'; -import { objectMapper, pick, price_to_number, } from '../utils/commons'; +import { fetchJSON } from '@haina/utils-request'; +import { objectMapper, pick, price_to_number, } from '@haina/utils-commons'; import { pivotBy } from '../libs/ht'; import moment from "moment"; -import { DATE_FORMAT, DATETIME_FORMAT, SMALL_DATETIME_FORMAT } from '../config'; +import { DATE_FORMAT, DATETIME_FORMAT, SMALL_DATETIME_FORMAT, HT_HOST } from '../config'; /** * 用于透视的数据 */ const getDetailData = async (param) => { - const json = await fetchJSON('/service-Analyse2/GetTradeApartDetail', param); + const json = await fetchJSON(HT_HOST + '/service-Analyse2/GetTradeApartDetail', param); return json.errcode === 0 ? json.result : []; }; /** @@ -26,7 +26,7 @@ const getOrderCountByType = async (param) => { Date2: 'COLI_ApplyDate2', }); const url = '/service-web/QueryData/GetOrderCountByType'; - const json = await fetchJSON(url, paramBody); + const json = await fetchJSON(HT_HOST + url, paramBody); return json.errcode === 0 ? json : {}; }; const getAgentGroupInfoALL = async (param) => { @@ -37,7 +37,7 @@ const getAgentGroupInfoALL = async (param) => { // Date2: 'OldDate2', }); const url = '/service-web/QueryData/GetAgentGroupInfoALL'; - const json = await fetchJSON(url, paramBody); + const json = await fetchJSON(HT_HOST + url, paramBody); return json.errcode === 0 ? json : {}; }; const getDepartmentOrderMLByType = async (param) => { @@ -47,7 +47,7 @@ const getDepartmentOrderMLByType = async (param) => { OrderType: 'OrderType', // 总览, 产品类型 }); const url = '/service-web/QueryData/GetDepartmentOrderMLByType'; - const json = await fetchJSON(url, paramBody); + const json = await fetchJSON(HT_HOST + url, paramBody); const { result1 } = json.errcode === 0 ? json : { result1: [] }; const total1 = ['COLI_CJCount', 'COLI_ML2',].reduce( (r, col) => ({ diff --git a/src/stores/MeetingData2025.js b/src/stores/MeetingData2025.js index 47d46e4..fcb79d9 100644 --- a/src/stores/MeetingData2025.js +++ b/src/stores/MeetingData2025.js @@ -1,15 +1,15 @@ import { makeAutoObservable, runInAction } from 'mobx'; -import { fetchJSON } from '../utils/request'; -import { objectMapper, pick, price_to_number, } from '../utils/commons'; +import { fetchJSON } from '@haina/utils-request'; +import { objectMapper, pick, price_to_number, } from '@haina/utils-commons'; import { pivotBy } from './../libs/ht'; import moment from "moment"; -import { DATE_FORMAT, DATETIME_FORMAT, SMALL_DATETIME_FORMAT } from '../config'; +import { DATE_FORMAT, DATETIME_FORMAT, SMALL_DATETIME_FORMAT, HT_HOST } from '../config'; /** * 用于透视的数据 */ const getDetailData = async (param) => { - const json = await fetchJSON('/service-Analyse2/GetTradeApartDetail', param); + const json = await fetchJSON(HT_HOST + '/service-Analyse2/GetTradeApartDetail', param); return json.errcode === 0 ? json.result : []; }; /** @@ -26,7 +26,7 @@ const getOrderCountByType = async (param) => { Date2: 'COLI_ApplyDate2', }); const url = '/service-web/QueryData/GetOrderCountByType'; - const json = await fetchJSON(url, paramBody); + const json = await fetchJSON(HT_HOST + url, paramBody); return json.errcode === 0 ? json : {}; }; const getAgentGroupInfoALL = async (param) => { @@ -37,7 +37,7 @@ const getAgentGroupInfoALL = async (param) => { Date2: 'OldDate2', }); const url = '/service-web/QueryData/GetAgentGroupInfoALL'; - const json = await fetchJSON(url, paramBody); + const json = await fetchJSON(HT_HOST + url, paramBody); return json.errcode === 0 ? json : {}; }; const getDepartmentOrderMLByType = async (param) => { @@ -47,7 +47,7 @@ const getDepartmentOrderMLByType = async (param) => { OrderType: 'OrderType', // 总览, 产品类型 }); const url = '/service-web/QueryData/GetDepartmentOrderMLByType'; - const json = await fetchJSON(url, paramBody); + const json = await fetchJSON(HT_HOST + url, paramBody); const { result1 } = json.errcode === 0 ? json : { result1: [] }; const total1 = ['COLI_CJCount', 'COLI_ML2',].reduce( (r, col) => ({ diff --git a/src/stores/OrdersStore.js b/src/stores/OrdersStore.js index 1fd6975..ff2196a 100644 --- a/src/stores/OrdersStore.js +++ b/src/stores/OrdersStore.js @@ -2,7 +2,7 @@ import { makeAutoObservable, runInAction, toJS } from "mobx"; import { CaretUpOutlined, CaretDownOutlined } from "@ant-design/icons"; import { Tag } from "antd"; import * as config from "../config"; -import * as comm from "../utils/commons"; +import * as comm from '@haina/utils-commons'; import moment from "moment"; import { NavLink } from "react-router-dom"; import { groupsMappedByCode } from './../libs/ht'; @@ -99,7 +99,7 @@ class OrdersStore { // 比如2022-10-01~2022-10-30 vs 2021-10-01~2021-10-30 ,则需要在2021年的时间段加365天的时间映射成2022起始时间段 // 相差的天数用a.diff(b, 'days')计算 format_data_source(data_source, start_date, end_date) { - const result = []; + const result = {}; for (const item of data_source.ordercount1) { if (result[item.ApplyDate]) { result[item.ApplyDate].yField += item.orderCount; @@ -130,7 +130,7 @@ class OrdersStore { } } } - return comm.set_array_index(result); + return Object.values(result); } /** diff --git a/src/stores/SaleStore.js b/src/stores/SaleStore.js index a50e926..41a252d 100644 --- a/src/stores/SaleStore.js +++ b/src/stores/SaleStore.js @@ -1,10 +1,11 @@ import { makeAutoObservable, runInAction } from 'mobx'; import moment from 'moment'; import * as config from '../config'; -import * as comm from '../utils/commons'; +import * as comm from '@haina/utils-commons'; +import { show_vs_tag, } from "./../utils/commons"; import { NavLink } from 'react-router-dom'; import { groupsMappedByCode, dataFieldAlias } from './../libs/ht'; -import * as req from '../utils/request'; +import * as req from '@haina/utils-request'; import { parseKPI } from './KPI'; import { parseMergeItem } from './Trade'; @@ -107,8 +108,8 @@ class SaleStore { let result = []; const date1_start = date_moment.start_date.format(config.DATE_FORMAT); const date1_end = date_moment.end_date.format(config.DATE_FORMAT); - const date2_start = comm.empty(date_moment.start_date_cp) ? '' : date_moment.start_date_cp.format(config.DATE_FORMAT); - const date2_end = comm.empty(date_moment.end_date_cp) ? '' : date_moment.end_date_cp.format(config.DATE_FORMAT); + const date2_start = comm.emptyValue(date_moment.start_date_cp) ? '' : date_moment.start_date_cp.format(config.DATE_FORMAT); + const date2_end = comm.emptyValue(date_moment.end_date_cp) ? '' : date_moment.end_date_cp.format(config.DATE_FORMAT); this.loading = true; this.date_title = `${date1_start}~${date1_end}`; let url = '/service-web/QueryData/GetDepartmentOrderML'; @@ -122,7 +123,7 @@ class SaleStore { .then((response) => response.json()) .then((json) => { result = json.result1; - // if (!comm.empty(json.result2) && !comm.empty(date_moment.start_date_cp)) { + // if (!comm.emptyValue(json.result2) && !comm.emptyValue(date_moment.start_date_cp)) { // let diff_days = date_moment.start_date.diff(date_moment.start_date_cp, "days"); // for (let item of json.result2) { // result.push({ @@ -149,8 +150,8 @@ class SaleStore { const result = { dataSource: [], columns: [] }; const date1_start = date_moment.start_date.format(config.DATE_FORMAT); const date1_end = date_moment.end_date.format(config.DATE_FORMAT); - const date2_start = comm.empty(date_moment.start_date_cp) ? '' : date_moment.start_date_cp.format(config.DATE_FORMAT); - const date2_end = comm.empty(date_moment.end_date_cp) ? '' : date_moment.end_date_cp.format(config.DATE_FORMAT); + const date2_start = comm.emptyValue(date_moment.start_date_cp) ? '' : date_moment.start_date_cp.format(config.DATE_FORMAT); + const date2_end = comm.emptyValue(date_moment.end_date_cp) ? '' : date_moment.end_date_cp.format(config.DATE_FORMAT); this.loading_table = true; this.date_title = `${date1_start}~${date1_end}`; let url = '/service-web/QueryData/GetDepartmentOrderMLByType'; @@ -163,7 +164,7 @@ class SaleStore { fetch(config.HT_HOST + url) .then((response) => response.json()) .then((json) => { - // if (!comm.empty(json.result2) && !comm.empty(date_moment.start_date_cp)) { + // if (!comm.emptyValue(json.result2) && !comm.emptyValue(date_moment.start_date_cp)) { // eslint-disable-next-line no-constant-condition if (false) { } else { @@ -383,7 +384,7 @@ class SaleStore { const items = mergeDiffData.filter((d) => String(d.OPI_SN) === String(item.OPI_SN)); // 筛选出有当前顾问的记录 const total_data_value = items.length ? items.reduce((a, b) => a + b.COLI_YJLY, 0) : ''; // 记录累加 const total_data_value_diff = items.length ? items.reduce((a, b) => a + b.COLI_YJLY2, 0) : ''; // 记录累加 - if (comm.empty(type_data[op_sn])) { + if (comm.emptyValue(type_data[op_sn])) { type_data[op_sn] = [{ key: item.OPI_SN }, { T_name: item.OPI_Name }, { T_OPI: item.OPI_SN }, { T_total: total_data_value }, { V_total: total_data_value_diff }]; } const _diff = comm.objectMapper(comm.pick(item, ['COLI_YJLY_diff', 'COLI_YJLY_vs', 'COLI_YJLY2']), { @@ -393,7 +394,7 @@ class SaleStore { }); type_data[op_sn].push({ ['T_' + item.SubTypeSN]: diffDateFlagYes - ? comm.show_vs_tag(_diff[`vs_${item.SubTypeSN}`]+'%', _diff[`diff_${item.SubTypeSN}`], item.COLI_YJLY, _diff[`v_${item.SubTypeSN}`]) + ? show_vs_tag(_diff[`vs_${item.SubTypeSN}`]+'%', _diff[`diff_${item.SubTypeSN}`], item.COLI_YJLY, _diff[`v_${item.SubTypeSN}`]) : item.COLI_YJLY, ..._diff, [`TV_${item.SubTypeSN}`]: item.COLI_YJLY, @@ -427,7 +428,7 @@ class SaleStore { children: [ { title: diffDateFlagYes - ? comm.show_vs_tag(totalDiff.vs, totalDiff.diff, totalDiff.val, totalDiff.diffVal) + ? show_vs_tag(totalDiff.vs, totalDiff.diff, totalDiff.val, totalDiff.diffVal) : type_data_arr.reduce((a, b) => a + b.T_total, 0), dataIndex: 'T_total', }, @@ -447,7 +448,7 @@ class SaleStore { }; result.columns.push({ title: item.SubTypeName, _val: total_data_value, - children: [{ title: diffDateFlagYes ? comm.show_vs_tag(columnDiff.vs, columnDiff.diff, total_data_value, total_data_value_diff) : total_data_value, dataIndex: data_index }], + children: [{ title: diffDateFlagYes ? show_vs_tag(columnDiff.vs, columnDiff.diff, total_data_value, total_data_value_diff) : total_data_value, dataIndex: data_index }], sorter: (a, b) => b[`TV_${item.SubTypeSN}`] - a[`TV_${item.SubTypeSN}`], }); return item; @@ -476,8 +477,8 @@ class SaleStore { const result = { dataSource: [], columns: [] }; const date1_start = date_moment.start_date.format(config.DATE_FORMAT); const date1_end = date_moment.end_date.format(config.DATE_FORMAT); - const date2_start = comm.empty(date_moment.start_date_cp) ? '' : date_moment.start_date_cp.format(config.DATE_FORMAT); - const date2_end = comm.empty(date_moment.end_date_cp) ? '' : date_moment.end_date_cp.format(config.DATE_FORMAT); + const date2_start = comm.emptyValue(date_moment.start_date_cp) ? '' : date_moment.start_date_cp.format(config.DATE_FORMAT); + const date2_end = comm.emptyValue(date_moment.end_date_cp) ? '' : date_moment.end_date_cp.format(config.DATE_FORMAT); let url = '/service-web/QueryData/GetDepartmentOrderMLByType_sub'; url += `?DepartmentList=${this.groups.toString()}&DateType=${this.date_type}&subType=${type_sub}&subTypeVal=-1&WebCode=${this.webcode}&IncludeTickets=${this.include_tickets}`; url += `&Date1=${date1_start}&Date2=${date1_end}%2023:59:00`; @@ -488,7 +489,7 @@ class SaleStore { fetch(config.HT_HOST + url) .then((response) => response.json()) .then((json) => { - // if (!comm.empty(json.result2) && !comm.empty(date_moment.start_date_cp)) { + // if (!comm.emptyValue(json.result2) && !comm.emptyValue(date_moment.start_date_cp)) { // eslint-disable-next-line no-constant-condition if (false) { } else { @@ -533,10 +534,10 @@ class SaleStore { ]; // 数据处理,把相同类型放入同一个数组 const type_data = []; - !comm.empty(json.result1) && + !comm.emptyValue(json.result1) && Object.values(json.result1).map((item) => { const subtype_sn = 'type_' + item.subType; - if (comm.empty(type_data[subtype_sn])) { + if (comm.emptyValue(type_data[subtype_sn])) { type_data[subtype_sn] = { subType: item.subType, subType_name: item.subTypeVal, data: [item] }; } else { type_data[subtype_sn].data.push(item); @@ -641,7 +642,7 @@ class SaleStore { }); Object.assign(getkpiParam, { object: curObject, subject: 'sum_profit' }); getkpiParam.object_id = curObject === 'overview' ? '' : objects.map((ele) => ele.key).join(','); - const json = await req.fetchJSON('/service-Analyse2/getkpi', getkpiParam); + const json = await req.fetchJSON(config.HT_HOST + '/service-Analyse2/getkpi', getkpiParam); if (json.errcode === 0) { const yearData = parseKPI(json.result, ['subject', 'object_id']); const year = moment(queryData.Date1).year(); @@ -654,7 +655,7 @@ class SaleStore { * 获取业绩数据 */ async fetchTradeData(queryData) { - const json = await req.fetchJSON('/service-Analyse2/GetTradeProcess', queryData); + const json = await req.fetchJSON(config.HT_HOST + '/service-Analyse2/GetTradeProcess', queryData); return json; } @@ -662,7 +663,7 @@ class SaleStore { * 获取业绩数据: 商务订单 */ async fetchTradeDataBiz(queryData) { - const json = await req.fetchJSON('/service-Analyse2/GetTradeProcess_biz', queryData); + const json = await req.fetchJSON(config.HT_HOST + '/service-Analyse2/GetTradeProcess_biz', queryData); return json; } diff --git a/src/stores/SalesCRMData.js b/src/stores/SalesCRMData.js index 2243086..8b4a429 100644 --- a/src/stores/SalesCRMData.js +++ b/src/stores/SalesCRMData.js @@ -1,8 +1,8 @@ import { makeAutoObservable, runInAction } from 'mobx'; -import { fetchJSON } from '../utils/request'; -import { isEmpty, sortDescBy, groupBy, pick, unique } from '../utils/commons'; +import { fetchJSON } from '@haina/utils-request'; +import { isEmpty, sortDescBy, groupBy, pick, unique } from '@haina/utils-commons'; import { groupsMappedByCode } from './../libs/ht'; -import { DATE_FORMAT, SMALL_DATETIME_FORMAT } from './../config'; +import { DATE_FORMAT, SMALL_DATETIME_FORMAT, HT_HOST } from './../config'; import moment from 'moment'; const fetchResultsData = async (param) => { @@ -15,7 +15,7 @@ const fetchResultsData = async (param) => { groupType: '', groupDateType: '', }; - const json = await fetchJSON('/service-Analyse2/sales_crm_results', { ...defaultParam, ...param }); + const json = await fetchJSON(HT_HOST + '/service-Analyse2/sales_crm_results', { ...defaultParam, ...param }); return json.errcode === 0 ? json.result : []; }; @@ -29,7 +29,7 @@ const fetchProcessData = async (param) => { groupType: '', groupDateType: '', }; - const json = await fetchJSON('/service-Analyse2/sales_crm_process', { ...defaultParam, ...param }); + const json = await fetchJSON(HT_HOST + '/service-Analyse2/sales_crm_process', { ...defaultParam, ...param }); return json.errcode === 0 ? json.result : []; }; @@ -43,7 +43,7 @@ const fetchRiskDetailData = async (param) => { Date2: '', IncludeTickets: '1', }; - const json = await fetchJSON('/service-Analyse2/sales_crm_process_detail', {...defaultParam, ...param}); + const json = await fetchJSON(HT_HOST + '/service-Analyse2/sales_crm_process_detail', {...defaultParam, ...param}); return json.errcode === 0 ? json.result : []; }; diff --git a/src/stores/Trade.js b/src/stores/Trade.js index 2762357..174b28d 100644 --- a/src/stores/Trade.js +++ b/src/stores/Trade.js @@ -1,9 +1,9 @@ import { makeAutoObservable, runInAction, toJS } from 'mobx'; -import * as req from '../utils/request'; +import * as req from '@haina/utils-request'; import moment from 'moment'; -import { isEmpty, sortBy, pick, merge, fixTo2Decimals, groupBy, sortKeys, fixToInt, cloneDeep } from '../utils/commons'; +import { isEmpty, sortBy, pick, merge, fixTo2Decimals, groupBy, sortKeys, fixToInt, cloneDeep } from '@haina/utils-commons'; import { dataFieldAlias } from './../libs/ht'; -import { DATE_FORMAT, SMALL_DATETIME_FORMAT } from './../config'; +import { DATE_FORMAT, SMALL_DATETIME_FORMAT, HT_HOST } from './../config'; class Trade { constructor(rootStore) { @@ -286,7 +286,7 @@ class Trade { * 获取业绩数据: 传统订单 */ async fetchTradeData(queryData) { - const json = await req.fetchJSON('/service-Analyse2/GetTradeProcess', queryData); + const json = await req.fetchJSON(HT_HOST + '/service-Analyse2/GetTradeProcess', queryData); // if (json.errcode === 0) { // return json; // } @@ -297,7 +297,7 @@ class Trade { * 获取业绩数据: 商务订单 */ async fetchTradeDataBiz(queryData) { - const json = await req.fetchJSON('/service-Analyse2/GetTradeProcess_biz', queryData); + const json = await req.fetchJSON(HT_HOST + '/service-Analyse2/GetTradeProcess_biz', queryData); // if (json.errcode === 0) { // return json; // } diff --git a/src/stores/Wechat.js b/src/stores/Wechat.js index 810e563..8aaa187 100644 --- a/src/stores/Wechat.js +++ b/src/stores/Wechat.js @@ -1,6 +1,6 @@ import {makeAutoObservable, runInAction} from "mobx"; import * as config from "../config"; -import * as req from '../utils/request'; +import * as req from '@haina/utils-request'; class Wechat { @@ -10,7 +10,7 @@ class Wechat { } fetchWechatUserList() { - + req.fetchJSON(config.HT_HOST + '/weixin/wxwork/get_permit_user_list') .then(json => { if (json.errcode === 0) { @@ -24,7 +24,7 @@ class Wechat { } fetchContactList(user) { - + req.fetchJSON(config.HT_HOST + '/weixin/wxwork/get_externalcontact_list?userid='+user.userid) .then(json => { if (json.errcode === 0) { @@ -36,7 +36,7 @@ class Wechat { } }); } - + fetchChatMsgList(contact, page, pageSize) { runInAction(() => { this.selectedContact = contact; @@ -60,4 +60,4 @@ class Wechat { } -export default Wechat; \ No newline at end of file +export default Wechat; diff --git a/src/stores/WhatsApp.js b/src/stores/WhatsApp.js index 3281ed5..c26acc1 100644 --- a/src/stores/WhatsApp.js +++ b/src/stores/WhatsApp.js @@ -1,6 +1,6 @@ import {makeAutoObservable, runInAction} from "mobx"; import * as config from "../config"; -import * as req from '../utils/request'; +import * as req from '@haina/utils-request'; class WhatsApp { @@ -10,7 +10,7 @@ class WhatsApp { } fetchWechatUserList() { - + req.fetchJSON(config.HT_HOST + '/weixin/wxwork/get_permit_user_list') .then(json => { if (json.errcode === 0) { @@ -24,7 +24,7 @@ class WhatsApp { } fetchContactList(user) { - + req.fetchJSON(config.HT_HOST + '/weixin/wxwork/get_externalcontact_list?userid='+user.userid) .then(json => { if (json.errcode === 0) { @@ -36,7 +36,7 @@ class WhatsApp { } }); } - + fetchChatMsgList(contact, page, pageSize) { runInAction(() => { this.selectedContact = contact; @@ -60,4 +60,4 @@ class WhatsApp { } -export default WhatsApp; \ No newline at end of file +export default WhatsApp; diff --git a/src/views/Credit_card_bill.jsx b/src/views/Credit_card_bill.jsx index ac5e28b..4d7daee 100644 --- a/src/views/Credit_card_bill.jsx +++ b/src/views/Credit_card_bill.jsx @@ -11,7 +11,8 @@ import Business_unit from "../components/search/BusinessSelect"; import DatePickerCharts from "../components/search/DatePickerCharts"; import SearchForm from './../components/search/SearchForm'; import { Line, Pie } from "@ant-design/charts"; -import * as comm from "../utils/commons"; +import * as comm from '@haina/utils-commons'; +import { show_vs_tag } from './../utils/commons'; import * as config from "../config"; const Credit_card_bill = () => { @@ -20,7 +21,7 @@ const Credit_card_bill = () => { const format_data = data => { const result = { dataSource: [], columns: [] }; - if (!comm.empty(data)) { + if (!comm.emptyValue(data)) { if (date_picker_store.start_date_cp && date_picker_store.end_date_cp) { // 有比较的数据 const total_data1 = data.BillTypeDataTotal1; @@ -49,7 +50,7 @@ const Credit_card_bill = () => { title: "美金", children: [ { - title: comm.show_vs_tag(total_data1.usd_vs, total_data1.usd_diff, total_data1.cb_usd, total_data2.cb_usd), + title: show_vs_tag(total_data1.usd_vs, total_data1.usd_diff, total_data1.cb_usd, total_data2.cb_usd), dataIndex: "cb_usd", }, ], @@ -58,7 +59,7 @@ const Credit_card_bill = () => { title: "人民币", children: [ { - title: comm.show_vs_tag(total_data1.rmb_vs, total_data1.rmb_diff, total_data1.cb_rmb, total_data2.cb_rmb), + title: show_vs_tag(total_data1.rmb_vs, total_data1.rmb_diff, total_data1.cb_rmb, total_data2.cb_rmb), dataIndex: "cb_rmb", }, ], @@ -71,8 +72,8 @@ const Credit_card_bill = () => { key: item.key, cb_billtype: item.cb_billtype, groups: item.groups, - cb_usd: comm.show_vs_tag(item.usd_vs, item.usd_diff, item.cb_usd, item2.cb_usd), - cb_rmb: comm.show_vs_tag(item.rmb_vs, item.rmb_diff, item.cb_rmb, item2.cb_rmb), + cb_usd: show_vs_tag(item.usd_vs, item.usd_diff, item.cb_usd, item2.cb_usd), + cb_rmb: show_vs_tag(item.rmb_vs, item.rmb_diff, item.cb_rmb, item2.cb_rmb), }); } } @@ -124,7 +125,7 @@ const Credit_card_bill = () => { const format_data_detail = data => { const result = { dataSource: [], columns: [] }; - if (!comm.empty(data)) { + if (!comm.emptyValue(data)) { let show_vs = false; let usd_totle1; let usd_totle2; @@ -185,7 +186,7 @@ const Credit_card_bill = () => { title: "美金", children: [ { - title: show_vs ? comm.show_vs_tag(usd_vs, usd_diff, usd_totle1, usd_totle2) : usd_totle1, + title: show_vs ? show_vs_tag(usd_vs, usd_diff, usd_totle1, usd_totle2) : usd_totle1, dataIndex: "cb_usd", }, ], @@ -195,7 +196,7 @@ const Credit_card_bill = () => { title: "人民币", children: [ { - title: show_vs ? comm.show_vs_tag(rmb_vs, rmb_diff, rmb_totle1, rmb_totle2) : rmb_totle1, + title: show_vs ? show_vs_tag(rmb_vs, rmb_diff, rmb_totle1, rmb_totle2) : rmb_totle1, dataIndex: "cb_rmb", }, ], @@ -231,8 +232,8 @@ const Credit_card_bill = () => { return data.map(item => ({...item, cb_usd_number: parseFloat(item.cb_usd.replace(/,/g, ""))})); }; - const credit_card_bills = !comm.empty(credit_card_data.data) ? format_data_detail(credit_card_data.data) : format_data_detail([]); - const credit_card_bills_by_type = !comm.empty(credit_card_data.data_by_type) ? format_data(credit_card_data.data_by_type) : format_data([]); + const credit_card_bills = !comm.emptyValue(credit_card_data.data) ? format_data_detail(credit_card_data.data) : format_data_detail([]); + const credit_card_bills_by_type = !comm.emptyValue(credit_card_data.data_by_type) ? format_data(credit_card_data.data_by_type) : format_data([]); const pie_config = { appendPadding: 10, diff --git a/src/views/DataPivot.jsx b/src/views/DataPivot.jsx index 0b733d7..2f9b704 100644 --- a/src/views/DataPivot.jsx +++ b/src/views/DataPivot.jsx @@ -3,7 +3,7 @@ import { observer } from 'mobx-react'; import { useParams, useLocation } from 'react-router-dom'; import { stores_Context } from '../config'; import { Row, Col, Spin, Table, Select, Typography, Card, Button, Space, Divider, Alert } from 'antd'; -import { cloneDeep, groupBy, isEmpty, omit, pick, sortBy, unique, cartesianProductArray, fixTo2Decimals } from '../utils/commons'; +import { cloneDeep, groupBy, isEmpty, omit, pick, sortBy, unique, cartesianProductArray, fixTo2Decimals } from '@haina/utils-commons'; import { dataFieldAlias, pivotBy } from '../libs/ht'; import SearchForm from '../components/search/SearchForm'; import { Line } from '@ant-design/plots'; diff --git a/src/views/Detail.jsx b/src/views/Detail.jsx index 8ba1c80..3762135 100644 --- a/src/views/Detail.jsx +++ b/src/views/Detail.jsx @@ -2,7 +2,7 @@ import { useContext, useEffect, useMemo } from 'react'; import { observer } from 'mobx-react'; import { stores_Context } from '../config'; import { Row, Col, Spin, Space, Radio, Tabs, Table } from 'antd'; -import { empty } from '../utils/commons'; +import { emptyValue } from '@haina/utils-commons'; import { dataFieldAlias } from '../libs/ht'; import Scatter from './../components/Scatter'; import SearchForm from './../components/search/SearchForm'; @@ -20,7 +20,7 @@ export default observer((props) => { }; useEffect(() => { - if (empty(detailData.dataSource)) { + if (emptyValue(detailData.dataSource)) { detailRefresh(); } }, []); diff --git a/src/views/Distribution.jsx b/src/views/Distribution.jsx index e884022..49766ee 100644 --- a/src/views/Distribution.jsx +++ b/src/views/Distribution.jsx @@ -4,7 +4,7 @@ import { stores_Context } from '../config'; import { Row, Col, Spin, Tabs, Table, Space, Typography, Divider } from 'antd'; import { RingProgress } from '@ant-design/plots'; import SearchForm from './../components/search/SearchForm'; -import { empty } from '../utils/commons'; +import { emptyValue } from '@haina/utils-commons'; import { dataFieldAlias } from '../libs/ht'; import { VSTag, TableExportBtn } from './../components/Data'; import MixYnQ from './../components/MixYnQ'; @@ -51,7 +51,7 @@ export default observer(() => { const onTabsChange = (tab) => { DistributionStore.setCurTab(tab); - if (empty(DistributionStore[tab].dataSource)) { + if (emptyValue(DistributionStore[tab].dataSource)) { pageRefresh(); } }; diff --git a/src/views/Home.jsx b/src/views/Home.jsx index f35e52c..2fe16ab 100644 --- a/src/views/Home.jsx +++ b/src/views/Home.jsx @@ -13,7 +13,7 @@ import LineWithKPI from '../components/LineWithKPI'; import DataFieldRadio from '../components/DataFieldRadio'; import { datePartOptions } from './../components/DateGroupRadio/date'; import SearchForm from './../components/search/SearchForm'; -import { empty, cloneDeep, isEmpty } from './../utils/commons'; +import { cloneDeep, isEmpty } from '@haina/utils-commons'; import { dataFieldAlias } from './../libs/ht'; import './home.css'; diff --git a/src/views/HostCaseCount.jsx b/src/views/HostCaseCount.jsx index ce42b74..8cf4702 100644 --- a/src/views/HostCaseCount.jsx +++ b/src/views/HostCaseCount.jsx @@ -5,7 +5,7 @@ import { observer } from 'mobx-react'; import 'moment/locale/zh-cn'; import SearchForm from '../components/search/SearchForm'; import { TableExportBtn } from '../components/Data'; -import * as comm from '../utils/commons'; +import * as comm from '@haina/utils-commons'; const HostCaseCount = () => { const { customer_store, date_picker_store } = useContext(stores_Context); @@ -73,7 +73,7 @@ const HostCaseCount = () => { title: '团名', dataIndex: 'GroupBy', key: 'GroupBy', - }, + }, { title: '顾问名', dataIndex: 'OPI_Name', diff --git a/src/views/KPI.jsx b/src/views/KPI.jsx index 1812046..6bcba34 100644 --- a/src/views/KPI.jsx +++ b/src/views/KPI.jsx @@ -2,7 +2,7 @@ import { useContext, useEffect, useState } from 'react'; import { stores_Context } from './../config'; import { observer } from 'mobx-react'; import { Row, Col, Tabs, Spin } from 'antd'; -import { flush, isEmpty, objectMapper, pick } from './../utils/commons'; +import { flush, isEmpty, objectMapper, pick } from '@haina/utils-commons'; import { KPIObjects } from './../libs/ht'; import ObjectPanel from '../components/kpi/ObjectPanel'; import OverviewPanel from './../components/kpi/OverviewPanel'; diff --git a/src/views/Meeting2024-GH.jsx b/src/views/Meeting2024-GH.jsx index 5d57501..ac4a2e8 100644 --- a/src/views/Meeting2024-GH.jsx +++ b/src/views/Meeting2024-GH.jsx @@ -5,7 +5,7 @@ import { Table, Row, Col, Divider, Tooltip } from 'antd'; import { InfoCircleOutlined } from '@ant-design/icons'; import SearchForm from '../components/search/SearchForm'; import { TableExportBtn } from './../components/Data'; -import { fixTo2Decimals } from './../utils/commons'; +import { fixTo2Decimals } from '@haina/utils-commons'; const numberConvert10K = (number, scale = 10) => { return fixTo2Decimals(number / (1000 * scale)) + ''; diff --git a/src/views/Meeting2025-GH.jsx b/src/views/Meeting2025-GH.jsx index dfcbdc4..e645956 100644 --- a/src/views/Meeting2025-GH.jsx +++ b/src/views/Meeting2025-GH.jsx @@ -5,7 +5,7 @@ import { Table, Row, Col, Divider, Tooltip } from 'antd'; import { InfoCircleOutlined } from '@ant-design/icons'; import SearchForm from '../components/search/SearchForm'; import { TableExportBtn } from './../components/Data'; -import { fixTo2Decimals } from './../utils/commons'; +import { fixTo2Decimals } from '@haina/utils-commons'; const numberConvert10K = (number, scale = 10) => { return fixTo2Decimals(number / (1000 * scale)) + ''; diff --git a/src/views/Orders.jsx b/src/views/Orders.jsx index ebff1ec..9224ce0 100644 --- a/src/views/Orders.jsx +++ b/src/views/Orders.jsx @@ -6,7 +6,8 @@ import { Line, Pie, } from "@ant-design/charts"; import { observer } from "mobx-react"; import * as config from "../config"; import { NavLink } from "react-router-dom"; -import * as comm from "../utils/commons"; +import * as comm from '@haina/utils-commons'; +import { show_vs_tag } from './../utils/commons'; import { utils, writeFileXLSX } from "xlsx"; import DateGroupRadio from '../components/DateGroupRadio'; import SearchForm from './../components/search/SearchForm'; @@ -23,7 +24,7 @@ class Orders extends Component { format_data(data) { const { date_picker_store, orders_store } = this.context; const result = { dataSource: [], columns: [] }; - if (!comm.empty(data)) { + if (!comm.emptyValue(data)) { const ordercountTotal1 = data.ordercountTotal1; const ordercountTotal2 = data.ordercountTotal2; if (date_picker_store.start_date_cp && date_picker_store.end_date_cp) { @@ -57,7 +58,7 @@ class Orders extends Component { title: '数量', children: [ { - title: comm.show_vs_tag(ordercountTotal1.OrderCount_vs, ordercountTotal1.OrderCount_diff, ordercountTotal1.OrderCount, ordercountTotal2.OrderCount), + title: show_vs_tag(ordercountTotal1.OrderCount_vs, ordercountTotal1.OrderCount_diff, ordercountTotal1.OrderCount, ordercountTotal2.OrderCount), titleX: [ordercountTotal1.OrderCount, ordercountTotal2.OrderCount].join(' vs '), dataIndex: 'OrderCount', }, @@ -67,7 +68,7 @@ class Orders extends Component { title: '成交数', children: [ { - title: comm.show_vs_tag(ordercountTotal1.CJCount_vs, ordercountTotal1.CJCount_diff, ordercountTotal1.CJCount, ordercountTotal2.CJCount), + title: show_vs_tag(ordercountTotal1.CJCount_vs, ordercountTotal1.CJCount_diff, ordercountTotal1.CJCount, ordercountTotal2.CJCount), titleX: [ordercountTotal1.CJCount, ordercountTotal2.CJCount].join(' vs '), dataIndex: 'CJCount', }, @@ -77,7 +78,7 @@ class Orders extends Component { title: '成交人数', children: [ { - title: comm.show_vs_tag(ordercountTotal1.CJPersonNum_vs, ordercountTotal1.CJPersonNum_diff, ordercountTotal1.CJPersonNum, ordercountTotal2.CJPersonNum), + title: show_vs_tag(ordercountTotal1.CJPersonNum_vs, ordercountTotal1.CJPersonNum_diff, ordercountTotal1.CJPersonNum, ordercountTotal2.CJPersonNum), titleX: [ordercountTotal1.CJPersonNum, ordercountTotal2.CJPersonNum].join(' vs '), dataIndex: 'CJPersonNum', }, @@ -87,7 +88,7 @@ class Orders extends Component { title: '成交率', children: [ { - title: comm.show_vs_tag(ordercountTotal1.CJrate_vs, ordercountTotal1.CJrate_diff, ordercountTotal1.CJrate, ordercountTotal2.CJrate), + title: show_vs_tag(ordercountTotal1.CJrate_vs, ordercountTotal1.CJrate_diff, ordercountTotal1.CJrate, ordercountTotal2.CJrate), titleX: [ordercountTotal1.CJrate, ordercountTotal2.CJrate].join(' vs '), dataIndex: 'CJrate', }, @@ -97,7 +98,7 @@ class Orders extends Component { title: '成交毛利(预计)', children: [ { - title: comm.show_vs_tag(ordercountTotal1.YJLY_vs, ordercountTotal1.YJLY_diff, ordercountTotal1.YJLY, ordercountTotal2.YJLY), + title: show_vs_tag(ordercountTotal1.YJLY_vs, ordercountTotal1.YJLY_diff, ordercountTotal1.YJLY, ordercountTotal2.YJLY), titleX: [ordercountTotal1.YJLY, ordercountTotal2.YJLY].join(' vs '), dataIndex: 'YJLY', }, @@ -108,7 +109,7 @@ class Orders extends Component { title: '单个订单价值', children: [ { - title: comm.show_vs_tag(ordercountTotal1.Ordervalue_vs, ordercountTotal1.Ordervalue_diff, ordercountTotal1.Ordervalue, ordercountTotal2.Ordervalue), + title: show_vs_tag(ordercountTotal1.Ordervalue_vs, ordercountTotal1.Ordervalue_diff, ordercountTotal1.Ordervalue, ordercountTotal2.Ordervalue), titleX: [ordercountTotal1.Ordervalue, ordercountTotal2.Ordervalue].join(' vs '), dataIndex: 'Ordervalue', }, @@ -127,17 +128,17 @@ class Orders extends Component { key: item.key, OrderType: item.OrderType, OrderTypeSN: item.OrderTypeSN, - OrderCount: comm.show_vs_tag(item.OrderCount_vs, item.OrderCount_diff, item.OrderCount, item2.OrderCount), + OrderCount: show_vs_tag(item.OrderCount_vs, item.OrderCount_diff, item.OrderCount, item2.OrderCount), OrderCount_X: ([item.OrderCount, item2.OrderCount].join(' vs ')), - CJCount: comm.show_vs_tag(item.CJCount_vs, item.CJCount_diff, item.CJCount, item2.CJCount), + CJCount: show_vs_tag(item.CJCount_vs, item.CJCount_diff, item.CJCount, item2.CJCount), CJCount_X: ([item.CJCount, item2.CJCount].join(' vs ')), - CJPersonNum: comm.show_vs_tag(item.CJPersonNum_vs, item.CJPersonNum_diff, item.CJPersonNum, item2.CJPersonNum), + CJPersonNum: show_vs_tag(item.CJPersonNum_vs, item.CJPersonNum_diff, item.CJPersonNum, item2.CJPersonNum), CJPersonNum_X: ([item.CJPersonNum, item2.CJPersonNum].join(' vs ')), - CJrate: comm.show_vs_tag(item.CJrate_vs, item.CJrate_diff, item.CJrate, item2.CJrate), + CJrate: show_vs_tag(item.CJrate_vs, item.CJrate_diff, item.CJrate, item2.CJrate), CJrate_X: ([item.CJrate, item2.CJrate].join(' vs ')), - YJLY: comm.show_vs_tag(item.YJLY_vs, item.YJLY_diff, item.YJLY, item2.YJLY), + YJLY: show_vs_tag(item.YJLY_vs, item.YJLY_diff, item.YJLY, item2.YJLY), YJLY_X: ([item.YJLY, item2.YJLY].join(' vs ')), - Ordervalue: comm.show_vs_tag(item.Ordervalue_vs, item.Ordervalue_diff, item.Ordervalue, item2.Ordervalue), + Ordervalue: show_vs_tag(item.Ordervalue_vs, item.Ordervalue_diff, item.Ordervalue, item2.Ordervalue), Ordervalue_X: ([item.Ordervalue, item2.Ordervalue].join(' vs ')), }); } @@ -148,17 +149,17 @@ class Orders extends Component { key: item.key, OrderType: item.OrderType, OrderTypeSN: item.OrderTypeSN, - OrderCount: comm.show_vs_tag(comm.formatPercent(item.OrderCount), item.OrderCount, item.OrderCount, 0), + OrderCount: show_vs_tag(comm.formatPercent(item.OrderCount), item.OrderCount, item.OrderCount, 0), OrderCount_X: ([item.OrderCount, 0].join(' vs ')), - CJCount: comm.show_vs_tag(comm.formatPercent(item.CJCount), item.CJCount, item.CJCount, 0), + CJCount: show_vs_tag(comm.formatPercent(item.CJCount), item.CJCount, item.CJCount, 0), CJCount_X: ([item.CJCount, 0].join(' vs ')), - CJPersonNum: comm.show_vs_tag(comm.formatPercent(item.CJPersonNum), item.CJPersonNum, item.CJPersonNum, 0), + CJPersonNum: show_vs_tag(comm.formatPercent(item.CJPersonNum), item.CJPersonNum, item.CJPersonNum, 0), CJPersonNum_X: ([item.CJPersonNum, 0].join(' vs ')), - CJrate: comm.show_vs_tag(item.CJrate, item.CJrate, item.CJrate, 0), + CJrate: show_vs_tag(item.CJrate, item.CJrate, item.CJrate, 0), CJrate_X: ([item.CJrate, 0].join(' vs ')), - YJLY: comm.show_vs_tag(comm.formatPercent(item.YJLY), item.YJLY, item.YJLY, 0), + YJLY: show_vs_tag(comm.formatPercent(item.YJLY), item.YJLY, item.YJLY, 0), YJLY_X: ([item.YJLY, 0].join(' vs ')), - Ordervalue: comm.show_vs_tag(comm.formatPercent(item.Ordervalue), item.Ordervalue, item.Ordervalue, 0), + Ordervalue: show_vs_tag(comm.formatPercent(item.Ordervalue), item.Ordervalue, item.Ordervalue, 0), Ordervalue_X: ([item.Ordervalue, 0].join(' vs ')), }); } @@ -176,17 +177,17 @@ class Orders extends Component { key: item2.key, OrderType: item2.OrderType, OrderTypeSN: item2.OrderTypeSN, - OrderCount: comm.show_vs_tag(comm.formatPercent(-item2.OrderCount), -item2.OrderCount, 0, item2.OrderCount), + OrderCount: show_vs_tag(comm.formatPercent(-item2.OrderCount), -item2.OrderCount, 0, item2.OrderCount), OrderCount_X: ([ 0, item2.OrderCount].join(' vs ')), - CJCount: comm.show_vs_tag(comm.formatPercent(-item2.CJCount), -item2.CJCount, 0, item2.CJCount), + CJCount: show_vs_tag(comm.formatPercent(-item2.CJCount), -item2.CJCount, 0, item2.CJCount), CJCount_X: ([ 0, item2.CJCount].join(' vs ')), - CJPersonNum: comm.show_vs_tag(comm.formatPercent(-item2.CJPersonNum), -item2.CJPersonNum, 0, item2.CJPersonNum), + CJPersonNum: show_vs_tag(comm.formatPercent(-item2.CJPersonNum), -item2.CJPersonNum, 0, item2.CJPersonNum), CJPersonNum_X: ([0, item2.CJPersonNum].join(' vs ')), - CJrate: comm.show_vs_tag(-item2.CJrate, -item2.CJrate, 0, item2.CJrate), + CJrate: show_vs_tag(-item2.CJrate, -item2.CJrate, 0, item2.CJrate), CJrate_X: ([ 0, item2.CJrate].join(' vs ')), - YJLY: comm.show_vs_tag(comm.formatPercent(-item2.YJLY), -item2.YJLY, 0, item2.YJLY), + YJLY: show_vs_tag(comm.formatPercent(-item2.YJLY), -item2.YJLY, 0, item2.YJLY), YJLY_X: ([0, item2.YJLY].join(' vs ')), - Ordervalue: comm.show_vs_tag(comm.formatPercent(-item2.Ordervalue), -item2.Ordervalue, 0, item2.Ordervalue), + Ordervalue: show_vs_tag(comm.formatPercent(-item2.Ordervalue), -item2.Ordervalue, 0, item2.Ordervalue), Ordervalue_X: ([ 0, item2.Ordervalue].join(' vs ')), }); } @@ -255,10 +256,10 @@ class Orders extends Component { const table_data = orders_store.orderCountData_Form ? this.format_data(orders_store.orderCountData_Form) : []; const data_source = orders_store.orderCountData ? orders_store.orderCountData : []; const avg_line_y = Math.round(orders_store.avgLine1); - const pie_data = comm.empty(orders_store.orderCountData_Form) + const pie_data = comm.emptyValue(orders_store.orderCountData_Form) ? [] : orders_store.orderCountData_Form.ordercount1.map((ele) => ({ ...ele, YJLYx: comm.price_to_number(ele.YJLY) })); // 饼图的显示 - const pie_data2 = comm.empty(orders_store.orderCountData_Form) + const pie_data2 = comm.emptyValue(orders_store.orderCountData_Form) ? [] : orders_store.orderCountData_Form.ordercount2.map((ele) => ({ ...ele, YJLYx: comm.price_to_number(ele.YJLY) })); diff --git a/src/views/Orders_sub.jsx b/src/views/Orders_sub.jsx index fc1e2db..19141cb 100644 --- a/src/views/Orders_sub.jsx +++ b/src/views/Orders_sub.jsx @@ -5,7 +5,7 @@ import { stores_Context } from "../config"; import { Line } from "@ant-design/charts"; import { observer } from "mobx-react"; import { NavLink, useParams } from "react-router-dom"; -import * as comm from "../utils/commons"; +import * as comm from '@haina/utils-commons'; import * as config from "../config"; import { utils, writeFileXLSX } from "xlsx"; import DateGroupRadio from '../components/DateGroupRadio'; @@ -80,7 +80,7 @@ const Orders_sub = () => { const format_data = data => { const result = { dataSource: [], columns: [] }; - if (!comm.empty(data)) { + if (!comm.emptyValue(data)) { result.columns = [ { title: "页面", @@ -108,7 +108,7 @@ const Orders_sub = () => { const format_data_detail = data => { const result = { dataSource: [], columns: [] }; - if (!comm.empty(data)) { + if (!comm.emptyValue(data)) { result.columns = [ { title: "订单号", diff --git a/src/views/Sale.jsx b/src/views/Sale.jsx index c2381ff..08ab524 100644 --- a/src/views/Sale.jsx +++ b/src/views/Sale.jsx @@ -4,7 +4,7 @@ import { ContainerOutlined, UserSwitchOutlined } from '@ant-design/icons'; import { stores_Context } from '../config'; import { Column, Pie } from '@ant-design/charts'; import { observer } from 'mobx-react'; -import * as comm from '../utils/commons'; +import * as comm from '@haina/utils-commons'; import { utils, writeFileXLSX } from 'xlsx'; import SearchForm from './../components/search/SearchForm'; import { TableExportBtn } from './../components/Data'; @@ -13,7 +13,7 @@ const Sale = () => { const { sale_store, date_picker_store } = useContext(stores_Context); //const ml_data = sale_store.ml_data; // 毛利数据 - const type_data = comm.empty(sale_store.type_data) ? { dataSource: [], columns: [] } : sale_store.type_data; // 毛利数据 + const type_data = comm.emptyValue(sale_store.type_data) ? { dataSource: [], columns: [] } : sale_store.type_data; // 毛利数据 const column_config_create = (tab_name) => { let average_value = 0; //平均线的值 diff --git a/src/views/Sale_KPI.jsx b/src/views/Sale_KPI.jsx index 25ab186..f8fa549 100644 --- a/src/views/Sale_KPI.jsx +++ b/src/views/Sale_KPI.jsx @@ -2,7 +2,7 @@ import React, { useContext, useState } from 'react'; import { Row, Col, Table, Select, Space, Typography, Progress, Spin, Divider, Button, Switch } from 'antd'; import { stores_Context } from '../config'; import { observer } from 'mobx-react'; -import * as comm from '../utils/commons'; +import * as comm from '@haina/utils-commons'; import SearchForm from './../components/search/SearchForm'; import { dataFieldAlias, overviewGroup } from '../libs/ht'; import Donut from './../components/Donut'; diff --git a/src/views/Sale_sub.jsx b/src/views/Sale_sub.jsx index ccf50fa..c352680 100644 --- a/src/views/Sale_sub.jsx +++ b/src/views/Sale_sub.jsx @@ -6,7 +6,7 @@ import { Column, Pie } from "@ant-design/charts"; import { observer } from "mobx-react"; import DatePickerCharts from "../components/search/DatePickerCharts"; import { NavLink, useParams } from "react-router-dom"; -import * as comm from "../utils/commons"; +import * as comm from '@haina/utils-commons'; import * as config from "../config"; import GroupSelect from "../components/search/GroupSelect"; @@ -18,7 +18,7 @@ const Sale_sub = () => { sale_store.get_department_order_ml_by_type_sub(date_picker_store, type_sub); }, []); - const type_data = comm.empty(sale_store.type_data_sub) ? { dataSource: [], columns: [] } : sale_store.type_data_sub; + const type_data = comm.emptyValue(sale_store.type_data_sub) ? { dataSource: [], columns: [] } : sale_store.type_data_sub; return (
@@ -29,7 +29,7 @@ const Sale_sub = () => { - {!comm.empty(type_data.dataSource) && + {!comm.emptyValue(type_data.dataSource) && type_data.dataSource.map(item => { return ( diff --git a/src/views/ServicePersonNum.jsx b/src/views/ServicePersonNum.jsx index 2597b6d..371b5d5 100644 --- a/src/views/ServicePersonNum.jsx +++ b/src/views/ServicePersonNum.jsx @@ -4,7 +4,7 @@ import { stores_Context } from '../config'; import { Spin, Table, Row, Col, Tabs, Switch } from 'antd'; import SearchForm from './../components/search/SearchForm'; import { TableExportBtn } from './../components/Data'; -import { empty } from '../utils/commons'; +import { emptyValue } from '@haina/utils-commons'; import './kpi.css'; const apartOptions = [ @@ -75,7 +75,7 @@ export default observer((props) => { activeKey={curTab} onChange={(v) => { financialStore.setCurTab(v); - if (empty(servicePersonNum[v].dataSource)) { + if (emptyValue(servicePersonNum[v].dataSource)) { pageRefresh(); } }} diff --git a/src/views/biz/BizOrder.jsx b/src/views/biz/BizOrder.jsx index ee4d320..4edaaee 100644 --- a/src/views/biz/BizOrder.jsx +++ b/src/views/biz/BizOrder.jsx @@ -3,7 +3,8 @@ import { Row, Col, Tabs, Table, Divider, Spin, Checkbox, Space } from 'antd'; import { ContainerOutlined, BlockOutlined, SmileOutlined, MobileOutlined, CustomerServiceOutlined, IeOutlined } from '@ant-design/icons'; import { Line, Pie } from '@ant-design/charts'; import { NavLink } from 'react-router-dom'; -import * as comm from '../../utils/commons'; +import * as comm from '@haina/utils-commons'; +import { show_vs_tag } from './../../utils/commons'; import DateGroupRadio from '../../components/DateGroupRadio'; import SearchForm from '../../components/search/SearchForm'; import { TableExportBtn } from '../../components/Data'; @@ -144,10 +145,10 @@ const BizOrder = observer(() => { { title: !showDiff ? result.ordercountTotal1?.OrderCount - : comm.show_vs_tag(result.ordercountTotal1?.OrderCount_vs, result.ordercountTotal1?.OrderCount_diff, result.ordercountTotal1?.OrderCount, result.ordercountTotal2?.OrderCount), + : show_vs_tag(result.ordercountTotal1?.OrderCount_vs, result.ordercountTotal1?.OrderCount_diff, result.ordercountTotal1?.OrderCount, result.ordercountTotal2?.OrderCount), titleX: [result.ordercountTotal1?.OrderCount, result.ordercountTotal2?.OrderCount].join(' vs '), dataIndex: 'OrderCount', - render: (text, r) => (!showDiff ? text : comm.show_vs_tag(r.OrderCount_vs, r.OrderCount_diff, r.OrderCount, r.diff?.OrderCount)), + render: (text, r) => (!showDiff ? text : show_vs_tag(r.OrderCount_vs, r.OrderCount_diff, r.OrderCount, r.diff?.OrderCount)), }, ], }, @@ -157,10 +158,10 @@ const BizOrder = observer(() => { { title: !showDiff ? result.ordercountTotal1?.CJCount - : comm.show_vs_tag(result.ordercountTotal1?.CJCount_vs, result.ordercountTotal1?.CJCount_diff, result.ordercountTotal1?.CJCount, result.ordercountTotal2?.CJCount), + : show_vs_tag(result.ordercountTotal1?.CJCount_vs, result.ordercountTotal1?.CJCount_diff, result.ordercountTotal1?.CJCount, result.ordercountTotal2?.CJCount), titleX: [result.ordercountTotal1?.CJCount, result.ordercountTotal2?.CJCount].join(' vs '), dataIndex: 'CJCount', - render: (text, r) => (!showDiff ? text : comm.show_vs_tag(r.CJCount_vs, r.CJCount_diff, r.CJCount, r.diff?.CJCount)), + render: (text, r) => (!showDiff ? text : show_vs_tag(r.CJCount_vs, r.CJCount_diff, r.CJCount, r.diff?.CJCount)), }, ], }, @@ -170,10 +171,10 @@ const BizOrder = observer(() => { { title: !showDiff ? result.ordercountTotal1?.CJPersonNum - : comm.show_vs_tag(result.ordercountTotal1?.CJPersonNum_vs, result.ordercountTotal1?.CJPersonNum_diff, result.ordercountTotal1?.CJPersonNum, result.ordercountTotal2?.CJPersonNum), + : show_vs_tag(result.ordercountTotal1?.CJPersonNum_vs, result.ordercountTotal1?.CJPersonNum_diff, result.ordercountTotal1?.CJPersonNum, result.ordercountTotal2?.CJPersonNum), titleX: [result.ordercountTotal1?.CJPersonNum, result.ordercountTotal2?.CJPersonNum].join(' vs '), dataIndex: 'CJPersonNum', - render: (text, r) => (!showDiff ? text : comm.show_vs_tag(r.CJPersonNum_vs, r.CJPersonNum_diff, r.CJPersonNum, r.diff?.CJPersonNum)), + render: (text, r) => (!showDiff ? text : show_vs_tag(r.CJPersonNum_vs, r.CJPersonNum_diff, r.CJPersonNum, r.diff?.CJPersonNum)), }, ], }, @@ -183,10 +184,10 @@ const BizOrder = observer(() => { { title: !showDiff ? result.ordercountTotal1?.CJrate - : comm.show_vs_tag(result.ordercountTotal1?.CJrate_vs, result.ordercountTotal1?.CJrate_diff, result.ordercountTotal1?.CJrate, result.ordercountTotal2?.CJrate), + : show_vs_tag(result.ordercountTotal1?.CJrate_vs, result.ordercountTotal1?.CJrate_diff, result.ordercountTotal1?.CJrate, result.ordercountTotal2?.CJrate), titleX: [result.ordercountTotal1?.CJrate, result.ordercountTotal2?.CJrate].join(' vs '), dataIndex: 'CJrate', - render: (text, r) => (!showDiff ? text : comm.show_vs_tag(r.CJrate_vs, r.CJrate_diff, r.CJrate, r.diff?.CJrate)), + render: (text, r) => (!showDiff ? text : show_vs_tag(r.CJrate_vs, r.CJrate_diff, r.CJrate, r.diff?.CJrate)), }, ], }, @@ -196,10 +197,10 @@ const BizOrder = observer(() => { { title: !showDiff ? result.ordercountTotal1?.YJLY - : comm.show_vs_tag(result.ordercountTotal1?.YJLY_vs, result.ordercountTotal1?.YJLY_diff, result.ordercountTotal1?.YJLY, result.ordercountTotal2?.YJLY), + : show_vs_tag(result.ordercountTotal1?.YJLY_vs, result.ordercountTotal1?.YJLY_diff, result.ordercountTotal1?.YJLY, result.ordercountTotal2?.YJLY), titleX: [result.ordercountTotal1?.YJLY, result.ordercountTotal2?.YJLY].join(' vs '), dataIndex: 'YJLY', - render: (text, r) => (!showDiff ? text : comm.show_vs_tag(r.YJLY_vs, r.YJLY_diff, r.YJLY, r.diff?.YJLY)), + render: (text, r) => (!showDiff ? text : show_vs_tag(r.YJLY_vs, r.YJLY_diff, r.YJLY, r.diff?.YJLY)), }, ], }, @@ -210,10 +211,10 @@ const BizOrder = observer(() => { { title: !showDiff ? result.ordercountTotal1?.Ordervalue - : comm.show_vs_tag(result.ordercountTotal1?.Ordervalue_vs, result.ordercountTotal1?.Ordervalue_diff, result.ordercountTotal1?.Ordervalue, result.ordercountTotal2?.Ordervalue), + : show_vs_tag(result.ordercountTotal1?.Ordervalue_vs, result.ordercountTotal1?.Ordervalue_diff, result.ordercountTotal1?.Ordervalue, result.ordercountTotal2?.Ordervalue), titleX: [result.ordercountTotal1?.Ordervalue, result.ordercountTotal2?.Ordervalue].join(' vs '), dataIndex: 'Ordervalue', - render: (text, r) => (!showDiff ? text : comm.show_vs_tag(r.Ordervalue_vs, r.Ordervalue_diff, r.Ordervalue, r.diff?.Ordervalue)), + render: (text, r) => (!showDiff ? text : show_vs_tag(r.Ordervalue_vs, r.Ordervalue_diff, r.Ordervalue, r.diff?.Ordervalue)), }, ], }, diff --git a/src/views/biz/BizOrderSub.jsx b/src/views/biz/BizOrderSub.jsx index 40df6ea..0572c77 100644 --- a/src/views/biz/BizOrderSub.jsx +++ b/src/views/biz/BizOrderSub.jsx @@ -3,7 +3,7 @@ import { Row, Col, Tabs, Table, Divider, Spin, Space } from 'antd'; import { ContainerOutlined, BlockOutlined, SmileOutlined, MobileOutlined } from '@ant-design/icons'; import { Line } from '@ant-design/charts'; import { NavLink, useParams } from 'react-router-dom'; -import * as comm from '../../utils/commons'; +import { getWeek } from '@haina/utils-commons'; import DateGroupRadio from '../../components/DateGroupRadio'; import SearchForm from '../../components/search/SearchForm'; import { TableExportBtn } from '../../components/Data'; @@ -187,7 +187,7 @@ const BizOrderSub = observer(({ ...props }) => { let ret = title; switch (activeDateGroupRadioSub) { case 'day': - ret = `${title} ${comm.getWeek(datum.xField)}`; // 显示周几 + ret = `${title} ${getWeek(datum.xField)}`; // 显示周几 break; default: diff --git a/src/views/biz/reports/TrainsUpsell.jsx b/src/views/biz/reports/TrainsUpsell.jsx index 203f355..13e7ac4 100644 --- a/src/views/biz/reports/TrainsUpsell.jsx +++ b/src/views/biz/reports/TrainsUpsell.jsx @@ -2,7 +2,8 @@ import { useContext } from 'react'; import { Row, Col, Table, Spin, Space, Divider } from 'antd'; import { Funnel, Pie, Sunburst } from '@ant-design/charts'; -import * as comm from '../../../utils/commons'; +import { isEmpty } from '@haina/utils-commons'; +import { show_vs_tag } from '../../../utils/commons'; import SearchForm from '../../../components/search/SearchForm'; import { observer } from 'mobx-react'; @@ -34,7 +35,7 @@ const buildFunnelData = (data1, data2) => { { stage: '火车票Upsell', number: (_getTrainUpsell(data1?.data)?.OrderCount || 0) + 0, dateRange: data1?.dateRangeStr }, { stage: 'Upsell成行', number: _getTrainUpsell(data1?.data)?.CJCount, dateRange: data1?.dateRangeStr }, ]; - const data02 = !comm.isEmpty(data2) + const data02 = !isEmpty(data2) ? [ { stage: '火车票服务', number: _getTrainService(data2?.data)?.OrderCount || 0, dateRange: data2?.dateRangeStr }, { stage: '成行出票', number: _getTrainService(data2?.data)?.CJCount || 0, dateRange: data2?.dateRangeStr }, @@ -47,13 +48,13 @@ const buildFunnelData = (data1, data2) => { }; const buildPieData = (data1, data2) => { - const data01 = !comm.isEmpty(data1) + const data01 = !isEmpty(data1) ? [ { stage: '火车票出票', number: Number((data1?.data?.[0]?.YJLY || '0').replaceAll(',', '')), dateRange: data1?.dateRangeStr }, { stage: 'Upsell成行', number: Number((data1?.data?.[1]?.YJLY || '0').replaceAll(',', '')), dateRange: data1?.dateRangeStr }, ] : []; - const data02 = !comm.isEmpty(data2) + const data02 = !isEmpty(data2) ? [ { stage: '火车票出票', number: Number((data2?.data?.[0]?.YJLY || '0').replaceAll(',', '')), dateRange: data2?.dateRangeStr }, { stage: 'Upsell成行', number: Number((data2?.data?.[1]?.YJLY || '0').replaceAll(',', '')), dateRange: data2?.dateRangeStr }, @@ -70,7 +71,7 @@ const TrainsUpsell = observer(({ ...props }) => { const [trainsOrdersSummary, compareData] = useTrainsStore((state) => state.trainsOrdersSummary); const trainsUpsellOrdersDetail = useTrainsStore((state) => state.trainsUpsellOrdersDetail); // const showDiff = !comm.isEmpty(searchValuesToSub.DateDiff2); - const showDiff = !comm.isEmpty(compareData); + const showDiff = !isEmpty(compareData); const getTrainsWithUpsell = useTrainsStore((state) => state.getTrainsWithUpsell); const getTrainsOrderDetail = useTrainsStore((state) => state.getTrainsOrderDetail); @@ -167,33 +168,33 @@ const TrainsUpsell = observer(({ ...props }) => { { title: '数量', dataIndex: 'OrderCount', - render: (text, r) => (!showDiff ? text : comm.show_vs_tag(r.OrderCount_vs, r.OrderCount_diff, r.OrderCount, r.diff?.OrderCount)), + render: (text, r) => (!showDiff ? text : show_vs_tag(r.OrderCount_vs, r.OrderCount_diff, r.OrderCount, r.diff?.OrderCount)), }, { title: '成交数', dataIndex: 'CJCount', - render: (text, r) => (!showDiff ? text : comm.show_vs_tag(r.CJCount_vs, r.CJCount_diff, r.CJCount, r.diff?.CJCount)), + render: (text, r) => (!showDiff ? text : show_vs_tag(r.CJCount_vs, r.CJCount_diff, r.CJCount, r.diff?.CJCount)), }, { title: '成交人数', dataIndex: 'CJPersonNum', - render: (text, r) => (!showDiff ? text : comm.show_vs_tag(r.CJPersonNum_vs, r.CJPersonNum_diff, r.CJPersonNum, r.diff?.CJPersonNum)), + render: (text, r) => (!showDiff ? text : show_vs_tag(r.CJPersonNum_vs, r.CJPersonNum_diff, r.CJPersonNum, r.diff?.CJPersonNum)), }, { title: '成交率', dataIndex: 'CJrate', - render: (text, r) => (!showDiff ? text : comm.show_vs_tag(r.CJrate_vs, r.CJrate_diff, r.CJrate, r.diff?.CJrate)), + render: (text, r) => (!showDiff ? text : show_vs_tag(r.CJrate_vs, r.CJrate_diff, r.CJrate, r.diff?.CJrate)), }, { title: '成交毛利(预计)', dataIndex: 'YJLY', - render: (text, r) => (!showDiff ? text : comm.show_vs_tag(r.YJLY_vs, r.YJLY_diff, r.YJLY, r.diff?.YJLY)), + render: (text, r) => (!showDiff ? text : show_vs_tag(r.YJLY_vs, r.YJLY_diff, r.YJLY, r.diff?.YJLY)), }, { title: '单个订单价值', dataIndex: 'Ordervalue', - render: (text, r) => (!showDiff ? text : comm.show_vs_tag(r.Ordervalue_vs, r.Ordervalue_diff, r.Ordervalue, r.diff?.Ordervalue)), + render: (text, r) => (!showDiff ? text : show_vs_tag(r.Ordervalue_vs, r.Ordervalue_diff, r.Ordervalue, r.diff?.Ordervalue)), }, ]; return ( diff --git a/src/views/sales-crm/Dashboard.jsx b/src/views/sales-crm/Dashboard.jsx index 14859bb..594b769 100644 --- a/src/views/sales-crm/Dashboard.jsx +++ b/src/views/sales-crm/Dashboard.jsx @@ -6,7 +6,7 @@ import moment from 'moment'; import { Row, Col, Table, Select, Spin, Tag } from 'antd'; import SearchForm from '../../components/search/SearchForm'; import MixFieldsDetail from '../../components/MixFieldsDetail'; -import { fixTo2Decimals, isEmpty, pick } from '../../utils/commons'; +import { fixTo2Decimals, isEmpty, pick } from '@haina/utils-commons'; import Column from '../../components/Column'; import { groupsMappedByKey } from '../../libs/ht'; diff --git a/src/views/sales-crm/Process.jsx b/src/views/sales-crm/Process.jsx index b5f5eb2..0b94caa 100644 --- a/src/views/sales-crm/Process.jsx +++ b/src/views/sales-crm/Process.jsx @@ -5,7 +5,7 @@ import { stores_Context } from '../../config'; import { InfoCircleOutlined } from '@ant-design/icons'; import { Row, Col, Table, Tooltip } from 'antd'; import SearchForm from '../../components/search/SearchForm'; -import { pick } from '../../utils/commons'; +import { pick } from '@haina/utils-commons'; const COLOR_SETS = [ "#FFFFFF", diff --git a/src/views/sales-crm/Risk.jsx b/src/views/sales-crm/Risk.jsx index ba0aacb..ae694e0 100644 --- a/src/views/sales-crm/Risk.jsx +++ b/src/views/sales-crm/Risk.jsx @@ -4,7 +4,7 @@ import { observer } from 'mobx-react'; import { stores_Context, DATE_FORMAT, SMALL_DATETIME_FORMAT } from '../../config'; import { InfoCircleOutlined } from '@ant-design/icons'; import { Row, Col, Table, Divider, Button, Popover, Tooltip } from 'antd'; -import { fixTo2Decimals } from '../../utils/commons'; +import { fixTo2Decimals } from '@haina/utils-commons'; import MixFieldsDetail from '../../components/MixFieldsDetail'; const COLOR_SETS = [