ztxkutils 2.10.66-27-beta → 2.10.66-29

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.
@@ -2470,7 +2470,7 @@ var AxiosCancel = /** @class */ (function () {
2470
2470
  }());
2471
2471
  var axiosCancel = new AxiosCancel();
2472
2472
 
2473
- var timeoutNum = 60000 * 5;
2473
+ var timeoutNum = 60000;
2474
2474
  var isRefreshing = true; // 是否需要刷新
2475
2475
  var subscribers = []; // 缓存需要帮助请求的接口
2476
2476
  var requestTokenEndTime = 0; // token调用结束时间
@@ -2480,6 +2480,7 @@ var isNotFound = false; // 404弹框
2480
2480
  var isOffSite = false; // 501异地登录
2481
2481
  var isExpiration = false; // 401登录过期
2482
2482
  var catchPromiseObj = []; // 缓存当前宏任务下的缓存
2483
+ var autonomousCatchingPromiseObj = {}; // 自主缓存。可以自主清空。每个url只对应一个请求
2483
2484
  var __isTimeoutMessage = false; // 是否需要默认展示超时弹框
2484
2485
  var isFirstSet = false; // 首次初始化
2485
2486
  // 'Basic em1kbXM6em1kbXNfc2VjcmV0' 新的auth
@@ -2647,10 +2648,14 @@ function setInterceptorsResponse(jumpCallback, otherOptions) {
2647
2648
  params: error === null || error === void 0 ? void 0 : error.config.params,
2648
2649
  });
2649
2650
  });
2651
+ /** 如果接口出错了,清理掉这个错误的接口缓存 */
2652
+ if (autonomousCatchingPromiseObj[error === null || error === void 0 ? void 0 : error.config.url]) {
2653
+ autonomousCatchingPromiseObj[error === null || error === void 0 ? void 0 : error.config.url] = undefined;
2654
+ }
2650
2655
  if (item !== -1) {
2651
2656
  catchPromiseObj.splice(item, 1);
2652
2657
  }
2653
- console.log(error === null || error === void 0 ? void 0 : error.config, catchPromiseObj);
2658
+ // console.log(error?.config, catchPromiseObj);
2654
2659
  /** 如果接口出错了,那么清理掉这个错误的接口 */
2655
2660
  // 超时异常统一处理,超时的异常没有response值,只能通过toString处理
2656
2661
  if (!errRes && error.toString().indexOf(timeoutNum + "ms") !== -1) {
@@ -2766,14 +2771,14 @@ function transformObj(obj) {
2766
2771
  return obj;
2767
2772
  }
2768
2773
  function request(myOptions, jumpCallback, otherOptions) {
2769
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
2774
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
2770
2775
  var InnerAuthorization = (otherOptions || {}).InnerAuthorization;
2771
2776
  if (!isFirstSet) {
2772
2777
  setInterceptorsRequest();
2773
2778
  setInterceptorsResponse(jumpCallback, otherOptions);
2774
2779
  isFirstSet = true;
2775
2780
  }
2776
- var encryptionType = myOptions.encryptionType, isTimeoutMessage = myOptions.isTimeoutMessage, isForceRequest = myOptions.isForceRequest, _o = myOptions.noCatchUrl, noCatchUrl = _o === void 0 ? [] : _o, isCatch = myOptions.isCatch, mustCatch = myOptions.mustCatch, options = __rest(myOptions, ["encryptionType", "isTimeoutMessage", "isForceRequest", "noCatchUrl", "isCatch", "mustCatch"]);
2781
+ var encryptionType = myOptions.encryptionType, isTimeoutMessage = myOptions.isTimeoutMessage, isForceRequest = myOptions.isForceRequest, _m = myOptions.noCatchUrl, noCatchUrl = _m === void 0 ? [] : _m, isCatch = myOptions.isCatch, mustCatch = myOptions.mustCatch, isAutonomousCatch = myOptions.isAutonomousCatch, _o = myOptions.autonomousCount, autonomousCount = _o === void 0 ? 1 : _o, options = __rest(myOptions, ["encryptionType", "isTimeoutMessage", "isForceRequest", "noCatchUrl", "isCatch", "mustCatch", "isAutonomousCatch", "autonomousCount"]);
2777
2782
  timeoutNum =
2778
2783
  typeof myOptions.timeout === 'number' ? myOptions.timeout : timeoutNum;
2779
2784
  __isTimeoutMessage = isTimeoutMessage;
@@ -2806,10 +2811,6 @@ function request(myOptions, jumpCallback, otherOptions) {
2806
2811
  }
2807
2812
  // 将传入配置与默认配置混合
2808
2813
  var newOptions = __assign(__assign(__assign({}, defaultOptions), options), { headers: __assign(__assign({}, defaultOptions.headers), options.headers) });
2809
- // 湘钢国贸项目 除了登录接口外 去掉 Authorization认证头部
2810
- if (newOptions.url !== '/api/zmdms-auth/oauth/token' && !InnerAuthorization) {
2811
- delete newOptions.headers.Authorization;
2812
- }
2813
2814
  // 特殊请求处理
2814
2815
  if (((_e = newOptions.method) === null || _e === void 0 ? void 0 : _e.toUpperCase()) === 'POST' ||
2815
2816
  ((_f = newOptions.method) === null || _f === void 0 ? void 0 : _f.toUpperCase()) === 'PUT' ||
@@ -2832,12 +2833,6 @@ function request(myOptions, jumpCallback, otherOptions) {
2832
2833
  newOptions.headers = __assign({ 'Content-Type': 'application/json' }, newOptions.headers);
2833
2834
  }
2834
2835
  }
2835
- // 对Zmdms-Auth特殊处理
2836
- if (((_h = newOptions.headers) === null || _h === void 0 ? void 0 : _h['Zmdms-Auth']) &&
2837
- !((_j = newOptions.headers) === null || _j === void 0 ? void 0 : _j['Zmdms-Auth'].includes('bearer'))) {
2838
- newOptions.headers['Zmdms-Auth'] =
2839
- 'bearer ' + ((_k = newOptions.headers) === null || _k === void 0 ? void 0 : _k['Zmdms-Auth']);
2840
- }
2841
2836
  // 将参数进行aes加密
2842
2837
  if (newOptions.data) {
2843
2838
  if (encryptionType === true || encryptionType === 'aes') {
@@ -2859,13 +2854,63 @@ function request(myOptions, jumpCallback, otherOptions) {
2859
2854
  };
2860
2855
  }
2861
2856
  }
2857
+ // 自主缓存请求。默认这个缓存只会针对一个url缓存一次请求
2858
+ if (isAutonomousCatch) {
2859
+ var item = autonomousCatchingPromiseObj[newOptions.url];
2860
+ // 如果当前接口没有缓存 缓存住,并且返回接口结果
2861
+ if (!item || !Array.isArray(item)) {
2862
+ var result = axios(newOptions);
2863
+ autonomousCatchingPromiseObj[newOptions.url] = [
2864
+ {
2865
+ params: newOptions.params,
2866
+ promiseObj: result,
2867
+ method: (_h = newOptions.method) === null || _h === void 0 ? void 0 : _h.toUpperCase(),
2868
+ },
2869
+ ];
2870
+ return result;
2871
+ }
2872
+ // 如果当前接口有缓存
2873
+ // 判断当前参数是否命中
2874
+ var index = item.findIndex(function (itemChild) {
2875
+ var _a, _b;
2876
+ return isEqual_1({
2877
+ method: (_a = itemChild.method) === null || _a === void 0 ? void 0 : _a.toUpperCase(),
2878
+ params: itemChild.params,
2879
+ }, {
2880
+ method: (_b = newOptions.method) === null || _b === void 0 ? void 0 : _b.toUpperCase(),
2881
+ params: newOptions.params,
2882
+ });
2883
+ });
2884
+ // 如果缓存命中
2885
+ if (index !== -1) {
2886
+ // 最近使用优先
2887
+ var result = item[index];
2888
+ item.splice(index, 1);
2889
+ item.push(result);
2890
+ return result === null || result === void 0 ? void 0 : result.promiseObj;
2891
+ }
2892
+ else {
2893
+ var result = axios(newOptions);
2894
+ // 当前接口可以缓存几个结果 如果超过最大缓存数量 删除第一位
2895
+ if (item.length >= autonomousCount) {
2896
+ item.shift();
2897
+ }
2898
+ item.push({
2899
+ params: newOptions.params,
2900
+ promiseObj: result,
2901
+ method: (_j = newOptions.method) === null || _j === void 0 ? void 0 : _j.toUpperCase(),
2902
+ });
2903
+ return result;
2904
+ }
2905
+ }
2862
2906
  // 缓存本次宏任务下的GET请求,并且不是以/page结尾的列表分页接口
2863
2907
  // 并且不是强制请求,强制请求需要
2864
- if ((((_l = newOptions.method) === null || _l === void 0 ? void 0 : _l.toUpperCase()) === 'GET' &&
2865
- !((_m = newOptions.url) === null || _m === void 0 ? void 0 : _m.endsWith('/page')) &&
2908
+ if (((((_k = newOptions.method) === null || _k === void 0 ? void 0 : _k.toUpperCase()) === 'GET' &&
2909
+ !((_l = newOptions.url) === null || _l === void 0 ? void 0 : _l.endsWith('/page')) &&
2866
2910
  !noCatchUrl.find(function (item) { var _a; return (_a = newOptions.url) === null || _a === void 0 ? void 0 : _a.endsWith(item); }) &&
2867
2911
  isCatch) ||
2868
- mustCatch) {
2912
+ mustCatch) &&
2913
+ !isAutonomousCatch) {
2869
2914
  // 能不能找到,url与参数都一样得数据
2870
2915
  var index = catchPromiseObj.findIndex(function (item) {
2871
2916
  return isEqual_1({
@@ -2909,6 +2954,9 @@ function clearNoCompleteRequest() {
2909
2954
  }
2910
2955
  function clearCatch() {
2911
2956
  catchPromiseObj = [];
2957
+ }
2958
+ function clearAutonomousCatch(url) {
2959
+ autonomousCatchingPromiseObj[url] = undefined;
2912
2960
  }
2913
2961
 
2914
2962
  var request$1 = /*#__PURE__*/Object.freeze({
@@ -2917,7 +2965,8 @@ var request$1 = /*#__PURE__*/Object.freeze({
2917
2965
  NEW_AUTHORIZATION: NEW_AUTHORIZATION,
2918
2966
  'default': request,
2919
2967
  clearNoCompleteRequest: clearNoCompleteRequest,
2920
- clearCatch: clearCatch
2968
+ clearCatch: clearCatch,
2969
+ clearAutonomousCatch: clearAutonomousCatch
2921
2970
  });
2922
2971
 
2923
- export { NEW_AUTHORIZATION as N, OLD_AUTHORIZATION as O, request as a, clearCatch as b, clearNoCompleteRequest as c, request$1 as r };
2972
+ export { NEW_AUTHORIZATION as N, OLD_AUTHORIZATION as O, request as a, clearCatch as b, clearNoCompleteRequest as c, clearAutonomousCatch as d, request$1 as r };
@@ -126,6 +126,13 @@ function setSession(name, value) {
126
126
  sessionStorage.setItem(name, value);
127
127
  }
128
128
  function getSession(name) {
129
+ // 这里有两种场景需要处理:
130
+ // 1. 从统一门户单点到流程中心,流程中心嵌入的表单是不需要权限控制的。
131
+ // 因为这里认为,既然待办到了某人那里,那么这个路由的不管某人是否有权限,都需要能够查看。
132
+ // 2. 第二种情况,就是到了流程这里后,再跳转到其他页面的权限控制。
133
+ // 这里认为,跟流程表单关联的页面都不应该做权限控制。因为是跟流程相关的。
134
+ // 处理第一个问题的解决方案是:流程中心会通过iframe传递一个标识给子应用,子应用来设置一些逻辑。
135
+ // 处理第二个问题的解决方案是:通过opener来获取来源地址,来源地址如果是正确的,那么也应该权限通过。
129
136
  if (window.opener && Object.getOwnPropertyNames(window.opener).length > 0) {
130
137
  // let v = ROUTER_FILTER_RULES_VALUE;
131
138
  // try {
@@ -25,7 +25,9 @@ var validate = {
25
25
  */
26
26
  // phoneValidate: /^1(3\d|4\d|5\d|6\d|7\d|8\d|9\d)\d{8}$/,
27
27
  // 数字 横线 长度 0 - 15位/^([0-9])|(\-)*$/
28
- phoneValidate: /^[0-9\-]{0,15}$/,
28
+ // /^[0-9\-]{0,15}$/ 老版
29
+ // /^(?:\+?\d{1,20})$/g
30
+ phoneValidate: /^(?:\+?\d{1,20})$/g,
29
31
  /**
30
32
  * @description 短信验证码 接受11位手机号
31
33
  */
@@ -25,7 +25,10 @@ var validate = {
25
25
  */
26
26
  // phoneValidate: /^1(3\d|4\d|5\d|6\d|7\d|8\d|9\d)\d{8}$/,
27
27
  // 数字 横线 长度 0 - 15位/^([0-9])|(\-)*$/
28
+ // /^[0-9\-]{0,15}$/ 老版
29
+ // /^(?:\+?\d{1,20})$/g
28
30
  phoneValidate: /^[0-9\-]{0,15}$/,
31
+ abroadPhoneValidate: /^(?:\+?\d{1,20})$/g,
29
32
  /**
30
33
  * @description 短信验证码 接受11位手机号
31
34
  */
@@ -22,6 +22,7 @@ declare const validate: {
22
22
  * @description 电话号码验证
23
23
  */
24
24
  phoneValidate: RegExp;
25
+ abroadPhoneValidate: RegExp;
25
26
  /**
26
27
  * @description 短信验证码 接受11位手机号
27
28
  */
package/dist/validate.js CHANGED
@@ -1,2 +1,2 @@
1
1
  import './i18next.js';
2
- export { c as commonMessage, b as validate, a as validatePassword } from './validate-21164759.js';
2
+ export { c as commonMessage, b as validate, a as validatePassword } from './validate-eccfa73c.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ztxkutils",
3
- "version": "2.10.66-27-beta",
3
+ "version": "2.10.66-29",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -1,26 +0,0 @@
1
- import instance from './i18next.js';
2
-
3
- /**
4
- * @description 数据模型创建
5
- */
6
- function createSuccessModel(data, message) {
7
- return {
8
- data: data,
9
- message: message || instance.t('数据请求成功'),
10
- success: true,
11
- };
12
- }
13
- function createErrorModel(message) {
14
- return {
15
- message: message || instance.t('数据请求失败'),
16
- success: false,
17
- };
18
- }
19
-
20
- var dataModel = /*#__PURE__*/Object.freeze({
21
- __proto__: null,
22
- createSuccessModel: createSuccessModel,
23
- createErrorModel: createErrorModel
24
- });
25
-
26
- export { createErrorModel as a, createSuccessModel as c, dataModel as d };