fmui-base 2.3.44 → 2.3.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -3,6 +3,8 @@
3
3
  ---npm publish
4
4
 
5
5
  ## 更新日志
6
+ - 2.3.46:表单子表支持默认展开或者收起
7
+ - 2.3.45:数据已被他人修改时,刷新表单内容保留批示意见
6
8
  - 2.3.44:数据已被他人修改时,刷新表单内容
7
9
  - 2.3.43:表单字段关联时,空值影响
8
10
  - 2.3.42:表单字段关联时,为空行隐藏后,切换值显示不了问题处理
@@ -83,10 +83,18 @@ var PageHome = function (_React$Component) {
83
83
  return _this;
84
84
  }
85
85
 
86
- //流程控制表单字段显示
86
+ // 移动端子表默认展开态:1/缺省展开,0收起
87
87
 
88
88
 
89
89
  _createClass(PageHome, [{
90
+ key: 'getDefaultShow',
91
+ value: function getDefaultShow() {
92
+ return this.props.mobileSubTblDefault !== '0';
93
+ }
94
+
95
+ //流程控制表单字段显示
96
+
97
+ }, {
90
98
  key: 'fieldControllFormat',
91
99
  value: function fieldControllFormat(field, fieldControll) {
92
100
  // let isHidden = null;
@@ -190,7 +198,7 @@ var PageHome = function (_React$Component) {
190
198
  var value = this.dealwithSubForm(subForm, itemParam, subTbl, relatedTbl);
191
199
  data.subTbl = subTbl;
192
200
  data.relatedTbl = relatedTbl;
193
- itemParam.show = true;
201
+ itemParam.show = this.getDefaultShow();
194
202
  itemParam.value = value;
195
203
  itemParam.detailAction = form.detailAction; //添加事件名字
196
204
  // 流程 flow_common / 纯表单 form_common + mobileExt(可设置 itemParam.subColumnCount 等)
@@ -225,6 +233,7 @@ var PageHome = function (_React$Component) {
225
233
  var itemCode = itemParam.key;
226
234
  var fieldControll = itemParam.fieldControll;
227
235
  var subtableReadonly = itemParam.subtableReadonly === true;
236
+ var defaultShow = this.getDefaultShow();
228
237
  var mustFields = "";
229
238
  if (fieldControll) {
230
239
  mustFields = fieldControll.mustFields;
@@ -249,11 +258,11 @@ var PageHome = function (_React$Component) {
249
258
  if (subTblData.length > 0) {
250
259
  for (var j = 0; j < subTblData.length; j++) {
251
260
  value.push({ mainTblData: subTblData[j], mainTblName: itemCode });
252
- var subForm1 = { show: true, form: subForm };
261
+ var subForm1 = { show: defaultShow, form: subForm };
253
262
  subFormList.push(subForm1);
254
263
  }
255
264
  } else if (!subtableReadonly) {
256
- var subForm2 = { show: true, form: subForm };
265
+ var subForm2 = { show: defaultShow, form: subForm };
257
266
  value.push({ mainTblData: [], mainTblName: itemCode });
258
267
  subFormList.push(subForm2);
259
268
  }
@@ -271,11 +280,11 @@ var PageHome = function (_React$Component) {
271
280
  if (subTblData.length > 0) {
272
281
  for (var j = 0; j < subTblData.length; j++) {
273
282
  value.push({ mainTblData: subTblData[j], mainTblName: itemCode });
274
- var subForm1 = { show: true, form: subForm };
283
+ var subForm1 = { show: defaultShow, form: subForm };
275
284
  subFormList.push(subForm1);
276
285
  }
277
286
  } else if (!subtableReadonly) {
278
- var subForm2 = { show: true, form: subForm };
287
+ var subForm2 = { show: defaultShow, form: subForm };
279
288
  value.push({ mainTblData: [], mainTblName: itemCode });
280
289
  subFormList.push(subForm2);
281
290
  }
@@ -292,7 +301,7 @@ var PageHome = function (_React$Component) {
292
301
  subTbl.push({ subTblData: [], subTblName: itemCode });
293
302
  }
294
303
  } else if (relatedTbl && relatedTbl.length > 0) {
295
- var subForm3 = { show: true, form: subForm };
304
+ var subForm3 = { show: defaultShow, form: subForm };
296
305
  subFormList.push(subForm3);
297
306
  itemParam.subForm = subFormList;
298
307
  value.push({ mainTblData: [], mainTblName: itemCode });
@@ -310,7 +319,7 @@ var PageHome = function (_React$Component) {
310
319
  subTbl.push({ subTblData: [], subTblName: itemCode });
311
320
  }
312
321
  } else {
313
- var subForm3 = { show: true, form: subForm };
322
+ var subForm3 = { show: defaultShow, form: subForm };
314
323
  subFormList.push(subForm3);
315
324
  itemParam.subForm = subFormList;
316
325
  value.push({ mainTblData: [], mainTblName: itemCode });
package/lib/form/table.js CHANGED
@@ -2577,7 +2577,7 @@ var PageHome = function (_React$Component) {
2577
2577
  }.bind(this)) : item.itemType == 'detail' ? _react2.default.createElement(
2578
2578
  'div',
2579
2579
  { className: "subform_" + item.itemCode },
2580
- _react2.default.createElement(_subForm2.default, { keyNo: i, ref: 'sub_' + item.itemCode, subColumnCount: t.getSubColumnCount(item), operate: t.props.operate, newspyj: t.props.newspyj, hasCommentField: t.props.hasCommentField, commentUpload: t.props.commentUpload, commentField: t.props.commentField, commentAttitude: t.props.commentAttitude, module: t.props.module, formKey: t.props.allForm.formcode, status: t.props.status, form: item, allForm: t.props.allForm, formStyle: t.props.formStyleObj, isCaUser: t.props.isCaUser, caFirm: t.props.caFirm, caESignatureName: t.props.caESignatureName, caFormSign: t.props.caFormSign, commentList: t.props.commentFieldList, defaultValue: t.props.defaultValue, data: t.props.data, fieldControll: t.props.fieldControll, caIsPrd: t.props.caIsPrd, preCaFields: t.props.preCaFields, formRelaFieldMaps: t.state.formRelaFieldMaps, linkFields: t.state.linkFields, isRemoveCommentFormHtml: t.props.isRemoveCommentFormHtml, inscriptionShow: t.props.inscriptionShow, onChange: this.change.bind(this) })
2580
+ _react2.default.createElement(_subForm2.default, { keyNo: i, ref: 'sub_' + item.itemCode, subColumnCount: t.getSubColumnCount(item), mobileSubTblDefault: t.props.mobileSubTblDefault, operate: t.props.operate, newspyj: t.props.newspyj, hasCommentField: t.props.hasCommentField, commentUpload: t.props.commentUpload, commentField: t.props.commentField, commentAttitude: t.props.commentAttitude, module: t.props.module, formKey: t.props.allForm.formcode, status: t.props.status, form: item, allForm: t.props.allForm, formStyle: t.props.formStyleObj, isCaUser: t.props.isCaUser, caFirm: t.props.caFirm, caESignatureName: t.props.caESignatureName, caFormSign: t.props.caFormSign, commentList: t.props.commentFieldList, defaultValue: t.props.defaultValue, data: t.props.data, fieldControll: t.props.fieldControll, caIsPrd: t.props.caIsPrd, preCaFields: t.props.preCaFields, formRelaFieldMaps: t.state.formRelaFieldMaps, linkFields: t.state.linkFields, isRemoveCommentFormHtml: t.props.isRemoveCommentFormHtml, inscriptionShow: t.props.inscriptionShow, onChange: this.change.bind(this) })
2581
2581
  ) : _react2.default.createElement(
2582
2582
  'div',
2583
2583
  { className: "form_" + item.uniqueName },
@@ -2613,7 +2613,7 @@ var PageHome = function (_React$Component) {
2613
2613
  }.bind(this)) : item.itemType == 'detail' ? _react2.default.createElement(
2614
2614
  'div',
2615
2615
  { className: t.state.active == item.tabCode ? "" : "t-DN" },
2616
- _react2.default.createElement(_subForm2.default, { className: "subform_" + item.itemCode, keyNo: i, ref: 'sub_' + item.itemCode, subColumnCount: t.getSubColumnCount(item), operate: t.props.operate, newspyj: t.props.newspyj, hasCommentField: t.props.hasCommentField, commentUpload: t.props.commentUpload, commentAttitude: t.props.commentAttitude, commentField: t.props.commentField, module: t.props.module, formKey: t.props.allForm.formcode, isCaUser: t.props.isCaUser, caFirm: t.props.caFirm, caESignatureName: t.props.caESignatureName, caFormSign: t.props.caFormSign, status: t.props.status, form: item, allForm: t.props.allForm, formStyle: t.props.formStyleObj, commentList: t.props.commentFieldList, inscriptionShow: t.props.inscriptionShow, data: t.props.data, fieldControll: t.props.fieldControll, onChange: this.change.bind(this) })
2616
+ _react2.default.createElement(_subForm2.default, { className: "subform_" + item.itemCode, keyNo: i, ref: 'sub_' + item.itemCode, subColumnCount: t.getSubColumnCount(item), mobileSubTblDefault: t.props.mobileSubTblDefault, operate: t.props.operate, newspyj: t.props.newspyj, hasCommentField: t.props.hasCommentField, commentUpload: t.props.commentUpload, commentAttitude: t.props.commentAttitude, commentField: t.props.commentField, module: t.props.module, formKey: t.props.allForm.formcode, isCaUser: t.props.isCaUser, caFirm: t.props.caFirm, caESignatureName: t.props.caESignatureName, caFormSign: t.props.caFormSign, status: t.props.status, form: item, allForm: t.props.allForm, formStyle: t.props.formStyleObj, commentList: t.props.commentFieldList, inscriptionShow: t.props.inscriptionShow, data: t.props.data, fieldControll: t.props.fieldControll, onChange: this.change.bind(this) })
2617
2617
  ) : _react2.default.createElement(
2618
2618
  'div',
2619
2619
  { className: t.state.active == item.tabCode ? "" : "t-DN" },
@@ -487,6 +487,7 @@ var PageHome = function (_React$Component) {
487
487
  errorMsg: '',
488
488
  buttonCodeList: '',
489
489
  tableStatus: '0',
490
+ formTableKey: 0,
490
491
  finalButtons: finalButtons,
491
492
  backReasonText: '', //驳回原因
492
493
  recoverReasonText: '', //收回原因
@@ -510,6 +511,7 @@ var PageHome = function (_React$Component) {
510
511
  titleCommentBackAlert: '退回原因',
511
512
  endSelect: false,
512
513
  mobileFlowChar: '0', //是否开启流程图 1开启 0禁用
514
+ mobileSubTblDefault: '1', //移动端子表默认 1展开 0收起;未设置按展开
513
515
  readScopeId: '',
514
516
  readScopeList: [],
515
517
  readRangeType: '', //传阅范围 0全部 2本组织及下属组织 4自定义
@@ -982,6 +984,8 @@ var PageHome = function (_React$Component) {
982
984
  var formStyleObj = form.formStyle;
983
985
 
984
986
  var mobileFlowChar = content.mobileFlowChar;
987
+ // 移动端子表默认:1展开 0收起;缺省按展开
988
+ var mobileSubTblDefault = content.mobileSubTblDefault != null && content.mobileSubTblDefault !== '' ? String(content.mobileSubTblDefault) : '1';
985
989
 
986
990
  //项目开发模块统一扩展
987
991
  var mobileModuleExt;
@@ -1603,6 +1607,7 @@ var PageHome = function (_React$Component) {
1603
1607
  formRelaField: formRelaField,
1604
1608
  dealReminderContent: dealReminderContent,
1605
1609
  mobileFlowChar: mobileFlowChar,
1610
+ mobileSubTblDefault: mobileSubTblDefault,
1606
1611
  readScopeId: readScopeId,
1607
1612
  readScopeList: readScopeList,
1608
1613
  readRangeType: readRangeType,
@@ -5288,6 +5293,9 @@ var PageHome = function (_React$Component) {
5288
5293
  key: 'refreshFormAfterOptlockConflict',
5289
5294
  value: function refreshFormAfterOptlockConflict() {
5290
5295
  var t = this;
5296
+ var savedComment = t.state.spyj || t.state.newspyj && t.state.newspyj.content || '';
5297
+ t._pendingCommentRestore = savedComment;
5298
+ t._pendingFormDataRestore = null;
5291
5299
  try {
5292
5300
  _Popup2.default.hide();
5293
5301
  } catch (e) {}
@@ -5296,9 +5304,18 @@ var PageHome = function (_React$Component) {
5296
5304
  _Dialog2.default.hide();
5297
5305
  }
5298
5306
  } catch (e2) {}
5299
- var savedComment = t.state.spyj || t.state.newspyj && t.state.newspyj.content || '';
5300
- t._pendingCommentRestore = savedComment;
5301
- t._pendingFormDataRestore = null;
5307
+ // 办理页是 pageStatus=1,冲突后必须先回到表单页(与取消办理一致)
5308
+ try {
5309
+ if (typeof t.handleCancelClick === 'function') {
5310
+ t.handleCancelClick();
5311
+ } else {
5312
+ t.setState({ pageStatus: '0', operate: 0 });
5313
+ }
5314
+ } catch (e3) {
5315
+ try {
5316
+ t.setState({ pageStatus: '0', operate: 0 });
5317
+ } catch (e4) {}
5318
+ }
5302
5319
  var param = {
5303
5320
  formId: t.state.formId,
5304
5321
  dataId: t.state.dataId,
@@ -5336,24 +5353,49 @@ var PageHome = function (_React$Component) {
5336
5353
  } else if (content.formData && content.formData.optlock !== undefined && content.formData.optlock !== null && content.formData.optlock !== '') {
5337
5354
  optlock = String(content.formData.optlock);
5338
5355
  }
5339
- if (!optlock) {
5340
- t._pendingCommentRestore = null;
5341
- t._pendingForceOptlock = null;
5342
- _Toast2.default.show({ type: 'error', content: '未获取到最新表单版本,请手动刷新页面' });
5343
- return;
5344
- }
5345
- t._pendingForceOptlock = optlock;
5346
- t.setState({ formDataOptlock: optlock }, function () {
5347
- t.loadPage(param);
5356
+ // 注意:content.lock 是流程锁,与主表 optlock 无关;精简 getUndoTaskInfo 可能未带 optlock
5357
+ var afterBackToForm = function afterBackToForm() {
5358
+ // 再次确保仍在表单页(loadPage 异步后办理态可能残留)
5359
+ if (t.state.pageStatus !== '0') {
5360
+ t.setState({ pageStatus: '0', operate: 0 });
5361
+ }
5362
+ try {
5363
+ $(window).scrollTop(0);
5364
+ } catch (e5) {}
5348
5365
  _Toast2.default.show({
5349
5366
  type: 'error',
5350
5367
  content: '该表单已经被别人修改过,已刷新为最新版本,请核对后重新填写并提交',
5351
5368
  duration: 6000
5352
5369
  });
5353
- });
5370
+ };
5371
+ // 表单控件只在挂载时读展示值,必须先卸载再 loadPage,否则界面仍是旧显示值
5372
+ var remountAndReload = function remountAndReload(optlockVal) {
5373
+ if (optlockVal) {
5374
+ t._pendingForceOptlock = optlockVal;
5375
+ } else {
5376
+ t._pendingForceOptlock = null;
5377
+ }
5378
+ t.setState({
5379
+ formDataOptlock: optlockVal || '',
5380
+ pageStatus: '0',
5381
+ operate: 0,
5382
+ tableStatus: '0',
5383
+ formTableKey: (t.state.formTableKey || 0) + 1,
5384
+ loadSuccess: false
5385
+ }, function () {
5386
+ setTimeout(function () {
5387
+ t.loadPage(param);
5388
+ afterBackToForm();
5389
+ }, 50);
5390
+ });
5391
+ };
5392
+ remountAndReload(optlock);
5354
5393
  }).catch(function () {
5355
5394
  t._pendingCommentRestore = null;
5356
5395
  t._pendingForceOptlock = null;
5396
+ try {
5397
+ t.setState({ pageStatus: '0', operate: 0 });
5398
+ } catch (e6) {}
5357
5399
  _Toast2.default.show({ type: 'error', content: '刷新表单失败,请手动刷新页面' });
5358
5400
  });
5359
5401
  }
@@ -8790,7 +8832,7 @@ var PageHome = function (_React$Component) {
8790
8832
  _react2.default.createElement(
8791
8833
  _Group2.default.List,
8792
8834
  null,
8793
- this.state.tableStatus == '0' ? "" : _react2.default.createElement(_table2.default, { ref: 'approveFormTable', module: this.state.module, operate: this.state.operate, editType: this.state.editType, dataId: this.state.dataId, hasCommentField: t.state.hasCommentField, newspyj: t.state.newspyj, commentField: t.state.commentField, commentAttitude: t.state.commentAttitude, status: t.state.status, form: t.state.formItem, formStyleObj: t.state.formStyleObj, subColumnCount: t.state.subColumnCount, allForm: t.state.form, data: t.state.editFormData, commentFieldList: t.state.commentFieldList, defaultValue: t.state.defaultValue, commentDefaultList: t.state.commentDefaultList, commentBackList: t.state.commentBackList, fieldControll: t.state.fieldControll, caIsPrd: t.state.caIsPrd, preCaFields: t.state.preCaFields, formRelaField: t.state.formRelaField, isRemoveCommentFormHtml: t.state.isRemoveCommentFormHtml, commentUpload: t.state.commentUpload, isCaUser: t.state.isCaUser, caFirm: t.state.caFirm, caESignatureName: t.state.caESignatureName, caFormSign: t.state.caFormSign, inscriptionShow: t.state.inscriptionShow, onChange: this.change.bind(this) })
8835
+ this.state.tableStatus == '0' ? "" : _react2.default.createElement(_table2.default, { key: 'approveFormTable_' + this.state.formTableKey, ref: 'approveFormTable', module: this.state.module, operate: this.state.operate, editType: this.state.editType, dataId: this.state.dataId, hasCommentField: t.state.hasCommentField, newspyj: t.state.newspyj, commentField: t.state.commentField, commentAttitude: t.state.commentAttitude, status: t.state.status, form: t.state.formItem, formStyleObj: t.state.formStyleObj, subColumnCount: t.state.subColumnCount, mobileSubTblDefault: t.state.mobileSubTblDefault, allForm: t.state.form, data: t.state.editFormData, commentFieldList: t.state.commentFieldList, defaultValue: t.state.defaultValue, commentDefaultList: t.state.commentDefaultList, commentBackList: t.state.commentBackList, fieldControll: t.state.fieldControll, caIsPrd: t.state.caIsPrd, preCaFields: t.state.preCaFields, formRelaField: t.state.formRelaField, isRemoveCommentFormHtml: t.state.isRemoveCommentFormHtml, commentUpload: t.state.commentUpload, isCaUser: t.state.isCaUser, caFirm: t.state.caFirm, caESignatureName: t.state.caESignatureName, caFormSign: t.state.caFormSign, inscriptionShow: t.state.inscriptionShow, onChange: this.change.bind(this) })
8794
8836
  )
8795
8837
  )
8796
8838
  )
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fmui-base",
3
- "version": "2.3.44",
3
+ "version": "2.3.46",
4
4
  "title": "fmui-base",
5
5
  "description": "fmui移动端组件",
6
6
  "main": "lib/index.js",