@bchr/bchr-front-lib 0.3.106 → 0.3.110

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; }
@@ -770,7 +772,22 @@ var FormForModify = /*#__PURE__*/function (_React$Component) {
770
772
  return "continue";
771
773
  }
772
774
 
773
- 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
+
774
791
  formulaFunctionValue = eval(realFormulaValue.replace("@", ","));
775
792
  }
776
793
 
@@ -779,36 +796,73 @@ var FormForModify = /*#__PURE__*/function (_React$Component) {
779
796
  return "continue";
780
797
  }
781
798
 
782
- data[code] = formulaFunctionValue;
783
- var otherFormItemValue;
799
+ var convertedStateValue = _this2.convertStringValueForFormula(ui_render_type, formulaFunctionValue, "dataForState");
784
800
 
785
- if (_consts.UI_RENDER_TYPE.DATE == ui_render_type) {
786
- otherFormItemValue = (0, _moment["default"])(formulaFunctionValue, "YYYY-MM-DD");
787
- } else {
788
- 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";
789
808
  }
790
809
 
791
- setFieldsValue(_defineProperty({}, code, otherFormItemValue));
792
- } else {
793
- data[code] = formItemValue;
794
- setFieldsValue(_defineProperty({}, code, formItemValue));
810
+ var defList = def_docs["def_" + ref_pk];
811
+
812
+ if (defList && defList.length > 0) {
813
+ var dictList;
814
+
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");
795
834
 
796
- if (display_code && display_code.trim().length > 0) {
797
- var dictList = def_docs["def_" + ref_pk];
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
+ }
798
843
 
799
- if (dictList && dictList.length > 0) {
800
- var filteredDict = dictList.find(function (item) {
801
- return item.pk.toString() == formItemValue;
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;
802
857
  });
803
858
 
804
- if (filteredDict) {
805
- var ref_title = filteredDict.title;
806
- data[display_code] = ref_title;
807
- 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));
808
863
  }
809
864
  }
810
865
  }
811
- }
812
866
  };
813
867
 
814
868
  for (var i = 0, len = otherFormItemResponses.length; i < len; i++) {
@@ -856,7 +910,13 @@ var FormForModify = /*#__PURE__*/function (_React$Component) {
856
910
  for (var _i2 = 0; _i2 < fieldsLength; _i2++) {
857
911
  var _formItem = info_set_fields[_i2];
858
912
  var code = _formItem.code,
859
- ui_render_type = _formItem.ui_render_type;
913
+ ui_render_type = _formItem.ui_render_type,
914
+ editFormulaConfigs = _formItem.editFormulaConfigs;
915
+
916
+ if (!editFormulaConfigs || editFormulaConfigs.length == 0) {
917
+ continue;
918
+ }
919
+
860
920
  var fieldCodeValue = data[code];
861
921
 
862
922
  if (_consts.UI_RENDER_TYPE.SWITCH == ui_render_type) {
@@ -1165,6 +1225,83 @@ var FormForModify = /*#__PURE__*/function (_React$Component) {
1165
1225
  callback(props);
1166
1226
  }
1167
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
+ }
1168
1305
  }, {
1169
1306
  key: "switchOnChange",
1170
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
+ var p = Promise.reject(new Error("不安全的输入,请检查!!"));
368
+ p["catch"](function () {
369
+ throw new Error("不安全的输入,请检查!");
370
+ });
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.106",
3
+ "version": "0.3.110",
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,6 +23,7 @@ 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",
@@ -65,7 +66,12 @@ class FormForModify extends React.Component{
65
66
  for (let i = 0; i < fieldsLength; i++) {
66
67
  let formItem = info_set_fields[i];
67
68
 
68
- let {code, ui_render_type} = formItem;
69
+ let {code, ui_render_type, editFormulaConfigs} = formItem;
70
+
71
+ if (!editFormulaConfigs || editFormulaConfigs.length == 0) {
72
+ continue;
73
+ }
74
+
69
75
  let fieldCodeValue = data[code];
70
76
 
71
77
  if (UI_RENDER_TYPE.SWITCH == ui_render_type) {
@@ -1112,7 +1118,19 @@ class FormForModify extends React.Component{
1112
1118
  continue;
1113
1119
  }
1114
1120
 
1115
- 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
+ }
1116
1134
 
1117
1135
  formulaFunctionValue = eval(realFormulaValue.replace("@", ","));
1118
1136
  }
@@ -1122,29 +1140,61 @@ class FormForModify extends React.Component{
1122
1140
  continue;
1123
1141
  }
1124
1142
 
1125
- data[code] = formulaFunctionValue;
1143
+ let convertedStateValue = this.convertStringValueForFormula(ui_render_type, formulaFunctionValue, "dataForState");
1144
+ let convertedFormItemValue = this.convertStringValueForFormula(ui_render_type, formulaFunctionValue, "dataForForm");
1126
1145
 
1127
- let otherFormItemValue;
1128
- if (UI_RENDER_TYPE.DATE == ui_render_type) {
1129
- otherFormItemValue = moment(formulaFunctionValue, "YYYY-MM-DD");
1130
- } else {
1131
- otherFormItemValue = formulaFunctionValue;
1146
+ data[code] = convertedStateValue;
1147
+ setFieldsValue({[code]: convertedFormItemValue});
1148
+
1149
+ if (!display_code || display_code.trim().length == 0) {
1150
+ continue;
1132
1151
  }
1133
- setFieldsValue({[code]: otherFormItemValue});
1134
- } else {
1135
- data[code] = formItemValue;
1136
- setFieldsValue({[code]: formItemValue});
1137
-
1138
- if (display_code && display_code.trim().length > 0) {
1139
- let dictList = def_docs["def_" + ref_pk];
1140
- if (dictList && dictList.length > 0) {
1141
- let filteredDict = dictList.find(item => item.pk.toString() == formItemValue);
1142
- if (filteredDict) {
1143
- let ref_title = filteredDict.title;
1144
-
1145
- data[display_code] = ref_title;
1146
- setFieldsValue({[display_code]: ref_title});
1147
- }
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});
1148
1198
  }
1149
1199
  }
1150
1200
  }
@@ -1155,6 +1205,68 @@ class FormForModify extends React.Component{
1155
1205
  }
1156
1206
  }
1157
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
+
1158
1270
  switchOnChange(config, callback, checked, event) {
1159
1271
  this.formItemOnChangeForFormula(config, checked);
1160
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
+ let p = Promise.reject(new Error("不安全的输入,请检查!!"));
345
+
346
+ p.catch(function() {
347
+ throw new Error("不安全的输入,请检查!");
348
+ });
345
349
  }
346
350
  }
347
351