ztxkui 4.2.18-2 → 4.2.18-3

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.
@@ -48,6 +48,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
48
48
  import React, { useState, useCallback, useRef, useEffect, useLayoutEffect, } from 'react';
49
49
  import { Modal, Form, SearchContainer, Input, Container, Button, message, } from '../../../../index';
50
50
  import { validate, commonMessage } from 'ztxkutils/dist/validate';
51
+ import { validatePassword, passwordMessage } from '../validatePassword';
51
52
  var SearchLeft = SearchContainer.SearchLeft, Item = SearchContainer.SearchItem;
52
53
  var countDownMaxTime = 60; // 倒计时最大时间
53
54
  var ForgetPassword = function (_a) {
@@ -256,14 +257,24 @@ var ForgetPassword = function (_a) {
256
257
  React.createElement("div", { style: { width: '100%', display: 'flex' } },
257
258
  React.createElement(Item, { name: "newPassword", label: "\u65B0\u5BC6\u7801", rules: [
258
259
  { required: true, message: '请输入新密码' },
259
- {
260
- pattern: validate.passwordValidate,
261
- message: commonMessage.passwordMessage,
260
+ function (_a) {
261
+ var getFieldValue = _a.getFieldValue;
262
+ return ({
263
+ validator: function (rule, value) {
264
+ var result = validatePassword(value, getFieldValue('account'));
265
+ if (result.result) {
266
+ return Promise.resolve();
267
+ }
268
+ else {
269
+ return Promise.reject(result.message);
270
+ }
271
+ },
272
+ });
262
273
  },
263
274
  ] },
264
- React.createElement(Input, { autoComplete: "off", type: "password", placeholder: "\u8BF7\u8F93\u5165\u65B0\u5BC6\u7801" })),
275
+ React.createElement(Input.Password, { autoComplete: "off", placeholder: "\u8BF7\u8F93\u5165\u65B0\u5BC6\u7801" })),
265
276
  React.createElement("div", null,
266
- React.createElement("p", { style: { height: 32, lineHeight: '32px', color: 'red' } }, commonMessage.passwordMessage))),
277
+ React.createElement("p", { style: { height: 32, lineHeight: '32px', color: 'red' } }, passwordMessage))),
267
278
  React.createElement(Item, { name: "newPassword1", label: "\u786E\u8BA4\u65B0\u5BC6\u7801", rules: [
268
279
  { required: true, message: '请确认密码' },
269
280
  function (_a) {
@@ -278,6 +289,6 @@ var ForgetPassword = function (_a) {
278
289
  });
279
290
  },
280
291
  ], dependencies: ['newPassword'] },
281
- React.createElement(Input, { autoComplete: "off", type: "password", placeholder: "\u786E\u8BA4\u65B0\u5BC6\u7801" }))))))));
292
+ React.createElement(Input.Password, { autoComplete: "off", placeholder: "\u786E\u8BA4\u65B0\u5BC6\u7801" }))))))));
282
293
  };
283
294
  export default ForgetPassword;
@@ -47,7 +47,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
47
47
  };
48
48
  import React, { useCallback, useState } from 'react';
49
49
  import { Container, Form, SearchContainer, Input, message, Modal, Button, } from '../../../../index';
50
- import { validate, commonMessage } from 'ztxkutils/dist/validate';
50
+ import { validatePassword, passwordMessage } from '../validatePassword';
51
51
  var SearchLeft = SearchContainer.SearchLeft, Item = SearchContainer.SearchItem;
52
52
  var Making = function (_a) {
53
53
  var visible = _a.visible, onCancel = _a.onCancel, setUserPassword = _a.setUserPassword, request = _a.request, setUserPasswordOption = _a.setUserPasswordOption, encryptionHandle = _a.encryptionHandle;
@@ -130,18 +130,28 @@ var Making = function (_a) {
130
130
  React.createElement(SearchLeft, null,
131
131
  React.createElement("div", { style: { width: '100%' } },
132
132
  React.createElement(Item, { name: "oldPassword", label: "\u539F\u5BC6\u7801", rules: [{ required: true, message: '请输入原密码' }] },
133
- React.createElement(Input, { autoComplete: "new-password", type: "password" }))),
133
+ React.createElement(Input.Password, { autoComplete: "new-password" }))),
134
134
  React.createElement("div", { style: { width: '100%', display: 'flex' } },
135
135
  React.createElement(Item, { name: "newPassword", label: "\u65B0\u5BC6\u7801", rules: [
136
136
  { required: true, message: '请输入新密码' },
137
- {
138
- pattern: validate.passwordValidate,
139
- message: commonMessage.passwordMessage,
137
+ function (_a) {
138
+ var getFieldValue = _a.getFieldValue;
139
+ return ({
140
+ validator: function (rule, value) {
141
+ var result = validatePassword(value, null);
142
+ if (result.result) {
143
+ return Promise.resolve();
144
+ }
145
+ else {
146
+ return Promise.reject(result.message);
147
+ }
148
+ },
149
+ });
140
150
  },
141
151
  ] },
142
- React.createElement(Input, { autoComplete: "new-password", type: "password" })),
152
+ React.createElement(Input.Password, { autoComplete: "new-password" })),
143
153
  React.createElement("div", null,
144
- React.createElement("p", { style: { height: 32, lineHeight: '32px', color: 'red' } }, commonMessage.passwordMessage))),
154
+ React.createElement("p", { style: { height: 32, lineHeight: '32px', color: 'red' } }, passwordMessage))),
145
155
  React.createElement(Item, { name: "newPassword1", label: "\u786E\u8BA4\u65B0\u5BC6\u7801", rules: [
146
156
  { required: true, message: '请确认密码' },
147
157
  function (_a) {
@@ -156,6 +166,6 @@ var Making = function (_a) {
156
166
  });
157
167
  },
158
168
  ], dependencies: ['newPassword'] },
159
- React.createElement(Input, { autoComplete: "new-password", type: "password" }))))))));
169
+ React.createElement(Input.Password, { autoComplete: "new-password" }))))))));
160
170
  };
161
171
  export default Making;
@@ -0,0 +1,8 @@
1
+ export declare const passwordMessage = "\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u5927\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u7279\u6B8A\u5B57\u7B26\u4E14\u6700\u5C0F\u957F\u5EA6\u4E3A8\uFF0C\u4E14\u4E0D\u80FD\u51FA\u73B0\u8FDE\u7EED\u6570\u5B57\u6216\u5B57\u7B26\uFF0C\u4E0D\u80FD\u51FA\u73B0\u76F8\u540C\u5B57\u7B26\uFF0C\u4E14\u7981\u6B62\u4F7F\u7528\u7528\u6237\u8D26\u53F7\u4F5C\u4E3A\u5BC6\u7801";
2
+ export declare function validatePassword(password: any, username: any): {
3
+ result: boolean;
4
+ message: string;
5
+ } | {
6
+ result: boolean;
7
+ message?: undefined;
8
+ };
@@ -0,0 +1,39 @@
1
+ export var passwordMessage = '密码必须包含大小写字母、数字、特殊字符且最小长度为8,且不能出现连续数字或字符,不能出现相同字符,且禁止使用用户账号作为密码';
2
+ export function validatePassword(password, username) {
3
+ // 用正则表达式检查密码基本规则
4
+ var regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).{8,}$/;
5
+ if (!regex.test(password)) {
6
+ return {
7
+ result: false,
8
+ message: '密码中必须包含大小写字母、数字、特殊字符!',
9
+ };
10
+ }
11
+ // 检查密码中是否有连续的字母或数字
12
+ for (var i = 0; i < password.length - 1; i++) {
13
+ if (Math.abs(password.charCodeAt(i) - password.charCodeAt(i + 1)) === 1) {
14
+ return {
15
+ result: false,
16
+ message: '密码中有连续的字母或数字!',
17
+ };
18
+ }
19
+ }
20
+ // 检查密码中是否有相同的字符
21
+ var uniqueChars = new Set(password.split(''));
22
+ if (uniqueChars.size !== password.length) {
23
+ return {
24
+ result: false,
25
+ message: '密码中有相同的字符!',
26
+ };
27
+ }
28
+ // 检查密码是否与用户名相同
29
+ if (password === username) {
30
+ return {
31
+ result: false,
32
+ message: '密码与用户名相同!',
33
+ };
34
+ }
35
+ // 如果通过了所有的检查,则返回true
36
+ return {
37
+ result: true,
38
+ };
39
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ztxkui",
3
- "version": "4.2.18-2",
3
+ "version": "4.2.18-3",
4
4
  "private": false,
5
5
  "description": "React components library",
6
6
  "author": "zt-front-end",
@@ -96,4 +96,4 @@
96
96
  "react-dom": ">=16.9.0",
97
97
  "ztxkutils": ">=2.1.1"
98
98
  }
99
- }
99
+ }