system-phone 3.1.47 → 3.1.48

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 (211) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/.eslintrc.js +16 -16
  4. package/.gradle/7.4/checksums/checksums.lock +0 -0
  5. package/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock +0 -0
  6. package/.gradle/7.4/dependencies-accessors/gc.properties +0 -0
  7. package/.gradle/7.4/executionHistory/executionHistory.bin +0 -0
  8. package/.gradle/7.4/executionHistory/executionHistory.lock +0 -0
  9. package/.gradle/7.4/fileChanges/last-build.bin +0 -0
  10. package/.gradle/7.4/fileHashes/fileHashes.bin +0 -0
  11. package/.gradle/7.4/fileHashes/fileHashes.lock +0 -0
  12. package/.gradle/7.4/gc.properties +0 -0
  13. package/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  14. package/.gradle/checksums/checksums.lock +0 -0
  15. package/.gradle/checksums/md5-checksums.bin +0 -0
  16. package/.gradle/checksums/sha1-checksums.bin +0 -0
  17. package/.gradle/file-system.probe +0 -0
  18. package/CHANGELOG.md +1 -1
  19. package/Dockerfile +3 -3
  20. package/README.md +36 -36
  21. package/build/css-loaders.js +34 -34
  22. package/build/dev-client.js +8 -8
  23. package/build/example-server.js +80 -80
  24. package/build/release.sh +28 -28
  25. package/build/utils.js +71 -71
  26. package/build/webpack.dev.conf.js +31 -31
  27. package/build/webpack.example.conf.js +49 -49
  28. package/build/webpack.prod.conf.js +60 -60
  29. package/build/webpack.test.conf.js +31 -31
  30. package/config/dev.env.js +6 -6
  31. package/config/index.js +38 -38
  32. package/config/prod.env.js +3 -3
  33. package/config/test.env.js +6 -6
  34. package/nginx.conf +304 -304
  35. package/package.json +1 -1
  36. package/release.bat +5 -5
  37. package/src/App.vue +25 -25
  38. package/src/Util.js +415 -415
  39. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  40. package/src/android-bootstrap/less/.csscomb.json +304 -304
  41. package/src/android-bootstrap/less/.csslintrc +19 -19
  42. package/src/android-bootstrap/less/alerts.less +73 -73
  43. package/src/android-bootstrap/less/badges.less +66 -66
  44. package/src/android-bootstrap/less/bootstrap.less +56 -56
  45. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  46. package/src/android-bootstrap/less/button-groups.less +247 -247
  47. package/src/android-bootstrap/less/buttons.less +173 -173
  48. package/src/android-bootstrap/less/carousel.less +269 -269
  49. package/src/android-bootstrap/less/close.less +34 -34
  50. package/src/android-bootstrap/less/code.less +69 -69
  51. package/src/android-bootstrap/less/component-animations.less +33 -33
  52. package/src/android-bootstrap/less/dropdowns.less +216 -216
  53. package/src/android-bootstrap/less/forms.less +626 -626
  54. package/src/android-bootstrap/less/glyphicons.less +305 -305
  55. package/src/android-bootstrap/less/grid.less +84 -84
  56. package/src/android-bootstrap/less/input-groups.less +167 -167
  57. package/src/android-bootstrap/less/jumbotron.less +52 -52
  58. package/src/android-bootstrap/less/labels.less +64 -64
  59. package/src/android-bootstrap/less/list-group.less +141 -141
  60. package/src/android-bootstrap/less/media.less +66 -66
  61. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  62. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  63. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  64. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  65. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  66. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  67. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  68. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  69. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  70. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  71. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  72. package/src/android-bootstrap/less/mixins/image.less +33 -33
  73. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  74. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  75. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  76. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  77. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  78. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  79. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  80. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  81. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  82. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  83. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  84. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  85. package/src/android-bootstrap/less/mixins/size.less +10 -10
  86. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  87. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  88. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  89. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  90. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  91. package/src/android-bootstrap/less/mixins.less +40 -40
  92. package/src/android-bootstrap/less/modals.less +151 -151
  93. package/src/android-bootstrap/less/navbar.less +660 -660
  94. package/src/android-bootstrap/less/navs.less +290 -290
  95. package/src/android-bootstrap/less/normalize.less +424 -424
  96. package/src/android-bootstrap/less/pager.less +76 -76
  97. package/src/android-bootstrap/less/pagination.less +89 -89
  98. package/src/android-bootstrap/less/panels.less +274 -274
  99. package/src/android-bootstrap/less/popovers.less +131 -131
  100. package/src/android-bootstrap/less/print.less +101 -101
  101. package/src/android-bootstrap/less/progress-bars.less +87 -87
  102. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  103. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  104. package/src/android-bootstrap/less/scaffolding.less +161 -161
  105. package/src/android-bootstrap/less/tables.less +262 -262
  106. package/src/android-bootstrap/less/theme.less +291 -291
  107. package/src/android-bootstrap/less/thumbnails.less +36 -36
  108. package/src/android-bootstrap/less/tooltip.less +102 -102
  109. package/src/android-bootstrap/less/type.less +303 -303
  110. package/src/android-bootstrap/less/utilities.less +55 -55
  111. package/src/android-bootstrap/less/variables.less +896 -896
  112. package/src/android-bootstrap/less/wells.less +29 -29
  113. package/src/bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  114. package/src/bootstrap/less/.csscomb.json +304 -304
  115. package/src/bootstrap/less/.csslintrc +19 -19
  116. package/src/bootstrap/less/alerts.less +73 -73
  117. package/src/bootstrap/less/badges.less +66 -66
  118. package/src/bootstrap/less/bootstrap.less +56 -56
  119. package/src/bootstrap/less/breadcrumbs.less +26 -26
  120. package/src/bootstrap/less/button-groups.less +247 -247
  121. package/src/bootstrap/less/buttons.less +172 -172
  122. package/src/bootstrap/less/carousel.less +269 -269
  123. package/src/bootstrap/less/close.less +34 -34
  124. package/src/bootstrap/less/code.less +69 -69
  125. package/src/bootstrap/less/component-animations.less +33 -33
  126. package/src/bootstrap/less/dropdowns.less +216 -216
  127. package/src/bootstrap/less/forms.less +626 -626
  128. package/src/bootstrap/less/glyphicons.less +305 -305
  129. package/src/bootstrap/less/grid.less +84 -84
  130. package/src/bootstrap/less/input-groups.less +167 -167
  131. package/src/bootstrap/less/jumbotron.less +52 -52
  132. package/src/bootstrap/less/labels.less +64 -64
  133. package/src/bootstrap/less/list-group.less +141 -141
  134. package/src/bootstrap/less/media.less +66 -66
  135. package/src/bootstrap/less/mixins/alerts.less +14 -14
  136. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  137. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  138. package/src/bootstrap/less/mixins/buttons.less +69 -69
  139. package/src/bootstrap/less/mixins/center-block.less +7 -7
  140. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  141. package/src/bootstrap/less/mixins/forms.less +90 -90
  142. package/src/bootstrap/less/mixins/gradients.less +59 -59
  143. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  144. package/src/bootstrap/less/mixins/grid.less +122 -122
  145. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  146. package/src/bootstrap/less/mixins/image.less +33 -33
  147. package/src/bootstrap/less/mixins/labels.less +12 -12
  148. package/src/bootstrap/less/mixins/list-group.less +30 -30
  149. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  150. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  151. package/src/bootstrap/less/mixins/opacity.less +8 -8
  152. package/src/bootstrap/less/mixins/pagination.less +24 -24
  153. package/src/bootstrap/less/mixins/panels.less +24 -24
  154. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  155. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  156. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  157. package/src/bootstrap/less/mixins/resize.less +6 -6
  158. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  159. package/src/bootstrap/less/mixins/size.less +10 -10
  160. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  161. package/src/bootstrap/less/mixins/table-row.less +44 -44
  162. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  163. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  164. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  165. package/src/bootstrap/less/mixins.less +40 -40
  166. package/src/bootstrap/less/modals.less +151 -151
  167. package/src/bootstrap/less/navbar.less +660 -660
  168. package/src/bootstrap/less/navs.less +286 -286
  169. package/src/bootstrap/less/normalize.less +424 -424
  170. package/src/bootstrap/less/pager.less +76 -76
  171. package/src/bootstrap/less/pagination.less +89 -89
  172. package/src/bootstrap/less/panels.less +275 -275
  173. package/src/bootstrap/less/popovers.less +131 -131
  174. package/src/bootstrap/less/print.less +101 -101
  175. package/src/bootstrap/less/progress-bars.less +87 -87
  176. package/src/bootstrap/less/responsive-embed.less +35 -35
  177. package/src/bootstrap/less/responsive-utilities.less +194 -194
  178. package/src/bootstrap/less/scaffolding.less +161 -161
  179. package/src/bootstrap/less/tables.less +262 -262
  180. package/src/bootstrap/less/theme.less +291 -291
  181. package/src/bootstrap/less/thumbnails.less +36 -36
  182. package/src/bootstrap/less/tooltip.less +102 -102
  183. package/src/bootstrap/less/type.less +303 -303
  184. package/src/bootstrap/less/utilities.less +55 -55
  185. package/src/bootstrap/less/variables.less +895 -895
  186. package/src/bootstrap/less/wells.less +29 -29
  187. package/src/components/AloneLoadParams.vue +26 -26
  188. package/src/components/LoadAppdata.vue +38 -38
  189. package/src/components/LoginApp.vue +2 -2
  190. package/src/components/LoginAppNew.vue +590 -590
  191. package/src/components/LoginAppV4.vue +790 -790
  192. package/src/components/ModifyPassWord.vue +219 -219
  193. package/src/components/PhoneSellInfo.vue +148 -148
  194. package/src/components/Test.vue +14 -14
  195. package/src/plugins/GetStringData.js +18 -18
  196. package/src/plugins/LoadParams.js +24 -24
  197. package/src/plugins/validateStrongPasswordPhone.js +172 -172
  198. package/src/services/ConfigService.js +24 -24
  199. package/static/app.json +4 -4
  200. package/static/globals.txt +74 -74
  201. package/test/unit/.eslintrc +5 -5
  202. package/test/unit/TestUtil.js +35 -35
  203. package/test/unit/context.html +20 -20
  204. package/test/unit/index.js +13 -13
  205. package/test/unit/init.js +13 -13
  206. package/test/unit/karma.conf.js +50 -50
  207. package/test/unit/specs/App.spec.js +17 -17
  208. package/test/unit/specs/Test.spec.js +28 -28
  209. package/test/unit/specs/components/LoginApp.spec.js +21 -21
  210. package/test/unit/specs/sevices/ConfigService.spec.js +23 -23
  211. package/test/unit/specs/sevices/GetDBTest.spec.js +28 -28
@@ -1,172 +1,172 @@
1
- const REG_STRONG_PWD =
2
- /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*(),.?":{}|<>~`+=_\\-])[A-Za-z\d!@#$%^&*(),.?":{}|<>~`+=_\\-]{8,}$/;
3
-
4
- // 常见密码列表(可以根据需要扩展)
5
- const COMMON_PASSWORDS = [
6
- "password",
7
- "password123",
8
- "123456",
9
- "12345678",
10
- "qwerty",
11
- "abc123",
12
- "Password1",
13
- "password1",
14
- "123456789",
15
- "welcome",
16
- "admin",
17
- "letmein",
18
- "monkey",
19
- "dragon",
20
- "master",
21
- "superman",
22
- "qwerty123",
23
- "admin123",
24
- "root",
25
- "pass",
26
- "test",
27
- "guest",
28
- "user",
29
- "000000",
30
- "111111",
31
- "666666",
32
- "888888",
33
- "999999",
34
- "iloveyou",
35
- "welcome123",
36
- "password!",
37
- "Passw0rd!",
38
- "Passw0rd",
39
- "Password!",
40
- "passw0rd",
41
- "P@ssw0rd",
42
- "P@ssword",
43
- "Password@123",
44
- ];
45
-
46
- // 检查连续数字(3个或以上)
47
- const hasConsecutiveNumbers = (password) => {
48
- for (let i = 0; i <= password.length - 3; i++) {
49
- const substr = password.substring(i, i + 3);
50
- if (/^\d{3,}$/.test(substr)) {
51
- // 检查是否为连续数字
52
- const digits = substr.split("").map(Number);
53
- let isConsecutive = true;
54
- for (let j = 1; j < digits.length; j++) {
55
- if (digits[j] !== digits[j - 1] + 1) {
56
- isConsecutive = false;
57
- break;
58
- }
59
- }
60
- if (isConsecutive) return true;
61
- }
62
- }
63
- return false;
64
- };
65
-
66
- // 检查连续字母(3个或以上)
67
- const hasConsecutiveLetters = (password) => {
68
- const lowerPassword = password.toLowerCase();
69
- for (let i = 0; i <= lowerPassword.length - 3; i++) {
70
- const substr = lowerPassword.substring(i, i + 3);
71
- if (/^[a-z]{3,}$/.test(substr)) {
72
- // 检查是否为连续字母
73
- let isConsecutive = true;
74
- for (let j = 1; j < substr.length; j++) {
75
- if (substr.charCodeAt(j) !== substr.charCodeAt(j - 1) + 1) {
76
- isConsecutive = false;
77
- break;
78
- }
79
- }
80
- if (isConsecutive) return true;
81
- }
82
- }
83
- return false;
84
- };
85
-
86
- // 检查重复字符(3个或以上相同字符)
87
- const hasRepeatedChars = (password) => {
88
- return /(.)\1{2,}/.test(password);
89
- };
90
-
91
- // 检查键盘连续按键(如 qwerty, asdf 等)
92
- const hasKeyboardPattern = (password) => {
93
- const keyboardRows = ["qwertyuiop", "asdfghjkl", "zxcvbnm", "1234567890"];
94
- const lowerPassword = password.toLowerCase();
95
- for (const row of keyboardRows) {
96
- for (let i = 0; i <= row.length - 3; i++) {
97
- const pattern = row.substring(i, i + 3);
98
- if (lowerPassword.includes(pattern)) {
99
- return true;
100
- }
101
- }
102
- }
103
- return false;
104
- };
105
-
106
- /**
107
- * 密码校验结果对象
108
- * @typedef {Object} PasswordValidationResult
109
- * @property {boolean} isValid
110
- * @property {string[]} errors
111
- */
112
-
113
- /**
114
- * 增强的密码校验函数
115
- * @param {string} password
116
- * @returns {PasswordValidationResult}
117
- */
118
- export const validateStrongPasswordPhone = (password) => {
119
- const result = {
120
- isValid: true,
121
- errors: [],
122
- };
123
-
124
- // 1. 基本格式校验
125
- if (!REG_STRONG_PWD.test(password)) {
126
- result.isValid = false;
127
- result.errors.push(
128
- "密码必须包含至少8个字符,包括大写字母、小写字母、数字和特殊字符"
129
- );
130
- return result;
131
- }
132
-
133
- // 2. 检查是否为常见密码
134
- if (
135
- COMMON_PASSWORDS.includes(password) ||
136
- COMMON_PASSWORDS.includes(password.toLowerCase())
137
- ) {
138
- result.isValid = false;
139
- result.errors.push("不能使用常见密码");
140
- return result;
141
- }
142
-
143
- // 3. 检查连续数字
144
- if (hasConsecutiveNumbers(password)) {
145
- result.isValid = false;
146
- result.errors.push("不能包含连续数字");
147
- return result;
148
- }
149
-
150
- // 4. 检查连续字母
151
- if (hasConsecutiveLetters(password)) {
152
- result.isValid = false;
153
- result.errors.push("不能包含连续字母");
154
- return result;
155
- }
156
-
157
- // 5. 检查重复字符
158
- if (hasRepeatedChars(password)) {
159
- result.isValid = false;
160
- result.errors.push("不能包含3个或以上相同字符");
161
- return result;
162
- }
163
-
164
- // 6. 检查键盘模式
165
- if (hasKeyboardPattern(password)) {
166
- result.isValid = false;
167
- result.errors.push("不能包含键盘连续按键模式");
168
- return result;
169
- }
170
-
171
- return result;
172
- };
1
+ const REG_STRONG_PWD =
2
+ /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*(),.?":{}|<>~`+=_\\-])[A-Za-z\d!@#$%^&*(),.?":{}|<>~`+=_\\-]{8,}$/;
3
+
4
+ // 常见密码列表(可以根据需要扩展)
5
+ const COMMON_PASSWORDS = [
6
+ "password",
7
+ "password123",
8
+ "123456",
9
+ "12345678",
10
+ "qwerty",
11
+ "abc123",
12
+ "Password1",
13
+ "password1",
14
+ "123456789",
15
+ "welcome",
16
+ "admin",
17
+ "letmein",
18
+ "monkey",
19
+ "dragon",
20
+ "master",
21
+ "superman",
22
+ "qwerty123",
23
+ "admin123",
24
+ "root",
25
+ "pass",
26
+ "test",
27
+ "guest",
28
+ "user",
29
+ "000000",
30
+ "111111",
31
+ "666666",
32
+ "888888",
33
+ "999999",
34
+ "iloveyou",
35
+ "welcome123",
36
+ "password!",
37
+ "Passw0rd!",
38
+ "Passw0rd",
39
+ "Password!",
40
+ "passw0rd",
41
+ "P@ssw0rd",
42
+ "P@ssword",
43
+ "Password@123",
44
+ ];
45
+
46
+ // 检查连续数字(3个或以上)
47
+ const hasConsecutiveNumbers = (password) => {
48
+ for (let i = 0; i <= password.length - 3; i++) {
49
+ const substr = password.substring(i, i + 3);
50
+ if (/^\d{3,}$/.test(substr)) {
51
+ // 检查是否为连续数字
52
+ const digits = substr.split("").map(Number);
53
+ let isConsecutive = true;
54
+ for (let j = 1; j < digits.length; j++) {
55
+ if (digits[j] !== digits[j - 1] + 1) {
56
+ isConsecutive = false;
57
+ break;
58
+ }
59
+ }
60
+ if (isConsecutive) return true;
61
+ }
62
+ }
63
+ return false;
64
+ };
65
+
66
+ // 检查连续字母(3个或以上)
67
+ const hasConsecutiveLetters = (password) => {
68
+ const lowerPassword = password.toLowerCase();
69
+ for (let i = 0; i <= lowerPassword.length - 3; i++) {
70
+ const substr = lowerPassword.substring(i, i + 3);
71
+ if (/^[a-z]{3,}$/.test(substr)) {
72
+ // 检查是否为连续字母
73
+ let isConsecutive = true;
74
+ for (let j = 1; j < substr.length; j++) {
75
+ if (substr.charCodeAt(j) !== substr.charCodeAt(j - 1) + 1) {
76
+ isConsecutive = false;
77
+ break;
78
+ }
79
+ }
80
+ if (isConsecutive) return true;
81
+ }
82
+ }
83
+ return false;
84
+ };
85
+
86
+ // 检查重复字符(3个或以上相同字符)
87
+ const hasRepeatedChars = (password) => {
88
+ return /(.)\1{2,}/.test(password);
89
+ };
90
+
91
+ // 检查键盘连续按键(如 qwerty, asdf 等)
92
+ const hasKeyboardPattern = (password) => {
93
+ const keyboardRows = ["qwertyuiop", "asdfghjkl", "zxcvbnm", "1234567890"];
94
+ const lowerPassword = password.toLowerCase();
95
+ for (const row of keyboardRows) {
96
+ for (let i = 0; i <= row.length - 3; i++) {
97
+ const pattern = row.substring(i, i + 3);
98
+ if (lowerPassword.includes(pattern)) {
99
+ return true;
100
+ }
101
+ }
102
+ }
103
+ return false;
104
+ };
105
+
106
+ /**
107
+ * 密码校验结果对象
108
+ * @typedef {Object} PasswordValidationResult
109
+ * @property {boolean} isValid
110
+ * @property {string[]} errors
111
+ */
112
+
113
+ /**
114
+ * 增强的密码校验函数
115
+ * @param {string} password
116
+ * @returns {PasswordValidationResult}
117
+ */
118
+ export const validateStrongPasswordPhone = (password) => {
119
+ const result = {
120
+ isValid: true,
121
+ errors: [],
122
+ };
123
+
124
+ // 1. 基本格式校验
125
+ if (!REG_STRONG_PWD.test(password)) {
126
+ result.isValid = false;
127
+ result.errors.push(
128
+ "密码必须包含至少8个字符,包括大写字母、小写字母、数字和特殊字符"
129
+ );
130
+ return result;
131
+ }
132
+
133
+ // 2. 检查是否为常见密码
134
+ if (
135
+ COMMON_PASSWORDS.includes(password) ||
136
+ COMMON_PASSWORDS.includes(password.toLowerCase())
137
+ ) {
138
+ result.isValid = false;
139
+ result.errors.push("不能使用常见密码");
140
+ return result;
141
+ }
142
+
143
+ // 3. 检查连续数字
144
+ if (hasConsecutiveNumbers(password)) {
145
+ result.isValid = false;
146
+ result.errors.push("不能包含连续数字");
147
+ return result;
148
+ }
149
+
150
+ // 4. 检查连续字母
151
+ if (hasConsecutiveLetters(password)) {
152
+ result.isValid = false;
153
+ result.errors.push("不能包含连续字母");
154
+ return result;
155
+ }
156
+
157
+ // 5. 检查重复字符
158
+ if (hasRepeatedChars(password)) {
159
+ result.isValid = false;
160
+ result.errors.push("不能包含3个或以上相同字符");
161
+ return result;
162
+ }
163
+
164
+ // 6. 检查键盘模式
165
+ if (hasKeyboardPattern(password)) {
166
+ result.isValid = false;
167
+ result.errors.push("不能包含键盘连续按键模式");
168
+ return result;
169
+ }
170
+
171
+ return result;
172
+ };
@@ -1,24 +1,24 @@
1
- import Vue from 'vue'
2
- import AppData from '../stores/AppData'
3
-
4
- let LoadParams = {
5
- // 开启卡监听
6
- load () {
7
- return Vue.resetpost(`${Vue.androidUtil.getProxyUrl()}/rs/path/getParams`, {data: {}}, {resolveMsg: null, rejectMsg: null}).then((res) => {
8
- res.data.forEach((item) => {
9
- let value = []
10
- item.f_paramvalues.forEach((item, index) => {
11
- value[index] = {}
12
- value[index].label = item.name
13
- value[index].value = item.name
14
- })
15
- AppData.params[item.name] = value
16
- })
17
- }).catch((res) => {
18
- this.msg = res.data
19
- this.show = true
20
- })
21
- }
22
- }
23
-
24
- export default LoadParams
1
+ import Vue from 'vue'
2
+ import AppData from '../stores/AppData'
3
+
4
+ let LoadParams = {
5
+ // 开启卡监听
6
+ load () {
7
+ return Vue.resetpost(`${Vue.androidUtil.getProxyUrl()}/rs/path/getParams`, {data: {}}, {resolveMsg: null, rejectMsg: null}).then((res) => {
8
+ res.data.forEach((item) => {
9
+ let value = []
10
+ item.f_paramvalues.forEach((item, index) => {
11
+ value[index] = {}
12
+ value[index].label = item.name
13
+ value[index].value = item.name
14
+ })
15
+ AppData.params[item.name] = value
16
+ })
17
+ }).catch((res) => {
18
+ this.msg = res.data
19
+ this.show = true
20
+ })
21
+ }
22
+ }
23
+
24
+ export default LoadParams
package/static/app.json CHANGED
@@ -1,5 +1,5 @@
1
- {
2
- "hybrid_version":"2018-01-01 00:00:01",
3
- "appVer":"1"
4
-
1
+ {
2
+ "hybrid_version":"2018-01-01 00:00:01",
3
+ "appVer":"1"
4
+
5
5
  }
@@ -1,74 +1,74 @@
1
- {
2
- "lastNewFormDate": "1980-01-01 00:00:00",
3
- "f_repairman_id": "x",
4
- "f_user_id": "aaa",
5
- "cc_base_url": "http://aotesoft.f3322.net:8300",
6
- "REMOTE_WWW_PREFIX": "",
7
- "LOCAL_PATH_PREFIX": "/data/data/com.aofeng.hybridwork/files/",
8
- "REMOTE_BZ_PREFIX": "thiswillremove",
9
- "ProjectNativeMethod": "com.aofeng.hybridwork.android.ProjectNativeMethod",
10
- "SCREEN_ORIENTATION":"0",
11
- "startService": "true",
12
- "full_screen":"true",
13
- "pos":"false",
14
- "device":"com.aofeng.hybrid.pos.device.ZTDevice",
15
- "reader":"com.aofeng.hybrid.pos.reader.ZTChangAnReader",
16
- "printer":"com.aofeng.hybrid.pos.printer.ZTPrinter",
17
- "cloud_url":"http://113.140.20.122:4004/",
18
- "version": "0",
19
- "txtServiceStopped": "false",
20
- "msgCount": "0",
21
- "f_subcompany": "changan",
22
- "entities": [
23
- "t_serviceworkorder",
24
- "t_oppointment",
25
- "t_service",
26
- "t_complaint",
27
- "t_consult",
28
- "t_service_acitivity",
29
- "t_servicework",
30
- "t_notwork",
31
- "t_delayapply",
32
- "t_delayreply",
33
- "t_reminder",
34
- "t_site_back",
35
- "t_servicesend",
36
- "t_recall",
37
- "t_servicedelete",
38
- "t_servicerepair",
39
- "t_details",
40
- "t_doorrepair",
41
- "t_accidenttreatment",
42
- "t_gaiconduit",
43
- "t_liconduit",
44
- "t_firstgascheck",
45
- "t_failure",
46
- "t_failurecase",
47
- "t_material",
48
- "t_baseuserinfo",
49
- "t_repairimg",
50
- "t_retail",
51
- "t_notice",
52
- "t_check_paper_alarm",
53
- "t_check_paper",
54
- "t_check_plan_item",
55
- "t_check_plan",
56
- "t_check_paper_cooker",
57
- "t_check_paper_counter",
58
- "t_check_paper_defect",
59
- "t_check_paper_furnace",
60
- "t_check_paper_heater",
61
- "t_check_paper_innerplumb",
62
- "t_check_paper_meter",
63
- "t_phone_state",
64
- "t_check_paper_plumb",
65
- "t_check_paper_valve",
66
- "t_blob",
67
- "t_plan_item_meter",
68
- "t_plan_item_device",
69
- "t_device_info",
70
- "t_defect_info",
71
- "t_devices_items",
72
- "t_paper_devices"
73
- ]
74
- }
1
+ {
2
+ "lastNewFormDate": "1980-01-01 00:00:00",
3
+ "f_repairman_id": "x",
4
+ "f_user_id": "aaa",
5
+ "cc_base_url": "http://aotesoft.f3322.net:8300",
6
+ "REMOTE_WWW_PREFIX": "",
7
+ "LOCAL_PATH_PREFIX": "/data/data/com.aofeng.hybridwork/files/",
8
+ "REMOTE_BZ_PREFIX": "thiswillremove",
9
+ "ProjectNativeMethod": "com.aofeng.hybridwork.android.ProjectNativeMethod",
10
+ "SCREEN_ORIENTATION":"0",
11
+ "startService": "true",
12
+ "full_screen":"true",
13
+ "pos":"false",
14
+ "device":"com.aofeng.hybrid.pos.device.ZTDevice",
15
+ "reader":"com.aofeng.hybrid.pos.reader.ZTChangAnReader",
16
+ "printer":"com.aofeng.hybrid.pos.printer.ZTPrinter",
17
+ "cloud_url":"http://113.140.20.122:4004/",
18
+ "version": "0",
19
+ "txtServiceStopped": "false",
20
+ "msgCount": "0",
21
+ "f_subcompany": "changan",
22
+ "entities": [
23
+ "t_serviceworkorder",
24
+ "t_oppointment",
25
+ "t_service",
26
+ "t_complaint",
27
+ "t_consult",
28
+ "t_service_acitivity",
29
+ "t_servicework",
30
+ "t_notwork",
31
+ "t_delayapply",
32
+ "t_delayreply",
33
+ "t_reminder",
34
+ "t_site_back",
35
+ "t_servicesend",
36
+ "t_recall",
37
+ "t_servicedelete",
38
+ "t_servicerepair",
39
+ "t_details",
40
+ "t_doorrepair",
41
+ "t_accidenttreatment",
42
+ "t_gaiconduit",
43
+ "t_liconduit",
44
+ "t_firstgascheck",
45
+ "t_failure",
46
+ "t_failurecase",
47
+ "t_material",
48
+ "t_baseuserinfo",
49
+ "t_repairimg",
50
+ "t_retail",
51
+ "t_notice",
52
+ "t_check_paper_alarm",
53
+ "t_check_paper",
54
+ "t_check_plan_item",
55
+ "t_check_plan",
56
+ "t_check_paper_cooker",
57
+ "t_check_paper_counter",
58
+ "t_check_paper_defect",
59
+ "t_check_paper_furnace",
60
+ "t_check_paper_heater",
61
+ "t_check_paper_innerplumb",
62
+ "t_check_paper_meter",
63
+ "t_phone_state",
64
+ "t_check_paper_plumb",
65
+ "t_check_paper_valve",
66
+ "t_blob",
67
+ "t_plan_item_meter",
68
+ "t_plan_item_device",
69
+ "t_device_info",
70
+ "t_defect_info",
71
+ "t_devices_items",
72
+ "t_paper_devices"
73
+ ]
74
+ }
@@ -1,5 +1,5 @@
1
- {
2
- "env": {
3
- "jasmine": true
4
- }
5
- }
1
+ {
2
+ "env": {
3
+ "jasmine": true
4
+ }
5
+ }
@@ -1,35 +1,35 @@
1
- import Vue from 'vue'
2
-
3
- let id = 0
4
-
5
- const createElm = function () {
6
- const elm = document.createElement('div')
7
-
8
- elm.id = 'app' + ++id
9
- document.body.appendChild(elm)
10
-
11
- return elm
12
- }
13
-
14
- export default {
15
- // 创建一个测试组件
16
- createTest: function (name, props) {
17
- const template = '<div>' + '<' + name + ' v-ref:child></' + name + '></div>'
18
- const elm = createElm()
19
- const comp = new Vue({
20
- template: template
21
- })
22
- comp.$mount(elm)
23
- const vm = comp.$refs.child
24
- Object.assign(vm, props)
25
- return vm
26
- },
27
-
28
- // 删除一个组件
29
- destroyVM: function (vm) {
30
- vm.$destroy && vm.$destroy()
31
- vm.$el &&
32
- vm.$el.parentNode &&
33
- vm.$el.parentNode.removeChild(vm.$el)
34
- }
35
- }
1
+ import Vue from 'vue'
2
+
3
+ let id = 0
4
+
5
+ const createElm = function () {
6
+ const elm = document.createElement('div')
7
+
8
+ elm.id = 'app' + ++id
9
+ document.body.appendChild(elm)
10
+
11
+ return elm
12
+ }
13
+
14
+ export default {
15
+ // 创建一个测试组件
16
+ createTest: function (name, props) {
17
+ const template = '<div>' + '<' + name + ' v-ref:child></' + name + '></div>'
18
+ const elm = createElm()
19
+ const comp = new Vue({
20
+ template: template
21
+ })
22
+ comp.$mount(elm)
23
+ const vm = comp.$refs.child
24
+ Object.assign(vm, props)
25
+ return vm
26
+ },
27
+
28
+ // 删除一个组件
29
+ destroyVM: function (vm) {
30
+ vm.$destroy && vm.$destroy()
31
+ vm.$el &&
32
+ vm.$el.parentNode &&
33
+ vm.$el.parentNode.removeChild(vm.$el)
34
+ }
35
+ }