@kmkf-fe-packages/kmkf-work-order-service-component 2.2.4 → 2.3.0-rc.0
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.
- package/dist/esm/CustomerServiceToDoList/index.d.ts +3 -0
- package/dist/esm/CustomerServiceToDoList/index.js +155 -0
- package/dist/esm/CustomerServiceToDoList/index.module.less +134 -0
- package/dist/esm/FlowTemplateDetailV2/common.js +1 -0
- package/dist/esm/FlowTemplateDetailV2/components/FormRender/component-dependency-finder.d.ts +75 -0
- package/dist/esm/FlowTemplateDetailV2/components/FormRender/component-dependency-finder.js +328 -0
- package/dist/esm/FlowTemplateDetailV2/components/FormRender/index.js +84 -36
- package/dist/esm/FlowTemplateDetailV2/components/FormRender/types.d.ts +41 -0
- package/dist/esm/FlowTemplateDetailV2/components/FormRender/types.js +1 -0
- package/dist/esm/FlowTemplateDetailV2/components/FormRender/value-mapping-finder.d.ts +61 -0
- package/dist/esm/FlowTemplateDetailV2/components/FormRender/value-mapping-finder.js +292 -0
- package/dist/esm/FlowTemplateDetailV2/components/FormRender/value-mapping-types.d.ts +65 -0
- package/dist/esm/FlowTemplateDetailV2/components/FormRender/value-mapping-types.js +1 -0
- package/dist/esm/FlowTemplateDetailV2/index.js +12 -4
- package/dist/esm/WorkOrder/components/CustomerServiceToDoCard/index.d.ts +3 -0
- package/dist/esm/WorkOrder/components/CustomerServiceToDoCard/index.js +76 -0
- package/dist/esm/WorkOrder/components/CustomerServiceToDoCard/index.module.less +20 -0
- package/dist/esm/WorkOrder/components/WorkOrderList/components/CustomizeWorkOrderCard/index.js +6 -0
- package/dist/esm/WorkOrder/components/WorkOrderList/index.js +7 -2
- package/dist/esm/WorkOrder/components/WorkOrderList/index.less +4 -3
- package/dist/esm/WorkOrder/index.js +21 -1
- package/dist/esm/common/constant.d.ts +5 -0
- package/dist/esm/common/constant.js +3 -2
- package/dist/esm/common/imgs/ai.png +0 -0
- package/dist/esm/common/imgs/notification.png +0 -0
- package/dist/esm/common/utils/xzSDK.d.ts +2 -0
- package/dist/esm/common/utils/xzSDK.js +45 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/model/customizeWorkOrder/index.d.ts +1 -1
- package/dist/esm/model/customizeWorkOrder/index.js +17 -3
- package/dist/esm/model/customizeWorkOrder/types.d.ts +2 -0
- package/dist/esm/model/logicFlow/selector.d.ts +3 -0
- package/dist/esm/model/paymentWorkOrder/selector.d.ts +9 -0
- package/dist/esm/model/servers/api.d.ts +1 -0
- package/dist/esm/model/servers/api.js +9 -0
- package/dist/esm/model/singleShopWorkOrder/selector.d.ts +5 -0
- package/package.json +5 -5
- package/dist/esm/GlobalContext/hook/dist/useGetHasErpData.js +0 -52
- package/dist/esm/GlobalContext/orderQuery/dist/useGetErpAddressData.js +0 -180
- package/dist/esm/GlobalContext/orderQuery/dist/useGetErpLogisticsCompany.js +0 -186
- package/dist/esm/common/utils/dist/submitDataTransOldFormat.js +0 -899
- package/dist/esm/common/utils/dist/tools.js +0 -1326
- package/dist/esm/common/utils/dist/transformWorkOrderData.js +0 -965
- package/dist/esm/model/customizeWorkOrder/dist/api.js +0 -48
- package/dist/esm/model/customizeWorkOrder/dist/index.js +0 -370
- package/dist/esm/model/customizeWorkOrder/dist/selector.js +0 -63
- package/dist/esm/model/customizeWorkOrder/dist/types.js +0 -3
- package/dist/esm/model/dist/global.js +0 -44
- package/dist/esm/model/dist/hooks.js +0 -15
- package/dist/esm/model/dist/login.js +0 -245
- package/dist/esm/model/dist/store.js +0 -30
- package/dist/esm/model/dist/userData.js +0 -41
- package/dist/esm/model/dist/workOrder.js +0 -329
- package/dist/esm/model/flowTemplateDetail/dist/api.js +0 -192
- package/dist/esm/model/flowTemplateDetail/dist/types.js +0 -48
- package/dist/esm/model/logicFlow/dist/api.js +0 -14
- package/dist/esm/model/logicFlow/dist/index.js +0 -235
- package/dist/esm/model/logicFlow/dist/selector.js +0 -18
- package/dist/esm/model/logicFlow/dist/types.js +0 -3
- package/dist/esm/model/paymentWorkOrder/dist/index.js +0 -77
- package/dist/esm/model/paymentWorkOrder/dist/selector.js +0 -36
- package/dist/esm/model/paymentWorkOrder/dist/types.js +0 -3
- package/dist/esm/model/servers/dist/api.js +0 -545
- package/dist/esm/model/servers/dist/request.js +0 -63
- package/dist/esm/model/singleShopWorkOrder/dist/index.js +0 -216
- package/dist/esm/model/singleShopWorkOrder/dist/selector.js +0 -24
- package/dist/esm/model/singleShopWorkOrder/dist/types.js +0 -3
- package/dist/esm/model/types/dist/login.js +0 -3
- package/dist/esm/model/types/dist/singleWorkOrder.js +0 -3
- package/dist/esm/model/types/dist/workOrder.js +0 -3
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
4
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
5
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
6
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
7
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
8
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
9
|
+
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; }
|
|
10
|
+
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; } }
|
|
11
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
+
/**
|
|
13
|
+
* 组件值映射依赖关系查找器 - TypeScript ES Module版本
|
|
14
|
+
* 根据值映射配置查找组件之间的依赖关系
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* 查找组件的所有反向依赖(哪些组件会影响当前组件的值)
|
|
19
|
+
* @param targetComponentKey - 目标组件key
|
|
20
|
+
* @param config - 值映射配置对象
|
|
21
|
+
* @returns 反向依赖关系结果
|
|
22
|
+
*/
|
|
23
|
+
export function findValueDependencies(targetComponentKey, config) {
|
|
24
|
+
var dependencies = [];
|
|
25
|
+
|
|
26
|
+
// 遍历配置中的所有组件
|
|
27
|
+
Object.entries(config).forEach(function (_ref) {
|
|
28
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
29
|
+
sourceComponentKey = _ref2[0],
|
|
30
|
+
componentMapping = _ref2[1];
|
|
31
|
+
// 跳过 SHOP_SELECT_MAPPING 等非组件映射的配置
|
|
32
|
+
if (_typeof(componentMapping) !== 'object' || componentMapping === null) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
var sourceValues = [];
|
|
36
|
+
var mappingDetails = [];
|
|
37
|
+
|
|
38
|
+
// 遍历源组件的所有值映射
|
|
39
|
+
Object.entries(componentMapping).forEach(function (_ref3) {
|
|
40
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
41
|
+
sourceValue = _ref4[0],
|
|
42
|
+
valueMapping = _ref4[1];
|
|
43
|
+
// 检查这个值映射中是否包含目标组件
|
|
44
|
+
if (_typeof(valueMapping) === 'object' && valueMapping !== null) {
|
|
45
|
+
// 检查是否有目标组件的映射
|
|
46
|
+
if (targetComponentKey in valueMapping) {
|
|
47
|
+
var targetMapping = valueMapping[targetComponentKey];
|
|
48
|
+
var targetValue;
|
|
49
|
+
|
|
50
|
+
// 处理不同格式的目标值
|
|
51
|
+
if (typeof targetMapping === 'string') {
|
|
52
|
+
targetValue = targetMapping;
|
|
53
|
+
} else if (Array.isArray(targetMapping)) {
|
|
54
|
+
targetValue = targetMapping.join(', '); // 数组转为字符串
|
|
55
|
+
} else if (_typeof(targetMapping) === 'object' && targetMapping !== null && 'value' in targetMapping) {
|
|
56
|
+
targetValue = targetMapping.value;
|
|
57
|
+
} else {
|
|
58
|
+
return; // 跳过无效的映射
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
sourceValues.push(sourceValue);
|
|
62
|
+
mappingDetails.push({
|
|
63
|
+
sourceValue: sourceValue,
|
|
64
|
+
targetValue: targetValue
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
// 如果找到了依赖关系,添加到结果中
|
|
71
|
+
if (sourceValues.length > 0) {
|
|
72
|
+
dependencies.push({
|
|
73
|
+
sourceComponent: sourceComponentKey,
|
|
74
|
+
sourceValues: sourceValues,
|
|
75
|
+
mappingDetails: mappingDetails
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
return {
|
|
80
|
+
targetComponent: targetComponentKey,
|
|
81
|
+
dependencies: dependencies,
|
|
82
|
+
dependencyCount: dependencies.length,
|
|
83
|
+
totalMappings: dependencies.reduce(function (sum, dep) {
|
|
84
|
+
return sum + dep.mappingDetails.length;
|
|
85
|
+
}, 0)
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* 查找所有组件的反向依赖关系
|
|
91
|
+
* @param config - 值映射配置对象
|
|
92
|
+
* @returns 所有组件的反向依赖关系图
|
|
93
|
+
*/
|
|
94
|
+
export function buildValueDependencyGraph(config) {
|
|
95
|
+
var dependencyGraph = {};
|
|
96
|
+
|
|
97
|
+
// 首先收集所有可能的目标组件
|
|
98
|
+
var allTargetComponents = new Set();
|
|
99
|
+
Object.values(config).forEach(function (componentMapping) {
|
|
100
|
+
if (_typeof(componentMapping) === 'object' && componentMapping !== null) {
|
|
101
|
+
Object.values(componentMapping).forEach(function (valueMapping) {
|
|
102
|
+
if (_typeof(valueMapping) === 'object' && valueMapping !== null) {
|
|
103
|
+
Object.keys(valueMapping).forEach(function (targetKey) {
|
|
104
|
+
allTargetComponents.add(targetKey);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// 为每个目标组件构建依赖关系
|
|
112
|
+
allTargetComponents.forEach(function (targetComponent) {
|
|
113
|
+
dependencyGraph[targetComponent] = findValueDependencies(targetComponent, config);
|
|
114
|
+
});
|
|
115
|
+
return dependencyGraph;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* 查找特定源组件和值对目标组件的影响
|
|
120
|
+
* @param sourceComponentKey - 源组件key
|
|
121
|
+
* @param sourceValue - 源组件的值
|
|
122
|
+
* @param config - 值映射配置对象
|
|
123
|
+
* @returns 受影响的目标组件及其值
|
|
124
|
+
*/
|
|
125
|
+
export function findTargetsBySourceValue(sourceComponentKey, sourceValue, config) {
|
|
126
|
+
var results = [];
|
|
127
|
+
var componentMapping = config[sourceComponentKey];
|
|
128
|
+
if (_typeof(componentMapping) !== 'object' || componentMapping === null) {
|
|
129
|
+
return results;
|
|
130
|
+
}
|
|
131
|
+
var valueMapping = componentMapping[sourceValue];
|
|
132
|
+
if (_typeof(valueMapping) !== 'object' || valueMapping === null) {
|
|
133
|
+
return results;
|
|
134
|
+
}
|
|
135
|
+
Object.entries(valueMapping).forEach(function (_ref5) {
|
|
136
|
+
var _ref6 = _slicedToArray(_ref5, 2),
|
|
137
|
+
targetComponent = _ref6[0],
|
|
138
|
+
targetMapping = _ref6[1];
|
|
139
|
+
var targetValue;
|
|
140
|
+
if (typeof targetMapping === 'string') {
|
|
141
|
+
targetValue = targetMapping;
|
|
142
|
+
} else if (Array.isArray(targetMapping)) {
|
|
143
|
+
targetValue = targetMapping.join(', '); // 数组转为字符串
|
|
144
|
+
} else if (_typeof(targetMapping) === 'object' && targetMapping !== null && 'value' in targetMapping) {
|
|
145
|
+
targetValue = targetMapping.value;
|
|
146
|
+
} else {
|
|
147
|
+
return; // 跳过无效的映射
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
results.push({
|
|
151
|
+
targetComponent: targetComponent,
|
|
152
|
+
targetValue: targetValue
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
return results;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* 获取所有源组件的统计信息
|
|
160
|
+
* @param config - 值映射配置对象
|
|
161
|
+
* @returns 源组件统计信息
|
|
162
|
+
*/
|
|
163
|
+
export function getSourceComponentStats(config) {
|
|
164
|
+
var stats = [];
|
|
165
|
+
Object.entries(config).forEach(function (_ref7) {
|
|
166
|
+
var _ref8 = _slicedToArray(_ref7, 2),
|
|
167
|
+
componentKey = _ref8[0],
|
|
168
|
+
componentMapping = _ref8[1];
|
|
169
|
+
if (_typeof(componentMapping) !== 'object' || componentMapping === null) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
var allTargets = new Set();
|
|
173
|
+
var totalMappings = 0;
|
|
174
|
+
var valueCount = Object.keys(componentMapping).length;
|
|
175
|
+
Object.values(componentMapping).forEach(function (valueMapping) {
|
|
176
|
+
if (_typeof(valueMapping) === 'object' && valueMapping !== null) {
|
|
177
|
+
Object.keys(valueMapping).forEach(function (targetKey) {
|
|
178
|
+
allTargets.add(targetKey);
|
|
179
|
+
totalMappings++;
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
stats.push({
|
|
184
|
+
componentKey: componentKey,
|
|
185
|
+
valueCount: valueCount,
|
|
186
|
+
targetCount: allTargets.size,
|
|
187
|
+
totalMappings: totalMappings
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
return stats.sort(function (a, b) {
|
|
191
|
+
return b.totalMappings - a.totalMappings;
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* 查找值映射链(A影响B,B影响C的传递关系)
|
|
197
|
+
* @param startComponent - 起始组件
|
|
198
|
+
* @param config - 值映射配置对象
|
|
199
|
+
* @param maxDepth - 最大深度
|
|
200
|
+
* @returns 映射链
|
|
201
|
+
*/
|
|
202
|
+
export function findValueMappingChain(startComponent, config) {
|
|
203
|
+
var maxDepth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3;
|
|
204
|
+
var chains = [];
|
|
205
|
+
var visited = new Set();
|
|
206
|
+
function dfs(currentComponent, path, depth) {
|
|
207
|
+
if (depth >= maxDepth || visited.has(currentComponent)) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
visited.add(currentComponent);
|
|
211
|
+
|
|
212
|
+
// 查找当前组件影响的目标组件
|
|
213
|
+
var componentMapping = config[currentComponent];
|
|
214
|
+
if (_typeof(componentMapping) === 'object' && componentMapping !== null) {
|
|
215
|
+
var targets = new Set();
|
|
216
|
+
Object.values(componentMapping).forEach(function (valueMapping) {
|
|
217
|
+
if (_typeof(valueMapping) === 'object' && valueMapping !== null) {
|
|
218
|
+
Object.keys(valueMapping).forEach(function (targetKey) {
|
|
219
|
+
targets.add(targetKey);
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
targets.forEach(function (target) {
|
|
224
|
+
var newPath = [].concat(_toConsumableArray(path), [target]);
|
|
225
|
+
chains.push({
|
|
226
|
+
chain: newPath,
|
|
227
|
+
depth: depth + 1
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
// 递归查找更深层的链
|
|
231
|
+
dfs(target, newPath, depth + 1);
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
visited.delete(currentComponent);
|
|
235
|
+
}
|
|
236
|
+
dfs(startComponent, [startComponent], 0);
|
|
237
|
+
return chains.filter(function (chain) {
|
|
238
|
+
return chain.depth > 1;
|
|
239
|
+
}); // 只返回长度大于1的链
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* 验证值映射配置的格式
|
|
244
|
+
* @param config - 要验证的配置对象
|
|
245
|
+
* @returns 验证结果
|
|
246
|
+
*/
|
|
247
|
+
export function validateValueMappingConfig(config) {
|
|
248
|
+
var errors = [];
|
|
249
|
+
var warnings = [];
|
|
250
|
+
if (!config || _typeof(config) !== 'object') {
|
|
251
|
+
errors.push('配置必须是一个对象');
|
|
252
|
+
return {
|
|
253
|
+
isValid: false,
|
|
254
|
+
errors: errors,
|
|
255
|
+
warnings: warnings
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
var configObj = config;
|
|
259
|
+
Object.entries(configObj).forEach(function (_ref9) {
|
|
260
|
+
var _ref10 = _slicedToArray(_ref9, 2),
|
|
261
|
+
componentKey = _ref10[0],
|
|
262
|
+
componentMapping = _ref10[1];
|
|
263
|
+
if (_typeof(componentMapping) !== 'object' || componentMapping === null) {
|
|
264
|
+
warnings.push("\u7EC4\u4EF6 ".concat(componentKey, " \u7684\u6620\u5C04\u4E0D\u662F\u5BF9\u8C61\uFF0C\u53EF\u80FD\u662F\u7279\u6B8A\u914D\u7F6E"));
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
var mapping = componentMapping;
|
|
268
|
+
Object.entries(mapping).forEach(function (_ref11) {
|
|
269
|
+
var _ref12 = _slicedToArray(_ref11, 2),
|
|
270
|
+
value = _ref12[0],
|
|
271
|
+
valueMapping = _ref12[1];
|
|
272
|
+
if (_typeof(valueMapping) !== 'object' || valueMapping === null) {
|
|
273
|
+
warnings.push("\u7EC4\u4EF6 ".concat(componentKey, " \u7684\u503C ").concat(value, " \u7684\u6620\u5C04\u4E0D\u662F\u5BF9\u8C61"));
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
var valueMappingObj = valueMapping;
|
|
277
|
+
Object.entries(valueMappingObj).forEach(function (_ref13) {
|
|
278
|
+
var _ref14 = _slicedToArray(_ref13, 2),
|
|
279
|
+
targetComponent = _ref14[0],
|
|
280
|
+
targetMapping = _ref14[1];
|
|
281
|
+
if (typeof targetMapping !== 'string' && !Array.isArray(targetMapping) && (_typeof(targetMapping) !== 'object' || targetMapping === null || !('value' in targetMapping))) {
|
|
282
|
+
errors.push("\u7EC4\u4EF6 ".concat(componentKey, " \u503C ").concat(value, " \u5230 ").concat(targetComponent, " \u7684\u6620\u5C04\u683C\u5F0F\u65E0\u6548"));
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
});
|
|
287
|
+
return {
|
|
288
|
+
isValid: errors.length === 0,
|
|
289
|
+
errors: errors,
|
|
290
|
+
warnings: warnings
|
|
291
|
+
};
|
|
292
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 组件值映射相关类型定义
|
|
3
|
+
*/
|
|
4
|
+
export interface TargetValueMapping {
|
|
5
|
+
value: string;
|
|
6
|
+
other?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare type ValueMappingItem = string | TargetValueMapping | string[];
|
|
9
|
+
export interface SingleValueMapping {
|
|
10
|
+
[targetComponentKey: string]: ValueMappingItem;
|
|
11
|
+
}
|
|
12
|
+
export interface ComponentValueMapping {
|
|
13
|
+
[sourceValue: string]: SingleValueMapping;
|
|
14
|
+
}
|
|
15
|
+
export interface ValueMappingConfig {
|
|
16
|
+
[sourceComponentKey: string]: ComponentValueMapping | any;
|
|
17
|
+
}
|
|
18
|
+
export interface ValueDependencyResult {
|
|
19
|
+
targetComponent: string;
|
|
20
|
+
dependencies: Array<{
|
|
21
|
+
sourceComponent: string;
|
|
22
|
+
sourceValues: string[];
|
|
23
|
+
mappingDetails: Array<{
|
|
24
|
+
sourceValue: string;
|
|
25
|
+
targetValue: string;
|
|
26
|
+
}>;
|
|
27
|
+
}>;
|
|
28
|
+
dependencyCount: number;
|
|
29
|
+
totalMappings: number;
|
|
30
|
+
}
|
|
31
|
+
export interface SourceComponentStat {
|
|
32
|
+
componentKey: string;
|
|
33
|
+
valueCount: number;
|
|
34
|
+
targetCount: number;
|
|
35
|
+
totalMappings: number;
|
|
36
|
+
}
|
|
37
|
+
export interface MappingChainNode {
|
|
38
|
+
chain: string[];
|
|
39
|
+
depth: number;
|
|
40
|
+
}
|
|
41
|
+
export interface TargetImpact {
|
|
42
|
+
targetComponent: string;
|
|
43
|
+
targetValue: string;
|
|
44
|
+
}
|
|
45
|
+
export interface ValidationResult {
|
|
46
|
+
isValid: boolean;
|
|
47
|
+
errors: string[];
|
|
48
|
+
warnings: string[];
|
|
49
|
+
}
|
|
50
|
+
export interface ValueMappingAnalysis {
|
|
51
|
+
totalSourceComponents: number;
|
|
52
|
+
totalTargetComponents: number;
|
|
53
|
+
totalValueMappings: number;
|
|
54
|
+
mostComplexSource: SourceComponentStat | null;
|
|
55
|
+
mostDependedTarget: {
|
|
56
|
+
componentKey: string;
|
|
57
|
+
dependencyCount: number;
|
|
58
|
+
} | null;
|
|
59
|
+
longestChains: MappingChainNode[];
|
|
60
|
+
}
|
|
61
|
+
export interface ReverseLookupOptions {
|
|
62
|
+
includeEmptyValues?: boolean;
|
|
63
|
+
caseSensitive?: boolean;
|
|
64
|
+
exactMatch?: boolean;
|
|
65
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -18,7 +18,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
18
18
|
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; } }
|
|
19
19
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
20
20
|
import React, { useEffect, useState, useRef, useMemo, useContext } from 'react';
|
|
21
|
-
import { Timeline, ConfigProvider, Form, message, Alert, Button, Spin, Row, Col, Popover, Typography } from 'antd';
|
|
21
|
+
import { Timeline, ConfigProvider, Form, message, Alert, Button, Spin, Row, Col, Popover, Typography, Tag } from 'antd';
|
|
22
22
|
import { InfoCircleOutlined } from '@ant-design/icons';
|
|
23
23
|
import { get, find, isEmpty } from 'lodash';
|
|
24
24
|
import { batch } from 'react-redux';
|
|
@@ -53,6 +53,7 @@ import "./index.less";
|
|
|
53
53
|
import { isNull } from '@kmkf-fe-packages/kmkf-utils';
|
|
54
54
|
import { PlatformAvatar } from '@kmkf-fe-packages/services-components';
|
|
55
55
|
import { Provide, Context } from "./context";
|
|
56
|
+
import { WORK_ORDER_STATUS_AI_BUILD } from "../common/constant";
|
|
56
57
|
import { useSelector } from "./context/useSelector";
|
|
57
58
|
import { pollOperationResult } from "./pollOperationResult";
|
|
58
59
|
import { pushGyLog } from '@kmkf-fe-packages/kmkf-utils';
|
|
@@ -60,7 +61,7 @@ import { PlatForm } from "../WorkOrder/types";
|
|
|
60
61
|
var Text = Typography.Text,
|
|
61
62
|
Link = Typography.Link;
|
|
62
63
|
var FlowTemplateDetail = function FlowTemplateDetail(props) {
|
|
63
|
-
var _currentNodeDetail$wo, _currentNodeDetail$no, _currentNodeDetail$wo2, _shopList$find, _currentNodeDetail$no21, _currentNodeDetail$no22, _currentNodeDetail$no23, _currentNodeDetail$no24;
|
|
64
|
+
var _currentNodeDetail$wo, _currentNodeDetail$no, _currentNodeDetail$wo2, _shopList$find, _JSON$parse, _currentNodeDetail$wo28, _currentNodeDetail$wo29, _currentNodeDetail$wo30, _currentNodeDetail$wo31, _currentNodeDetail$no21, _currentNodeDetail$no22, _currentNodeDetail$no23, _currentNodeDetail$no24;
|
|
64
65
|
var flowTemplateKey = props.flowTemplateKey,
|
|
65
66
|
_props$shopList = props.shopList,
|
|
66
67
|
shopList = _props$shopList === void 0 ? [] : _props$shopList,
|
|
@@ -1217,7 +1218,12 @@ var FlowTemplateDetail = function FlowTemplateDetail(props) {
|
|
|
1217
1218
|
spinning: loading || orderBackLoading || orderBackKmLoading
|
|
1218
1219
|
}, /*#__PURE__*/React.createElement("div", {
|
|
1219
1220
|
className: "flowWorkOrderDetail"
|
|
1220
|
-
}, flowWorkOrderId && /*#__PURE__*/React.createElement("div",
|
|
1221
|
+
}, flowWorkOrderId && /*#__PURE__*/React.createElement("div", {
|
|
1222
|
+
style: {
|
|
1223
|
+
display: 'flex',
|
|
1224
|
+
justifyContent: 'space-between'
|
|
1225
|
+
}
|
|
1226
|
+
}, /*#__PURE__*/React.createElement("div", null, [PlatForm.PC, PlatForm.WEB].includes(plat.platform) && /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(PlatformAvatar, {
|
|
1221
1227
|
type: shopItem === null || shopItem === void 0 ? void 0 : shopItem.shopSource,
|
|
1222
1228
|
styles: {
|
|
1223
1229
|
marginRight: 5
|
|
@@ -1225,7 +1231,9 @@ var FlowTemplateDetail = function FlowTemplateDetail(props) {
|
|
|
1225
1231
|
}), shopItem === null || shopItem === void 0 ? void 0 : shopItem.shopName, "-"), /*#__PURE__*/React.createElement("span", null, flowWorkOrderId), /*#__PURE__*/React.createElement(Button, {
|
|
1226
1232
|
type: "link",
|
|
1227
1233
|
onClick: handleFollow
|
|
1228
|
-
}, !follow ? '关注' : '已关注')),
|
|
1234
|
+
}, !follow ? '关注' : '已关注')), /*#__PURE__*/React.createElement("div", null, (_JSON$parse = JSON.parse((currentNodeDetail === null || currentNodeDetail === void 0 ? void 0 : (_currentNodeDetail$wo28 = currentNodeDetail.workOrder) === null || _currentNodeDetail$wo28 === void 0 ? void 0 : (_currentNodeDetail$wo29 = _currentNodeDetail$wo28.jsonMap) === null || _currentNodeDetail$wo29 === void 0 ? void 0 : _currentNodeDetail$wo29.flowTags) || '[]')) !== null && _JSON$parse !== void 0 && _JSON$parse.includes('AI_BUILD') ? /*#__PURE__*/React.createElement(Tag, {
|
|
1235
|
+
color: "blue"
|
|
1236
|
+
}, "AI\u81EA\u52A8\u5EFA\u5355-".concat(WORK_ORDER_STATUS_AI_BUILD[currentNodeDetail === null || currentNodeDetail === void 0 ? void 0 : (_currentNodeDetail$wo30 = currentNodeDetail.workOrder) === null || _currentNodeDetail$wo30 === void 0 ? void 0 : (_currentNodeDetail$wo31 = _currentNodeDetail$wo30.jsonMap) === null || _currentNodeDetail$wo31 === void 0 ? void 0 : _currentNodeDetail$wo31.flowStatus])) : null)), flowStatus && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Row, {
|
|
1229
1237
|
justify: 'space-between',
|
|
1230
1238
|
className: "header"
|
|
1231
1239
|
}, /*#__PURE__*/React.createElement(Col, null, /*#__PURE__*/React.createElement("div", {
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
3
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
4
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
5
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
6
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
7
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
8
|
+
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; }
|
|
9
|
+
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; } }
|
|
10
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
11
|
+
import React from 'react';
|
|
12
|
+
import { Image } from 'antd';
|
|
13
|
+
import { useEffect, useState } from 'react';
|
|
14
|
+
import { useAppDispatch, useAppSelector } from "../../../model/hooks";
|
|
15
|
+
import notificationIcon from "../../../common/imgs/notification.png";
|
|
16
|
+
import { nodeWorkOrderPending } from "../../../model/servers/api";
|
|
17
|
+
import styles from "./index.module.less";
|
|
18
|
+
var CustomerServiceToDoCard = function CustomerServiceToDoCard(props) {
|
|
19
|
+
var shopUniqueKey = props.shopUniqueKey;
|
|
20
|
+
var dispatch = useAppDispatch();
|
|
21
|
+
var _useState = useState(0),
|
|
22
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
23
|
+
number = _useState2[0],
|
|
24
|
+
setNumber = _useState2[1];
|
|
25
|
+
var customerServiceToDoListOpen = useAppSelector(function (state) {
|
|
26
|
+
var _state$customizeWorkO;
|
|
27
|
+
return (_state$customizeWorkO = state.customizeWorkOrder) === null || _state$customizeWorkO === void 0 ? void 0 : _state$customizeWorkO.customerServiceToDoListOpen;
|
|
28
|
+
});
|
|
29
|
+
var initHandle = /*#__PURE__*/function () {
|
|
30
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
31
|
+
var _yield$nodeWorkOrderP, data;
|
|
32
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
33
|
+
while (1) switch (_context.prev = _context.next) {
|
|
34
|
+
case 0:
|
|
35
|
+
_context.next = 2;
|
|
36
|
+
return nodeWorkOrderPending({
|
|
37
|
+
flowTags: ['AI_BUILD'],
|
|
38
|
+
onlyCount: true,
|
|
39
|
+
shopUniqueKeyList: [shopUniqueKey]
|
|
40
|
+
});
|
|
41
|
+
case 2:
|
|
42
|
+
_yield$nodeWorkOrderP = _context.sent;
|
|
43
|
+
data = _yield$nodeWorkOrderP.data;
|
|
44
|
+
setNumber((data === null || data === void 0 ? void 0 : data.total) || 0);
|
|
45
|
+
case 5:
|
|
46
|
+
case "end":
|
|
47
|
+
return _context.stop();
|
|
48
|
+
}
|
|
49
|
+
}, _callee);
|
|
50
|
+
}));
|
|
51
|
+
return function initHandle() {
|
|
52
|
+
return _ref.apply(this, arguments);
|
|
53
|
+
};
|
|
54
|
+
}();
|
|
55
|
+
useEffect(function () {
|
|
56
|
+
initHandle();
|
|
57
|
+
}, [customerServiceToDoListOpen]);
|
|
58
|
+
var sendMsgToTab = function sendMsgToTab() {
|
|
59
|
+
dispatch({
|
|
60
|
+
type: 'customizeWorkOrder/setCustomerServiceToDoListOpen',
|
|
61
|
+
payload: true
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
65
|
+
className: styles.container,
|
|
66
|
+
onClick: sendMsgToTab
|
|
67
|
+
}, /*#__PURE__*/React.createElement(Image, {
|
|
68
|
+
src: notificationIcon,
|
|
69
|
+
width: 20,
|
|
70
|
+
height: 20,
|
|
71
|
+
preview: false
|
|
72
|
+
}), "\u5BA2\u670D\u5F85\u529E", /*#__PURE__*/React.createElement("span", {
|
|
73
|
+
className: styles.number
|
|
74
|
+
}, "(", number, ")"));
|
|
75
|
+
};
|
|
76
|
+
export default CustomerServiceToDoCard;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
.container {
|
|
2
|
+
position: fixed;
|
|
3
|
+
right: 0px;
|
|
4
|
+
bottom: 30px;
|
|
5
|
+
z-index: 10;
|
|
6
|
+
display: flex;
|
|
7
|
+
justify-content: space-around;
|
|
8
|
+
align-items: center;
|
|
9
|
+
width: 120px;
|
|
10
|
+
height: 32px;
|
|
11
|
+
font-size: 12px;
|
|
12
|
+
font-weight: 600;
|
|
13
|
+
background-color: #fffbe6;
|
|
14
|
+
border: 1px solid #ffe5ba;
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
color:#333;
|
|
17
|
+
.number {
|
|
18
|
+
color: #1890ff;
|
|
19
|
+
}
|
|
20
|
+
}
|
package/dist/esm/WorkOrder/components/WorkOrderList/components/CustomizeWorkOrderCard/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import { setFormModalVisible, setLogicFlowId, setFlowWorkOrderId, setCurrentCust
|
|
|
17
17
|
import { queryPanelInfo } from "../../../../../model/flowTemplateDetail/api";
|
|
18
18
|
import reject from "../../../../../common/imgs/reject.png";
|
|
19
19
|
import reminder from "../../../../../common/imgs/reminder.png";
|
|
20
|
+
import ai from "../../../../../common/imgs/ai.png";
|
|
20
21
|
import "./index.less";
|
|
21
22
|
var FlowStatus = {
|
|
22
23
|
WAIT_COMMIT: {
|
|
@@ -171,6 +172,11 @@ var CustomizeWorkOrderCard = function CustomizeWorkOrderCard(props) {
|
|
|
171
172
|
style: {
|
|
172
173
|
width: '20px'
|
|
173
174
|
}
|
|
175
|
+
}), item.flowTags.includes('AI_BUILD') && /*#__PURE__*/React.createElement("img", {
|
|
176
|
+
src: ai,
|
|
177
|
+
style: {
|
|
178
|
+
width: '20px'
|
|
179
|
+
}
|
|
174
180
|
})))), /*#__PURE__*/React.createElement(Space, null, /*#__PURE__*/React.createElement("span", {
|
|
175
181
|
className: "order_card_header_detail",
|
|
176
182
|
onClick: function onClick() {
|
|
@@ -18,7 +18,7 @@ import { useInfiniteScroll, useRequest } from 'ahooks';
|
|
|
18
18
|
import { last } from 'lodash';
|
|
19
19
|
import moment from 'moment';
|
|
20
20
|
import { useAppSelector, useAppDispatch } from "../../../model/hooks";
|
|
21
|
-
import { fetchCompanyUserList, setFormModalVisible, setCurrentCustomizeRecord, setCurrentBuyerChecked, setLogicFlowId, setFlowWorkOrderId } from "../../../model/customizeWorkOrder";
|
|
21
|
+
import { fetchCompanyUserList, setFormModalVisible, setCurrentCustomizeRecord, setCurrentBuyerChecked, setLogicFlowId, setFlowWorkOrderId, setWorkOrderProcessStatus } from "../../../model/customizeWorkOrder";
|
|
22
22
|
import { selectorCurrentBuyerChecked, selectorFormModalVisible, selectorCurrentCustomizeRecord, selectorLogicFlowId, selectorCompanyUserList, selectorFlowWorkOrderId } from "../../../model/customizeWorkOrder/selector";
|
|
23
23
|
import { selectFlowList, selectFlowTemplateGroupWorkOrderTemplateList } from "../../../model/logicFlow/selector";
|
|
24
24
|
import CustomizeWorkOrderCard from "./components/CustomizeWorkOrderCard/index";
|
|
@@ -97,6 +97,10 @@ var getTableData = function getTableData(_ref) {
|
|
|
97
97
|
};
|
|
98
98
|
var FlowOrderList = function FlowOrderList(props) {
|
|
99
99
|
var _data$list;
|
|
100
|
+
var customerServiceToDoListOpen = useAppSelector(function (state) {
|
|
101
|
+
var _state$customizeWorkO;
|
|
102
|
+
return (_state$customizeWorkO = state.customizeWorkOrder) === null || _state$customizeWorkO === void 0 ? void 0 : _state$customizeWorkO.customerServiceToDoListOpen;
|
|
103
|
+
});
|
|
100
104
|
var refValue = props.refValue,
|
|
101
105
|
data = props.data,
|
|
102
106
|
loading = props.loading,
|
|
@@ -107,7 +111,7 @@ var FlowOrderList = function FlowOrderList(props) {
|
|
|
107
111
|
return /*#__PURE__*/React.createElement(Spin, {
|
|
108
112
|
spinning: loading
|
|
109
113
|
}, /*#__PURE__*/React.createElement("main", {
|
|
110
|
-
className: "custom_box_main",
|
|
114
|
+
className: "custom_box_main ".concat(customerServiceToDoListOpen ? 'customer_service_to_do_list_open' : ''),
|
|
111
115
|
style: {
|
|
112
116
|
height: height
|
|
113
117
|
},
|
|
@@ -449,6 +453,7 @@ var CustomizeWorkOrderList = function CustomizeWorkOrderList(_ref4) {
|
|
|
449
453
|
dispatch(setFormModalVisible(true));
|
|
450
454
|
};
|
|
451
455
|
var onDealWorkOrderSuccess = function onDealWorkOrderSuccess(type) {
|
|
456
|
+
dispatch(setWorkOrderProcessStatus(type));
|
|
452
457
|
if (['submit', 'forward', 'close', 'rejected'].includes(type)) {
|
|
453
458
|
dispatch(setFormModalVisible(false));
|
|
454
459
|
}
|
|
@@ -154,11 +154,12 @@
|
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
.custom_box_main {
|
|
157
|
-
|
|
158
|
-
// margin-bottom: 40px;
|
|
159
|
-
height: 500px;
|
|
157
|
+
height: 500px;
|
|
160
158
|
overflow: auto;
|
|
161
159
|
background-color: #fafafa;
|
|
160
|
+
&.customer_service_to_do_list_open {
|
|
161
|
+
overflow: hidden;
|
|
162
|
+
}
|
|
162
163
|
}
|
|
163
164
|
|
|
164
165
|
.custom_box_main_empty {
|