@bchr/bchr-front-lib 0.3.104 → 0.3.108

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.
@@ -44,5 +44,191 @@ window.AppFormulaFunctions = {
44
44
  }
45
45
 
46
46
  return null;
47
+ },
48
+ // YH use 生活补贴标准级别
49
+ lifeBTLevel: function lifeBTLevel(post_wa_rank_pk, work_place_pk) {
50
+ if (!post_wa_rank_pk || !work_place_pk || post_wa_rank_pk == "0") {
51
+ return null;
52
+ }
53
+
54
+ post_wa_rank_pk = post_wa_rank_pk + "";
55
+ work_place_pk = work_place_pk + ""; // M8 和T6以上级别
56
+
57
+ var postWaRankOfDeptLevelAndUp = ["601801", "601802", "601803", "601804", "601805", "601806", "601807", "601808", "601817", "601818", "601819", "601820", "601821", "601822"];
58
+
59
+ if (work_place_pk == "1119004" || work_place_pk == "1119006") {
60
+ if (postWaRankOfDeptLevelAndUp.findIndex(function (item) {
61
+ return item == post_wa_rank_pk;
62
+ }) !== -1) {
63
+ // 400
64
+ return "6043006";
65
+ } else {
66
+ // 320
67
+ return "6043008";
68
+ }
69
+ } else if (work_place_pk == "1119001" || work_place_pk == "1119002" || work_place_pk == "1119003" || work_place_pk == "1119008") {
70
+ if (postWaRankOfDeptLevelAndUp.findIndex(function (item) {
71
+ return item == post_wa_rank_pk;
72
+ }) !== -1) {
73
+ // 355
74
+ return "6043007";
75
+ } else {
76
+ // 284
77
+ return "6043010";
78
+ }
79
+ } else if (work_place_pk == "1119005" || work_place_pk == "1119007") {
80
+ if (postWaRankOfDeptLevelAndUp.findIndex(function (item) {
81
+ return item == post_wa_rank_pk;
82
+ }) !== -1) {
83
+ //250
84
+ return "6043011";
85
+ } else {
86
+ // 200;
87
+ return "6043012";
88
+ }
89
+ }
90
+
91
+ return null;
92
+ },
93
+ // YH use 房补级别
94
+ houseBTLevel: function houseBTLevel(post_wa_rank_pk, work_place_pk, person_class_pk) {
95
+ if (!post_wa_rank_pk || !work_place_pk || !person_class_pk) {
96
+ return null;
97
+ }
98
+
99
+ post_wa_rank_pk = post_wa_rank_pk + "";
100
+ work_place_pk = work_place_pk + "";
101
+ person_class_pk = person_class_pk + "";
102
+
103
+ if (post_wa_rank_pk == "0" || post_wa_rank_pk == "0") {
104
+ return null;
105
+ } //100006、100011、101003、101006、103006、103011
106
+
107
+
108
+ var houseBTPersonClassPKs = ["100006", "100011", "101003", "101006", "103006", "103011"];
109
+
110
+ if (houseBTPersonClassPKs.findIndex(function (item) {
111
+ return item == person_class_pk;
112
+ }) === -1) {
113
+ return null;
114
+ } // 塘沽 燕郊 新疆 上海 湛江 深圳 海南 海外 其他
115
+ // 1119001 1119002 1119003 1119004 1119005 1119006 1119007 1119008 1119999
116
+ // M6 和T4以上级别
117
+
118
+
119
+ var postWaRankOfM6AndT4Up = ["601801", "601802", "601803", "601804", "601805", "601806", "601817", "601818", "601819", "601820"]; // M6—M7和T5-T6/W1以上级别
120
+
121
+ var postWaRankOfM7_8AndT5_6 = ["601807", "601808", "601821", "601822", "601831"]; // M9/T7级及以下
122
+ // let postWaRankOfM9AndT7Down = [
123
+ // "601809", "601810", "601811", "601812", "601813", "601814", "601815", "601816",
124
+ // "601823", "601824", "601825", "601826", "601827", "601828", "601829", "601830",
125
+ // ];
126
+
127
+ if (work_place_pk == "1119004" || work_place_pk == "1119006") {
128
+ if (postWaRankOfM6AndT4Up.findIndex(function (item) {
129
+ return item == post_wa_rank_pk;
130
+ }) !== -1) {
131
+ // 1800元/月
132
+ return "6046007";
133
+ } else if (postWaRankOfM7_8AndT5_6.findIndex(function (item) {
134
+ return item == post_wa_rank_pk;
135
+ }) !== -1) {
136
+ // 1500元/月
137
+ return "6046005";
138
+ } else {
139
+ // 1200元/月
140
+ return "6046003";
141
+ }
142
+ } else if (work_place_pk == "1119003") {
143
+ if (person_class_pk == "100006" || person_class_pk == "101003" || person_class_pk == "103006") {
144
+ // 800元/月
145
+ return "6046001";
146
+ } else if (person_class_pk == "1129012") {
147
+ if (postWaRankOfM6AndT4Up.findIndex(function (item) {
148
+ return item == post_wa_rank_pk;
149
+ }) !== -1) {
150
+ // 1650元/月
151
+ return "6046006";
152
+ } else if (postWaRankOfM7_8AndT5_6.findIndex(function (item) {
153
+ return item == post_wa_rank_pk;
154
+ }) !== -1) {
155
+ // 1350元/月
156
+ return "6046004";
157
+ } else {
158
+ // 1100元/月
159
+ return "6046002";
160
+ }
161
+ }
162
+ } else {
163
+ if (postWaRankOfM6AndT4Up.findIndex(function (item) {
164
+ return item == post_wa_rank_pk;
165
+ }) !== -1) {
166
+ // 1650元/月
167
+ return "6046006";
168
+ } else if (postWaRankOfM7_8AndT5_6.findIndex(function (item) {
169
+ return item == post_wa_rank_pk;
170
+ }) !== -1) {
171
+ // 1350元/月
172
+ return "6046004";
173
+ } else {
174
+ // 1100元/月
175
+ return "6046002";
176
+ }
177
+ }
178
+
179
+ return null;
180
+ },
181
+ // YH use 意外险级别
182
+ accidentInsLevel: function accidentInsLevel(execute_wa_grade_pk) {
183
+ if (!execute_wa_grade_pk) {
184
+ return null;
185
+ }
186
+
187
+ execute_wa_grade_pk = execute_wa_grade_pk + "";
188
+
189
+ if (execute_wa_grade_pk == "0") {
190
+ return null;
191
+ } // M1
192
+
193
+
194
+ var executeWaGradeLevel1 = ["601801"]; // M2、M3、T1
195
+
196
+ var executeWaGradeLevel2 = ["601802", "601803", "601817"]; // M4-M6、T2-T4
197
+
198
+ var executeWaGradeLevel3 = ["601804", "601805", "601806", "601818", "601819", "601820"]; // M7-M8、T5-T6
199
+
200
+ var executeWaGradeLevel4 = ["601807", "601808", "601821", "601822"]; // M9-M13、T7-T11、W6及以上
201
+
202
+ var executeWaGradeLevel5 = ["601809", "601810", "601811", "601812", "601813", "601823", "601824", "601825", "601826", "601827", "601828", "601829", "601831", "601832", "601833", "601834", "601835", "601836"];
203
+
204
+ if (executeWaGradeLevel1.findIndex(function (item) {
205
+ return item == execute_wa_grade_pk;
206
+ }) !== -1) {
207
+ // 1级
208
+ return "601701";
209
+ } else if (executeWaGradeLevel2.findIndex(function (item) {
210
+ return item == execute_wa_grade_pk;
211
+ }) !== -1) {
212
+ // 2~3级
213
+ return "601702";
214
+ } else if (executeWaGradeLevel3.findIndex(function (item) {
215
+ return item == execute_wa_grade_pk;
216
+ }) !== -1) {
217
+ // 4~5级
218
+ return "601703";
219
+ } else if (executeWaGradeLevel4.findIndex(function (item) {
220
+ return item == execute_wa_grade_pk;
221
+ }) !== -1) {
222
+ // 6~8级
223
+ return "601704";
224
+ } else if (executeWaGradeLevel5.findIndex(function (item) {
225
+ return item == execute_wa_grade_pk;
226
+ }) !== -1) {
227
+ // 9~12级
228
+ return "601705";
229
+ } else {
230
+ // 13级及以下
231
+ return "601706";
232
+ }
47
233
  }
48
234
  };
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.customDefIcon = customDefIcon;
7
7
  exports.rebuildDate = rebuildDate;
8
- exports.jsonToMap = exports.mapToJson = exports.parentsInsertchildrenOfCustomizeAsParentColumn = exports.listToTreeDataOfCustomizeAsParentColumn = exports.praseStrEmpty = exports.listToTreeDataByTopParentPk = exports.listToTreeData = exports.getFunctionLetHelpFilePath = exports.buildPathNameWithPropsMatch = exports.FunctionLetHelper = exports.genGetterAndReadonlySetter = void 0;
8
+ exports.treeDataToListByChildFieldName = exports.jsonToMap = exports.mapToJson = exports.parentsInsertchildrenOfCustomizeAsParentColumn = exports.listToTreeDataOfCustomizeAsParentColumn = exports.praseStrEmpty = exports.listToTreeDataByTopParentPk = exports.listToTreeData = exports.getFunctionLetHelpFilePath = exports.buildPathNameWithPropsMatch = exports.FunctionLetHelper = exports.genGetterAndReadonlySetter = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
@@ -195,6 +195,31 @@ var listToTreeData = function listToTreeData(data) {
195
195
 
196
196
  exports.listToTreeData = listToTreeData;
197
197
 
198
+ function getChildNodesToListData(parent_nodes, listData, childFieldName) {
199
+ for (var i = 0, len = parent_nodes.length; i < len; i++) {
200
+ var parent_node_item = parent_nodes[i];
201
+ listData.push(parent_node_item);
202
+ var childrenData = parent_node_item[childFieldName];
203
+
204
+ if (childrenData && childrenData.length > 0) {
205
+ getChildNodesToListData(childrenData, listData, childFieldName);
206
+ }
207
+ }
208
+ }
209
+
210
+ var treeDataToListByChildFieldName = function treeDataToListByChildFieldName(treeData, childFieldName) {
211
+ var listData = [];
212
+
213
+ if (!treeData || treeData.length == 0) {
214
+ return listData;
215
+ }
216
+
217
+ getChildNodesToListData(treeData, listData, childFieldName);
218
+ return listData;
219
+ };
220
+
221
+ exports.treeDataToListByChildFieldName = treeDataToListByChildFieldName;
222
+
198
223
  var listToTreeDataByTopParentPk = function listToTreeDataByTopParentPk(data, topParentPk, children_data_container_column_name) {
199
224
  if (topParentPk != 0 && !topParentPk) {
200
225
  return [];
@@ -23,6 +23,8 @@ var _InputPassword = _interopRequireDefault(require("../InputPassword"));
23
23
 
24
24
  require("../../../AppFormulaFunctions");
25
25
 
26
+ var _BaseAppUtils = require("../../../BaseAppUtils");
27
+
26
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
27
29
 
28
30
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
@@ -62,6 +64,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
62
64
  var FormulasValueType = {
63
65
  Disabled: "disabled",
64
66
  Enabled: "enabled",
67
+ Clear: "clear",
65
68
  Function: "AppFormulaFunctions"
66
69
  };
67
70
 
@@ -747,7 +750,15 @@ var FormForModify = /*#__PURE__*/function (_React$Component) {
747
750
  otherFormItemConfig.b_readonly = true;
748
751
  } else if (FormulasValueType.Enabled == formItemValue) {
749
752
  otherFormItemConfig.b_disabled = false;
750
- otherFormItemConfig.b_readonly = true;
753
+ otherFormItemConfig.b_readonly = false;
754
+ } else if (FormulasValueType.Clear == formItemValue) {
755
+ data[code] = null;
756
+ setFieldsValue(_defineProperty({}, code, null));
757
+
758
+ if (display_code) {
759
+ data[display_code] = null;
760
+ setFieldsValue(_defineProperty({}, display_code, null));
761
+ }
751
762
  } else if (formItemValue.startsWith(FormulasValueType.Function)) {
752
763
  var formulaFunctionValue;
753
764
 
@@ -761,7 +772,22 @@ var FormForModify = /*#__PURE__*/function (_React$Component) {
761
772
  return "continue";
762
773
  }
763
774
 
764
- var realFormulaValue = formItemValueList[0] + "data[formItemValueList[1]]" + formItemValueList[2];
775
+ var realFormulaValue = "";
776
+
777
+ for (var m = 0, valueLen = formItemValueList.length; m < valueLen; m++) {
778
+ var formItemParamOrExp = formItemValueList[m].trim();
779
+
780
+ if (m % 2 == 1) {
781
+ realFormulaValue = realFormulaValue + "data[formItemValueList[".concat(m, "]]");
782
+ } else {
783
+ if (formItemParamOrExp == "@") {
784
+ realFormulaValue = realFormulaValue + ",";
785
+ } else {
786
+ realFormulaValue = realFormulaValue + formItemParamOrExp;
787
+ }
788
+ }
789
+ }
790
+
765
791
  formulaFunctionValue = eval(realFormulaValue.replace("@", ","));
766
792
  }
767
793
 
@@ -770,36 +796,73 @@ var FormForModify = /*#__PURE__*/function (_React$Component) {
770
796
  return "continue";
771
797
  }
772
798
 
773
- data[code] = formulaFunctionValue;
774
- var otherFormItemValue;
799
+ var convertedStateValue = _this2.convertStringValueForFormula(ui_render_type, formulaFunctionValue, "dataForState");
775
800
 
776
- if (_consts.UI_RENDER_TYPE.DATE == ui_render_type) {
777
- otherFormItemValue = (0, _moment["default"])(formulaFunctionValue, "YYYY-MM-DD");
778
- } else {
779
- otherFormItemValue = formulaFunctionValue;
801
+ var convertedFormItemValue = _this2.convertStringValueForFormula(ui_render_type, formulaFunctionValue, "dataForForm");
802
+
803
+ data[code] = convertedStateValue;
804
+ setFieldsValue(_defineProperty({}, code, convertedFormItemValue));
805
+
806
+ if (!display_code || display_code.trim().length == 0) {
807
+ return "continue";
780
808
  }
781
809
 
782
- setFieldsValue(_defineProperty({}, code, otherFormItemValue));
783
- } else {
784
- data[code] = formItemValue;
785
- setFieldsValue(_defineProperty({}, code, formItemValue));
810
+ var defList = def_docs["def_" + ref_pk];
786
811
 
787
- if (display_code && display_code.trim().length > 0) {
788
- var dictList = def_docs["def_" + ref_pk];
812
+ if (defList && defList.length > 0) {
813
+ var dictList;
789
814
 
790
- if (dictList && dictList.length > 0) {
791
- var filteredDict = dictList.find(function (item) {
792
- return item.pk.toString() == formItemValue;
815
+ if (_consts.UI_RENDER_TYPE.SELECT == ui_render_type) {
816
+ dictList = defList;
817
+ } else if (_consts.UI_RENDER_TYPE.TREE_SELECT == ui_render_type) {
818
+ dictList = (0, _BaseAppUtils.treeDataToListByChildFieldName)(defList, "children");
819
+ }
820
+
821
+ var filteredDict = dictList.find(function (item) {
822
+ return item.value == formulaFunctionValue;
823
+ });
824
+
825
+ if (filteredDict) {
826
+ var ref_title = filteredDict.title;
827
+ data[display_code] = ref_title;
828
+ setFieldsValue(_defineProperty({}, display_code, ref_title));
829
+ }
830
+ }
831
+ } // last: set value for other form item
832
+ else {
833
+ var _convertedStateValue = _this2.convertStringValueForFormula(ui_render_type, formItemValue, "dataForState");
834
+
835
+ var _convertedFormItemValue = _this2.convertStringValueForFormula(ui_render_type, formItemValue, "dataForForm");
836
+
837
+ data[code] = _convertedStateValue;
838
+ setFieldsValue(_defineProperty({}, code, _convertedFormItemValue));
839
+
840
+ if (!display_code || display_code.trim().length == 0) {
841
+ return "continue";
842
+ }
843
+
844
+ var _defList = def_docs["def_" + ref_pk];
845
+
846
+ if (_defList && _defList.length > 0) {
847
+ var _dictList;
848
+
849
+ if (_consts.UI_RENDER_TYPE.SELECT == ui_render_type) {
850
+ _dictList = _defList;
851
+ } else if (_consts.UI_RENDER_TYPE.TREE_SELECT == ui_render_type) {
852
+ _dictList = (0, _BaseAppUtils.treeDataToListByChildFieldName)(_defList, "children");
853
+ }
854
+
855
+ var _filteredDict = _dictList.find(function (item) {
856
+ return item.value == formItemValue;
793
857
  });
794
858
 
795
- if (filteredDict) {
796
- var ref_title = filteredDict.title;
797
- data[display_code] = ref_title;
798
- setFieldsValue(_defineProperty({}, display_code, ref_title));
859
+ if (_filteredDict) {
860
+ var _ref_title = _filteredDict.title;
861
+ data[display_code] = _ref_title;
862
+ setFieldsValue(_defineProperty({}, display_code, _ref_title));
799
863
  }
800
864
  }
801
865
  }
802
- }
803
866
  };
804
867
 
805
868
  for (var i = 0, len = otherFormItemResponses.length; i < len; i++) {
@@ -830,15 +893,30 @@ var FormForModify = /*#__PURE__*/function (_React$Component) {
830
893
  info_set_fields = _this$props.info_set_fields;
831
894
  var fieldCodeKeyMap = this.state.fieldCodeKeyMap;
832
895
 
833
- if (info_set_fields && info_set_fields.length > 0) {
896
+ if (info_set_fields && info_set_fields.length <= 0) {
834
897
  return;
835
898
  }
836
899
 
837
- for (var i = 0, len = info_set_fields.length; i < len; i++) {
900
+ var fieldsLength = info_set_fields.length; // first parse formula
901
+
902
+ for (var i = 0; i < fieldsLength; i++) {
838
903
  var formItem = info_set_fields[i];
839
904
  this.preParseFormItemExtConfig(formItem);
840
- var code = formItem.code,
841
- ui_render_type = formItem.ui_render_type;
905
+ formItem.b_disabled = formItem.b_readonly;
906
+ fieldCodeKeyMap[formItem.code] = formItem;
907
+ } // then initialization form item
908
+
909
+
910
+ for (var _i2 = 0; _i2 < fieldsLength; _i2++) {
911
+ var _formItem = info_set_fields[_i2];
912
+ var code = _formItem.code,
913
+ ui_render_type = _formItem.ui_render_type,
914
+ editFormulaConfigs = _formItem.editFormulaConfigs;
915
+
916
+ if (!editFormulaConfigs || editFormulaConfigs.length == 0) {
917
+ continue;
918
+ }
919
+
842
920
  var fieldCodeValue = data[code];
843
921
 
844
922
  if (_consts.UI_RENDER_TYPE.SWITCH == ui_render_type) {
@@ -846,11 +924,8 @@ var FormForModify = /*#__PURE__*/function (_React$Component) {
846
924
  }
847
925
 
848
926
  if (fieldCodeValue) {
849
- this.formItemOnChangeForFormula(formItem, fieldCodeValue);
927
+ this.formItemOnChangeForFormula(_formItem, fieldCodeValue);
850
928
  }
851
-
852
- formItem.b_disabled = formItem.b_readonly;
853
- fieldCodeKeyMap[formItem.code] = formItem;
854
929
  }
855
930
 
856
931
  this.setState({
@@ -1150,6 +1225,83 @@ var FormForModify = /*#__PURE__*/function (_React$Component) {
1150
1225
  callback(props);
1151
1226
  }
1152
1227
  }
1228
+ }, {
1229
+ key: "convertStringValueForFormula",
1230
+ // 日期类型的值在表单中和state中的值对象不同(for_data_type: dataForForm || dataForState)
1231
+ value: function convertStringValueForFormula(ui_render_type, formItemValue, for_data_type) {
1232
+ var value;
1233
+
1234
+ switch (ui_render_type) {
1235
+ case _consts.UI_RENDER_TYPE.INPUT:
1236
+ case _consts.UI_RENDER_TYPE.INPUT_NUMBER:
1237
+ case _consts.UI_RENDER_TYPE.INPUT_PASSWORD:
1238
+ case _consts.UI_RENDER_TYPE.TEXT_AREA:
1239
+ case _consts.UI_RENDER_TYPE.TREE_SELECT:
1240
+ value = formItemValue;
1241
+ break;
1242
+
1243
+ case _consts.UI_RENDER_TYPE.SELECT:
1244
+ if (typeof formItemValue === 'number') {
1245
+ value = formItemValue && formItemValue > 0 ? formItemValue : null;
1246
+ } else {
1247
+ value = Number(formItemValue);
1248
+ value = formItemValue && formItemValue > 0 ? formItemValue : null;
1249
+ }
1250
+
1251
+ break;
1252
+
1253
+ case _consts.UI_RENDER_TYPE.DATE:
1254
+ if (for_data_type == "dataForForm") {
1255
+ value = formItemValue ? (0, _moment["default"])(formItemValue) : "";
1256
+ } else {
1257
+ value = formItemValue;
1258
+ }
1259
+
1260
+ break;
1261
+
1262
+ case _consts.UI_RENDER_TYPE.DATE_YEAR:
1263
+ if (for_data_type == "dataForForm") {
1264
+ value = formItemValue ? (0, _moment["default"])(formItemValue, 'YYYY') : "";
1265
+ } else {
1266
+ value = formItemValue;
1267
+ }
1268
+
1269
+ break;
1270
+
1271
+ case _consts.UI_RENDER_TYPE.DATE_MONTH:
1272
+ if (for_data_type == "dataForForm") {
1273
+ value = formItemValue ? (0, _moment["default"])(formItemValue, 'YYYYMM') : "";
1274
+ } else {
1275
+ value = formItemValue;
1276
+ }
1277
+
1278
+ break;
1279
+
1280
+ case _consts.UI_RENDER_TYPE.DATE_TIME:
1281
+ if (for_data_type == "dataForForm") {
1282
+ value = formItemValue ? (0, _moment["default"])(formItemValue).format("YYYY-MM-DD hh:mm:ss") : "";
1283
+ } else {
1284
+ value = formItemValue;
1285
+ }
1286
+
1287
+ break;
1288
+
1289
+ case _consts.UI_RENDER_TYPE.SWITCH:
1290
+ if (typeof formItemValue === 'boolean') {
1291
+ value = formItemValue;
1292
+ } else {
1293
+ value = (formItemValue + '' || '').toLowerCase() === 'true' || (formItemValue + '' || '').toLowerCase() === '1' ? true : false;
1294
+ }
1295
+
1296
+ break;
1297
+
1298
+ default:
1299
+ value = formItemValue;
1300
+ break;
1301
+ }
1302
+
1303
+ return value;
1304
+ }
1153
1305
  }, {
1154
1306
  key: "switchOnChange",
1155
1307
  value: function switchOnChange(config, callback, checked, event) {
@@ -364,7 +364,10 @@ var HttpService = /*#__PURE__*/function () {
364
364
  var containsHTML = /<(br|basefont|hr|input|source|frame|param|area|meta|!--|col|link|option|base|img|wbr|!DOCTYPE).*?>|<(a|abbr|acronym|address|applet|article|aside|audio|b|bdi|bdo|big|blockquote|body|button|canvas|caption|center|cite|code|colgroup|command|datalist|dd|del|details|dfn|dialog|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frameset|head|header|hgroup|h1|h2|h3|h4|h5|h6|html|i|iframe|ins|kbd|keygen|label|legend|li|map|mark|menu|meter|nav|noframes|noscript|object|ol|optgroup|output|p|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video).*?<\/\2>/i.test(str);
365
365
 
366
366
  if (containsHTML) {
367
- throw new Error("不安全的输入,请检查!");
367
+ new Promise(function (resolve, reject) {
368
+ reject("不安全的输入,请检查!");
369
+ });
370
+ return;
368
371
  }
369
372
  }
370
373
  }, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bchr/bchr-front-lib",
3
- "version": "0.3.104",
3
+ "version": "0.3.108",
4
4
  "description": "bchr front lib",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -44,5 +44,183 @@ window.AppFormulaFunctions = {
44
44
  }
45
45
 
46
46
  return null;
47
+ },
48
+
49
+ // YH use 生活补贴标准级别
50
+ lifeBTLevel : function (post_wa_rank_pk, work_place_pk) {
51
+ if (!post_wa_rank_pk || !work_place_pk || post_wa_rank_pk == "0") {
52
+ return null
53
+ }
54
+
55
+ post_wa_rank_pk = post_wa_rank_pk + "";
56
+ work_place_pk = work_place_pk + "";
57
+
58
+ // M8 和T6以上级别
59
+ let postWaRankOfDeptLevelAndUp = [
60
+ "601801", "601802", "601803", "601804", "601805", "601806", "601807", "601808",
61
+ "601817", "601818", "601819", "601820", "601821", "601822",
62
+ ];
63
+
64
+ if (work_place_pk == "1119004" || work_place_pk == "1119006") {
65
+ if (postWaRankOfDeptLevelAndUp.findIndex(item => item == post_wa_rank_pk) !== -1) {
66
+ // 400
67
+ return "6043006";
68
+ } else {
69
+ // 320
70
+ return "6043008";
71
+ }
72
+ } else if (work_place_pk == "1119001" || work_place_pk == "1119002" || work_place_pk == "1119003" || work_place_pk == "1119008") {
73
+ if (postWaRankOfDeptLevelAndUp.findIndex(item => item == post_wa_rank_pk) !== -1) {
74
+ // 355
75
+ return "6043007";
76
+ } else {
77
+ // 284
78
+ return "6043010";
79
+ }
80
+ } else if (work_place_pk == "1119005" || work_place_pk == "1119007") {
81
+ if (postWaRankOfDeptLevelAndUp.findIndex(item => item == post_wa_rank_pk) !== -1) {
82
+ //250
83
+ return "6043011";
84
+ } else {
85
+ // 200;
86
+ return "6043012";
87
+ }
88
+ }
89
+
90
+ return null;
91
+ },
92
+
93
+ // YH use 房补级别
94
+ houseBTLevel : function (post_wa_rank_pk, work_place_pk, person_class_pk) {
95
+ if (!post_wa_rank_pk || !work_place_pk || !person_class_pk) {
96
+ return null
97
+ }
98
+
99
+ post_wa_rank_pk = post_wa_rank_pk + "";
100
+ work_place_pk = work_place_pk + "";
101
+ person_class_pk = person_class_pk + "";
102
+
103
+ if (post_wa_rank_pk == "0" || post_wa_rank_pk == "0")
104
+ {
105
+ return null;
106
+ }
107
+
108
+ //100006、100011、101003、101006、103006、103011
109
+ let houseBTPersonClassPKs = ["100006", "100011", "101003", "101006", "103006", "103011"];
110
+ if (houseBTPersonClassPKs.findIndex(item => item == person_class_pk) === -1) {
111
+ return null;
112
+ }
113
+
114
+ // 塘沽 燕郊 新疆 上海 湛江 深圳 海南 海外 其他
115
+ // 1119001 1119002 1119003 1119004 1119005 1119006 1119007 1119008 1119999
116
+
117
+ // M6 和T4以上级别
118
+ let postWaRankOfM6AndT4Up = [
119
+ "601801", "601802", "601803", "601804", "601805", "601806",
120
+ "601817", "601818", "601819", "601820",
121
+ ];
122
+
123
+ // M6—M7和T5-T6/W1以上级别
124
+ let postWaRankOfM7_8AndT5_6 = [
125
+ "601807", "601808",
126
+ "601821", "601822",
127
+ "601831",
128
+ ];
129
+
130
+ // M9/T7级及以下
131
+ // let postWaRankOfM9AndT7Down = [
132
+ // "601809", "601810", "601811", "601812", "601813", "601814", "601815", "601816",
133
+ // "601823", "601824", "601825", "601826", "601827", "601828", "601829", "601830",
134
+ // ];
135
+
136
+ if (work_place_pk == "1119004" || work_place_pk == "1119006") {
137
+ if (postWaRankOfM6AndT4Up.findIndex(item => item == post_wa_rank_pk) !== -1) {
138
+ // 1800元/月
139
+ return "6046007";
140
+ } else if (postWaRankOfM7_8AndT5_6.findIndex(item => item == post_wa_rank_pk) !== -1) {
141
+ // 1500元/月
142
+ return "6046005";
143
+ } else {
144
+ // 1200元/月
145
+ return "6046003";
146
+ }
147
+ } else if (work_place_pk == "1119003") {
148
+ if (person_class_pk == "100006" || person_class_pk == "101003" || person_class_pk == "103006") {
149
+ // 800元/月
150
+ return "6046001"
151
+ } else if (person_class_pk == "1129012") {
152
+ if (postWaRankOfM6AndT4Up.findIndex(item => item == post_wa_rank_pk) !== -1) {
153
+ // 1650元/月
154
+ return "6046006";
155
+ } else if (postWaRankOfM7_8AndT5_6.findIndex(item => item == post_wa_rank_pk) !== -1) {
156
+ // 1350元/月
157
+ return "6046004";
158
+ } else {
159
+ // 1100元/月
160
+ return "6046002";
161
+ }
162
+ }
163
+ } else {
164
+ if (postWaRankOfM6AndT4Up.findIndex(item => item == post_wa_rank_pk) !== -1) {
165
+ // 1650元/月
166
+ return "6046006";
167
+ } else if (postWaRankOfM7_8AndT5_6.findIndex(item => item == post_wa_rank_pk) !== -1) {
168
+ // 1350元/月
169
+ return "6046004";
170
+ } else {
171
+ // 1100元/月
172
+ return "6046002";
173
+ }
174
+ }
175
+
176
+ return null;
177
+ },
178
+
179
+ // YH use 意外险级别
180
+ accidentInsLevel : function (execute_wa_grade_pk) {
181
+ if (!execute_wa_grade_pk) {
182
+ return null;
183
+ }
184
+
185
+ execute_wa_grade_pk = execute_wa_grade_pk + "";
186
+
187
+ if (execute_wa_grade_pk == "0") {
188
+ return null
189
+ }
190
+
191
+ // M1
192
+ let executeWaGradeLevel1 = ["601801"];
193
+ // M2、M3、T1
194
+ let executeWaGradeLevel2 = ["601802", "601803", "601817"];
195
+ // M4-M6、T2-T4
196
+ let executeWaGradeLevel3 = ["601804", "601805", "601806", "601818", "601819", "601820"];
197
+ // M7-M8、T5-T6
198
+ let executeWaGradeLevel4 = ["601807", "601808", "601821", "601822"];
199
+ // M9-M13、T7-T11、W6及以上
200
+ let executeWaGradeLevel5 = [
201
+ "601809", "601810", "601811", "601812", "601813",
202
+ "601823", "601824", "601825", "601826", "601827", "601828", "601829",
203
+ "601831", "601832", "601833", "601834", "601835", "601836",
204
+ ];
205
+
206
+ if (executeWaGradeLevel1.findIndex(item => item == execute_wa_grade_pk) !== -1) {
207
+ // 1级
208
+ return "601701";
209
+ } else if (executeWaGradeLevel2.findIndex(item => item == execute_wa_grade_pk) !== -1) {
210
+ // 2~3级
211
+ return "601702";
212
+ } else if (executeWaGradeLevel3.findIndex(item => item == execute_wa_grade_pk) !== -1) {
213
+ // 4~5级
214
+ return "601703";
215
+ } else if (executeWaGradeLevel4.findIndex(item => item == execute_wa_grade_pk) !== -1) {
216
+ // 6~8级
217
+ return "601704";
218
+ } else if (executeWaGradeLevel5.findIndex(item => item == execute_wa_grade_pk) !== -1) {
219
+ // 9~12级
220
+ return "601705";
221
+ } else {
222
+ // 13级及以下
223
+ return "601706";
224
+ }
47
225
  }
48
226
  };
@@ -146,6 +146,31 @@ const listToTreeData = function(data) {
146
146
  return treeData;
147
147
  };
148
148
 
149
+
150
+ function getChildNodesToListData(parent_nodes, listData, childFieldName) {
151
+ for (let i = 0, len = parent_nodes.length; i < len; i++) {
152
+ let parent_node_item = parent_nodes[i];
153
+ listData.push(parent_node_item);
154
+
155
+ let childrenData = parent_node_item[childFieldName];
156
+ if (childrenData && childrenData.length > 0) {
157
+ getChildNodesToListData(childrenData, listData, childFieldName);
158
+ }
159
+ }
160
+ }
161
+
162
+ const treeDataToListByChildFieldName = function(treeData, childFieldName) {
163
+ let listData = [];
164
+
165
+ if (!treeData || treeData.length == 0) {
166
+ return listData;
167
+ }
168
+
169
+ getChildNodesToListData(treeData, listData, childFieldName);
170
+
171
+ return listData;
172
+ };
173
+
149
174
  const listToTreeDataByTopParentPk = function(data, topParentPk, children_data_container_column_name) {
150
175
  if (topParentPk != 0 && !topParentPk) {
151
176
  return [];
@@ -261,5 +286,6 @@ export {
261
286
  listToTreeDataOfCustomizeAsParentColumn,
262
287
  parentsInsertchildrenOfCustomizeAsParentColumn,
263
288
  mapToJson,
264
- jsonToMap
289
+ jsonToMap,
290
+ treeDataToListByChildFieldName
265
291
  }
@@ -23,10 +23,12 @@ import zhCN from "antd/es/locale/zh_CN";
23
23
  import HttpService from "../../../../services/HttpService";
24
24
  import InputPassword from "../InputPassword";
25
25
  import '../../../AppFormulaFunctions'
26
+ import {treeDataToListByChildFieldName} from "../../../BaseAppUtils";
26
27
 
27
28
  const FormulasValueType = {
28
29
  Disabled : "disabled",
29
30
  Enabled : "enabled",
31
+ Clear : "clear",
30
32
  Function : "AppFormulaFunctions",
31
33
  }
32
34
 
@@ -45,16 +47,31 @@ class FormForModify extends React.Component{
45
47
  let {data, info_set_fields} = this.props;
46
48
  let {fieldCodeKeyMap} = this.state;
47
49
 
48
- if (info_set_fields && info_set_fields.length > 0) {
50
+ if (info_set_fields && info_set_fields.length <= 0) {
49
51
  return;
50
52
  }
51
53
 
52
- for (let i = 0, len = info_set_fields.length; i < len; i++) {
54
+ let fieldsLength = info_set_fields.length;
55
+ // first parse formula
56
+ for (let i = 0; i < fieldsLength; i++) {
53
57
  let formItem = info_set_fields[i];
54
58
 
55
59
  this.preParseFormItemExtConfig(formItem);
56
60
 
57
- let {code, ui_render_type} = formItem;
61
+ formItem.b_disabled = formItem.b_readonly;
62
+ fieldCodeKeyMap[formItem.code] = formItem;
63
+ }
64
+
65
+ // then initialization form item
66
+ for (let i = 0; i < fieldsLength; i++) {
67
+ let formItem = info_set_fields[i];
68
+
69
+ let {code, ui_render_type, editFormulaConfigs} = formItem;
70
+
71
+ if (!editFormulaConfigs || editFormulaConfigs.length == 0) {
72
+ continue;
73
+ }
74
+
58
75
  let fieldCodeValue = data[code];
59
76
 
60
77
  if (UI_RENDER_TYPE.SWITCH == ui_render_type) {
@@ -64,9 +81,6 @@ class FormForModify extends React.Component{
64
81
  if (fieldCodeValue) {
65
82
  this.formItemOnChangeForFormula(formItem, fieldCodeValue);
66
83
  }
67
-
68
- formItem.b_disabled = formItem.b_readonly;
69
- fieldCodeKeyMap[formItem.code] = formItem;
70
84
  }
71
85
 
72
86
  this.setState({
@@ -1084,7 +1098,15 @@ class FormForModify extends React.Component{
1084
1098
  } else if (FormulasValueType.Enabled == formItemValue) {
1085
1099
 
1086
1100
  otherFormItemConfig.b_disabled = false;
1087
- otherFormItemConfig.b_readonly = true;
1101
+ otherFormItemConfig.b_readonly = false;
1102
+ } else if (FormulasValueType.Clear == formItemValue) {
1103
+ data[code] = null;
1104
+ setFieldsValue({[code]: null});
1105
+
1106
+ if (display_code) {
1107
+ data[display_code] = null;
1108
+ setFieldsValue({[display_code]: null});
1109
+ }
1088
1110
  } else if (formItemValue.startsWith(FormulasValueType.Function)) {
1089
1111
  let formulaFunctionValue;
1090
1112
  if (formItemValue.search("#value#") !== -1) {
@@ -1096,7 +1118,19 @@ class FormForModify extends React.Component{
1096
1118
  continue;
1097
1119
  }
1098
1120
 
1099
- let realFormulaValue = formItemValueList[0] + `data[formItemValueList[1]]` + formItemValueList[2];
1121
+ let realFormulaValue = "";
1122
+ for (let m = 0, valueLen = formItemValueList.length; m < valueLen; m++) {
1123
+ let formItemParamOrExp = formItemValueList[m].trim();
1124
+ if (m % 2 == 1) {
1125
+ realFormulaValue = realFormulaValue + `data[formItemValueList[${m}]]`;
1126
+ } else {
1127
+ if (formItemParamOrExp == "@") {
1128
+ realFormulaValue = realFormulaValue + ",";
1129
+ } else {
1130
+ realFormulaValue = realFormulaValue + formItemParamOrExp;
1131
+ }
1132
+ }
1133
+ }
1100
1134
 
1101
1135
  formulaFunctionValue = eval(realFormulaValue.replace("@", ","));
1102
1136
  }
@@ -1106,29 +1140,61 @@ class FormForModify extends React.Component{
1106
1140
  continue;
1107
1141
  }
1108
1142
 
1109
- data[code] = formulaFunctionValue;
1143
+ let convertedStateValue = this.convertStringValueForFormula(ui_render_type, formulaFunctionValue, "dataForState");
1144
+ let convertedFormItemValue = this.convertStringValueForFormula(ui_render_type, formulaFunctionValue, "dataForForm");
1110
1145
 
1111
- let otherFormItemValue;
1112
- if (UI_RENDER_TYPE.DATE == ui_render_type) {
1113
- otherFormItemValue = moment(formulaFunctionValue, "YYYY-MM-DD");
1114
- } else {
1115
- otherFormItemValue = formulaFunctionValue;
1146
+ data[code] = convertedStateValue;
1147
+ setFieldsValue({[code]: convertedFormItemValue});
1148
+
1149
+ if (!display_code || display_code.trim().length == 0) {
1150
+ continue;
1116
1151
  }
1117
- setFieldsValue({[code]: otherFormItemValue});
1118
- } else {
1119
- data[code] = formItemValue;
1120
- setFieldsValue({[code]: formItemValue});
1121
-
1122
- if (display_code && display_code.trim().length > 0) {
1123
- let dictList = def_docs["def_" + ref_pk];
1124
- if (dictList && dictList.length > 0) {
1125
- let filteredDict = dictList.find(item => item.pk.toString() == formItemValue);
1126
- if (filteredDict) {
1127
- let ref_title = filteredDict.title;
1128
-
1129
- data[display_code] = ref_title;
1130
- setFieldsValue({[display_code]: ref_title});
1131
- }
1152
+
1153
+ let defList = def_docs["def_" + ref_pk];
1154
+ if (defList && defList.length > 0) {
1155
+ let dictList;
1156
+ if (UI_RENDER_TYPE.SELECT == ui_render_type) {
1157
+ dictList = defList;
1158
+ } else if (UI_RENDER_TYPE.TREE_SELECT == ui_render_type) {
1159
+ dictList = treeDataToListByChildFieldName(defList, "children");
1160
+ }
1161
+
1162
+ let filteredDict = dictList.find(item => item.value == formulaFunctionValue);
1163
+ if (filteredDict) {
1164
+ let ref_title = filteredDict.title;
1165
+
1166
+ data[display_code] = ref_title;
1167
+ setFieldsValue({[display_code]: ref_title});
1168
+ }
1169
+ }
1170
+ }
1171
+ // last: set value for other form item
1172
+ else {
1173
+ let convertedStateValue = this.convertStringValueForFormula(ui_render_type, formItemValue, "dataForState");
1174
+ let convertedFormItemValue = this.convertStringValueForFormula(ui_render_type, formItemValue, "dataForForm");
1175
+
1176
+ data[code] = convertedStateValue;
1177
+ setFieldsValue({[code]: convertedFormItemValue});
1178
+
1179
+ if (!display_code || display_code.trim().length == 0) {
1180
+ continue;
1181
+ }
1182
+
1183
+ let defList = def_docs["def_" + ref_pk];
1184
+ if (defList && defList.length > 0) {
1185
+ let dictList;
1186
+ if (UI_RENDER_TYPE.SELECT == ui_render_type) {
1187
+ dictList = defList;
1188
+ } else if (UI_RENDER_TYPE.TREE_SELECT == ui_render_type) {
1189
+ dictList = treeDataToListByChildFieldName(defList, "children");
1190
+ }
1191
+
1192
+ let filteredDict = dictList.find(item => item.value == formItemValue);
1193
+ if (filteredDict) {
1194
+ let ref_title = filteredDict.title;
1195
+
1196
+ data[display_code] = ref_title;
1197
+ setFieldsValue({[display_code]: ref_title});
1132
1198
  }
1133
1199
  }
1134
1200
  }
@@ -1139,6 +1205,68 @@ class FormForModify extends React.Component{
1139
1205
  }
1140
1206
  }
1141
1207
 
1208
+ // 日期类型的值在表单中和state中的值对象不同(for_data_type: dataForForm || dataForState)
1209
+ convertStringValueForFormula(ui_render_type, formItemValue, for_data_type) {
1210
+ let value;
1211
+ switch (ui_render_type) {
1212
+ case UI_RENDER_TYPE.INPUT:
1213
+ case UI_RENDER_TYPE.INPUT_NUMBER:
1214
+ case UI_RENDER_TYPE.INPUT_PASSWORD:
1215
+ case UI_RENDER_TYPE.TEXT_AREA:
1216
+ case UI_RENDER_TYPE.TREE_SELECT:
1217
+ value = formItemValue;
1218
+ break;
1219
+ case UI_RENDER_TYPE.SELECT:
1220
+ if (typeof formItemValue === 'number') {
1221
+ value = formItemValue && formItemValue > 0 ? formItemValue : null;
1222
+ } else {
1223
+ value = Number(formItemValue);
1224
+ value = formItemValue && formItemValue > 0 ? formItemValue : null;
1225
+ }
1226
+ break;
1227
+ case UI_RENDER_TYPE.DATE:
1228
+ if (for_data_type == "dataForForm") {
1229
+ value = (formItemValue ? moment(formItemValue) : "");
1230
+ } else {
1231
+ value = formItemValue;
1232
+ }
1233
+ break;
1234
+ case UI_RENDER_TYPE.DATE_YEAR:
1235
+ if (for_data_type == "dataForForm") {
1236
+ value = (formItemValue ? moment(formItemValue, 'YYYY') : "");
1237
+ } else {
1238
+ value = formItemValue;
1239
+ }
1240
+ break;
1241
+ case UI_RENDER_TYPE.DATE_MONTH:
1242
+ if (for_data_type == "dataForForm") {
1243
+ value = (formItemValue ? moment(formItemValue, 'YYYYMM') : "");
1244
+ } else {
1245
+ value = formItemValue;
1246
+ }
1247
+ break;
1248
+ case UI_RENDER_TYPE.DATE_TIME:
1249
+ if (for_data_type == "dataForForm") {
1250
+ value = (formItemValue ? moment(formItemValue).format("YYYY-MM-DD hh:mm:ss") : "");
1251
+ } else {
1252
+ value = formItemValue;
1253
+ }
1254
+ break;
1255
+ case UI_RENDER_TYPE.SWITCH:
1256
+ if (typeof formItemValue === 'boolean') {
1257
+ value = formItemValue;
1258
+ } else {
1259
+ value = (((formItemValue + '' || '').toLowerCase() === 'true' || (formItemValue + '' || '').toLowerCase() === '1') ? true : false);
1260
+ }
1261
+ break;
1262
+ default:
1263
+ value = formItemValue;
1264
+ break;
1265
+ }
1266
+
1267
+ return value;
1268
+ }
1269
+
1142
1270
  switchOnChange(config, callback, checked, event) {
1143
1271
  this.formItemOnChangeForFormula(config, checked);
1144
1272
 
@@ -341,7 +341,11 @@ class HttpService {
341
341
 
342
342
  let containsHTML = /<(br|basefont|hr|input|source|frame|param|area|meta|!--|col|link|option|base|img|wbr|!DOCTYPE).*?>|<(a|abbr|acronym|address|applet|article|aside|audio|b|bdi|bdo|big|blockquote|body|button|canvas|caption|center|cite|code|colgroup|command|datalist|dd|del|details|dfn|dialog|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frameset|head|header|hgroup|h1|h2|h3|h4|h5|h6|html|i|iframe|ins|kbd|keygen|label|legend|li|map|mark|menu|meter|nav|noframes|noscript|object|ol|optgroup|output|p|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video).*?<\/\2>/i.test(str);
343
343
  if (containsHTML) {
344
- throw new Error("不安全的输入,请检查!");
344
+ new Promise((resolve, reject) => {
345
+ reject("不安全的输入,请检查!");
346
+ });
347
+
348
+ return;
345
349
  }
346
350
  }
347
351