@kmkf-fe-packages/kmkf-work-order-service-component 2.10.30 → 2.11.1

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.
@@ -420,7 +420,7 @@ var CurrentNode = function CurrentNode(props, ref) {
420
420
  }();
421
421
  var isArtificialNode = tag === 'artificial';
422
422
  var isAutoNode = tag === 'auto';
423
- var isShowAutoNodeDetail = isAutoNode && ['ORDER_MEMO_MANY_RULES', 'AFTER_SALE_AUTO_RETURN_GOODS_AGREE_REJECT', 'AFTER_SALE_AUTO_REFUND_REJECT', 'LOGISTICS_INTERCEPT_MULTI_RULE', 'MESSAGE_NOTIFY_EVENT', 'DING_TALK_ROBOT_NOTIFY', 'HTTP_INVOKE', 'ORDER_MEMO', 'LBDJ_ONE_PRICE_ORDER', 'JST_OBTAIN_REISSUE_LOGISTICS', 'JST_REISSUE_NEW', 'JST_RETURN_EXCHANGE', 'JST_INBOUND_STATUS_SYNC', 'TTX_INBOUND_STATUS_SYNC', 'WDT_STORE_STATUS_V2', 'JY_INBOUND_STATUS_SYNC', 'KM_WAREHOUSING_STATUS_EVENT', 'DAXIDI_INBOUND_STATUS_SYNC', 'MESSAGE_CHANNEL_SEND', 'CREATE_WORK_ORDER'].includes(eventType);
423
+ var isShowAutoNodeDetail = isAutoNode && ['ORDER_MEMO_MANY_RULES', 'AFTER_SALE_AUTO_RETURN_GOODS_AGREE_REJECT', 'AFTER_SALE_AUTO_REFUND_REJECT', 'LOGISTICS_INTERCEPT_MULTI_RULE', 'MESSAGE_NOTIFY_EVENT', 'DING_TALK_ROBOT_NOTIFY', 'HTTP_INVOKE', 'ORDER_MEMO', 'LBDJ_ONE_PRICE_ORDER', 'JST_OBTAIN_REISSUE_LOGISTICS', 'JST_REISSUE_NEW', 'JST_RETURN_EXCHANGE', 'JST_INBOUND_STATUS_SYNC', 'TTX_INBOUND_STATUS_SYNC', 'WDT_STORE_STATUS', 'WDT_STORE_STATUS_V2', 'JY_INBOUND_STATUS_SYNC', 'KM_WAREHOUSING_STATUS_EVENT', 'DAXIDI_INBOUND_STATUS_SYNC', 'MESSAGE_CHANNEL_SEND', 'CREATE_WORK_ORDER'].includes(eventType);
424
424
  var showEdit = isArtificialNode && isCurrentNodeHandler && !readonly && (currentNodeDetail === null || currentNodeDetail === void 0 ? void 0 : (_currentNodeDetail$wo8 = currentNodeDetail.workOrder) === null || _currentNodeDetail$wo8 === void 0 ? void 0 : _currentNodeDetail$wo8.flowStatus) === FlowStatus.COMPLETED;
425
425
  // TODO: 决策节点给后端修复数据加了一个入口
426
426
  // @ts-ignore
@@ -4,7 +4,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
4
4
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
5
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
6
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
- import React, { useState } from 'react';
7
+ import React, { useMemo, useState } from 'react';
8
8
  import { Button, Spin, Tooltip, Typography, Space, Modal, Table } from 'antd';
9
9
  import moment from 'moment';
10
10
  import { useRequest, useToggle } from 'ahooks';
@@ -13,6 +13,7 @@ import { selectPrivilege } from "../../store/selector";
13
13
  import { queryFlowFail, queryNodeDetail } from "../../../model/flowTemplateDetail/api";
14
14
  import { useDoubleClick } from "../../../hooks/useDoubleClick/index";
15
15
  import { NODE_TYPE } from "../../../common/constant";
16
+ import { buildKibanaLink } from "./kibana";
16
17
  import styles from "./index.module.less";
17
18
  var Text = Typography.Text;
18
19
  var columns = [{
@@ -32,7 +33,7 @@ var columns = [{
32
33
  width: '550px'
33
34
  }];
34
35
  var Header = function Header(props) {
35
- var _NODE_TYPE$tag, _NODE_TYPE$tag2, _data$data, _nodeDetail$data, _nodeDetail$data$flow, _nodeDetail$data2, _nodeDetail$data2$nod, _nodeDetail$data2$nod2, _nodeDetail$data3, _nodeDetail$data3$nod;
36
+ var _NODE_TYPE$tag, _NODE_TYPE$tag2, _data$data, _nodeDetail$data3, _nodeDetail$data3$flo, _nodeDetail$data4, _nodeDetail$data4$nod, _nodeDetail$data4$nod2, _nodeDetail$data5, _nodeDetail$data5$nod;
36
37
  var tag = props.tag,
37
38
  nodeName = props.nodeName,
38
39
  showLook = props.showLook,
@@ -112,6 +113,25 @@ var Header = function Header(props) {
112
113
  queryNodeDetailLoading = _useRequest2.loading,
113
114
  requestNodeDetail = _useRequest2.run,
114
115
  nodeDetail = _useRequest2.data;
116
+ var kibanaLink = useMemo(function () {
117
+ var _nodeDetail$data, _nodeDetail$data$work, _nodeDetail$data2, _nodeDetail$data2$wor;
118
+ return buildKibanaLink({
119
+ flowWorkOrderId: flowWorkOrderId,
120
+ nodeId: nodeId,
121
+ completedTime: completedTime,
122
+ workOrderUpdateTime: nodeDetail === null || nodeDetail === void 0 ? void 0 : (_nodeDetail$data = nodeDetail.data) === null || _nodeDetail$data === void 0 ? void 0 : (_nodeDetail$data$work = _nodeDetail$data.workOrder) === null || _nodeDetail$data$work === void 0 ? void 0 : _nodeDetail$data$work.update,
123
+ workOrderCreatedTime: nodeDetail === null || nodeDetail === void 0 ? void 0 : (_nodeDetail$data2 = nodeDetail.data) === null || _nodeDetail$data2 === void 0 ? void 0 : (_nodeDetail$data2$wor = _nodeDetail$data2.workOrder) === null || _nodeDetail$data2$wor === void 0 ? void 0 : _nodeDetail$data2$wor.created
124
+ });
125
+ }, [completedTime, flowWorkOrderId, nodeDetail, nodeId]);
126
+ var handleOpenKibana = function handleOpenKibana() {
127
+ if (!kibanaLink) return;
128
+ console.debug('打开节点 Kibana 日志', {
129
+ nodeId: nodeId,
130
+ from: kibanaLink.from,
131
+ to: kibanaLink.to
132
+ });
133
+ window.open(kibanaLink.url, '_blank', 'noopener,noreferrer');
134
+ };
115
135
  var handleLookAbnormal = function handleLookAbnormal() {
116
136
  run();
117
137
  setVisible(true);
@@ -224,6 +244,12 @@ var Header = function Header(props) {
224
244
  footer: null
225
245
  }, /*#__PURE__*/React.createElement(Spin, {
226
246
  spinning: queryNodeDetailLoading
227
- }, /*#__PURE__*/React.createElement("p", null, "\u6D41\u7A0B\u5DE5\u5355ID: ", flowWorkOrderId), /*#__PURE__*/React.createElement("p", null, "\u6D41\u7A0B\u6A21\u677FID: ", flowTemplateId), /*#__PURE__*/React.createElement("p", null, "\u6D41\u7A0B\u6A21\u677FKey: ", flowTemplateKey), /*#__PURE__*/React.createElement("p", null, "\u8282\u70B9ID: ", nodeId), tag === 'auto' && /*#__PURE__*/React.createElement("p", null, "\u81EA\u52A8\u5316\u4EFB\u52A1ID: ", nodeDetail === null || nodeDetail === void 0 ? void 0 : (_nodeDetail$data = nodeDetail.data) === null || _nodeDetail$data === void 0 ? void 0 : (_nodeDetail$data$flow = _nodeDetail$data.flowEventData) === null || _nodeDetail$data$flow === void 0 ? void 0 : _nodeDetail$data$flow.uniqueKey), /*#__PURE__*/React.createElement("p", null, "\u8282\u70B9\u7C7B\u578B:", (nodeDetail === null || nodeDetail === void 0 ? void 0 : (_nodeDetail$data2 = nodeDetail.data) === null || _nodeDetail$data2 === void 0 ? void 0 : (_nodeDetail$data2$nod = _nodeDetail$data2.nodeInfo) === null || _nodeDetail$data2$nod === void 0 ? void 0 : (_nodeDetail$data2$nod2 = _nodeDetail$data2$nod.relationEvent) === null || _nodeDetail$data2$nod2 === void 0 ? void 0 : _nodeDetail$data2$nod2.eventType) || (nodeDetail === null || nodeDetail === void 0 ? void 0 : (_nodeDetail$data3 = nodeDetail.data) === null || _nodeDetail$data3 === void 0 ? void 0 : (_nodeDetail$data3$nod = _nodeDetail$data3.nodeInfo) === null || _nodeDetail$data3$nod === void 0 ? void 0 : _nodeDetail$data3$nod.nodeType))))));
247
+ }, /*#__PURE__*/React.createElement("p", null, "\u6D41\u7A0B\u5DE5\u5355ID: ", flowWorkOrderId), /*#__PURE__*/React.createElement("p", null, "\u6D41\u7A0B\u6A21\u677FID: ", flowTemplateId), /*#__PURE__*/React.createElement("p", null, "\u6D41\u7A0B\u6A21\u677FKey: ", flowTemplateKey), /*#__PURE__*/React.createElement("p", null, "\u8282\u70B9ID: ", nodeId), tag === 'auto' && /*#__PURE__*/React.createElement("p", null, "\u81EA\u52A8\u5316\u4EFB\u52A1ID: ", nodeDetail === null || nodeDetail === void 0 ? void 0 : (_nodeDetail$data3 = nodeDetail.data) === null || _nodeDetail$data3 === void 0 ? void 0 : (_nodeDetail$data3$flo = _nodeDetail$data3.flowEventData) === null || _nodeDetail$data3$flo === void 0 ? void 0 : _nodeDetail$data3$flo.uniqueKey), /*#__PURE__*/React.createElement("p", null, "\u8282\u70B9\u7C7B\u578B:", (nodeDetail === null || nodeDetail === void 0 ? void 0 : (_nodeDetail$data4 = nodeDetail.data) === null || _nodeDetail$data4 === void 0 ? void 0 : (_nodeDetail$data4$nod = _nodeDetail$data4.nodeInfo) === null || _nodeDetail$data4$nod === void 0 ? void 0 : (_nodeDetail$data4$nod2 = _nodeDetail$data4$nod.relationEvent) === null || _nodeDetail$data4$nod2 === void 0 ? void 0 : _nodeDetail$data4$nod2.eventType) || (nodeDetail === null || nodeDetail === void 0 ? void 0 : (_nodeDetail$data5 = nodeDetail.data) === null || _nodeDetail$data5 === void 0 ? void 0 : (_nodeDetail$data5$nod = _nodeDetail$data5.nodeInfo) === null || _nodeDetail$data5$nod === void 0 ? void 0 : _nodeDetail$data5$nod.nodeType)), !queryNodeDetailLoading && (nodeDetail === null || nodeDetail === void 0 ? void 0 : nodeDetail.success) && kibanaLink && /*#__PURE__*/React.createElement(Button, {
248
+ type: "link",
249
+ onClick: handleOpenKibana,
250
+ style: {
251
+ padding: 0
252
+ }
253
+ }, "\u67E5\u770B\u65E5\u5FD7")))));
228
254
  };
229
255
  export default Header;
@@ -0,0 +1,13 @@
1
+ export interface BuildKibanaLinkOptions {
2
+ flowWorkOrderId: string;
3
+ nodeId: string;
4
+ completedTime?: string | number;
5
+ workOrderUpdateTime?: string | number;
6
+ workOrderCreatedTime?: string | number;
7
+ }
8
+ export interface KibanaLink {
9
+ url: string;
10
+ from: string;
11
+ to: string;
12
+ }
13
+ export declare const buildKibanaLink: (options: BuildKibanaLinkOptions) => KibanaLink | null;
@@ -0,0 +1,34 @@
1
+ var KIBANA_BASE_URL = 'https://kmkf-kibana.kuaimai.com/app/discover#/';
2
+ var KIBANA_INDEX = 'b8d69d60-ba9c-11ec-ab5c-7df91538f103';
3
+ var parseTime = function parseTime(value) {
4
+ if (value === undefined || value === null || value === '') return null;
5
+ var date = new Date(value);
6
+ return Number.isNaN(date.getTime()) ? null : date;
7
+ };
8
+ var toRisonValue = function toRisonValue(value) {
9
+ if (/^[A-Za-z0-9_./~-]+$/.test(value)) return value;
10
+ return "'".concat(value.replace(/!/g, '!!').replace(/'/g, "!'"), "'");
11
+ };
12
+ var buildPhraseFilter = function buildPhraseFilter(key, value) {
13
+ var risonValue = toRisonValue(value);
14
+ return "('$state':(store:appState),meta:(alias:!n,disabled:!f,index:".concat(KIBANA_INDEX, ",key:").concat(key, ",negate:!f,params:(query:").concat(risonValue, "),type:phrase),query:(match_phrase:(").concat(key, ":").concat(risonValue, ")))");
15
+ };
16
+ export var buildKibanaLink = function buildKibanaLink(options) {
17
+ var flowWorkOrderId = options.flowWorkOrderId,
18
+ nodeId = options.nodeId;
19
+ if (!flowWorkOrderId || !nodeId) return null;
20
+ var baseTime = [options.completedTime, options.workOrderUpdateTime, options.workOrderCreatedTime].map(parseTime).find(function (time) {
21
+ return time !== null;
22
+ });
23
+ if (!baseTime) return null;
24
+ var from = new Date(baseTime.getTime() - 15 * 60 * 1000).toISOString();
25
+ var to = new Date(baseTime.getTime() + 3 * 60 * 60 * 1000).toISOString();
26
+ var filters = [buildPhraseFilter('bizDataMap.flowWorkOrderId', flowWorkOrderId), buildPhraseFilter('bizDataMap.nodeId', nodeId)];
27
+ var globalState = "(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:'".concat(from, "',to:'").concat(to, "'))");
28
+ var appState = "(columns:!(logName),filters:!(".concat(filters.join(','), "),hideChart:!f,index:").concat(KIBANA_INDEX, ",interval:auto,query:(language:kuery,query:''),sort:!(!(logTime,desc)))");
29
+ return {
30
+ url: "".concat(KIBANA_BASE_URL, "?_g=").concat(globalState, "&_a=").concat(appState),
31
+ from: from,
32
+ to: to
33
+ };
34
+ };
@@ -317,7 +317,7 @@ var WorkOrder = function WorkOrder(props) {
317
317
  };
318
318
 
319
319
  // 其他平台映射
320
- var otherPlatformMap = (_otherPlatformMap = {}, _defineProperty(_otherPlatformMap, PlatForm.FXG, 'dy'), _defineProperty(_otherPlatformMap, PlatForm.TB, 'qn'), _defineProperty(_otherPlatformMap, PlatForm.KS, 'ks'), _defineProperty(_otherPlatformMap, PlatForm.JD, 'jd'), _defineProperty(_otherPlatformMap, PlatForm.WEB, 'green'), _otherPlatformMap);
320
+ var otherPlatformMap = (_otherPlatformMap = {}, _defineProperty(_otherPlatformMap, PlatForm.FXG, 'dy'), _defineProperty(_otherPlatformMap, PlatForm.TB, 'qn'), _defineProperty(_otherPlatformMap, PlatForm.KS, 'ks'), _defineProperty(_otherPlatformMap, PlatForm.PDD, 'pdd'), _defineProperty(_otherPlatformMap, PlatForm.JD, 'jd'), _defineProperty(_otherPlatformMap, PlatForm.WEB, 'green'), _otherPlatformMap);
321
321
  if (platform === PlatForm.XIAOZHI) {
322
322
  var clientType = String(otherInfo === null || otherInfo === void 0 ? void 0 : otherInfo.xzClientPlatformType);
323
323
  var featureKey = xiaozhiClientMap[clientType];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kmkf-fe-packages/kmkf-work-order-service-component",
3
- "version": "2.10.30",
3
+ "version": "2.11.1",
4
4
  "module": "dist/esm/index.js",
5
5
  "typings": "dist/esm/index.d.ts",
6
6
  "files": [
@@ -32,9 +32,9 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@ant-design/icons": "^4.7.0",
35
- "@kmkf-fe-packages/basic-components": "2.10.30",
36
- "@kmkf-fe-packages/kmkf-utils": "2.10.30",
37
- "@kmkf-fe-packages/services-components": "2.10.30",
35
+ "@kmkf-fe-packages/basic-components": "2.11.1",
36
+ "@kmkf-fe-packages/kmkf-utils": "2.11.1",
37
+ "@kmkf-fe-packages/services-components": "2.11.1",
38
38
  "@reduxjs/toolkit": "^1.8.5",
39
39
  "ahooks": "^3.7.4",
40
40
  "copy-to-clipboard": "^3.3.3",
@@ -75,7 +75,7 @@
75
75
  "publishConfig": {
76
76
  "access": "public"
77
77
  },
78
- "gitHead": "ea173c9a55b9b65711d6605fe5aa28d751b523b8",
78
+ "gitHead": "3f2986bf8a306c1778d357bbbea27f6bb1e7e39e",
79
79
  "gitHooks": {
80
80
  "pre-commit": "lint-staged"
81
81
  }