fmui-base 2.1.83 → 2.1.85

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.
@@ -0,0 +1,1804 @@
1
+ import React from 'react';
2
+ import Tab from 'saltui/lib/Tab';
3
+ import Form from './form';
4
+ import SubForm from './subForm';
5
+ import CommentList from '../comment_list/List';
6
+ import CheckboxField from 'saltui/lib/CheckboxField';
7
+ import TextareaField from 'saltui/lib/TextareaField';
8
+ import Toast from 'saltui/lib/Toast';
9
+ import FoldablePane from 'saltui/lib/FoldablePane';
10
+ import Boxs from 'saltui/lib/Boxs';
11
+ import Upload from '../upload/upload';
12
+ const { HBox, Box, VBox } = Boxs;
13
+
14
+ import DB from '../db/db';
15
+
16
+ let FlowCommon ;
17
+ //是否保存为常用语
18
+ let savePhraseList=[
19
+ {
20
+ value:"1",
21
+ checked:false,
22
+ content:'是否保存为常用语',
23
+ disable:false
24
+ }
25
+ ];
26
+ let formRelaFieldMaps;
27
+ export default class PageHome extends React.Component {
28
+ constructor(props) {
29
+ super(props);
30
+ //alert(JSON.stringify(props));
31
+ let defaultValue = props.defaultValue;
32
+ let status = props.status;
33
+ let formRelaField = props.formRelaField;//关联字段
34
+ let linkFields = props.allForm?props.allForm.linkFields:"";//级联字段
35
+ let formId = props.data?props.data.formId:"";//表单id
36
+
37
+ //关联字段
38
+ var formRelaFieldMapsNew = {};
39
+ if(formRelaField){
40
+ $.ajax({
41
+ type : 'GET',
42
+ url : getLoginUserInfo().context+"/api/m/model/formmgr/relafield/getRelaFieldsMap",
43
+ data : {
44
+ formId: formId,
45
+ setId: formRelaField
46
+ },
47
+ headers:{
48
+ Authorization:'Bearer '+getLoginUserInfo().token,
49
+ },
50
+ dataType : "json",
51
+ async:false,
52
+ success : function(data) {
53
+ if(data.code == "0"){
54
+ formRelaFieldMaps = data.data;
55
+ if(formRelaFieldMaps){
56
+ for (const k of Object.keys(formRelaFieldMaps)) {
57
+ formRelaFieldMaps[k].map(function(item){
58
+ var relaFieldTblName = item.relaFieldTblName;
59
+ var relaFieldName = item.relaFieldName;
60
+ var relaFieldTblNameArray = relaFieldTblName.split(",");
61
+ var relaFieldNameArray = relaFieldName.split(",");
62
+ relaFieldTblNameArray.map(function(relaFieldTblNameArrayItem,index){
63
+ var relaFieldTblNameNew = {
64
+ "relaFieldTblName": relaFieldTblNameArrayItem,
65
+ "triggerFieldName": item.triggerFieldName,
66
+ "triggerFieldVal": item.triggerFieldVal,
67
+ "triggerTblName": item.triggerTblName,
68
+ "editType": item.editType,
69
+ "relaFieldName": relaFieldNameArray[index],
70
+ "relaTblName": item.relaTblName
71
+ };
72
+ if(formRelaFieldMapsNew[relaFieldTblNameArrayItem]) {
73
+ formRelaFieldMapsNew[relaFieldTblNameArrayItem].push(relaFieldTblNameNew);
74
+ }else{
75
+ formRelaFieldMapsNew[relaFieldTblNameArrayItem] = [relaFieldTblNameNew];
76
+ }
77
+ })
78
+
79
+ });
80
+ }
81
+ }
82
+ }
83
+ },
84
+ error : function() {
85
+ console.log("异常");
86
+ }
87
+ });
88
+ }
89
+
90
+ var linkFieldsNew = {};
91
+ // if(linkFields){
92
+ // linkFieldsNew
93
+ // linkFields.map(function(linkFieldsItem){
94
+ // if(linkFieldsItem.relaField){
95
+
96
+ // var linkFormField = linkFieldsItem.formField;
97
+
98
+ // var defaultValue = "";
99
+ // var key = "";
100
+ // var itemType = "";
101
+ // props.form.map(function(propsFormItem){
102
+ // if(propsFormItem.fieldId == linkFormField){
103
+ // defaultValue = propsItem.defaultValue;
104
+ // key = propsFormItem.itemCode;
105
+ // itemType = propsFormItem.itemType;
106
+ // }
107
+ // })
108
+ // if(status == 1 || status == 2 ){
109
+ // var mainTblData = props.data.mainTblData;//主表数据
110
+ // var subTbl = props.data.subTbl;//子表
111
+ // mainTblData.map(function(mainTblDataItem){
112
+ // if(mainTblDataItem.key == key){
113
+ // defaultValue = propsItem.defaultValue;
114
+ // }
115
+ // })
116
+ // }
117
+ // var linkFieldsObj = {};
118
+ // linkFieldsObj.formField = linkFormField;
119
+ // linkFieldsObj.value = defaultValue;
120
+
121
+ // var linkRelaFieldArray = linkFieldsNew[linkFieldsItem.relaField];
122
+ // if(linkRelaFieldArray && linkRelaFieldArray.length>0){
123
+ // linkRelaFieldArray.push(linkFieldsObj);
124
+ // linkFieldsNew[linkFieldsItem.relaField] = linkRelaFieldArray;
125
+ // }else{
126
+ // linkFieldsNew[linkFieldsItem.relaField] = [linkFieldsObj];
127
+ // }
128
+ // }
129
+ // })
130
+
131
+
132
+ // }
133
+
134
+
135
+ // let startUserName = decodeURI(this.props.params.startUserName);//创建人用户
136
+ // let startUserGroupName = decodeURI(this.props.params.startUserGroupName);//创建人组织
137
+ //let startUserId = this.props.params.startUserId;
138
+ this.state = {
139
+ commentFieldList: [],
140
+ commentDefaultList: [],
141
+ //startUserId:startUserId,
142
+ formItem: [],
143
+ formData: {},
144
+ active: "ezPageTab0",
145
+ savePhraseList: [
146
+ {
147
+ value: "1",
148
+ checked: false,
149
+ content: '是否保存为常用语',
150
+ disable: false
151
+ }
152
+ ],
153
+ savePhrase: [],
154
+ fold: true,
155
+ phraseListNew: [],
156
+ phraseList: [],//常用语列表
157
+ spyj: defaultValue,
158
+ formRelaFieldMaps:formRelaFieldMapsNew,
159
+ linkFields:linkFieldsNew,
160
+ commentInitList:[]
161
+ };
162
+
163
+ let module = props.module && props.module != "undefined"? props.module:"approve";
164
+ try {
165
+ FlowCommon = require('pages/flow_common/'+module).default?require('pages/flow_common/'+module).default:require('pages/flow_common/'+module);
166
+ } catch (error) {
167
+ }
168
+
169
+
170
+ // DB.form.getRelaFieldsMap({
171
+ // formId: formId,
172
+ // setId: formRelaField
173
+ // }).then((content) => {
174
+ // formRelaFieldMaps = content;
175
+ // })
176
+ // formRelaFieldMaps = {
177
+ // "cs_test_f5" : [ {
178
+ // "relaFieldTblName" : "cs_test_f3",
179
+ // "triggerTblId" : "2c93ab0a87b618580187bc98b5a07db4",
180
+ // "triggerFieldId" : "4028818f87e990610187e9c21c4b0098",
181
+ // "triggerFieldName" : "f5",
182
+ // "relaTblId" : "2c93ab0a87b618580187bc98b5a07db4",
183
+ // "triggerFieldVal" : "1",
184
+ // "triggerTblName" : "cs_test",
185
+ // "relaFieldId" : "2c93ab0a87b618580187bc99bcbd7e0d",
186
+ // "editType" : "hide",
187
+ // "relaFieldName" : "f3",
188
+ // "relaTblName" : "cs_test"
189
+ // } ],
190
+ // "cs_test_f4" : [ {
191
+ // "relaFieldTblName" : "cs_test_f2",
192
+ // "triggerTblId" : "2c93ab0a87b618580187bc98b5a07db4",
193
+ // "triggerFieldId" : "2c93ab0a87c22ae20187c6d392895911",
194
+ // "triggerFieldName" : "f4",
195
+ // "relaTblId" : "2c93ab0a87b618580187bc98b5a07db4",
196
+ // "triggerFieldVal" : "1",
197
+ // "triggerTblName" : "cs_test",
198
+ // "relaFieldId" : "2c93ab0a87b618580187bc99a3397e0a",
199
+ // "editType" : "hide",
200
+ // "relaFieldName" : "f2",
201
+ // "relaTblName" : "cs_test"
202
+ // }, {
203
+ // "relaFieldTblName" : "cs_test_f3",
204
+ // "triggerTblId" : "2c93ab0a87b618580187bc98b5a07db4",
205
+ // "triggerFieldId" : "2c93ab0a87c22ae20187c6d392895911",
206
+ // "triggerFieldName" : "f4",
207
+ // "relaTblId" : "2c93ab0a87b618580187bc98b5a07db4",
208
+ // "triggerFieldVal" : "2",
209
+ // "triggerTblName" : "cs_test",
210
+ // "relaFieldId" : "2c93ab0a87b618580187bc99bcbd7e0d",
211
+ // "editType" : "hide",
212
+ // "relaFieldName" : "f3",
213
+ // "relaTblName" : "cs_test"
214
+ // } ]
215
+ // }
216
+ }
217
+
218
+ componentDidMount() {
219
+ let t = this;
220
+
221
+ // let formItem = this.props.form;
222
+ // let commentList = this.props.commentList;
223
+ // let formData = this.props.formData;
224
+
225
+ // t.setState({
226
+ // formItem:formItem,
227
+ // commentFieldList:commentFieldList,
228
+ // commentDefaultList:commentDefaultList,
229
+ // formData:formData
230
+ // });
231
+ }
232
+ reloadItemParam(key,value){
233
+ let t = this;
234
+ var textValue = '';
235
+ var valueMap = {};
236
+ valueMap.key = 'value';
237
+ valueMap.value = value;
238
+
239
+ t.refs[key].reloadItemParam([valueMap]);
240
+ }
241
+
242
+ change(data, itemParam,subTblNo) {
243
+ console.log("formRelaFieldMaps=="+this.state.formRelaFieldMaps);
244
+ let t = this;
245
+ var module = t.props.module;
246
+ var formKey = t.props.allForm?t.props.allForm.formcode:"";
247
+ var formTblId = t.props.allForm?t.props.allForm.formTblId:"";
248
+ if(typeof subTblNo != 'undefined'){
249
+ itemParam.subTblNo = subTblNo;
250
+ }
251
+ if (itemParam && itemParam.key) {//修改事件的时候
252
+
253
+ var mainTblData = data.mainTblData;
254
+ var mainTblName = data.mainTblName;
255
+ var subTbl = data.subTbl;
256
+ // var subTblNo = data.subTblNo;
257
+ //处理特有参数
258
+ if (typeof FlowCommon.dealwithFormItemChange === "function") {
259
+ FlowCommon.dealwithFormItemChange(itemParam, this);
260
+ }
261
+ var mobileExt;
262
+ try{
263
+ if (formKey) {
264
+ mobileExt = typeof eval(module + "_" + formKey + "_mobileExt") !== 'undefined'?eval(module + "_" + formKey + "_mobileExt"):null;
265
+ }
266
+ }catch(e){
267
+ // alert("exception: "+e.message);
268
+ }
269
+ //项目开发扩展
270
+ if (typeof mobileExt !== 'undefined' && typeof mobileExt["dealwithFormItemChangeExt"] === "function") {
271
+ mobileExt["dealwithFormItemChangeExt"](itemParam, this, function (paramsExt) {
272
+ if(paramsExt.length>0){
273
+ paramsExt.map(function(itemExt){
274
+ if(itemExt.type == 'main'){//主表
275
+ t.refs[mainTblName+"_"+itemExt.key].reloadItemParam(itemExt.value);
276
+ for(var iExt=0; iExt < mainTblData.length; iExt++){
277
+ if (itemExt.data && itemExt.key == mainTblData[iExt].key) {
278
+ mainTblData[iExt].value = itemExt.data;
279
+ }
280
+ }
281
+ }else if(itemExt.type == 'sub'){//子表
282
+
283
+ var operateType = itemExt.operateType;
284
+ if(!operateType){
285
+ operateType = "edit";
286
+ }
287
+ if(operateType == "add"){
288
+ t.refs["sub_" + itemExt.key].detailAdd(itemExt.value);
289
+ } else if(operateType == "delete"){
290
+ t.refs["sub_" + itemExt.key].detailDel(itemExt.index);
291
+ // for (var iExtSub = 0; iExtSub < subTbl.length; iExtSub++) {
292
+ // var subTblName = subTbl[iExtSub].subTblName;
293
+ // if (subTblName == itemExt.key) {
294
+ // if (itemExt.data) {
295
+ // var subTblData = subTbl[iExtSub].subTblData;
296
+ // for (var iExtSubData = 0; iExtSubData < subTblData.length; iExtSubData++) {
297
+ // if (itemExt.key == subTblData[iExtSubData].key) {
298
+ // subTblData[iExtSubData].value = itemExt.data;
299
+ // }
300
+ // }
301
+ // }
302
+ // }
303
+ // }
304
+ }else{
305
+ if (itemExt.index || itemExt.index == 0) {
306
+ if(itemExt.subCode){
307
+
308
+ t.refs["sub_" + itemExt.key].refs[itemExt.key + "_" + itemExt.subCode + "_" + itemExt.index].reloadItemParam(itemExt.value);
309
+ // t.refs["sub_" + itemExt.key].reloadSubItemParam([itemExt]);
310
+ for (var iExtSub = 0; iExtSub < subTbl.length; iExtSub++) {
311
+ var subTblName = subTbl[iExtSub].subTblName;
312
+ if (subTblName == itemExt.key) {
313
+ if (itemExt.data) {
314
+ var subTblData = subTbl[iExtSub].subTblData;
315
+ if(subTblData.length>itemExt.index){
316
+ var subTblItemData = subTbl[iExtSub].subTblData[itemExt.index];
317
+ for (var iExtSubDataItem = 0; iExtSubDataItem < subTblItemData.length; iExtSubDataItem++) {
318
+ if (itemExt.subCode == subTblItemData[iExtSubDataItem].key) {
319
+ subTblItemData[iExtSubDataItem].value = itemExt.data;
320
+ }
321
+ }
322
+ }
323
+ }
324
+ }
325
+ }
326
+ }else{
327
+ var itemExtValue = itemExt.value;
328
+ if(itemExtValue.length>0){
329
+ for (var itemExtValueIndex = 0; itemExtValueIndex < itemExtValue.length; itemExtValueIndex++) {
330
+ var itemExtValueArray = itemExtValue[itemExtValueIndex];
331
+ t.refs["sub_" + itemExt.key].refs[itemExt.key + "_" + itemExtValueArray.key + "_" + itemExt.index].reloadItemParam([{key:"value",value:itemExtValueArray.value}]);
332
+
333
+
334
+ for (var iExtSub = 0; iExtSub < subTbl.length; iExtSub++) {
335
+ var subTblName = subTbl[iExtSub].subTblName;
336
+ if (subTblName == itemExt.key) {
337
+ var subTblData = subTbl[iExtSub].subTblData;
338
+ // for (var iExtSubData = 0; iExtSubData < subTblData.length; iExtSubData++) {
339
+ if(subTblData.length>itemExt.index){
340
+ var subTblItemData = subTblData[itemExt.index];
341
+ for (var iExtSubDataItem = 0; iExtSubDataItem < subTblItemData.length; iExtSubDataItem++) {
342
+ if (itemExtValueArray.key == subTblItemData[iExtSubDataItem].key) {
343
+ subTblItemData[iExtSubDataItem].value = itemExtValueArray.value;
344
+ }
345
+ }
346
+ }
347
+ // }
348
+ }
349
+ }
350
+ }
351
+
352
+
353
+ }
354
+
355
+ }
356
+ } else{
357
+ t.refs["sub_" + itemExt.key].reloadItemParam(itemExt.value);
358
+ }
359
+ }
360
+
361
+ }
362
+ })
363
+ }
364
+
365
+ });
366
+ }
367
+ var uniqueName = itemParam.uniqueName;
368
+ if (itemParam.itemType == 'text' || itemParam.itemType == 'datetime' || itemParam.itemType == 'detail' ) {//当等于单行文本或者时间时
369
+ this.forCalculateExpList(data, itemParam, uniqueName);
370
+ if (data.subCalculateExpList) {
371
+ this.forSubCalculateExpList(data, itemParam, uniqueName,subTblNo);
372
+ }
373
+ }
374
+
375
+ if (itemParam.itemType == 'datetime') {//当等于时间时
376
+ this.forCalculateExpList(data, itemParam, uniqueName);
377
+
378
+ }
379
+
380
+ if (itemParam.itemType) {
381
+
382
+ var fieldId = itemParam.fieldId;
383
+ var linkFields = data.linkFields;
384
+ var formItem = data.formItem;
385
+ if (linkFields && linkFields != null) {
386
+ for (var i = 0; i < linkFields.length; i++) {
387
+ var formField = linkFields[i].formField;
388
+ if (formField != null && formField != '') {
389
+ var ffid = formField.split(",");
390
+ var conditionArrayJSON = [];
391
+ if (formField.indexOf(fieldId) != -1) {
392
+ for (var j = 0; j < ffid.length; j++) {
393
+ var linkFormKey = "";
394
+ var linkFormTableKey = "";
395
+ var isSub = false;
396
+ for (var f = 0; f < formItem.length; f++) {
397
+ if(ffid[j] == formItem[f].fieldId){
398
+ linkFormKey = formItem[f].itemCode;
399
+ linkFormTableKey = mainTblName;
400
+ continue;
401
+ }else if(formItem[f].itemType == 'detail'){
402
+ for (var g = 0; g < formItem[f].children.length; g++) {
403
+ if(ffid[j] == formItem[f].children[g].fieldId){
404
+ linkFormKey = formItem[f].children[g].itemCode;
405
+ linkFormTableKey = formItem[f].itemCode;
406
+ isSub = true;
407
+ continue;
408
+ }
409
+ }
410
+ }
411
+ }
412
+ if(linkFormKey){
413
+ var selectValue = "";
414
+ var isSelect = false;
415
+ if(isSub){
416
+ for(var l = 0; l < subTbl.length; l++){
417
+ if(subTbl[l].subTblName == linkFormTableKey){
418
+ for(var g = 0; g < subTbl[l].subTblData[subTblNo].length; g++){
419
+ if(subTbl[l].subTblData[subTblNo][g].key == linkFormKey){
420
+ var option = {};
421
+ option.value = subTbl[l].subTblData[subTblNo][g].value;
422
+ option.formField = ffid[j];
423
+ conditionArrayJSON.push(option);
424
+ continue;
425
+ }
426
+ }
427
+ }
428
+ }
429
+ }else{
430
+ for (var k = 0; k < mainTblData.length; k++) {
431
+ if (linkFormTableKey+"_"+linkFormKey == mainTblName+"_"+mainTblData[k].key) {
432
+ var option = {};
433
+ selectValue = mainTblData[k].value;
434
+ option.value = mainTblData[k].value;
435
+ option.formField = ffid[j];
436
+ conditionArrayJSON.push(option);
437
+ isSelect = true;
438
+ continue;
439
+ }
440
+ }
441
+ }
442
+ }
443
+ }
444
+ }
445
+ if (conditionArrayJSON.length > 0) {
446
+ DB.FlowModuleAPI.getLinkFieldValueMap({
447
+ triggerFormFields: formField,
448
+ formId: data.formId,
449
+ conditionArrayJSON: JSON.stringify(conditionArrayJSON)
450
+ }).then((content) => {
451
+ if (content) {
452
+ var containUniqueFlag = content['containUniqueFlag'];
453
+ var content = content['map'];
454
+ for (var key in content) {
455
+ var contentValue = content[key];
456
+
457
+ var tolinkFormKey = "";
458
+ var tolinkFormType = "";
459
+ var tolinkFormTableKey = "";
460
+ var toisSub = false;
461
+ for (var f = 0; f < formItem.length; f++) {
462
+ if (key == formItem[f].fieldId) {
463
+ tolinkFormKey = formItem[f].itemCode;
464
+ tolinkFormType = formItem[f].itemType;
465
+ tolinkFormTableKey = mainTblName;
466
+ }else if(formItem[f].itemType == 'detail'){
467
+ for (var g = 0; g < formItem[f].children.length; g++) {
468
+ if(key == formItem[f].children[g].fieldId){
469
+ tolinkFormKey = formItem[f].children[g].itemCode;
470
+ tolinkFormType = formItem[f].children[g].itemType;
471
+ tolinkFormTableKey = formItem[f].itemCode;
472
+ toisSub = true;
473
+ continue;
474
+ }
475
+ }
476
+ }
477
+ }
478
+ if (tolinkFormKey) {
479
+ if(!toisSub){
480
+ for (var m = 0; m < mainTblData.length; m++) {
481
+ if (tolinkFormKey == mainTblData[m].key) {
482
+ var relateItemParam = t.refs[mainTblName+"_"+mainTblData[m].key].getItemParam();
483
+ if (",text,textarea,datetime,datetimeStep,".indexOf("," + tolinkFormType + ",") != -1) {
484
+ var textValue = '';
485
+ var valueMap = {};
486
+ valueMap.key = 'value';
487
+ for (var c = 0; c < contentValue.length; c++) {
488
+ textValue = textValue + "," + contentValue[c];
489
+ }
490
+ valueMap.value = textValue.substring(1);
491
+
492
+ t.refs[mainTblName+"_"+mainTblData[m].key].reloadItemParam([valueMap]);
493
+ mainTblData[m].value = textValue.substring(1);
494
+ } else if (",radio,checkbox,select,".indexOf("," + tolinkFormType + ",") != -1) {
495
+ var textValue = '';
496
+ var resultMap = {};
497
+ resultMap.key = 'selectOptions';
498
+
499
+ var selectOptions = [];
500
+ for (var c = 0; c < contentValue.length; c++) {
501
+ textValue = textValue + "," + contentValue[c];
502
+ var option = {};
503
+ relateItemParam.selectItem.map(function (selectItemObj) {
504
+ if (selectItemObj.value == contentValue[c]) {
505
+ option.value = contentValue[c];
506
+ option.text = selectItemObj.text;
507
+ selectOptions.push(option);
508
+ }
509
+ });
510
+ }
511
+ resultMap.value = selectOptions;
512
+
513
+ var valueMap1 = {};
514
+ valueMap1.key = 'value';
515
+ valueMap1.value = "";
516
+ mainTblData[m].value = "";
517
+ var tva = textValue.substring(1);
518
+ if (containUniqueFlag == true) {
519
+ valueMap1.value = tva;
520
+ mainTblData[m].value = tva;
521
+ } else {
522
+ for (var f = 0; f < formItem.length; f++) {
523
+ if (formItem[f].itemCode == mainTblData[m].key && formItem[f].value == tva) {
524
+ valueMap1.value = tva;
525
+ mainTblData[m].value = tva;
526
+ break;
527
+ }
528
+ }
529
+ }
530
+ t.refs[mainTblName+"_"+mainTblData[m].key].reloadItemParam([resultMap, valueMap1]);
531
+ }
532
+ }
533
+ }
534
+ }else{
535
+ if(isSub){
536
+ for(var l = 0; l < subTbl.length; l++){
537
+ if (subTbl[l].subTblName == tolinkFormTableKey) {
538
+ for(var g = 0; g < subTbl[l].subTblData[subTblNo].length; g++){
539
+ if(subTbl[l].subTblData[subTblNo][g].key == tolinkFormKey){
540
+ var relateItemParam = t.refs["sub_" + tolinkFormTableKey].refs[tolinkFormTableKey + "_" + subTbl[l].subTblData[subTblNo][g].key + "_" + subTblNo].getItemParam();
541
+ if (",text,textarea,datetime,datetimeStep,".indexOf("," + tolinkFormType + ",") != -1) {
542
+ var textValue = '';
543
+ var valueMap = {};
544
+ valueMap.key = 'value';
545
+ for (var c = 0; c < contentValue.length; c++) {
546
+ textValue = textValue + "," + contentValue[c];
547
+ }
548
+ valueMap.value = textValue.substring(1);
549
+
550
+ t.refs["sub_" + tolinkFormTableKey].refs[tolinkFormTableKey + "_" + subTbl[l].subTblData[subTblNo][g].key + "_" + subTblNo].reloadItemParam([valueMap]);
551
+ subTbl[l].subTblData[subTblNo][g].value = textValue.substring(1);
552
+ } else if (",radio,checkbox,select,".indexOf("," + tolinkFormType + ",") != -1) {
553
+ var textValue = '';
554
+ var resultMap = {};
555
+ resultMap.key = 'selectOptions';
556
+
557
+ var selectOptions = [];
558
+ for (var c = 0; c < contentValue.length; c++) {
559
+ textValue = textValue + "," + contentValue[c];
560
+ var option = {};
561
+ relateItemParam.selectItem.map(function (selectItemObj) {
562
+ if (selectItemObj.value == contentValue[c]) {
563
+ option.value = contentValue[c];
564
+ option.text = selectItemObj.text;
565
+ selectOptions.push(option);
566
+ }
567
+ });
568
+ }
569
+ resultMap.value = selectOptions;
570
+
571
+ var valueMap1 = {};
572
+ valueMap1.key = 'value';
573
+ valueMap1.value = "";
574
+ subTbl[l].subTblData[subTblNo][g].value = "";
575
+ var tva = textValue.substring(1);
576
+ if (containUniqueFlag == true) {
577
+ valueMap1.value = tva;
578
+ subTbl[l].subTblData[subTblNo][g].value = tva;
579
+ } else {
580
+ for (var f = 0; f < formItem.length; f++) {
581
+ if(formItem[f].itemType == 'detail' && formItem[f].itemCode == tolinkFormTableKey){
582
+ for(var h = 0; h < formItem[f].children.length; h++){
583
+ if (formItem[f].children[h].itemCode == subTbl[l].subTblData[subTblNo][g].key && formItem[f].children[h].value == tva) {
584
+ valueMap1.value = tva;
585
+ subTbl[l].subTblData[subTblNo][g].value = tva;
586
+ break;
587
+ }
588
+ }
589
+ }
590
+ }
591
+ }
592
+ t.refs["sub_" + tolinkFormTableKey].refs[tolinkFormTableKey + "_" + subTbl[l].subTblData[subTblNo][g].key + "_" + subTblNo].reloadItemParam([resultMap, valueMap1]);
593
+ }
594
+ }
595
+ }
596
+ }
597
+ }
598
+ }else{
599
+ for(var l = 0; l < subTbl.length; l++){
600
+ if(subTbl[l].subTblName == tolinkFormTableKey){
601
+ for(var o = 0; o < subTbl[l].subTblData.length; o++){
602
+ for(var g = 0; g < subTbl[l].subTblData[o].length; g++){
603
+ if (tolinkFormKey == subTbl[l].subTblData[o][g].key) {
604
+ var relateItemParam = t.refs["sub_" + tolinkFormTableKey].refs[tolinkFormTableKey + "_" + subTbl[l].subTblData[o][g].key + "_" + o].getItemParam();
605
+ if (",text,textarea,datetime,datetimeStep,".indexOf("," + tolinkFormType + ",") != -1) {
606
+ var textValue = '';
607
+ var valueMap = {};
608
+ valueMap.key = 'value';
609
+ for (var c = 0; c < contentValue.length; c++) {
610
+ textValue = textValue + "," + contentValue[c];
611
+ }
612
+ valueMap.value = textValue.substring(1);
613
+
614
+ t.refs["sub_" + tolinkFormTableKey].refs[tolinkFormTableKey + "_" + subTbl[l].subTblData[o][g].key + "_" + o].reloadItemParam([valueMap]);
615
+ subTbl[l].subTblData[o][g].value = textValue.substring(1);
616
+ } else if (",radio,checkbox,select,".indexOf("," + tolinkFormType + ",") != -1) {
617
+ var textValue = '';
618
+ var resultMap = {};
619
+ resultMap.key = 'selectOptions';
620
+
621
+ var selectOptions = [];
622
+ for (var c = 0; c < contentValue.length; c++) {
623
+ textValue = textValue + "," + contentValue[c];
624
+ var option = {};
625
+ relateItemParam.selectItem.map(function (selectItemObj) {
626
+ if (selectItemObj.value == contentValue[c]) {
627
+ option.value = contentValue[c];
628
+ option.text = selectItemObj.text;
629
+ selectOptions.push(option);
630
+ }
631
+ });
632
+ }
633
+ resultMap.value = selectOptions;
634
+
635
+ var valueMap1 = {};
636
+ valueMap1.key = 'value';
637
+ valueMap1.value = "";
638
+ subTbl[l].subTblData[o][g].value = "";
639
+ var tva = textValue.substring(1);
640
+ if (containUniqueFlag == true) {
641
+ valueMap1.value = tva;
642
+ subTbl[l].subTblData[o][g].value = tva;
643
+ } else {
644
+ for (var f = 0; f < formItem.length; f++) {
645
+ if(formItem[f].itemType == 'detail' && formItem[f].itemCode == tolinkFormTableKey){
646
+ for(var h = 0; h < formItem[f].children.length; h++){
647
+ if (formItem[f].children[h].itemCode == subTbl[l].subTblData[o][g].key && formItem[f].children[h].value == tva) {
648
+ valueMap1.value = tva;
649
+ subTbl[l].subTblData[o][g].value = tva;
650
+ break;
651
+ }
652
+ }
653
+ }
654
+ }
655
+ }
656
+ t.refs["sub_" + tolinkFormTableKey].refs[tolinkFormTableKey + "_" + subTbl[l].subTblData[o][g].key + "_" + o].reloadItemParam([resultMap, valueMap1]);
657
+ }
658
+ }
659
+ }
660
+
661
+ }
662
+ }
663
+ }
664
+ }
665
+
666
+ }
667
+ }
668
+ }
669
+ }
670
+ }).catch((error) => {
671
+ console.error(error);
672
+ });
673
+ }
674
+ }
675
+ }
676
+ }
677
+
678
+ //关联字段
679
+ if(formRelaFieldMaps){
680
+ var formRelaFieldMapsObj = formRelaFieldMaps[itemParam.uniqueName];
681
+ t.dealwithRelaField(formRelaFieldMapsObj,data,itemParam);
682
+ }
683
+
684
+ }
685
+
686
+ //子表合计
687
+ if (itemParam.itemType == 'text' && itemParam.dataAttr && itemParam.dataAttr.isSum == '1') {
688
+ var subTableName = itemParam.tableName;
689
+ var key = itemParam.key;
690
+ var title = itemParam.title;
691
+ var subTbl = data.subTbl;
692
+ var uniqueName = subTableName + "_" + key;
693
+ if ($('.' + uniqueName).length > 0) {
694
+ $('.' + uniqueName).html('');
695
+ } else if ($('.hejidiv-' + subTableName).html() == '') {
696
+ $('.hejidiv-' + subTableName).html('合计:')
697
+ }
698
+ var subValue = '';
699
+ if (subTbl != null && subTbl.length > 0) {
700
+ for (var i = 0; i < subTbl.length; i++) {
701
+ if (subTableName == subTbl[i].subTblName) {
702
+ var subTblData = subTbl[i].subTblData;
703
+ for (var j = 0; j < subTblData.length; j++) {
704
+ var subTblDatas = subTblData[j];
705
+ for (var k = 0; k < subTblDatas.length; k++) {
706
+ if (key == subTblDatas[k].key) {
707
+ if (subTblDatas[k].value !== '') {
708
+ if (subValue === '') {
709
+ subValue = Number(subTblDatas[k].value);
710
+ } else {
711
+ subValue = Number(subValue) + Number(subTblDatas[k].value);
712
+ }
713
+ }
714
+ }
715
+ }
716
+
717
+ }
718
+ }
719
+ }
720
+ }
721
+ if (isNaN(subValue)) {
722
+ subValue = '';
723
+ }
724
+ if (subValue !== '') {
725
+ if ($('.' + uniqueName).length > 0) {
726
+ $('.' + uniqueName).html(title + " " + subValue + "; ");
727
+ } else {
728
+ $('.hejidiv-' + subTableName).append('<span class="' + uniqueName + '">' + title + " " + subValue + "; " + "</span>");
729
+ }
730
+ }
731
+ var le = $('.hejidiv-' + subTableName).find('span').length;
732
+ if (le > 0) {
733
+ var tx = $('.hejidiv-' + subTableName).find('span')[le - 1].innerText;
734
+ $('.hejidiv-' + subTableName).find('span')[le - 1].innerText = tx.replace(';', '')
735
+ }
736
+ }
737
+
738
+ this.props.onChange(data,itemParam);
739
+ }
740
+
741
+ }
742
+
743
+ //重新加载关联字段
744
+ reloadFormRelaField(){
745
+ let t = this;
746
+ let data = t.props.data;
747
+ //关联字段
748
+ if(formRelaFieldMaps){
749
+ for (const k of Object.keys(formRelaFieldMaps)) {
750
+ t.dealwithRelaField(formRelaFieldMaps[k],data,k);
751
+ }
752
+ }
753
+ }
754
+
755
+ dealwithRelaField(formRelaFieldMapsObj,data,thisItem){
756
+ console.log("dealwithRelaField==="+formRelaFieldMapsObj);
757
+ let t = this;
758
+ var isSubField = false;
759
+ var isNowSub = false;
760
+ var subTblName='';
761
+ var itemKey = thisItem.key;
762
+ var tableName = thisItem.tableName;
763
+ var thisSubTblNo = thisItem. subTblNo;
764
+ var mustFields = [];
765
+ var hideFields = [];
766
+
767
+ var defaultmustFields = [];
768
+ var defaulthideFields = [];
769
+
770
+ var fieldControll = this.props.fieldControll;
771
+ var hiddenFields = fieldControll.hiddenFields;
772
+ var mustFieldsStr = fieldControll.mustFields;
773
+ if(hiddenFields && hiddenFields!=''){
774
+ for(var i=0;i<hiddenFields.split(',').length;i++){
775
+ if(hiddenFields.split(',')[i] && hiddenFields.split(',')[i] != ''){
776
+ defaulthideFields.push(hiddenFields.split(',')[i]);
777
+ }
778
+ }
779
+ }
780
+ if(mustFieldsStr && mustFieldsStr!=''){
781
+ for(var i=0;i<mustFieldsStr.split(',').length;i++){
782
+ if(mustFieldsStr.split(',')[i] && mustFieldsStr.split(',')[i] != ''){
783
+ defaultmustFields.push(mustFieldsStr.split(',')[i]);
784
+ }
785
+ }
786
+ }
787
+
788
+
789
+ console.log("dealwithRelaField===table===");
790
+ if(formRelaFieldMapsObj && formRelaFieldMapsObj.length>0){
791
+ //解决同一字段 关联字段 编辑方式相同时冲突
792
+ var hideFlag=false;
793
+ var mustFlag=false;
794
+ var editFlag=false;
795
+ for(var formIndex=0;formIndex<formRelaFieldMapsObj.length;formIndex++){
796
+ var formRelaFieldMapsObjItem = formRelaFieldMapsObj[formIndex];
797
+ mustFlag=false;
798
+ var triggerFieldVal = formRelaFieldMapsObjItem.triggerFieldVal;
799
+ var relaFieldTblName = formRelaFieldMapsObjItem.relaFieldTblName;
800
+ var editType = formRelaFieldMapsObjItem.editType;
801
+ if(relaFieldTblName){
802
+ if(relaFieldTblName)
803
+ var relaFieldTblNameArray = relaFieldTblName.split(",");
804
+ for(var index=0;index<relaFieldTblNameArray.length;index++){
805
+ var relaFieldTblNameArrayItem = relaFieldTblNameArray[index];
806
+ var nowValue = "";
807
+ var mainTblData = data.mainTblData;
808
+ var subTbl = data.subTbl;
809
+
810
+ var mainTblName = data.mainTblName;
811
+ if(tableName == mainTblName){
812
+ mainTblData.map(function(item){
813
+ if(item.key==itemKey){
814
+ nowValue = item.value;
815
+ }
816
+ });
817
+ }else{
818
+ if(subTbl && subTbl.length>0){
819
+ for(var j=0;j<subTbl.length;j++){
820
+ if(subTbl[j].subTblName == tableName && subTbl[j].subTblData.length >thisSubTblNo){
821
+ for(var k=0;k<subTbl[j].subTblData[thisSubTblNo].length;k++){
822
+ if(subTbl[j].subTblData[thisSubTblNo][k].uniqueName == thisItem.uniqueName){
823
+ nowValue = subTbl[j].subTblData[thisSubTblNo][k].value;
824
+ isNowSub = true;
825
+ }
826
+ }
827
+ }
828
+ }
829
+ }
830
+ }
831
+
832
+
833
+ if(nowValue && nowValue.indexOf("[")>=0 && nowValue.indexOf("]")>=0){
834
+ var nowValueArray = JSON.parse(nowValue);
835
+ if(nowValueArray.length == 1){
836
+ nowValue = nowValueArray[0];
837
+ }
838
+ }
839
+ var relaFieldMap = {};
840
+ if(editType == 'hide'){
841
+ relaFieldMap["key"]="isHidden";
842
+ if(triggerFieldVal == nowValue){
843
+ relaFieldMap["value"]=true;
844
+ hideFlag=true;
845
+ hideFields.push(relaFieldTblNameArrayItem);
846
+ }else if(!hideFlag && defaulthideFields.indexOf(relaFieldTblNameArrayItem)!=-1){
847
+ relaFieldMap["value"]=true;
848
+ }else if(!hideFlag && hideFields.indexOf(relaFieldTblNameArrayItem)==-1){
849
+ relaFieldMap["value"]=false;
850
+ }else if(hideFields.indexOf(relaFieldTblNameArrayItem)!=-1){
851
+ relaFieldMap["value"]=true;
852
+ }else{
853
+ relaFieldMap["value"]=false;
854
+ }
855
+ }else if(editType == 'must'){
856
+ relaFieldMap["key"]="required";
857
+ var triggerFieldValBoolean = mustFlag;
858
+ if(triggerFieldVal == nowValue){
859
+ relaFieldMap["value"]=true;
860
+ triggerFieldValBoolean = true;
861
+ mustFlag=true;
862
+ editFlag=true;
863
+ mustFields.push(relaFieldTblNameArrayItem);
864
+ }else if(!mustFlag && mustFields.indexOf(relaFieldTblNameArrayItem)==-1){
865
+ relaFieldMap["value"]=false;
866
+ triggerFieldValBoolean = false;
867
+ }else{
868
+ relaFieldMap["value"]=true;
869
+ }
870
+ var relaFieldNameArray = formRelaFieldMapsObjItem.relaFieldTblName.split(",");
871
+ for(var i=0;i<mainTblData.length;i++){
872
+ var item = mainTblData[i];
873
+ if(mainTblName+"_"+item.key==relaFieldNameArray[index]){
874
+ item.required = relaFieldMap["value"];
875
+ }
876
+ }
877
+ for(var i=0;i<subTbl.length;i++){
878
+ var subTblData = subTbl[i].subTblData;
879
+ if(isNowSub){
880
+ var subTblDataItem = subTblData[thisSubTblNo];
881
+ for(var b=0;b<subTblDataItem.length;b++){
882
+ if(subTblDataItem[b].uniqueName==relaFieldNameArray[index]){
883
+ subTbl[i].subTblData[thisSubTblNo][b].required = relaFieldMap["value"];
884
+ }
885
+ }
886
+ }else{
887
+ for(var a=0;a<subTblData.length;a++){
888
+ var subTblDataItem = subTblData[a];
889
+ for(var b=0;b<subTblDataItem.length;b++){
890
+ if(subTblDataItem[b].uniqueName==relaFieldNameArray[index]){
891
+ subTbl[i].subTblData[a][b].required = relaFieldMap["value"];
892
+ }
893
+ }
894
+ }
895
+ }
896
+
897
+ }
898
+
899
+ }else if(editType == 'edit'){
900
+ relaFieldMap["key"]="readOnly";
901
+ if(triggerFieldVal == nowValue){
902
+ relaFieldMap["value"]=false;
903
+ editFlag=true;
904
+ }else if(!editFlag){
905
+ relaFieldMap["value"]=true;
906
+ }else{
907
+ relaFieldMap["value"]=false;
908
+ }
909
+ }
910
+ if(relaFieldTblNameArrayItem){
911
+ var subTbl=data.subTbl;
912
+ if(subTbl && subTbl.length>0){
913
+ for(var j=0;j<subTbl.length;j++){
914
+ var subTblData = subTbl[j].subTblData;
915
+ subTblName = subTbl[j].subTblName;
916
+ if(subTblData && subTblData.length>0){
917
+ if(isNowSub){
918
+ var subTblDataItem = subTblData[thisSubTblNo];
919
+ if(subTblDataItem && subTblDataItem.length>0){
920
+ for(var a=0;a<subTblDataItem.length;a++){
921
+ if(relaFieldTblNameArrayItem==subTblDataItem[a].uniqueName){
922
+ isSubField = true;
923
+ var subTblNameItem = "sub_"+subTblName;
924
+ var subItem = relaFieldTblNameArrayItem+'_'+thisSubTblNo;
925
+ t.refs[subTblNameItem].refs[subItem].reloadItemParam([relaFieldMap]);
926
+ }
927
+ }
928
+ }
929
+ }else{
930
+ for(var b=0;b<subTblData.length;b++){
931
+ var subTblDataItem = subTblData[b];
932
+ if(subTblDataItem && subTblDataItem.length>0){
933
+ for(var a=0;a<subTblDataItem.length;a++){
934
+ if(relaFieldTblNameArrayItem==subTblDataItem[a].uniqueName){
935
+ isSubField = true;
936
+ var subTblNameItem = "sub_"+subTblName;
937
+ var subItem = relaFieldTblNameArrayItem+'_'+b;
938
+ t.refs[subTblNameItem].refs[subItem].reloadItemParam([relaFieldMap]);
939
+ }
940
+ }
941
+ }
942
+
943
+ }
944
+ }
945
+
946
+ }
947
+
948
+ }
949
+ }
950
+ }
951
+ if(isSubField){
952
+
953
+
954
+ }else{
955
+ t.refs[relaFieldTblNameArrayItem].reloadItemParam([relaFieldMap]);
956
+ }
957
+ }
958
+
959
+ }
960
+ }
961
+
962
+ }
963
+ }
964
+
965
+
966
+ forCalculateExpList(data, itemParam, uniqueName) {
967
+ var calculateExpList = data.calculateExpList;
968
+ if (calculateExpList) {
969
+ var calculateExpValue = calculateExpList[uniqueName];
970
+ if (calculateExpValue) {
971
+ if (Array.isArray(calculateExpValue)) {
972
+ for (var c = 0; c < calculateExpValue.length; c++) {
973
+ var resultItem = calculateExpValue[c].result; //当前修改字段的uniqname,如:test_mobileform_sz2
974
+ var resultKey = calculateExpValue[c].key; //当前修改字段的code,如:sz2
975
+
976
+ data = this.editData(resultKey, "", data);
977
+ }
978
+ var returnResultItem = [];
979
+ for (var i = 0; i < calculateExpValue.length; i++) {
980
+ var exp = calculateExpValue[i].exp;//计算公式
981
+ var resultItem = calculateExpValue[i].result; //当前修改字段的uniqname,如:test_mobileform_sz2
982
+ returnResultItem[i] = resultItem;
983
+ var resultKey = calculateExpValue[i].key; //当前修改字段的code,如:sz2
984
+ var fieldArray = this.getFieldArray(exp);//获取计算公式参与的字段
985
+ var fieldItemArray = [];//计算公式所有参与的字段itemParam
986
+ for (var j = 0; j < fieldArray.length; j++) {
987
+ var fieldArrayItem = fieldArray[j];
988
+ var fieldItem = null;
989
+ if (this.refs[fieldArrayItem]) {//当字段是主表时
990
+ fieldItem = this.refs[fieldArrayItem].getItemParam();
991
+ } else {
992
+ var subTableName = this.getSubRef(fieldArrayItem);
993
+ if (subTableName != "" && this.refs['sub_' + subTableName]) {//当字段是子表时
994
+ fieldItem = this.refs['sub_' + subTableName].getSubItemParam(fieldArrayItem);
995
+ }
996
+ }
997
+ if (fieldItem != null) {
998
+ var filedItemValue = "";
999
+ if (Array.isArray(fieldItem)) {//当是数组时,代表是子表
1000
+ if (fieldItem.length > 0) {
1001
+ fieldItemArray.push(fieldItem[0]);
1002
+ filedItemValue = fieldItem[0].value;
1003
+ }
1004
+ } else {
1005
+ fieldItemArray.push(fieldItem);
1006
+ filedItemValue = fieldItem.value;
1007
+ }
1008
+
1009
+ if (itemParam.itemType == 'datetime') {//当为时间时且有differDate或者differHour函数
1010
+ var differDateRegExp = new RegExp("differDate\\(", "g");
1011
+ var differHourRegExp = new RegExp("differHour\\(", "g");
1012
+ var differHalfDayRegExp = new RegExp("differHalfDay\\(", "g");
1013
+ if (exp.match(differDateRegExp) || exp.match(differHourRegExp) || exp.match(differHalfDayRegExp)) {//当有differDate函数
1014
+ if (typeof filedItemValue == 'undefined' || filedItemValue == "" || filedItemValue == null) {
1015
+ //filedItemValue = 0;
1016
+ return false;
1017
+ } else {
1018
+ filedItemValue = filedItemValue.value?filedItemValue.value:filedItemValue;
1019
+ }
1020
+ }
1021
+ }
1022
+ if (itemParam.itemType == 'datetime' || itemParam.itemType == 'text') {
1023
+ console.log("adddays");
1024
+ var adddaysDateRegExp = new RegExp("adddays\\(", "g");
1025
+ if (exp.match(adddaysDateRegExp)) {//当有adddays函数
1026
+ if (typeof filedItemValue == 'undefined' || filedItemValue == "" || filedItemValue == null) {
1027
+ //filedItemValue = 0;
1028
+ return false;
1029
+ } else {
1030
+ filedItemValue = filedItemValue.value?filedItemValue.value:filedItemValue;
1031
+ }
1032
+ }
1033
+ }
1034
+
1035
+ if (typeof filedItemValue == 'undefined' || (filedItemValue == "" && filedItemValue != "0") || filedItemValue == null) {//当filedItemValue为空或者其他异常状态时置为0
1036
+ filedItemValue = 0;
1037
+ //return false;
1038
+ }
1039
+ var sumRegExp = new RegExp("sum\\(\\[" + fieldArrayItem + "\\]\\)", "g");
1040
+
1041
+ if (exp.match(sumRegExp)) {//当有sum函数
1042
+ if (Array.isArray(fieldItem)) {
1043
+ var sumValue = this.sum(fieldItem);
1044
+ exp = exp.replace(new RegExp("sum\\(\\[" + fieldArrayItem + "\\]\\)", "g"), "(" + sumValue + ")");
1045
+ }
1046
+ }
1047
+
1048
+ exp = exp.replace(new RegExp("\\[" + fieldArrayItem + "\\]", "g"), "(" + filedItemValue + ")");
1049
+ }
1050
+ }
1051
+
1052
+ exp = exp.replace(new RegExp("rmb\\(", "g"), 'calculate.rmb(');
1053
+ exp = exp.replace(new RegExp("differDate\\(", "g"), 'calculate.differDate(');
1054
+ exp = exp.replace(new RegExp("differHour\\(", "g"), 'calculate.differHour(');
1055
+ exp = exp.replace(new RegExp("differHalfDay\\(", "g"), 'calculate.differHalfDay(');
1056
+ exp = exp.replace(new RegExp("adddays\\(", "g"), 'calculate.adddays(');
1057
+ try {
1058
+ var res = eval(exp);
1059
+ } catch (e) {
1060
+ res = '';
1061
+ }
1062
+ if (res == Infinity || res == -Infinity) {//无穷大
1063
+ res = '';
1064
+ }
1065
+ if (typeof (res) == 'number') {
1066
+ if (isNaN(res)) {//结果不为数字 则置为0
1067
+ res = 0;
1068
+ } else {
1069
+ var fieldType = itemParam.inputFormat;
1070
+ var decimalPlace = itemParam.decimalPlace;
1071
+ var formItem = data.formItem;
1072
+ formItem.map(function (item, index) {
1073
+ if (item.itemCode == resultKey) {
1074
+ fieldType = item.inputFormat;
1075
+ decimalPlace = item.decimalPlace;
1076
+ }
1077
+ });
1078
+ if(exp.indexOf("differHalfDay")<0){
1079
+ if (fieldType == 'int' || fieldType == 'float') {
1080
+ res = Number(res).toFixed(decimalPlace) + '';
1081
+ } else {
1082
+ if (fieldArray.length == 0) {
1083
+ var aDP = this.getActualDecimalPlace(exp);
1084
+ res = res.toFixed(aDP) + '';
1085
+ } else {
1086
+ var maxDP = this.getMaxDecimalPlace(fieldItemArray);//获取参与计算的字段中 最长的小数位
1087
+ res = res.toFixed(maxDP) + '';
1088
+ }
1089
+ }
1090
+ }
1091
+ }
1092
+ }
1093
+ var resultMap = {};
1094
+ resultMap.key = 'value';
1095
+ resultMap.value = res;
1096
+ data = this.editData(resultKey, res, data);
1097
+ this.refs[resultItem].reloadItemParam([resultMap]);
1098
+ }
1099
+ if (returnResultItem && returnResultItem.length > 0) {
1100
+ for (var r = 0; r < returnResultItem.length; r++) {
1101
+ this.forCalculateExpList(data, itemParam, returnResultItem[r]);
1102
+ }
1103
+ }
1104
+ }
1105
+ }
1106
+
1107
+ }
1108
+ }
1109
+
1110
+
1111
+ forSubCalculateExpList(data, itemParam, uniqueName,subTblNo) {
1112
+ var that = this;
1113
+ var calculateExpList = data.subCalculateExpList;
1114
+ var formItem = data.formItem;
1115
+ if (calculateExpList) {
1116
+ var calculateExpValue = calculateExpList[uniqueName];
1117
+ if (calculateExpValue) {
1118
+ if (Array.isArray(calculateExpValue)) {
1119
+ for (var c = 0; c < calculateExpValue.length; c++) {
1120
+ var resultItem = calculateExpValue[c].result; //当前修改字段的uniqname,如:test_mobileform_sz2
1121
+ var resultKey = calculateExpValue[c].key; //当前修改字段的code,如:sz2
1122
+
1123
+ data = this.editSubData(itemParam.tableName, resultKey, "", data);
1124
+ }
1125
+ var returnResultItem = [];
1126
+ for (var i = 0; i < calculateExpValue.length; i++) {
1127
+ var exp = calculateExpValue[i].exp;//计算公式
1128
+ var resultItem = calculateExpValue[i].result; //当前修改字段的uniqname,如:test_mobileform_sz2
1129
+ returnResultItem[i] = resultItem;
1130
+ if(itemParam.itemType == "detail"){
1131
+ break;
1132
+ }
1133
+ var resultKey = calculateExpValue[i].key; //当前修改字段的code,如:sz2
1134
+ var fieldArray = this.getFieldArray(exp);//获取计算公式参与的字段
1135
+ var fieldItemArray = [];//计算公式所有参与的字段itemParam
1136
+
1137
+ // for(var h=0;h<data.subTbl.length;h++){
1138
+ // if(data.subTbl[h].subTblName == itemParam.key){
1139
+ // if(data.subTbl[h].subTblData.length>0){
1140
+ // for(var l=0;l<data.subTbl[h].subTblData.length;l++){
1141
+ for (var j = 0; j < fieldArray.length; j++) {
1142
+ var fieldArrayItem = fieldArray[j];
1143
+ var fieldItem = null;
1144
+ // if (this.refs[fieldArrayItem]) {//当字段是主表时
1145
+ // fieldItem = this.refs[fieldArrayItem].getItemParam();
1146
+ // } else {
1147
+ var subTableName = this.getSubRef(fieldArrayItem);
1148
+ if (subTableName != "" && this.refs['sub_' + subTableName]) {//当字段是子表时
1149
+ fieldItem = this.refs['sub_' + subTableName].getSubItemParam(fieldArrayItem);
1150
+ }
1151
+ if(fieldItem == null || fieldItem.length<=subTblNo){
1152
+ break;
1153
+ }
1154
+ // }
1155
+ if (fieldItem != null) {
1156
+ var filedItemValue = "";
1157
+ if (Array.isArray(fieldItem)) {//当是数组时,代表是子表
1158
+ if (fieldItem.length > 0 ) {
1159
+ fieldItemArray.push(fieldItem[subTblNo]);
1160
+ filedItemValue = fieldItem[subTblNo].value;
1161
+ }
1162
+ } else {
1163
+ fieldItemArray.push(fieldItem);
1164
+ filedItemValue = fieldItem.value;
1165
+ }
1166
+
1167
+ if (itemParam.itemType == 'datetime') {//当为时间时且有differDate或者differHour函数
1168
+ var differDateRegExp = new RegExp("differDate\\(", "g");
1169
+ var differHourRegExp = new RegExp("differHour\\(", "g");
1170
+ var differHalfDayRegExp = new RegExp("differHalfDay\\(", "g");
1171
+ if (exp.match(differDateRegExp) || exp.match(differHourRegExp) || exp.match(differHalfDayRegExp)) {//当有differDate函数
1172
+ if (typeof filedItemValue == 'undefined' || filedItemValue == "" || filedItemValue == null) {
1173
+ //filedItemValue = 0;
1174
+ return false;
1175
+ } else {
1176
+ filedItemValue = filedItemValue.value;
1177
+ }
1178
+ }
1179
+ }
1180
+
1181
+ if (typeof filedItemValue == 'undefined' || (filedItemValue == "" && filedItemValue != "0") || filedItemValue == null) {//当filedItemValue为空或者其他异常状态时置为0
1182
+ filedItemValue = 0;
1183
+ //return false;
1184
+ }
1185
+ var sumRegExp = new RegExp("sum\\(\\[" + fieldArrayItem + "\\]\\)", "g");
1186
+
1187
+ if (exp.match(sumRegExp)) {//当有sum函数
1188
+ if (Array.isArray(fieldItem)) {
1189
+ var sumValue = this.sum(fieldItem);
1190
+ exp = exp.replace(new RegExp("sum\\(\\[" + fieldArrayItem + "\\]\\)", "g"), "(" + sumValue + ")");
1191
+ }
1192
+ }
1193
+
1194
+ exp = exp.replace(new RegExp("\\[" + fieldArrayItem + "\\]", "g"), "(" + filedItemValue + ")");
1195
+ }
1196
+ }
1197
+
1198
+ exp = exp.replace(new RegExp("rmb\\(", "g"), 'calculate.rmb(');
1199
+ exp = exp.replace(new RegExp("differDate\\(", "g"), 'calculate.differDate(');
1200
+ exp = exp.replace(new RegExp("differHour\\(", "g"), 'calculate.differHour(');
1201
+ exp = exp.replace(new RegExp("differHalfDay\\(", "g"), 'calculate.differHalfDay(');
1202
+ try {
1203
+ var res = eval(exp);
1204
+ } catch (e) {
1205
+ res = '';
1206
+ }
1207
+ if (res == Infinity || res == -Infinity) {//无穷大
1208
+ res = '';
1209
+ }
1210
+ if (typeof (res) == 'number') {
1211
+ if (isNaN(res)) {//结果不为数字 则置为0
1212
+ res = 0;
1213
+ } else {
1214
+ var fieldType = itemParam.inputFormat;
1215
+ var decimalPlace = itemParam.decimalPlace;
1216
+ var subTbl = data.subTbl;
1217
+ if(formItem){
1218
+ for(var c=0;c<formItem.length;c++ ){
1219
+ var item = formItem[c];
1220
+ if (item.itemType=='detail' && item.itemCode == itemParam.tableName) {
1221
+ var children = item.children;
1222
+ for (var k = 0; k < children.length; k++) {
1223
+ if (children[k].itemCode == resultKey) {
1224
+ fieldType = children[k].inputFormat;
1225
+ decimalPlace = children[k].decimalPlace;
1226
+ }
1227
+ }
1228
+
1229
+ }
1230
+ }
1231
+ }
1232
+
1233
+ // fieldType = data.subTbl[h].subTblData[l].inputFormat;
1234
+ // decimalPlace = data.subTbl[h].subTblData[l].decimalPlace;
1235
+
1236
+
1237
+ if(exp.indexOf("differHalfDay")<0){
1238
+ if (fieldType == 'int' || fieldType == 'float') {
1239
+ res = Number(res).toFixed(decimalPlace) + '';
1240
+ } else {
1241
+ if (fieldArray.length == 0) {
1242
+ var aDP = that.getActualDecimalPlace(exp);
1243
+ res = res.toFixed(aDP) + '';
1244
+ } else {
1245
+ var maxDP = that.getMaxDecimalPlace(fieldItemArray);//获取参与计算的字段中 最长的小数位
1246
+ res = res.toFixed(maxDP) + '';
1247
+ }
1248
+ }
1249
+ }
1250
+ }
1251
+ }
1252
+ var resultMap = {};
1253
+ resultMap.key = itemParam.tableName + "_" + resultKey;
1254
+ resultMap.index = subTblNo;
1255
+ resultMap.value = res;
1256
+ this.refs['sub_' + itemParam.tableName].reloadSubItemParam([resultMap]);
1257
+ data = this.editSubData(itemParam.tableName, resultKey, res, data);
1258
+ // }
1259
+ // }
1260
+ // }
1261
+ // }
1262
+
1263
+
1264
+ }
1265
+ if (returnResultItem && returnResultItem.length > 0) {
1266
+ for (var r = 0; r < returnResultItem.length; r++) {
1267
+ this.forCalculateExpList(data, itemParam, returnResultItem[r]);
1268
+ this.forSubCalculateExpList(data, itemParam, returnResultItem[r],subTblNo);
1269
+ }
1270
+ }
1271
+ }
1272
+ }else{
1273
+ if(itemParam.itemType == "detail"){
1274
+ var returnResultItem = [];
1275
+ for (var key in calculateExpList) {
1276
+ if(calculateExpList[key] && calculateExpList[key].length>0){
1277
+ for(var m =0; m<calculateExpList[key].length;m++){
1278
+ var result = calculateExpList[key][m].result;
1279
+ if(returnResultItem.indexOf(result) == -1){
1280
+ returnResultItem.push(result);
1281
+ }
1282
+ }
1283
+ }
1284
+ }
1285
+
1286
+ if (returnResultItem && returnResultItem.length > 0) {
1287
+ for (var r = 0; r < returnResultItem.length; r++) {
1288
+ this.forCalculateExpList(data, itemParam, returnResultItem[r]);
1289
+ // this.forSubCalculateExpList(data, itemParam, returnResultItem[r],subTblNo);
1290
+ }
1291
+ }
1292
+ }
1293
+ }
1294
+
1295
+ }
1296
+ }
1297
+
1298
+ //检查是不是子表的字段,如果是获取子表的表名
1299
+ getSubRef(field) {
1300
+ var code = "";
1301
+ this.props.form.map(function (item) {
1302
+ if (item.itemType == 'detail') {//子表时
1303
+ item.children.map(function (item1) {
1304
+ if (field == item1.uniqueName) {
1305
+ code = item.itemCode;
1306
+ return false;
1307
+ }
1308
+ });
1309
+ }
1310
+ });
1311
+ return code;
1312
+ }
1313
+
1314
+
1315
+
1316
+
1317
+ sum(fieldItem) {//eval运算时 对字段值进行求和运算
1318
+ var val = 0;
1319
+ var len = fieldItem.length;
1320
+ for (var i = 0; i < len; i++) {
1321
+ var curVal = fieldItem[i].value;
1322
+ if (typeof curVal == 'undefined' || curVal == '' || curVal == null) {
1323
+ curVal = 0;
1324
+ }
1325
+ val += Number(curVal + '');//转字符串 否则以0开头会被当做八进制计算 以0x开头会被当做十六进制处理
1326
+ }
1327
+ if (isNaN(val)) {//结果不为数字 则置为0
1328
+ val = 0;
1329
+ }
1330
+ return val;
1331
+ }
1332
+
1333
+ //从计算表达式中获取涉及的字段
1334
+ getFieldArray(exp) {
1335
+ var fieldArray = [];
1336
+ var expProcessStepOne = exp.split('[');
1337
+ for (var i = 1; i < expProcessStepOne.length; i++) {
1338
+ var expProcessStepTwo = expProcessStepOne[i].split(']');
1339
+ if (expProcessStepTwo.length > 0) {
1340
+ var fieldUniqueName = expProcessStepTwo[0];
1341
+ if (fieldUniqueName.length > 0) {
1342
+ fieldArray.push(fieldUniqueName);
1343
+ }
1344
+ }
1345
+ }
1346
+ return fieldArray;
1347
+ }
1348
+ //给定一个表达式 获取参与计算的浮点型数据中小数位最长的数据
1349
+ getActualDecimalPlace(exp) {
1350
+ var actualDP = 0;
1351
+ var floatReg = /\d+(\.\d+)?/g;
1352
+ var numArray = exp.match(floatReg);
1353
+ for (var i = 0; i < numArray.length; i++) {
1354
+ var numSplit = numArray[i].split('.');
1355
+ if (numSplit.length > 1) {
1356
+ if (numSplit[1].length > actualDP) {
1357
+ actualDP = numSplit[1].length;
1358
+ }
1359
+ }
1360
+ }
1361
+ return actualDP;
1362
+ }
1363
+
1364
+ //获取涉及计算字段中最长的小数位
1365
+ getMaxDecimalPlace(fieldItemArray) {
1366
+ var maxDP = 0;
1367
+ for (var j = 0; j < fieldItemArray.length; j++) {//遍历表单所有整型和浮点型字段
1368
+ if (fieldItemArray[j].decimalPlace > maxDP) {
1369
+ maxDP = fieldItemArray[j].decimalPlace;//取最长的小数位
1370
+ }
1371
+ }
1372
+ return maxDP;
1373
+ }
1374
+
1375
+ //修改data数据
1376
+ editData(itemCode, value, data) {
1377
+ if (Array.isArray(itemCode) && Array.isArray(value)) {//数组时
1378
+ for (var i = 0; i < itemCode.length; i++) {
1379
+ var mainTblData = data.mainTblData;
1380
+ mainTblData.map(function (item, index) {
1381
+ if (item.key == itemCode[i]) {
1382
+ item.value = value[i];
1383
+ }
1384
+ });
1385
+ }
1386
+
1387
+ } else {
1388
+ var mainTblData = data.mainTblData;
1389
+ mainTblData.map(function (item, index) {
1390
+ if (item.key == itemCode) {
1391
+ item.value = value;
1392
+ }
1393
+ });
1394
+ }
1395
+
1396
+ return data;
1397
+ }
1398
+
1399
+ //修改data数据
1400
+ editSubData(subTable, itemCode, value, data) {
1401
+ if (Array.isArray(itemCode) && Array.isArray(value)) {//数组时
1402
+ for (var i = 0; i < itemCode.length; i++) {
1403
+ var subTbl = data.subTbl;
1404
+ subTbl.map(function (item, index) {
1405
+ if (item.subTblName == subTable) {
1406
+ var subTblData = item.subTblData;
1407
+ var subTblDatas = subTblData[data.subTblNo];
1408
+ for (var j = 0; j < subTblDatas.length; j++) {
1409
+ if (subTblDatas[j].key == itemCode[i]) {
1410
+ subTblDatas[j].value = value[i];
1411
+ }
1412
+ }
1413
+
1414
+ }
1415
+ });
1416
+ }
1417
+
1418
+ } else {
1419
+ var subTbl = data.subTbl;
1420
+ subTbl.map(function (item, index) {
1421
+ if (item.subTblName == subTable) {
1422
+ var subTblData = item.subTblData;
1423
+ var subTblDatas = subTblData[data.subTblNo];
1424
+ for (var j = 0; j < subTblDatas.length; j++) {
1425
+ if (subTblDatas[j].key == itemCode) {
1426
+ subTblDatas[j].value = value;
1427
+ }
1428
+ }
1429
+
1430
+ }
1431
+ });
1432
+ }
1433
+
1434
+ return data;
1435
+ }
1436
+
1437
+ changeTab(obj) {
1438
+ this.setState({
1439
+ active: obj
1440
+ });
1441
+ setTimeout(
1442
+ function () {
1443
+ var sysWatermark = $('#sysWatermarkName').val()
1444
+ if (null != sysWatermark && sysWatermark != '') {
1445
+ showWaterMarker('approveWaterMarker', sysWatermark);
1446
+ }
1447
+ }, 300);
1448
+
1449
+ }
1450
+ onChangeTab(obj) {
1451
+ this.setState({
1452
+ active: obj.active
1453
+ });
1454
+ setTimeout(
1455
+ function () {
1456
+ var sysWatermark = $('#sysWatermarkName').val()
1457
+ if (null != sysWatermark && sysWatermark != '') {
1458
+ showWaterMarker('approveWaterMarker', sysWatermark);
1459
+ }
1460
+ }, 300);
1461
+
1462
+ }
1463
+
1464
+ //修改审批意见
1465
+ changeSpyj1(newValue) {
1466
+ var regRule = /(\ud83c[\udf00-\udfff])|(\ud83d[\udc00-\ude4f\ude80-\udeff])|[\u2600-\u2B55]/g;
1467
+ if (newValue.match(regRule)) {
1468
+ Toast.show({
1469
+ type: 'error',
1470
+ content: '请输入非表情字符',
1471
+ });
1472
+ return false;
1473
+ }
1474
+ /*if(newValue=''){
1475
+ Toast.show({
1476
+ type: 'error',
1477
+ content: '意见不能为空!',
1478
+ });
1479
+ return false;
1480
+ }*/
1481
+ if (newValue.length > 2000) {
1482
+ newValue = newValue.substring(0, 2000);
1483
+ }
1484
+ this.setState({
1485
+ spyj: newValue,
1486
+ });
1487
+ this.props.newspyj.content = newValue;
1488
+ //alert(this.props.newspyj.content);
1489
+ }
1490
+
1491
+ //修改审批意见
1492
+ changeSpyj4(t,newValue) {
1493
+ var attachId = "";
1494
+ if(newValue && newValue.length>0){
1495
+ for(var i=0;i<newValue.length;i++){
1496
+ attachId+=","+newValue[i].id;
1497
+ }
1498
+ }
1499
+ if(attachId!=""){
1500
+ attachId = attachId.substring(1);
1501
+ }
1502
+ this.props.newspyj.attachId=attachId;
1503
+ this.setState({
1504
+ commentInitList: newValue,
1505
+ });
1506
+ }
1507
+
1508
+ //选择是否保存常用语
1509
+ selectSavePhrase(data) {
1510
+ this.setState({
1511
+ savePhrase: data
1512
+ });
1513
+ }
1514
+
1515
+ //选择常用语
1516
+ selectCommonwords() {
1517
+ let t = this;
1518
+ t.setState({ fold: !this.state.fold });
1519
+ // let phraseListNow = t.state.phraseList;
1520
+ // if (phraseListNow.length > 0) {
1521
+ // t.refs.slotCommonwords.show();
1522
+ // } else {
1523
+ if(this.state.fold){
1524
+ //获取常用语列表
1525
+ DB.FlowModuleAPI.getPersonalPhrase({
1526
+ }).then((content) => {
1527
+ if (content.length > 0) {
1528
+ var phraseList1 = [];
1529
+ content.map(function (item) {
1530
+ phraseList1.push({ text: item.content, value: item.content });
1531
+ });
1532
+ // var phraseList2 = [];
1533
+ // phraseList2.push(phraseList1);
1534
+ t.setState({
1535
+ // phraseList: phraseList2,
1536
+ phraseListNew: phraseList1
1537
+ }, function () {
1538
+ // t.refs.slotCommonwords.show();
1539
+ });
1540
+ } else {
1541
+ Toast.show({
1542
+ content: '暂无常用语',
1543
+ });
1544
+ }
1545
+ }).catch((error) => {
1546
+ Toast.show({
1547
+ type: 'error',
1548
+ content: error.errorMsg,
1549
+ });
1550
+ });
1551
+
1552
+ }
1553
+ // }
1554
+
1555
+
1556
+ }
1557
+
1558
+ //常用语设置跳转
1559
+ skipToCommonwordsSet(){
1560
+ this.setState({ fold: true });
1561
+ pageSkip('mobile/modules/mobileoffice/dist/index.html','#/hospitalmanage/personal/setting/listPhrase')
1562
+ }
1563
+
1564
+ phraseItemClick(commonwords) {
1565
+ let spyj = this.state.spyj;
1566
+ this.setState({
1567
+ spyj: spyj + commonwords
1568
+ });
1569
+ this.props.newspyj.content = spyj + commonwords;
1570
+ }
1571
+
1572
+ //切换修改常用语
1573
+ handleChangeCommonwords(value) {
1574
+ // 改变了选中项
1575
+ this.setState({
1576
+ choosePhrase: value,
1577
+ });
1578
+ }
1579
+
1580
+ //确认选择语
1581
+ handleConfirmCommonwords(commonwords) {
1582
+ let spyj = this.state.spyj;
1583
+ this.setState({
1584
+ spyj: spyj + commonwords[0].text
1585
+ });
1586
+ this.props.newspyj.content = spyj + commonwords[0].text;
1587
+ }
1588
+
1589
+ //处理关联字段
1590
+ // dealwithFormRelaFieldMaps(formRelaFieldMaps){
1591
+ // formRelaFieldMaps.forEach((key,val)=>{
1592
+
1593
+ // })
1594
+ // }
1595
+
1596
+ render() {
1597
+ const t = this;
1598
+ let allForm = this.props.allForm;
1599
+ let tabCodes = [];
1600
+ let tabNames = [];
1601
+ if(allForm){
1602
+ tabCodes = allForm.tabCodes;
1603
+ tabNames = allForm.tabNames;
1604
+ }
1605
+ return (
1606
+ <div >
1607
+ <div>
1608
+ {tabCodes == null || tabCodes.length < 2 ?
1609
+ (this.props.form?this.props.form.map(function (item, i) {
1610
+ return (
1611
+ item.itemType == 'twocolumns' || item.itemType == 'threecolumns' ?
1612
+ item.children.map(function (item2, j) {
1613
+ return (
1614
+ <div className={"form_"+item2.uniqueName}><Form keyNo={j} ref={item2.uniqueName} newspyj={t.props.newspyj} hasCommentField={t.props.hasCommentField} commentUpload={t.props.commentUpload} commentField={t.props.commentField} module={t.props.module} formKey={t.props.allForm.formcode} status={t.props.status} form={item2} allForm={t.props.allForm} formStyle={t.props.formStyleObj} commentList={t.props.commentFieldList} defaultValue={t.props.defaultValue} data={t.props.data} fieldControll={t.props.fieldControll} caIsPrd={t.props.caIsPrd} preCaFields={t.props.preCaFields} formRelaFieldMaps={t.state.formRelaFieldMaps} linkFields={t.state.linkFields} isRemoveCommentFormHtml={t.props.isRemoveCommentFormHtml} onChange={this.change.bind(this)} reloadItemParam={this.reloadItemParam.bind(this)} /></div>
1615
+ )
1616
+ }.bind(this))
1617
+ : item.itemType == 'detail' ?
1618
+ <div className={"subform_"+item.itemCode}><SubForm keyNo={i} ref={'sub_' + item.itemCode} operate={t.props.operate} newspyj={t.props.newspyj} hasCommentField={t.props.hasCommentField} commentUpload={t.props.commentUpload} commentField={t.props.commentField} module={t.props.module} formKey={t.props.allForm.formcode} status={t.props.status} form={item} allForm={t.props.allForm} formStyle={t.props.formStyleObj} commentList={t.props.commentFieldList} defaultValue={t.props.defaultValue} data={t.props.data} fieldControll={t.props.fieldControll} caIsPrd={t.props.caIsPrd} preCaFields={t.props.preCaFields} formRelaFieldMaps={t.state.formRelaFieldMaps} linkFields={t.state.linkFields} isRemoveCommentFormHtml={t.props.isRemoveCommentFormHtml} onChange={this.change.bind(this)} /></div>
1619
+ : <div className={"form_"+item.uniqueName}><Form ref={item.uniqueName} keyNo={i} operate={t.props.operate} newspyj={t.props.newspyj} hasCommentField={t.props.hasCommentField} commentUpload={t.props.commentUpload} commentField={t.props.commentField} module={t.props.module} formKey={t.props.allForm.formcode} status={t.props.status} form={item} allForm={t.props.allForm} formStyle={t.props.formStyleObj} commentList={t.props.commentFieldList} defaultValue={t.props.defaultValue} data={t.props.data} fieldControll={t.props.fieldControll} caIsPrd={t.props.caIsPrd} preCaFields={t.props.preCaFields} formRelaFieldMaps={t.state.formRelaFieldMaps} linkFields={t.state.linkFields} isRemoveCommentFormHtml={t.props.isRemoveCommentFormHtml} onChange={this.change.bind(this)} reloadItemParam={this.reloadItemParam.bind(this)} /></div>
1620
+
1621
+ )
1622
+ }.bind(this)):"")
1623
+ :
1624
+ <div>
1625
+ <ul className='tab-page-tree'>
1626
+ {tabCodes.map((item, index) => {
1627
+ return <li className={t.state.active == item ? "tab-page-tree-item active" : "tab-page-tree-item"} onClick={() => { this.changeTab(item) }} key={item}>{tabNames[index]}</li>
1628
+ })}
1629
+ </ul>
1630
+ {/* <Tab activeKey={tabCodes[0]} className="dd-tab-br-none" onChange={this.onChangeTab.bind(this)} onTabClick={this.changeTab.bind(this)}>
1631
+ {
1632
+ tabCodes.map(function (item1, k) {
1633
+ return (
1634
+ <Tab.Item key={item1} title={tabNames[k]}>
1635
+ </Tab.Item>
1636
+ )
1637
+ }.bind(this))
1638
+ }
1639
+ </Tab> */}
1640
+ <div className="t-H10 t-BCf7"></div>
1641
+ <div>
1642
+ {
1643
+ t.props.form.map(function (item, i) {
1644
+ return (
1645
+ item.itemType == 'twocolumns' || item.itemType == 'threecolumns' ?
1646
+ item.children.map(function (item2, j) {
1647
+ return (
1648
+ <div className={t.state.active == item.tabCode ? "" : "t-DN"}><Form className={"form_"+item.uniqueName} keyNo={j} ref={item.uniqueName} operate={t.props.operate} hasCommentField={t.props.hasCommentField} commentUpload={t.props.commentUpload} newspyj={t.props.newspyj} commentField={t.props.commentField} module={t.props.module} formKey={t.props.allForm.formcode} status={t.props.status} form={item2} allForm={t.props.allForm} formStyle={t.props.formStyleObj} commentList={t.props.commentFieldList} data={t.props.data} fieldControll={t.props.fieldControll} onChange={this.change.bind(this)} reloadItemParam={this.reloadItemParam.bind(this)} /></div>
1649
+ )
1650
+ }.bind(this))
1651
+ : item.itemType == 'detail' ?
1652
+ <div className={t.state.active == item.tabCode ? "" : "t-DN"}><SubForm className={"subform_"+item.itemCode} keyNo={i} ref={'sub_' + item.itemCode} operate={t.props.operate} newspyj={t.props.newspyj} hasCommentField={t.props.hasCommentField} commentUpload={t.props.commentUpload} commentField={t.props.commentField} module={t.props.module} formKey={t.props.allForm.formcode} status={t.props.status} form={item} allForm={t.props.allForm} formStyle={t.props.formStyleObj} commentList={t.props.commentFieldList} data={t.props.data} fieldControll={t.props.fieldControll} onChange={this.change.bind(this)} /></div>
1653
+ : <div className={t.state.active == item.tabCode ? "" : "t-DN"}><Form className={"form_"+item.uniqueName} ref={item.uniqueName} keyNo={i} operate={t.props.operate} newspyj={t.props.newspyj} hasCommentField={t.props.hasCommentField} commentUpload={t.props.commentUpload} commentField={t.props.commentField} module={t.props.module} formKey={t.props.allForm.formcode} status={t.props.status} form={item} allForm={t.props.allForm} formStyle={t.props.formStyleObj} commentList={t.props.commentFieldList} data={t.props.data} fieldControll={t.props.fieldControll} onChange={this.change.bind(this)} reloadItemParam={this.reloadItemParam.bind(this)} /></div>
1654
+ )
1655
+ }.bind(this))
1656
+ }
1657
+ </div>
1658
+ </div>
1659
+
1660
+ }
1661
+ </div>
1662
+
1663
+
1664
+ <div className={t.props.commentBackList && t.props.commentBackList.length > 0 ? "t-H10 t-BCf7" : 't-DN'}></div>
1665
+ <div className={t.props.commentBackList && t.props.commentBackList.length > 0 ? '' : 't-DN'} >
1666
+ <HBox className="t-field-box">
1667
+ <div className="t-field-layout-h-label t-FS16">退回意见</div>
1668
+ <div className="t-PT10 t-FB1">
1669
+ <CommentList list={t.props.commentBackList} />
1670
+ {/* <div className={t.props.commentField == "" ? '' : ''} >
1671
+ <TextareaField
1672
+ readOnly={true}
1673
+ minRows={10} maxRows={13}
1674
+ placeholder={''}
1675
+ value={this.state.spyj}
1676
+ onChange={this.changeSpyj1.bind(this)} />
1677
+ </div> */}
1678
+ </div>
1679
+ </HBox>
1680
+ </div>
1681
+
1682
+ <div className={(t.props.commentDefaultList && t.props.commentDefaultList.length > 0) || t.props.commentField == "default" ? "t-H10 t-BCf7" : 't-DN'}></div>
1683
+ <div className={(t.props.commentDefaultList && t.props.commentDefaultList.length > 0) || t.props.commentField == "default" ? '' : 't-DN'} >
1684
+ <HBox className="flex-comment default-comment t-field-box">
1685
+ <div className="t-field-layout-h-label t-FS16 t-FBJ"><span>批示意见</span></div>
1686
+ <div className="t-PT10 t-FB1">
1687
+ {
1688
+ (t.props.commentDefaultList && t.props.commentDefaultList.length > 0)?<CommentList list={t.props.commentDefaultList} />:""
1689
+ }
1690
+ <div className={t.props.commentField == "default" ? 't-PL10 t-PR10' : 't-DN'} >
1691
+ <div className="theme-color t-P6 t-FS16 commonwords" ><div onClick={this.selectCommonwords.bind(this)}>常用语</div><div onClick={this.skipToCommonwordsSet.bind(this)}>编辑</div></div>
1692
+ <TextareaField
1693
+ readOnly={false}
1694
+ minRows={5} maxRows={10}
1695
+ placeholder={'请输入批示意见'}
1696
+ value={this.state.spyj}
1697
+ onChange={this.changeSpyj1.bind(this)} />
1698
+
1699
+
1700
+ <div className={t.props.commentUpload == '1' ? "" : "t-DN"}>
1701
+ <Upload
1702
+ ref={"upload_default"}
1703
+ canAdd={true}
1704
+ dir={this.state.module}
1705
+ fileSizeLimit={0}
1706
+ canDel={true}
1707
+ limitNo={5}
1708
+ initList={this.state.commentInitList}
1709
+ onChange={(value,isInit) => { this.changeSpyj4(this, value); }}
1710
+ onDel={(value) => { t.changeSpyj4(this, value); }}
1711
+ />
1712
+ </div>
1713
+
1714
+ <CheckboxField
1715
+ className={this.state.hasCommentField == '1' ? "" : "t-DN"}
1716
+ data={this.state.savePhraseList}
1717
+ mode="list"
1718
+ onChange={this.selectSavePhrase.bind(this)}
1719
+ required={false}
1720
+ />
1721
+
1722
+ <FoldablePane foldHeight={0} isFold={this.state.fold}>
1723
+ <div className="phrase-list">
1724
+ {
1725
+ this.state.phraseListNew.length > 0 ?
1726
+ this.state.phraseListNew.map(function (item, i) {
1727
+ return (
1728
+ <div className="phrase-item" onClick={this.phraseItemClick.bind(this, item.value)}>{item.value}</div>
1729
+ )
1730
+ }.bind(this))
1731
+ : ''
1732
+
1733
+ }
1734
+
1735
+
1736
+ </div>
1737
+ </FoldablePane>
1738
+ {/* <Slot
1739
+ ref="slotCommonwords"
1740
+ data={this.state.phraseList}
1741
+ value={this.state.choosePhrase}
1742
+ title="选择常用语"
1743
+ onConfirm={this.handleConfirmCommonwords.bind(this)}
1744
+ onChange={this.handleChangeCommonwords.bind(this)}
1745
+ /> */}
1746
+ </div>
1747
+ </div>
1748
+ </HBox>
1749
+ </div>
1750
+
1751
+ {/* <div className={t.props.commentDefaultList && t.props.commentDefaultList.length == 0 && t.props.commentField == "default" ? "t-H10 t-BCf7" : 't-DN'}></div>
1752
+ <div className={t.props.commentDefaultList && t.props.commentDefaultList.length == 0 && t.props.commentField == "default" ? '' : 't-DN'} >
1753
+ <HBox className="flex-comment t-field-box">
1754
+ <div className="t-field-layout-h-label t-FS16 t-FBJ"><span>批示意见</span></div>
1755
+ <div className={t.props.commentField == "default" ? 't-PL10 t-PT10 t-FB1' : 't-DN'} >
1756
+ <div className="theme-color t-P6 t-FS16 commonwords"><div onClick={this.selectCommonwords.bind(this)}>常用语</div><div onClick={this.skipToCommonwordsSet.bind(this)}>编辑</div></div>
1757
+ <div id="defaultCommentInput">
1758
+ <TextareaField
1759
+ readOnly={false}
1760
+ minRows={3} maxRows={5}
1761
+ placeholder={'请输入批示意见'}
1762
+ value={this.state.spyj}
1763
+ onChange={this.changeSpyj1.bind(this)} />
1764
+ </div>
1765
+ <CheckboxField
1766
+ className={this.state.hasCommentField == '1' ? "" : "t-DN"}
1767
+ data={this.state.savePhraseList}
1768
+ mode="list"
1769
+ onChange={this.selectSavePhrase.bind(this)}
1770
+ required={false}
1771
+ />
1772
+ <FoldablePane foldHeight={0} isFold={this.state.fold}>
1773
+ <div className="phrase-list">
1774
+ {
1775
+ this.state.phraseListNew.length > 0 ?
1776
+ this.state.phraseListNew.map(function (item, i) {
1777
+ return (
1778
+ <div className="phrase-item" onClick={this.phraseItemClick.bind(this, item.value)}>{item.value}</div>
1779
+ )
1780
+ }.bind(this))
1781
+ : ''
1782
+
1783
+ }
1784
+
1785
+
1786
+ </div>
1787
+ </FoldablePane>
1788
+ <Slot
1789
+ ref="slotCommonwords"
1790
+ data={this.state.phraseList}
1791
+ value={this.state.choosePhrase}
1792
+ title="选择常用语"
1793
+ onConfirm={this.handleConfirmCommonwords.bind(this)}
1794
+ onChange={this.handleChangeCommonwords.bind(this)}
1795
+ />
1796
+ </div>
1797
+ </HBox>
1798
+ </div> */}
1799
+ </div>
1800
+
1801
+
1802
+ )
1803
+ }
1804
+ }