@kmkf-fe-packages/kmkf-work-order-service-component 2.2.44-beta.26 → 2.2.44-beta.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -555,6 +555,53 @@ var detailItemListMap = {};
555
555
  DETAIL_ITEM_LIST.forEach(function (item) {
556
556
  detailItemListMap[item.dataIndex] = item;
557
557
  });
558
+
559
+ /** 全局 tableColumns 缓存,供所有 OrderInfo 复用,减少 queryColumns 请求 */
560
+ var CACHE_TTL_MS = 5 * 60 * 1000; // 5 分钟失效
561
+ var sharedTableColumnsCache = null;
562
+ var fetchColumnsPromise = null;
563
+ function getCachedColumns() {
564
+ if (!sharedTableColumnsCache) return null;
565
+ if (Date.now() - sharedTableColumnsCache.timestamp >= CACHE_TTL_MS) return null;
566
+ return sharedTableColumnsCache.columns;
567
+ }
568
+ function fetchAndCacheColumns() {
569
+ var cached = getCachedColumns();
570
+ if (cached) return Promise.resolve(cached);
571
+ if (fetchColumnsPromise) return fetchColumnsPromise;
572
+ fetchColumnsPromise = queryColumns().then(function (_ref) {
573
+ var _data$, _data$$queryInfo;
574
+ var data = _ref.data;
575
+ if (data !== null && data !== void 0 && (_data$ = data[0]) !== null && _data$ !== void 0 && (_data$$queryInfo = _data$.queryInfo) !== null && _data$$queryInfo !== void 0 && _data$$queryInfo.length) {
576
+ try {
577
+ var newColumns = [];
578
+ var list = JSON.parse(JSON.parse(data[0].queryInfo));
579
+ list.forEach(function (item) {
580
+ if (!item.show) return;
581
+ if (detailItemListMap[item.dataIndex]) {
582
+ newColumns.push(detailItemListMap[item.dataIndex]);
583
+ }
584
+ });
585
+ return newColumns;
586
+ } catch (err) {
587
+ console.debug('parse Error: ', err);
588
+ return DETAIL_ITEM_LIST;
589
+ }
590
+ }
591
+ return DETAIL_ITEM_LIST;
592
+ }).catch(function (err) {
593
+ console.debug(err);
594
+ return DETAIL_ITEM_LIST;
595
+ }).then(function (columns) {
596
+ sharedTableColumnsCache = {
597
+ columns: columns,
598
+ timestamp: Date.now()
599
+ };
600
+ fetchColumnsPromise = null;
601
+ return columns;
602
+ });
603
+ return fetchColumnsPromise;
604
+ }
558
605
  var renderDetailItem = function renderDetailItem(record, item, effects) {
559
606
  var isTable = 'children' in item && item.children;
560
607
  var value = isTable ? record[item.dataIndex] : record.main[item.dataIndex];
@@ -566,12 +613,19 @@ var renderDetailItem = function renderDetailItem(record, item, effects) {
566
613
  className: styles.detailItemTitle
567
614
  }, item.title, "\uFF1A"), /*#__PURE__*/React.createElement("span", null, 'render' in item && item.render ? item.render(value, record, item, effects) : value));
568
615
  };
569
- var tableColumns;
570
616
  var OrderInfo = function OrderInfo(props) {
571
617
  var _React$useState = React.useState(),
572
618
  _React$useState2 = _slicedToArray(_React$useState, 2),
573
619
  orderInfo = _React$useState2[0],
574
620
  setOrderInfo = _React$useState2[1];
621
+ // 复用全局缓存,有则用缓存(含 5 分钟有效期),无则走 fetchAndCacheColumns 拉取并写入缓存
622
+ var _React$useState3 = React.useState(function () {
623
+ var _getCachedColumns;
624
+ return (_getCachedColumns = getCachedColumns()) !== null && _getCachedColumns !== void 0 ? _getCachedColumns : [];
625
+ }),
626
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
627
+ tableColumns = _React$useState4[0],
628
+ setTableColumns = _React$useState4[1];
575
629
  React.useEffect(function () {
576
630
  if (props.id) {
577
631
  queryInstallationRepairDetail(props.id).then(function (res) {
@@ -594,31 +648,9 @@ var OrderInfo = function OrderInfo(props) {
594
648
  return;
595
649
  }, [props.id]);
596
650
  React.useEffect(function () {
597
- if (!tableColumns || tableColumns.length === 0) {
598
- queryColumns().then(function (_ref) {
599
- var _data$, _data$$queryInfo;
600
- var data = _ref.data;
601
- if (data !== null && data !== void 0 && (_data$ = data[0]) !== null && _data$ !== void 0 && (_data$$queryInfo = _data$.queryInfo) !== null && _data$$queryInfo !== void 0 && _data$$queryInfo.length) {
602
- try {
603
- var newColumns = [];
604
- var list = JSON.parse(JSON.parse(data[0].queryInfo));
605
- list.forEach(function (item) {
606
- if (!item.show) return;
607
- if (detailItemListMap[item.dataIndex]) {
608
- newColumns.push(detailItemListMap[item.dataIndex]);
609
- }
610
- });
611
- tableColumns = newColumns;
612
- } catch (err) {
613
- console.debug('parse Error: ', err);
614
- }
615
- } else {
616
- tableColumns = DETAIL_ITEM_LIST;
617
- }
618
- }).catch(console.debug);
619
- }
651
+ fetchAndCacheColumns().then(setTableColumns);
620
652
  }, []);
621
- return orderInfo && tableColumns ? /*#__PURE__*/React.createElement("div", null, tableColumns.map(function (item) {
653
+ return orderInfo && tableColumns.length > 0 ? /*#__PURE__*/React.createElement("div", null, tableColumns.map(function (item) {
622
654
  return renderDetailItem(orderInfo, item, {
623
655
  shopList: props.shopList
624
656
  });
@@ -9,7 +9,6 @@ import React, { useState } from 'react';
9
9
  import { CloseOutlined } from '@ant-design/icons';
10
10
  import LBOrderDetail from "./detail/index";
11
11
  import { useWindowSize } from '@kmkf-fe-packages/kmkf-utils';
12
- console.log("\uD83D\uDE80 ~ index.tsx:7 ~ useWindowSize:", useWindowSize);
13
12
  export * from "./detail/types";
14
13
  export * from "./detail/OrderInfo";
15
14
  export * from "./detail/ServiceProgress";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kmkf-fe-packages/kmkf-work-order-service-component",
3
- "version": "2.2.44-beta.26",
3
+ "version": "2.2.44-beta.27",
4
4
  "module": "dist/esm/index.js",
5
5
  "typings": "dist/esm/index.d.ts",
6
6
  "files": [
@@ -75,7 +75,7 @@
75
75
  "publishConfig": {
76
76
  "access": "public"
77
77
  },
78
- "gitHead": "37d9544f0ff311b4cd7bfe75aaeb6bba8a11df67",
78
+ "gitHead": "6ac1712e67311b202e26b19f51cfcea9db2bd2c4",
79
79
  "gitHooks": {
80
80
  "pre-commit": "lint-staged"
81
81
  }