fmui-base 2.2.86 → 2.2.88

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.2.88:表单关联字段重构
7
+ - 2.2.87:选人组件添加隐藏页签,增加业务建模表单组件
6
8
  - 2.2.86: 流程表单按钮超过三个按钮显示更多,修改更多按钮样式,待办保存按钮强制放到更多里面
7
9
  - 2.2.85: 北京ca开启电子签章获取ca签名,不受表单加签控制
8
10
  - 2.2.84: 选人组件baseCorpId取值问题修复
package/lib/db/db.js CHANGED
@@ -1116,6 +1116,37 @@ context.create('FlowModuleAPI', {
1116
1116
  });
1117
1117
 
1118
1118
  context.create('form', {
1119
+ getPureMobileForm: {
1120
+ mockUrl: 'query/getPureMobileForm.json',
1121
+ url: _variables2.default.URLS.getPureMobileForm,
1122
+ method: 'GET',
1123
+ header: {
1124
+ Authorization: 'Bearer ' + getLoginUserInfo().token
1125
+ },
1126
+ willFetch: function willFetch() {
1127
+ _Toast2.default.show({
1128
+ content: _react2.default.createElement(_loading2.default, null),
1129
+ hasMask: true,
1130
+ duration: 800
1131
+ });
1132
+ }
1133
+ },
1134
+ runtimeDataSave: {
1135
+ mockUrl: 'query/runtimeDataSave.json',
1136
+ url: _variables2.default.URLS.runtimeDataSave,
1137
+ method: 'POST',
1138
+ postDataFomat: 'FORM',
1139
+ header: {
1140
+ Authorization: 'Bearer ' + getLoginUserInfo().token
1141
+ },
1142
+ willFetch: function willFetch() {
1143
+ _Toast2.default.show({
1144
+ content: _react2.default.createElement(_loading2.default, null),
1145
+ hasMask: true,
1146
+ duration: 800
1147
+ });
1148
+ }
1149
+ },
1119
1150
  getFormContent: {
1120
1151
  mockUrl: 'query/getFormContent.json',
1121
1152
  url: _variables2.default.URLS.getFormContent,
@@ -65,7 +65,9 @@ exports.default = {
65
65
  batchFavoriteProcess: urlPrefix + 'batchFavoriteProcess' + '?', //批量添加常用流程的接口
66
66
  getRemindBadgeCount: urlPrefix + 'getRemindBadgeCount' + '?', //分类统计小红点
67
67
  queryProcessForm: urlPrefix + 'getMobileForm' + '?', //获取流程表单
68
+ getPureMobileForm: urlPrefix + 'getPureMobileForm' + '?', //获取纯表单(无流程)
68
69
  getRelaFieldsMap: formUrlPrefix + 'relafield/getRelaFieldsMap' + '?', //获取关联表单字段
70
+ runtimeDataSave: formUrlPrefix + 'runtime/runtimeDataSave' + '?', //纯表单运行时保存
69
71
  getNoInvoiceList: formUrlPrefix + 'form/invoice/getNoInvoiceList' + '?', //获取未开票列表
70
72
  getComponentInfoList: urlBasicPrefix + 'mobilehall/mobileoffice/getComponentInfoList' + '?', //获取关联表单字段
71
73
 
package/lib/form/form.js CHANGED
@@ -115,6 +115,8 @@ var _db = require('../db/db');
115
115
 
116
116
  var _db2 = _interopRequireDefault(_db);
117
117
 
118
+ var _formExtHelper = require('./formExtHelper');
119
+
118
120
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
119
121
 
120
122
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -169,11 +171,13 @@ var PageHome = function (_React$Component) {
169
171
  /* alert(commentField);*/
170
172
  var context = document.getElementById("context").value;
171
173
  //alert(props.defaultValue);
172
- var module = props.module && props.module != "undefined" ? props.module : "approve";
174
+ var extLoaded = (0, _formExtHelper.loadFlowOrFormCommon)(props);
175
+ var module = extLoaded.module;
176
+ FlowCommon = extLoaded.FlowCommon;
173
177
  var isRemoveCommentFormHtml = props.isRemoveCommentFormHtml && props.isRemoveCommentFormHtml != "undefined" ? props.isRemoveCommentFormHtml : "0";
174
- FlowCommon = require('pages/flow_common/' + module).default ? require('pages/flow_common/' + module).default : require('pages/flow_common/' + module);
175
178
  _this.state = {
176
179
  module: module,
180
+ formCode: extLoaded.formCode,
177
181
  fold: true,
178
182
  atfold: true,
179
183
  status: status,
@@ -1342,12 +1346,12 @@ var PageHome = function (_React$Component) {
1342
1346
  //在线编辑
1343
1347
  var formDataAttr = form.dataAttr;
1344
1348
  itemParam.webofficeDownload = formDataAttr && formDataAttr.webofficeDownload == '0' ? false : true;
1345
- if (typeof FlowCommon.dealwithWeboffice === "function" && value != null && value != "") {
1349
+ if (FlowCommon && typeof FlowCommon.dealwithWeboffice === "function" && value != null && value != "") {
1346
1350
  FlowCommon.dealwithWeboffice(value, function (content) {
1347
1351
  itemParam.initIds = content;
1348
1352
  itemParam.value = value;
1349
1353
  //处理特有按钮事件
1350
- if (typeof FlowCommon.dealwithCommonFormParam === "function") {
1354
+ if (FlowCommon && typeof FlowCommon.dealwithCommonFormParam === "function") {
1351
1355
  itemParam = FlowCommon.dealwithCommonFormParam(itemParam, this);
1352
1356
  itemType = itemParam.itemType;
1353
1357
  }
@@ -1355,12 +1359,12 @@ var PageHome = function (_React$Component) {
1355
1359
  var mobileExt;
1356
1360
  try {
1357
1361
  if (formKey) {
1358
- mobileExt = typeof eval(module + "_" + formKey + "_mobileExt") !== 'undefined' ? eval(module + "_" + formKey + "_mobileExt") : null;
1362
+ mobileExt = (0, _formExtHelper.resolveMobileFormExt)(this.props.formCode, module, formKey);
1359
1363
  }
1360
1364
  } catch (e) {
1361
1365
  // alert("exception: "+e.message);
1362
1366
  }
1363
- if (typeof mobileExt !== 'undefined' && typeof mobileExt["dealwithFormParamExt"] === "function") {
1367
+ if (mobileExt && typeof mobileExt["dealwithFormParamExt"] === "function") {
1364
1368
  itemParam = mobileExt["dealwithFormParamExt"](itemParam, this);
1365
1369
  itemType = itemParam.itemType;
1366
1370
  }
@@ -1400,7 +1404,7 @@ var PageHome = function (_React$Component) {
1400
1404
  itemParam.value = value;
1401
1405
 
1402
1406
  //处理特有按钮事件
1403
- if (typeof FlowCommon.dealwithCommonFormParam === "function") {
1407
+ if (FlowCommon && typeof FlowCommon.dealwithCommonFormParam === "function") {
1404
1408
  itemParam = FlowCommon.dealwithCommonFormParam(itemParam, this);
1405
1409
  itemType = itemParam.itemType;
1406
1410
  }
@@ -1408,12 +1412,12 @@ var PageHome = function (_React$Component) {
1408
1412
  var mobileExt;
1409
1413
  try {
1410
1414
  if (formKey) {
1411
- mobileExt = typeof eval(module + "_" + formKey + "_mobileExt") !== 'undefined' ? eval(module + "_" + formKey + "_mobileExt") : null;
1415
+ mobileExt = (0, _formExtHelper.resolveMobileFormExt)(this.props.formCode, module, formKey);
1412
1416
  }
1413
1417
  } catch (e) {
1414
1418
  // alert("exception: "+e.message);
1415
1419
  }
1416
- if (typeof mobileExt !== 'undefined' && typeof mobileExt[module + "_dealwithFormParamExt"] === "function") {
1420
+ if (mobileExt && typeof mobileExt[module + "_dealwithFormParamExt"] === "function") {
1417
1421
  itemParam = mobileExt[module + "_dealwithFormParamExt"](itemParam, this);
1418
1422
  itemType = itemParam.itemType;
1419
1423
  }
@@ -1495,7 +1499,7 @@ var PageHome = function (_React$Component) {
1495
1499
  itemParam.value = value;
1496
1500
 
1497
1501
  //处理特有按钮事件
1498
- if (typeof FlowCommon.dealwithCommonFormParam === "function") {
1502
+ if (FlowCommon && typeof FlowCommon.dealwithCommonFormParam === "function") {
1499
1503
  itemParam = FlowCommon.dealwithCommonFormParam(itemParam, this);
1500
1504
  itemType = itemParam.itemType;
1501
1505
  }
@@ -1511,12 +1515,12 @@ var PageHome = function (_React$Component) {
1511
1515
  var mobileExt;
1512
1516
  try {
1513
1517
  if (formKey) {
1514
- mobileExt = typeof eval(module + "_" + formKey + "_mobileExt") !== 'undefined' ? eval(module + "_" + formKey + "_mobileExt") : null;
1518
+ mobileExt = (0, _formExtHelper.resolveMobileFormExt)(this.props.formCode, module, formKey);
1515
1519
  }
1516
1520
  } catch (e) {
1517
1521
  // alert("exception: "+e.message);
1518
1522
  }
1519
- if (typeof mobileExt !== 'undefined' && typeof mobileExt["dealwithFormParamExt"] === "function") {
1523
+ if (mobileExt && typeof mobileExt["dealwithFormParamExt"] === "function") {
1520
1524
  itemParam = mobileExt["dealwithFormParamExt"](itemParam, this);
1521
1525
  itemType = itemParam.itemType;
1522
1526
  }
@@ -1600,12 +1604,12 @@ var PageHome = function (_React$Component) {
1600
1604
  var mobileExt;
1601
1605
  try {
1602
1606
  if (formKey) {
1603
- mobileExt = typeof eval(module + "_" + formKey + "_mobileExt") !== 'undefined' ? eval(module + "_" + formKey + "_mobileExt") : null;
1607
+ mobileExt = (0, _formExtHelper.resolveMobileFormExt)(this.props.formCode, module, formKey);
1604
1608
  }
1605
1609
  } catch (e) {
1606
1610
  // alert("exception: "+e.message);
1607
1611
  }
1608
- if (typeof mobileExt !== 'undefined' && typeof mobileExt["casigin"] === "function") {
1612
+ if (mobileExt && typeof mobileExt["casigin"] === "function") {
1609
1613
  var isVerifySing = mobileExt["casigin"](itemParam, data, uniqueName, isVerifySingValue);
1610
1614
  itemParam.isVerifySing = isVerifySing;
1611
1615
  this.setState(itemParam);
@@ -1753,157 +1757,132 @@ var PageHome = function (_React$Component) {
1753
1757
  return '' + (num < 10 ? '0' : '') + num;
1754
1758
  }
1755
1759
 
1756
- //处理关联字段初始化
1760
+ // 规范化触发字段取值(与 table.jsx 保持一致)
1757
1761
 
1758
1762
  }, {
1759
- key: 'dealwithRelaField',
1760
- value: function dealwithRelaField(itemParam, allForm) {
1761
- console.log("dealwithRelaField===");
1762
- var formRelaFieldMaps = this.props.formRelaFieldMaps;
1763
- var defaultmustFields = [];
1764
- var defaulthideFields = [];
1765
- var fieldControll = this.props.fieldControll;
1766
- var hiddenFields = fieldControll.hiddenFields;
1767
- var mustFieldsStr = fieldControll.mustFields;
1768
- if (hiddenFields && hiddenFields != '') {
1769
- for (var i = 0; i < hiddenFields.split(',').length; i++) {
1770
- if (hiddenFields.split(',')[i] && hiddenFields.split(',')[i] != '') {
1771
- defaulthideFields.push(hiddenFields.split(',')[i]);
1763
+ key: 'normalizeRelaTriggerValue',
1764
+ value: function normalizeRelaTriggerValue(nowValue) {
1765
+ if (nowValue == null || typeof nowValue == 'undefined') {
1766
+ return "";
1767
+ }
1768
+ if (nowValue && nowValue.indexOf("[") >= 0 && nowValue.indexOf("]") >= 0) {
1769
+ try {
1770
+ var nowValueArray = JSON.parse(nowValue);
1771
+ if (nowValueArray.length == 1) {
1772
+ return nowValueArray[0];
1772
1773
  }
1774
+ return nowValueArray.join(",");
1775
+ } catch (e) {
1776
+ return nowValue;
1773
1777
  }
1774
1778
  }
1775
- if (mustFieldsStr && mustFieldsStr != '') {
1776
- for (var i = 0; i < mustFieldsStr.split(',').length; i++) {
1777
- if (mustFieldsStr.split(',')[i] && mustFieldsStr.split(',')[i] != '') {
1778
- defaultmustFields.push(mustFieldsStr.split(',')[i]);
1779
+ if (nowValue != '' && (nowValue.indexOf("$#$#") >= 0 || nowValue.indexOf("#$#$") >= 0)) {
1780
+ if (nowValue.indexOf("#$#$") >= 0) {
1781
+ var nowValueList = nowValue.split("#$#$");
1782
+ if (nowValueList.length == 1) {
1783
+ return nowValueList[0].replace("$#$#", "");
1779
1784
  }
1785
+ return nowValueList.map(function (item) {
1786
+ return item.replace("$#$#", "");
1787
+ }).join(",");
1780
1788
  }
1789
+ return nowValue.replace("$#$#", "");
1781
1790
  }
1791
+ return nowValue;
1792
+ }
1782
1793
 
1783
- if (formRelaFieldMaps) {
1784
- if (formRelaFieldMaps[itemParam.uniqueName]) {
1785
- var data = this.props.data;
1786
- var mainTblData = data.mainTblData;
1787
- var mainTblName = data.mainTblName;
1788
- // var subTbl = data.subTbl;
1789
- var subTbl = allForm;
1790
- var formRelaFieldMapsArray = formRelaFieldMaps[itemParam.uniqueName];
1791
- formRelaFieldMapsArray.map(function (item) {
1792
- if (item.triggerTblName == mainTblName) {
1793
- mainTblData.map(function (mainTblDataItem) {
1794
- if (item.triggerFieldName == mainTblDataItem.key) {
1795
- var nowValue = mainTblDataItem.value ? mainTblDataItem.value : "";
1796
- if (nowValue && nowValue.indexOf("[") >= 0 && nowValue.indexOf("]") >= 0) {
1797
- var nowValueArray = JSON.parse(nowValue);
1798
- if (nowValueArray.length == 1) {
1799
- nowValue = nowValueArray[0];
1800
- } else {
1801
- nowValue = nowValueArray.join(",");
1802
- }
1803
- }
1804
- // if(item.triggerFieldVal == mainTblDataItem.value){
1805
- var editType = item.editType;
1806
- if (editType == 'hide' || editType == 'rowhide') {
1807
- // relaFieldMap["key"]="isHidden";
1808
- if (item.triggerFieldVal == nowValue || nowValue.split(',').indexOf(item.triggerFieldVal) != -1) {
1809
- itemParam.isHidden = true;
1810
- defaulthideFields.push(itemParam.uniqueName);
1811
- console.log("true====" + itemParam.uniqueName);
1812
- } else if (defaulthideFields.indexOf(itemParam.uniqueName) != -1) {
1813
- itemParam.isHidden = true;
1814
- } else {
1815
- console.log("false====" + itemParam.uniqueName);
1816
- itemParam.isHidden = false;
1817
- }
1818
- } else if (editType == 'must') {
1819
- // relaFieldMap["key"]="required";
1820
- var triggerFieldValBoolean = false;
1821
- if (item.triggerFieldVal == nowValue || nowValue.split(',').indexOf(item.triggerFieldVal) != -1) {
1822
- itemParam.required = true;
1823
- triggerFieldValBoolean = true;
1824
- } else {
1825
- itemParam.required = false;
1826
- triggerFieldValBoolean = false;
1827
- }
1828
- // var relaFieldNameArray = formRelaFieldMapsObjItem.relaFieldName.split(",");
1829
- // mainTblData.map(function(item){
1830
- // if(item.key==relaFieldNameArray[index]){
1831
- // item.required = triggerFieldValBoolean;
1832
- // }
1833
- // });
1834
- if (item.relaFieldName == mainTblDataItem.key) {
1835
- mainTblDataItem.required = triggerFieldValBoolean;
1836
- }
1837
- } else if (editType == 'edit') {
1838
- if (item.triggerFieldVal == nowValue || nowValue.split(',').indexOf(item.triggerFieldVal) != -1) {
1839
- itemParam.readOnly = false;
1840
- } else {
1841
- itemParam.readOnly = true;
1842
- }
1843
- }
1844
- // }
1845
- }
1846
- });
1847
- } else {
1848
- var subTbls = subTbl.item;
1849
- subTbls.map(function (subTblItem) {
1850
- if (subTbl.tblName == item.triggerTblName) {
1851
- var subTblData = subTblItem;
1852
- subTblData.map(function (mainTblDataItem) {
1853
- if (item.triggerFieldName == mainTblDataItem.itemCode) {
1854
- // if(item.triggerFieldVal == mainTblDataItem.value){
1855
- var nowValue = mainTblDataItem.value ? mainTblDataItem.value : "";
1856
- if (nowValue && nowValue.indexOf("[") >= 0 && nowValue.indexOf("]") >= 0) {
1857
- var nowValueArray = JSON.parse(nowValue);
1858
- if (nowValueArray.length == 1) {
1859
- nowValue = nowValueArray[0];
1860
- } else {
1861
- nowValue = nowValueArray.join(",");
1862
- }
1863
- }
1794
+ // 读取触发字段当前值
1864
1795
 
1865
- var editType = item.editType;
1866
- if (editType == 'hide' || editType == 'rowhide') {
1867
- // relaFieldMap["key"]="isHidden";
1868
- if (item.triggerFieldVal == nowValue || nowValue.split(',').indexOf(item.triggerFieldVal) != -1) {
1869
- itemParam.isHidden = true;
1870
- } else {
1871
- itemParam.isHidden = false;
1872
- }
1873
- } else if (editType == 'must') {
1874
- // relaFieldMap["key"]="required";
1875
- var triggerFieldValBoolean = false;
1876
- if (item.triggerFieldVal == nowValue || nowValue.split(',').indexOf(item.triggerFieldVal) != -1) {
1877
- itemParam.required = true;
1878
- triggerFieldValBoolean = true;
1879
- } else {
1880
- itemParam.required = false;
1881
- triggerFieldValBoolean = false;
1882
- }
1883
- // var relaFieldNameArray = formRelaFieldMapsObjItem.relaFieldName.split(",");
1884
- // mainTblData.map(function(item){
1885
- // if(item.key==relaFieldNameArray[index]){
1886
- // item.required = triggerFieldValBoolean;
1887
- // }
1888
- // });
1889
- if (item.relaFieldName == mainTblDataItem.itemCode) {
1890
- mainTblDataItem.required = triggerFieldValBoolean;
1891
- }
1892
- } else if (editType == 'edit') {
1893
- if (item.triggerFieldVal == nowValue || nowValue.split(',').indexOf(item.triggerFieldVal) != -1) {
1894
- itemParam.readOnly = false;
1895
- } else {
1896
- itemParam.readOnly = true;
1897
- }
1898
- }
1899
- // }
1900
- }
1901
- });
1902
- }
1903
- });
1904
- }
1905
- });
1796
+ }, {
1797
+ key: 'getRelaTriggerFieldValue',
1798
+ value: function getRelaTriggerFieldValue(rule, data, allForm) {
1799
+ var nowValue = "";
1800
+ var mainTblData = data.mainTblData || [];
1801
+ var mainTblName = data.mainTblName;
1802
+ if (rule.triggerTblName == mainTblName) {
1803
+ for (var i = 0; i < mainTblData.length; i++) {
1804
+ if (mainTblData[i].key == rule.triggerFieldName) {
1805
+ nowValue = mainTblData[i].value ? mainTblData[i].value : "";
1806
+ break;
1807
+ }
1906
1808
  }
1809
+ } else if (allForm && allForm.item) {
1810
+ allForm.item.map(function (subTblItem) {
1811
+ if (allForm.tblName == rule.triggerTblName && subTblItem) {
1812
+ subTblItem.map(function (subField) {
1813
+ if (subField.itemCode == rule.triggerFieldName) {
1814
+ nowValue = subField.value ? subField.value : "";
1815
+ }
1816
+ });
1817
+ }
1818
+ });
1819
+ }
1820
+ return this.normalizeRelaTriggerValue(nowValue);
1821
+ }
1822
+ }, {
1823
+ key: 'isRelaRuleMatched',
1824
+ value: function isRelaRuleMatched(rule, nowValue) {
1825
+ var triggerFieldVal = rule.triggerFieldVal;
1826
+ if (triggerFieldVal == " ") {
1827
+ triggerFieldVal = "";
1828
+ }
1829
+ if (triggerFieldVal === '') {
1830
+ return true;
1831
+ }
1832
+ return triggerFieldVal == nowValue || nowValue.split(',').indexOf(triggerFieldVal) != -1;
1833
+ }
1834
+
1835
+ //处理关联字段初始化(按 relaFieldsMap 全局顺序,后写入覆盖先写入,与配置页优先级一致)
1836
+
1837
+ }, {
1838
+ key: 'dealwithRelaField',
1839
+ value: function dealwithRelaField(itemParam, allForm) {
1840
+ var formRelaFieldMaps = this.props.formRelaFieldMaps;
1841
+ if (!formRelaFieldMaps || !formRelaFieldMaps[itemParam.uniqueName]) {
1842
+ return itemParam;
1843
+ }
1844
+ var data = this.props.data;
1845
+ var formRelaFieldMapsArray = formRelaFieldMaps[itemParam.uniqueName];
1846
+ var fieldControll = this.props.fieldControll || {};
1847
+ var defaulthideFields = [];
1848
+ if (fieldControll.hiddenFields) {
1849
+ fieldControll.hiddenFields.split(',').forEach(function (f) {
1850
+ if (f) {
1851
+ defaulthideFields.push(f);
1852
+ }
1853
+ });
1854
+ }
1855
+ if (defaulthideFields.indexOf(itemParam.uniqueName) != -1) {
1856
+ itemParam.isHidden = true;
1857
+ }
1858
+
1859
+ formRelaFieldMapsArray.forEach(function (rule) {
1860
+ var nowValue = this.getRelaTriggerFieldValue(rule, data, allForm);
1861
+ var matched = this.isRelaRuleMatched(rule, nowValue);
1862
+ var editType = rule.editType;
1863
+ if (editType == 'hide' || editType == 'rowhide') {
1864
+ if (matched) {
1865
+ itemParam.isHidden = true;
1866
+ } else if (defaulthideFields.indexOf(itemParam.uniqueName) == -1) {
1867
+ itemParam.isHidden = false;
1868
+ }
1869
+ } else if (editType == 'must') {
1870
+ if (matched) {
1871
+ itemParam.required = true;
1872
+ } else {
1873
+ itemParam.required = false;
1874
+ }
1875
+ } else if (editType == 'edit') {
1876
+ if (matched) {
1877
+ itemParam.readOnly = false;
1878
+ } else if (nowValue != '') {
1879
+ itemParam.readOnly = true;
1880
+ }
1881
+ }
1882
+ }.bind(this));
1883
+
1884
+ if (itemParam.isHidden) {
1885
+ itemParam.required = false;
1907
1886
  }
1908
1887
  return itemParam;
1909
1888
  }
@@ -1932,12 +1911,13 @@ var PageHome = function (_React$Component) {
1932
1911
  this.loadComponet();
1933
1912
  }
1934
1913
 
1935
- //重新加载组件
1914
+ //重新加载组件;options.silent=true 时不向上触发 onChange(用于字段关联批量刷新,避免死循环)
1936
1915
 
1937
1916
  }, {
1938
1917
  key: 'reloadItemParam',
1939
- value: function reloadItemParam(itemNew) {
1918
+ value: function reloadItemParam(itemNew, options) {
1940
1919
  var dataType = this.state.dataType;
1920
+ var silent = options && options.silent === true;
1941
1921
 
1942
1922
  if (itemNew != null && itemNew != undefined && Array.isArray(itemNew)) {
1943
1923
  var itemParam = this.state.itemParam;
@@ -2005,7 +1985,14 @@ var PageHome = function (_React$Component) {
2005
1985
  if (itemParam.itemType == 'popuser') {
2006
1986
  this.refs['selectMember_' + itemParam.key].initSelectData();
2007
1987
  }
2008
- this.props.onChange(this.props.data, itemParam);
1988
+ // 静默刷新时仍需同步 mainTblData.required,否则提交校验不生效
1989
+ if (silent && this.props.data) {
1990
+ var formData = this.props.data;
1991
+ this.dealwithData(itemParam, formData.mainTblData || [], formData.relatedTbl || []);
1992
+ }
1993
+ if (!silent && this.props.onChange) {
1994
+ this.props.onChange(this.props.data, itemParam);
1995
+ }
2009
1996
  });
2010
1997
  }
2011
1998
  }
@@ -2166,7 +2153,7 @@ var PageHome = function (_React$Component) {
2166
2153
  var fieldTblId = itemParam.tblId;
2167
2154
  var fieldTblName = itemParam.tblName;
2168
2155
  //处理操作返回数据
2169
- if (typeof FlowCommon.dealwithReturnData === "function") {
2156
+ if (FlowCommon && typeof FlowCommon.dealwithReturnData === "function") {
2170
2157
  FlowCommon.dealwithReturnData(itemCode, value, function (itemCode1, value1) {
2171
2158
  itemCode = itemCode1;
2172
2159
  value = value1;
@@ -0,0 +1,152 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.loadFlowOrFormCommon = loadFlowOrFormCommon;
7
+ exports.resolveMobileFormExt = resolveMobileFormExt;
8
+ /**
9
+ * 表单扩展加载:流程 flow_common / 纯表单 form_common
10
+ *
11
+ * form_common 使用包内 require.context('./form_common'),避免宿主无 pages/form_common 时 webpack 告警。
12
+ * 宿主扩展目录请通过 webpack alias 映射到 fmui-base/lib/form/form_common(见 tblform/README)。
13
+ */
14
+
15
+ var formCommonContext = require.context('./form_common', false, /\.js$/);
16
+
17
+ function loadFormCommonModule(formCode) {
18
+
19
+ if (!formCode) {
20
+
21
+ return null;
22
+ }
23
+
24
+ var keys = ['./' + formCode + '.js', './' + formCode];
25
+
26
+ for (var i = 0; i < keys.length; i++) {
27
+
28
+ if (!formCommonContext.keys().includes(keys[i])) {
29
+
30
+ continue;
31
+ }
32
+
33
+ try {
34
+
35
+ var mod = formCommonContext(keys[i]);
36
+
37
+ return mod.default ? mod.default : mod;
38
+ } catch (e) {
39
+
40
+ // try next key
41
+
42
+ }
43
+ }
44
+
45
+ return loadFormCommonFromGlobal(formCode);
46
+ }
47
+
48
+ /** 宿主可在 window 挂载 {formCode}_formCommon,无需改 node_modules */
49
+
50
+ function loadFormCommonFromGlobal(formCode) {
51
+
52
+ if (!formCode) {
53
+
54
+ return null;
55
+ }
56
+
57
+ try {
58
+
59
+ var globalName = formCode + '_formCommon';
60
+
61
+ if (typeof window !== 'undefined' && window[globalName]) {
62
+
63
+ return window[globalName];
64
+ }
65
+
66
+ if (typeof global !== 'undefined' && global[globalName]) {
67
+
68
+ return global[globalName];
69
+ }
70
+ } catch (e) {
71
+
72
+ // ignore
73
+
74
+ }
75
+
76
+ return null;
77
+ }
78
+
79
+ function loadFlowOrFormCommon(props) {
80
+
81
+ var formCode = props && props.formCode || '';
82
+
83
+ var module = props && props.module;
84
+
85
+ if (module === undefined || module === null || module === 'undefined') {
86
+
87
+ module = formCode ? '' : 'approve';
88
+ }
89
+
90
+ var FlowCommon = null;
91
+
92
+ try {
93
+
94
+ if (formCode) {
95
+
96
+ FlowCommon = loadFormCommonModule(formCode);
97
+ } else if (module) {
98
+
99
+ var mod = require('pages/flow_common/' + module);
100
+
101
+ FlowCommon = mod.default ? mod.default : mod;
102
+ }
103
+ } catch (e) {
104
+
105
+ FlowCommon = null;
106
+ }
107
+
108
+ return { FlowCommon: FlowCommon, module: module, formCode: formCode };
109
+ }
110
+
111
+ /** form_common: {formCode}_mobileExt;流程: {module}_{formKey}_mobileExt */
112
+
113
+ function resolveMobileFormExt(formCode, module, formKey) {
114
+
115
+ if (formCode) {
116
+
117
+ try {
118
+
119
+ var extName = formCode + '_mobileExt';
120
+
121
+ if (typeof eval(extName) !== 'undefined') {
122
+
123
+ return eval(extName);
124
+ }
125
+ } catch (e) {
126
+
127
+ // ignore
128
+
129
+ }
130
+
131
+ return null;
132
+ }
133
+
134
+ if (module && formKey) {
135
+
136
+ try {
137
+
138
+ var _extName = module + '_' + formKey + '_mobileExt';
139
+
140
+ if (typeof eval(_extName) !== 'undefined') {
141
+
142
+ return eval(_extName);
143
+ }
144
+ } catch (e) {
145
+
146
+ // ignore
147
+
148
+ }
149
+ }
150
+
151
+ return null;
152
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 占位模块:无 form_common 扩展时不报错。
3
+ * 业务扩展请放在宿主工程 pages/form_common/,并通过 webpack alias 指向本目录(见 tblform/README)。
4
+ */
5
+ export default {};