fmui-base 2.3.59 → 2.3.60
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/README.md +1 -0
- package/lib/db/db.js +25 -0
- package/lib/db/variables.js +2 -0
- package/lib/form/filterEmptySubTblRows.js +129 -7
- package/lib/form/form.js +51 -10
- package/lib/form_info/formInfo.js +7 -2
- package/lib/process_batch/processBatch.js +4 -1
- package/lib/process_info/processInfo.js +283 -3
- package/lib/tblform/formSaveUtils.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
package/lib/db/db.js
CHANGED
|
@@ -711,6 +711,31 @@ context.create('FlowModuleAPI', {
|
|
|
711
711
|
});
|
|
712
712
|
}
|
|
713
713
|
},
|
|
714
|
+
getSignUserList: {
|
|
715
|
+
mockUrl: 'query/getSignUserList.json',
|
|
716
|
+
header: {
|
|
717
|
+
Authorization: 'Bearer ' + getLoginUserInfo().token
|
|
718
|
+
},
|
|
719
|
+
url: _variables2.default.URLS.getSignUserList,
|
|
720
|
+
method: 'GET',
|
|
721
|
+
willFetch: function willFetch() {}
|
|
722
|
+
},
|
|
723
|
+
reduceSign: {
|
|
724
|
+
mockUrl: 'query/reduceSign.json',
|
|
725
|
+
header: {
|
|
726
|
+
Authorization: 'Bearer ' + getLoginUserInfo().token
|
|
727
|
+
},
|
|
728
|
+
url: _variables2.default.URLS.reduceSign,
|
|
729
|
+
method: 'POST',
|
|
730
|
+
postDataFomat: 'FORM',
|
|
731
|
+
willFetch: function willFetch() {
|
|
732
|
+
_Toast2.default.show({
|
|
733
|
+
content: _react2.default.createElement(_loading2.default, null),
|
|
734
|
+
hasMask: true,
|
|
735
|
+
duration: 800
|
|
736
|
+
});
|
|
737
|
+
}
|
|
738
|
+
},
|
|
714
739
|
getCanJumpActivity: {
|
|
715
740
|
mockUrl: 'query/getCanJumpActivity.json',
|
|
716
741
|
header: {
|
package/lib/db/variables.js
CHANGED
|
@@ -92,6 +92,8 @@ exports.default = {
|
|
|
92
92
|
queryFlowChart: approveUrlPrefix + "queryFlowChart" + '?', //查找流程记录
|
|
93
93
|
getFlowImage: approveUrlPrefix + "getFlowImage" + '?token=' + getLoginUserInfo().token + "&processInstanceId=", //查找流程图片
|
|
94
94
|
addSign: approveUrlPrefix + "addSign" + '?', //加签
|
|
95
|
+
getSignUserList: approveUrlPrefix + "getSignUserList" + '?', //减签用户列表
|
|
96
|
+
reduceSign: approveUrlPrefix + "reduceSign" + '?', //减签
|
|
95
97
|
getCanJumpActivity: approveUrlPrefix + "getCanJumpActivity" + '?', //跳转流程
|
|
96
98
|
jump: approveUrlPrefix + "jump" + '?', //跳转
|
|
97
99
|
getDoneTaskListByProcessId: approveUrlPrefix + "getDoneTaskListByProcessId" + '?', //根据流程实例id查询已办
|
|
@@ -6,10 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
|
|
7
7
|
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
|
8
8
|
|
|
9
|
+
exports.isValidFormDataId = isValidFormDataId;
|
|
9
10
|
exports.cloneAndFilterEmptySubTblRows = cloneAndFilterEmptySubTblRows;
|
|
10
11
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
12
|
+
* 子表空行过滤 + 提交 formData 精简(对齐 PC runtimeUtil.getInputData):
|
|
13
|
+
* - UI 仍可留空行,仅从提交数据中去掉业务全空行
|
|
14
|
+
* - 去掉 formItem / linkFields 等仅前端渲染用的大字段
|
|
15
|
+
* - 字段项只保留 key / value(与 PC、后端 KeyValueDto 一致)
|
|
13
16
|
*/
|
|
14
17
|
|
|
15
18
|
var SUB_TBL_SYS_FIELDS = {
|
|
@@ -29,6 +32,27 @@ var SUB_TBL_SYS_FIELDS = {
|
|
|
29
32
|
sort_no: true
|
|
30
33
|
};
|
|
31
34
|
|
|
35
|
+
/** 提交时从 formData 顶层去掉的前端元数据(PC getInputData 不携带) */
|
|
36
|
+
var SUBMIT_STRIP_TOP_KEYS = {
|
|
37
|
+
formItem: true,
|
|
38
|
+
linkFields: true
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 是否为可用的主表 dataId(排除 null / "null" / "undefined" / 空串)
|
|
43
|
+
* 后端 optlock 校验:已传 optlock 但 dataId 无效会直接报「数据已被他人修改」
|
|
44
|
+
*/
|
|
45
|
+
function isValidFormDataId(dataId) {
|
|
46
|
+
if (dataId === null || typeof dataId === 'undefined') {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
var s = String(dataId).replace(/^\s+|\s+$/g, '');
|
|
50
|
+
if (s === '' || s === 'null' || s === 'undefined' || s === '-1') {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
|
|
32
56
|
function isSubTblSysField(key) {
|
|
33
57
|
if (key == null || key === '') {
|
|
34
58
|
return true;
|
|
@@ -87,11 +111,14 @@ function isEmptySubTblBusinessRow(row) {
|
|
|
87
111
|
return true;
|
|
88
112
|
}
|
|
89
113
|
for (var i = 0; i < row.length; i++) {
|
|
90
|
-
var
|
|
91
|
-
if (!
|
|
114
|
+
var cell = row[i];
|
|
115
|
+
if (!cell) {
|
|
92
116
|
continue;
|
|
93
117
|
}
|
|
94
|
-
if (
|
|
118
|
+
if (isSubTblSysField(cell.key)) {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
if (hasSubTblBusinessValue(cell.value)) {
|
|
95
122
|
return false;
|
|
96
123
|
}
|
|
97
124
|
}
|
|
@@ -111,8 +138,103 @@ function filterEmptySubTblDataList(subTblData) {
|
|
|
111
138
|
return kept;
|
|
112
139
|
}
|
|
113
140
|
|
|
141
|
+
/** 对齐 PC:字段项只保留 key / value */
|
|
142
|
+
function slimKeyValueItem(item) {
|
|
143
|
+
if (!item || (typeof item === 'undefined' ? 'undefined' : _typeof(item)) !== 'object') {
|
|
144
|
+
return item;
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
key: item.key,
|
|
148
|
+
value: item.value
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
function slimKeyValueList(list) {
|
|
153
|
+
if (!list || !list.length) {
|
|
154
|
+
return list || [];
|
|
155
|
+
}
|
|
156
|
+
var out = [];
|
|
157
|
+
for (var i = 0; i < list.length; i++) {
|
|
158
|
+
out.push(slimKeyValueItem(list[i]));
|
|
159
|
+
}
|
|
160
|
+
return out;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
function slimSubTblDataRows(subTblData) {
|
|
164
|
+
if (!subTblData || !subTblData.length) {
|
|
165
|
+
return subTblData || [];
|
|
166
|
+
}
|
|
167
|
+
var rows = [];
|
|
168
|
+
for (var i = 0; i < subTblData.length; i++) {
|
|
169
|
+
rows.push(slimKeyValueList(subTblData[i]));
|
|
170
|
+
}
|
|
171
|
+
return rows;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* 去掉 formItem/linkFields,并将 main/sub/related 字段精简为 key/value
|
|
176
|
+
*/
|
|
177
|
+
function slimFormDataForSubmit(data) {
|
|
178
|
+
if (!data || (typeof data === 'undefined' ? 'undefined' : _typeof(data)) !== 'object') {
|
|
179
|
+
return data;
|
|
180
|
+
}
|
|
181
|
+
for (var stripKey in SUBMIT_STRIP_TOP_KEYS) {
|
|
182
|
+
if (Object.prototype.hasOwnProperty.call(SUBMIT_STRIP_TOP_KEYS, stripKey) && data.hasOwnProperty(stripKey)) {
|
|
183
|
+
delete data[stripKey];
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// 规范化 dataId:字符串 "null" 会导致后端 optlock 按主键更新失败
|
|
187
|
+
if (!isValidFormDataId(data.dataId)) {
|
|
188
|
+
data.dataId = '';
|
|
189
|
+
// 无真实主键时不带 optlock,后端才会跳过乐观锁校验(新建/发起场景)
|
|
190
|
+
if (data.hasOwnProperty('optlock')) {
|
|
191
|
+
delete data.optlock;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// 对齐 PC getInputData:moduleCode / paramJson 用空串,不传 null
|
|
195
|
+
if (data.moduleCode == null || data.moduleCode === 'null' || data.moduleCode === 'undefined') {
|
|
196
|
+
data.moduleCode = '';
|
|
197
|
+
}
|
|
198
|
+
if (data.paramJson == null || data.paramJson === 'null' || data.paramJson === 'undefined') {
|
|
199
|
+
data.paramJson = '';
|
|
200
|
+
}
|
|
201
|
+
// PC 已注释写入 formVersion;无有效值时不携带,避免 formVersion:null
|
|
202
|
+
if (data.formVersion == null || data.formVersion === '' || data.formVersion === 'null' || data.formVersion === 'undefined') {
|
|
203
|
+
delete data.formVersion;
|
|
204
|
+
}
|
|
205
|
+
if (data.mainTblData) {
|
|
206
|
+
data.mainTblData = slimKeyValueList(data.mainTblData);
|
|
207
|
+
}
|
|
208
|
+
var subTbl = data.subTbl || [];
|
|
209
|
+
for (var i = 0; i < subTbl.length; i++) {
|
|
210
|
+
if (subTbl[i] && subTbl[i].subTblData) {
|
|
211
|
+
subTbl[i].subTblData = slimSubTblDataRows(subTbl[i].subTblData);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
var relatedTbl = data.relatedTbl || [];
|
|
215
|
+
for (var r = 0; r < relatedTbl.length; r++) {
|
|
216
|
+
var related = relatedTbl[r];
|
|
217
|
+
if (!related) {
|
|
218
|
+
continue;
|
|
219
|
+
}
|
|
220
|
+
if (related.relatedMainTblData) {
|
|
221
|
+
related.relatedMainTblData = slimKeyValueList(related.relatedMainTblData);
|
|
222
|
+
}
|
|
223
|
+
var relatedSub = related.relatedSubTblData;
|
|
224
|
+
if (!relatedSub) {
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
for (var s = 0; s < relatedSub.length; s++) {
|
|
228
|
+
if (relatedSub[s] && relatedSub[s].subTblData) {
|
|
229
|
+
relatedSub[s].subTblData = slimSubTblDataRows(relatedSub[s].subTblData);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return data;
|
|
234
|
+
}
|
|
235
|
+
|
|
114
236
|
/**
|
|
115
|
-
*
|
|
237
|
+
* 深拷贝后过滤空子表行,并精简为与 PC getInputData 一致的提交结构(不改动页面 state / UI)
|
|
116
238
|
*/
|
|
117
239
|
function cloneAndFilterEmptySubTblRows(editFormData) {
|
|
118
240
|
if (!editFormData) {
|
|
@@ -142,7 +264,7 @@ function cloneAndFilterEmptySubTblRows(editFormData) {
|
|
|
142
264
|
}
|
|
143
265
|
}
|
|
144
266
|
}
|
|
145
|
-
return data;
|
|
267
|
+
return slimFormDataForSubmit(data);
|
|
146
268
|
}
|
|
147
269
|
|
|
148
270
|
exports.default = cloneAndFilterEmptySubTblRows;
|
package/lib/form/form.js
CHANGED
|
@@ -423,9 +423,39 @@ var PageHome = function (_React$Component) {
|
|
|
423
423
|
//处理数据
|
|
424
424
|
var tableData = {};
|
|
425
425
|
if (status == '0') {
|
|
426
|
-
//新增
|
|
427
|
-
|
|
428
|
-
|
|
426
|
+
//新增 / 再次发起(readd 也走 status=0 以便自动编号取 defaultValue)
|
|
427
|
+
// 再次发起等场景:formData 已带回原值。若一律用 defaultValue,普通字段会空,且后面 sync 会冲掉 mainTblData。
|
|
428
|
+
// 但自动编号/赋值宏必须继续用重新生成的 defaultValue,不能继承原单编号。
|
|
429
|
+
var loadedValue = this.dealwithData(itemParam, mainTblData, relatedTbl);
|
|
430
|
+
var hasLoadedField = false;
|
|
431
|
+
if (formTblId.indexOf(fieldTblId) > 0) {
|
|
432
|
+
relatedTbl.map(function (item) {
|
|
433
|
+
if (item.relatedMainTblName == fieldTblName) {
|
|
434
|
+
item.relatedMainTblData.map(function (item2) {
|
|
435
|
+
if (item2.key == key) {
|
|
436
|
+
hasLoadedField = true;
|
|
437
|
+
}
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
});
|
|
441
|
+
} else {
|
|
442
|
+
mainTblData.map(function (item) {
|
|
443
|
+
if (item.key == key) {
|
|
444
|
+
hasLoadedField = true;
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
var isBizCodeMacroEarly = form.dataAttr && form.dataAttr.dataSrc == '2' && form.dataAttr.fromMacro && form.dataAttr.fromMacro.value == 'bizCode';
|
|
449
|
+
var inFuzhiFields = !!(fuzhiFields && fuzhiFields.split(",").indexOf(uniqueName) != -1);
|
|
450
|
+
// 赋值字段 或 自动编号宏:有新 defaultValue 时强制重生(对齐上次「再次发起自动编号重新生成」)
|
|
451
|
+
var shouldRegenDefault = form.defaultValue != null && form.defaultValue !== '' && (inFuzhiFields || isBizCodeMacroEarly);
|
|
452
|
+
if (shouldRegenDefault) {
|
|
453
|
+
value = form.defaultValue;
|
|
454
|
+
} else if (hasLoadedField) {
|
|
455
|
+
value = loadedValue || loadedValue === 0 ? loadedValue : form.defaultValue != null ? form.defaultValue : '';
|
|
456
|
+
} else {
|
|
457
|
+
value = form.defaultValue;
|
|
458
|
+
}
|
|
429
459
|
|
|
430
460
|
if (formTblId.indexOf(fieldTblId) > 0) {
|
|
431
461
|
var hasTable = false;
|
|
@@ -445,7 +475,7 @@ var PageHome = function (_React$Component) {
|
|
|
445
475
|
//字段不存在
|
|
446
476
|
|
|
447
477
|
tableData.key = key;
|
|
448
|
-
tableData.value =
|
|
478
|
+
tableData.value = value;
|
|
449
479
|
tableData.required = required;
|
|
450
480
|
tableData.label = title;
|
|
451
481
|
tableData.inputFormat = form.inputFormat;
|
|
@@ -484,7 +514,7 @@ var PageHome = function (_React$Component) {
|
|
|
484
514
|
});
|
|
485
515
|
if (!hasField) {
|
|
486
516
|
tableData.key = key;
|
|
487
|
-
tableData.value =
|
|
517
|
+
tableData.value = value;
|
|
488
518
|
tableData.required = required;
|
|
489
519
|
tableData.label = title;
|
|
490
520
|
tableData.inputFormat = form.inputFormat;
|
|
@@ -703,13 +733,19 @@ var PageHome = function (_React$Component) {
|
|
|
703
733
|
// value = form.defaultValue;
|
|
704
734
|
// }
|
|
705
735
|
// 宏值新需求,赋值字段取defaultValue;自动编号额外兜底 form.value,避免 formData 偶发缺字段导致空白/丢数
|
|
736
|
+
// 再次发起(status=0):即使 formData 已有旧编号,赋值/自动编号仍强制用重新生成的 defaultValue
|
|
706
737
|
if (itemParam.dataAttr && itemParam.dataAttr.dataSrc == '2' && fuzhiFields != '') {
|
|
707
738
|
var isBizCodeMacro = itemParam.dataAttr.fromMacro && itemParam.dataAttr.fromMacro.value == 'bizCode';
|
|
708
739
|
if (fuzhiFields.split(",").indexOf(itemParam.uniqueName) != -1 && form.defaultValue && form.defaultValue != null) {
|
|
709
740
|
value = form.defaultValue;
|
|
741
|
+
} else if (status == '0' && isBizCodeMacro && form.defaultValue && form.defaultValue != null) {
|
|
742
|
+
value = form.defaultValue;
|
|
710
743
|
} else if (isBizCodeMacro && (value === '' || value == null || typeof value == 'undefined') && form.value) {
|
|
711
744
|
value = form.value;
|
|
712
745
|
}
|
|
746
|
+
} else if (itemParam.dataAttr && itemParam.dataAttr.dataSrc == '2' && itemParam.dataAttr.fromMacro && itemParam.dataAttr.fromMacro.value == 'bizCode' && status == '0' && form.defaultValue && form.defaultValue != null) {
|
|
747
|
+
// 再次发起:无 fuzhiFields 列表时,只要后端 readd 重生了 defaultValue 也要用新编号
|
|
748
|
+
value = form.defaultValue;
|
|
713
749
|
} else if (itemParam.dataAttr && itemParam.dataAttr.dataSrc == '2' && itemParam.dataAttr.fromMacro && itemParam.dataAttr.fromMacro.value == 'bizCode' && (value === '' || value == null || typeof value == 'undefined') && form.value) {
|
|
714
750
|
value = form.value;
|
|
715
751
|
} else if (itemParam.dataAttr && itemParam.dataAttr.dataSrc == '2' && itemParam.dataAttr.fromMacro && itemParam.dataAttr.fromMacro.value == 'bizCode' && (value === '' || value == null || typeof value == 'undefined') && form.defaultValue) {
|
|
@@ -888,15 +924,17 @@ var PageHome = function (_React$Component) {
|
|
|
888
924
|
// }else{
|
|
889
925
|
// valueArray.push(value);
|
|
890
926
|
// }
|
|
891
|
-
if (status == '0') {
|
|
927
|
+
if (status == '0' && !value && value !== 0) {
|
|
892
928
|
selectItem.map(function (selectI) {
|
|
893
929
|
if (selectI.isDefault == 1) {
|
|
894
930
|
valueArray.push(selectI.value);
|
|
895
931
|
}
|
|
896
932
|
});
|
|
897
933
|
} else {
|
|
898
|
-
if (value.indexOf("[") >= 0) {
|
|
934
|
+
if (value && (value + '').indexOf("[") >= 0) {
|
|
899
935
|
valueArray = JSON.parse(value);
|
|
936
|
+
} else if (value || value === 0) {
|
|
937
|
+
valueArray = (value + '').split(",");
|
|
900
938
|
}
|
|
901
939
|
}
|
|
902
940
|
selectItem.map(function (selectI) {
|
|
@@ -1425,9 +1463,12 @@ var PageHome = function (_React$Component) {
|
|
|
1425
1463
|
value = false;
|
|
1426
1464
|
}
|
|
1427
1465
|
} else {
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1466
|
+
// 再次发起:已有落库值优先;全新新增才用设计默认
|
|
1467
|
+
var switchSrc = value || value === 0 || value === false ? value : form.defaultValue;
|
|
1468
|
+
if (switchSrc === true || switchSrc === false) {
|
|
1469
|
+
value = switchSrc;
|
|
1470
|
+
} else if (switchSrc) {
|
|
1471
|
+
if (switchSrc == '1') {
|
|
1431
1472
|
value = true;
|
|
1432
1473
|
} else {
|
|
1433
1474
|
value = false;
|
|
@@ -1432,7 +1432,6 @@ var PageHome = function (_React$Component) {
|
|
|
1432
1432
|
} else if (operate == 1) {
|
|
1433
1433
|
//提交
|
|
1434
1434
|
var sendData = (0, _filterEmptySubTblRows.cloneAndFilterEmptySubTblRows)(t.state.editFormData) || {};
|
|
1435
|
-
sendData.formItem = [];
|
|
1436
1435
|
var param = {
|
|
1437
1436
|
taskId: this.state.taskId,
|
|
1438
1437
|
auditorUserIds: auditorUserIds,
|
|
@@ -1444,8 +1443,14 @@ var PageHome = function (_React$Component) {
|
|
|
1444
1443
|
module: this.state.module,
|
|
1445
1444
|
lock: this.state.lock,
|
|
1446
1445
|
reminderContent: this.state.reminderContent,
|
|
1447
|
-
processInstanceId: this.state.processInstanceId
|
|
1446
|
+
processInstanceId: this.state.processInstanceId,
|
|
1447
|
+
// 网关条件「上一环节办理人批示内容」依赖当前批示意见,getNextActivity 必须透传
|
|
1448
|
+
comment: typeof newComment === 'undefined' || newComment == null ? '' : newComment,
|
|
1449
|
+
commentType: 'text'
|
|
1448
1450
|
};
|
|
1451
|
+
if (this.state.commentId) {
|
|
1452
|
+
param.commentId = this.state.commentId;
|
|
1453
|
+
}
|
|
1449
1454
|
var dealActionName = "";
|
|
1450
1455
|
if (this.state.isStart == true) {
|
|
1451
1456
|
dealActionName = "提交";
|
|
@@ -323,7 +323,10 @@ var PageHome = function (_React$Component) {
|
|
|
323
323
|
var hasRadomList = false; //判断下次办理是否有随机活动节点
|
|
324
324
|
_db2.default.FlowModuleAPI.getNextActivity({
|
|
325
325
|
taskId: taskId,
|
|
326
|
-
code: code
|
|
326
|
+
code: code,
|
|
327
|
+
// 网关条件「上一环节办理人批示内容」依赖当前批示意见,getNextActivity 必须透传
|
|
328
|
+
comment: t.state.spyj == null || typeof t.state.spyj === 'undefined' ? '' : t.state.spyj,
|
|
329
|
+
commentType: 'text'
|
|
327
330
|
}).then(function (content) {
|
|
328
331
|
var nextList = content.activityList; //下一个后继节点列表
|
|
329
332
|
var radomList = content.radomList; //下一个随机活动节点
|
|
@@ -474,6 +474,10 @@ var PageHome = function (_React$Component) {
|
|
|
474
474
|
nextJumpActivity: [], //下一个跳转节点
|
|
475
475
|
jumpPersonValue: [], //转交选择的用户
|
|
476
476
|
addlotsPersonValue: [], //加签选择的用户
|
|
477
|
+
reduceSignUserList: [], //减签候选原始列表
|
|
478
|
+
reduceSignAddPool: [], //加签用户池(可移到减签)
|
|
479
|
+
reduceSignReducePool: [], //减签用户池(真正提交)
|
|
480
|
+
reduceShortMessage: '0', //减签提醒方式
|
|
477
481
|
circulateNodePersonValue: [], //传阅节点选择的用户
|
|
478
482
|
forwardNodePersonValue: [], //转发节点选择的用户
|
|
479
483
|
circulatePersonValue: [], //通过传阅的用户
|
|
@@ -1357,6 +1361,10 @@ var PageHome = function (_React$Component) {
|
|
|
1357
1361
|
}
|
|
1358
1362
|
formData.linkFields = form.linkFields;
|
|
1359
1363
|
formData.formItem = formItem;
|
|
1364
|
+
// 后端偶发带回字符串 "null",会导致提交带无效 dataId+optlock 被乐观锁拦截
|
|
1365
|
+
if (!(0, _filterEmptySubTblRows.isValidFormDataId)(formData.dataId)) {
|
|
1366
|
+
formData.dataId = '';
|
|
1367
|
+
}
|
|
1360
1368
|
|
|
1361
1369
|
//关联字段
|
|
1362
1370
|
var formRelaField = content.formRelaField;
|
|
@@ -1601,9 +1609,18 @@ var PageHome = function (_React$Component) {
|
|
|
1601
1609
|
// }
|
|
1602
1610
|
// }
|
|
1603
1611
|
var resolvedOptlock = formData && formData.optlock !== undefined && formData.optlock !== null && formData.optlock !== '' ? String(formData.optlock) : content.optlock !== undefined && content.optlock !== null && content.optlock !== '' ? String(content.optlock) : '';
|
|
1612
|
+
var forceOptlock = false;
|
|
1604
1613
|
if (t._pendingForceOptlock) {
|
|
1605
1614
|
resolvedOptlock = String(t._pendingForceOptlock);
|
|
1606
1615
|
t._pendingForceOptlock = null;
|
|
1616
|
+
forceOptlock = true;
|
|
1617
|
+
}
|
|
1618
|
+
// 无有效主表主键时不缓存 optlock,避免发起/新建误传版本号
|
|
1619
|
+
if (!forceOptlock && !(0, _filterEmptySubTblRows.isValidFormDataId)(formData && formData.dataId) && !(0, _filterEmptySubTblRows.isValidFormDataId)(t.state.dataId)) {
|
|
1620
|
+
var contentDataId = content && (content.dataId || content.businessKey);
|
|
1621
|
+
if (!(0, _filterEmptySubTblRows.isValidFormDataId)(contentDataId)) {
|
|
1622
|
+
resolvedOptlock = '';
|
|
1623
|
+
}
|
|
1607
1624
|
}
|
|
1608
1625
|
t.setState({
|
|
1609
1626
|
editFormData: formData,
|
|
@@ -2631,6 +2648,9 @@ var PageHome = function (_React$Component) {
|
|
|
2631
2648
|
case 'HELP_ADDLOTS':
|
|
2632
2649
|
t.handleSubmit(6);
|
|
2633
2650
|
break;
|
|
2651
|
+
case 'HELP_REDUCELOTS':
|
|
2652
|
+
t.handleSubmit(22);
|
|
2653
|
+
break;
|
|
2634
2654
|
case 'FLOW_REVOKE':
|
|
2635
2655
|
t.handleSubmit(7);
|
|
2636
2656
|
break;
|
|
@@ -2702,7 +2722,11 @@ var PageHome = function (_React$Component) {
|
|
|
2702
2722
|
permissionCode: _this2.state.permissionCode
|
|
2703
2723
|
};
|
|
2704
2724
|
if (t.state.module === 'approve' && t.state.formDataOptlock !== '' && t.state.formDataOptlock !== null && typeof t.state.formDataOptlock !== 'undefined') {
|
|
2705
|
-
|
|
2725
|
+
// 无有效主表 dataId 时不传 optlock,避免后端「已传版本却无主键」直接报冲突
|
|
2726
|
+
var optlockDataId = dataId || sendData && sendData.dataId || t.state.dataId;
|
|
2727
|
+
if ((0, _filterEmptySubTblRows.isValidFormDataId)(optlockDataId)) {
|
|
2728
|
+
param.optlock = t.state.formDataOptlock;
|
|
2729
|
+
}
|
|
2706
2730
|
}
|
|
2707
2731
|
var dealActionName = "";
|
|
2708
2732
|
if (_this2.state.isStart == true) {
|
|
@@ -2711,6 +2735,12 @@ var PageHome = function (_React$Component) {
|
|
|
2711
2735
|
dealActionName = _this2.state.finalButtons.get("BASE_SUMBIT");
|
|
2712
2736
|
}
|
|
2713
2737
|
param.dealActionName = dealActionName;
|
|
2738
|
+
// 网关条件「上一环节办理人批示内容」依赖当前批示意见,getNextActivity 必须透传
|
|
2739
|
+
param.comment = typeof newComment === 'undefined' || newComment == null ? '' : newComment;
|
|
2740
|
+
param.commentType = 'text';
|
|
2741
|
+
if (t.state.commentId) {
|
|
2742
|
+
param.commentId = t.state.commentId;
|
|
2743
|
+
}
|
|
2714
2744
|
var nextList = null; //下一个后继节点列表
|
|
2715
2745
|
var radomList = null; //下一个随机活动节点
|
|
2716
2746
|
var succeedRange = ""; //后继活动id
|
|
@@ -3390,6 +3420,9 @@ var PageHome = function (_React$Component) {
|
|
|
3390
3420
|
}, function () {
|
|
3391
3421
|
$(window).scrollTop(0);
|
|
3392
3422
|
});
|
|
3423
|
+
} else if (operate == 22) {
|
|
3424
|
+
//减签
|
|
3425
|
+
t.openReduceSign();
|
|
3393
3426
|
} else if (operate == 7) {
|
|
3394
3427
|
//撤销
|
|
3395
3428
|
this.recallClick();
|
|
@@ -4022,7 +4055,7 @@ var PageHome = function (_React$Component) {
|
|
|
4022
4055
|
var allEditIdsArray = [];
|
|
4023
4056
|
|
|
4024
4057
|
//主表id
|
|
4025
|
-
if (data.dataId) {
|
|
4058
|
+
if ((0, _filterEmptySubTblRows.isValidFormDataId)(data && data.dataId)) {
|
|
4026
4059
|
var mainTableId = data.dataId;
|
|
4027
4060
|
allEditIdsArray.push(mainTableId);
|
|
4028
4061
|
}
|
|
@@ -4638,6 +4671,9 @@ var PageHome = function (_React$Component) {
|
|
|
4638
4671
|
} else if (operate == 6) {
|
|
4639
4672
|
//加签
|
|
4640
4673
|
this.addlots();
|
|
4674
|
+
} else if (operate == 22) {
|
|
4675
|
+
//减签
|
|
4676
|
+
this.reduceSign();
|
|
4641
4677
|
} else if (operate == 4) {
|
|
4642
4678
|
//传阅
|
|
4643
4679
|
this.circulateNode();
|
|
@@ -5793,7 +5829,21 @@ var PageHome = function (_React$Component) {
|
|
|
5793
5829
|
// }
|
|
5794
5830
|
param.commentbizSn = commentbizSn;
|
|
5795
5831
|
if (t.state.module === 'approve' && t.state.formDataOptlock !== '' && t.state.formDataOptlock !== null && typeof t.state.formDataOptlock !== 'undefined') {
|
|
5796
|
-
|
|
5832
|
+
// 无有效主表 dataId 时不传 optlock,避免后端「已传版本却无主键」直接报冲突
|
|
5833
|
+
var sendOptlockDataId = param.dataId || t.state.dataId;
|
|
5834
|
+
try {
|
|
5835
|
+
if ((!sendOptlockDataId || !(0, _filterEmptySubTblRows.isValidFormDataId)(sendOptlockDataId)) && param.formData) {
|
|
5836
|
+
var parsedFd = typeof param.formData === 'string' ? JSON.parse(param.formData) : param.formData;
|
|
5837
|
+
if (parsedFd && (0, _filterEmptySubTblRows.isValidFormDataId)(parsedFd.dataId)) {
|
|
5838
|
+
sendOptlockDataId = parsedFd.dataId;
|
|
5839
|
+
}
|
|
5840
|
+
}
|
|
5841
|
+
} catch (eOpt) {}
|
|
5842
|
+
if ((0, _filterEmptySubTblRows.isValidFormDataId)(sendOptlockDataId)) {
|
|
5843
|
+
param.optlock = t.state.formDataOptlock;
|
|
5844
|
+
} else if (param.optlock !== undefined) {
|
|
5845
|
+
delete param.optlock;
|
|
5846
|
+
}
|
|
5797
5847
|
}
|
|
5798
5848
|
|
|
5799
5849
|
var db = _db2.default;
|
|
@@ -6725,6 +6775,152 @@ var PageHome = function (_React$Component) {
|
|
|
6725
6775
|
}
|
|
6726
6776
|
});
|
|
6727
6777
|
}
|
|
6778
|
+
|
|
6779
|
+
// 打开减签页:拉取本节点被加签人列表
|
|
6780
|
+
|
|
6781
|
+
}, {
|
|
6782
|
+
key: 'openReduceSign',
|
|
6783
|
+
value: function openReduceSign() {
|
|
6784
|
+
var t = this;
|
|
6785
|
+
_db2.default.FlowModuleAPI.getSignUserList({
|
|
6786
|
+
taskId: t.state.taskId
|
|
6787
|
+
}).then(function (content) {
|
|
6788
|
+
var list = content || [];
|
|
6789
|
+
var addPool = [];
|
|
6790
|
+
for (var i = 0; i < list.length; i++) {
|
|
6791
|
+
var item = list[i];
|
|
6792
|
+
addPool.push({
|
|
6793
|
+
userid: item.userid,
|
|
6794
|
+
username: item.username,
|
|
6795
|
+
status: item.status
|
|
6796
|
+
});
|
|
6797
|
+
}
|
|
6798
|
+
t.setState({
|
|
6799
|
+
pageStatus: '1',
|
|
6800
|
+
operate: 22,
|
|
6801
|
+
reduceSignUserList: list,
|
|
6802
|
+
reduceSignAddPool: addPool,
|
|
6803
|
+
reduceSignReducePool: [],
|
|
6804
|
+
reduceShortMessage: t.state.addlotsShortMessage || '0'
|
|
6805
|
+
}, function () {
|
|
6806
|
+
$(window).scrollTop(0);
|
|
6807
|
+
});
|
|
6808
|
+
}).catch(function (error) {
|
|
6809
|
+
_Toast2.default.show({
|
|
6810
|
+
type: 'error',
|
|
6811
|
+
content: error && error.errorMsg ? error.errorMsg : '获取减签用户失败'
|
|
6812
|
+
});
|
|
6813
|
+
});
|
|
6814
|
+
}
|
|
6815
|
+
}, {
|
|
6816
|
+
key: 'moveToReducePool',
|
|
6817
|
+
value: function moveToReducePool(userId) {
|
|
6818
|
+
var addPool = (this.state.reduceSignAddPool || []).slice();
|
|
6819
|
+
var reducePool = (this.state.reduceSignReducePool || []).slice();
|
|
6820
|
+
for (var i = 0; i < addPool.length; i++) {
|
|
6821
|
+
if (addPool[i].userid == userId && addPool[i].status != '1') {
|
|
6822
|
+
reducePool.push(addPool[i]);
|
|
6823
|
+
addPool.splice(i, 1);
|
|
6824
|
+
break;
|
|
6825
|
+
}
|
|
6826
|
+
}
|
|
6827
|
+
this.setState({
|
|
6828
|
+
reduceSignAddPool: addPool,
|
|
6829
|
+
reduceSignReducePool: reducePool
|
|
6830
|
+
});
|
|
6831
|
+
}
|
|
6832
|
+
}, {
|
|
6833
|
+
key: 'moveToAddPool',
|
|
6834
|
+
value: function moveToAddPool(userId) {
|
|
6835
|
+
var addPool = (this.state.reduceSignAddPool || []).slice();
|
|
6836
|
+
var reducePool = (this.state.reduceSignReducePool || []).slice();
|
|
6837
|
+
for (var i = 0; i < reducePool.length; i++) {
|
|
6838
|
+
if (reducePool[i].userid == userId) {
|
|
6839
|
+
addPool.push(reducePool[i]);
|
|
6840
|
+
reducePool.splice(i, 1);
|
|
6841
|
+
break;
|
|
6842
|
+
}
|
|
6843
|
+
}
|
|
6844
|
+
this.setState({
|
|
6845
|
+
reduceSignAddPool: addPool,
|
|
6846
|
+
reduceSignReducePool: reducePool
|
|
6847
|
+
});
|
|
6848
|
+
}
|
|
6849
|
+
}, {
|
|
6850
|
+
key: 'changeReduceShortMessage',
|
|
6851
|
+
value: function changeReduceShortMessage(data) {
|
|
6852
|
+
var newremindStyle = "";
|
|
6853
|
+
for (var i = 0; i < data.length; i++) {
|
|
6854
|
+
if (i == data.length - 1) newremindStyle += data[i].value;else newremindStyle += data[i].value + ',';
|
|
6855
|
+
}
|
|
6856
|
+
this.setState({
|
|
6857
|
+
reduceShortMessage: newremindStyle || '0'
|
|
6858
|
+
});
|
|
6859
|
+
}
|
|
6860
|
+
}, {
|
|
6861
|
+
key: 'reduceSign',
|
|
6862
|
+
value: function reduceSign() {
|
|
6863
|
+
var t = this;
|
|
6864
|
+
var selected = t.state.reduceSignReducePool || [];
|
|
6865
|
+
var userIds = '';
|
|
6866
|
+
var userNames = '';
|
|
6867
|
+
selected.map(function (item) {
|
|
6868
|
+
userIds += item.userid + ',';
|
|
6869
|
+
userNames += item.username + ',';
|
|
6870
|
+
});
|
|
6871
|
+
if (userIds == '') {
|
|
6872
|
+
_Toast2.default.show({
|
|
6873
|
+
type: 'error',
|
|
6874
|
+
content: '请选择需要减签的用户'
|
|
6875
|
+
});
|
|
6876
|
+
return false;
|
|
6877
|
+
}
|
|
6878
|
+
userIds = userIds.substring(0, userIds.length - 1);
|
|
6879
|
+
userNames = userNames.substring(0, userNames.length - 1);
|
|
6880
|
+
var processTitle = t.state.processTitle || t.state.fileTitle || '';
|
|
6881
|
+
var reminders = t.state.reduceShortMessage;
|
|
6882
|
+
if (reminders == '0') {
|
|
6883
|
+
reminders = '';
|
|
6884
|
+
}
|
|
6885
|
+
var isPush = t.state.isPush;
|
|
6886
|
+
_db2.default.FlowModuleAPI.reduceSign({
|
|
6887
|
+
taskId: t.state.taskId,
|
|
6888
|
+
userIds: userIds,
|
|
6889
|
+
userNames: userNames,
|
|
6890
|
+
reminders: reminders,
|
|
6891
|
+
processTitle: processTitle,
|
|
6892
|
+
module: t.state.module,
|
|
6893
|
+
processInstanceId: t.state.processInstanceId,
|
|
6894
|
+
formId: t.state.formId,
|
|
6895
|
+
dataId: t.state.dataId,
|
|
6896
|
+
permissionCode: t.state.permissionCode,
|
|
6897
|
+
categoryCode: t.state.category || ''
|
|
6898
|
+
}).then(function (content) {
|
|
6899
|
+
_Toast2.default.show({
|
|
6900
|
+
type: 'success',
|
|
6901
|
+
content: (t.state.finalButtons.get('HELP_REDUCELOTS') || '减签') + '成功'
|
|
6902
|
+
});
|
|
6903
|
+
if (isPush == '1') {
|
|
6904
|
+
closePage();
|
|
6905
|
+
} else {
|
|
6906
|
+
setTimeout(function () {
|
|
6907
|
+
history.back();
|
|
6908
|
+
}, 1500);
|
|
6909
|
+
}
|
|
6910
|
+
}).catch(function (error) {
|
|
6911
|
+
if (typeof error.errorMsg == 'undefined') {
|
|
6912
|
+
_Toast2.default.show({
|
|
6913
|
+
type: 'error',
|
|
6914
|
+
content: '提交出错'
|
|
6915
|
+
});
|
|
6916
|
+
} else {
|
|
6917
|
+
_Toast2.default.show({
|
|
6918
|
+
type: 'error',
|
|
6919
|
+
content: error.errorMsg.replace('!', '').replace('!', '')
|
|
6920
|
+
});
|
|
6921
|
+
}
|
|
6922
|
+
});
|
|
6923
|
+
}
|
|
6728
6924
|
}, {
|
|
6729
6925
|
key: 'circulateNode',
|
|
6730
6926
|
value: function circulateNode() {
|
|
@@ -7469,6 +7665,11 @@ var PageHome = function (_React$Component) {
|
|
|
7469
7665
|
buttonCodeListNew.push({ name: buttonName, type: 'secondary', display: 'inline', no: 5 });
|
|
7470
7666
|
} else if (buttonCode == 'HELP_ADDLOTS') {
|
|
7471
7667
|
buttonCodeListNew.push({ name: buttonName, type: 'secondary', display: 'inline', no: 6 });
|
|
7668
|
+
var pmMore = String(_this4.state.participantMode);
|
|
7669
|
+
if (pmMore == '1' || pmMore == '2') {
|
|
7670
|
+
var reduceNameMore = _this4.state.finalButtons.get('HELP_REDUCELOTS') || '减签';
|
|
7671
|
+
buttonCodeListNew.push({ name: reduceNameMore, type: 'secondary', display: 'inline', no: 22 });
|
|
7672
|
+
}
|
|
7472
7673
|
} else if (buttonCode == 'BASE_END') {
|
|
7473
7674
|
buttonCodeListNew.push({ name: buttonName, type: 'secondary', display: 'inline', no: 8 });
|
|
7474
7675
|
} else if (buttonCode == 'BASE_NOTPASS') {
|
|
@@ -7488,6 +7689,13 @@ var PageHome = function (_React$Component) {
|
|
|
7488
7689
|
} else {
|
|
7489
7690
|
actionSheetButtonOpt.push(buttonCode);
|
|
7490
7691
|
actionSheetButtonOptName.push(buttonName);
|
|
7692
|
+
if (buttonCode == 'HELP_ADDLOTS') {
|
|
7693
|
+
var pmSheet = String(_this4.state.participantMode);
|
|
7694
|
+
if (pmSheet == '1' || pmSheet == '2') {
|
|
7695
|
+
actionSheetButtonOpt.push('HELP_REDUCELOTS');
|
|
7696
|
+
actionSheetButtonOptName.push(_this4.state.finalButtons.get('HELP_REDUCELOTS') || '减签');
|
|
7697
|
+
}
|
|
7698
|
+
}
|
|
7491
7699
|
}
|
|
7492
7700
|
}
|
|
7493
7701
|
var nowNum = mainSlotCount;
|
|
@@ -7526,6 +7734,11 @@ var PageHome = function (_React$Component) {
|
|
|
7526
7734
|
buttonList.push({ name: buttonName, type: 'secondary', display: 'inline', no: 5 });
|
|
7527
7735
|
} else if (buttonCode == 'HELP_ADDLOTS') {
|
|
7528
7736
|
buttonList.push({ name: buttonName, type: 'secondary', display: 'inline', no: 6 });
|
|
7737
|
+
var pmFew = String(_this4.state.participantMode);
|
|
7738
|
+
if (pmFew == '1' || pmFew == '2') {
|
|
7739
|
+
var reduceNameFew = _this4.state.finalButtons.get('HELP_REDUCELOTS') || '减签';
|
|
7740
|
+
buttonList.push({ name: reduceNameFew, type: 'secondary', display: 'inline', no: 22 });
|
|
7741
|
+
}
|
|
7529
7742
|
} else if (buttonCode == 'BASE_END') {
|
|
7530
7743
|
buttonList.push({ name: buttonName, type: 'secondary', display: 'inline', no: 8 });
|
|
7531
7744
|
} else if (buttonCode == 'BASE_NOTPASS') {
|
|
@@ -9903,6 +10116,73 @@ var PageHome = function (_React$Component) {
|
|
|
9903
10116
|
onChange: this.changeAddlotsShortMessage.bind(this),
|
|
9904
10117
|
required: false })
|
|
9905
10118
|
),
|
|
10119
|
+
_react2.default.createElement(
|
|
10120
|
+
_Group2.default.List,
|
|
10121
|
+
{ className: this.state.operate == 22 ? '' : 't-DN' },
|
|
10122
|
+
_react2.default.createElement(
|
|
10123
|
+
'div',
|
|
10124
|
+
{ style: { background: '#f2f3f5', padding: '10px 5px' } },
|
|
10125
|
+
_react2.default.createElement(
|
|
10126
|
+
'span',
|
|
10127
|
+
{ className: 'theme-color' },
|
|
10128
|
+
_react2.default.createElement('i', { className: 'iconfont icon-back t-rotate-180 t-FS14 t-FR' }),
|
|
10129
|
+
this.state.finalButtons.get("HELP_REDUCELOTS") || '减签'
|
|
10130
|
+
)
|
|
10131
|
+
),
|
|
10132
|
+
_react2.default.createElement(
|
|
10133
|
+
'div',
|
|
10134
|
+
{ className: 't-field-box t-FBH t-FBAC', style: { padding: '10px 16px', flexWrap: 'wrap' } },
|
|
10135
|
+
_react2.default.createElement(
|
|
10136
|
+
'div',
|
|
10137
|
+
{ className: 't-field-layout-h-label', style: { width: '100%', marginBottom: '6px' } },
|
|
10138
|
+
'\u52A0\u7B7E\u7528\u6237'
|
|
10139
|
+
),
|
|
10140
|
+
_react2.default.createElement(
|
|
10141
|
+
'div',
|
|
10142
|
+
{ style: { display: 'flex', flexWrap: 'wrap', width: '100%' } },
|
|
10143
|
+
(this.state.reduceSignAddPool || []).map(function (item, idx) {
|
|
10144
|
+
return item.status == '1' ? _react2.default.createElement(
|
|
10145
|
+
'span',
|
|
10146
|
+
{ key: 'add-' + item.userid + '-' + idx, style: { margin: '0 8px 8px 0', padding: '4px 10px', background: '#f0f0f0', color: '#999', borderRadius: '4px', fontSize: '13px' } },
|
|
10147
|
+
item.username,
|
|
10148
|
+
'(\u5DF2\u529E)'
|
|
10149
|
+
) : _react2.default.createElement(
|
|
10150
|
+
'span',
|
|
10151
|
+
{ key: 'add-' + item.userid + '-' + idx, onClick: _this5.moveToReducePool.bind(_this5, item.userid), style: { margin: '0 8px 8px 0', padding: '4px 10px', background: '#e60012', color: '#fff', borderRadius: '4px', fontSize: '13px' } },
|
|
10152
|
+
item.username,
|
|
10153
|
+
' \xD7'
|
|
10154
|
+
);
|
|
10155
|
+
})
|
|
10156
|
+
)
|
|
10157
|
+
),
|
|
10158
|
+
_react2.default.createElement(
|
|
10159
|
+
'div',
|
|
10160
|
+
{ className: 't-field-box t-FBH t-FBAC', style: { padding: '10px 16px', flexWrap: 'wrap' } },
|
|
10161
|
+
_react2.default.createElement(
|
|
10162
|
+
'div',
|
|
10163
|
+
{ className: 't-field-layout-h-label', style: { width: '100%', marginBottom: '6px' } },
|
|
10164
|
+
'\u51CF\u7B7E\u7528\u6237'
|
|
10165
|
+
),
|
|
10166
|
+
_react2.default.createElement(
|
|
10167
|
+
'div',
|
|
10168
|
+
{ style: { display: 'flex', flexWrap: 'wrap', width: '100%' } },
|
|
10169
|
+
(this.state.reduceSignReducePool || []).map(function (item, idx) {
|
|
10170
|
+
return _react2.default.createElement(
|
|
10171
|
+
'span',
|
|
10172
|
+
{ key: 'reduce-' + item.userid + '-' + idx, onClick: _this5.moveToAddPool.bind(_this5, item.userid), style: { margin: '0 8px 8px 0', padding: '4px 10px', background: '#e60012', color: '#fff', borderRadius: '4px', fontSize: '13px' } },
|
|
10173
|
+
item.username,
|
|
10174
|
+
' \xD7'
|
|
10175
|
+
);
|
|
10176
|
+
})
|
|
10177
|
+
)
|
|
10178
|
+
),
|
|
10179
|
+
_react2.default.createElement(_CheckboxField2.default, {
|
|
10180
|
+
data: this.state.shortMessageList,
|
|
10181
|
+
className: '',
|
|
10182
|
+
mode: 'list',
|
|
10183
|
+
onChange: this.changeReduceShortMessage.bind(this),
|
|
10184
|
+
required: false })
|
|
10185
|
+
),
|
|
9906
10186
|
_react2.default.createElement(
|
|
9907
10187
|
_Group2.default.List,
|
|
9908
10188
|
{ className: this.state.operate == 4 ? '' : 't-DN' },
|