system-clients 3.2.61-taizhou → 3.2.62-fugu
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.
- package/.gradle/8.5/checksums/checksums.lock +0 -0
- package/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/.gradle/{8.2 → 8.5}/executionHistory/executionHistory.bin +0 -0
- package/.gradle/8.5/executionHistory/executionHistory.lock +0 -0
- package/.gradle/{8.2 → 8.5}/fileHashes/fileHashes.bin +0 -0
- package/.gradle/8.5/fileHashes/fileHashes.lock +0 -0
- package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/.gradle/buildOutputCleanup/cache.properties +2 -2
- package/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/gradlew +9 -8
- package/package.json +1 -1
- package/src/components/server/Login.vue +1 -1
- package/src/components/server/ModifyPw.vue +2 -2
- package/src/plugins/GetLoginInfoService.js +45 -2
- package/src/system.js +10 -2
- package/.gradle/8.2/checksums/checksums.lock +0 -0
- package/.gradle/8.2/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/.gradle/8.2/executionHistory/executionHistory.lock +0 -0
- package/.gradle/8.2/fileHashes/fileHashes.lock +0 -0
- package/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/.gradle/file-system.probe +0 -0
- /package/.gradle/{8.2 → 8.5}/dependencies-accessors/gc.properties +0 -0
- /package/.gradle/{8.2 → 8.5}/fileChanges/last-build.bin +0 -0
- /package/.gradle/{8.2 → 8.5}/gc.properties +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
#
|
|
2
|
-
gradle.version=8.
|
|
1
|
+
#Fri Aug 15 16:59:37 CST 2025
|
|
2
|
+
gradle.version=8.5
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
distributionBase=GRADLE_USER_HOME
|
|
2
2
|
distributionPath=wrapper/dists
|
|
3
|
-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.
|
|
3
|
+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
|
|
4
4
|
networkTimeout=10000
|
|
5
5
|
validateDistributionUrl=true
|
|
6
6
|
zipStoreBase=GRADLE_USER_HOME
|
package/gradlew
CHANGED
|
@@ -83,7 +83,8 @@ done
|
|
|
83
83
|
# This is normally unused
|
|
84
84
|
# shellcheck disable=SC2034
|
|
85
85
|
APP_BASE_NAME=${0##*/}
|
|
86
|
-
|
|
86
|
+
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
|
87
|
+
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
|
87
88
|
|
|
88
89
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
|
89
90
|
MAX_FD=maximum
|
|
@@ -144,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
|
|
144
145
|
case $MAX_FD in #(
|
|
145
146
|
max*)
|
|
146
147
|
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
|
147
|
-
# shellcheck disable=SC3045
|
|
148
|
+
# shellcheck disable=SC2039,SC3045
|
|
148
149
|
MAX_FD=$( ulimit -H -n ) ||
|
|
149
150
|
warn "Could not query maximum file descriptor limit"
|
|
150
151
|
esac
|
|
@@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
|
|
152
153
|
'' | soft) :;; #(
|
|
153
154
|
*)
|
|
154
155
|
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
|
155
|
-
# shellcheck disable=SC3045
|
|
156
|
+
# shellcheck disable=SC2039,SC3045
|
|
156
157
|
ulimit -n "$MAX_FD" ||
|
|
157
158
|
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
|
158
159
|
esac
|
|
@@ -201,11 +202,11 @@ fi
|
|
|
201
202
|
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
202
203
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
|
203
204
|
|
|
204
|
-
# Collect all arguments for the java command
|
|
205
|
-
# *
|
|
206
|
-
#
|
|
207
|
-
#
|
|
208
|
-
#
|
|
205
|
+
# Collect all arguments for the java command:
|
|
206
|
+
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
|
207
|
+
# and any embedded shellness will be escaped.
|
|
208
|
+
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
|
209
|
+
# treated as '${Hostname}' itself on the command line.
|
|
209
210
|
|
|
210
211
|
set -- \
|
|
211
212
|
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
package/package.json
CHANGED
|
@@ -205,7 +205,7 @@ let saveGen = function *(self) {
|
|
|
205
205
|
console.log(self.$login.depPrompt)
|
|
206
206
|
// 弱口令验证
|
|
207
207
|
//跳转过来的不进行验证
|
|
208
|
-
if ((!self.otherLogin) && self.config.weakPassword && !(/^(
|
|
208
|
+
if ((!self.otherLogin) && self.config.weakPassword && !(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?!.*(123|321|abc|cba))[a-zA-Z\d!@#$%^&*()_+-=<>?]{8,16}$/.test(self.model.password))) {
|
|
209
209
|
self.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm']).then((res) => {
|
|
210
210
|
self.modifyPwShow = true
|
|
211
211
|
})
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
'has-success': !$v.newpassword.required && !$v.newpassword.numbersAndLetter8to16&&!$v.newpassword.minlength && !$v.newpassword.chinesePassword}">
|
|
23
23
|
<label for="newpassword" class="col-sm-4 col-sm-offset-1 control-label">新的密码: </label>
|
|
24
24
|
<div class="col-sm-4">
|
|
25
|
-
<input type="password" v-model="deliver.newpassword" class="form-control" id="newpassword" v-validate:newpassword='{required:true, numbersAndLetter8to16: true, minlength:
|
|
25
|
+
<input type="password" v-model="deliver.newpassword" class="form-control" id="newpassword" v-validate:newpassword='{required:true, numbersAndLetter8to16: true, minlength: 8,chinesePassword: true}'>
|
|
26
26
|
<span class="glyphicon glyphicon-ok form-control-feedback" v-if="!$v.newpassword.required && !$v.newpassword.minlength && !($v.newpassword.numbersAndLetter8to16 && !($v.newpassword.required)) && !($v.newpassword.chinesePassword) "></span>
|
|
27
27
|
<span v-if="$v.newpassword.required">不能为空</span>
|
|
28
|
-
<span v-if="($v.newpassword.numbersAndLetter8to16||$v.newpassword.minlength) && !($v.newpassword.required&&$v.newpassword.minlength)">密码必须是8~16
|
|
28
|
+
<span v-if="($v.newpassword.numbersAndLetter8to16||$v.newpassword.minlength) && !($v.newpassword.required&&$v.newpassword.minlength)">密码必须是8~16位数字与大小字母外加特殊字符的组合,并且不能出现类似'123','abc'等连贯数字或者字母</span>
|
|
29
29
|
<span v-if="$v.newpassword.chinesePassword">密码不能包含中文</span>
|
|
30
30
|
</div>
|
|
31
31
|
</div>
|
|
@@ -179,6 +179,11 @@ let loginGen = async function (name, password, cue) {
|
|
|
179
179
|
for (let proc of Vue.$login.afterLogin) {
|
|
180
180
|
await proc(Vue.$login.f)
|
|
181
181
|
}
|
|
182
|
+
// 启动未操作下线计时器(30分钟)
|
|
183
|
+
if(Vue.$login.autoLoginout){
|
|
184
|
+
Vue.$login.startInactivityTimer(Vue.$login.autoLoginTimeOut)
|
|
185
|
+
}
|
|
186
|
+
|
|
182
187
|
// 定时发送心跳
|
|
183
188
|
if (cue) {
|
|
184
189
|
setInterval(() => {
|
|
@@ -212,11 +217,17 @@ let loginGen = async function (name, password, cue) {
|
|
|
212
217
|
}
|
|
213
218
|
|
|
214
219
|
let GetLoginInfoService = {
|
|
215
|
-
SinglePageToken:{},
|
|
216
220
|
// 登录后要处理的异步对象
|
|
217
221
|
afterLogin: [],
|
|
218
222
|
//验证码开关
|
|
219
223
|
Verification: true,
|
|
224
|
+
//构建时间开关
|
|
225
|
+
versionTime: true,
|
|
226
|
+
//长时间未操作退出开关
|
|
227
|
+
autoLoginout: false,
|
|
228
|
+
autoLoginTimeOut:10*60*1000,
|
|
229
|
+
//
|
|
230
|
+
SinglePageToken : {},
|
|
220
231
|
//登录信息展示开关
|
|
221
232
|
depPrompt: true,
|
|
222
233
|
install(Vue, options) {
|
|
@@ -236,7 +247,6 @@ let GetLoginInfoService = {
|
|
|
236
247
|
if (cue === undefined || cue === null || cue === '') {
|
|
237
248
|
cue = true
|
|
238
249
|
}
|
|
239
|
-
Vue.$login.SinglePageToken = cryptJS.AESEncrypt(JSON.stringify({name,password}), "3KMKqvgwR8ULbR8Z")
|
|
240
250
|
return loginGen(name, password, cue)
|
|
241
251
|
},
|
|
242
252
|
|
|
@@ -527,6 +537,39 @@ let GetLoginInfoService = {
|
|
|
527
537
|
let ds = date.split('-')
|
|
528
538
|
let nextMonth = ds[1] - 0 + 1
|
|
529
539
|
return ds[0] + '-' + (nextMonth < 10 ? '0' + nextMonth : nextMonth) + '-20 00:00:00'
|
|
540
|
+
},
|
|
541
|
+
/**
|
|
542
|
+
* 启动未操作强制下线计时器
|
|
543
|
+
* @param timeout 超时时间(毫秒),默认30分钟
|
|
544
|
+
*/
|
|
545
|
+
startInactivityTimer(timeout) {
|
|
546
|
+
// 清除已有的定时器
|
|
547
|
+
if (this._inactivityTimer) {
|
|
548
|
+
clearTimeout(this._inactivityTimer);
|
|
549
|
+
}
|
|
550
|
+
// 事件处理函数
|
|
551
|
+
const resetTimer = () => {
|
|
552
|
+
clearTimeout(this._inactivityTimer);
|
|
553
|
+
this._inactivityTimer = setTimeout(() => {
|
|
554
|
+
// 强制下线逻辑
|
|
555
|
+
// Vue.cookie.delete('loginId');
|
|
556
|
+
Vue.$login.f = {};
|
|
557
|
+
Vue.showMessage("长时间未操作,您已被强制下线", ['confirm']).then(() => {
|
|
558
|
+
location.reload();
|
|
559
|
+
});
|
|
560
|
+
}, timeout);
|
|
561
|
+
};
|
|
562
|
+
// 需要监听的事件
|
|
563
|
+
const events = ['mousemove', 'keydown', 'mousedown', 'scroll', 'touchstart'];
|
|
564
|
+
// 只绑定一次
|
|
565
|
+
if (!this._inactivityListenerAdded) {
|
|
566
|
+
events.forEach(event => {
|
|
567
|
+
window.addEventListener(event, resetTimer, true);
|
|
568
|
+
});
|
|
569
|
+
this._inactivityListenerAdded = true;
|
|
570
|
+
}
|
|
571
|
+
// 初始化计时器
|
|
572
|
+
resetTimer();
|
|
530
573
|
}
|
|
531
574
|
}
|
|
532
575
|
|
package/src/system.js
CHANGED
|
@@ -28,18 +28,26 @@ import TestResSelect from './components/server/TestResSelect'
|
|
|
28
28
|
import RoleSelector from "./components/server/RoleSelector";
|
|
29
29
|
|
|
30
30
|
// BAinformation备案信息展示(空不展示, 传入什么展示什么,可以传标签)
|
|
31
|
-
export default function (val,filiale, {showLogin = false, show_daiBan = false, show_yiDi= false, BAinformation = null} = {}) {
|
|
31
|
+
export default function (val,filiale, {showLogin = false, show_daiBan = false, show_yiDi= false, BAinformation = null,showVersionTime=true,autoLoginout = false, autoLoginTimeOut=10*60*1000} = {}) {
|
|
32
32
|
console.log(val,filiale,showLogin)
|
|
33
33
|
//验证码开关赋值
|
|
34
34
|
if(val!=null){
|
|
35
35
|
GetLoginInfoService.Verification=val
|
|
36
36
|
}
|
|
37
|
+
//构建时间开关赋值
|
|
38
|
+
if(val!=null){
|
|
39
|
+
GetLoginInfoService.versionTime=showVersionTime
|
|
40
|
+
}
|
|
37
41
|
//登录提示赋值
|
|
38
42
|
GetLoginInfoService.depPrompt=showLogin
|
|
39
43
|
//展示待办赋值
|
|
40
44
|
GetLoginInfoService.showDaiBan=show_daiBan
|
|
41
45
|
//展示异地登录
|
|
42
46
|
GetLoginInfoService.showYiDi=show_yiDi
|
|
47
|
+
//自动登出
|
|
48
|
+
GetLoginInfoService.autoLoginout = autoLoginout
|
|
49
|
+
//自动登出时长(默认10分钟)
|
|
50
|
+
GetLoginInfoService.autoLoginTimeOut = autoLoginTimeOut
|
|
43
51
|
// 备案信息复制
|
|
44
52
|
GetLoginInfoService.BAinformation = BAinformation
|
|
45
53
|
Vue.use(GetLoginInfoService)
|
|
@@ -61,7 +69,7 @@ export default function (val,filiale, {showLogin = false, show_daiBan = false, s
|
|
|
61
69
|
//资源选择
|
|
62
70
|
Vue.component('res-select', ResSelect)
|
|
63
71
|
Vue.component('res-select-group', ResSelectGroup)
|
|
64
|
-
|
|
72
|
+
//资源选择测试
|
|
65
73
|
Vue.component('test-res-select', TestResSelect)
|
|
66
74
|
|
|
67
75
|
// 参数管理(新)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|