ydb-components-material 0.1.209 → 0.1.211
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/build/docs/404.html +3 -3
- package/build/docs/_demos/:uuid +3 -3
- package/build/docs/colorful-button.html +3 -3
- package/build/docs/colorful-input.html +3 -3
- package/build/docs/index.html +3 -3
- package/build/docs/{umi.a1a01e70.js → umi.4333c36a.js} +1 -1
- package/build/docs/~demos/:uuid.html +3 -3
- package/build/docs/~demos/colorful-button-demo.html +3 -3
- package/build/docs/~demos/colorful-input-demo.html +3 -3
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/render/default/view.js +1 -1
- package/build/lowcode/view.js +1 -1
- package/dist/BizComps.js +1 -1
- package/dist/BizComps.js.map +1 -1
- package/es/components/file-list/item.js +75 -44
- package/lib/components/file-list/item.js +75 -44
- package/lowcode_es/meta.js +1 -1
- package/lowcode_lib/meta.js +1 -1
- package/package.json +3 -3
|
@@ -224,6 +224,8 @@ var FileItem = function FileItem(_ref) {
|
|
|
224
224
|
// 预览/下载在 loading 期间的提示语,区分「文件加载」与「签批结果轮询」
|
|
225
225
|
var loadingTip = signPolling ? '签批结果获取中,请稍后' : '数据获取中,请稍后';
|
|
226
226
|
var timerRef = useRef(null);
|
|
227
|
+
// 签批结果轮询是否已启动(幂等标记,避免 loading 变化导致重复起轮询)
|
|
228
|
+
var pollingRef = useRef(false);
|
|
227
229
|
var originalUrlRef = useRef('');
|
|
228
230
|
var rootRef = useRef(null);
|
|
229
231
|
var getSignedFile = /*#__PURE__*/function () {
|
|
@@ -1092,60 +1094,89 @@ var FileItem = function FileItem(_ref) {
|
|
|
1092
1094
|
onCloseSignerInfo && onCloseSignerInfo();
|
|
1093
1095
|
}
|
|
1094
1096
|
}, [autoShowSignerInfo, onCloseSignerInfo]);
|
|
1097
|
+
|
|
1098
|
+
// 轮询签批结果:
|
|
1099
|
+
// - 外层组件会修改 file.loading,需要在 loading 变为 false 时启动轮询
|
|
1100
|
+
// - 轮询自身会把 loading 置为 true,所以必须幂等,且不能在依赖变化时清理定时器
|
|
1095
1101
|
useEffect(function () {
|
|
1102
|
+
if (loading || pollingRef.current) return;
|
|
1103
|
+
|
|
1104
|
+
// 只把「读取/解析本地签批信息」放在 try 里,避免后面的逻辑异常被静默吞掉
|
|
1105
|
+
var signInfo = null;
|
|
1096
1106
|
try {
|
|
1097
1107
|
var stored = localStorage.getItem(fileId);
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
}
|
|
1137
|
-
|
|
1138
|
-
|
|
1108
|
+
if (!stored) return;
|
|
1109
|
+
console.log('stored---', stored);
|
|
1110
|
+
signInfo = JSON.parse(stored);
|
|
1111
|
+
} catch (e) {
|
|
1112
|
+
console.error('读取签批信息失败', e);
|
|
1113
|
+
return;
|
|
1114
|
+
}
|
|
1115
|
+
var _ref11 = signInfo || {},
|
|
1116
|
+
contrId = _ref11.contractId,
|
|
1117
|
+
docId = _ref11.documentId,
|
|
1118
|
+
nameVal = _ref11.fileName,
|
|
1119
|
+
originalUrl = _ref11.fileUrl;
|
|
1120
|
+
console.log('docId', docId, contrId, nameVal);
|
|
1121
|
+
if (!(docId && contrId && nameVal)) return;
|
|
1122
|
+
originalUrlRef.current = originalUrl || '';
|
|
1123
|
+
localStorage.removeItem(fileId);
|
|
1124
|
+
pollingRef.current = true;
|
|
1125
|
+
// openLoading()
|
|
1126
|
+
setSignPolling(true);
|
|
1127
|
+
// 先启动轮询,避免 valChange 抛错或触发刷新导致轮询没起来
|
|
1128
|
+
// 兜底:连续 10 次轮询仍未成功则结束轮询,避免无限请求
|
|
1129
|
+
var pollCount = 0;
|
|
1130
|
+
timerRef.current = setInterval(function () {
|
|
1131
|
+
getSignedFile(docId, contrId, nameVal)["catch"](function (e) {
|
|
1132
|
+
// 单次请求异常按失败处理,避免未处理的 rejection 打断轮询
|
|
1133
|
+
console.error('轮询签批结果异常', e);
|
|
1134
|
+
return false;
|
|
1135
|
+
}).then(function (success) {
|
|
1136
|
+
// 成功时 getSignedFile 内部会清除轮询并关闭 loading
|
|
1137
|
+
if (!success) {
|
|
1138
|
+
pollCount += 1;
|
|
1139
|
+
if (pollCount >= 10) {
|
|
1140
|
+
clearInterval(timerRef.current);
|
|
1141
|
+
timerRef.current = null;
|
|
1142
|
+
pollingRef.current = false;
|
|
1143
|
+
closeLoading();
|
|
1144
|
+
setSignPolling(false);
|
|
1145
|
+
try {
|
|
1146
|
+
valChange(_extends({}, file, {
|
|
1147
|
+
loading: false
|
|
1148
|
+
}), fileIndex, index, subIndex);
|
|
1149
|
+
} catch (e) {
|
|
1150
|
+
console.error('更新文件 loading 状态失败', e);
|
|
1151
|
+
}
|
|
1152
|
+
_Message.error('签批结果获取失败,请重试');
|
|
1153
|
+
}
|
|
1154
|
+
} else {
|
|
1155
|
+
pollingRef.current = false;
|
|
1156
|
+
setSignPolling(false);
|
|
1139
1157
|
}
|
|
1140
|
-
}
|
|
1141
|
-
}
|
|
1158
|
+
});
|
|
1159
|
+
}, 3000);
|
|
1160
|
+
|
|
1161
|
+
// 再把 loading 标记到 file 对象上;即使这里抛错也不能影响已启动的轮询
|
|
1162
|
+
try {
|
|
1163
|
+
valChange(_extends({}, file, {
|
|
1164
|
+
loading: true
|
|
1165
|
+
}), fileIndex, index, subIndex);
|
|
1166
|
+
} catch (e) {
|
|
1167
|
+
console.error('更新文件 loading 状态失败', e);
|
|
1168
|
+
}
|
|
1169
|
+
}, [fileId, loading]);
|
|
1170
|
+
|
|
1171
|
+
// 仅在卸载时清理定时器;不能放进上面的 effect,否则 loading 变化会清掉正在进行的轮询
|
|
1172
|
+
useEffect(function () {
|
|
1142
1173
|
return function () {
|
|
1143
1174
|
if (timerRef.current) {
|
|
1144
1175
|
clearInterval(timerRef.current);
|
|
1145
1176
|
timerRef.current = null;
|
|
1146
1177
|
}
|
|
1147
1178
|
};
|
|
1148
|
-
}, [
|
|
1179
|
+
}, []);
|
|
1149
1180
|
return /*#__PURE__*/React.createElement("div", {
|
|
1150
1181
|
className: "file_item",
|
|
1151
1182
|
style: style,
|
|
@@ -230,6 +230,8 @@ var FileItem = function FileItem(_ref) {
|
|
|
230
230
|
// 预览/下载在 loading 期间的提示语,区分「文件加载」与「签批结果轮询」
|
|
231
231
|
var loadingTip = signPolling ? '签批结果获取中,请稍后' : '数据获取中,请稍后';
|
|
232
232
|
var timerRef = (0, _react.useRef)(null);
|
|
233
|
+
// 签批结果轮询是否已启动(幂等标记,避免 loading 变化导致重复起轮询)
|
|
234
|
+
var pollingRef = (0, _react.useRef)(false);
|
|
233
235
|
var originalUrlRef = (0, _react.useRef)('');
|
|
234
236
|
var rootRef = (0, _react.useRef)(null);
|
|
235
237
|
var getSignedFile = /*#__PURE__*/function () {
|
|
@@ -1098,60 +1100,89 @@ var FileItem = function FileItem(_ref) {
|
|
|
1098
1100
|
onCloseSignerInfo && onCloseSignerInfo();
|
|
1099
1101
|
}
|
|
1100
1102
|
}, [autoShowSignerInfo, onCloseSignerInfo]);
|
|
1103
|
+
|
|
1104
|
+
// 轮询签批结果:
|
|
1105
|
+
// - 外层组件会修改 file.loading,需要在 loading 变为 false 时启动轮询
|
|
1106
|
+
// - 轮询自身会把 loading 置为 true,所以必须幂等,且不能在依赖变化时清理定时器
|
|
1101
1107
|
(0, _react.useEffect)(function () {
|
|
1108
|
+
if (loading || pollingRef.current) return;
|
|
1109
|
+
|
|
1110
|
+
// 只把「读取/解析本地签批信息」放在 try 里,避免后面的逻辑异常被静默吞掉
|
|
1111
|
+
var signInfo = null;
|
|
1102
1112
|
try {
|
|
1103
1113
|
var stored = localStorage.getItem(fileId);
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
}
|
|
1143
|
-
|
|
1144
|
-
|
|
1114
|
+
if (!stored) return;
|
|
1115
|
+
console.log('stored---', stored);
|
|
1116
|
+
signInfo = JSON.parse(stored);
|
|
1117
|
+
} catch (e) {
|
|
1118
|
+
console.error('读取签批信息失败', e);
|
|
1119
|
+
return;
|
|
1120
|
+
}
|
|
1121
|
+
var _ref11 = signInfo || {},
|
|
1122
|
+
contrId = _ref11.contractId,
|
|
1123
|
+
docId = _ref11.documentId,
|
|
1124
|
+
nameVal = _ref11.fileName,
|
|
1125
|
+
originalUrl = _ref11.fileUrl;
|
|
1126
|
+
console.log('docId', docId, contrId, nameVal);
|
|
1127
|
+
if (!(docId && contrId && nameVal)) return;
|
|
1128
|
+
originalUrlRef.current = originalUrl || '';
|
|
1129
|
+
localStorage.removeItem(fileId);
|
|
1130
|
+
pollingRef.current = true;
|
|
1131
|
+
// openLoading()
|
|
1132
|
+
setSignPolling(true);
|
|
1133
|
+
// 先启动轮询,避免 valChange 抛错或触发刷新导致轮询没起来
|
|
1134
|
+
// 兜底:连续 10 次轮询仍未成功则结束轮询,避免无限请求
|
|
1135
|
+
var pollCount = 0;
|
|
1136
|
+
timerRef.current = setInterval(function () {
|
|
1137
|
+
getSignedFile(docId, contrId, nameVal)["catch"](function (e) {
|
|
1138
|
+
// 单次请求异常按失败处理,避免未处理的 rejection 打断轮询
|
|
1139
|
+
console.error('轮询签批结果异常', e);
|
|
1140
|
+
return false;
|
|
1141
|
+
}).then(function (success) {
|
|
1142
|
+
// 成功时 getSignedFile 内部会清除轮询并关闭 loading
|
|
1143
|
+
if (!success) {
|
|
1144
|
+
pollCount += 1;
|
|
1145
|
+
if (pollCount >= 10) {
|
|
1146
|
+
clearInterval(timerRef.current);
|
|
1147
|
+
timerRef.current = null;
|
|
1148
|
+
pollingRef.current = false;
|
|
1149
|
+
closeLoading();
|
|
1150
|
+
setSignPolling(false);
|
|
1151
|
+
try {
|
|
1152
|
+
valChange((0, _extends3["default"])({}, file, {
|
|
1153
|
+
loading: false
|
|
1154
|
+
}), fileIndex, index, subIndex);
|
|
1155
|
+
} catch (e) {
|
|
1156
|
+
console.error('更新文件 loading 状态失败', e);
|
|
1157
|
+
}
|
|
1158
|
+
_message["default"].error('签批结果获取失败,请重试');
|
|
1159
|
+
}
|
|
1160
|
+
} else {
|
|
1161
|
+
pollingRef.current = false;
|
|
1162
|
+
setSignPolling(false);
|
|
1145
1163
|
}
|
|
1146
|
-
}
|
|
1147
|
-
}
|
|
1164
|
+
});
|
|
1165
|
+
}, 3000);
|
|
1166
|
+
|
|
1167
|
+
// 再把 loading 标记到 file 对象上;即使这里抛错也不能影响已启动的轮询
|
|
1168
|
+
try {
|
|
1169
|
+
valChange((0, _extends3["default"])({}, file, {
|
|
1170
|
+
loading: true
|
|
1171
|
+
}), fileIndex, index, subIndex);
|
|
1172
|
+
} catch (e) {
|
|
1173
|
+
console.error('更新文件 loading 状态失败', e);
|
|
1174
|
+
}
|
|
1175
|
+
}, [fileId, loading]);
|
|
1176
|
+
|
|
1177
|
+
// 仅在卸载时清理定时器;不能放进上面的 effect,否则 loading 变化会清掉正在进行的轮询
|
|
1178
|
+
(0, _react.useEffect)(function () {
|
|
1148
1179
|
return function () {
|
|
1149
1180
|
if (timerRef.current) {
|
|
1150
1181
|
clearInterval(timerRef.current);
|
|
1151
1182
|
timerRef.current = null;
|
|
1152
1183
|
}
|
|
1153
1184
|
};
|
|
1154
|
-
}, [
|
|
1185
|
+
}, []);
|
|
1155
1186
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
1156
1187
|
className: "file_item",
|
|
1157
1188
|
style: style,
|
package/lowcode_es/meta.js
CHANGED
|
@@ -101,7 +101,7 @@ function fillRealVersion(meta, packageName, version, basicLibraryVersion) {
|
|
|
101
101
|
packageName = 'ydb-components-material';
|
|
102
102
|
}
|
|
103
103
|
if (version === void 0) {
|
|
104
|
-
version = '0.1.
|
|
104
|
+
version = '0.1.211';
|
|
105
105
|
}
|
|
106
106
|
if (basicLibraryVersion === void 0) {
|
|
107
107
|
basicLibraryVersion = {
|
package/lowcode_lib/meta.js
CHANGED
|
@@ -106,7 +106,7 @@ function fillRealVersion(meta, packageName, version, basicLibraryVersion) {
|
|
|
106
106
|
packageName = 'ydb-components-material';
|
|
107
107
|
}
|
|
108
108
|
if (version === void 0) {
|
|
109
|
-
version = '0.1.
|
|
109
|
+
version = '0.1.211';
|
|
110
110
|
}
|
|
111
111
|
if (basicLibraryVersion === void 0) {
|
|
112
112
|
basicLibraryVersion = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ydb-components-material",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.211",
|
|
4
4
|
"description": "ydb-components-material",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -103,10 +103,10 @@
|
|
|
103
103
|
},
|
|
104
104
|
"componentConfig": {
|
|
105
105
|
"isComponentLibrary": true,
|
|
106
|
-
"materialSchema": "https://unpkg.com/ydb-components-material@0.1.
|
|
106
|
+
"materialSchema": "https://unpkg.com/ydb-components-material@0.1.211/build/lowcode/assets-prod.json"
|
|
107
107
|
},
|
|
108
108
|
"lcMeta": {
|
|
109
109
|
"type": "component"
|
|
110
110
|
},
|
|
111
|
-
"homepage": "https://unpkg.com/ydb-components-material@0.1.
|
|
111
|
+
"homepage": "https://unpkg.com/ydb-components-material@0.1.211/build/index.html"
|
|
112
112
|
}
|