fmui-base 2.2.11 → 2.2.12

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.
@@ -1,793 +0,0 @@
1
- import React from 'react';
2
-
3
- import Button from 'saltui/lib/Button';
4
- import Boxs from 'saltui/lib/Boxs';
5
- const { HBox,Box } = Boxs;
6
- import Form from './form';
7
- let FlowCommon ;
8
-
9
- export default class PageHome extends React.Component {
10
-
11
- constructor(props) {
12
- super(props);
13
- var form = props.form;
14
- var data = props.data;
15
- var status = props.status;
16
- var context = document.getElementById("context").value;
17
-
18
- let module = props.module && props.module != "undefined"? props.module:"approve";
19
- FlowCommon = require('pages/flow_common/'+module).default?require('pages/flow_common/'+module).default:require('pages/flow_common/'+module);
20
- //需要隐藏表头的子表表名
21
- let isHideSubTblHeadTblList=['dj_org_mb_duty_now'];
22
-
23
- // var itemParam =
24
- this.state = {
25
- module:module,
26
- status: status,
27
- fieldControll:props.fieldControll,
28
- urlPrev: context + '/dingisv/api/common/viewImage?fid=',
29
- calc:[],
30
- itemParam:{
31
- readOnly:false,
32
- required:false,
33
- title:'',
34
- value:'',
35
- itemType:'',
36
- id:'',
37
- key:''
38
- },
39
- commentList:[],
40
- subModel:[],
41
- isHideSubTblHeadTblList:isHideSubTblHeadTblList
42
- };
43
-
44
- }
45
-
46
-
47
- //流程控制表单字段显示
48
- fieldControllFormat(field,fieldControll){
49
- // let isHidden = null;
50
- // let required = null;
51
- // let readOnly = null;
52
- let status = null;
53
- if(fieldControll){
54
- let hiddenFields = fieldControll.hiddenFields;
55
- let mustFields = fieldControll.mustFields;
56
- let showFields = fieldControll.showFields;
57
- let editFields = fieldControll.editFields;
58
-
59
- if(hiddenFields){ //是否隐藏
60
- if(hiddenFields.indexOf(field)>=0){//是否包含字段
61
- status = "hidden";
62
- return status;
63
- }
64
- }
65
-
66
-
67
- if(showFields){ //是否只读
68
- if(showFields.indexOf(field)>=0){//是否包含字段
69
- status = "show";
70
- return status;
71
- }
72
- }
73
-
74
- if(editFields){ //是否可编辑
75
- if(editFields.indexOf(field)>=0){//是否包含字段
76
- status = "edit";
77
- if(mustFields){ //是否必须
78
- if(mustFields.indexOf(field)>=0){//是否包含字段
79
- status = "edit&must";
80
- return status;
81
- }
82
- }
83
- return status;
84
- }
85
- }
86
- }
87
- }
88
-
89
- //加载组件
90
- loadComponet(){
91
- console.log("sub===loadComponet===");
92
- let t = this;
93
- var module = this.props.module;
94
- var formKey = this.props.formKey;//表单code
95
- var form = this.props.form; //表单元素
96
- var status = this.props.status; //判断是否能选择,0新增,1修改,2查看
97
- var data = this.props.data; //数据
98
- var subTbl = data.subTbl;//子表
99
- var relatedTbl = data.relatedTbl;//关联表
100
- //var dataType = this.props.dataType;//数据类型,main:主表,sub:子表,
101
- var itemParam = {}; //元素参数
102
- var id = form.id;
103
- itemParam.id=id;
104
- var title = form.itemTitle; //标题
105
- itemParam.title=title;
106
- var key = form.itemCode; //表字段;
107
- itemParam.key=key;
108
- var itemType = form.itemType; //类型
109
- itemParam.itemType=itemType;
110
- itemParam.uniqueName=form.uniqueName;
111
- itemParam.isHidden = form.isHidden?form.isHidden:false;//默认不隐藏
112
- itemParam.parentTblName=form.parentTblName;
113
-
114
- itemParam.children=form['children'];
115
- itemParam.fieldControll=this.props.fieldControll;
116
- itemParam.extButtonList=form['extButtonList']?form['extButtonList']:[];
117
-
118
- //判断字段属性
119
- let fieldControllJson = this.props.fieldControll;
120
- var subtableReadonly = false;
121
- if(fieldControllJson){
122
-
123
- var subtableReadonlyStr = "";
124
- if(fieldControllJson.subtable){
125
- subtableReadonlyStr=fieldControllJson.subtable;
126
- }
127
- if(subtableReadonlyStr.indexOf(form.tblId)>=0){
128
- subtableReadonly = true;
129
- }
130
- }
131
-
132
- if(status==2){
133
- subtableReadonly = true;
134
- }
135
- itemParam.subtableReadonly = subtableReadonly;
136
- var subForm = form.children;
137
- var value = this.dealwithSubForm(subForm,itemParam,subTbl,relatedTbl);
138
- data.subTbl = subTbl;
139
- data.relatedTbl = relatedTbl;
140
- itemParam.show = true;
141
- itemParam.value = value;
142
- itemParam.detailAction = form.detailAction;//添加事件名字
143
- //处理特有按钮事件
144
- if(typeof FlowCommon.dealwithCommonFormParam === "function"){
145
- itemParam = FlowCommon.dealwithCommonFormParam(itemParam,this);
146
- }
147
-
148
- //项目开发扩展
149
- var mobileExt;
150
- try{
151
- if (formKey) {
152
- mobileExt = typeof eval(module + "_" + formKey + "_mobileExt") !== 'undefined'?eval(module + "_" + formKey + "_mobileExt"):null;
153
- }
154
- }catch(e){
155
- // alert("exception: "+e.message);
156
- }
157
- if(typeof mobileExt !== 'undefined' && typeof mobileExt["dealwithFormParamExt"] === "function"){
158
- itemParam = mobileExt["dealwithFormParamExt"](itemParam,this);
159
- itemType = itemParam.itemType;
160
- }
161
-
162
- this.setState({
163
- itemParam:itemParam
164
- })
165
- this.props.onChange(data);
166
- }
167
-
168
- componentDidMount() {
169
- this.loadComponet();
170
- }
171
-
172
- //处理子表数据
173
- dealwithSubForm(subForm,itemParam,subTbl,relatedTbl){
174
- console.log("===dealwithSubForm===");
175
- var subFormList = [];
176
- var itemCode = itemParam.key;
177
- var fieldControll = itemParam.fieldControll;
178
- var mustFields = "";
179
- if(fieldControll){
180
- mustFields = fieldControll.mustFields;
181
- if(mustFields && mustFields!=""){
182
- for(var i=0;i<subForm.length;i++){
183
- if(mustFields.split(",").indexOf(subForm[i].uniqueName)!=-1){
184
- subForm[i].valid = "true";
185
- }
186
- }
187
- }
188
- }
189
- var value = [];
190
- if(relatedTbl && relatedTbl.length>0){
191
- for(var i=0;i<relatedTbl.length;i++){
192
- var relateditem = relatedTbl[i];
193
- var relatedSubTblData = relateditem.relatedSubTblData;
194
- if(relatedSubTblData && relatedSubTblData.length>0){
195
- for(var j=0;j<relatedSubTblData.length;j++){
196
- var item = relatedSubTblData[j];
197
- if(item.subTblName==itemCode){
198
- var subTblData = item.subTblData;
199
- if(subTblData.length>0){
200
- for(var j=0;j<subTblData.length;j++) {
201
- value.push({mainTblData:subTblData[j],mainTblName:itemCode});
202
- var subForm1 = {show:true,form:subForm};
203
- subFormList.push(subForm1);
204
- }
205
- }else{
206
- var subForm2 = {show:true,form:subForm};
207
- value.push({mainTblData:[],mainTblName:itemCode});
208
- subFormList.push(subForm2);
209
- }
210
- break;
211
- }
212
- }
213
- }
214
- }
215
- }
216
- if(subTbl.length>0){
217
- for(var i=0;i<subTbl.length;i++) {
218
- var item = subTbl[i];
219
- if(item.subTblName==itemCode){
220
- var subTblData = item.subTblData;
221
- if(subTblData.length>0){
222
- for(var j=0;j<subTblData.length;j++) {
223
- value.push({mainTblData:subTblData[j],mainTblName:itemCode});
224
- var subForm1 = {show:true,form:subForm};
225
- subFormList.push(subForm1);
226
- }
227
- }else{
228
- var subForm2 = {show:true,form:subForm};
229
- value.push({mainTblData:[],mainTblName:itemCode});
230
- subFormList.push(subForm2);
231
- }
232
- break;
233
- }
234
- }
235
- }
236
- if(subFormList.length>0){
237
- itemParam.subForm = subFormList;
238
- }else if(relatedTbl && relatedTbl.length>0){
239
- var subForm3 = {show:true,form:subForm};
240
- subFormList.push(subForm3);
241
- itemParam.subForm = subFormList;
242
- value.push({mainTblData:[],mainTblName:itemCode});
243
- var relatedFlag = false;
244
- for(var i=0;i<relatedTbl.length;i++){
245
- var relateditem = relatedTbl[i];
246
- if(relateditem.relatedMainTblName==itemParam.parentTblName){
247
- relatedTbl[i].relatedSubTblData.push({subTblData:[],subTblName:itemCode});
248
- relatedFlag = true;
249
- break;
250
- }
251
- }
252
- if(!relatedFlag){
253
- value.push({mainTblData:[],mainTblName:itemCode});
254
- subTbl.push({subTblData:[],subTblName:itemCode});
255
- }
256
-
257
- }else{
258
- var subForm3 = {show:true,form:subForm};
259
- subFormList.push(subForm3);
260
- itemParam.subForm = subFormList;
261
- value.push({mainTblData:[],mainTblName:itemCode});
262
- subTbl.push({subTblData:[],subTblName:itemCode});
263
- }
264
- return value;
265
- }
266
-
267
-
268
- //修改data数据
269
- editData(itemCode,value,data){
270
- var mainTblData = data.mainTblData;
271
- mainTblData.map(function(item,index){
272
- if(item.key==itemCode){
273
- item.value = value;
274
- }
275
- });
276
- return data;
277
- }
278
-
279
-
280
- //子表操作修改
281
- changeSub(itemSubTbl,subTblNo,value,itemParam1){
282
- var itemParam = this.state.itemParam;
283
- var data = this.props.data;
284
- var subTblList = data.subTbl;//子表
285
- var relatedTbl = data.relatedTbl;//关联表
286
- /* var calculateExpList = data.calculateExpList;//计算公式列表
287
- var calculateExpList1 = value.calculateExpList;//计算公式列表
288
- if(calculateExpList1){
289
- for(var key in calculateExpList1){
290
- var calculateExpValue;
291
- if(calculateExpList){
292
- calculateExpValue = calculateExpList[key];
293
- if(!calculateExpValue){
294
- calculateExpValue = [];
295
- }
296
- }else{
297
- calculateExpList = {};
298
- calculateExpValue = [];
299
- }
300
- for(var j=0;j<calculateExpList1[key].length;j++){
301
- calculateExpValue.push(calculateExpList1[key][j]);
302
- }
303
- calculateExpList[key] = calculateExpValue;
304
-
305
- }
306
-
307
- data.calculateExpList = calculateExpList;
308
- }*/
309
-
310
- this.dealwithSubData(subTblList,subTblNo,value,relatedTbl);
311
- data.subCalculateExpList=value.calculateExpList;
312
- data.subTblNo=subTblNo;
313
- this.props.onChange(data,itemParam1,subTblNo);
314
- }
315
-
316
- //处理子表数据
317
- dealwithSubData(subTblList,subTblNo,value,relatedTbl){
318
- if(subTblList.length>0){//子表数据为空
319
- for(var j=0; j<subTblList.length; j++){
320
- if(value.mainTblName == subTblList[j].subTblName){
321
- subTblList[j].subTblData[subTblNo] = value.mainTblData;
322
- break;
323
- }
324
- }
325
- }
326
- if(relatedTbl && relatedTbl.length>0){
327
- for(var i=0;i<relatedTbl.length;i++){
328
- var relatedSubTblData = relatedTbl[i].relatedSubTblData;
329
- for(var j=0; j<relatedSubTblData.length; j++){
330
- if(value.mainTblName == relatedSubTblData[j].subTblName){
331
- relatedSubTblData[j].subTblData[subTblNo] = value.mainTblData;
332
- break;
333
- }
334
- }
335
-
336
- }
337
- }
338
-
339
- }
340
-
341
- //重新加载组件
342
- reloadItemParam(itemNew){
343
- if(itemNew != null && itemNew != undefined && Array.isArray(itemNew)){
344
- var itemParam = this.state.itemParam;
345
- for(var i=0; i<itemNew.length; i++){
346
- var key = itemNew[i].key;
347
- itemParam[key] = itemNew[i].value;
348
- }
349
- this.setState({
350
- itemParam:itemParam
351
- });
352
- }
353
- }
354
-
355
-
356
- //重新加载子表各字段
357
- reloadSubItemParam(itemNew){
358
- if(itemNew != null && itemNew != undefined && Array.isArray(itemNew)){
359
- var itemParam = this.state.itemParam;
360
- var valueSub = itemParam.value;
361
- for(var i=0; i<itemNew.length; i++){
362
- var fieldCode = itemNew[i].key;
363
- var value = itemNew[i].value;
364
- var index = itemNew[i].index;
365
- if(valueSub[index]){
366
- valueSub[index][fieldCode] = value;
367
- }
368
- if(this.refs[fieldCode+'_'+index]){
369
- var valueItem={};
370
- valueItem.key = 'value';
371
- valueItem.value = value;
372
- this.refs[fieldCode+'_'+index].reloadItemParam([valueItem]);
373
- }
374
- }
375
- }
376
- }
377
- //获取子表各字段的itemParam属性
378
- getSubItemParam(fieldCode){
379
- var subItemParam = [];
380
- var itemParam = this.state.itemParam;
381
- for(var i=0; i<itemParam.subForm.length; i++){
382
- if(fieldCode && this.refs[fieldCode+'_'+i]){
383
- var itemParamItem= this.refs[fieldCode+'_'+i].getItemParam();
384
- if(itemParamItem != null){
385
- subItemParam.push(itemParamItem);
386
- }
387
- }
388
- }
389
- return subItemParam;
390
- }
391
-
392
- //获取字段的itemParam属性
393
- getItemParam(){
394
- var itemParam = this.state.itemParam;
395
- return itemParam;
396
- }
397
-
398
- //明细显示隐藏(全部)
399
- detailShowAll(){
400
- var itemParam = this.state.itemParam;
401
- itemParam.show = !itemParam.show;
402
- this.setState({
403
- itemParam:itemParam
404
- });
405
- }
406
-
407
- //明细显示隐藏
408
- detailShow(i,show){
409
- var itemParam = this.state.itemParam;
410
- itemParam.subForm[i].show = !show;
411
- this.setState({
412
- itemParam:itemParam,
413
- });
414
- }
415
-
416
- //明细删除
417
- detailDel(i,e){
418
- if(e){
419
- e.stopPropagation();
420
- }
421
- var itemParam = this.state.itemParam;
422
- var subForm = itemParam.subForm;
423
- subForm.splice(i,1);
424
- itemParam.value.splice(i,1);
425
- // itemParam.subForm = subForm;
426
- var data = this.props.data;
427
- var subTblList = data.subTbl;
428
- for(var j=0; j<subTblList.length; j++){
429
- if(subTblList[j].subTblName == itemParam.key){
430
- var subTblData = subTblList[j].subTblData;
431
- subTblData.splice(i,1);
432
- subTblList[j].subTblData=subTblData;
433
- }
434
- }
435
- this.setState({
436
- itemParam:itemParam,
437
- },function(data){
438
- // this.forceUpdate();
439
- var itemParamList = this.state.itemParam.value;
440
- for(var m=0 ;m<itemParamList.length; m++){
441
- var tblData = itemParamList[m].mainTblData;
442
- var tblName = itemParamList[m].mainTblName;
443
- for(var n=0 ;n<tblData.length; n++){
444
- var key = tblData[n].key;
445
- var value = tblData[n].value;
446
- if(this.refs[tblName+'_'+key+'_'+m]){
447
- this.refs[tblName+'_'+key+'_'+m].reloadItemParam([{'key':'value','value':value}]);
448
- }
449
- }
450
- }
451
- var cropItem=this.state.itemParam;
452
- var children=this.state.itemParam.children;
453
- for(var c=0;c<children.length;c++){
454
- var itemPa=children[c];
455
- var uniqueName=itemPa.uniqueName;
456
- // cropItem.uniqueName=uniqueName;
457
- // cropItem.itemType=itemPa.itemType;
458
- // cropItem.inputFormat=itemPa.inputFormat;
459
- // cropItem.decimalPlace=itemPa.decimalPlace;
460
- var hiddenFields='';
461
- if(this.state.itemParam.fieldControll){
462
- hiddenFields=this.state.itemParam.fieldControll.hiddenFields;
463
- hiddenFields = ","+hiddenFields+",";
464
- }
465
- if(hiddenFields.indexOf(","+uniqueName+",")<0 && itemPa.isSum=='1'){
466
- var subTableName=this.state.itemParam.key;
467
- var key=itemPa.itemCode;
468
- var title=itemPa.itemTitle;
469
- var subTbl=itemParamList;
470
- if($('.'+t.replaceDollar(uniqueName)).length>0){
471
- $('.'+t.replaceDolla(uniqueName)).html('');
472
- }else if($('.hejidiv-'+t.replaceDolla(subTableName)).html()==''){
473
- $('.hejidiv-'+t.replaceDolla(subTableName)).html('合计:')
474
- }
475
- var subValue='';
476
- if(subTbl!=null && subTbl.length>0){
477
- for(var i=0;i<subTbl.length;i++){
478
- if(subTableName==subTbl[i].mainTblName){
479
- var subTblData=subTbl[i].mainTblData;
480
- for(var j=0;j<subTblData.length;j++){
481
- if(key==subTblData[j].key){
482
- if(subTblData[j].value!=''){
483
- if(subValue==''){
484
- subValue=Number(subTblData[j].value);
485
- }else{
486
- subValue=Number(subValue)+Number(subTblData[j].value);
487
- }
488
- }
489
- }
490
-
491
- }
492
- }
493
- }
494
- }
495
- if(isNaN(subValue)){
496
- subValue='';
497
- }
498
- if(subValue!=''){
499
- if($('.'+t.replaceDolla(uniqueName)).length>0){
500
- $('.'+t.replaceDolla(uniqueName)).html(title+" "+subValue+"; ");
501
- }else{
502
- $('.hejidiv-'+t.replaceDolla(subTableName)).append('<span class="'+uniqueName+'">'+title+" "+subValue+"; "+"</span>");
503
- }
504
- }
505
-
506
- }
507
- }
508
-
509
- this.props.onChange(this.props.data,cropItem);
510
- });
511
-
512
- }
513
-
514
-
515
- //添加明细
516
- detailAdd(addValue){
517
- var form = this.props.form; //表单元素
518
- var itemParam = this.state.itemParam; //表单元素
519
- var data = this.props.data; //表单数据
520
- var formKey = this.props.formKey;//表单code
521
- var status = this.props.status;
522
- //var subTblList = data.subTbl;
523
- // for(var i=0; i<subTblList.length; i++){
524
- // if(subTblList[i].subTblName == itemParam.key){
525
- // var subModel = this.state.subModel;
526
- // subTblList[i].subTblData.push(subModel);
527
- // }
528
- // }
529
- var subFormList = itemParam.subForm;
530
- var formItem = form.children;
531
- var formItemNew = JSON.parse(JSON.stringify(formItem));
532
- if (itemParam.isCopy == false) {
533
- //子表在新增数据时是否复制默认数据,默认是复制
534
- formItemNew.map(function (item) {
535
- item.value = '';
536
- item.defaultValue = '';
537
- });
538
- }
539
-
540
- //给他初始数据
541
- var mainTblData = [];
542
- if (status == '0') {} else {
543
- mainTblData = [{ key: 'id', value: '', required: false }];
544
- }
545
- if (addValue && addValue.length > 0) {
546
- formItemNew.map(function (item) {
547
- for (var i = 0; i < addValue.length; i++) {
548
- if (addValue[i].key == item.itemCode) {
549
-
550
- if(item.itemType != "popuser"){
551
- item.value = addValue[i].value;
552
- }
553
- item.defaultValue = addValue[i].value;
554
-
555
- var mainTbItem = {};
556
- mainTbItem.key = item.itemCode;
557
- mainTbItem.fieldId = item.fieldId;
558
- mainTbItem.decimalPlace = item.decimalPlace;
559
- mainTbItem.inputFormat = item.inputFormat;
560
- mainTbItem.itemType = item.itemType;
561
- mainTbItem.label = item.label;
562
- mainTbItem.required = item.required;
563
- mainTbItem.uniqueName = item.uniqueName;
564
- mainTbItem.value = addValue[i].value;
565
- mainTblData.push(mainTbItem);
566
- }
567
- }
568
- });
569
-
570
- var data = this.props.data;
571
- var subTblList = data.subTbl;
572
- var relatedTbl = data.relatedTbl;
573
- for (var j = 0; j < subTblList.length; j++) {
574
- if (subTblList[j].subTblName == itemParam.key) {
575
- var subTblData = subTblList[j].subTblData;
576
- subTblData.push(mainTblData);
577
- }
578
- }
579
-
580
- }
581
- formItemNew.map(function (item) {
582
- item.formKey = formKey;
583
- });
584
- var subForm = { show: true, form: formItemNew };
585
- subFormList.push(subForm);
586
-
587
- var value = itemParam.value;
588
- // if(status == '0'){
589
- // value.push({mainTblData:mainTblData,mainTblName:itemParam.key});
590
- // }else{
591
- // value.push({mainTblData:[{key:'id',value:'',required:false}],mainTblName:itemParam.key});
592
- // }
593
-
594
- value.push({mainTblData:mainTblData,mainTblName:itemParam.key});
595
-
596
-
597
- //this.addSubForm(formItem,itemParam,subTblList);
598
- //value.push({mainTblData:[],mainTblName:itemCode});
599
- //data.subTbl = subTbl;
600
- this.setState({
601
- itemParam:itemParam,
602
- });
603
- setTimeout(
604
- function () {
605
- if($('#sysWatermarkName').val()!=null && $('#sysWatermarkName').val()!=''){
606
- $('#approveWaterMarker').ezWaterMarkerApprove('clear');
607
- $('#approveWaterMarker').ezWaterMarkerApprove({text:$('#sysWatermarkName').val(),markWidth: 120 ,rows:100});
608
- }
609
- }, 500);
610
-
611
- }
612
-
613
- //新增明细处理数据
614
- addSubForm(formItem,itemParam,subTblList){
615
-
616
- var itemCode = itemParam.key;
617
- var value = itemParam.value;
618
-
619
- subFormList.push(subForm);
620
- itemParam.subForm = subFormList;
621
- value.push({mainTblData:[],mainTblName:itemCode});
622
- for(var i=0; i<subTblList.length; i++){
623
- if(subTblList[i].subTblName == itemParam.key){
624
- var subModel = this.state.subModel;
625
- subTblList[i].subTblData.push({mainTblData:[],mainTblName:itemCode});
626
- }
627
- }
628
- return value;
629
- }
630
-
631
-
632
- getDetai(){
633
- let t =this;
634
- console.log("getDetai===");
635
- var subForm = this.state.itemParam.subForm;
636
- var subTblName = this.state.itemParam.key;
637
- if(!subForm){
638
- subForm=[];
639
- }
640
-
641
- return subForm.map((item, i) => {
642
- return (
643
- <div className="dd-drug-list">
644
- <HBox className="t-BCf dd-bottom-border" onClick={this.detailShow.bind(this,i,item.show)}>
645
- <Box className={ this.state.isHideSubTblHeadTblList.indexOf(subTblName) == -1 ? "t-LH44 t-PL16 t-PR2" : "t-DN"}><i className={item.show?"iconfont icon-arrow-down t-FS18 t-FCc":"iconfont icon-arrow-up t-rotate-90 t-FS18 t-FCc"} ></i></Box>
646
- <Box flex={1} className={ this.state.isHideSubTblHeadTblList.indexOf(subTblName) == -1 ? "t-LH46 t-FC9" : "t-DN"}>{i+1}</Box>
647
- {this.getDetaiExtOperate(i)}
648
- <Box data-key={i} onClick={this.detailDel.bind(this,i)} className={t.state.itemParam.subtableReadonly || subForm.length==1?'t-DN':'t-P16 theme-color'}>删除</Box>
649
- </HBox>
650
- <div className={item.show ?"":"t-DN"}>
651
- {
652
- item.form.map((item2, j) => {
653
- return (
654
- <Form className={"subform_"+item2.uniqueName} keyNo={i} ref={item2.uniqueName+'_'+i} dataType="sub" subTblName={t.state.itemParam.key} module={t.state.module} formKey={item2.formKey} status={t.state.status} form={item2} allForm={t.props.allForm} formStyle={t.props.formStyle} data={t.state.itemParam.value[i]} fieldControll={t.state.fieldControll} caIsPrd={t.props.caIsPrd} preCaFields={t.props.preCaFields} formRelaFieldMaps={t.props.formRelaFieldMaps} linkFields={t.props.linkFields} onChange={this.changeSub.bind(this,this.state.itemParam,i)}/>
655
- )}
656
- )
657
- }
658
- </div>
659
- </div>
660
- )
661
- });
662
- }
663
- //子表扩展按钮
664
- getDetaiExtOperate(index){
665
- let t =this;
666
- console.log("getDetaiExtOperate===");
667
- var subForm = this.state.itemParam.subForm;
668
- var extButtonList = this.state.itemParam.extButtonList;
669
- // extButtonList = [{'buttonName':'扩展1','buttonFun':'kuozhan1'},{'buttonName':'扩展3','buttonFun':'kuozhan3','extParam':'{}'}];
670
- if(!extButtonList){
671
- extButtonList=[];
672
- }
673
-
674
- return extButtonList.map((item, i) => {
675
- return (
676
- <div className="dd-drug-list">
677
- <Box data-key={i} onClick={this.extOperate.bind(this,index,this.state.itemParam,item.buttonFun,item.extParam)} className='t-P16 theme-color'>{item.buttonName}</Box>
678
- </div>
679
- )
680
- });
681
- }
682
-
683
- //子表扩展按钮方法
684
- extOperate(i,itemParam,buttonFun,extParam){
685
- if (typeof FlowCommon.subFormItemExtOperate === "function") {
686
- FlowCommon.subFormItemExtOperate(this.state,i,itemParam,buttonFun,extParam,this);
687
- }
688
- }
689
-
690
- replaceDollar(str) {
691
- if (str && str.indexOf('$') != -1) {
692
- return str.replace(/\$/g, '\\$');
693
- }
694
- return str;
695
- }
696
-
697
- getSubTotal(){
698
- let t =this;
699
- var itemParamList = this.state.itemParam.value;
700
- var children=this.state.itemParam.children;
701
- var hiddenFields='';
702
- if(this.state.itemParam.fieldControll){
703
- hiddenFields=this.state.itemParam.fieldControll.hiddenFields;
704
- hiddenFields = ","+hiddenFields+",";
705
- }
706
-
707
- if(children && children.length>0){
708
- for(var c=0;c<children.length;c++){
709
- var itemPa=children[c];
710
- var uniqueName=itemPa.uniqueName;
711
- if(hiddenFields.indexOf(","+uniqueName+",")<0){
712
- if(itemPa.isSum=='1'){
713
- var subTableName=this.state.itemParam.key;
714
- var key=itemPa.itemCode;
715
- var title=itemPa.itemTitle;
716
- var subTbl=itemParamList;
717
- if($('.'+t.replaceDollar(uniqueName)).length>0){
718
- $('.'+t.replaceDollar(uniqueName)).html('');
719
- }else if($('.hejidiv-'+t.replaceDollar(subTableName)).html()==''){
720
- $('.hejidiv-'+t.replaceDollar(subTableName)).html('合计:')
721
- }
722
- var subValue='';
723
- if(subTbl!=null && subTbl.length>0){
724
- for(var i=0;i<subTbl.length;i++){
725
- if(subTableName==subTbl[i].mainTblName){
726
- var subTblData=subTbl[i].mainTblData;
727
- for(var j=0;j<subTblData.length;j++){
728
- if(key==subTblData[j].key){
729
- if(subTblData[j].value!==''){
730
- if(subValue===''){
731
- subValue=Number(subTblData[j].value);
732
- }else{
733
- subValue=Number(subValue)+Number(subTblData[j].value);
734
- }
735
- }
736
- }
737
-
738
- }
739
- }
740
- }
741
- }
742
- if(isNaN(subValue)){
743
- subValue='';
744
- }
745
- if(subValue!==''){
746
- if($('.'+t.replaceDollar(uniqueName)).length>0){
747
- $('.'+t.replaceDollar(uniqueName)).html(title+" "+subValue+"; ");
748
- }else{
749
- $('.hejidiv-'+t.replaceDollar(subTableName)).append('<span class="'+uniqueName+'">'+title+" "+subValue+"; "+"</span>");
750
- }
751
- }
752
- var le=$('.hejidiv-'+t.replaceDollar(subTableName)).find('span').length;
753
- if(le>0){
754
- var tx=$('.hejidiv-'+t.replaceDollar(subTableName)).find('span')[le-1].innerText;
755
- $('.hejidiv-'+t.replaceDollar(subTableName)).find('span')[le-1].innerText=tx.replace(';','')
756
- }
757
- }
758
- }
759
- }
760
- }
761
-
762
- }
763
-
764
- render() {
765
- const t = this;
766
- return (
767
- <div className={t.state.itemParam.isHidden?'t-DN':''}>
768
- <div className={ t.state.isHideSubTblHeadTblList.indexOf(t.state.itemParam.key) == -1 ? "t-BCf7 t-H10" : "t-DN"}></div>
769
- <HBox className={ t.state.isHideSubTblHeadTblList.indexOf(t.state.itemParam.key) == -1 ? "t-P16 t-FS16 t-BCf dd-bottom-border" : "t-DN"} onClick={this.detailShowAll.bind(this)}>
770
- <Box flex={1}><span>{t.state.itemParam.title}{t.state.name}</span></Box>
771
- <Box >
772
- <i className={this.state.itemParam.show?"iconfont icon-arrow-down t-FS18 t-FCc":"iconfont icon-arrow-up t-rotate-90 t-FS18 t-FCc"} ></i>
773
- </Box>
774
- </HBox>
775
- <div className={this.state.itemParam.show?"":'t-DN'} >
776
- {this.getDetai()}
777
- </div>
778
-
779
- <div className={"hejidiv-"+t.state.itemParam.key+" t-FS16 t-BCf "} style={{textAlign: 'right',paddingRight:20}}>
780
- {this.getSubTotal()}
781
- </div>
782
-
783
- <div onClick={this.detailAdd.bind(this)} className={t.state.itemParam.subtableReadonly?'t-DN':'t-button t-button-size-medium theme-color'}>
784
- <i className="iconfont icon-plus"></i>
785
- <span>{this.state.itemParam.detailAction}</span>
786
- </div>
787
- <div className="t-BCf7 t-H10"></div>
788
- </div>
789
-
790
- )
791
- }
792
- }
793
-