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.
package/lib/form/form.jsx DELETED
@@ -1,3434 +0,0 @@
1
- import React from 'react';
2
-
3
- import SelectField from 'saltui/lib/SelectField';
4
- import CheckboxField from 'saltui/lib/CheckboxField';
5
- import TextareaField from 'saltui/lib/TextareaField';
6
- import TextField from 'saltui/lib/TextField';
7
- import Group from 'saltui/lib/Group';
8
- import DatetimeField from 'saltui/lib/DatetimeField';
9
- import Datetime from 'saltui/lib/Datetime';
10
- import Toast from 'saltui/lib/Toast';
11
- import SwitchField from 'saltui/lib/SwitchField';
12
- import Boxs from 'saltui/lib/Boxs';
13
- import Field from 'saltui/lib/Field';
14
- import FoldablePane from 'saltui/lib/FoldablePane';
15
- import CalendarField from 'saltui/lib/CalendarField';
16
- // import Slot from 'saltui/lib/Slot';
17
- import AngleRight from 'salt-icon/lib/AngleRight';
18
- import Upload from '../upload/upload';
19
- import Positioning from '../positioning/positioning';
20
- // import SelectFileNo from '../select-fileno/pageHome';
21
- // import SelectSerialNumber from '../select-serialnumber/pageHome';
22
- //import 'babel-polyfill';
23
- import CommentList from '../comment_list/List';
24
- import Poppage from '../poppage/check';
25
- import SelectMember from '../selectMember/select';
26
- import './form.less';
27
-
28
- import DB from '../db/db';
29
- const { HBox,VBox,Box } = Boxs;
30
- //import 'babel-polyfill';
31
- let FlowCommon ;
32
- let savePhraseList=[
33
- {
34
- value:"1",
35
- checked:false,
36
- content:'是否保存为常用语',
37
- disable:false
38
- }
39
- ];
40
-
41
- export default class PageHome extends React.Component {
42
-
43
- constructor(props) {
44
- super(props);
45
- var form = props.form;
46
- var data = props.data;
47
- var status = props.status;
48
- var dataType = props.dataType;//数据类型,main:主表,sub:子表,
49
- if(!dataType){
50
- dataType = "main";
51
- }
52
- var prefixName = dataType;
53
- if(dataType == "sub"){
54
- var keyNo = props.keyNo;
55
- var subTblName = props.subTblName;
56
- prefixName = dataType+"_"+subTblName+"_"+keyNo;
57
- }
58
- var commentField = props.commentField;
59
- /* alert(commentField);*/
60
- var context = document.getElementById("context").value;
61
- //alert(props.defaultValue);
62
- let module = props.module && props.module != "undefined"? props.module:"approve";
63
- let isRemoveCommentFormHtml = props.isRemoveCommentFormHtml && props.isRemoveCommentFormHtml != "undefined"? props.isRemoveCommentFormHtml:"0";
64
- FlowCommon = require('pages/flow_common/'+module).default?require('pages/flow_common/'+module).default:require('pages/flow_common/'+module);
65
- this.state = {
66
- module:module,
67
- fold: true,
68
- status: status,
69
- fieldControll:props.fieldControll,
70
- commentField:props.commentField,
71
- hasCommentField:props.hasCommentField,
72
- commentUpload:props.commentUpload,
73
- urlPrev: context + '/dingisv/api/common/viewImage?fid=',
74
- calc:[],
75
- itemParam:{
76
- readOnly:false,
77
- required:false,
78
- title:'',
79
- value:'',
80
- itemType:'',
81
- id:'',
82
- key:''
83
- },
84
- dataType:dataType,
85
- prefixName:prefixName,
86
- loaded:false,
87
- commentList:[],
88
- phraseListNew:[],
89
- savePhraseList:[
90
- {
91
- value:"1",
92
- checked:false,
93
- content:'是否保存为常用语',
94
- disable:false
95
- }
96
- ],
97
- savePhrase:[],
98
- phraseList:[],//常用语列表
99
- spyj:props.defaultValue,
100
- isRemoveCommentFormHtml:isRemoveCommentFormHtml,
101
- commentInitList:[],
102
- };
103
-
104
- }
105
-
106
-
107
- //流程控制表单字段显示
108
- fieldControllFormat(field,fieldControll){
109
- // let isHidden = null;
110
- // let required = null;
111
- // let readOnly = null;
112
- let status = null;
113
- if(fieldControll){
114
- let hiddenFields = fieldControll.hiddenFields;
115
- let mustFields = fieldControll.mustFields;
116
- let showFields = fieldControll.showFields;
117
- let editFields = fieldControll.editFields;
118
-
119
-
120
- if(hiddenFields){ //是否隐藏
121
- hiddenFields = ","+hiddenFields+",";
122
- if(hiddenFields.indexOf(","+field+",")>=0){//是否包含字段
123
- status = "hidden";
124
- return status;
125
- }
126
- }
127
-
128
-
129
- if(showFields){ //是否只读
130
- showFields = ","+showFields+",";
131
- if(showFields.indexOf(","+field+",")>=0){//是否包含字段
132
- status = "show";
133
- return status;
134
- }
135
- }
136
-
137
- if(editFields){ //是否可编辑
138
- editFields = ","+editFields+",";
139
- if(editFields.indexOf(","+field+",")>=0){//是否包含字段
140
- status = "edit";
141
- if(mustFields){ //是否必须
142
- mustFields = ","+mustFields+",";
143
- if(mustFields.indexOf(","+field+",")>=0){//是否包含字段
144
- status = "edit&must";
145
- return status;
146
- }
147
- }
148
- return status;
149
- }
150
- }
151
-
152
- if(mustFields){ //是否必须
153
- mustFields = ","+mustFields+",";
154
- if(mustFields.indexOf(","+field+",")>=0){//是否包含字段
155
- status = "must";
156
- return status;
157
- }
158
- }
159
- }else{
160
- return "show";
161
- }
162
- }
163
-
164
- //加载组件
165
- loadComponet(formItem){
166
- let t = this;
167
- var form;
168
- if(formItem){//二次修改传的formitem属性
169
- form = formItem;
170
- }else{
171
- form = this.props.form; //表单元素
172
- }
173
- var status = this.props.status; //判断是否能选择,0新增,1修改,2查看
174
- var formKey = this.props.formKey;//表单code
175
- var allForm = this.props.allForm;//表单属性
176
- var formTblId = allForm.formTblId;//表单的表id
177
- var data = this.props.data; //数据
178
- var dataType = this.props.dataType;//数据类型,main:主表,sub:子表,
179
- var module = this.props.module;
180
- var preCaFields = ","+this.props.preCaFields+",";//上一步CA加签字段
181
- var uniqueName = form.uniqueName;//表单唯一code,表code+"_"+字段code
182
- var isVerifySing = "0";//验签成功标识,0正常,1成功,2失败
183
- if(!dataType){
184
- dataType = "main";
185
- }
186
-
187
- var tableName = data.mainTblName;
188
- var itemParam = {}; //元素参数
189
- itemParam.formKey = formKey;
190
- itemParam.tableName=tableName;
191
- itemParam.uniqueName=uniqueName;
192
- var commentList = this.props.commentList;
193
- if(!commentList){
194
- commentList = [];
195
- }
196
- var id = form.id;
197
- itemParam.id=id;
198
- var title = form.itemTitle+":"; //标题
199
- itemParam.title=title;
200
- var key = form.itemCode; //表字段;
201
- itemParam.key=key;
202
- var itemType = form.itemType; //类型
203
- itemParam.itemType=itemType;
204
- var fieldTblId = form.tblId;
205
- var fieldTblName = form.tblName;
206
- itemParam.tblId = fieldTblId;
207
- itemParam.tblName = fieldTblName;
208
-
209
-
210
- var required = false;
211
- if(itemType!="comment"){
212
- required = form.valid == "true";//必填
213
- }
214
- itemParam.required=required;
215
- var placeholder = form.placeholder;//提示语
216
- itemParam.placeholder = placeholder;
217
- var validAttr = form.validAttr;//正则
218
- itemParam.validAttr = validAttr;
219
- var fieldId = form.fieldId;
220
- itemParam.fieldId = fieldId;
221
- itemParam.fontSize=form.fontSize;
222
- itemParam.isHidden = form.isHidden?form.isHidden:false;//默认不隐藏
223
-
224
- var mainTblData = data.mainTblData;//主表数据
225
- var relatedTbl = data.relatedTbl;//关联表数据
226
- var subTbl = data.subTbl;//子表
227
- var readOnly = false;
228
- var value = '';
229
- let fuzhiFields = '';
230
- console.log("loadComponet===");
231
- if(key != ""){
232
- //判断字段属性
233
- let fieldControllJson = this.props.fieldControll;
234
- let fieldControll = this.fieldControllFormat(tableName+"_"+key,fieldControllJson);
235
-
236
- if(fieldControllJson && fieldControllJson.fuzhiFields){
237
- fuzhiFields = fieldControllJson.fuzhiFields;
238
- }
239
- console.log("fuzhiFields===="+fuzhiFields);
240
- if(fieldControll){
241
- if(fieldControll == 'hidden'){//隐藏
242
- itemParam.isHidden = true;
243
- }else if(fieldControll == 'show'){//只读
244
- readOnly = true;
245
- required = false;
246
- }else if(fieldControll == 'edit'){//编辑
247
- readOnly = false;
248
- }else if(fieldControll == 'must'){//必填
249
- required = true;
250
- }else if(fieldControll == 'edit&must'){//编辑,必填
251
- required = true;
252
- readOnly = false;
253
- }
254
- }
255
- if(dataType=='sub'){
256
- if(typeof form.readOnly!='undefined'){
257
- readOnly = form.readOnly;
258
- }
259
- if(itemType!="comment"){
260
- required = form.valid == "true";//必填
261
- if(readOnly){
262
- required = false;
263
- }
264
- }
265
- }
266
- itemParam.readOnly = readOnly;
267
- itemParam.required = required;
268
- if (itemType == 'text') {
269
- itemParam.inputFormat = form.inputFormat;
270
- itemParam.decimalPlace = form.decimalPlace;
271
- }
272
-
273
-
274
- /* alert(this.state.itemParam.uniqueName==this.state.commentField);*/
275
- //处理数据
276
- var tableData = {};
277
- if (status == '0') {//新增
278
- //新增
279
- value = form.defaultValue;
280
-
281
- if(formTblId.indexOf(fieldTblId) > 0){
282
- var hasTable = false;
283
- var hasField = false;
284
- relatedTbl.map(function(item){
285
- if(item.relatedMainTblName == fieldTblName){
286
- hasTable = true;
287
- item.relatedMainTblData.map(function(item2){
288
- if(item2.key == key){
289
- hasField = true;
290
- }
291
- })
292
- }
293
- })
294
-
295
- if(!hasField){//字段不存在
296
-
297
- tableData.key = key;
298
- tableData.value = form.defaultValue;
299
- tableData.required = required;
300
- tableData.label = title;
301
- tableData.inputFormat = form.inputFormat;
302
- tableData.decimalPlace = form.decimalPlace;
303
- tableData.fieldId = form.fieldId;
304
- tableData.uniqueName = uniqueName;
305
- tableData.itemType = form.itemType;
306
-
307
- if(!hasTable){//表不存在
308
- var relatedTblData = {};
309
- relatedTblData.relaDataId=null;
310
- relatedTblData.relatedMainTblName=fieldTblName;
311
- relatedTblData.relatedSubTblData=[];
312
-
313
- var relatedMainTblData = [];
314
- relatedMainTblData.push(tableData);
315
- relatedTblData.relatedMainTblData=relatedMainTblData;
316
- relatedTbl.push(relatedTblData);
317
- }else{
318
- relatedTbl.map(function(item){
319
- if(item.relatedMainTblName == fieldTblName){
320
- var relatedMainTblData = item.relatedMainTblData;
321
- relatedMainTblData.push(tableData);
322
- }
323
- })
324
- }
325
- }
326
- }else{
327
- var hasField = false;
328
- mainTblData.map(function(item){
329
- if(item.key == key){
330
- hasField = true;
331
- }
332
- })
333
- if(!hasField){
334
- tableData.key = key;
335
- tableData.value = form.defaultValue;
336
- tableData.required = required;
337
- tableData.label = title;
338
- tableData.inputFormat = form.inputFormat;
339
- tableData.decimalPlace = form.decimalPlace;
340
- tableData.fieldId = form.fieldId;
341
- tableData.uniqueName = uniqueName;
342
- tableData.itemType = form.itemType;
343
- mainTblData.push(tableData);
344
- }
345
- }
346
-
347
-
348
- } else if(status == '1') {//编辑
349
- var dataId = data.dataId;
350
- if(!dataId){
351
- if(dataType == "sub"){
352
- if(this.checkIsHasSub(mainTblData,key)){
353
- value = this.dealwithData(itemParam,mainTblData,relatedTbl);
354
- }else{
355
- value = form.value;
356
- tableData.key = key;
357
- tableData.value = form.value;
358
- tableData.required = required;
359
- tableData.label = title;
360
- tableData.inputFormat = form.inputFormat;
361
- tableData.decimalPlace = form.decimalPlace;
362
- tableData.fieldId = form.fieldId;
363
- tableData.uniqueName = uniqueName;
364
- tableData.itemType = form.itemType;
365
- if(formTblId.indexOf(fieldTblId) > 0){
366
- relatedTbl.map(function(item){
367
- if(item.relatedMainTblName == fieldTblName){
368
- var relatedMainTblData = item.relatedMainTblData;
369
- relatedMainTblData.push(tableData);
370
- }
371
- })
372
- }else{
373
- mainTblData.push(tableData);
374
- }
375
- }
376
- }else{
377
- value = form.value;
378
- tableData.key = key;
379
- tableData.value = form.value;
380
- tableData.required = required;
381
- tableData.label = title;
382
- tableData.inputFormat = form.inputFormat;
383
- tableData.decimalPlace = form.decimalPlace;
384
- tableData.fieldId = form.fieldId;
385
- tableData.uniqueName = uniqueName;
386
- tableData.itemType = form.itemType;
387
- if(formTblId.indexOf(fieldTblId) > 0){
388
- relatedTbl.map(function(item){
389
- if(item.relatedMainTblName == fieldTblName){
390
- var relatedMainTblData = item.relatedMainTblData;
391
- relatedMainTblData.push(tableData);
392
- }
393
- })
394
- }else{
395
- mainTblData.push(tableData);
396
- }
397
- }
398
- }else{
399
- value = this.dealwithData(itemParam,mainTblData,relatedTbl); //初始化值
400
- }
401
- }else{//显示
402
- readOnly = true;
403
- required = false;
404
- itemParam.required = required;
405
- itemParam.readOnly = readOnly;
406
- tableData.inputFormat = form.inputFormat;
407
- tableData.decimalPlace = form.decimalPlace;
408
- tableData.fieldId = form.fieldId;
409
- tableData.uniqueName = uniqueName;
410
- tableData.itemType = form.itemType;
411
- value = this.dealwithData(itemParam,mainTblData,relatedTbl); //初始化值
412
- }
413
-
414
- }
415
-
416
- let formStyle = t.props.formStyle; //统一样式
417
- var subStyle = form.itemStyle; //每个样式
418
-
419
- let style = {contentStyle: {}, titleStyle: {}};
420
- if (formStyle != null && formStyle != '' && formStyle != undefined) {
421
- if (formStyle.contentStyle != null && formStyle.contentStyle != '' && formStyle.contentStyle != undefined) {
422
- if (formStyle.contentStyle.color != null && formStyle.contentStyle.color != undefined) {
423
- style.contentStyle.color = formStyle.contentStyle.color;
424
- }
425
- if (formStyle.contentStyle.fontFamily != null && formStyle.contentStyle.fontFamily != undefined) {
426
- style.contentStyle.fontFamily = formStyle.contentStyle.fontFamily;
427
- }
428
- if (formStyle.contentStyle.fontSize != null && formStyle.contentStyle.fontSize != undefined) {
429
- style.contentStyle.fontSize = formStyle.contentStyle.fontSize;
430
- }
431
- if (formStyle.contentStyle.fontStyle != null && formStyle.contentStyle.fontStyle != undefined) {
432
- style.contentStyle.fontStyle = formStyle.contentStyle.fontStyle;
433
- }
434
- if (formStyle.contentStyle.fontWeight != null && formStyle.contentStyle.fontWeight != undefined) {
435
- style.contentStyle.fontWeight = formStyle.contentStyle.fontWeight;
436
- }
437
- }
438
-
439
- if (formStyle.titleStyle != null && formStyle.titleStyle != '' && formStyle.titleStyle != undefined) {
440
- if (formStyle.titleStyle.color != null && formStyle.titleStyle.color != undefined) {
441
- style.titleStyle.color = formStyle.titleStyle.color;
442
- }
443
- if (formStyle.titleStyle.fontFamily != null && formStyle.titleStyle.fontFamily != undefined) {
444
- style.titleStyle.fontFamily = formStyle.titleStyle.fontFamily;
445
- }
446
- if (formStyle.titleStyle.fontSize != null && formStyle.titleStyle.fontSize != undefined) {
447
- style.titleStyle.fontSize = formStyle.titleStyle.fontSize;
448
- }
449
- if (formStyle.titleStyle.fontStyle != null && formStyle.titleStyle.fontStyle != undefined) {
450
- if (formStyle.titleStyle.fontStyle == '') { //如果字体样式为空,会使用父级样式,所以需要手动赋值
451
- style.titleStyle.fontStyle = 'initial';
452
- } else {
453
- style.titleStyle.fontStyle = formStyle.titleStyle.fontStyle;
454
- }
455
- }
456
- if (formStyle.titleStyle.fontWeight != null && formStyle.titleStyle.fontWeight != undefined) {
457
- if (formStyle.titleStyle.fontWeight == '') { //如果字体样式为空,会使用父级样式,所以需要手动赋值
458
- style.titleStyle.fontWeight = 'initial';
459
- } else {
460
- style.titleStyle.fontWeight = formStyle.titleStyle.fontWeight;
461
- }
462
- }
463
- }
464
- }
465
-
466
-
467
- if (subStyle != null && subStyle != '' && subStyle != undefined) {
468
- if(itemType == 'note'){
469
- style.contentStyle = subStyle;
470
- }else if (subStyle.contentStyle != null && subStyle.contentStyle != '' && subStyle.contentStyle != undefined) {
471
- if (subStyle.contentStyle.color != null && subStyle.contentStyle.color != undefined) {
472
- style.contentStyle.color = subStyle.contentStyle.color;
473
- }
474
- if (subStyle.contentStyle.fontFamily != null && subStyle.contentStyle.fontFamily != undefined) {
475
- style.contentStyle.fontFamily = subStyle.contentStyle.fontFamily;
476
- }
477
- if (subStyle.contentStyle.fontSize != null && subStyle.contentStyle.fontSize != undefined) {
478
- style.contentStyle.fontSize = subStyle.contentStyle.fontSize;
479
- }
480
- if (subStyle.contentStyle.fontStyle != null && subStyle.contentStyle.fontStyle != undefined) {
481
- style.contentStyle.fontStyle = subStyle.contentStyle.fontStyle;
482
- }
483
- if (subStyle.contentStyle.fontWeight != null && subStyle.contentStyle.fontWeight != undefined) {
484
- style.contentStyle.fontWeight = subStyle.contentStyle.fontWeight;
485
- }
486
- }
487
-
488
- if (subStyle.titleStyle != null && subStyle.titleStyle != '' && subStyle.titleStyle != undefined) {
489
- if (subStyle.titleStyle.color != null && subStyle.titleStyle.color != undefined) {
490
- style.titleStyle.color = subStyle.titleStyle.color;
491
- }
492
- if (subStyle.titleStyle.fontFamily != null && subStyle.titleStyle.fontFamily != undefined) {
493
- style.titleStyle.fontFamily = subStyle.titleStyle.fontFamily;
494
- }
495
- if (subStyle.titleStyle.fontSize != null && subStyle.titleStyle.fontSize != undefined) {
496
- style.titleStyle.fontSize = subStyle.titleStyle.fontSize;
497
- }
498
- if (subStyle.titleStyle.fontStyle != null && subStyle.titleStyle.fontStyle != undefined) {
499
- if (subStyle.titleStyle.fontStyle == '') {
500
- style.titleStyle.fontStyle = 'initial';
501
- } else {
502
- style.titleStyle.fontStyle = subStyle.titleStyle.fontStyle;
503
- }
504
- }
505
- if (subStyle.titleStyle.fontWeight != null && subStyle.titleStyle.fontWeight != undefined) {
506
- if (subStyle.titleStyle.fontWeight == '') {
507
- style.titleStyle.fontWeight = 'initial';
508
- } else {
509
- style.titleStyle.fontWeight = subStyle.titleStyle.fontWeight;
510
- }
511
- }
512
- }
513
- }
514
-
515
- itemParam.formStyleObj = style;//样式
516
-
517
-
518
- // if(status == '2'){//只读
519
- // readOnly = true;
520
- // itemParam.readOnly = readOnly;
521
- // required = false;
522
- // itemParam.required = required;
523
- // }else{
524
- // tableData.required = required;
525
- // tableData.label = title;
526
- // mainTblData.push(tableData);
527
- // }
528
-
529
- itemParam.isVerifySing = isVerifySing;
530
- var isVerifySingValue = value;//验签真实数据记录
531
- var context = document.getElementById("context").value;
532
- var token = document.getElementById("token").value;
533
- // var context + '/api/m/plugin/attachment/mobile/viewImage?token=' + token + '&fid=';
534
- if (itemType == 'text') {//单行文本框
535
- //alert('260=====');
536
- itemParam.inputFormat = form.inputFormat;//文本类型
537
- itemParam.decimalPlace = form.decimalPlace;//小数位数
538
- itemParam.dataAttr=form['dataAttr'];
539
- itemParam.maxlength = form['length'];
540
- /*if(itemParam.dataAttr){
541
- alert("265====="+itemParam.dataAttr.textLineFeed);
542
- }*/
543
- //宏值签名图片
544
- // if(itemParam.dataAttr && itemParam.dataAttr.dataSrc=='2' && !readOnly && !itemParam.bizCodeRuleId){
545
- // value = form.defaultValue;
546
- // }
547
- // 宏值新需求,赋值字段取defaultValue
548
- if(itemParam.dataAttr && itemParam.dataAttr.dataSrc=='2' && fuzhiFields!=''){
549
- if(fuzhiFields.split(",").indexOf(itemParam.uniqueName)!=-1 && form.defaultValue && form.defaultValue!=null){
550
- value = form.defaultValue;
551
- }
552
- }
553
- if(itemParam.dataAttr && itemParam.dataAttr.dataSrc=='2' && itemParam.dataAttr.fromMacro.value=='currentUserSignPic'){
554
-
555
- if(value){
556
- value = value.split('_')[0];
557
- value = context + '/api/m/plugin/attachment/mobile/viewImage?token=' + token + '&fid='+value;
558
- //alert("value==="+value);
559
- }
560
- }
561
- var calculateExpList = data.calculateExpList;//计算公式列表
562
- var calculateExp = form.calculateExp;//计算公式
563
- if(calculateExp){
564
- var fieldArray = this.getFieldArray(calculateExp);
565
- if(!value){
566
- value = this.dealwithCalculate(calculateExp,fieldArray,form,allForm);
567
- }
568
- for(var i=0; i<fieldArray.length; i++){
569
- var calculateExpValue;
570
- if(calculateExpList){
571
- calculateExpValue = calculateExpList[fieldArray[i]];
572
- if(!calculateExpValue){
573
- calculateExpValue = [];
574
- }
575
- }else{
576
- calculateExpList = {};
577
- calculateExpValue = [];
578
- }
579
-
580
- var calculateExpValueItem = {};
581
- calculateExpValueItem.exp = calculateExp;//计算公式
582
- calculateExpValueItem.result = uniqueName;//公式结果字段
583
- calculateExpValueItem.key = key;//公式结果字段key
584
- calculateExpValue.push(calculateExpValueItem);
585
- calculateExpList[fieldArray[i]] = calculateExpValue;
586
- }
587
- data.calculateExpList = calculateExpList;
588
- }
589
-
590
- //todo 百分位千分位
591
- // if(itemParam.dataAttr){
592
- // var type = itemParam.dataAttr.dataSrc;
593
- // if(type == "1"){
594
- // value = parseFloat(value)*100+"%";
595
- // }else if(type == "2"){
596
- // value = this.toThousands(parseFloat(value));
597
- // }
598
- // }
599
- } else if(itemType == 'textarea') {//多行
600
- itemParam.maxlength = form['length'];
601
- itemParam.fieldType = form.fieldType;
602
- }else if(itemType == 'title') {//标题
603
- value=form.title;
604
- } else if (itemType == 'radio') { //单选
605
- var selectItem = form.multiItems;//选项
606
- var selectOptions = [];
607
- if(selectItem){
608
- if(selectItem.length>0){
609
- selectItem.map(function(item){
610
- if(typeof(item.state) == 'undefined' || item.state == "1" || (item.state == "0" &&readOnly==true)){
611
- var option = {};
612
- option.value = item.value;
613
- option.text = item.name;
614
- // if(status != '0'){
615
- if(value == item.value){
616
- value = {value:value,text:item.name};
617
- }
618
- // }
619
- selectOptions.push(option);
620
- }
621
- });
622
- }
623
- }
624
- if(value == ""){
625
- value = null;
626
- }
627
- itemParam.selectOptions = selectOptions;
628
- itemParam.selectItem = selectOptions;
629
- } else if (itemType == 'checkbox') { //多选
630
- var selectItem = form.multiItems;//选项
631
- var selectOptions = [];
632
- if(selectItem){
633
- var valueArray = [];
634
- //if(status != '0'){
635
- if(value || value == 0 ){
636
- if(value.indexOf("[")>=0){
637
- valueArray = JSON.parse(value);
638
- }else{
639
- valueArray = value.split(",");
640
- }
641
- }
642
- // }
643
- if(selectItem.length>0){
644
- selectItem.map(function(item){
645
- if(typeof(item.state) == 'undefined' || item.state == "1" || (item.state == "0" &&readOnly==true)){
646
- var option = {};
647
- option.value = item.value;
648
- option.text = item.name;
649
- option.disable = false;
650
- option.checked = false;
651
- if(valueArray.length>0){
652
- for(var i=0;i<valueArray.length;i++){
653
- if(valueArray[i] == item.value){
654
- option.checked = true;
655
- }
656
- }
657
- }
658
- selectOptions.push(option);
659
- }
660
- });
661
- }
662
- }
663
- itemParam.selectOptions = selectOptions;
664
- itemParam.selectItem = selectOptions;
665
- } else if (itemType == 'select') { //下拉选择
666
- var selectItem = form.multiItems;//选项
667
- isVerifySingValue = value;
668
- if(form.dataAttr && form.dataAttr.selectClass && form.dataAttr.selectClass == "2"){ //当多选时只显示
669
- itemParam.itemType="checkbox";
670
- itemParam.realType="select";
671
- // itemParam.readOnly=true;
672
- var selectOptions = [];
673
- if (value) {
674
- var valueArray = [];
675
- // if(valueArray.indexOf("[")>=0){
676
- // valueArray = JSON.parse(value);
677
- // }else{
678
- // valueArray.push(value);
679
- // }
680
- if(status == '0'){
681
- selectItem.map(function (selectI) {
682
- if(selectI.isDefault==1){
683
- valueArray.push(selectI.value);
684
- }
685
- });
686
- }else{
687
- if(value.indexOf("[")>=0){
688
- valueArray = JSON.parse(value);
689
- }
690
- }
691
- selectItem.map(function (selectI) {
692
- if(typeof(selectI.state) == 'undefined' || selectI.state == "1" || (selectI.state == "0" &&readOnly==true)){
693
- if (valueArray.indexOf(selectI.value)!=-1 ) {
694
- var option = {};
695
- option.value = selectI.value;
696
- option.text = selectI.name;
697
- option.disable = false;
698
- option.checked = true;
699
- selectOptions.push(option);
700
- }else{
701
- var option = {};
702
- option.value = selectI.value;
703
- option.text = selectI.name;
704
- option.disable = false;
705
- option.checked = false;
706
- selectOptions.push(option);
707
- }
708
- }
709
-
710
-
711
- // showValue+=","+item;
712
- });
713
-
714
- // var showValue = "";
715
- valueArray.map(function (item) {
716
- var hasValue = false;
717
- selectItem.map(function (selectI) {
718
- if (selectI.value == item && (typeof(selectI.state) == 'undefined' || selectI.state == "1" || (selectI.state == "0" &&readOnly==true))) {
719
- hasValue = true;
720
- }
721
- });
722
- if (!hasValue) {
723
- var option = {};
724
- option.value = item;
725
- option.text = item;
726
- option.disable = false;
727
- option.checked = true;
728
- selectOptions.push(option);
729
- }
730
- // showValue+=","+item;
731
- });
732
- // if(showValue){
733
- // value = showValue.substring(1);
734
- // }
735
- }else{
736
- selectItem.map(function (selectI) {
737
- if(typeof(selectI.state) == 'undefined' || selectI.state == "1" || (selectI.state == "0" &&readOnly==true)){
738
- var option = {};
739
- option.value = selectI.value;
740
- option.text = selectI.name;
741
- option.disable = false;
742
- option.checked = false;
743
- selectOptions.push(option);
744
- }
745
- });
746
- }
747
- itemParam.selectOptions = selectOptions;
748
- itemParam.selectItem = selectOptions;
749
- var mainTblData = data.mainTblData;
750
- mainTblData.map(function (item, index) {
751
- if (item.key == key) {
752
- item.value = JSON.stringify(valueArray);
753
- }
754
- });
755
- }else{
756
- var selectOptions = [];
757
- if(selectItem){
758
- if(selectItem.length>0){
759
- selectItem.map(function(item){
760
- if(typeof(item.state) == 'undefined' || item.state == "1" || (item.state == "0" &&readOnly==true)){
761
- var option = {};
762
- option.value = item.value;
763
- option.text = item.name;
764
- // if(status != '0'){ //非新增
765
- if(value == item.value){
766
- value = {value:value,text:item.name};
767
- }
768
- /*}else{
769
- var defaultValue=form.defaultValue;
770
- if(defaultValue == item.value){
771
- value = {value:value,text:item.name};
772
- }
773
- }*/
774
- selectOptions.push(option);
775
- }
776
- });
777
- }
778
- }
779
- if(value == ""){
780
- value = null;
781
- }
782
- itemParam.selectOptions = selectOptions;
783
- itemParam.selectItem = selectOptions;
784
- }
785
- } else if (itemType == 'datetime') { //时间
786
- if(value){
787
- if(value.length == 10){
788
- isVerifySingValue = value+" 00:00:00";
789
- }else if(value.length == 13){
790
- isVerifySingValue = value+":00:00";
791
- }else if(value.length == 16){
792
- isVerifySingValue = value+":00";
793
- }else{
794
- isVerifySingValue = value;
795
- }
796
- }
797
- var dateFormat = form.dateFormat;
798
- var dateFormatShow = "";
799
- if(form.dataAttr && typeof(form.dataAttr)!="undefined"){
800
- var dateDisplayFormat = form.dataAttr.dateDisplayFormat;
801
- if(dateDisplayFormat == "STime" || dateFormat =="YMDHM"){
802
- dateFormat = "YMDHM";
803
- }else if(dateDisplayFormat == "YearMon"){
804
- dateFormat = "YM";
805
- }else if(dateDisplayFormat == "MonthDay"){
806
- dateFormat = "MD";
807
- }else if(dateDisplayFormat == "Year"){
808
- dateFormat = "Y";
809
- }else if(dateDisplayFormat == "ODate"){
810
- dateFormat = "YMD";
811
- }else if(dateDisplayFormat == "zhDate"){
812
- dateFormat = "YMD";
813
- dateFormatShow = "zhDate";
814
- }else if(dateDisplayFormat == "AmPmDate"){
815
- dateFormat = "YMDT";
816
- dateFormatShow = "AmPmDate";
817
- }else if(dateDisplayFormat == "DateInterval"){
818
- dateFormat = "DateInterval";
819
- dateFormatShow = "dayWithSlot";
820
- }else if(dateDisplayFormat == "DateTimeInterval"){
821
- dateFormat = "DateInterval";
822
- dateFormatShow = "dayWithTime";
823
- }else{
824
- dateFormat = "YMDHM";
825
- }
826
- var minDate = form.dataAttr.minDate;
827
- var maxDate = form.dataAttr.maxDate;
828
- if(minDate){
829
- itemParam.minDate = minDate;
830
- }
831
- if(maxDate){
832
- itemParam.maxDate = maxDate;
833
- }
834
- var fromCalculate = form.dataAttr.fromCalculate;
835
- if(fromCalculate && typeof(fromCalculate)!="undefined"){
836
- var calculateExpList = fromCalculate.calculateExpList;//计算公式列表
837
- var calculateExp = fromCalculate.calculateExp;//计算公式
838
- if(calculateExp){
839
- var fieldArray = this.getFieldArray(calculateExp);
840
- if(!value){
841
- value = this.dealwithCalculate(calculateExp,fieldArray,form,allForm);
842
- }
843
- for(var i=0; i<fieldArray.length; i++){
844
- var calculateExpValue;
845
- if(calculateExpList){
846
- calculateExpValue = calculateExpList[fieldArray[i]];
847
- if(!calculateExpValue){
848
- calculateExpValue = [];
849
- }
850
- }else{
851
- calculateExpList = {};
852
- calculateExpValue = [];
853
- }
854
-
855
- var calculateExpValueItem = {};
856
- calculateExpValueItem.exp = calculateExp;//计算公式
857
- calculateExpValueItem.result = uniqueName;//公式结果字段
858
- calculateExpValueItem.key = key;//公式结果字段key
859
- calculateExpValue.push(calculateExpValueItem);
860
- calculateExpList[fieldArray[i]] = calculateExpValue;
861
- }
862
- data.calculateExpList = calculateExpList;
863
- }
864
- }
865
-
866
-
867
- }else{
868
- dateFormat = "YMDHM";
869
- }
870
- itemParam.dateFormat = dateFormat;
871
- itemParam.dateFormatShow = dateFormatShow;
872
- if(dateFormat == "DateInterval"){
873
- if(value){
874
- var valueArray = value.split(" - ");
875
- if(valueArray.length==2){
876
- var newDate = {};
877
- newDate.startDate = new Date(valueArray[0].replace(/-/g,"/")).getTime();
878
- newDate.endDate = new Date(valueArray[1].replace(/-/g,"/")).getTime();
879
- value = newDate;
880
- }
881
- }
882
- }else{
883
- if(value && Array.isArray(value)){
884
- if(value.length == 5){
885
- var month = value[1]<10?'0'+value[1]:value[1];
886
- var day = value[2]<10?'0'+value[2]:value[2];
887
- var min = value[3]<10?'0'+value[3]:value[3];
888
- var second = value[4]<10?'0'+value[4]:value[4];
889
- value = value[0]+"/"+month+"/"+day+" "+min+":"+second;
890
- value = new Date(value).getTime();
891
- }else if (value.length == 3){
892
- var month = value[1]<10?'0'+value[1]:value[1];
893
- var day = value[2]<10?'0'+value[2]:value[2];
894
- value = value[0]+"/"+month+"/"+day;
895
- value = new Date(value).getTime();
896
- }else{
897
- value = null;
898
- }
899
-
900
- var dateStr = this.dateFormat(value,dateFormat);
901
- var mainTblData = data.mainTblData;
902
- mainTblData.map(function (item, index) {
903
- if (item.key == key) {
904
- item.value = dateStr;
905
- }
906
- });
907
- }else if(value && value.length>=10){
908
- value = value.substring(0,19);
909
- value = new Date(value.replace(/-/g,"/")).getTime();
910
- }else if(value && value.length == 4 && dateFormat=="Y"){
911
- value = new Date(value).getTime();
912
- }else if(value && value.length == 7 && dateFormat=="YM"){
913
- value = new Date(value).getTime();
914
- }else{
915
- for(var i=0;i<mainTblData.length;i++){
916
- if(itemParam.key==mainTblData[i].key){
917
- mainTblData[i].value="";
918
- }
919
- }
920
- value=null;
921
- }
922
- }
923
-
924
- if(readOnly == true){
925
- var dateStr = this.dateFormat(value,dateFormat,dateFormatShow);
926
- value = dateStr;
927
- }
928
- }else if (itemType == 'datetimeStep') { //时间
929
- var dateFormat = form.dateFormat;
930
- if(!dateFormat){
931
- dateFormat = "YMD";
932
- }
933
- itemParam.dateFormat = dateFormat;
934
- itemParam.selectValue = form.selectValue;
935
- if(value){
936
- value = new Date(value.replace(/-/g,"/")).getTime();
937
- }else{
938
- value=null;
939
- for(var i=0;i<mainTblData.length;i++){
940
- if(itemParam.key==mainTblData[i].key){
941
- mainTblData[i].value="";
942
- }
943
- }
944
- }
945
- } else if (itemType == 'scale') { //矩阵
946
- } else if (itemType == 'mulscale') { //矩阵量表
947
- }else if(itemType == 'comment'){//批示意见
948
- itemParam.show = false;
949
- var commentFieldList = [];
950
- for(let i=0; i<commentList.length; i++){
951
- var commentItem = commentList[i];
952
- if(commentItem.field == tableName+'_'+key){//评论id和code
953
- commentFieldList.push(commentItem);
954
- }
955
- if(itemParam.uniqueName==commentItem.field){
956
- itemParam.show = true;
957
- }
958
- }
959
- itemParam.topicType = itemType;
960
- value = commentFieldList;
961
-
962
- if(t.state.commentField==itemParam.uniqueName && t.state.hasCommentField=='1'){
963
- this.props.newspyj.documentId=t.state.prefixName+"_"+itemParam.key;
964
- itemParam.show = true;
965
- }
966
- }else if(itemType == 'upload' ||itemType == 'image'){//附件图片
967
- var formDataAttr = form.dataAttr;
968
- var uploadFileNumLimit = "";
969
- var uploadFileLimit = "";
970
- var canDownload = "";
971
- if(formDataAttr){
972
- uploadFileNumLimit = formDataAttr.uploadFileNumLimit;//上传个数限制
973
- uploadFileLimit = formDataAttr.uploadFileLimit;//上传类型限制
974
- canDownload = formDataAttr.canDownload;//是否下载
975
- }
976
- if(value){
977
- value = value.replace(/\|/g,",");
978
- itemParam.initIds = value;
979
- value = [];
980
- }else{
981
- value = [];
982
- }
983
- if(uploadFileNumLimit){
984
- itemParam.uploadFileNumLimit = uploadFileNumLimit;
985
- }else{
986
- itemParam.uploadFileNumLimit = -1;
987
- }
988
-
989
- if(uploadFileLimit){
990
- itemParam.uploadFileLimit = uploadFileLimit;
991
- }else{
992
- itemParam.uploadFileLimit = "";
993
- }
994
- if(canDownload){
995
- itemParam.canDownload = canDownload;
996
- }else{
997
- itemParam.canDownload = "0";
998
- }
999
-
1000
- }else if(itemType == 'poppage'){//弹出选择
1001
-
1002
- var popCode = "";
1003
- var chooseWay = "checkbox";
1004
- var dataSrc="";
1005
- if(form.poppageMap){
1006
- popCode = form.poppageMap.chooseObj;
1007
- chooseWay = form.poppageMap.chooseWay;
1008
- }
1009
- //弹出选择历史记录表现形式
1010
- if(form.dataAttr){
1011
- dataSrc=form.dataAttr.dataSrc;
1012
- }
1013
- if(popCode == ''&&(!dataSrc||dataSrc!="7")){//如果弹出选择的编码为空
1014
- Toast.show({
1015
- type: 'error',
1016
- content:"未查找到对应的弹出选择"
1017
- });
1018
- return false;
1019
- }else if(dataSrc=="7"){
1020
- itemParam.itemType="";
1021
- }
1022
- itemParam.chooseWay = chooseWay;
1023
- itemParam.popCode = popCode;
1024
- }
1025
- else if(itemType == 'popuser'){//弹出选择
1026
- var popCode = "";
1027
- var chooseWay = "checkbox";
1028
- var scopeTable = "";
1029
- if(form.popuserMap){
1030
- if(form.popuserMap.popCode){//新的选人组件选项
1031
- popCode = form.popuserMap.popCode;
1032
- chooseWay = form.popuserMap.chooseWay;
1033
- itemParam.chooseObj = form.popuserMap.chooseObj;
1034
- //表单默认值
1035
- if(form.popuserMap.defaultUserScopeJson){
1036
- itemParam.defaultValue = JSON.parse(form.popuserMap.defaultUserScopeJson);
1037
- }
1038
- }else{
1039
- popCode = form.popuserMap.chooseObj;
1040
- //兼容老数据
1041
- if(popCode.indexOf("user")>-1 || popCode.indexOf("org")>-1){
1042
- popCode="org";
1043
- if(popCode.indexOf("org")==-1){
1044
- itemParam.chooseObj = "userNotOrg";
1045
- }else{
1046
- itemParam.chooseObj = "userAndOrg";
1047
- }
1048
- if(popCode.indexOf("group")>-1){
1049
- popCode = "org,group";
1050
- }
1051
- }else if(popCode.indexOf("group")>-1){
1052
- popCode="group";
1053
- itemParam.chooseObj = "group";
1054
- }
1055
- chooseWay = form.popuserMap.chooseWay;
1056
- }
1057
- if(form.popuserMap.chooseScope){
1058
- if(form.popuserMap.chooseScope == 5){
1059
- itemParam.queryLimit = form.popuserMap.chooseScope;
1060
- itemParam.limitData = getLoginUserInfo().orgId;
1061
- }else if(form.popuserMap.chooseScope == "all"){
1062
-
1063
- }else if(form.popuserMap.chooseScope == "3"){
1064
- itemParam.queryLimit = 3;
1065
- itemParam.limitData = form.popuserMap.chooseScopeData;
1066
- }else{
1067
- itemParam.queryLimit = 5;
1068
- itemParam.limitData = form.popuserMap.chooseScope;
1069
- }
1070
- // else if(form.popuserMap.chooseScope == "4"){//查上级
1071
- // itemParam.queryLimit = "3";
1072
- // itemParam.limitData = form.popuserMap.chooseScopeVal;
1073
- // }
1074
-
1075
-
1076
- }
1077
- scopeTable = form.popuserMap.scopeTable;
1078
- }else{
1079
- popCode = "user";
1080
- chooseWay = "radio";
1081
- scopeTable = form.scopeTableName;
1082
- }
1083
- if(popCode == ''){//如果用户选择的编码为空
1084
- Toast.show({
1085
- type: 'error',
1086
- content:"用户选择组件设置异常!"
1087
- });
1088
- return false;
1089
- }
1090
- itemParam.checkType = chooseWay;
1091
- itemParam.code = popCode;
1092
- itemParam.fieldTable = tableName;
1093
- itemParam.fieldData = key;
1094
- itemParam.scopeTable = scopeTable;
1095
- itemParam.isDelete = true;
1096
- }else if(itemType == 'note'){//说明
1097
- itemParam.explain = form.explain;
1098
- itemParam.explainUrl = form.explainUrl;
1099
- itemParam.explainShow = form.explainShow;
1100
- itemParam.noteFileIds = form.noteFileIds?form.noteFileIds:"";
1101
- itemParam.noteImageIds = form.noteImageIds?form.noteImageIds:"";
1102
- }else if(itemType == 'switch'){//开关
1103
- if(status != '0'){ //非新增
1104
- if(value){
1105
- if(value == '1'){
1106
- value=true;
1107
- }else{
1108
- value=false;
1109
- }
1110
- }else{
1111
- value = false;
1112
- }
1113
- }else{
1114
- var defaultValue=form.defaultValue;
1115
- if(defaultValue){
1116
- if(defaultValue == '1'){
1117
- value=true;
1118
- }else{
1119
- value=false;
1120
- }
1121
- }else{
1122
- value = false;
1123
- }
1124
- }
1125
-
1126
- }else if(itemType == 'positioning'){//地图定位
1127
- }else if(itemType == 'weboffice'){//在线编辑
1128
- var formDataAttr = form.dataAttr;
1129
- itemParam.webofficeDownload = formDataAttr && formDataAttr.webofficeDownload == '0'? false:true;
1130
- if(typeof FlowCommon.dealwithWeboffice === "function" && value!=null && value!=""){
1131
- FlowCommon.dealwithWeboffice(value,function(content){
1132
- itemParam.initIds =content;
1133
- itemParam.value = value;
1134
- //处理特有按钮事件
1135
- if(typeof FlowCommon.dealwithCommonFormParam === "function"){
1136
- itemParam = FlowCommon.dealwithCommonFormParam(itemParam,this);
1137
- itemType = itemParam.itemType;
1138
- }
1139
- //项目开发扩展
1140
- var mobileExt;
1141
- try{
1142
- if (formKey) {
1143
- mobileExt = typeof eval(module + "_" + formKey + "_mobileExt") !== 'undefined'?eval(module + "_" + formKey + "_mobileExt"):null;
1144
- }
1145
- }catch(e){
1146
- // alert("exception: "+e.message);
1147
- }
1148
- if(typeof mobileExt !== 'undefined' && typeof mobileExt["dealwithFormParamExt"] === "function"){
1149
- itemParam = mobileExt["dealwithFormParamExt"](itemParam,this);
1150
- itemType = itemParam.itemType;
1151
- }
1152
- t.setState({
1153
- itemParam: itemParam,
1154
- loaded:true
1155
- },function(){
1156
- t.refs["upload_"+t.state.itemParam.tableName+"_"+t.state.itemParam.key].initData();
1157
-
1158
- //修改样式
1159
- let styleStr = "";
1160
- let objs = itemParam.formStyleObj.contentStyle;
1161
- if (objs != null && objs != '' && objs != undefined && objs.fontFamily != null) {
1162
- styleStr = "font-family: '" + objs.fontFamily + "';"
1163
- + "color:" + objs.color +";"
1164
- + "font-size:" + objs.fontSize + ";"
1165
- + "font-weight:" + objs.fontWeight + ";"
1166
- + "font-style:" + objs.fontStyle;
1167
- }
1168
-
1169
- let placeholderStyleStr = "";
1170
- if (objs != null && objs != '' && objs != undefined && objs.fontFamily != null) {
1171
- placeholderStyleStr = "font-family: '" + objs.fontFamily + "';"
1172
- + "font-size:" + objs.fontSize + ";"
1173
- + "font-weight:" + objs.fontWeight + ";"
1174
- + "font-style:" + objs.fontStyle;
1175
- }
1176
- if(itemParam.fieldId != null && itemParam.fieldId != ""){
1177
- if ($("." + itemParam.fieldId).find(".t-text-field-placeholder").length > 0) {
1178
- $("." + itemParam.fieldId).find(".t-text-field-placeholder").attr("style",placeholderStyleStr);
1179
- }
1180
- if ($("." + itemParam.fieldId).find(".t-select-field-placeholder").length > 0) {
1181
- $("." + itemParam.fieldId).find(".t-select-field-placeholder").attr("style",placeholderStyleStr);
1182
- }
1183
- if ($("." + itemParam.fieldId).find(".t-datetime-field-placeholder").length > 0) {
1184
- $("." + itemParam.fieldId).find(".t-datetime-field-placeholder").attr("style",placeholderStyleStr);
1185
- }
1186
- }
1187
- });
1188
- t.props.onChange(data,t.state.itemParam);
1189
- });
1190
- }else{
1191
- itemParam.value = value;
1192
-
1193
- //处理特有按钮事件
1194
- if(typeof FlowCommon.dealwithCommonFormParam === "function"){
1195
- itemParam = FlowCommon.dealwithCommonFormParam(itemParam,this);
1196
- itemType = itemParam.itemType;
1197
- }
1198
- //项目开发扩展
1199
- var mobileExt;
1200
- try{
1201
- if (formKey) {
1202
- mobileExt = typeof eval(module + "_" + formKey + "_mobileExt") !== 'undefined'?eval(module + "_" + formKey + "_mobileExt"):null;
1203
- }
1204
- }catch(e){
1205
- // alert("exception: "+e.message);
1206
- }
1207
- if(typeof mobileExt !== 'undefined' && typeof mobileExt[module+"_dealwithFormParamExt"] === "function"){
1208
- itemParam = mobileExt[module+"_dealwithFormParamExt"](itemParam,this);
1209
- itemType = itemParam.itemType;
1210
- }
1211
- t.setState({
1212
- itemParam: itemParam,
1213
- loaded:true
1214
- },function(){
1215
- t.refs["upload_"+t.state.itemParam.tableName+"_"+t.state.itemParam.key].initData();
1216
-
1217
- //修改样式
1218
- let styleStr = "";
1219
- let objs = itemParam.formStyleObj.contentStyle;
1220
- if (objs != null && objs != '' && objs != undefined && objs.fontFamily != null) {
1221
- styleStr = "font-family: '" + objs.fontFamily + "';"
1222
- + "color:" + objs.color +";"
1223
- + "font-size:" + objs.fontSize + ";"
1224
- + "font-weight:" + objs.fontWeight + ";"
1225
- + "font-style:" + objs.fontStyle;
1226
- }
1227
-
1228
- let placeholderStyleStr = "";
1229
- if (objs != null && objs != '' && objs != undefined && objs.fontFamily != null) {
1230
- placeholderStyleStr = "font-family: '" + objs.fontFamily + "';"
1231
- + "font-size:" + objs.fontSize + ";"
1232
- + "font-weight:" + objs.fontWeight + ";"
1233
- + "font-style:" + objs.fontStyle;
1234
- }
1235
- if(itemParam.fieldId != null && itemParam.fieldId != ""){
1236
- if ($("." + itemParam.fieldId).find(".t-text-field-placeholder").length > 0) {
1237
- $("." + itemParam.fieldId).find(".t-text-field-placeholder").attr("style",placeholderStyleStr);
1238
- }
1239
- if ($("." + itemParam.fieldId).find(".t-select-field-placeholder").length > 0) {
1240
- $("." + itemParam.fieldId).find(".t-select-field-placeholder").attr("style",placeholderStyleStr);
1241
- }
1242
- if ($("." + itemParam.fieldId).find(".t-datetime-field-placeholder").length > 0) {
1243
- $("." + itemParam.fieldId).find(".t-datetime-field-placeholder").attr("style",placeholderStyleStr);
1244
- }
1245
- }
1246
-
1247
- });
1248
- t.props.onChange(data,t.state.itemParam);
1249
- }
1250
- }else if(itemType == 'html'){
1251
-
1252
- // if(value){
1253
- // value = value.split('_')[0];
1254
- // value = context + '/api/m/plugin/attachment/mobile/viewImage?token=' + token + '&fid='+value;
1255
- // //alert("value==="+value);
1256
- // }
1257
- let updatedHtml = value.replace(/<img\s+([^>]*)src="([^"]*)"/gi, function(match, p1, p2,p3) {
1258
- if(p2 && p2.indexOf("/attachment/">0) && p2.indexOf("?">0)){
1259
- var queryString = p2.split('?')[1];
1260
- var params = new URLSearchParams(queryString);
1261
- var fid = params.get('fid');
1262
- // console.log(fid);
1263
- p2 = context + '/api/m/plugin/attachment/mobile/viewImage?token=' + token + '&fid='+fid;
1264
- // p2 = context + "/attachment/"+p2.split("/attachment/")[1];
1265
- }
1266
- return `<img ${p1}src="${p2}"`;
1267
- });
1268
- // console.log(updatedHtml);
1269
- value = updatedHtml;
1270
- }else if(itemType == 'relaobj') {//相关对象
1271
- // console.log("relaobj===1271");
1272
- // var newVal = this.getRelaObjByRelaId(value);
1273
- // console.log("newVal==="+newVal);
1274
- // // if(value && value!=''){
1275
- // // value = this.getRelaObjByRelaId(value);
1276
- // // }
1277
- if(value && value!=''){
1278
- this.ralaObjChange(itemParam.key,value,"");
1279
- }
1280
- }
1281
- itemParam = t.dealwithLinkField(itemParam,data,status);
1282
- itemParam = t.dealwithRelaField(itemParam,allForm);
1283
- if(itemType != 'weboffice'){
1284
- itemParam.value = value;
1285
- //处理特有按钮事件
1286
- if(typeof FlowCommon.dealwithCommonFormParam === "function"){
1287
- itemParam = FlowCommon.dealwithCommonFormParam(itemParam,this);
1288
- itemType = itemParam.itemType;
1289
- }
1290
- //项目开发扩展
1291
- var mobileExt;
1292
- try{
1293
- if (formKey) {
1294
- mobileExt = typeof eval(module + "_" + formKey + "_mobileExt") !== 'undefined'?eval(module + "_" + formKey + "_mobileExt"):null;
1295
- }
1296
- }catch(e){
1297
- // alert("exception: "+e.message);
1298
- }
1299
- if(typeof mobileExt !== 'undefined' && typeof mobileExt["dealwithFormParamExt"] === "function"){
1300
- itemParam = mobileExt["dealwithFormParamExt"](itemParam,this);
1301
- itemType = itemParam.itemType;
1302
- }
1303
- this.setState({
1304
- itemParam: itemParam,
1305
- loaded:true
1306
- },function(){
1307
- if(itemType == 'popuser'){
1308
- if(status >0 && preCaFields.indexOf(","+uniqueName+",")>=0 && value !=""){
1309
- var bizSn = data.dataId+uniqueName;
1310
- this.refs['selectMember_'+key].initSelectData(bizSn,itemParam.fieldId);
1311
- }else{
1312
- this.refs['selectMember_'+key].initSelectData();
1313
- }
1314
- }
1315
- if(itemType == 'upload' || itemType == 'image' || itemType == 'weboffice'){
1316
- this.refs["upload_"+t.state.itemParam.tableName+"_"+t.state.itemParam.key].initData();
1317
- }
1318
- if(itemType == 'note' ){
1319
- if(itemParam.noteFileIds){
1320
- this.refs["note_file_"+t.state.itemParam.fieldId].initData();
1321
- }
1322
- if(itemParam.noteImageIds){
1323
- this.refs["note_image_"+t.state.itemParam.fieldId].initData();
1324
- }
1325
- }
1326
-
1327
- //修改样式
1328
- let styleStr = "";
1329
- let objs = itemParam.formStyleObj.contentStyle;
1330
- if (objs != null && objs != '' && objs != undefined && objs.fontFamily != null) {
1331
- styleStr = "font-family: '" + objs.fontFamily + "';"
1332
- + "color:" + objs.color +";"
1333
- + "font-size:" + objs.fontSize + ";"
1334
- + "font-weight:" + objs.fontWeight + ";"
1335
- + "font-style:" + objs.fontStyle;
1336
- }
1337
- if (itemType == "text") {
1338
- $("." + itemParam.fieldId).find(".t-text-field-input").attr("style",styleStr);
1339
- $("." + itemParam.fieldId).find(".t-FB1").find("span").attr("style",styleStr);
1340
- }else if (itemType == "select") {
1341
- $("." + itemParam.fieldId).find(".t-FB1").find("span").attr("style",styleStr);
1342
- }else if (itemType == "checkbox") {
1343
- $("." + itemParam.fieldId).find(".t-checkbox-field-value-list").attr("style",styleStr);
1344
- }else if (itemType == 'textarea') {
1345
- $("." + itemParam.fieldId).find(".t-textarea-field-content").attr("style",styleStr);
1346
- }else if (itemType == 'popuser') {
1347
- if (objs != null && objs != '' && objs != undefined && objs.fontFamily != null) {
1348
- styleStr = "font-family: '" + objs.fontFamily + "';"
1349
- + "font-size:" + objs.fontSize + ";"
1350
- + "font-weight:" + objs.fontWeight + ";"
1351
- + "font-style:" + objs.fontStyle;
1352
- }
1353
- $("." + itemParam.fieldId).find(".t-popuser-placeholder").attr("style",styleStr);
1354
- }else if (itemType == 'poppage') {
1355
- if (objs != null && objs != '' && objs != undefined && objs.fontFamily != null) {
1356
- styleStr = "font-family: '" + objs.fontFamily + "';"
1357
- + "font-size:" + objs.fontSize + ";"
1358
- + "font-weight:" + objs.fontWeight + ";"
1359
- + "font-style:" + objs.fontStyle;
1360
- }
1361
- $("." + itemParam.fieldId).find(".t-poppage-placeholder").attr("style",styleStr);
1362
- }else if (itemType == 'datetime') {
1363
- // alert($("." + itemParam.fieldId).find(".t-datetime-field-value").find("span").text());
1364
- $("." + itemParam.fieldId).find(".t-datetime-field-value").find("span").attr("style",styleStr);
1365
- // $("." + itemParam.fieldId).find(".t-datetime-field-value").find("span").attr("style",styleStr);
1366
- }
1367
-
1368
- let placeholderStyleStr = "";
1369
- if (objs != null && objs != '' && objs != undefined && objs.fontFamily != null) {
1370
- placeholderStyleStr = "font-family: '" + objs.fontFamily + "';"
1371
- + "font-size:" + objs.fontSize + ";"
1372
- + "font-weight:" + objs.fontWeight + ";"
1373
- + "font-style:" + objs.fontStyle;
1374
- }
1375
- if(itemParam.fieldId != null && itemParam.fieldId != ""){
1376
- if ($("." + itemParam.fieldId).find(".t-text-field-placeholder").length > 0) {
1377
- $("." + itemParam.fieldId).find(".t-text-field-placeholder").attr("style",placeholderStyleStr);
1378
- }
1379
- if ($("." + itemParam.fieldId).find(".t-select-field-placeholder").length > 0) {
1380
- $("." + itemParam.fieldId).find(".t-select-field-placeholder").attr("style",placeholderStyleStr);
1381
- }
1382
- if ($("." + itemParam.fieldId).find(".t-datetime-field-placeholder").length > 0) {
1383
- $("." + itemParam.fieldId).find(".t-datetime-field-placeholder").attr("style",placeholderStyleStr);
1384
- }
1385
- }
1386
-
1387
- });
1388
-
1389
- this.props.onChange(data,this.state.itemParam);
1390
- }
1391
-
1392
- //CA验签
1393
- if(status >0 && preCaFields.indexOf(","+uniqueName+",")>=0 && itemType != 'popuser'){
1394
- //项目开发扩展
1395
- var mobileExt;
1396
- try{
1397
- if (formKey) {
1398
- mobileExt = typeof eval(module + "_" + formKey + "_mobileExt") !== 'undefined'?eval(module + "_" + formKey + "_mobileExt"):null;
1399
- }
1400
- }catch(e){
1401
- // alert("exception: "+e.message);
1402
- }
1403
- if(typeof mobileExt !== 'undefined' && typeof mobileExt["casigin"] === "function"){
1404
- var isVerifySing = mobileExt["casigin"](itemParam,data,uniqueName,isVerifySingValue);
1405
- itemParam.isVerifySing = isVerifySing;
1406
- this.setState(itemParam);
1407
- }else{
1408
- this.casigin(itemParam,data,uniqueName,isVerifySingValue);
1409
- }
1410
- }
1411
- }
1412
-
1413
- //验签
1414
- casigin(itemParam,data,uniqueName,value){
1415
- if(value && value !=null && value !="" && typeof value!="undefined"){
1416
- let t = this;
1417
- var dataId = data.dataId;
1418
- var param = {};
1419
- param.bizSn = dataId+uniqueName;
1420
- param.relationId = getLoginUserInfo().mobile;
1421
- param.msg = value;
1422
-
1423
- // setTimeout(function(){
1424
- // itemParam.isVerifySing = "1";
1425
- // t.setState({
1426
- // itemParam: itemParam
1427
- // });
1428
- // },1000)
1429
- DB.FlowApproval.verifySign(param).then((content) => {
1430
- var result = content.verifySignRes;
1431
- if(result=='success'){
1432
- itemParam.isVerifySing = "1";
1433
- t.setState({
1434
- itemParam:itemParam
1435
- })
1436
- }
1437
- }).catch((error) => {
1438
- if(error.errorMsg == "签名值与原文不匹配"){
1439
- itemParam.isVerifySing = "2";
1440
- t.setState({
1441
- itemParam:itemParam
1442
- })
1443
- }
1444
- // else{
1445
- // Toast.show({
1446
- // type: 'error',
1447
- // content: error.errorMsg,
1448
- // });
1449
- // }
1450
- });
1451
- }
1452
- }
1453
-
1454
- //处理计算
1455
- dealwithCalculate(calculateExp,fieldArray,formItem,allForm){
1456
- for (var j = 0; j < fieldArray.length; j++) {
1457
- var fieldArrayItem = fieldArray[j];
1458
- var fieldArrayItemValue = "";
1459
- for(var i=0; i<allForm.item.length; i++){
1460
- if(fieldArrayItem == allForm.item[i].uniqueName){
1461
- fieldArrayItemValue = allForm.item[i].defaultValue;
1462
- }
1463
- }
1464
- calculateExp = calculateExp.replace(new RegExp("\\[" + fieldArrayItem + "\\]", "g"), "(" + fieldArrayItemValue + ")");
1465
- }
1466
- calculateExp = calculateExp.replace(new RegExp("rmb\\(", "g"), 'calculate.rmb(');
1467
- var res = "";
1468
- try {
1469
- res = eval(calculateExp);
1470
- } catch (e) {
1471
- res = '';
1472
- }
1473
- return res;
1474
- }
1475
-
1476
- //级联关联字段初始化
1477
- dealwithLinkField(itemParam,data,status){
1478
- if(",radio,checkbox,select,".indexOf("," + itemParam.itemType + ",") != -1){
1479
- if(status == '0'){
1480
- var form = this.props.form;
1481
- if (form.multiItemsLinkField) {
1482
- var selectOptions = [];
1483
- form.multiItemsLinkField.map(function (item) {
1484
- var option = {};
1485
- option.value = item.value;
1486
- option.text = item.name;
1487
- selectOptions.push(option);
1488
- });
1489
- itemParam.selectOptions = selectOptions;
1490
- }
1491
- }else if(status == '1'){
1492
- if(data.mainTblData && data.mainTblData.length>0){
1493
- var selectOptions = [];
1494
- for(var i=0;i<data.mainTblData.length;i++) {
1495
- var item = data.mainTblData[i];
1496
- if (item.key == itemParam.key && item.multiItemsLinkField) {
1497
- var selectOptions = [];
1498
- item.multiItemsLinkField.map(function (multiItems) {
1499
- var option = {};
1500
- option.value = multiItems.value;
1501
- option.text = multiItems.name;
1502
- selectOptions.push(option);
1503
- });
1504
- itemParam.selectOptions = selectOptions;
1505
- }
1506
- }
1507
- }
1508
- }
1509
- }
1510
-
1511
-
1512
- // var linkFieldArray = linkFields[itemParam.fieldId];
1513
- // if(linkFieldArray && linkFieldArray.length>0){
1514
- // var triggerFormFields = "";
1515
- // var conditionArrayJSON = [];
1516
- // linkFieldArray.map(function(linkFieldArrayItem){
1517
- // triggerFormFields+=","+linkFieldArrayItem.formField;
1518
- // var option = {};
1519
- // option.value = linkFieldArrayItem.value;
1520
- // option.formField = linkFieldArrayItem.formField;
1521
- // conditionArrayJSON.push(option);
1522
- // });
1523
- // if(triggerFormFields){
1524
- // triggerFormFields = triggerFormFields.substring(1);
1525
- // }
1526
-
1527
-
1528
-
1529
- // }
1530
- return itemParam;
1531
- }
1532
-
1533
- // 左边补零
1534
- addZero(num) {
1535
- return '' + (num < 10 ? '0' : '') + num;
1536
- }
1537
-
1538
-
1539
- //处理关联字段初始化
1540
- dealwithRelaField(itemParam,allForm){
1541
- console.log("dealwithRelaField===");
1542
- let formRelaFieldMaps = this.props.formRelaFieldMaps;
1543
- var defaultmustFields = [];
1544
- var defaulthideFields = [];
1545
- var fieldControll = this.props.fieldControll;
1546
- var hiddenFields = fieldControll.hiddenFields;
1547
- var mustFieldsStr = fieldControll.mustFields;
1548
- if(hiddenFields && hiddenFields!=''){
1549
- for(var i=0;i<hiddenFields.split(',').length;i++){
1550
- if(hiddenFields.split(',')[i] && hiddenFields.split(',')[i] != ''){
1551
- defaulthideFields.push(hiddenFields.split(',')[i]);
1552
- }
1553
- }
1554
- }
1555
- if(mustFieldsStr && mustFieldsStr!=''){
1556
- for(var i=0;i<mustFieldsStr.split(',').length;i++){
1557
- if(mustFieldsStr.split(',')[i] && mustFieldsStr.split(',')[i] != ''){
1558
- defaultmustFields.push(mustFieldsStr.split(',')[i]);
1559
- }
1560
- }
1561
- }
1562
-
1563
- if(formRelaFieldMaps){
1564
- if(formRelaFieldMaps[itemParam.uniqueName]){
1565
- let data = this.props.data;
1566
- var mainTblData = data.mainTblData;
1567
- var mainTblName = data.mainTblName;
1568
- // var subTbl = data.subTbl;
1569
- var subTbl = allForm;
1570
- var formRelaFieldMapsArray = formRelaFieldMaps[itemParam.uniqueName];
1571
- formRelaFieldMapsArray.map(function(item){
1572
- if(item.triggerTblName == mainTblName){
1573
- mainTblData.map(function(mainTblDataItem){
1574
- if(item.triggerFieldName == mainTblDataItem.key){
1575
- // if(item.triggerFieldVal == mainTblDataItem.value){
1576
- var editType = item.editType;
1577
- if(editType == 'hide'){
1578
- // relaFieldMap["key"]="isHidden";
1579
- if(item.triggerFieldVal == mainTblDataItem.value){
1580
- itemParam.isHidden=true;
1581
- defaulthideFields.push(itemParam.uniqueName);
1582
- console.log("true===="+itemParam.uniqueName);
1583
- }else if(defaulthideFields.indexOf(itemParam.uniqueName)!=-1){
1584
- itemParam.isHidden=true;
1585
-
1586
- }else{
1587
- console.log("false===="+itemParam.uniqueName);
1588
- itemParam.isHidden=false;
1589
- }
1590
- }else if(editType == 'must'){
1591
- // relaFieldMap["key"]="required";
1592
- var triggerFieldValBoolean = false;
1593
- if(item.triggerFieldVal == mainTblDataItem.value){
1594
- itemParam.required=true;
1595
- triggerFieldValBoolean = true;
1596
- }else{
1597
- itemParam.required=false;
1598
- triggerFieldValBoolean = false;
1599
- }
1600
- // var relaFieldNameArray = formRelaFieldMapsObjItem.relaFieldName.split(",");
1601
- // mainTblData.map(function(item){
1602
- // if(item.key==relaFieldNameArray[index]){
1603
- // item.required = triggerFieldValBoolean;
1604
- // }
1605
- // });
1606
- if(item.relaFieldName == mainTblDataItem.key){
1607
- mainTblDataItem.required = triggerFieldValBoolean;
1608
- }
1609
- }else if(editType == 'edit'){
1610
- if(item.triggerFieldVal == mainTblDataItem.value){
1611
- itemParam.readOnly=false;
1612
- }else{
1613
- itemParam.readOnly=true;
1614
- }
1615
- }
1616
- // }
1617
- }
1618
- })
1619
- }else{
1620
- var subTbls = subTbl.item;
1621
- subTbls.map(function(subTblItem){
1622
- if(subTbl.tblName == item.triggerTblName){
1623
- var subTblData = subTblItem;
1624
- subTblData.map(function(mainTblDataItem){
1625
- if(item.triggerFieldName == mainTblDataItem.itemCode){
1626
- // if(item.triggerFieldVal == mainTblDataItem.value){
1627
- var editType = item.editType;
1628
- if(editType == 'hide'){
1629
- // relaFieldMap["key"]="isHidden";
1630
- if(item.triggerFieldVal == mainTblDataItem.value){
1631
- itemParam.isHidden=true;
1632
- }else{
1633
- itemParam.isHidden=false;
1634
- }
1635
- }else if(editType == 'must'){
1636
- // relaFieldMap["key"]="required";
1637
- var triggerFieldValBoolean = false;
1638
- if(item.triggerFieldVal == mainTblDataItem.value){
1639
- itemParam.required=true;
1640
- triggerFieldValBoolean = true;
1641
- }else{
1642
- itemParam.required=false;
1643
- triggerFieldValBoolean = false;
1644
- }
1645
- // var relaFieldNameArray = formRelaFieldMapsObjItem.relaFieldName.split(",");
1646
- // mainTblData.map(function(item){
1647
- // if(item.key==relaFieldNameArray[index]){
1648
- // item.required = triggerFieldValBoolean;
1649
- // }
1650
- // });
1651
- if(item.relaFieldName == mainTblDataItem.itemCode){
1652
- mainTblDataItem.required = triggerFieldValBoolean;
1653
- }
1654
- }else if(editType == 'edit'){
1655
- if(item.triggerFieldVal == mainTblDataItem.value){
1656
- itemParam.readOnly=false;
1657
- }else{
1658
- itemParam.readOnly=true;
1659
- }
1660
- }
1661
- // }
1662
- }
1663
- })
1664
- }
1665
- })
1666
- }
1667
- })
1668
- }
1669
- }
1670
- return itemParam;
1671
- }
1672
-
1673
-
1674
- //从计算表达式中获取涉及的字段
1675
- getFieldArray(exp){
1676
- var fieldArray=[];
1677
- var expProcessStepOne=exp.split('[');
1678
- for(var i=1;i<expProcessStepOne.length;i++){
1679
- var expProcessStepTwo=expProcessStepOne[i].split(']');
1680
- if(expProcessStepTwo.length>0){
1681
- var fieldUniqueName=expProcessStepTwo[0];
1682
- if(fieldUniqueName.length>0){
1683
- fieldArray.push(fieldUniqueName);
1684
- }
1685
- }
1686
- }
1687
- return fieldArray;
1688
- }
1689
-
1690
- componentDidMount() {
1691
- this.loadComponet();
1692
- }
1693
-
1694
- //重新加载组件
1695
- reloadItemParam(itemNew){
1696
- var dataType = this.state.dataType;
1697
-
1698
- if (itemNew != null && itemNew != undefined && Array.isArray(itemNew)) {
1699
- var itemParam = this.state.itemParam;
1700
- var selectText = '';//多选值修改的显示文本
1701
- var checkboxValueHas = false;//是否有多选值修改
1702
- for (var i = 0; i < itemNew.length; i++) {
1703
- var key = itemNew[i].key;
1704
- if (key == 'value') {
1705
- if(itemParam.itemType == 'positioning'){
1706
-
1707
- }else if(itemParam.itemType == 'select' || itemParam.itemType == 'radio'){
1708
- var selectOptions = itemParam.selectOptions;
1709
- var valueHas = false;//判断传过来的值是否有匹配
1710
- selectOptions.map(function(item){
1711
- if(item.value == itemNew[i].value){
1712
- itemParam[key] = item;
1713
- valueHas = true;
1714
- }
1715
- });
1716
- if(!valueHas){
1717
- itemParam[key] = null;
1718
- }
1719
- }else if(itemParam.itemType == 'checkbox'){
1720
- var selectOptions = itemParam.selectOptions;
1721
- var valueHas = false;//判断传过来的值是否有匹配
1722
- var value = itemNew[i].value;
1723
- var valueArray = value.split(",");
1724
- selectOptions.map(function(item1){
1725
- var isHas = false;
1726
- valueArray.map(function(item2){
1727
- if(item1.value == item2){
1728
- item1.checked=true;
1729
- selectText+=item1.text+','
1730
- isHas = true;
1731
- }
1732
- });
1733
- if(!isHas){
1734
- item1.checked=false;
1735
- }
1736
- });
1737
- if(selectText != ''){
1738
- selectText = selectText.substring(0,selectText.length-1);
1739
- }
1740
- checkboxValueHas = true;
1741
- }else{
1742
- itemParam[key] = itemNew[i].value;
1743
- }
1744
- }else {
1745
- itemParam[key] = itemNew[i].value;
1746
- }
1747
- }
1748
- this.setState({
1749
- itemParam: itemParam
1750
- },function(){
1751
- if(checkboxValueHas){
1752
- this.refs["checkbox_" +itemParam.tableName+"_"+ itemParam.key].setState({
1753
- selectedText:selectText
1754
- });
1755
- }
1756
- // if(dataType=='sub'){
1757
- // this.props.reloadItemParam(itemNew,this.state.itemParam);
1758
- // }
1759
- if(itemParam.itemType == 'popuser'){
1760
- this.refs['selectMember_'+itemParam.key].initSelectData();
1761
- }
1762
- });
1763
- }
1764
- }
1765
-
1766
- //获取字段的itemParam属性
1767
- getItemParam(){
1768
- var itemParam = this.state.itemParam;
1769
- return itemParam;
1770
- }
1771
-
1772
-
1773
-
1774
- //检查是否有子
1775
- checkIsHasSub(mainTblData,code){
1776
- var result = false;
1777
- for(var i=0;i<mainTblData.length; i++){
1778
- if(mainTblData[i].key == code){
1779
- result = true;
1780
- }
1781
- }
1782
- return result;
1783
- }
1784
- //处理主表数据
1785
- dealwithData(itemParam,mainTblData,relatedTbl){
1786
- var itemCode = itemParam.key;
1787
- var itemType = itemParam.itemType;
1788
- var value = '';
1789
-
1790
- var formTblId = this.props.allForm.formTblId;
1791
- var fieldTblId = itemParam.tblId;
1792
- var fieldTblName = itemParam.tblName;
1793
- if(formTblId.indexOf(fieldTblId) > 0){
1794
- if(relatedTbl.length>0){
1795
- for(var i=0;i<relatedTbl.length;i++) {
1796
- var item = relatedTbl[i];
1797
- if(item.relatedMainTblName == fieldTblName){
1798
- var relatedMainTblData = item.relatedMainTblData;
1799
- if(relatedMainTblData){
1800
- for(var j=0;j<relatedMainTblData.length;j++) {
1801
- var relatedItem = relatedMainTblData[j];
1802
- if(relatedItem.key == itemCode){
1803
- relatedItem.required = itemParam.required;
1804
- relatedItem.label = itemParam.title;
1805
- relatedItem.inputFormat = itemParam.inputFormat;
1806
- relatedItem.decimalPlace = itemParam.decimalPlace;
1807
- // if(item.showValue){
1808
- // value = item.showValue;
1809
- // item.showValue = null;
1810
- // }else{
1811
- if(relatedItem.value || relatedItem.value == 0){
1812
- value = relatedItem.value;
1813
- }
1814
-
1815
- //}
1816
- if(itemType == 'text' || itemType == 'textarea'){
1817
- if(value){
1818
- relatedItem.value = value+'';
1819
- }
1820
- }
1821
- break;
1822
- }
1823
- }
1824
- }
1825
- }
1826
- };
1827
- return value;
1828
- }else{
1829
- return value;
1830
- }
1831
- }else{
1832
- if(mainTblData.length>0){
1833
- for(var i=0;i<mainTblData.length;i++) {
1834
- var item = mainTblData[i];
1835
- if(item.key==itemCode){
1836
- mainTblData[i].required = itemParam.required;
1837
- mainTblData[i].label = itemParam.title;
1838
- mainTblData[i].inputFormat = itemParam.inputFormat;
1839
- mainTblData[i].decimalPlace = itemParam.decimalPlace;
1840
- // if(item.showValue){
1841
- // value = item.showValue;
1842
- // item.showValue = null;
1843
- // }else{
1844
- if(item.value || item.value == 0){
1845
- value = item.value;
1846
- }
1847
-
1848
- //}
1849
- if(itemType == 'text' || itemType == 'textarea'){
1850
- if(value){
1851
- mainTblData[i].value = value+'';
1852
- }
1853
- }
1854
- break;
1855
- }
1856
- };
1857
- return value;
1858
- }else{
1859
- return value;
1860
- }
1861
- }
1862
- }
1863
-
1864
- //处理子表数据
1865
- dealwithSubForm(subForm,itemParam,subTbl){
1866
- var subFormList = [];
1867
- subForm = {show:true,form:subForm};
1868
- var itemCode = itemParam.key;
1869
- var value = [];
1870
- if(subTbl.length>0){
1871
- for(var i=0;i<subTbl.length;i++) {
1872
- var item = subTbl[i];
1873
- if(item.subTblName==itemCode){
1874
- var subTblData = item.subTblData;
1875
- if(subTblData.length>0){
1876
- for(var j=0;j<subTblData.length;j++) {
1877
- value.push({mainTblData:subTblData[j],mainTblName:itemCode});
1878
- subFormList.push(subForm);
1879
- }
1880
- }else{
1881
- value.push({mainTblData:[],mainTblName:itemCode});
1882
- subFormList.push(subForm);
1883
- }
1884
- break;
1885
- }
1886
- }
1887
- }
1888
- if(subFormList.length>0){
1889
- itemParam.subForm = subFormList;
1890
- }else{
1891
- subFormList.push(subForm);
1892
- itemParam.subForm = subFormList;
1893
- value.push({mainTblData:[],mainTblName:itemCode});
1894
- subTbl.push({subTblData:[],subTblName:itemCode});
1895
- }
1896
- return value;
1897
- }
1898
-
1899
-
1900
- //修改data数据
1901
- editData(itemCode,value,data){
1902
- var itemParam = this.state.itemParam;
1903
- var allForm = this.props.allForm;
1904
- var formTblId = this.props.allForm.formTblId;
1905
- var fieldTblId = itemParam.tblId;
1906
- var fieldTblName = itemParam.tblName;
1907
- //处理操作返回数据
1908
- if(typeof FlowCommon.dealwithReturnData === "function"){
1909
- FlowCommon.dealwithReturnData(itemCode,value,function(itemCode1,value1){
1910
- itemCode=itemCode1;
1911
- value=value1;
1912
- });
1913
- }
1914
- if(Array.isArray(itemCode) && Array.isArray(value)){//数组时
1915
- for(var i=0; i<itemCode.length; i++){
1916
- var mainTblData = data.mainTblData;
1917
- mainTblData.map(function(item,index){
1918
- if(item.key==itemCode[i]){
1919
- item.value = value[i];
1920
- }
1921
- });
1922
- }
1923
-
1924
- }else{
1925
- if(formTblId.indexOf(fieldTblId)>0){
1926
- var relatedTbl = data.relatedTbl;
1927
- for(var i=0; i<relatedTbl.length; i++){
1928
- var item = relatedTbl[i];
1929
- if(item.relatedMainTblName == fieldTblName){
1930
- var relatedMainTblData = item.relatedMainTblData;
1931
- for(var j=0; j<relatedMainTblData.length; j++){
1932
- if(relatedMainTblData[j].key == itemCode){
1933
- relatedMainTblData[j].value = value;
1934
- }
1935
- }
1936
- }
1937
- }
1938
- }else{
1939
- var mainTblData = data.mainTblData;
1940
- mainTblData.map(function(item,index){
1941
- if(item.key==itemCode){
1942
- item.value = value;
1943
- }
1944
- });
1945
- }
1946
-
1947
- }
1948
-
1949
- return data;
1950
- }
1951
-
1952
- //文本
1953
- handleTextChange(item, newValue) {
1954
- var inputFormat = item.inputFormat;
1955
- var decimalPlace = parseInt(item.decimalPlace);
1956
- var length = item.maxlength;
1957
- var patrn = /^-?\d+(\.\d+)?$/;
1958
- if(newValue !== '' && newValue != '-'){
1959
- /* var validAttr=item['validAttr'];
1960
- if(validAttr!=null && validAttr.length>0){
1961
- for(var va=0;va<validAttr.length;va++){
1962
- var regular=validAttr[va]['regular'];
1963
- var tips=validAttr[va]['tips'];
1964
- var reg=new RegExp(regular.slice(1,-1),"g");
1965
- if(!reg.test(newValue)){
1966
- Toast.show({
1967
- type: 'error',
1968
- content:item.title+':'+tips
1969
- });
1970
- return false;
1971
- }
1972
-
1973
- }
1974
- }*/
1975
- if(this.checkEmoji(newValue)){
1976
- Toast.show({
1977
- type: 'error',
1978
- content:"请输入非表情字符"
1979
- });
1980
- return false;
1981
- }
1982
-
1983
- if(typeof length!="undefined" && length!=null && length!="" && inputFormat=="char"){
1984
- if(newValue.length>length){
1985
- Toast.show({
1986
- type: 'error',
1987
- content:item.title+"超过最大长度"+length
1988
- });
1989
- return false;
1990
- }
1991
-
1992
- }
1993
- if(inputFormat == 'float'){
1994
- if(!Number(newValue) && !patrn.test(Number(newValue))){
1995
- Toast.show({
1996
- type: 'error',
1997
- content:item.title+"应为小数"
1998
- });
1999
- return false;
2000
- }else{
2001
- var newValueArray = newValue.split(".");
2002
- if(newValueArray.length>1){
2003
- if(newValueArray[1].length>decimalPlace){
2004
- Toast.show({
2005
- type: 'error',
2006
- content:"小数应小于等于"+decimalPlace
2007
- });
2008
- return false;
2009
- }
2010
- }
2011
- }
2012
- }else if(inputFormat == 'int'){
2013
- if(!/^-?[0-9]\d*$/.test(newValue)){
2014
- Toast.show({
2015
- type: 'error',
2016
- content:item.title+"应为整数"
2017
- });
2018
- return false;
2019
- }
2020
- }
2021
- }
2022
- var name = item.key;
2023
- var data = this.props.data;
2024
- data = this.editData(name,newValue,data);
2025
- var itemParam = this.state.itemParam;
2026
- itemParam.value = newValue;
2027
- this.setState({
2028
- itemParam: itemParam
2029
- });
2030
-
2031
- this.props.onChange(data,itemParam);
2032
- }
2033
-
2034
- handleTextFocus(item, newValue) {
2035
- if(newValue !== '' && newValue != '-'){
2036
- var type = item.dataAttr.dataSrc;
2037
- if(type == "1"){
2038
- if(newValue.indexOf("%")>=0){
2039
- newValue = parseFloat(newValue)/100;
2040
- }
2041
- }else if(type == "2"){
2042
- if(newValue.indexOf(",")>=0){
2043
- newValue = newValue.replace(/,/g,"");
2044
- }
2045
- }
2046
- }
2047
- var itemParam = this.state.itemParam;
2048
- itemParam.value = newValue;
2049
- this.setState({
2050
- itemParam: itemParam
2051
- });
2052
-
2053
- }
2054
-
2055
- handleTextBlur(item, newValue) {
2056
- if(newValue !== '' && newValue != '-'){
2057
- var type = item.dataAttr.dataSrc;
2058
- if(type == "1"){
2059
- newValue = parseFloat(newValue)*100+"%";
2060
- }else if(type == "2"){
2061
- newValue = this.toThousands(parseFloat(newValue));
2062
- }
2063
-
2064
- }
2065
- var itemParam = this.state.itemParam;
2066
- itemParam.value = newValue;
2067
- this.setState({
2068
- itemParam: itemParam
2069
- });
2070
- }
2071
-
2072
- //千分位
2073
- toThousands(num) {
2074
- var result = '', counter = 0;
2075
- num = (num || 0).toString();
2076
- for (var i = num.length - 1; i >= 0; i--) {
2077
- counter++;
2078
- result = num.charAt(i) + result;
2079
- if (!(counter % 3) && i != 0) { result = ',' + result; }
2080
- }
2081
- return result;
2082
- }
2083
-
2084
- //校验emoji表情
2085
- checkEmoji(content){
2086
- var result = false;
2087
- var regStr = /(\ud83c[\udf00-\udfff])|(\ud83d[\udc00-\ude4f\ude80-\udeff])|[\u2600-\u2B55]/g;
2088
- if (regStr.test(content)) {
2089
- result=true;
2090
- }
2091
- return result;
2092
- }
2093
-
2094
-
2095
- //多行文本
2096
- handleTextAreaChange(name, newValue) {
2097
- var data = this.props.data;
2098
- data = this.editData(name,newValue,data);
2099
- var itemParam = this.state.itemParam;
2100
- var length = itemParam.maxlength;
2101
-
2102
- if(this.checkEmoji(newValue)){
2103
- Toast.show({
2104
- type: 'error',
2105
- content:"请输入非表情字符"
2106
- });
2107
- return false;
2108
- }
2109
- if(typeof length!="undefined" && length!=null && length!="" && itemParam.fieldType=='char'){
2110
- if(newValue.length>length){
2111
- Toast.show({
2112
- type: 'error',
2113
- content:itemParam.title+"超过最大长度"+length
2114
- });
2115
- return false;
2116
- }
2117
-
2118
- }
2119
- itemParam.value = newValue;
2120
- this.setState({
2121
- itemParam: itemParam
2122
- });
2123
-
2124
- this.props.onChange(data,this.state.itemParam);
2125
- }
2126
-
2127
- //多选
2128
- checkboxChange(code,realType,value) {
2129
- var data = this.props.data;
2130
- var valueStr = '';
2131
- var valueArray = [];
2132
- if(realType == "select"){
2133
- for(var i=0;i<value.length;i++){
2134
- valueArray.push(value[i].value);
2135
- }
2136
- if(valueArray.length){
2137
- valueStr = JSON.stringify(valueArray);
2138
- }
2139
- }else{
2140
- for(var i=0;i<value.length;i++){
2141
- valueStr += value[i].value+",";
2142
- }
2143
- if(valueStr!=''){
2144
- valueStr = valueStr.substring(0,valueStr.length-1);
2145
- }
2146
- }
2147
-
2148
-
2149
- data = this.editData(code,valueStr,data);
2150
- // var itemParam = this.state.itemParam;
2151
- // itemParam.selectOptions = radioData;
2152
- // this.setState({
2153
- // itemParam: itemParam
2154
- // });
2155
- this.props.onChange(data,this.state.itemParam);
2156
- //console.log(value, index, data);
2157
- }
2158
-
2159
- //单选
2160
- radioChange(code,value) {
2161
- var data = this.props.data;
2162
- data = this.editData(code,value,data);
2163
- // var itemParam = this.state.itemParam;
2164
- // itemParam.selectOptions = radioData;
2165
- // this.setState({
2166
- // itemParam: itemParam
2167
- // });
2168
- this.props.onChange(data,this.state.itemParam);
2169
- //console.log(value, index, data);
2170
- }
2171
-
2172
- //下拉
2173
- selectChange(code,value){
2174
- if(value){
2175
- var data = this.props.data;
2176
- var selectValue = value.value;
2177
- data = this.editData(code,selectValue,data);
2178
- var itemParam = this.state.itemParam;
2179
- itemParam.value = value;
2180
- this.setState({
2181
- itemParam: itemParam
2182
- });
2183
- this.props.onChange(data,itemParam);
2184
- }
2185
- }
2186
-
2187
- //时间
2188
- handleChangeDate(code,value){
2189
- var data = this.props.data;
2190
- var itemParam = this.state.itemParam;
2191
- var dateFormat = itemParam.dateFormat;
2192
- var dateFormatShow = itemParam.dateFormatShow;
2193
- if(dateFormat == "DateInterval"){
2194
- if(value.startDate && value.endDate){
2195
- var dateStr = this.dateFormat(value,dateFormat,dateFormatShow);
2196
- data = this.editData(code,dateStr,data);
2197
- }
2198
- }else{
2199
- var dateStr = this.dateFormat(value.value,dateFormat);
2200
- if(dateFormat == "YMDT"){//年月日,上下午修改数据
2201
- value.value = new Date(dateStr.replace(/-/g,"/")).getTime();
2202
- }
2203
- data = this.editData(code,dateStr,data);
2204
- }
2205
-
2206
- itemParam.value = value;
2207
- this.setState({
2208
- itemParam: itemParam
2209
- });
2210
- this.props.onChange(data,this.state.itemParam);
2211
- }
2212
-
2213
- handleCalendarFieldFill(key,value){
2214
- if(value && value.startDate){
2215
- $("#"+key).find(".t-calendar-field-value:eq(0)").click();
2216
- }else{
2217
- $("#"+key).find(".t-calendar-field-placeholder:eq(0)").click();
2218
- }
2219
- }
2220
-
2221
- //时间步进
2222
- handleChangeDateStep(code,value){
2223
- var data = this.props.data;
2224
- var itemParam = this.state.itemParam;
2225
- var dateFormat = itemParam.dateFormat;
2226
-
2227
- var dateStr = this.dateFormat(value.value,dateFormat);
2228
- data = this.editData(code,dateStr,data);
2229
- itemParam.value = value;
2230
- itemParam.selectValue = dateStr;
2231
- this.setState({
2232
- itemParam: itemParam
2233
- });
2234
- this.props.onChange(data,this.state.itemParam);
2235
- }
2236
-
2237
- showSlot(id) {
2238
- this[id].show();
2239
- }
2240
-
2241
- //时间转换
2242
- dateFormat(date,formatStr,dateFormatShow){
2243
- if(date){
2244
- if(formatStr == "DateInterval"){
2245
- var startDate = new Date(date.startDate);
2246
- var endDate = new Date(date.endDate);
2247
-
2248
- var startYear = startDate.getFullYear();
2249
- var startMonth = this.dealwithDate(startDate.getMonth()+1);
2250
- var startDates = this.dealwithDate(startDate.getDate());
2251
-
2252
- var endYear = endDate.getFullYear();
2253
- var endMonth = this.dealwithDate(endDate.getMonth()+1);
2254
- var endDates = this.dealwithDate(endDate.getDate());
2255
-
2256
- if(dateFormatShow == "dayWithSlot"){
2257
- return startYear+'-'+startMonth+'-'+startDates+' - '+endYear+'-'+endMonth+'-'+endDates;
2258
- }else{
2259
- var startHour = this.dealwithDate(startDate.getHours());
2260
- var startMin = this.dealwithDate(startDate.getMinutes());
2261
- var startSecond = this.dealwithDate(startDate.getSeconds());
2262
-
2263
- var endHour = this.dealwithDate(endDate.getHours());
2264
- var endMin = this.dealwithDate(endDate.getMinutes());
2265
- var endSecond = this.dealwithDate(endDate.getSeconds());
2266
-
2267
- return startYear+'-'+startMonth+'-'+startDates+" "+startHour+":"+startMin+":"+startSecond+' - '+endYear+'-'+endMonth+'-'+endDates+" "+endHour+":"+endMin+":"+endSecond;
2268
- }
2269
-
2270
- }else{
2271
- date = new Date(date);
2272
- var year = date.getFullYear();
2273
- var month = this.dealwithDate(date.getMonth()+1);
2274
- var dates = this.dealwithDate(date.getDate());
2275
- if(dateFormatShow){
2276
- if(dateFormatShow == "zhDate"){
2277
- return year+'年'+month+'月'+dates+'日';
2278
- }else if(dateFormatShow == "AmPmDate"){
2279
- var hour = this.dealwithDate(date.getHours());
2280
- if(hour == "11"){
2281
- return year+'年'+month+'月'+dates+'日 上午';
2282
- }else{
2283
- return year+'年'+month+'月'+dates+'日 下午';
2284
- }
2285
- }
2286
- }
2287
- if(formatStr =='YMD'){//年月日
2288
- return year+'-'+month+'-'+dates;
2289
- }else if(formatStr =='YMDHM'){//年月日时分
2290
- var hour = this.dealwithDate(date.getHours());
2291
- var min = this.dealwithDate(date.getMinutes());
2292
- return year+'-'+month+'-'+dates+' '+hour+':'+min;
2293
- }else if(formatStr =='Y'){//年
2294
- return year;
2295
- }else if(formatStr =='YM'){//年月
2296
- return year+'-'+month;
2297
- }else if(formatStr =='MD'){//月日
2298
- return month+'-'+dates;
2299
- }else if(formatStr =='YMDT'){//年月日,上下午
2300
- var hour = this.dealwithDate(date.getHours());
2301
- var min = this.dealwithDate(date.getMinutes());
2302
- if(hour == "09"){
2303
- return year+'-'+month+'-'+dates+' 11:59:59';
2304
- }else if(hour == "18"){
2305
- return year+'-'+month+'-'+dates+' 23:59:59';
2306
- }else{
2307
- return year+'-'+month+'-'+dates+' '+hour+':'+min;
2308
- }
2309
- }else{
2310
- return '';
2311
- }
2312
- }
2313
-
2314
- }else{
2315
- return null;
2316
- }
2317
- }
2318
-
2319
- dealwithDate(date){
2320
- if(date>=10){
2321
- return date;
2322
- }else{
2323
- return '0'+date;
2324
- }
2325
- }
2326
-
2327
-
2328
- //附件、图片
2329
- handleChangePic(code,data,isInitIds) {
2330
- var itemParam = this.state.itemParam;
2331
- itemParam.value = data;
2332
- itemParam.initIds = "";
2333
- this.setState({
2334
- itemParam: itemParam
2335
- });
2336
- if(isInitIds != '1'){
2337
- //处理上传附件
2338
- let fileids = '';
2339
- data.map(function(item){
2340
- fileids += item.id+",";
2341
- });
2342
- if(fileids != ''){
2343
- fileids = fileids.substring(0,fileids.length-1);
2344
- }
2345
- var data = this.props.data;
2346
- fileids = fileids.replace(/,/g,"|");
2347
- data = this.editData(code,fileids,data);
2348
- this.props.onChange(data,this.state.itemParam);
2349
- }
2350
-
2351
- }
2352
-
2353
-
2354
- //webOffice
2355
- handleChangeOffice(code,data,isInitIds) {
2356
- var itemParam = this.state.itemParam;
2357
- itemParam.value = data;
2358
- itemParam.initIds = "";
2359
- this.setState({
2360
- itemParam: itemParam
2361
- });
2362
- if(isInitIds != '1' && typeof isInitIds != 'undefined'){
2363
- let fileids = '';
2364
- data.map(function(item){
2365
- fileids += item.id+",";
2366
- });
2367
- if(fileids != ''){
2368
- fileids = fileids.substring(0,fileids.length-1);
2369
- }
2370
- var data = this.props.data;
2371
- fileids = fileids.replace(/,/g,"|");
2372
- data = this.editData(code,fileids,data);
2373
- this.props.onChange(data,this.state.itemParam);
2374
- }
2375
-
2376
- }
2377
-
2378
- //弹出选择
2379
- popageChange(code,newValue){
2380
- var data = this.props.data;
2381
- data = this.editData(code,newValue,data);
2382
- var itemParam = this.state.itemParam;
2383
- itemParam.value = newValue;
2384
- this.setState({
2385
- itemParam: itemParam
2386
- });
2387
- this.props.onChange(data,this.state.itemParam);
2388
- }
2389
-
2390
- //用户选择
2391
- popuserChange(code,newValue,oldValue){
2392
- console.log("===popuserChange===");
2393
- let t = this;
2394
- var userId = "";
2395
- for(var i=0;i<newValue.length;i++){
2396
- if(newValue[i] && newValue[i].scopeType=='user'){
2397
- userId = newValue[i].scopeValue;
2398
- }
2399
- }
2400
- //alert(JSON.stringify(newValue));
2401
- var data = this.props.data;
2402
- if(newValue){
2403
- if(newValue.length==0){
2404
- newValue = "";
2405
- }else{
2406
- newValue = JSON.stringify(newValue);
2407
- }
2408
- }else{
2409
- newValue = "";
2410
- }
2411
- var formItem = data.formItem;
2412
- var mainTblData = data.mainTblData;
2413
- if(userId){
2414
- // t.refs[mainTblName+"_"+itemExt.key].reloadItemParam(itemExt.value);
2415
- DB.FlowModuleAPI.getUserInfo({userId:userId}).then((content) => {
2416
- if (content && content.length>0) {
2417
- var userInfo = content[0];
2418
- for(var i=0;i<formItem.length;i++){
2419
- var item = formItem[i];
2420
- if(item.dataAttr && item.dataAttr.relatepopuserField && item.dataAttr.relatepopuserField == code){
2421
- var relatepopuservalue = item.dataAttr.relatepopuserValue;
2422
- for(var j=0;j<mainTblData.length;j++){
2423
- var mainTblDataItem = mainTblData[j];
2424
- if(mainTblDataItem.key == item.itemCode){
2425
- if(relatepopuservalue=='relateuserorg'){
2426
- mainTblDataItem.value = userInfo.orgName;
2427
- }else if(relatepopuservalue=='relateusercode'){
2428
- mainTblDataItem.value = userInfo.userCode;
2429
- }else if(relatepopuservalue=='relateusertelphone'){
2430
- mainTblDataItem.value = userInfo.telephone;
2431
- }else if(relatepopuservalue=='relateuserdutyname'){
2432
- mainTblDataItem.value = userInfo.dutyName;
2433
- }else if(relatepopuservalue=='relateusercardid'){
2434
- mainTblDataItem.value = userInfo.cardId;
2435
- }
2436
- t.props.reloadItemParam(data.mainTblName+"_"+mainTblDataItem.key,mainTblDataItem.value);
2437
- }
2438
-
2439
-
2440
- }
2441
- }
2442
-
2443
- }
2444
- } else {
2445
-
2446
- }
2447
- }).catch((error) => {
2448
- Toast.show({
2449
- type: 'error',
2450
- content: error.errorMsg,
2451
- });
2452
- });
2453
-
2454
-
2455
- }
2456
-
2457
- data = this.editData(code,newValue,data);
2458
- var itemParam = this.state.itemParam;
2459
- itemParam.value = newValue;
2460
- this.setState({
2461
- itemParam: itemParam
2462
- });
2463
- this.props.onChange(data,itemParam);
2464
- // var json = [
2465
- // {"scopeValue":'113',"scopeType":"user","scopeName":"葛萌"}
2466
- // ];
2467
-
2468
- }
2469
-
2470
- //相关对象
2471
- ralaObjChange(code,newValue,oldValue){
2472
- console.log("===ralaObjChange===");
2473
- let t = this;
2474
- var userId = "";
2475
-
2476
- var data = this.props.data;
2477
- if(newValue){
2478
- DB.FlowModuleAPI.getRelaObjByRelaId({relaId:newValue
2479
- }).then((content) => {
2480
- newValue = JSON.stringify(content);
2481
- data = this.editData(code,newValue,data);
2482
- var itemParam = this.state.itemParam;
2483
- itemParam.value = newValue;
2484
- this.setState({
2485
- itemParam: itemParam
2486
- });
2487
- this.props.onChange(data,itemParam);
2488
-
2489
- }).catch((error) => {
2490
- Toast.show({
2491
- type: 'error',
2492
- content: error.errorMsg,
2493
- });
2494
- });
2495
- }
2496
-
2497
-
2498
-
2499
-
2500
- }
2501
-
2502
- //开关切换方法
2503
- handleWitchChange(code,newValue){
2504
- var data = this.props.data;
2505
- var itemParam = this.state.itemParam;
2506
- itemParam.value = newValue;
2507
-
2508
- var realValue = newValue?'1':'0';
2509
- data = this.editData(code,realValue,data);
2510
-
2511
- this.setState({
2512
- itemParam: itemParam
2513
- });
2514
- this.props.onChange(data,itemParam);
2515
- }
2516
-
2517
- //定位方法
2518
- handlePositionChange(code,newValue){
2519
- var data = this.props.data;
2520
- var itemParam = this.state.itemParam;
2521
- itemParam.value = newValue;
2522
-
2523
- data = this.editData(code,newValue,data);
2524
-
2525
- this.setState({
2526
- itemParam: itemParam
2527
- });
2528
- this.props.onChange(data,this.state.itemParam);
2529
- }
2530
-
2531
-
2532
- //修改审批意见
2533
- changeSpyj3(newValue) {
2534
- if(this.checkEmoji(newValue)){
2535
- Toast.show({
2536
- type: 'error',
2537
- content:"请输入非表情字符"
2538
- });
2539
- return false;
2540
- }
2541
- /* if(newValue=''){
2542
- Toast.show({
2543
- type: 'error',
2544
- content: '意见不能为空!',
2545
- });
2546
- return false;
2547
- }*/
2548
- if(newValue.length>2000){
2549
- newValue=newValue.substring(0,2000);
2550
- }
2551
- this.setState({
2552
- spyj: newValue,
2553
- });
2554
- this.props.newspyj.content=newValue;
2555
- }
2556
-
2557
- //修改审批意见
2558
- changeSpyj4(t,newValue) {
2559
- var attachId = "";
2560
- if(newValue && newValue.length>0){
2561
- for(var i=0;i<newValue.length;i++){
2562
- attachId+=","+newValue[i].id;
2563
- }
2564
- }
2565
- if(attachId!=""){
2566
- attachId = attachId.substring(1);
2567
- }
2568
- this.props.newspyj.attachId=attachId;
2569
- this.setState({
2570
- commentInitList: newValue,
2571
- });
2572
- }
2573
-
2574
- //矩阵评分
2575
- changeScale(value) {
2576
-
2577
- var keyNo = this.props.keyNo;
2578
- var list = this.props.data[keyNo].list;
2579
- this.props.data[keyNo].answer = list[value - 1].id;
2580
- this.props.data[keyNo].itemNo = value;
2581
- this.props.data[keyNo].isAnswer = 1;
2582
- this.props.onChange(this.props.data);
2583
- }
2584
-
2585
- //矩阵变量
2586
- changeMulScale(no,value){
2587
- var keyNo = this.props.keyNo;
2588
- var list = this.props.data[keyNo].answer[no].list;
2589
- this.props.data[keyNo].answer[no].value = list[value - 1].optionOrder;
2590
- this.props.data[keyNo].answer[no].itemNo = parseInt(list[value - 1].optionOrder)+1;
2591
- this.props.data[keyNo].answer[no].fraction = list[value - 1].optionScore;
2592
- this.props.data[keyNo].answer[no].isAnswer = 1;
2593
- this.setState({
2594
- data:this.props.data[keyNo]
2595
- });
2596
- this.props.onChange(this.props.data);
2597
- }
2598
-
2599
-
2600
- //明细删除
2601
- detailDel(i){
2602
- var itemParam = this.state.itemParam;
2603
- var subForm = itemParam.subForm;
2604
- subForm.splice(i,1);
2605
- itemParam.value.splice(i,1);
2606
- // itemParam.subForm = subForm;
2607
- var data = this.props.data;
2608
- var subTblList = data.subTbl;
2609
- for(var i=0; i<subTblList.length; i++){
2610
- if(subTblList[i].subTblName == itemParam.key){
2611
- subTblList[i].subTblData.splice(i,1);
2612
- }
2613
- }
2614
- this.setState({
2615
- itemParam:itemParam,
2616
- });
2617
- this.props.onChange(data,this.state.itemParam);
2618
- }
2619
-
2620
-
2621
- //添加明细
2622
- detailAdd(){
2623
- var form = this.props.form; //表单元素
2624
- var data = this.props.data; //表单数据
2625
- var subTbl = data.subTbl;
2626
- var formItem = form.children;
2627
- //var subForm = {show:true,form:formItem};
2628
- var itemParam = this.state.itemParam;
2629
- //itemParam.subForm.push(subForm);
2630
-
2631
- this.addSubForm(formItem,itemParam,subTbl);
2632
- data.subTbl = subTbl;
2633
- this.setState({
2634
- itemParam:itemParam,
2635
- });
2636
- this.props.onChange(data,this.state.itemParam);
2637
- }
2638
-
2639
- //新增明细处理数据
2640
- addSubForm(subForm,itemParam,subTbl){
2641
- var subFormList = itemParam.subForm;
2642
- subForm = {show:true,form:subForm};
2643
- var itemCode = itemParam.key;
2644
- var value = itemParam.value;
2645
- subFormList.push(subForm);
2646
- itemParam.subForm = subFormList;
2647
- value.push({mainTblData:[],mainTblName:itemCode});
2648
- return value;
2649
- }
2650
-
2651
- getDetai(){
2652
- let t =this;
2653
- var subForm = this.state.itemParam.subForm;
2654
- return subForm.map((item, i) => {
2655
- return (
2656
- <div className="dd-drug-list">
2657
- <HBox className="t-BCf dd-bottom-border">
2658
- <Box className="t-LH44 t-PL16 t-PR2"><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>
2659
- <Box flex={1} className="t-LH46 t-FC9" onClick={this.detailShow.bind(this,i,item.show)}>{i+1}</Box>
2660
- <Box data-key={i} onClick={this.detailDel.bind(this,i)} className='t-P16 theme-color'>删除</Box>
2661
- </HBox>
2662
- <div className={item.show ?"":"t-DN"}>
2663
- {
2664
- item.form.map((item2, j) => {
2665
- return (
2666
- <Form keyNo={j} dataType="sub" module={t.state.module} status={t.state.status} form={item2} data={t.state.itemParam.value[i]} fieldControll={t.state.fieldControll} onChange={this.changeSub.bind(this,this.state.itemParam,i)}/>
2667
- )}
2668
- )
2669
- }
2670
- </div>
2671
- </div>
2672
- )
2673
- });
2674
- }
2675
-
2676
- //预览附件
2677
- viewFile(file) {
2678
- var id = file.id;
2679
- var fileExt = file.fileExt;
2680
- downloadFile(id,'android',fileExt);
2681
- }
2682
-
2683
- clickPop(){
2684
- if(!this.state.itemParam.readOnly){
2685
- Toast.show({
2686
- content:"移动端暂不支持该类型编辑"
2687
- });
2688
- return false;
2689
- }
2690
- }
2691
-
2692
- //说明点击
2693
- noticeClick(url){
2694
- if(url != ''){
2695
- pageSkipDirectly(url);
2696
- }
2697
- }
2698
-
2699
-
2700
- //检查是否有html标签
2701
- checkHtml(htmlStr) {
2702
- var reg = /<[^>]+>/g;
2703
- return reg.test(htmlStr);
2704
- }
2705
-
2706
-
2707
-
2708
- //选择是否保存常用语
2709
- selectSavePhrase(data){
2710
- this.setState({
2711
- savePhrase:data
2712
- });
2713
- }
2714
-
2715
- //选择常用语
2716
- selectCommonwords() {
2717
- let t = this;
2718
- t.setState({ fold: !this.state.fold });
2719
- // let phraseListNow = t.state.phraseList;
2720
- // if (phraseListNow.length > 0) {
2721
- // t.refs.slotCommonwords.show();
2722
- // } else {
2723
- if(this.state.fold){
2724
- //获取常用语列表
2725
- DB.FlowModuleAPI.getPersonalPhrase({
2726
- }).then((content) => {
2727
- if (content.length > 0) {
2728
- var phraseList1 = [];
2729
- content.map(function (item) {
2730
- phraseList1.push({ text: item.content, value: item.content });
2731
- });
2732
- // var phraseList2 = [];
2733
- // phraseList2.push(phraseList1);
2734
- t.setState({
2735
- // phraseList: phraseList2,
2736
- phraseListNew: phraseList1
2737
- }, function () {
2738
- // t.refs.slotCommonwords.show();
2739
- });
2740
- } else {
2741
- Toast.show({
2742
- content: '暂无常用语',
2743
- });
2744
- }
2745
- }).catch((error) => {
2746
- Toast.show({
2747
- type: 'error',
2748
- content: error.errorMsg,
2749
- });
2750
- });
2751
-
2752
- }
2753
- // }
2754
-
2755
-
2756
- }
2757
-
2758
- //常用语设置跳转
2759
- skipToCommonwordsSet(){
2760
- this.setState({ fold: true });
2761
- pageSkip('mobile/modules/mobileoffice/dist/index.html','#/hospitalmanage/personal/setting/listPhrase')
2762
- }
2763
-
2764
- phraseItemClick(commonwords){
2765
- let spyj = this.state.spyj;
2766
- this.setState({
2767
- spyj:spyj+commonwords
2768
- });
2769
- this.props.newspyj.content=spyj+commonwords;
2770
- }
2771
- //切换修改常用语
2772
- handleChangeCommonwords(value) {
2773
- // 改变了选中项
2774
- this.setState({
2775
- choosePhrase:value,
2776
- });
2777
- }
2778
-
2779
- //确认选择语
2780
- handleConfirmCommonwords(commonwords){
2781
- let spyj = this.state.spyj;
2782
- this.setState({
2783
- spyj:spyj+commonwords[0].text
2784
- });
2785
- this.props.newspyj.content=spyj+commonwords[0].text;
2786
- }
2787
-
2788
- //获取相关对象
2789
- getRelaObjByRelaId(relaId) {
2790
- let t = this;
2791
- if(relaId){
2792
- //获取常用语列表
2793
- DB.FlowModuleAPI.getRelaObjByRelaId({relaId:relaId
2794
- }).then((content) => {
2795
- return JSON.stringify(content);
2796
- }).catch((error) => {
2797
- Toast.show({
2798
- type: 'error',
2799
- content: error.errorMsg,
2800
- });
2801
- });
2802
-
2803
- }
2804
- }
2805
-
2806
- render() {
2807
- const t = this;
2808
- const radioFieldProps = {
2809
- groupListArgument: {
2810
- lineIndent: 15,
2811
- itemIndent: 15,
2812
- },
2813
- groupListFlag: true,
2814
- className:"dd-ques-title",
2815
- iconPosition: 'left',
2816
- };
2817
- const CheckboxFieldProps = {
2818
- // onChange(value) {
2819
- // var keyNo = t.props.keyNo;
2820
- // var answer = '';
2821
- // var fraction = '';
2822
- // for (var i = 0; i < value.length; i++) {
2823
- // answer += value[i].value + ",";
2824
- // fraction += value[i].fraction + ",";
2825
- // }
2826
- // if (answer != '') {
2827
- // answer = answer.substring(0, answer.length - 1);
2828
- // }
2829
- // if (fraction != '') {
2830
- // fraction = fraction.substring(0, fraction.length - 1);
2831
- // }
2832
- // t.props.data[keyNo].answer = answer;
2833
- // t.props.data[keyNo].fraction = fraction;
2834
- // t.props.data[keyNo].isAnswer = 1;
2835
- // t.props.onChange(t.props.data);
2836
- // //console.log(value, index, data);
2837
- // },
2838
- groupListArgument: {
2839
- lineIndent: 15,
2840
- itemIndent: 15,
2841
- },
2842
- groupListFlag: true,
2843
- className:"dd-ques-title",
2844
- mode:"slot"
2845
- };
2846
- if(this.props.dataType == "sub" && this.state.loaded==true ){
2847
- // if(this.props.data.subFormRefresh == true && this.state.loaded==true ){
2848
-
2849
- // }
2850
- // var itemParam = this.state.itemParam;
2851
- // var data = this.props.data;
2852
- // var mainTblData = data.mainTblData;//主表数据
2853
- // var value = this.dealwithData(itemParam,mainTblData);
2854
- // itemParam.value = value;
2855
- // this.setState({
2856
- // itemParam:itemParam
2857
- // })
2858
- }
2859
- return (
2860
- <div className={this.state.itemParam.isHidden?"t-DN":""}>
2861
- { this.state.itemParam.itemType == 'text' ?
2862
- <Group.List borderTopNone={true}>
2863
- {
2864
- this.state.itemParam.dataAttr && this.state.itemParam.dataAttr.dataSrc=='2' && this.state.itemParam.dataAttr.fromMacro.value=='currentUserSignPic'?
2865
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
2866
- <Group.List borderTopNone={true}>
2867
- <div className="t-W100" id={t.state.prefixName+"_"+t.state.itemParam.key}>
2868
- <Field label={t.state.itemParam.title} required={t.state.itemParam.required} layout="h" multiLine>
2869
- <img className="t-H64 t-PR5" src={t.state.itemParam.value}/>
2870
- </Field>
2871
-
2872
- </div>
2873
- </Group.List>
2874
- </div>
2875
- :
2876
-
2877
- this.state.itemParam.dataAttr && this.state.itemParam.dataAttr.textLineFeed=='yes' ?
2878
- <div className={t.state.itemParam.fieldId} style={(t.state.itemParam.formStyleObj.contentStyle == null ) ? {} : t.state.itemParam.formStyleObj.contentStyle} >
2879
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key}>
2880
- <TextareaField
2881
- className="t-W100"
2882
- required={t.state.itemParam.required}
2883
- label={t.state.itemParam.title}
2884
- readOnly={t.state.itemParam.readOnly}
2885
- minRows={1}
2886
- placeholder={t.state.itemParam.readOnly?'':t.state.itemParam.placeholder}
2887
- value={t.state.itemParam.value}
2888
- onChange={(value) => { t.handleTextAreaChange(t.state.itemParam.key, value); }}
2889
- />
2890
- {t.state.itemParam.isVerifySing=="1"?
2891
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
2892
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
2893
- </div>
2894
- </div>
2895
- :
2896
- <div className={t.state.itemParam.fieldId} style={(t.state.itemParam.formStyleObj.contentStyle == null ) ? {} : t.state.itemParam.formStyleObj.contentStyle} >
2897
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key}>
2898
- <TextField
2899
- className="t-W100"
2900
- required={t.state.itemParam.required}
2901
- readOnly={t.state.itemParam.readOnly}
2902
- label={t.state.itemParam.title}
2903
- placeholder={t.state.itemParam.readOnly?'':t.state.itemParam.placeholder}
2904
- value={t.state.itemParam.value}
2905
- onChange={(value) => { t.handleTextChange(t.state.itemParam, value); }}
2906
- // onFocus={(value) => { t.handleTextFocus(t.state.itemParam, value); }}
2907
- // onBlur={(value) => { t.handleTextBlur(t.state.itemParam, value); }}
2908
- ></TextField>
2909
- {t.state.itemParam.isVerifySing=="1"?
2910
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
2911
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
2912
- </div>
2913
- </div>
2914
- }
2915
-
2916
- </Group.List>
2917
- :this.state.itemParam.itemType == 'html' ?
2918
- <Group.List borderTopNone={true}>
2919
- {t.checkHtml(t.state.itemParam.value)?
2920
- <div className="" onClick={this.clickPop.bind(this)}>
2921
- <div className={this.state.label==''?'t-DN':'t-field-box t-FBH t-FBAC t-FBJ'}>
2922
- <div className={this.state.required?'t-field-layout-h-label t-FS16 required':'t-field-layout-h-label t-FS16'}><span style={t.state.itemParam.formStyleObj.titleStyle == null ? {}:t.state.itemParam.formStyleObj.titleStyle}>{t.state.itemParam.title}</span></div>
2923
- </div>
2924
- <div className="t-FBH t-PL16 t-fw" dangerouslySetInnerHTML={{__html: t.state.itemParam.value}}></div>
2925
- {t.state.itemParam.isVerifySing=="1"?
2926
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
2927
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
2928
- </div>
2929
- :
2930
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
2931
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key}>
2932
- <TextareaField
2933
- className="t-W100"
2934
- required={t.state.itemParam.required}
2935
- label={t.state.itemParam.title}
2936
- readOnly={t.state.itemParam.readOnly}
2937
- minRows={1}
2938
- placeholder={t.state.itemParam.readOnly?'':t.state.itemParam.placeholder}
2939
- value={t.state.itemParam.value}
2940
- onChange={(value) => { t.handleTextAreaChange(t.state.itemParam.key, value); }}
2941
- />
2942
- {t.state.itemParam.isVerifySing=="1"?
2943
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
2944
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
2945
- </div>
2946
- </div>
2947
- }
2948
- </Group.List>
2949
- : this.state.itemParam.itemType == 'textarea' ?
2950
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
2951
- <Group.List borderTopNone={true}>
2952
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key}>
2953
- <TextareaField
2954
- className="t-W100"
2955
- required={t.state.itemParam.required}
2956
- label={t.state.itemParam.title}
2957
- readOnly={t.state.itemParam.readOnly}
2958
- minRows={1}
2959
- placeholder={t.state.itemParam.readOnly?'':t.state.itemParam.placeholder}
2960
- value={t.state.itemParam.value}
2961
- onChange={(value) => { t.handleTextAreaChange(t.state.itemParam.key, value); }}
2962
- />
2963
- {t.state.itemParam.isVerifySing=="1"?
2964
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
2965
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
2966
- </div>
2967
- </Group.List>
2968
- </div>
2969
- : this.state.itemParam.itemType == 'radio' ?
2970
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
2971
- <Group.List borderTopNone={true}>
2972
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key}>
2973
- <div className="t-W100">
2974
- <SelectField
2975
- required={t.state.itemParam.required}
2976
- label={t.state.itemParam.title}
2977
- readOnly={t.state.itemParam.readOnly}
2978
- options={t.state.itemParam.selectOptions}
2979
- placeholder={t.state.itemParam.readOnly?'':t.state.itemParam.placeholder}
2980
- onSelect={t.selectChange.bind(t,t.state.itemParam.key)}
2981
- value={t.state.itemParam.value}
2982
- multiLine={true}
2983
- />
2984
- </div>
2985
- {t.state.itemParam.isVerifySing=="1"?
2986
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
2987
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
2988
- </div>
2989
- </Group.List>
2990
- </div>
2991
- : this.state.itemParam.itemType == 'checkbox' ?
2992
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
2993
- <Group.List borderTopNone={true}>
2994
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key}>
2995
- <div className="t-W100">
2996
- <CheckboxField
2997
- required={t.state.itemParam.required}
2998
- readOnly={t.state.itemParam.readOnly}
2999
- // required={t.state.itemParam.required}
3000
- placeholder={t.state.itemParam.readOnly?'':t.state.itemParam.placeholder}
3001
- data={t.state.itemParam.selectOptions} {...CheckboxFieldProps}
3002
- iconPosition="right"
3003
- multiLine={true}
3004
- label={t.state.itemParam.title}
3005
- ref={"checkbox_"+t.state.itemParam.tableName+"_"+t.state.itemParam.key}
3006
- onChange={t.checkboxChange.bind(t,t.state.itemParam.key,t.state.itemParam.realType)}/>
3007
- </div>
3008
- {t.state.itemParam.isVerifySing=="1"?
3009
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
3010
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
3011
- </div>
3012
- </Group.List>
3013
- </div>
3014
- : this.state.itemParam.itemType == 'select' ?
3015
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
3016
- <Group.List borderTopNone={true}>
3017
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key}>
3018
- <SelectField
3019
- className="t-W100"
3020
- required={t.state.itemParam.required}
3021
- label={t.state.itemParam.title}
3022
- readOnly={t.state.itemParam.readOnly}
3023
- options={t.state.itemParam.selectOptions}
3024
- placeholder={t.state.itemParam.readOnly?'':t.state.itemParam.placeholder}
3025
- onSelect={t.selectChange.bind(t,t.state.itemParam.key)}
3026
- value={t.state.itemParam.value}
3027
- multiLine={true}
3028
- />
3029
- {t.state.itemParam.isVerifySing=="1"?
3030
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
3031
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
3032
- </div>
3033
- </Group.List>
3034
- </div>
3035
- : this.state.itemParam.itemType == 'datetime' ?
3036
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
3037
- <Group.List borderTopNone={true}>
3038
- <div id={t.state.prefixName+"_"+t.state.itemParam.key} className={t.state.itemParam.dateFormat == "DateInterval"?"":"t-FBH"}>
3039
- {
3040
- t.state.itemParam.readOnly?
3041
- <TextareaField
3042
- className="t-W100"
3043
- required={t.state.itemParam.required}
3044
- label={t.state.itemParam.title}
3045
- readOnly={t.state.itemParam.readOnly}
3046
- minRows={1}
3047
- placeholder={t.state.itemParam.readOnly?'':t.state.itemParam.placeholder}
3048
- value={t.state.itemParam.value}
3049
- />
3050
- :
3051
- t.state.itemParam.dateFormat == "DateInterval"?
3052
- <CalendarField
3053
- className="t-W100"
3054
- label={t.state.itemParam.title}
3055
- placeholder={t.state.itemParam.dateFormatShow=="dayWithSlot"?['开始日期','结束日期']:['开始时间','结束时间']}
3056
- required={t.state.itemParam.required}
3057
- multiLine={true}
3058
- layout='h'
3059
- type={t.state.itemParam.dateFormatShow}
3060
- singleMode={false}
3061
- showHalfDay={false}
3062
- showTopPanel={true}
3063
- topPanelTitle='title'
3064
- showWeek={false}
3065
- showDateType={false}
3066
- value = {t.state.itemParam.value}
3067
- readOnly={t.state.itemParam.readOnly}
3068
- icon={<AngleRight width={26} fill="#BCBCBC" onClick={t.handleCalendarFieldFill.bind(t, t.state.prefixName+"_"+t.state.itemParam.key,t.state.itemParam.value)}/>}
3069
- // formatter: 'yyyy.MM.dd',
3070
- onOk={t.handleChangeDate.bind(t, t.state.itemParam.key)}
3071
- />
3072
- :<DatetimeField
3073
- className="t-W100"
3074
- label={t.state.itemParam.title}
3075
- required={t.state.itemParam.required}
3076
- readOnly={t.state.itemParam.readOnly}
3077
- onSelect={t.handleChangeDate.bind(t, t.state.itemParam.key)}
3078
- value={t.state.itemParam.value}
3079
- columns={DatetimeField[t.state.itemParam.dateFormat]}
3080
- minDate={t.state.itemParam.minDate?t.state.itemParam.minDate:new Date(1900, 0, 1).getTime()}
3081
- maxDate={t.state.itemParam.maxDate?t.state.itemParam.maxDate:(new Date(2051, 0, 1).getTime() - 1)}
3082
- placeholder={t.state.itemParam.readOnly?'':t.state.itemParam.placeholder} />
3083
- }
3084
- {t.state.itemParam.isVerifySing=="1"?
3085
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
3086
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
3087
- </div>
3088
- </Group.List>
3089
- </div>
3090
- : this.state.itemParam.itemType == 'datetimeStep' ?
3091
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
3092
- <Group.List borderTopNone={true}>
3093
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key} >
3094
- <HBox className="t-field-box t-FBAC t-W100">
3095
- <div className={t.state.itemParam.required?"t-field-layout-h-label t-FS16 required":"t-field-layout-h-label t-FS16"}>{t.state.itemParam.title}</div>
3096
- <HBox flex="1" onClick={()=>{t.showSlot(t.state.itemParam.key)}} className="t-FBAC">
3097
- <Box flex="1"><span className="t-FL t-FS16">{t.state.itemParam.selectValue}</span></Box>
3098
- {t.state.itemParam.readOnly? "":
3099
- <Box className="t-FBAC t-field-icon">
3100
- <AngleRight width={26} fill="#BCBCBC"/>
3101
- <Datetime
3102
- locale="zh-cn"
3103
- minuteStep={15}
3104
- slotRef={(s) => t[t.state.itemParam.key] = s}
3105
- title="日期选择"
3106
- value={t.state.itemParam.value}
3107
- columns={Datetime.YMDHM}
3108
- onConfirm={t.handleChangeDateStep.bind(t, t.state.itemParam.key)}
3109
- />
3110
- </Box>
3111
- }
3112
- </HBox>
3113
- </HBox>
3114
- {t.state.itemParam.isVerifySing=="1"?
3115
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
3116
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
3117
- </div>
3118
- </Group.List>
3119
- </div>
3120
- : this.state.itemParam.itemType == 'poppage' ?
3121
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
3122
- <Group.List borderTopNone={true}>
3123
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key} >
3124
- <div className="t-W100">
3125
- <Poppage
3126
- required={t.state.itemParam.required}
3127
- label={t.state.itemParam.title}
3128
- readOnly={t.state.itemParam.readOnly}
3129
- placeholder={t.state.itemParam.readOnly?'':t.state.itemParam.placeholder}
3130
- popCode={t.state.itemParam.popCode}
3131
- checked={t.state.itemParam.chooseWay}
3132
- onChange={this.popageChange.bind(this,t.state.itemParam.key)}
3133
- value={this.state.itemParam.value}
3134
- />
3135
- </div>
3136
- {t.state.itemParam.isVerifySing=="1"?
3137
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
3138
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
3139
- </div>
3140
- </Group.List>
3141
- </div>
3142
- : this.state.itemParam.itemType == 'popuser' ?
3143
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
3144
- <Group.List borderTopNone={true}>
3145
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key} >
3146
- <div className="t-W100">
3147
- <SelectMember
3148
- required={t.state.itemParam.required}
3149
- readOnly={t.state.itemParam.readOnly}
3150
- label={t.state.itemParam.title}
3151
- placeholder={t.state.itemParam.placeholder?t.state.itemParam.placeholder:'请选择'}
3152
- code={t.state.itemParam.code}
3153
- chooseObj = {t.state.itemParam.chooseObj}
3154
- checkType={t.state.itemParam.checkType}
3155
- fieldDataValue={t.state.itemParam.value}
3156
- scopeTable={t.state.itemParam.scopeTable}
3157
- fieldTable={t.state.itemParam.fieldTable}
3158
- fieldData={t.state.itemParam.fieldData}
3159
- defaultValue={t.state.itemParam.defaultValue}
3160
- queryLimit={t.state.itemParam.queryLimit}
3161
- limitData={t.state.itemParam.limitData}
3162
- ref={"selectMember_"+t.state.itemParam.fieldData}
3163
- isDelete={!t.state.itemParam.readOnly}
3164
- showType="list"
3165
- onChange={this.popuserChange.bind(this,t.state.itemParam.key)}
3166
- />
3167
- </div>
3168
- {t.state.itemParam.isVerifySing=="1"?
3169
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
3170
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
3171
- </div>
3172
- </Group.List>
3173
- </div>
3174
- : this.state.itemParam.itemType == 'upload' ?
3175
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
3176
- <Group.List borderTopNone={true}>
3177
- <div className="t-W100" id={t.state.prefixName+"_"+t.state.itemParam.key}>
3178
- <Field label={t.state.itemParam.title} required={t.state.itemParam.required} layout="h" multiLine>
3179
- <Upload
3180
- ref={"upload_"+t.state.itemParam.tableName+"_"+t.state.itemParam.key}
3181
- canAdd={t.state.itemParam.readOnly==true?false:true}
3182
- canDel={t.state.itemParam.readOnly==true?false:true}
3183
- canDownload = {this.state.itemParam.canDownload=="1"?true:false}
3184
- initList={t.state.itemParam.value}
3185
- initIds={t.state.itemParam.initIds}
3186
- dir={t.state.module}
3187
- limitNo={t.state.itemParam.uploadFileNumLimit}
3188
- extensions={t.state.itemParam.uploadFileLimit}
3189
- fileSizeLimit={0}
3190
- onChange={(value,isInit) => { t.handleChangePic(t.state.itemParam.key, value,isInit); }}
3191
- onDel={(value) => { t.handleChangePic(t.state.itemParam.key, value); }}/>
3192
- </Field>
3193
- {t.state.itemParam.isVerifySing=="1"?
3194
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
3195
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
3196
- </div>
3197
- </Group.List>
3198
- </div>
3199
- : this.state.itemParam.itemType == 'image' ?
3200
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
3201
- <Group.List borderTopNone={true}>
3202
- <div className="t-W100" id={t.state.prefixName+"_"+t.state.itemParam.key}>
3203
- <Field label={t.state.itemParam.title} required={t.state.itemParam.required} layout="h" multiLine>
3204
- <Upload
3205
- ref={"upload_"+t.state.itemParam.tableName+"_"+t.state.itemParam.key}
3206
- canAdd={t.state.itemParam.readOnly==true?false:true}
3207
- canDel={t.state.itemParam.readOnly==true?false:true}
3208
- initList={t.state.itemParam.value}
3209
- initIds={t.state.itemParam.initIds}
3210
- dir={t.state.module}
3211
- uploadType="image"
3212
- limitNo={t.state.itemParam.uploadFileNumLimit}
3213
- extensions={t.state.itemParam.uploadFileLimit}
3214
- fileSizeLimit={0}
3215
- onChange={(value,isInit) => { t.handleChangePic(t.state.itemParam.key, value,isInit); }}
3216
- onDel={(value) => { t.handleChangePic(t.state.itemParam.key, value); }}/>
3217
- </Field>
3218
- {t.state.itemParam.isVerifySing=="1"?
3219
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
3220
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
3221
- </div>
3222
- </Group.List>
3223
- </div>
3224
- : this.state.itemParam.itemType == 'comment' && (this.state.itemParam.show || this.state.isRemoveCommentFormHtml!='1') ?
3225
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
3226
- <Group.List borderTopNone={true}>
3227
- <HBox className="flex-comment t-field-box" >
3228
- <div className="t-field-layout-h-label t-FS16 t-FBJ"><span>{t.state.itemParam.title}</span></div>
3229
- <div className="t-PT10 t-FB1">
3230
- <CommentList list={t.state.itemParam.value}/>
3231
- <div className={t.state.commentField==this.state.itemParam.uniqueName?'t-PL10 t-PR10':'t-DN'} >
3232
- <div className={t.state.commentField==this.state.itemParam.uniqueName?'theme-color t-P6 t-FS16 commonwords':'t-DN'} ><div onClick={this.selectCommonwords.bind(this)}>常用语</div><div onClick={this.skipToCommonwordsSet.bind(this)}>编辑</div></div>
3233
- <div id={t.state.prefixName+"_"+t.state.itemParam.key}>
3234
- <TextareaField
3235
- readOnly={false}
3236
- minRows={1} maxRows={5}
3237
- placeholder={'请输入批示意见'}
3238
- value={t.state.spyj}
3239
- onChange={this.changeSpyj3.bind(this)}/>
3240
-
3241
- <div className={this.state.commentUpload == '1' ? "" : "t-DN"}>
3242
- <Upload
3243
- ref={"upload_"+this.state.itemParam.uniqueName}
3244
- canAdd={true}
3245
- dir={this.state.module}
3246
- fileSizeLimit={0}
3247
- canDel={true}
3248
- limitNo={5}
3249
- initList={this.state.commentInitList}
3250
- onChange={(value,isInit) => { this.changeSpyj4(this, value); }}
3251
- onDel={(value) => { t.changeSpyj4(this, value); }}
3252
- />
3253
- </div>
3254
-
3255
- </div>
3256
- </div>
3257
- {/* <CheckboxField
3258
- className={this.state.hasCommentField == '1'?"":"t-DN"}
3259
- data={this.state.savePhraseList}
3260
- mode="list"
3261
- onChange={this.selectSavePhrase.bind(this)}
3262
- required={false}
3263
- />*/}
3264
- <FoldablePane foldHeight={0} isFold={this.state.fold}>
3265
- <div className="phrase-list">
3266
- {
3267
- this.state.phraseListNew.length>0 ?
3268
- this.state.phraseListNew.map(function(item,i){
3269
- return (
3270
- <div className="phrase-item" onClick={this.phraseItemClick.bind(this,item.value)}>{item.value}</div>
3271
- )}.bind(this))
3272
- : ''
3273
- }
3274
- </div>
3275
- </FoldablePane>
3276
- {/* <Slot
3277
- ref="slotCommonwords"
3278
- data={this.state.phraseList}
3279
- value={this.state.choosePhrase}
3280
- title="选择常用语"
3281
- onConfirm={this.handleConfirmCommonwords.bind(this)}
3282
- onChange={this.handleChangeCommonwords.bind(this)}
3283
- /> */}
3284
- </div>
3285
- </HBox>
3286
-
3287
- </Group.List>
3288
- </div>
3289
- : this.state.itemParam.itemType == 'note' && (( this.props.status!="0" && this.state.itemParam.explainShow == false)|| this.props.status=="0") ?
3290
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
3291
- <Group.List borderTopNone={true}>
3292
- <VBox vAlign="center" className="t-LH40 theme-color t-BCf dd-bottom-border t-PL16 t-PR16" >
3293
- <Box flex={1} className="t-PR">
3294
- {/* <svg className="dd-svg" width="18" height="18" viewBox="0 0 24 24" aria-labelledby="title" >
3295
- <path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/>
3296
- </svg> */}
3297
- <span className={"t-ML16"} style={{color:t.state.itemParam.formStyleObj.contentStyle.color}} onClick={this.noticeClick.bind(this,t.state.itemParam.explainUrl)}>{t.state.itemParam.explain}</span>
3298
- </Box>
3299
- <Box className={t.state.itemParam.noteFileIds == ""?"t-DN":""}>
3300
- <Upload
3301
- required={false}
3302
- canAdd={false}
3303
- canDel={false}
3304
- initIds={t.state.itemParam.noteFileIds}
3305
- limitNo="5"
3306
- fileSizeLimit="10"
3307
- ref={"note_file_"+t.state.itemParam.fieldId}
3308
- />
3309
- </Box>
3310
- <Box className={t.state.itemParam.noteImageIds == ""?"t-DN":""}>
3311
- <Upload
3312
- uploadType="image"
3313
- required={false}
3314
- canAdd={false}
3315
- canDel={false}
3316
- initIds={t.state.itemParam.noteImageIds}
3317
- limitNo="5"
3318
- fileSizeLimit="10"
3319
- ref={"note_image_"+t.state.itemParam.fieldId}
3320
- />
3321
- </Box>
3322
- </VBox>
3323
- </Group.List>
3324
- </div>
3325
- : this.state.itemParam.itemType == 'switch' ?
3326
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
3327
- <Group.List borderTopNone={true}>
3328
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key} >
3329
- <SwitchField
3330
- className="t-W100"
3331
- required={t.state.itemParam.required}
3332
- readOnly={t.state.itemParam.readOnly}
3333
- label={t.state.itemParam.title}
3334
- on={this.state.itemParam.value}
3335
- onChange={this.handleWitchChange.bind(t, t.state.itemParam.key)}
3336
- />
3337
- {t.state.itemParam.isVerifySing=="1"?
3338
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
3339
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
3340
- </div>
3341
- </Group.List>
3342
- </div>
3343
- : this.state.itemParam.itemType == 'positioning' ?
3344
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
3345
- <Group.List borderTopNone={true}>
3346
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key} >
3347
- <div className="t-W100">
3348
- <Positioning
3349
- required={t.state.itemParam.required}
3350
- readOnly={t.state.itemParam.readOnly}
3351
- label={t.state.itemParam.title}
3352
- canShowLocate = {t.state.itemParam.canShowLocate== null?'':t.state.itemParam.canShowLocate}
3353
- placeholder={t.state.itemParam.placeholder?'':t.state.itemParam.placeholder}
3354
- value={t.state.itemParam.value}
3355
- onChange={this.handlePositionChange.bind(t, t.state.itemParam.key)}
3356
- />
3357
- {t.state.itemParam.isVerifySing=="1"?
3358
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
3359
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
3360
- </div>
3361
- </div>
3362
- </Group.List>
3363
- </div>
3364
- : this.state.itemParam.itemType == 'weboffice' ?
3365
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
3366
- <Group.List borderTopNone={true}>
3367
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key} >
3368
- <div className="t-W100">
3369
- <Upload
3370
- ref={"upload_"+t.state.itemParam.tableName+"_"+t.state.itemParam.key}
3371
- canAdd={false}
3372
- canDel={false}
3373
- canDownload = {this.state.itemParam.webofficeDownload}
3374
- label={t.state.itemParam.title}
3375
- initList={t.state.itemParam.value}
3376
- initIds={t.state.itemParam.initIds}
3377
- dir={t.state.module}
3378
- fileSizeLimit={0}
3379
- onChange={(value,isInit) => { t.handleChangeOffice(t.state.itemParam.key, value,isInit); }}
3380
- />
3381
- </div>
3382
- {t.state.itemParam.isVerifySing=="1"?
3383
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
3384
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
3385
- </div>
3386
- </Group.List>
3387
- </div>
3388
- : this.state.itemParam.itemType == 'title' ?
3389
- <div className={t.state.itemParam.fieldId} >
3390
- <div className="t-FBH">
3391
- <div className="t-group-list t-group-list-item t-W100">
3392
- <div style={{height:'10px'}}></div>
3393
- <h4 style={{textAlign:'center',fontSize: t.state.itemParam.fontSize}} >
3394
- <b style={t.state.itemParam.formStyleObj.titleStyle}>{t.state.itemParam.value}</b>
3395
- </h4>
3396
- <div style={{height:'10px'}}></div>
3397
- </div>
3398
- {t.state.itemParam.isVerifySing=="1"?
3399
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
3400
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
3401
- </div>
3402
- </div>
3403
-
3404
-
3405
- : this.state.itemParam.itemType == 'relaobj' ?
3406
- <div className={t.state.itemParam.fieldId} style={t.state.itemParam.formStyleObj.contentStyle}>
3407
- <Group.List borderTopNone={true}>
3408
- <div className="t-FBH" id={t.state.prefixName+"_"+t.state.itemParam.key}>
3409
- <TextareaField
3410
- className="t-W100"
3411
- required={t.state.itemParam.required}
3412
- label={t.state.itemParam.title}
3413
- readOnly={true}
3414
- minRows={1}
3415
- placeholder={t.state.itemParam.readOnly?'':t.state.itemParam.placeholder}
3416
- // value={t.state.itemParam.value}
3417
- onChange={this.ralaObjChange.bind(this,t.state.itemParam.key)}
3418
- />
3419
- {t.state.itemParam.isVerifySing=="1"?
3420
- <i className='iconfont icon-checked t-PT10' style={{color:'green'}}/>:
3421
- (t.state.itemParam.isVerifySing=="2"?<i className='iconfont icon-close t-PT10' style={{color:'red'}}/>:"")}
3422
- </div>
3423
- </Group.List>
3424
- </div>
3425
-
3426
- : <div></div>
3427
- }
3428
- </div>
3429
-
3430
- )
3431
- }
3432
- }
3433
-
3434
-