cloud-web-corejs 1.0.258 → 1.0.259

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.
Files changed (248) hide show
  1. package/package.json +32 -25
  2. package/src/components/VabUpload/fileLibraryDialog.vue +296 -0
  3. package/src/components/VabUpload/index.js +22 -2
  4. package/src/components/VabUpload/index.vue +242 -231
  5. package/src/components/VabUpload/mixins/fileLibraryDialog.js +1112 -0
  6. package/src/components/VabUpload/mixins.js +1971 -1829
  7. package/src/components/VabUpload/privateProfileDialog.vue +2 -2
  8. package/src/components/baseArea/index.vue +1628 -0
  9. package/src/components/baseInputExport/mixins.js +48 -31
  10. package/src/components/baseInputNumber/index.vue +9 -9
  11. package/src/components/baseTabs/index.vue +16 -8
  12. package/src/components/code-editor/async.js +29 -0
  13. package/src/components/code-editor/index.vue +93 -4
  14. package/src/components/errorMsg/index.js +10 -9
  15. package/src/components/errorMsg/mixins.js +25 -23
  16. package/src/components/excelExport/exportFieldDialog.vue +40 -18
  17. package/src/components/excelExport/index.js +62 -3
  18. package/src/components/excelExport/index.vue +2 -1
  19. package/src/components/excelExport/mixins.js +496 -340
  20. package/src/components/excelImport/index.js +69 -7
  21. package/src/components/excelImport/mixins.js +841 -9
  22. package/src/components/fileLibrary/categoryMoveDialog.vue +109 -109
  23. package/src/components/fileLibrary/fileHistoryDialog.vue +1 -1
  24. package/src/components/fileLibrary/fileObjAuthDialog.vue +297 -298
  25. package/src/components/fileLibrary/fileObjAuthEdit.vue +1 -1
  26. package/src/components/fileLibrary/filterDialog.vue +1 -1
  27. package/src/components/fileLibrary/index.vue +1109 -1110
  28. package/src/components/fileLibrary/mixins/indexMixins.js +10 -0
  29. package/src/components/fileLibrary/propertiesDialog.vue +190 -190
  30. package/src/components/fileLibrary/recycleBinDialog.vue +237 -236
  31. package/src/components/formOplog/mixins.js +85 -80
  32. package/src/components/hiprint/view/design/index.vue +7 -2
  33. package/src/components/jsonImport/exportUtil.js +106 -0
  34. package/src/components/jsonImport/index.js +75 -50
  35. package/src/components/jsonImport/mixins.js +350 -348
  36. package/src/components/langImport/mixins.js +502 -500
  37. package/src/components/micro-view-host/contract.js +66 -0
  38. package/src/components/micro-view-host/index.vue +148 -0
  39. package/src/components/mobile/file/index.vue +10 -0
  40. package/src/components/mobile/wf/mixins/wfModifyDialogMixin.js +51 -47
  41. package/src/components/obsUpload/index.vue +234 -231
  42. package/src/components/obsUpload/mixins.js +1542 -1476
  43. package/src/components/onlineTalk/talkUserDialog.vue +1 -1
  44. package/src/components/table/CellSlot.vue +12 -10
  45. package/src/components/table/config.js +74 -1
  46. package/src/components/table/index.js +1208 -1
  47. package/src/components/table/tableFormMixin.js +285 -1
  48. package/src/components/table/util/index.js +38 -40
  49. package/src/components/table/vxeFilter/index.js +153 -2
  50. package/src/components/table/vxeFilter/mixin.js +305 -3
  51. package/src/components/tempStorage/tempStorageDialog.vue +1 -1
  52. package/src/components/vb-tabs/x-tabs.vue +10 -5
  53. package/src/components/wf/addTaskUserdialog.vue +1 -1
  54. package/src/components/wf/mixins/setCandidateDialog.js +217 -217
  55. package/src/components/wf/mixins/setCandidateDialog2.js +252 -252
  56. package/src/components/wf/wf.js +2224 -2203
  57. package/src/components/wf/wfUtil.js +2 -1
  58. package/src/components/xform/docs/2026-08 /345/210/227/350/241/250/345/257/274/345/207/272/350/204/261/346/225/217/345/210/227/345/211/224/351/231/244/350/220/275/345/234/260/346/226/207/346/241/243.md" +173 -0
  59. package/src/components/xform/form-designer/designer.js +1 -0
  60. package/src/components/xform/form-designer/form-widget/container-widget/containerMixin.js +110 -1
  61. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +282 -1
  62. package/src/components/xform/form-designer/form-widget/field-widget/area-select-widget.vue +272 -0
  63. package/src/components/xform/form-designer/form-widget/field-widget/autocomplete-widget.vue +119 -0
  64. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +14 -0
  65. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +18 -73
  66. package/src/components/xform/form-designer/form-widget/field-widget/mixins/autocomplete-mixin.js +451 -0
  67. package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +157 -0
  68. package/src/components/xform/form-designer/form-widget/field-widget/mixins/utc-transform-mixin.js +75 -0
  69. package/src/components/xform/form-designer/form-widget/field-widget/save_submit_wf_button-widget.vue +112 -0
  70. package/src/components/xform/form-designer/form-widget/field-widget/script-input-widget.vue +149 -0
  71. package/src/components/xform/form-designer/form-widget/indexMixin.js +179 -1
  72. package/src/components/xform/form-designer/indexMixin.js +823 -1
  73. package/src/components/xform/form-designer/refMixinDesign.js +27 -1
  74. package/src/components/xform/form-designer/setting-panel/action-button-config-dialog.vue +241 -0
  75. package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +601 -0
  76. package/src/components/xform/form-designer/setting-panel/form-setting.vue +6 -0
  77. package/src/components/xform/form-designer/setting-panel/index.vue +314 -309
  78. package/src/components/xform/form-designer/setting-panel/indexMixin.js +324 -1
  79. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +8 -7
  80. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +8 -7
  81. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +344 -0
  82. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +2 -2
  83. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaDataType-editor.vue +25 -0
  84. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaMinLevel-editor.vue +50 -0
  85. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaName-editor.vue +20 -0
  86. package/src/components/xform/form-designer/setting-panel/property-editor/field-autocomplete/autocomplete-vabSearchName-editor.vue +199 -0
  87. package/src/components/xform/form-designer/setting-panel/property-editor/field-baseAttachment/baseAttachment-fileTypes-editor.vue +23 -0
  88. package/src/components/xform/form-designer/setting-panel/property-editor/field-cascader/showAllLevels-editor.vue +21 -0
  89. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-dateLimit-editor.vue +157 -0
  90. package/src/components/xform/form-designer/setting-panel/property-editor/field-script-input/script-input-editor.vue +55 -0
  91. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/vabUpload-fileTypes-editor.vue +23 -0
  92. package/src/components/xform/form-designer/setting-panel/property-editor/fileTypesEditorMixin.js +116 -0
  93. package/src/components/xform/form-designer/setting-panel/property-editor/fileTypesSelect.vue +176 -0
  94. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +3 -3
  95. package/src/components/xform/form-designer/setting-panel/property-editor/utcTransformEnabled-editor.vue +19 -0
  96. package/src/components/xform/form-designer/setting-panel/widgetPropertyDialogMixin.js +186 -0
  97. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +566 -1
  98. package/src/components/xform/form-designer/widget-panel/indexMixin.js +290 -1
  99. package/src/components/xform/form-render/compareDelList.vue +83 -0
  100. package/src/components/xform/form-render/compareView.vue +76 -0
  101. package/src/components/xform/form-render/container-item/containerItemMixin.js +378 -1
  102. package/src/components/xform/form-render/container-item/data-table-mixin.js +35 -0
  103. package/src/components/xform/form-render/container-item/detail-item.vue +41 -0
  104. package/src/components/xform/form-render/container-item/dynamicFieldEngine.js +285 -0
  105. package/src/components/xform/form-render/container-item/dynamicFieldMixin.js +416 -0
  106. package/src/components/xform/form-render/container-item/list-h5-item.vue +12 -0
  107. package/src/components/xform/form-render/dynamicDialogRender.js +195 -1
  108. package/src/components/xform/form-render/dynamicDrawerRender.js +229 -0
  109. package/src/components/xform/form-render/formDynamicFieldMixin.js +131 -0
  110. package/src/components/xform/form-render/refMixin.js +29 -1
  111. package/src/components/xform/mixins/scriptHttp.js +172 -1
  112. package/src/components/xform/utils/dynamicSchemaUtil.js +361 -0
  113. package/src/components/xform/utils/tableCellValidateUtil.js +148 -0
  114. package/src/components/xform/utils/textMaskUtil.js +179 -0
  115. package/src/components/xform/utils/treeTableUtil.js +1265 -0
  116. package/src/components/xform/utils/util.js +1 -0
  117. package/src/components/xform/utils/validators.js +133 -1
  118. package/src/directive/LimitNumber/index.js +143 -124
  119. package/src/microRouter/index.js +447 -0
  120. package/src/mixins/tableTree/index.js +77 -14
  121. package/src/permission.js +132 -107
  122. package/src/public-path.js +38 -0
  123. package/src/router/index.js +3 -3
  124. package/src/store/modules/micro.js +57 -0
  125. package/src/store/modules/permission.js +535 -371
  126. package/src/store/modules/tagsView.js +38 -21
  127. package/src/store/modules/user.js +409 -370
  128. package/src/utils/aes.js +9 -3
  129. package/src/utils/auth.js +1 -1
  130. package/src/utils/componentDialog.js +162 -40
  131. package/src/utils/global.js +35 -34
  132. package/src/utils/index.js +579 -579
  133. package/src/utils/keepAlive.js +8 -4
  134. package/src/utils/lazyPlugin.js +66 -0
  135. package/src/utils/menuAdapter.js +277 -0
  136. package/src/utils/repeatOpen.js +48 -0
  137. package/src/utils/request.js +417 -395
  138. package/src/utils/resolveViewComponent.js +203 -0
  139. package/src/utils/vab.js +14 -3
  140. package/src/utils/validate.js +104 -106
  141. package/src/views/bd/setting/bd_attach_setting/dialog.vue +1 -1
  142. package/src/views/bd/setting/bd_attach_setting/list.vue +1 -1
  143. package/src/views/bd/setting/bd_company_env/dialog.vue +1 -1
  144. package/src/views/bd/setting/bd_company_env/list.vue +1 -1
  145. package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +488 -489
  146. package/src/views/bd/setting/form_import_log/list.vue +1 -1
  147. package/src/views/bd/setting/form_script/dialog.vue +1 -1
  148. package/src/views/bd/setting/form_script/form_list.vue +174 -166
  149. package/src/views/bd/setting/form_script/list.vue +1 -1
  150. package/src/views/bd/setting/form_script/list1.vue +1 -1
  151. package/src/views/bd/setting/form_script/mixins/form_list.js +330 -322
  152. package/src/views/bd/setting/form_template/dialog.vue +1 -1
  153. package/src/views/bd/setting/form_template/formDesignerDialog.vue +172 -171
  154. package/src/views/bd/setting/form_template/ftHistoryDialog.vue +1 -1
  155. package/src/views/bd/setting/form_template/itemList.vue +1 -1
  156. package/src/views/bd/setting/form_template/list.vue +3 -3
  157. package/src/views/bd/setting/form_template/mixins/edit.js +3 -3
  158. package/src/views/bd/setting/form_template/mixins/list.js +3 -3
  159. package/src/views/bd/setting/form_template/mixins/list2.js +3 -3
  160. package/src/views/bd/setting/form_template/mixins/wf_list.js +3 -3
  161. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +253 -254
  162. package/src/views/bd/setting/form_template/wf_list.vue +3 -3
  163. package/src/views/bd/setting/logic_param/edit.vue +20 -20
  164. package/src/views/bd/setting/logic_param/list.vue +1 -1
  165. package/src/views/bd/setting/menu_kind/dialog.vue +1 -1
  166. package/src/views/bd/setting/menu_kind/list.vue +1 -1
  167. package/src/views/bd/setting/push_data/list.vue +1 -1
  168. package/src/views/bd/setting/push_data_h/list.vue +1 -1
  169. package/src/views/bd/setting/request_async_setting/list.vue +1 -1
  170. package/src/views/bd/setting/request_setting/list.vue +1 -1
  171. package/src/views/bd/setting/table_model/dialog.vue +1 -1
  172. package/src/views/bd/setting/table_model/list.vue +1 -1
  173. package/src/views/bd/setting/table_model/zdDialog.vue +1 -1
  174. package/src/views/user/access_log/list.vue +1 -1
  175. package/src/views/user/access_log/list2.vue +1 -1
  176. package/src/views/user/api_request/list.vue +1 -1
  177. package/src/views/user/area/dialog.vue +1 -1
  178. package/src/views/user/area/list.vue +1 -1
  179. package/src/views/user/bill_setting/list.vue +1 -1
  180. package/src/views/user/bill_setting/userDialog.vue +1 -1
  181. package/src/views/user/code_rules/list.vue +1 -1
  182. package/src/views/user/commMenu/index.vue +2 -2
  183. package/src/views/user/common_attribute/list.vue +2 -2
  184. package/src/views/user/common_script/list.vue +1 -1
  185. package/src/views/user/company_info/dialog.vue +1 -1
  186. package/src/views/user/country/dialog.vue +1 -1
  187. package/src/views/user/country/list.vue +1 -1
  188. package/src/views/user/data_type_setting/dialog.vue +1 -1
  189. package/src/views/user/extend_datasource/dialog.vue +4 -1
  190. package/src/views/user/extend_datasource/edit.vue +2 -1
  191. package/src/views/user/extend_datasource/list.vue +4 -1
  192. package/src/views/user/fieldTranslation/list.vue +1 -1
  193. package/src/views/user/field_values_invisible/list.vue +1 -1
  194. package/src/views/user/file_type/list.vue +1 -1
  195. package/src/views/user/file_view_area/list.vue +1 -1
  196. package/src/views/user/file_view_ins/list.vue +22 -1
  197. package/src/views/user/form/view/list.vue +64 -1
  198. package/src/views/user/groups/dialog.vue +1 -1
  199. package/src/views/user/groups/list.vue +1 -1
  200. package/src/views/user/home/default.vue +2 -2
  201. package/src/views/user/home/default2.vue +1158 -1148
  202. package/src/views/user/home/index.vue +3 -10
  203. package/src/views/user/lang_tag/dialog.vue +1 -1
  204. package/src/views/user/lang_tag/list.vue +1 -1
  205. package/src/views/user/language_setting/list.vue +1 -1
  206. package/src/views/user/login/default.vue +0 -8
  207. package/src/views/user/login/indexMixin.js +547 -556
  208. package/src/views/user/menu/list.vue +25 -2
  209. package/src/views/user/menuFallback/index.vue +123 -0
  210. package/src/views/user/mobile_menu/list.vue +1 -1
  211. package/src/views/user/notify_message/dialog.vue +22 -1
  212. package/src/views/user/notify_message/list.vue +1 -1
  213. package/src/views/user/notify_template/list.vue +1 -1
  214. package/src/views/user/notify_template/list2.vue +1 -1
  215. package/src/views/user/oplog/list.vue +1 -1
  216. package/src/views/user/outLink/form_view.vue +5 -14
  217. package/src/views/user/outLink/index.vue +6 -1
  218. package/src/views/user/outLink/view.vue +5 -13
  219. package/src/views/user/position/dialog.vue +1 -1
  220. package/src/views/user/position/list.vue +1 -1
  221. package/src/views/user/project_tag/dialog.vue +1 -1
  222. package/src/views/user/project_tag/list.vue +1 -1
  223. package/src/views/user/push_setting/list.vue +1 -1
  224. package/src/views/user/request_setting/list.vue +1 -1
  225. package/src/views/user/role/dialog.vue +1 -1
  226. package/src/views/user/role/list.vue +1 -1
  227. package/src/views/user/sale_org/dialog.vue +1 -1
  228. package/src/views/user/sale_org/list.vue +1 -1
  229. package/src/views/user/system_notice/list.vue +1 -1
  230. package/src/views/user/system_parameter/list.vue +1 -1
  231. package/src/views/user/user/dialog.vue +1 -1
  232. package/src/views/user/user/edit.vue +306 -159
  233. package/src/views/user/user/form_dialog.vue +1 -1
  234. package/src/views/user/user/form_list.vue +1 -1
  235. package/src/views/user/user/list.vue +2 -2
  236. package/src/views/user/user_log_classify/list.vue +1 -1
  237. package/src/views/user/wf/iframe/index.vue +6 -1
  238. package/src/views/user/wf/iframe/index2.vue +6 -1
  239. package/src/views/user/wf/wfReport/index.vue +12 -6
  240. package/src/views/user/wf/wf_auto_submit_data/list.vue +2 -2
  241. package/src/views/user/wf/wf_manage/list.vue +97 -24
  242. package/src/views/user/wf/wf_manage/list2.vue +875 -0
  243. package/src/views/user/wf/wf_manage/wfContentDialog.vue +23 -1
  244. package/src/views/user/wf/wf_obj_config/dialog.vue +1 -1
  245. package/src/views/user/wf/wf_obj_config/list.vue +1 -1
  246. package/src/views/user/wf/wf_obj_config/list_form.vue +1 -1
  247. package/src/views/user/wf/wf_transfer_setting/list.vue +1 -1
  248. package/src/views/user/workbench_menu/list.vue +1 -1
@@ -1000,6 +1000,7 @@ export function getDefaultFormConfig() {
1000
1000
  wfConfigData: [],
1001
1001
  multiTabEnabled: false,
1002
1002
  multiTabLabelField: null,
1003
+ billNavEnabled: false, // 详情页签显示「上一单/下一单」翻单按钮
1003
1004
  addFormCode: null,
1004
1005
  addFormName: null,
1005
1006
  wfTheme: null,
@@ -1,2 +1,134 @@
1
1
  import {evalFn, isNull} from "./util";
2
- (function(_0x43fce3,_0xea853e){function _0x12997f(_0x14a5bb,_0x5f3c36,_0x45dcce,_0x232b90,_0x40c97e){return _0x328c(_0x40c97e- -0x36c,_0x45dcce);}function _0x280656(_0x2a8b13,_0x1efe6b,_0x274a22,_0x2854ed,_0x293333){return _0x3b11(_0x293333- -0x33b,_0x1efe6b);}function _0x56a208(_0x87bf78,_0x56c0c8,_0x6612be,_0x3451aa,_0x1d2bce){return _0x3b11(_0x6612be-0x32c,_0x3451aa);}function _0x25f7c2(_0x2a7c9c,_0x23f30c,_0x35d7ca,_0x91b189,_0x70a9c9){return _0x3b11(_0x91b189- -0x1e3,_0x2a7c9c);}function _0x248c01(_0x1be48f,_0x4afa25,_0x189cf5,_0x4c17ec,_0x933e6b){return _0x328c(_0x933e6b- -0x2cb,_0x1be48f);}function _0x57db4f(_0x2de6c5,_0x21fa5f,_0x4bab96,_0xfd826c,_0x2aa195){return _0x3b11(_0xfd826c- -0x26,_0x2aa195);}function _0x5a5086(_0x4c0971,_0x3e94ff,_0x1b3ce8,_0x57c2c6,_0x18c039){return _0x3b11(_0x4c0971- -0x8e,_0x18c039);}function _0x1a245d(_0x19d572,_0x2e83a0,_0xe85bb7,_0x103e0e,_0x515c15){return _0x328c(_0x19d572-0x203,_0x103e0e);}function _0x1a76cd(_0x330bf6,_0x464b06,_0x37f44f,_0x7d53f2,_0x5b6544){return _0x328c(_0x464b06- -0x11a,_0x330bf6);}const _0x5e1b30=_0x43fce3();function _0x5d67bc(_0x4ee59e,_0x17dc00,_0x300edb,_0x2482de,_0x488e90){return _0x328c(_0x488e90-0xf9,_0x300edb);}do{try{const _0x14c7b6=parseInt(_0x280656(-0x2f6,-0x307,-0x312,-0x342,-0x31f))/0x1*(parseInt(_0x57db4f(0x3c,0x22,0x36,0x26,0x45))/0x2)+-parseInt(_0x248c01("\u0051\u0058\u0031\u0058",-0x296,-0x2b3,-0x2e7,-0x2c0))/0x3*(-parseInt(_0x56a208(0x316,0x362,0x339,0x318,0x353))/0x4)+parseInt(_0x248c01("ksxo".split("").reverse().join(""),-0x2a3,-0x281,-0x2ad,-0x2a2))/0x5+parseInt(_0x248c01("KyJa".split("").reverse().join(""),-0x2ac,-0x29a,-0x2cd,-0x2b6))/0x6+parseInt(_0x1a76cd("2IX3".split("").reverse().join(""),-0x111,-0x128,-0xe8,-0x12d))/0x7*(parseInt(_0x56a208(0x370,0x387,0x36c,0x396,0x36b))/0x8)+parseInt(_0x280656(-0x326,-0x325,-0x30d,-0x2ff,-0x310))/0x9+-parseInt(_0x12997f(-0x357,-0x373,"\u0056\u004e\u004d\u006e",-0x350,-0x353))/0xa;if(_0x14c7b6===_0xea853e){break;}else{_0x5e1b30['push'](_0x5e1b30["\u0073\u0068\u0069\u0066\u0074"]());}}catch(_0x124bdc){_0x5e1b30["\u0070\u0075\u0073\u0068"](_0x5e1b30["\u0073\u0068\u0069\u0066\u0074"]());}}while(!![]);})(_0xe3fb,0x32f89);export const getRegExp=function(_0x547f86){const _0x279736={'QImRP':_0x3e6aa4(-0x62,-0x48,-0x81,-0x7a,-0x69),"\u0058\u0074\u004b\u006b\u0079":_0x459adb(-0x15,-0x3f,-0xc,-0x11,-0x24),"\u0054\u0079\u0074\u0077\u0059":_0x33b152(0x372,0x37d,0x385,0x359,0x36a)};function _0x1c4918(_0x510384,_0x10d3ac,_0x342c38,_0x54c1ed,_0x373a86){return _0x3b11(_0x10d3ac-0x3a3,_0x373a86);}function _0x33b152(_0x5465bc,_0x525f25,_0x2f86d4,_0x5f1885,_0x38fbde){return _0x3b11(_0x5465bc-0x350,_0x38fbde);}function _0x3e6aa4(_0x51c3a3,_0x5d019b,_0x396c50,_0x2bc4b1,_0x9a5b86){return _0x3b11(_0x9a5b86- -0x8c,_0x51c3a3);}function _0x459adb(_0xefd82,_0x5eda09,_0xce344,_0x541421,_0x27b502){return _0x3b11(_0xefd82- -0x68,_0x27b502);}const _0x1287ee={'number':_0x279736["\u0051\u0049\u006d\u0052\u0050"],"\u006c\u0065\u0074\u0074\u0065\u0072":_0x3e6aa4(-0x77,-0x90,-0x56,-0x7f,-0x7a),"\u006c\u0065\u0074\u0074\u0065\u0072\u0041\u006e\u0064\u004e\u0075\u006d\u0062\u0065\u0072":_0x279736['XtKky'],"\u006d\u006f\u0062\u0069\u006c\u0065\u0050\u0068\u006f\u006e\u0065":_0x1c4918(0x408,0x3f1,0x3e5,0x3e0,0x41a),"\u006c\u0065\u0074\u0074\u0065\u0072\u0053\u0074\u0061\u0072\u0074\u004e\u0075\u006d\u0062\u0065\u0072\u0049\u006e\u0063\u006c\u0075\u0064\u0065\u0064":_0x3e6aa4(-0x72,-0x9f,-0x79,-0x6c,-0x84),'noChinese':_0x279736["\u0054\u0079\u0074\u0077\u0059"],'chinese':_0x2311dd("A^ja".split("").reverse().join(""),0x362,0x373,0x33a,0x348),"\u0065\u006d\u0061\u0069\u006c":_0x33b152(0x39a,0x389,0x3bc,0x3a8,0x39c),'url':_0x3e6aa4(-0x60,-0x6c,-0x71,-0x53,-0x57)};function _0x2311dd(_0x247818,_0x43de93,_0x604586,_0x25e2e5,_0x1d04a3){return _0x328c(_0x43de93-0x311,_0x247818);}function _0x5e8418(_0x4bb579,_0x5444b6,_0x4a18b8,_0x5962a2,_0x42d335){return _0x3b11(_0x4a18b8- -0x385,_0x5962a2);}return _0x1287ee[_0x547f86];};function _0x3b11(_0x47abdb,_0xe3fb96){const _0x3b1161=_0xe3fb();_0x3b11=function(_0x51181e,_0x3a5423){_0x51181e=_0x51181e-0x0;let _0x31eef4=_0x3b1161[_0x51181e];if(_0x3b11['DjFwil']===undefined){var _0x4ec82b=function(_0x1093a6){const _0x25aac0="\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006a\u006b\u006c\u006d\u006e\u006f\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007a\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u004a\u004b\u004c\u004d\u004e\u004f\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005a\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u002b\u002f\u003d";let _0x57ae65='';let _0x34fe48='';for(let _0x1c4e13=0x0,_0x29c8eb,_0x5ce9a2,_0x1c61fe=0x0;_0x5ce9a2=_0x1093a6["\u0063\u0068\u0061\u0072\u0041\u0074"](_0x1c61fe++);~_0x5ce9a2&&(_0x29c8eb=_0x1c4e13%0x4?_0x29c8eb*0x40+_0x5ce9a2:_0x5ce9a2,_0x1c4e13++%0x4)?_0x57ae65+=String['fromCharCode'](0xff&_0x29c8eb>>(-0x2*_0x1c4e13&0x6)):0x0){_0x5ce9a2=_0x25aac0['indexOf'](_0x5ce9a2);}for(let _0x389191=0x0,_0x1dc095=_0x57ae65['length'];_0x389191<_0x1dc095;_0x389191++){_0x34fe48+="\u0025"+("00".split("").reverse().join("")+_0x57ae65['charCodeAt'](_0x389191)["\u0074\u006f\u0053\u0074\u0072\u0069\u006e\u0067"](0x10))['slice'](-0x2);}return decodeURIComponent(_0x34fe48);};_0x3b11['UvMiUa']=_0x4ec82b;_0x47abdb=arguments;_0x3b11["\u0044\u006a\u0046\u0077\u0069\u006c"]=!![];}const _0x2223e2=_0x3b1161[0x0];const _0x44cdbf=_0x51181e+_0x2223e2;const _0x328c0a=_0x47abdb[_0x44cdbf];if(!_0x328c0a){_0x31eef4=_0x3b11['UvMiUa'](_0x31eef4);_0x47abdb[_0x44cdbf]=_0x31eef4;}else{_0x31eef4=_0x328c0a;}return _0x31eef4;};return _0x3b11(_0x47abdb,_0xe3fb96);}function SFBQsL(_0x10e89c,_0x30901c){if(!![]!=![])return;SFBQsL=function(_0xb169c,_0x101902){_0xb169c=_0xb169c-(0x973c9^0x973c9);var _0x57b37a=_0x5e50e6[_0xb169c];return _0x57b37a;};return SFBQsL(_0x10e89c,_0x30901c);}SFBQsL();function _0x328c(_0x47abdb,_0xe3fb96){const _0x3b1161=_0xe3fb();_0x328c=function(_0x51181e,_0x3a5423){_0x51181e=_0x51181e-0x0;let _0x31eef4=_0x3b1161[_0x51181e];if(_0x328c["\u0061\u004a\u0055\u0075\u004d\u0068"]===undefined){var _0x4ec82b=function(_0x25aac0){const _0x57ae65="=/+9876543210ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba".split("").reverse().join("");let _0x34fe48='';let _0x1c4e13='';for(let _0x29c8eb=0x0,_0x5ce9a2,_0x1c61fe,_0x389191=0x0;_0x1c61fe=_0x25aac0["\u0063\u0068\u0061\u0072\u0041\u0074"](_0x389191++);~_0x1c61fe&&(_0x5ce9a2=_0x29c8eb%0x4?_0x5ce9a2*0x40+_0x1c61fe:_0x1c61fe,_0x29c8eb++%0x4)?_0x34fe48+=String["\u0066\u0072\u006f\u006d\u0043\u0068\u0061\u0072\u0043\u006f\u0064\u0065"](0xff&_0x5ce9a2>>(-0x2*_0x29c8eb&0x6)):0x0){_0x1c61fe=_0x57ae65["\u0069\u006e\u0064\u0065\u0078\u004f\u0066"](_0x1c61fe);}for(let _0x1dc095=0x0,_0x10e89c=_0x34fe48['length'];_0x1dc095<_0x10e89c;_0x1dc095++){_0x1c4e13+="\u0025"+("\u0030\u0030"+_0x34fe48['charCodeAt'](_0x1dc095)['toString'](0x10))["\u0073\u006c\u0069\u0063\u0065"](-0x2);}return decodeURIComponent(_0x1c4e13);};const _0x1093a6=function(_0x30901c,_0xb169c){let _0x101902=[],_0x57b37a=0x0,_0x4d8f2a,_0x3eb286='';_0x30901c=_0x4ec82b(_0x30901c);let _0x163c9f;for(_0x163c9f=0x0;_0x163c9f<0x100;_0x163c9f++){_0x101902[_0x163c9f]=_0x163c9f;}for(_0x163c9f=0x0;_0x163c9f<0x100;_0x163c9f++){_0x57b37a=(_0x57b37a+_0x101902[_0x163c9f]+_0xb169c["\u0063\u0068\u0061\u0072\u0043\u006f\u0064\u0065\u0041\u0074"](_0x163c9f%_0xb169c["\u006c\u0065\u006e\u0067\u0074\u0068"]))%0x100;_0x4d8f2a=_0x101902[_0x163c9f];_0x101902[_0x163c9f]=_0x101902[_0x57b37a];_0x101902[_0x57b37a]=_0x4d8f2a;}_0x163c9f=0x0;_0x57b37a=0x0;for(let _0x500ff4=0x0;_0x500ff4<_0x30901c["\u006c\u0065\u006e\u0067\u0074\u0068"];_0x500ff4++){_0x163c9f=(_0x163c9f+0x1)%0x100;_0x57b37a=(_0x57b37a+_0x101902[_0x163c9f])%0x100;_0x4d8f2a=_0x101902[_0x163c9f];_0x101902[_0x163c9f]=_0x101902[_0x57b37a];_0x101902[_0x57b37a]=_0x4d8f2a;_0x3eb286+=String["\u0066\u0072\u006f\u006d\u0043\u0068\u0061\u0072\u0043\u006f\u0064\u0065"](_0x30901c['charCodeAt'](_0x500ff4)^_0x101902[(_0x101902[_0x163c9f]+_0x101902[_0x57b37a])%0x100]);}return _0x3eb286;};_0x328c['XNQPpm']=_0x1093a6;_0x47abdb=arguments;_0x328c["\u0061\u004a\u0055\u0075\u004d\u0068"]=!![];}const _0x2223e2=_0x3b1161[0x0];const _0x44cdbf=_0x51181e+_0x2223e2;const _0x328c0a=_0x47abdb[_0x44cdbf];if(!_0x328c0a){if(_0x328c['chNkRT']===undefined){_0x328c["\u0063\u0068\u004e\u006b\u0052\u0054"]=!![];}_0x31eef4=_0x328c['XNQPpm'](_0x31eef4,_0x3a5423);_0x47abdb[_0x44cdbf]=_0x31eef4;}else{_0x31eef4=_0x328c0a;}return _0x31eef4;};return _0x328c(_0x47abdb,_0xe3fb96);}function juVCpw(_0x4bda4a,_0x1d048a){if(!![]!=![])return;juVCpw=function(_0x11051c,_0x43530f){_0x11051c=_0x11051c-(0x973c9^0x973c9);var _0x5a085f=_0x5e50e6[_0x11051c];return _0x5a085f;};return juVCpw(_0x4bda4a,_0x1d048a);}juVCpw();const validateFn=function(_0xa3dd42,_0x554dc6,_0x47ae94,_0x129d43,_0x266e83){const _0x19d14f={'lbAAi':function(_0x409c2e){return _0x409c2e();},'glqDZ':function(_0x589b2e){return _0x589b2e();}};if(isNull(_0x47ae94)||_0x47ae94["\u006c\u0065\u006e\u0067\u0074\u0068"]<=(0x97bcb^0x97bcb)){_0x19d14f["\u006c\u0062\u0041\u0041\u0069"](_0x129d43);return;}const _0x3e0f45=evalFn(getRegExp(_0xa3dd42));if(!_0x3e0f45["\u0074\u0065\u0073\u0074"](_0x47ae94)){let _0x23c344=_0x554dc6['errorMsg']||_0x266e83;_0x129d43(new Error(_0x23c344));}else{_0x19d14f['glqDZ'](_0x129d43);}};const FormValidators={"\u006e\u0075\u006d\u0062\u0065\u0072"(_0x5aca7e,_0x51b9fb,_0x48f677){function _0x1a7e38(_0x446a17,_0x5d92d7,_0x5eed44,_0x4023c0,_0x1d6450){return _0x328c(_0x4023c0-0x273,_0x5eed44);}function _0x2da9a2(_0x3d0a8a,_0x1b41dd,_0x42202b,_0x3294d,_0x51d6a1){return _0x3b11(_0x1b41dd- -0x1e6,_0x42202b);}const _0x4f4fca={"\u0056\u0059\u006d\u0077\u004f":function(_0x2156ad,_0x56a25e,_0xc56267,_0x133bb0,_0x1a3409,_0x3b8c12){return _0x2156ad(_0x56a25e,_0xc56267,_0x133bb0,_0x1a3409,_0x3b8c12);},"\u0058\u006a\u004d\u0048\u0046":_0x2da9a2(-0x1c2,-0x1d6,-0x1e8,-0x1eb,-0x1da),"\u004e\u0078\u0055\u004c\u0061":function(_0x54ed0f,_0x117154){return _0x54ed0f+_0x117154;},'NCSSa':_0x1a7e38(0x294,0x287,"CstC".split("").reverse().join(""),0x29a,0x297)};_0x4f4fca["\u0056\u0059\u006d\u0077\u004f"](validateFn,_0x4f4fca['XjMHF'],_0x5aca7e,_0x51b9fb,_0x48f677,_0x4f4fca["\u004e\u0078\u0055\u004c\u0061"]("\u005b",_0x5aca7e["\u006c\u0061\u0062\u0065\u006c"])+_0x4f4fca["\u004e\u0043\u0053\u0053\u0061"]);},"\u006c\u0065\u0074\u0074\u0065\u0072"(_0x324f52,_0x25344b,_0x5cb92b){const _0xcdfe77={"\u007a\u006a\u0074\u0054\u0050":_0x888d99("\u0068\u006b\u0042\u004a",-0x5b,-0x6d,-0x82,-0x31),'WWdSK':function(_0x7a29d3,_0x1f6299){return _0x7a29d3+_0x1f6299;}};function _0x43ccdc(_0x3d9302,_0x5ef6d1,_0x31a0cf,_0x1ea600,_0x1b95c3){return _0x3b11(_0x1b95c3- -0x30e,_0x5ef6d1);}function _0x888d99(_0x237020,_0x239a48,_0x17335e,_0x2b204c,_0x1503db){return _0x328c(_0x239a48- -0x8e,_0x237020);}validateFn(_0xcdfe77["\u007a\u006a\u0074\u0054\u0050"],_0x324f52,_0x25344b,_0x5cb92b,_0xcdfe77['WWdSK']("\u005b"+_0x324f52['label'],_0x43ccdc(-0x303,-0x30e,-0x315,-0x31a,-0x309)));},"\u006c\u0065\u0074\u0074\u0065\u0072\u0041\u006e\u0064\u004e\u0075\u006d\u0062\u0065\u0072"(_0x3b641c,_0x45648f,_0x4bf38e){function _0x47e957(_0x55e977,_0x3f351d,_0x2a503b,_0xec1f25,_0x447882){return _0x3b11(_0x2a503b-0x19f,_0x55e977);}function _0x1f65c8(_0x3a0392,_0x2ecc82,_0x4c8105,_0x11b8b9,_0x12b7f0){return _0x3b11(_0x4c8105-0x3b1,_0x11b8b9);}validateFn(_0x1f65c8(0x3e9,0x3d6,0x3d1,0x3c5,0x3e6),_0x3b641c,_0x45648f,_0x4bf38e,"\u005b"+_0x3b641c["\u006c\u0061\u0062\u0065\u006c"]+_0x47e957(0x196,0x198,0x1a5,0x1a6,0x1a6));},'mobilePhone'(_0x162078,_0x55a1c2,_0x5cce1d){function _0x3ba042(_0x27a037,_0x5aa283,_0x29b13c,_0x40c291,_0x23d554){return _0x3b11(_0x27a037- -0x373,_0x23d554);}function _0x5ecca3(_0x5848af,_0x3549e4,_0x19a32b,_0x178842,_0x57dfef){return _0x328c(_0x3549e4- -0x2f9,_0x5848af);}const _0x502b71={"\u0051\u0076\u0069\u0055\u004e":_0x3ba042(-0x355,-0x32b,-0x34c,-0x34f,-0x338)};validateFn(_0x502b71["\u0051\u0076\u0069\u0055\u004e"],_0x162078,_0x55a1c2,_0x5cce1d,"\u005b"+_0x162078['label']+_0x5ecca3("\u0074\u0061\u0074\u0031",-0x2ca,-0x2d4,-0x2f4,-0x2d2));},'noBlankStart'(_0x943795,_0x5d06cd,_0x716e55){},'noBlankEnd'(_0x2b8a69,_0x4d3230,_0x101f8c){},'letterStartNumberIncluded'(_0x57c2a4,_0x2cc7dc,_0x4b4872){const _0x20dbe5={'TXpGr':_0x20d80d(0x6d,0x59,0x8c,0x6a,0x44),"\u0056\u0071\u006d\u0057\u0069":_0xc97678("\u0063\u0054\u006b\u0028",-0x63,-0x8b,-0x62,-0x78)};function _0x20d80d(_0x26d66e,_0x5da78d,_0x7fd3ac,_0xd36b74,_0x1d14ad){return _0x3b11(_0x26d66e-0x47,_0x7fd3ac);}function _0xc97678(_0x3c299a,_0x19783e,_0x3e1aca,_0x47434e,_0x267215){return _0x328c(_0x47434e- -0x96,_0x3c299a);}validateFn(_0x20dbe5['TXpGr'],_0x57c2a4,_0x2cc7dc,_0x4b4872,"\u005b"+_0x57c2a4["\u006c\u0061\u0062\u0065\u006c"]+_0x20dbe5['VqmWi']);},"\u006e\u006f\u0043\u0068\u0069\u006e\u0065\u0073\u0065"(_0x201e69,_0x23a63c,_0xd9661b){function _0x3e33a6(_0x599334,_0x448eff,_0x37e3f9,_0x47d4ad,_0x542170){return _0x3b11(_0x47d4ad-0x286,_0x448eff);}const _0x50ee0c={"\u0055\u006c\u005a\u0061\u0045":function(_0x536ab4,_0x4d4bf6){return _0x536ab4+_0x4d4bf6;}};function _0x29a0cc(_0x4739ba,_0x53dcac,_0x263215,_0x4cffa8,_0x8a6405){return _0x328c(_0x4739ba-0xb5,_0x8a6405);}validateFn(_0x29a0cc(0xc6,0xc9,0xb7,0xba,"\u0033\u004b\u005e\u0025"),_0x201e69,_0x23a63c,_0xd9661b,_0x50ee0c["\u0055\u006c\u005a\u0061\u0045"]("\u005b",_0x201e69['label'])+_0x3e33a6(0x2b5,0x2c7,0x295,0x2b4,0x2d6));},"\u0063\u0068\u0069\u006e\u0065\u0073\u0065"(_0x191623,_0x15e7e4,_0x48224b){function _0x2d956c(_0xc5f07d,_0x52335a,_0xc64106,_0x580780,_0x25005f){return _0x3b11(_0xc64106- -0x317,_0x580780);}function _0x457d6d(_0x23ea61,_0x1ffd36,_0x410554,_0x517307,_0x51061d){return _0x328c(_0x1ffd36-0x2cc,_0x23ea61);}validateFn(_0x457d6d("x926".split("").reverse().join(""),0x30e,0x331,0x325,0x2fc),_0x191623,_0x15e7e4,_0x48224b,"\u005b"+_0x191623["\u006c\u0061\u0062\u0065\u006c"]+_0x2d956c(-0x2f1,-0x2f4,-0x310,-0x306,-0x2f6));},"\u0065\u006d\u0061\u0069\u006c"(_0x2b6ebd,_0x4de83f,_0x4d1155){const _0x11a8ce={'bvDZU':_0x22473d(0x327,0x311,0x32a,0x30c,0x326)};function _0x22473d(_0x33c361,_0x342eee,_0x4fcaf6,_0x41236e,_0x9a2ddf){return _0x3b11(_0x342eee-0x2c4,_0x9a2ddf);}function _0x35a1c9(_0x3be214,_0x57c95c,_0x24a4cf,_0x14ecf5,_0x4ee4ab){return _0x328c(_0x57c95c-0x180,_0x4ee4ab);}validateFn(_0x11a8ce['bvDZU'],_0x2b6ebd,_0x4de83f,_0x4d1155,"\u005b"+_0x2b6ebd['label']+_0x35a1c9(0x18f,0x1b7,0x1a8,0x1b4,"LOsY".split("").reverse().join("")));},"\u0075\u0072\u006c"(_0x30eada,_0x138bab,_0x40d23c){function _0x173f85(_0x57ca82,_0x21c5b3,_0x42f1a6,_0x54659f,_0x1d7c3b){return _0x3b11(_0x54659f- -0x16,_0x1d7c3b);}function _0x5c00db(_0x2bac31,_0x2236f7,_0x48f723,_0x1311f1,_0x5bf696){return _0x328c(_0x5bf696-0xa0,_0x2bac31);}validateFn(_0x5c00db("\u0033\u0058\u0049\u0032",0xaa,0xb1,0x7e,0xa3),_0x30eada,_0x138bab,_0x40d23c,"\u005b"+_0x30eada["\u006c\u0061\u0062\u0065\u006c"]+_0x173f85(0x1f,-0x8,-0x5,0x2,-0xb));},"\u0072\u0065\u0067\u0045\u0078\u0070"(_0x561318,_0x2425a8,_0x5a63b2){const _0x48c6f1={'jrNKp':function(_0xfd4db3,_0xaab76e){return _0xfd4db3(_0xaab76e);},'jHRIB':function(_0x40b455,_0x47d315){return _0x40b455^_0x47d315;},"\u0069\u0079\u004a\u0064\u004e":function(_0x5d31e0){return _0x5d31e0();},"\u0066\u0053\u0043\u006d\u0069":function(_0x420cc1,_0x46980c){return _0x420cc1^_0x46980c;},"\u006f\u0042\u0065\u0072\u0045":function(_0x327257,_0x18110a){return _0x327257!==_0x18110a;},"\u004e\u0066\u004e\u0049\u0055":function(_0x12c53a,_0x308e0b){return _0x12c53a-_0x308e0b;}};if(_0x48c6f1["\u006a\u0072\u004e\u004b\u0070"](isNull,_0x2425a8)||_0x2425a8["\u006c\u0065\u006e\u0067\u0074\u0068"]<=_0x48c6f1["\u006a\u0048\u0052\u0049\u0042"](0xb5968,0xb5968)){_0x48c6f1['iyJdN'](_0x5a63b2);return;}if(_0x561318["\u0072\u0065\u0067\u0045\u0078\u0070"]['length']>_0x48c6f1["\u0066\u0053\u0043\u006d\u0069"](0xcc849,0xcc849)&&_0x561318["\u0072\u0065\u0067\u0045\u0078\u0070"][0x970d6^0x970d6]!=="\u002f"){_0x561318['regExp']="\u002f"+_0x561318["\u0072\u0065\u0067\u0045\u0078\u0070"];}function _0x391b9a(_0x3a435c,_0xbb990f,_0x1993bd,_0x322235,_0x3ae0fd){return _0x3b11(_0x3a435c-0x74,_0x3ae0fd);}if(_0x561318['regExp']["\u006c\u0065\u006e\u0067\u0074\u0068"]>(0x9f79e^0x9f79e)&&_0x48c6f1['oBerE'](_0x561318['regExp'][_0x48c6f1["\u004e\u0066\u004e\u0049\u0055"](_0x561318['regExp']["\u006c\u0065\u006e\u0067\u0074\u0068"],0x6559e^0x6559f)],"\u002f")){_0x561318["\u0072\u0065\u0067\u0045\u0078\u0070"]=_0x561318['regExp']+"\u002f";}const _0x298a66=evalFn(_0x561318["\u0072\u0065\u0067\u0045\u0078\u0070"]);if(!_0x298a66['test'](_0x2425a8)){let _0x12f2a7=_0x561318["\u0065\u0072\u0072\u006f\u0072\u004d\u0073\u0067"]||"\u005b"+_0x561318['label']+_0x391b9a(0xb3,0xc6,0xc7,0xdd,0xd1);_0x5a63b2(new Error(_0x12f2a7));}else{_0x48c6f1['iyJdN'](_0x5a63b2);}}};export default FormValidators;function _0xe3fb(){const _0x4ea4f6=["\u006d\u004a\u0062\u0079\u0044\u0030\u007a\u0033\u007a\u004b\u0034","s5PWpkCMdZRW".split("").reverse().join(""),"\u0042\u0077\u0039\u0049\u0041\u0077\u0058\u004c\u0075\u0067\u0048\u0056\u0042\u004d\u0075","\u0057\u0051\u0053\u0079\u006e\u0038\u006b\u0058\u0057\u0036\u0078\u0063\u0056\u0047","\u0042\u0067\u0076\u0030\u0044\u0067\u0076\u0059\u0071\u0077\u0035\u004b\u0074\u004e\u0076\u0054\u0079\u004d\u0076\u0059","\u0042\u0067\u006a\u0062\u0071\u0077\u004b","VqYkDvQVP3cG4sUxB51l".split("").reverse().join(""),"\u006c\u0031\u0035\u0042\u006c\u0076\u0030\u002f\u0078\u0067\u0071\u0052\u006b\u0066\u0057\u0055\u0078\u0067\u0071\u0052\u006b\u0074\u0038\u004b\u006c\u0057","\u0076\u0066\u0048\u0057\u0072\u0033\u0069","\u0076\u004c\u004c\u0054\u0044\u0030\u0038","azLrwDSnMBjjxzI1wDorNCHr3uYvgD0vgB".split("").reverse().join(""),"aMTE+VVwEJUwENuAEGEMoLtw+How+B".split("").reverse().join(""),"bkCygk8dzP5W".split("").reverse().join(""),"\u007a\u0053\u006f\u002b\u006c\u006d\u006f\u004b\u0057\u0051\u0079\u0061\u0057\u0035\u0047\u0065\u0061\u0072\u0078\u0063\u0053\u0053\u006b\u006f","GBUoSPchOWrG7WQkCSdtRWjomLdpQW".split("").reverse().join(""),"\u006d\u004a\u0071\u0058\u006e\u004a\u006d\u0059\u0045\u0068\u0050\u0035\u0079\u0031\u006e\u0030","ywgJkmiO87W".split("").reverse().join(""),"\u007a\u0078\u006a\u0059\u0042\u0033\u006a\u006e\u0043\u0032\u0043","\u0078\u0045\u0073\u0034\u004a\u0045\u0077\u0070\u0052\u002b\u0049\u002b\u004b\u002b\u0077\u0066\u0050\u0045\u0073\u0034\u0052\u0045\u0041\u0077\u0048\u002b\u0077\u0054\u004c\u002b\u0045\u0053\u0050\u0047","WOUIUUEAUM9w+UJAULHE+IowUOFA+UiAUb".split("").reverse().join(""),"qBmGOW8m5W".split("").reverse().join(""),"\u0042\u0067\u0076\u0055\u007a\u0033\u0072\u004f","\u0057\u0036\u0069\u0077\u0057\u0036\u0070\u0064\u0050\u0030\u004a\u0064\u004a\u0038\u006b\u005a\u0057\u0050\u007a\u0050\u0057\u0050\u0047\u006f","\u0057\u0037\u0074\u0063\u004e\u006d\u006b\u0053\u0062\u0053\u006b\u0031\u0057\u0036\u0075","\u0057\u0034\u0037\u004c\u0056\u006c\u0068\u0050\u004f\u0035\u0033\u004b\u0055\u0036\u0042\u004c\u0052\u0037\u0070\u004d\u0052\u0051\u0078\u004c\u0056\u0042\u0042\u004c\u0050\u0052\u005a\u0056\u0056\u006a\u0056\u004c\u004a\u0051\u0064\u004c\u004a\u006a\u0070\u004c\u004b\u0042\u0052\u004d\u004c\u0052\u0070\u004c\u0052\u0079\u0065","VqYkP01lC5xl50cm61syA1sqBHYkP4cxPSsx+1soTaJETeMwTe0wOGskVW1lCPtxtn3wDbfCB1Nm71fv0TvxiH2w89cxVWLoDbfCB1Nm71fv0TvxiH2wO41l".split("").reverse().join(""),"\u0061\u0053\u006b\u0057\u0057\u0037\u0056\u0063\u004c\u0030\u004b","\u0057\u004f\u0042\u0050\u0047\u004f\u0068\u004e\u0052\u0041\u0056\u004d\u004f\u0036\u006c\u004c\u0056\u0042\u0074\u004d\u004e\u0052\u0068\u004f\u0052\u006c\u0065","\u0076\u0068\u004c\u0030\u0044\u0031\u004b","a3sojNA".split("").reverse().join(""),"qF0vhfmome".split("").reverse().join(""),"\u0078\u0053\u006f\u004a\u0057\u0050\u0033\u0063\u0055\u0047\u0065","uLwezNy".split("").reverse().join(""),"\u007a\u004c\u006e\u0064\u0042\u0077\u004b","\u0074\u004d\u007a\u006f\u0073\u0076\u0075","uwDSfMDGqwASfMDULwx".split("").reverse().join(""),"\u006d\u004a\u0043\u0030\u006f\u0074\u0043\u005a\u006e\u004d\u0054\u0049\u0042\u004d\u004c\u0053\u0045\u0061","\u0057\u0051\u005a\u0063\u0049\u0053\u006b\u0054\u0057\u004f\u005a\u0064\u004a\u0077\u0052\u0063\u0051\u0068\u0071\u0053\u0066\u0077\u0052\u0064\u0050\u0047","\u0057\u0037\u006c\u0063\u0049\u006d\u006b\u0072\u0057\u0036\u005a\u0063\u0050\u0038\u006f\u0052\u0057\u0036\u0075","\u0043\u004d\u0076\u004e\u0072\u0078\u0048\u0057","KnOWd8Jk".split("").reverse().join(""),"qg0kCgJkCE".split("").reverse().join(""),"WHdx7Ww00q".split("").reverse().join(""),"aLuTLuu".split("").reverse().join(""),"\u006e\u0033\u0072\u0062\u0077\u0077\u006e\u0079\u0042\u0071","\u0077\u0038\u006b\u002b\u0069\u0053\u006b\u0046\u0064\u006d\u006b\u0048","\u006c\u0031\u0034\u004f\u0077\u0059\u0031\u0046\u0071\u0073\u0031\u0041\u0079\u0073\u0031\u0036\u006d\u0063\u0030\u0035\u006c\u004c\u0030\u0052\u006b\u0075\u0061\u004f\u0077\u0031\u0039\u0062\u006c\u0076\u0050\u0048\u006c\u0078\u004f\u0057\u006c\u0074\u004c\u0044\u006b\u0031\u0057\u0055\u006b\u0073\u0054\u0042\u0071\u0073\u0031\u0041\u0079\u0073\u0031\u0036\u006d\u0063\u0030\u0035\u0078\u0078\u0053\u0059\u006c\u0064\u006e\u0039\u006a\u0063\u0038","\u0042\u0067\u0066\u0049\u007a\u0077\u0057","\u006d\u004a\u0079\u0059\u006f\u0064\u006a\u0065\u0074\u0076\u0050\u0067\u0042\u0066\u0061","\u007a\u0077\u0031\u0048\u0041\u0077\u0057","\u006c\u0031\u0035\u0042\u006d\u0076\u0031\u0042\u006d\u0059\u0030\u0035\u0078\u0076\u0053\u0057\u006c\u0074\u004c\u0044\u0045\u005a\u004c\u0039\u006a\u0063\u0038","\u006e\u004a\u004b\u0035\u006d\u005a\u0065\u0030\u006d\u0065\u0031\u004b\u0041\u0031\u0050\u004d\u0071\u0047","\u0057\u0035\u002f\u0063\u0055\u0064\u0071\u0074\u0057\u0052\u0039\u0074","\u0067\u006d\u006b\u0066\u0066\u002b\u0073\u0037\u0055\u0066\u0078\u0050\u0056\u0041\u005a\u0064\u004c\u0043\u006f\u0042\u0057\u0036\u0074\u0063\u0051\u0061","XkCilkSUcB5W".split("").reverse().join(""),"WlKSsx50cm61syA1sqB51l".split("").reverse().join(""),"zkCBKkSbzr4W".split("").reverse().join(""),"\u0076\u004e\u0066\u0054\u0076\u0032\u004b","qSd36WyH6W".split("").reverse().join(""),"/o8Ndl7W".split("").reverse().join(""),"\u0057\u0050\u005a\u0064\u0051\u004d\u0076\u0056\u0057\u0037\u006d\u0077\u0057\u0034\u0071\u004a\u0057\u004f\u0037\u0063\u0049\u0031\u0069\u0064","\u0078\u0045\u0077\u006d\u0048\u0045\u0077\u0071\u0051\u002b\u004d\u0044\u004e\u0055\u0077\u0054\u004c\u002b\u0041\u0056\u004a\u0045\u0077\u0054\u004c\u002b\u0045\u0053\u0050\u0047","\u0078\u0045\u0077\u0070\u0051\u0055\u0049\u0064\u0056\u0045\u0049\u002b\u004b\u002b\u0077\u0066\u0050\u0045\u0077\u0054\u004c\u002b\u0041\u0056\u004a\u0045\u0041\u0069\u004c\u0055\u0041\u0076\u0053\u006f\u0077\u0054\u004c\u0057","\u0078\u0045\u0077\u0070\u0051\u0055\u0049\u0064\u0056\u0045\u0049\u002b\u004b\u002b\u0077\u0066\u0050\u0045\u0073\u0034\u0052\u0045\u0041\u0077\u0048\u002b\u0077\u0054\u004c\u002b\u0045\u0053\u0050\u0047","VqIkDrgx61syA1sqBTsx61syA1sqB51l".split("").reverse().join(""),"OrUdVwrsoCMddRW".split("").reverse().join(""),"0o8vsoSNcN6W".split("").reverse().join(""),"\u0057\u0051\u0075\u0065\u0057\u0051\u0046\u0063\u0056\u006d\u006f\u0041\u0057\u0036\u0068\u0064\u0050\u006d\u006b\u0047\u0066\u0053\u006b\u0031\u0057\u0052\u0079","PmWEuCfte4Mtvk8D".split("").reverse().join(""),"\u006d\u004a\u0072\u0054\u0076\u0032\u0058\u0055\u007a\u004d\u0034","DoSzPz6WVa2SchOW".split("").reverse().join(""),"\u0076\u0043\u006f\u0055\u0057\u004f\u0037\u0063\u004d\u005a\u0043","YvMyTvNB".split("").reverse().join(""),"\u0046\u006d\u006b\u0038\u0046\u0043\u006b\u0044\u0075\u0043\u006f\u0058\u0045\u0065\u006a\u0045","\u006c\u0031\u0035\u0042\u0071\u0073\u0031\u0041\u0079\u0073\u0031\u0036\u0078\u0073\u0053\u004b\u006c\u0057","4ezkLxA".split("").reverse().join(""),"\u0063\u005a\u0079\u0051\u0057\u0050\u0079","qD5KOWsKwyuKKpHidy".split("").reverse().join(""),"yesnPgw".split("").reverse().join(""),"\u0075\u0078\u007a\u0050\u0076\u0075\u0034","WRVIEICA+J8woVGAotsvvx".split("").reverse().join(""),"\u0057\u0036\u0039\u0065\u0041\u0043\u006f\u0068\u0057\u0051\u005a\u0064\u0055\u004c\u0074\u0063\u0053\u004d\u0035\u0065\u0057\u0034\u006c\u0064\u004b\u0068\u0075","K3Alrhw".split("").reverse().join(""),"\u0057\u0052\u0030\u0076\u0061\u0038\u006f\u0069\u0057\u0036\u0071"];_0xe3fb=function(){return _0x4ea4f6;};return _0xe3fb();}
2
+
3
+ export const getRegExp = function (validatorName) {
4
+ const commonRegExp = {
5
+ number: '/^[-]?\\d+(\\.\\d+)?$/',
6
+ letter: '/^[A-Za-z]+$/',
7
+ letterAndNumber: '/^[A-Za-z0-9]+$/',
8
+ mobilePhone: '/^[1][3-9][0-9]{9}$/',
9
+ letterStartNumberIncluded: '/^[A-Za-z]+[A-Za-z\\d]*$/',
10
+ noChinese: '/^[^\u4e00-\u9fa5]+$/',
11
+ chinese: '/^[\u4e00-\u9fa5]+$/',
12
+ email: '/^([-_A-Za-z0-9.]+)@([_A-Za-z0-9]+\\.)+[A-Za-z0-9]{2,3}$/',
13
+ url: '/^([hH][tT]{2}[pP]:\\/\\/|[hH][tT]{2}[pP][sS]:\\/\\/)(([A-Za-z0-9-~]+)\\.)+([A-Za-z0-9-~\\/])+$/',
14
+ }
15
+
16
+ return commonRegExp[validatorName]
17
+ }
18
+
19
+ const validateFn = function (validatorName, rule, value, callback, defaultErrorMsg) {
20
+ //空值不校验
21
+ if (isNull(value) || (value.length <= 0)) {
22
+ callback()
23
+ return
24
+ }
25
+
26
+ const reg = evalFn(getRegExp(validatorName))
27
+
28
+ if (!reg.test(value)) {
29
+ let errTxt = rule.errorMsg || defaultErrorMsg
30
+ callback(new Error(errTxt))
31
+ } else {
32
+ callback()
33
+ }
34
+ }
35
+
36
+ const FormValidators = {
37
+
38
+ /* 数字 */
39
+ number(rule, value, callback) {
40
+ validateFn('number', rule, value, callback, '[' + rule.label + ']包含非数字字符')
41
+ },
42
+
43
+ /* 字母 */
44
+ letter(rule, value, callback) {
45
+ validateFn('letter', rule, value, callback, '[' + rule.label + ']包含非字母字符')
46
+ },
47
+
48
+ /* 字母和数字 */
49
+ letterAndNumber(rule, value, callback) {
50
+ validateFn('letterAndNumber', rule, value, callback, '[' + rule.label + ']只能输入字母或数字')
51
+ },
52
+
53
+ /* 手机号码 */
54
+ mobilePhone(rule, value, callback) {
55
+ validateFn('mobilePhone', rule, value, callback, '[' + rule.label + ']手机号码格式有误')
56
+ },
57
+
58
+ /* 禁止空白字符开头 */
59
+ noBlankStart(rule, value, callback) {
60
+ //暂未实现
61
+ },
62
+
63
+ /* 禁止空白字符结尾 */
64
+ noBlankEnd(rule, value, callback) {
65
+ //暂未实现
66
+ },
67
+
68
+ /* 字母开头,仅可包含数字 */
69
+ letterStartNumberIncluded(rule, value, callback) {
70
+ validateFn('letterStartNumberIncluded', rule, value, callback, '[' + rule.label + ']必须以字母开头,可包含数字')
71
+ },
72
+
73
+ /* 禁止中文输入 */
74
+ noChinese(rule, value, callback) {
75
+ validateFn('noChinese', rule, value, callback, '[' + rule.label + ']不可输入中文字符')
76
+ },
77
+
78
+ /* 必须中文输入 */
79
+ chinese(rule, value, callback) {
80
+ validateFn('chinese', rule, value, callback, '[' + rule.label + ']只能输入中文字符')
81
+ },
82
+
83
+ /* 电子邮箱 */
84
+ email(rule, value, callback) {
85
+ validateFn('email', rule, value, callback, '[' + rule.label + ']邮箱格式有误')
86
+ },
87
+
88
+ /* URL网址 */
89
+ url(rule, value, callback) {
90
+ validateFn('url', rule, value, callback, '[' + rule.label + ']URL格式有误')
91
+ },
92
+
93
+ /*测试
94
+ test(rule, value, callback, errorMsg) {
95
+ //空值不校验
96
+ if (isNull(value) || (value.length <= 0)) {
97
+ callback()
98
+ return
99
+ }
100
+
101
+ if (value < 100) {
102
+ callback(new Error('[' + rule.label + ']不能小于100'))
103
+ } else {
104
+ callback()
105
+ }
106
+ },
107
+ */
108
+
109
+ regExp(rule, value, callback) {
110
+ //空值不校验
111
+ if (isNull(value) || (value.length <= 0)) {
112
+ callback()
113
+ return
114
+ }
115
+
116
+ if (rule.regExp.length > 0 && rule.regExp[0] !== '/') {
117
+ rule.regExp = '/' + rule.regExp
118
+ }
119
+ if (rule.regExp.length > 0 && rule.regExp[rule.regExp.length - 1] !== '/') {
120
+ rule.regExp = rule.regExp + '/'
121
+ }
122
+
123
+ const pattern = evalFn(rule.regExp)
124
+ if (!pattern.test(value)) {
125
+ let errTxt = rule.errorMsg || '[' + rule.label + ']invalid value'
126
+ callback(new Error(errTxt))
127
+ } else {
128
+ callback()
129
+ }
130
+ },
131
+
132
+ }
133
+
134
+ export default FormValidators
@@ -1,125 +1,144 @@
1
- /**version-1.0*/
2
- let modules = {};
3
-
4
- modules = {
5
- install: function(Vue) {
6
- Vue.directive('LimitNumber', {
7
- bind(el, binding, vnode) {
8
- let scale = binding.value != null ? Number(binding.value) : 2;
9
- let min = vnode.componentInstance ? vnode.componentInstance.min : null;
10
- let negative = vnode.componentInstance && vnode.componentInstance.$attrs ?
11
- vnode.componentInstance.$attrs.negative : false;
12
- negative = negative == "true" || negative == true;
13
-
14
- if (Number(min) >= 0) {
15
- negative = false;
16
- }
17
-
18
- el.onkeyup = (event) => {
19
- let regular;
20
- if (scale == 0) {
21
- if (!negative) {
22
- regular = /[^\d]/g;
23
- } else {
24
- regular = /[^\d\-]/g;
25
- }
26
- } else {
27
- if (!negative) {
28
- regular = /[^\d\.]/g;
29
- } else {
30
- regular = /[^\d\.-]/g;
31
- }
32
- }
33
- let value = event.target.value.replaceAll(
34
- regular,
35
- ""
36
- );
37
- event.target.value = value;
38
- };
39
- el.onkeypress = (event) => {
40
- let input = event.target;
41
- let selectionStart = input.selectionStart;
42
- let selectionEnd = input.selectionEnd;
43
-
44
- let keyCode = event.keyCode || event.which;
45
- let value = event.target.value;
46
-
47
- let keyValue = String.fromCharCode(keyCode);
48
- if (keyCode === 46 && scale === 0) {
49
- return false;
50
- }
51
-
52
- if (keyCode === 45 && !negative) {
53
- return false;
54
- }
55
-
56
- let res = keyCode === 45 || keyCode === 46 || (/[\d]/.test(keyValue)) || event
57
- .which === 8;
58
- if (res) {
59
- let size = value.length;
60
- if ((keyValue == "-" && value == "")) {
61
- res = true;
62
- } else {
63
- let newValue;
64
-
65
- if (selectionStart == selectionEnd) {
66
- if (selectionStart == 0) {
67
- newValue = keyValue + '' + value
68
- } else if (selectionStart == size - 1) {
69
- newValue = value + '' + keyValue;
70
- } else {
71
- newValue = value.substring(0, selectionStart) + keyValue + value
72
- .slice(selectionStart);
73
- }
74
- } else {
75
- if (selectionStart == 0) {
76
- if (selectionEnd == size - 1) {
77
- newValue = keyValue;
78
- } else {
79
- newValue = keyValue + value.slice(selectionEnd);
80
- }
81
- } else {
82
- if (selectionEnd == size - 1) {
83
- newValue = value.substring(0, selectionStart) + keyValue;
84
- } else {
85
- newValue = value.substring(0, selectionStart) + keyValue +
86
- value.slice(selectionEnd);
87
- }
88
- }
89
- }
90
- let i = newValue.indexOf(".");
91
- if (i == 0) {
92
- res = false;
93
- } else if (keyValue == "." && i == newValue.length - 1) {
94
- res = true;
95
- } else {
96
- if (newValue == "-") {
97
- return true;
98
- }
99
- res = !isNaN(newValue);
100
- if (res) {
101
- if (newValue.indexOf('.') != -1) {
102
- var str_ = newValue.substr(newValue.indexOf('.') + 1);
103
- if (str_.length > scale) {
104
- if (keyValue == ".") {
105
- let val = Number(newValue.substr(0, newValue
106
- .indexOf(
107
- '.') + 1 + scale));
108
- event.target.value = val;
109
- }
110
- return false;
111
- }
112
- }
113
- }
114
- }
115
- }
116
-
117
- }
118
- return res;
119
- }
120
- }
121
- })
122
- }
123
- };
124
-
1
+ /**version-1.1*/
2
+ let modules = {};
3
+
4
+ function getVNodeValue(vnode, name) {
5
+ let propsData = vnode && vnode.componentOptions && vnode.componentOptions.propsData;
6
+ if (propsData && Object.prototype.hasOwnProperty.call(propsData, name)) {
7
+ return propsData[name];
8
+ }
9
+ let attrs = vnode && vnode.data && vnode.data.attrs;
10
+ if (attrs && Object.prototype.hasOwnProperty.call(attrs, name)) {
11
+ return attrs[name];
12
+ }
13
+ return undefined;
14
+ }
15
+
16
+ function resolveConfig(binding, vnode) {
17
+ let scale = binding.value != null && binding.value !== "" ? Number(binding.value) : 2;
18
+ if (isNaN(scale) || scale < 0) {
19
+ scale = 2;
20
+ }
21
+ // componentUpdated 在父组件的 patch 期间执行。此处如果读取 componentInstance
22
+ // 的响应式属性,会让父组件错误订阅子组件,最终形成无限更新循环。
23
+ let min = getVNodeValue(vnode, "min");
24
+ let negative = getVNodeValue(vnode, "negative");
25
+ negative = negative == "true" || negative == true;
26
+
27
+ if (min != null && isFinite(min)) {
28
+ // min 明确为非负时禁止负号;明确为负数时自动放开(此前必须手动加 negative 才能输负数)
29
+ negative = Number(min) < 0;
30
+ }
31
+ return { scale, negative };
32
+ }
33
+
34
+ // 校验"在 value 的 [selStart, selEnd) 处输入 keyValue 后"是否仍是合法数字输入过程
35
+ export function isValidInsert(value, keyValue, selStart, selEnd, config) {
36
+ let scale = config.scale;
37
+ let negative = config.negative;
38
+
39
+ if (keyValue === "." && scale === 0) return false;
40
+ if (keyValue === "-" && !negative) return false;
41
+ if (!(keyValue === "-" || keyValue === "." || /\d/.test(keyValue))) return false;
42
+
43
+ let newValue
44
+ = value.substring(0, selStart) + keyValue + value.substring(selEnd);
45
+ if (newValue === "-") return true;
46
+ if (newValue.indexOf(".") === 0) return false;
47
+ // 输入过程允许以小数点结尾(如 "1." / "-1.")
48
+ if (keyValue === "." && newValue.indexOf(".") === newValue.length - 1) {
49
+ return true;
50
+ }
51
+ if (isNaN(newValue)) return false;
52
+ if (scale > 0) {
53
+ let decimals = newValue.split(".")[1] || "";
54
+ if (decimals.length > scale) return false;
55
+ }
56
+ return true;
57
+ }
58
+
59
+ // 校验粘贴 text 后的完整值是否合法
60
+ export function isValidPaste(value, text, selStart, selEnd, config) {
61
+ let newValue = value.substring(0, selStart) + text + value.substring(selEnd);
62
+ if (newValue === "" || (config.negative && newValue === "-")) return true;
63
+ if (isNaN(newValue)) return false;
64
+ if (!config.negative && Number(newValue) < 0) return false;
65
+ if (config.scale === 0) {
66
+ return newValue.indexOf(".") === -1;
67
+ }
68
+ let decimals = newValue.split(".")[1] || "";
69
+ return decimals.length <= config.scale;
70
+ }
71
+
72
+ function bindHandlers(el) {
73
+ el.onkeyup = (event) => {
74
+ let { scale, negative } = el._limitNumberConfig;
75
+ let regular;
76
+ if (scale == 0) {
77
+ regular = negative ? /[^\d\-]/g : /[^\d]/g;
78
+ } else {
79
+ regular = negative ? /[^\d\.-]/g : /[^\d\.]/g;
80
+ }
81
+ let target = event.target;
82
+ let value = String(target.value || "").replace(regular, "");
83
+ // 值没变化时不回写,避免无谓地干扰光标
84
+ if (value !== target.value) {
85
+ target.value = value;
86
+ }
87
+ };
88
+
89
+ el.onkeypress = (event) => {
90
+ let input = event.target;
91
+ let keyCode = event.keyCode || event.which;
92
+ // 放过退格等控制键(keypress 阶段 which=8 为部分浏览器的退格)
93
+ if (event.which === 8) return true;
94
+
95
+ let keyValue = String.fromCharCode(keyCode);
96
+ return isValidInsert(
97
+ String(input.value || ""),
98
+ keyValue,
99
+ input.selectionStart,
100
+ input.selectionEnd,
101
+ el._limitNumberConfig
102
+ );
103
+ };
104
+
105
+ el.onpaste = (event) => {
106
+ let input = event.target;
107
+ if (!input || input.tagName !== "INPUT") return;
108
+ let clipboard = event.clipboardData || window.clipboardData;
109
+ let text = clipboard ? String(clipboard.getData("text") || "").trim() : "";
110
+ let valid = isValidPaste(
111
+ String(input.value || ""),
112
+ text,
113
+ input.selectionStart,
114
+ input.selectionEnd,
115
+ el._limitNumberConfig
116
+ );
117
+ if (!valid) {
118
+ event.preventDefault();
119
+ }
120
+ };
121
+ }
122
+
123
+ modules = {
124
+ install: function(Vue) {
125
+ Vue.directive('LimitNumber', {
126
+ bind(el, binding, vnode) {
127
+ el._limitNumberConfig = resolveConfig(binding, vnode);
128
+ bindHandlers(el);
129
+ },
130
+ componentUpdated(el, binding, vnode) {
131
+ // scale/min/negative 运行期变化时刷新配置(旧版只在 bind 取一次)
132
+ el._limitNumberConfig = resolveConfig(binding, vnode);
133
+ },
134
+ unbind(el) {
135
+ el.onkeyup = null;
136
+ el.onkeypress = null;
137
+ el.onpaste = null;
138
+ delete el._limitNumberConfig;
139
+ }
140
+ })
141
+ }
142
+ };
143
+
125
144
  export default modules