system-clients 3.3.3 → 3.3.4-v3
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/package.info +1 -0
- package/package.json +103 -103
- package/src/LodopFuncs.js +71 -103
- package/src/components/Main.vue +15 -27
- package/src/components/Util.js +15 -0
- package/src/components/equipment/PcAdd.vue +1 -1
- package/src/components/equipment/PcList.vue +3 -3
- package/src/components/equipment/PhoneAdd.vue +1 -1
- package/src/components/equipment/PhoneList.vue +2 -2
- package/src/components/equipment/PosAdd.vue +11 -7
- package/src/components/equipment/PosList.vue +5 -3
- package/src/components/equipment/PosManage.vue +1 -1
- package/src/components/equipment/PosParamAdd.vue +2 -2
- package/src/components/equipment/PosParamList.vue +2 -2
- package/src/components/materialManage/materialList.vue +1 -1
- package/src/components/parammanage/ParamPage.vue +12 -12
- package/src/components/parammanage/ParamPages.vue +2 -2
- package/src/components/parammanage/SinglePage.vue +8 -8
- package/src/components/parammanage/SinglePages.vue +2 -2
- package/src/components/server/AddChangeMsg.vue +1 -1
- package/src/components/server/ChangeDeclare.vue +1 -1
- package/src/components/server/Login.vue +51 -67
- package/src/components/server/ModifyPw.vue +105 -35
- package/src/components/server/PcdBuildingSelect.vue +6 -8
- package/src/components/server/ResSelect.vue +0 -3
- package/src/components/server/ResSelectGroup.vue +1 -1
- package/src/components/server/RoleSelector.vue +2 -3
- package/src/components/server/TestResSelectGroup.vue +1 -1
- package/src/filiale/baole/Login.vue +24 -21
- package/src/filiale/chengtou/Login.vue +24 -21
- package/src/filiale/dongguan/Login.vue +24 -21
- package/src/filiale/dongguan/Main.vue +3 -5
- package/src/filiale/furuike/Login.vue +25 -24
- package/src/filiale/furuike/Main.vue +26 -39
- package/src/filiale/gehua/Main.vue +3 -5
- package/src/filiale/konggang/Login.vue +24 -21
- package/src/filiale/qianneng/Login.vue +24 -21
- package/src/filiale/qianneng/Main.vue +3 -5
- package/src/filiale/qianneng/ModifyPw.vue +105 -32
- package/src/filiale/rizhao/Login.vue +23 -20
- package/src/filiale/rizhao/Main.vue +3 -3
- package/src/filiale/shiquan/Login.vue +24 -21
- package/src/filiale/tianyi/Login.vue +24 -21
- package/src/filiale/tongchuan/Login.vue +24 -21
- package/src/filiale/tongchuan/Main.vue +6 -8
- package/src/filiale/weinan/Main.vue +6 -7
- package/src/filiale/wenxi/Login.vue +24 -21
- package/src/filiale/wenxi/Main.vue +3 -5
- package/src/filiale/wuhai/Main.vue +3 -6
- package/src/filiale/yuchuan/Login.vue +25 -22
- package/src/filiale/yuchuan/Main.vue +3 -5
- package/src/filiale/zhoukou/Main.vue +3 -5
- package/src/plugins/EncryptUtil.js +1 -1
- package/src/plugins/GetLoginInfoService.js +85 -20
- package/src/plugins/validation.js +12 -8
- package/src/stores/AppData.js +2 -1
- package/src/util/password-validation.js +185 -0
- package/build.gradle +0 -6
- package/src/filiale/ruihua/Login.vue +0 -576
- package/src/filiale/ruihua/system.js +0 -5
- package/static/ruihua/logo.jpg +0 -0
|
@@ -1,68 +1,69 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
3
|
<validator name="v">
|
|
4
|
-
<modal :show.sync="show" v-ref:modal
|
|
4
|
+
<modal :show.sync="show" v-ref:modal backdrop="false">
|
|
5
5
|
<header slot="modal-header" class="modal-header">
|
|
6
6
|
<button type="button" class="close" @click="rest"><span>×</span></button>
|
|
7
7
|
<h4 class="modal-title">修改密码</h4>
|
|
8
8
|
</header>
|
|
9
9
|
<article slot="modal-body" class="modal-body modifystyle auto form-horizontal">
|
|
10
|
+
<div class="password-alert">
|
|
11
|
+
{{ passwordRuleHint }}
|
|
12
|
+
</div>
|
|
10
13
|
<div class="has-feedback form-group"
|
|
11
14
|
:class="{'has-warning':$v.password.required,'has-error': $v.password.required,
|
|
12
15
|
'has-success':!$v.password.required}">
|
|
13
|
-
<label for="password" class="col-sm-
|
|
14
|
-
<div class="col-sm-
|
|
16
|
+
<label for="password" class="col-sm-3 control-label">原始密码</label>
|
|
17
|
+
<div class="col-sm-8 password-field-wrap">
|
|
15
18
|
<input type="password" v-model="deliver.password" class="form-control" id="password" v-validate:password="{ required: true}">
|
|
16
19
|
<span class="glyphicon glyphicon-ok form-control-feedback" v-if="!$v.password.required"></span>
|
|
17
|
-
<span v-if="$v.password.required">不能为空</span>
|
|
20
|
+
<span class="field-error" v-if="$v.password.required">不能为空</span>
|
|
18
21
|
</div>
|
|
19
22
|
</div>
|
|
20
23
|
<div class="has-feedback form-group"
|
|
21
|
-
:class="{'has-warning':$v.newpassword.required,'has-error':($v.newpassword.numbersAndLetter8to16 || $v.newpassword.
|
|
22
|
-
'has-success': !$v.newpassword.required && !$v.newpassword.numbersAndLetter8to16
|
|
23
|
-
<label for="newpassword" class="col-sm-
|
|
24
|
-
<div class="col-sm-
|
|
25
|
-
<input type="password" v-model="deliver.newpassword" class="form-control" id="newpassword" v-validate:newpassword='{required:true, numbersAndLetter8to16: true,
|
|
26
|
-
<span class="glyphicon glyphicon-ok form-control-feedback" v-if="!$v.newpassword.required && !$v.newpassword.
|
|
27
|
-
<span v-if="$v.newpassword.required">不能为空</span>
|
|
28
|
-
<span v-if="
|
|
29
|
-
<
|
|
24
|
+
:class="{'has-warning':$v.newpassword.required,'has-error':($v.newpassword.numbersAndLetter8to16 || $v.newpassword.chinesePassword) && !$v.newpassword.required,
|
|
25
|
+
'has-success': !$v.newpassword.required && !$v.newpassword.numbersAndLetter8to16 && !$v.newpassword.chinesePassword}">
|
|
26
|
+
<label for="newpassword" class="col-sm-3 control-label">新的密码</label>
|
|
27
|
+
<div class="col-sm-8 password-field-wrap">
|
|
28
|
+
<input type="password" v-model="deliver.newpassword" class="form-control" id="newpassword" v-validate:newpassword='{required:true, numbersAndLetter8to16: true, chinesePassword: true}'>
|
|
29
|
+
<span class="glyphicon glyphicon-ok form-control-feedback" v-if="!$v.newpassword.required && !$v.newpassword.numbersAndLetter8to16 && !$v.newpassword.chinesePassword"></span>
|
|
30
|
+
<span class="field-error" v-if="$v.newpassword.required">不能为空</span>
|
|
31
|
+
<span class="field-error" v-if="$v.newpassword.chinesePassword && !$v.newpassword.required">密码不能包含中文</span>
|
|
32
|
+
<div v-if="passwordStrength.visible" class="password-strength">
|
|
33
|
+
<span class="strength-label">密码强度</span>
|
|
34
|
+
<span class="strength-tag" :class="passwordStrength.type">{{ passwordStrength.label }}</span>
|
|
35
|
+
<span class="strength-desc">{{ passwordStrength.desc }}</span>
|
|
36
|
+
</div>
|
|
30
37
|
</div>
|
|
31
38
|
</div>
|
|
32
39
|
<div class="has-feedback form-group"
|
|
33
40
|
:class="{'has-warning':$v.affirmpassword.required,'has-error':$v.affirmpassword.equalValid && !($v.affirmpassword.required),
|
|
34
41
|
'has-success': !$v.affirmpassword.required && !($v.affirmpassword.equalValid && !($v.affirmpassword.required))}">
|
|
35
|
-
<label for="affirmpassword" class="col-sm-
|
|
36
|
-
<div class="col-sm-
|
|
42
|
+
<label for="affirmpassword" class="col-sm-3 control-label">确认密码</label>
|
|
43
|
+
<div class="col-sm-8 password-field-wrap">
|
|
37
44
|
<input type="password" v-model="deliver.affirmpassword" class="form-control" id="affirmpassword" v-validate:affirmpassword="{ required: true, equalValid: deliver.newpassword }">
|
|
38
45
|
<span class="glyphicon glyphicon-ok form-control-feedback" v-if="!$v.affirmpassword.required && !($v.affirmpassword.equalValid && !($v.affirmpassword.required))"></span>
|
|
39
|
-
<span v-if="$v.affirmpassword.required">不能为空</span>
|
|
40
|
-
<span v-if="$v.affirmpassword.equalValid && !($v.affirmpassword.required)"
|
|
46
|
+
<span class="field-error" v-if="$v.affirmpassword.required">不能为空</span>
|
|
47
|
+
<span class="field-error" v-if="$v.affirmpassword.equalValid && !($v.affirmpassword.required)">两次密码不一致</span>
|
|
41
48
|
</div>
|
|
42
49
|
</div>
|
|
43
50
|
</article>
|
|
44
51
|
|
|
45
52
|
<footer slot="modal-footer" class="modal-footer">
|
|
46
|
-
<button
|
|
47
|
-
<button
|
|
53
|
+
<button type="button" class="btn btn-success" @click='confirm' :disabled="!$v.valid">确认</button>
|
|
54
|
+
<button type="button" class="btn btn-default" @click='rest'>取消</button>
|
|
48
55
|
</footer>
|
|
49
56
|
</modal>
|
|
50
57
|
</validator>
|
|
51
58
|
</div>
|
|
52
|
-
|
|
53
|
-
|
|
54
59
|
</template>
|
|
55
60
|
<script>
|
|
56
61
|
import co from 'co'
|
|
57
|
-
import validator from '../../plugins/validation'
|
|
62
|
+
import validator from '../../plugins/validation'
|
|
63
|
+
import { getPasswordStrength, PASSWORD_RULE_HINT } from '../../util/password-validation'
|
|
58
64
|
|
|
59
65
|
let saveGen = function * (self) {
|
|
60
66
|
self.deliver.ename = self.functions.ename
|
|
61
|
-
// let res = yield self.$post('rs/user/entity', {data: self.deliver})
|
|
62
|
-
// let res = yield self.$post('rs/db/modifypassword', {data: self.deliver})
|
|
63
|
-
// let res = yield self.$resetpost('/rs/db/modifypwd', {data: self.deliver})
|
|
64
|
-
// Util.f.password = self.deliver.newpassword
|
|
65
|
-
// todo v4
|
|
66
67
|
let res = yield self.$resetpost('/rs/user/modifypwd', {data: self.deliver })
|
|
67
68
|
self.$login.f.password = self.deliver.newpassword
|
|
68
69
|
if (res.data) {
|
|
@@ -81,7 +82,13 @@
|
|
|
81
82
|
newpassword: '',
|
|
82
83
|
affirmpassword: ''
|
|
83
84
|
},
|
|
84
|
-
functions: this.$login.f
|
|
85
|
+
functions: this.$login.f,
|
|
86
|
+
passwordRuleHint: PASSWORD_RULE_HINT
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
computed: {
|
|
90
|
+
passwordStrength () {
|
|
91
|
+
return getPasswordStrength(this.deliver.newpassword)
|
|
85
92
|
}
|
|
86
93
|
},
|
|
87
94
|
props: ['show'],
|
|
@@ -98,11 +105,77 @@
|
|
|
98
105
|
}
|
|
99
106
|
</script>
|
|
100
107
|
<style>
|
|
101
|
-
/*修改密码body界面样式*/
|
|
102
108
|
.modifystyle {
|
|
103
|
-
background: #
|
|
109
|
+
background: #fff;
|
|
110
|
+
padding: 10px 20px 20px;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.modifystyle .control-label {
|
|
114
|
+
color: #333;
|
|
115
|
+
font-weight: normal;
|
|
116
|
+
padding-top: 7px;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.password-field-wrap {
|
|
120
|
+
padding-left: 0;
|
|
121
|
+
padding-right: 0;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.password-field-wrap .form-control {
|
|
125
|
+
width: 100%;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.password-alert {
|
|
129
|
+
margin: 0 0 16px;
|
|
130
|
+
padding: 10px 12px;
|
|
131
|
+
border-radius: 4px;
|
|
132
|
+
background: #f5f7fa;
|
|
133
|
+
border: 1px solid #e4e7ed;
|
|
134
|
+
color: #606266;
|
|
135
|
+
font-size: 13px;
|
|
136
|
+
line-height: 1.6;
|
|
104
137
|
}
|
|
105
|
-
|
|
106
|
-
|
|
138
|
+
|
|
139
|
+
.field-error {
|
|
140
|
+
display: block;
|
|
141
|
+
margin-top: 6px;
|
|
142
|
+
color: #e74c3c;
|
|
143
|
+
font-size: 12px;
|
|
144
|
+
line-height: 1.4;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.password-strength {
|
|
148
|
+
margin-top: 8px;
|
|
149
|
+
font-size: 12px;
|
|
150
|
+
line-height: 1.6;
|
|
151
|
+
color: #606266;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.password-strength .strength-label {
|
|
155
|
+
margin-right: 6px;
|
|
156
|
+
color: #909399;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.password-strength .strength-tag {
|
|
160
|
+
display: inline-block;
|
|
161
|
+
margin-right: 8px;
|
|
162
|
+
padding: 1px 8px;
|
|
163
|
+
border-radius: 3px;
|
|
164
|
+
font-size: 12px;
|
|
165
|
+
line-height: 1.5;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.password-strength .strength-tag.success {
|
|
169
|
+
color: #2e7d32;
|
|
170
|
+
background: #e8f5e9;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.password-strength .strength-tag.error {
|
|
174
|
+
color: #c62828;
|
|
175
|
+
background: #ffebee;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.password-strength .strength-desc {
|
|
179
|
+
color: #606266;
|
|
107
180
|
}
|
|
108
181
|
</style>
|
|
@@ -121,13 +121,14 @@
|
|
|
121
121
|
|
|
122
122
|
<script>
|
|
123
123
|
import co from 'co'
|
|
124
|
+
import { isStrongPassword } from '../../util/password-validation'
|
|
124
125
|
import $ from 'jquery'
|
|
125
126
|
import Vue from 'vue'
|
|
126
127
|
import {HttpResetClass} from 'vue-client'
|
|
128
|
+
import {isPasswordModificationExpired} from '../../components/Util'
|
|
127
129
|
|
|
128
130
|
|
|
129
131
|
|
|
130
|
-
// todo v4
|
|
131
132
|
let saveGen = function *(self) {
|
|
132
133
|
try {
|
|
133
134
|
if(self.$login){
|
|
@@ -183,12 +184,15 @@ let saveGen = function *(self) {
|
|
|
183
184
|
}
|
|
184
185
|
}
|
|
185
186
|
console.log(self.$login.depPrompt)
|
|
186
|
-
//
|
|
187
|
-
|
|
188
|
-
if ((!self.otherLogin) && self.config.weakPassword && !(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/.test(self.model.password))) {
|
|
187
|
+
// 弱口令验证(默认开启,跳转过来的不进行验证)
|
|
188
|
+
if ((!self.otherLogin) && !isStrongPassword(self.model.password)) {
|
|
189
189
|
self.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm']).then((res) => {
|
|
190
190
|
self.modifyPwShow = true
|
|
191
191
|
})
|
|
192
|
+
} else if ((!self.otherLogin) && isPasswordModificationExpired(self.$login.f.f_last_modification_time)) {
|
|
193
|
+
self.$showMessage('登录系统: 您的密码已超过两个半月未修改,请修改密码后重新登录!!!', ['confirm']).then((res) => {
|
|
194
|
+
self.modifyPwShow = true
|
|
195
|
+
})
|
|
192
196
|
} else if ((!self.otherLogin) && self.$login.depPrompt) {
|
|
193
197
|
self.depPromptShow = true
|
|
194
198
|
} else {
|
|
@@ -205,6 +209,8 @@ let saveGen = function *(self) {
|
|
|
205
209
|
|
|
206
210
|
} catch (ret) {
|
|
207
211
|
console.error('登录失败', ret)
|
|
212
|
+
self.$login.s = null
|
|
213
|
+
self.$login['v3-session-key'] = null
|
|
208
214
|
let msg
|
|
209
215
|
if (ret instanceof Error) {
|
|
210
216
|
msg = ret
|
|
@@ -228,19 +234,19 @@ let saveGen = function *(self) {
|
|
|
228
234
|
export default {
|
|
229
235
|
title: '登录',
|
|
230
236
|
async ready () {
|
|
231
|
-
try{
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}catch(e){}
|
|
237
|
+
// try{
|
|
238
|
+
// let http = new HttpResetClass()
|
|
239
|
+
// let res = await http.load('POST', 'rs/sql/singleTable',
|
|
240
|
+
// {data:{
|
|
241
|
+
// tablename: 't_changedeclare',
|
|
242
|
+
// condition: ` f_type ='变更通知' `
|
|
243
|
+
// }
|
|
244
|
+
// }, {resolveMsg: null, rejectMsg: null})
|
|
245
|
+
// if(res.data.length>0){
|
|
246
|
+
// console.log("---------------获取通知",res.data[0].f_change_message)
|
|
247
|
+
// this.notice=res.data[0].f_change_message
|
|
248
|
+
// }
|
|
249
|
+
// }catch(e){}
|
|
244
250
|
|
|
245
251
|
this.loginother();
|
|
246
252
|
$('#login-button').click(function (event) {
|
|
@@ -249,10 +255,8 @@ export default {
|
|
|
249
255
|
})
|
|
250
256
|
if (window.location.search && window.location.search.indexOf('af_key') !== -1&& window.location.search.indexOf('af_n') !== -1) {
|
|
251
257
|
const subUrl = window.location.search.replace('?af_key=','').split('&af_n=')
|
|
252
|
-
console.log(subUrl)
|
|
253
258
|
this.model.ename = window.atob(subUrl[0])
|
|
254
259
|
this.model.password = window.atob(subUrl[1])
|
|
255
|
-
console.log('this.model.ename',this.model.ename)
|
|
256
260
|
this.otherLogin = true
|
|
257
261
|
this.confirm()
|
|
258
262
|
}else{
|
|
@@ -299,7 +303,6 @@ export default {
|
|
|
299
303
|
if (this.config.distanceLogin) {
|
|
300
304
|
if (this.$login && this.$login.getUrlParames('name') ) {
|
|
301
305
|
let ename = this.$login.getUrlParames('name');
|
|
302
|
-
// todo v4
|
|
303
306
|
let logininfo = await this.$resetpost('rs/logic/getLoginData',{data:{ename:ename}},{resolveMsg: null, rejectMsg: null});
|
|
304
307
|
if(logininfo.data){
|
|
305
308
|
if(logininfo.data.ename && logininfo.data.password){
|
|
@@ -68,7 +68,7 @@ let getwartermakr = async function (self) {
|
|
|
68
68
|
tablename: 't_singlevalue',
|
|
69
69
|
condition: " 1=1 and name=\'水印内容\'"
|
|
70
70
|
};
|
|
71
|
-
let result = await self.$resetpost('
|
|
71
|
+
let result = await self.$resetpost('rs/sql/saleSingleTable', {data: param}, {resolveMsg: null, rejectMsg: null});
|
|
72
72
|
if (result && result.data.length > 0) {
|
|
73
73
|
self.showwatermakeflag = true;
|
|
74
74
|
createWaterMark(result.data[0].value);
|
|
@@ -216,7 +216,7 @@ export default {
|
|
|
216
216
|
}
|
|
217
217
|
},
|
|
218
218
|
openUrl() {
|
|
219
|
-
var url = `
|
|
219
|
+
var url = `https://liuli.aofengcloud.com:31467`
|
|
220
220
|
window.open(url, '_blank')
|
|
221
221
|
},
|
|
222
222
|
hindsetting() {
|
|
@@ -295,7 +295,7 @@ export default {
|
|
|
295
295
|
username: this.$login.f.name,
|
|
296
296
|
usertelephone: this.$login.f.f_user_telephone
|
|
297
297
|
}
|
|
298
|
-
await this.$resetpost('
|
|
298
|
+
await this.$resetpost('rs/logic/logOut', data, {resolveMsg: '退出成功', rejectMsg: null})
|
|
299
299
|
window.location.reload()
|
|
300
300
|
}
|
|
301
301
|
})
|
|
@@ -142,9 +142,11 @@
|
|
|
142
142
|
|
|
143
143
|
<script>
|
|
144
144
|
import co from 'co'
|
|
145
|
+
import { isStrongPassword } from '../../util/password-validation'
|
|
145
146
|
import $ from 'jquery'
|
|
146
147
|
import Vue from 'vue'
|
|
147
148
|
import {HttpResetClass} from 'vue-client'
|
|
149
|
+
import {isPasswordModificationExpired} from '../../components/Util'
|
|
148
150
|
|
|
149
151
|
let daibanJson = require('../../util/Daiban.json')
|
|
150
152
|
|
|
@@ -174,7 +176,6 @@
|
|
|
174
176
|
console.log('登录配置', self.config)
|
|
175
177
|
if (self.config.isMac) {
|
|
176
178
|
// 获取该登录人分公司下的mac配置
|
|
177
|
-
// todo v4
|
|
178
179
|
let getMacs = yield self.$resetpost('rs/sql/equipmentQuery', {data: {condition: `f_filialeids like '%${self.$login.f.f_orgids}%'`}}, {
|
|
179
180
|
resolveMsg: null,
|
|
180
181
|
rejectMsg: null
|
|
@@ -204,12 +205,15 @@
|
|
|
204
205
|
}
|
|
205
206
|
}
|
|
206
207
|
console.log(self.$login.depPrompt)
|
|
207
|
-
//
|
|
208
|
-
|
|
209
|
-
if ((!self.otherLogin) && self.config.weakPassword && !(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/.test(self.model.password))) {
|
|
208
|
+
// 弱口令验证(默认开启,跳转过来的不进行验证)
|
|
209
|
+
if ((!self.otherLogin) && !isStrongPassword(self.model.password)) {
|
|
210
210
|
self.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm']).then((res) => {
|
|
211
211
|
self.modifyPwShow = true
|
|
212
212
|
})
|
|
213
|
+
} else if ((!self.otherLogin) && isPasswordModificationExpired(self.$login.f.f_last_modification_time)) {
|
|
214
|
+
self.$showMessage('登录系统: 您的密码已超过两个半月未修改,请修改密码后重新登录!!!', ['confirm']).then((res) => {
|
|
215
|
+
self.modifyPwShow = true
|
|
216
|
+
})
|
|
213
217
|
} else if ((!self.otherLogin) && self.$login.depPrompt) {
|
|
214
218
|
self.depPromptShow = true
|
|
215
219
|
if (self.$login.showDaiBan && self.$login.r.includes('展示预约信息')){
|
|
@@ -230,6 +234,8 @@
|
|
|
230
234
|
}
|
|
231
235
|
} catch (ret) {
|
|
232
236
|
console.error('登录失败', ret)
|
|
237
|
+
self.$login.s = null
|
|
238
|
+
self.$login['v3-session-key'] = null
|
|
233
239
|
let msg
|
|
234
240
|
if (ret instanceof Error) {
|
|
235
241
|
msg = ret
|
|
@@ -258,19 +264,19 @@
|
|
|
258
264
|
this.titleShow = this.$appdata.getSingleValue('关于我们')
|
|
259
265
|
window.versionTime = window.versionTime ? window.versionTime : new Date().getTime()
|
|
260
266
|
this.vTime = this.format(new Date(window.versionTime));
|
|
261
|
-
try{
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
}catch(e){}
|
|
267
|
+
// try{
|
|
268
|
+
// let http = new HttpResetClass()
|
|
269
|
+
// let res = await http.load('POST', 'rs/sql/singleTable',
|
|
270
|
+
// {data:{
|
|
271
|
+
// tablename: 't_changedeclare',
|
|
272
|
+
// condition: ` f_type ='变更通知' `
|
|
273
|
+
// }
|
|
274
|
+
// }, {resolveMsg: null, rejectMsg: null})
|
|
275
|
+
// if(res.data.length>0){
|
|
276
|
+
// console.log("---------------获取通知",res.data[0].f_change_message)
|
|
277
|
+
// this.notice=res.data[0].f_change_message
|
|
278
|
+
// }
|
|
279
|
+
// }catch(e){}
|
|
274
280
|
|
|
275
281
|
this.loginother();
|
|
276
282
|
$('#login-button').click(function (event) {
|
|
@@ -279,10 +285,8 @@
|
|
|
279
285
|
})
|
|
280
286
|
if (window.location.search && window.location.search.indexOf('af_key') !== -1&& window.location.search.indexOf('af_n') !== -1) {
|
|
281
287
|
const subUrl = window.location.search.replace('?af_key=','').split('&af_n=')
|
|
282
|
-
console.log(subUrl)
|
|
283
288
|
this.model.ename = window.atob(subUrl[0])
|
|
284
289
|
this.model.password = window.atob(subUrl[1])
|
|
285
|
-
console.log('this.model.ename',this.model.ename)
|
|
286
290
|
this.otherLogin = true
|
|
287
291
|
this.confirm()
|
|
288
292
|
}else{
|
|
@@ -360,7 +364,7 @@
|
|
|
360
364
|
} else {
|
|
361
365
|
condition =` f_orderstate is null and (f_address in( select f_address from t_user_address where f_slice_area='柠条塔') or f_address like '%柠条塔%') `
|
|
362
366
|
}
|
|
363
|
-
await http.load('POST', '/
|
|
367
|
+
await http.load('POST', '/rs/sql/singleTable', {data: {
|
|
364
368
|
tablename:'t_order_center',
|
|
365
369
|
condition:condition
|
|
366
370
|
}}, {
|
|
@@ -436,7 +440,6 @@
|
|
|
436
440
|
if (this.config.distanceLogin) {
|
|
437
441
|
if (this.$login && this.$login.getUrlParames('name') ) {
|
|
438
442
|
let ename = this.$login.getUrlParames('name');
|
|
439
|
-
// todo v4
|
|
440
443
|
let logininfo = await this.$resetpost('rs/logic/getLoginData',{data:{ename:ename}},{resolveMsg: null, rejectMsg: null});
|
|
441
444
|
if(logininfo.data){
|
|
442
445
|
if(logininfo.data.ename && logininfo.data.password){
|
|
@@ -145,9 +145,11 @@
|
|
|
145
145
|
|
|
146
146
|
<script>
|
|
147
147
|
import co from 'co'
|
|
148
|
+
import { isStrongPassword } from '../../util/password-validation'
|
|
148
149
|
import $ from 'jquery'
|
|
149
150
|
import Vue from 'vue'
|
|
150
151
|
import {HttpResetClass} from 'vue-client'
|
|
152
|
+
import {isPasswordModificationExpired} from '../../components/Util'
|
|
151
153
|
|
|
152
154
|
let daibanJson = require('../../util/Daiban.json')
|
|
153
155
|
|
|
@@ -178,7 +180,6 @@ let saveGen = function *(self) {
|
|
|
178
180
|
console.log('登录配置', self.config)
|
|
179
181
|
if (self.config.isMac) {
|
|
180
182
|
// 获取该登录人分公司下的mac配置
|
|
181
|
-
// todo v4
|
|
182
183
|
let getMacs = yield self.$resetpost('rs/sql/equipmentQuery', {data: {condition: `f_filialeids like '%${self.$login.f.f_orgids}%'`}}, {
|
|
183
184
|
resolveMsg: null,
|
|
184
185
|
rejectMsg: null
|
|
@@ -208,12 +209,15 @@ let saveGen = function *(self) {
|
|
|
208
209
|
}
|
|
209
210
|
}
|
|
210
211
|
console.log(self.$login.depPrompt)
|
|
211
|
-
//
|
|
212
|
-
|
|
213
|
-
if ((!self.otherLogin) && self.config.weakPassword && !(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/.test(self.model.password))) {
|
|
212
|
+
// 弱口令验证(默认开启,跳转过来的不进行验证)
|
|
213
|
+
if ((!self.otherLogin) && !isStrongPassword(self.model.password)) {
|
|
214
214
|
self.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm']).then((res) => {
|
|
215
215
|
self.modifyPwShow = true
|
|
216
216
|
})
|
|
217
|
+
} else if ((!self.otherLogin) && isPasswordModificationExpired(self.$login.f.f_last_modification_time)) {
|
|
218
|
+
self.$showMessage('登录系统: 您的密码已超过两个半月未修改,请修改密码后重新登录!!!', ['confirm']).then((res) => {
|
|
219
|
+
self.modifyPwShow = true
|
|
220
|
+
})
|
|
217
221
|
} else if ((!self.otherLogin) && self.$login.depPrompt) {
|
|
218
222
|
self.depPromptShow = true
|
|
219
223
|
if (self.$login.showDaiBan && self.$login.r.includes('展示预约信息')){
|
|
@@ -239,6 +243,8 @@ let saveGen = function *(self) {
|
|
|
239
243
|
|
|
240
244
|
} catch (ret) {
|
|
241
245
|
console.error('登录失败', ret)
|
|
246
|
+
self.$login.s = null
|
|
247
|
+
self.$login['v3-session-key'] = null
|
|
242
248
|
let msg
|
|
243
249
|
if (ret instanceof Error) {
|
|
244
250
|
msg = ret
|
|
@@ -265,19 +271,19 @@ export default {
|
|
|
265
271
|
this.titleShow = this.$appdata.getSingleValue('关于我们')
|
|
266
272
|
window.versionTime = window.versionTime ? window.versionTime : new Date().getTime()
|
|
267
273
|
this.vTime = this.format(new Date(window.versionTime));
|
|
268
|
-
try{
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
}catch(e){}
|
|
274
|
+
// try{
|
|
275
|
+
// let http = new HttpResetClass()
|
|
276
|
+
// let res = await http.load('POST', 'rs/sql/singleTable',
|
|
277
|
+
// {data:{
|
|
278
|
+
// tablename: 't_changedeclare',
|
|
279
|
+
// condition: ` f_type ='变更通知' `
|
|
280
|
+
// }
|
|
281
|
+
// }, {resolveMsg: null, rejectMsg: null})
|
|
282
|
+
// if(res.data.length>0){
|
|
283
|
+
// console.log("---------------获取通知",res.data[0].f_change_message)
|
|
284
|
+
// this.notice=res.data[0].f_change_message
|
|
285
|
+
// }
|
|
286
|
+
// }catch(e){}
|
|
281
287
|
|
|
282
288
|
this.loginother();
|
|
283
289
|
$('#login-button').click(function (event) {
|
|
@@ -286,10 +292,8 @@ export default {
|
|
|
286
292
|
})
|
|
287
293
|
if (window.location.search && window.location.search.indexOf('af_key') !== -1&& window.location.search.indexOf('af_n') !== -1) {
|
|
288
294
|
const subUrl = window.location.search.replace('?af_key=','').split('&af_n=')
|
|
289
|
-
console.log(subUrl)
|
|
290
295
|
this.model.ename = window.atob(subUrl[0])
|
|
291
296
|
this.model.password = window.atob(subUrl[1])
|
|
292
|
-
console.log('this.model.ename',this.model.ename)
|
|
293
297
|
this.otherLogin = true
|
|
294
298
|
this.confirm()
|
|
295
299
|
}else{
|
|
@@ -367,7 +371,7 @@ export default {
|
|
|
367
371
|
} else {
|
|
368
372
|
condition =` f_orderstate is null and (f_address in( select f_address from t_user_address where f_slice_area='柠条塔') or f_address like '%柠条塔%') `
|
|
369
373
|
}
|
|
370
|
-
await http.load('POST', '/
|
|
374
|
+
await http.load('POST', '/rs/sql/singleTable', {data: {
|
|
371
375
|
tablename:'t_order_center',
|
|
372
376
|
condition:condition
|
|
373
377
|
}}, {
|
|
@@ -443,7 +447,6 @@ export default {
|
|
|
443
447
|
if (this.config.distanceLogin) {
|
|
444
448
|
if (this.$login && this.$login.getUrlParames('name') ) {
|
|
445
449
|
let ename = this.$login.getUrlParames('name');
|
|
446
|
-
// todo v4
|
|
447
450
|
let logininfo = await this.$resetpost('rs/logic/getLoginData',{data:{ename:ename}},{resolveMsg: null, rejectMsg: null});
|
|
448
451
|
if(logininfo.data){
|
|
449
452
|
if(logininfo.data.ename && logininfo.data.password){
|
|
@@ -138,9 +138,11 @@
|
|
|
138
138
|
|
|
139
139
|
<script>
|
|
140
140
|
import co from 'co'
|
|
141
|
+
import { isStrongPassword } from '../../util/password-validation'
|
|
141
142
|
import $ from 'jquery'
|
|
142
143
|
import Vue from 'vue'
|
|
143
144
|
import {HttpResetClass} from 'vue-client'
|
|
145
|
+
import {isPasswordModificationExpired} from '../../components/Util'
|
|
144
146
|
|
|
145
147
|
let daibanJson = require('../../util/Daiban.json')
|
|
146
148
|
|
|
@@ -171,7 +173,6 @@ let saveGen = function *(self) {
|
|
|
171
173
|
console.log('登录配置', self.config)
|
|
172
174
|
if (self.config.isMac) {
|
|
173
175
|
// 获取该登录人分公司下的mac配置
|
|
174
|
-
// todo v4
|
|
175
176
|
let getMacs = yield self.$resetpost('rs/sql/equipmentQuery', {data: {condition: `f_filialeids like '%${self.$login.f.f_orgids}%'`}}, {
|
|
176
177
|
resolveMsg: null,
|
|
177
178
|
rejectMsg: null
|
|
@@ -201,12 +202,15 @@ let saveGen = function *(self) {
|
|
|
201
202
|
}
|
|
202
203
|
}
|
|
203
204
|
console.log(self.$login.depPrompt)
|
|
204
|
-
//
|
|
205
|
-
|
|
206
|
-
if ((!self.otherLogin) && self.config.weakPassword && !(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/.test(self.model.password))) {
|
|
205
|
+
// 弱口令验证(默认开启,跳转过来的不进行验证)
|
|
206
|
+
if ((!self.otherLogin) && !isStrongPassword(self.model.password)) {
|
|
207
207
|
self.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm']).then((res) => {
|
|
208
208
|
self.modifyPwShow = true
|
|
209
209
|
})
|
|
210
|
+
} else if ((!self.otherLogin) && isPasswordModificationExpired(self.$login.f.f_last_modification_time)) {
|
|
211
|
+
self.$showMessage('登录系统: 您的密码已超过两个半月未修改,请修改密码后重新登录!!!', ['confirm']).then((res) => {
|
|
212
|
+
self.modifyPwShow = true
|
|
213
|
+
})
|
|
210
214
|
} else if ((!self.otherLogin) && self.$login.depPrompt) {
|
|
211
215
|
self.depPromptShow = true
|
|
212
216
|
if (self.$login.showDaiBan && self.$login.r.includes('展示预约信息')){
|
|
@@ -232,6 +236,8 @@ let saveGen = function *(self) {
|
|
|
232
236
|
|
|
233
237
|
} catch (ret) {
|
|
234
238
|
console.error('登录失败', ret)
|
|
239
|
+
self.$login.s = null
|
|
240
|
+
self.$login['v3-session-key'] = null
|
|
235
241
|
let msg
|
|
236
242
|
if (ret instanceof Error) {
|
|
237
243
|
msg = ret
|
|
@@ -256,19 +262,19 @@ export default {
|
|
|
256
262
|
title: '登录',
|
|
257
263
|
async ready () {
|
|
258
264
|
this.titleShow = this.$appdata.getSingleValue('关于我们')
|
|
259
|
-
try{
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
}catch(e){}
|
|
265
|
+
// try{
|
|
266
|
+
// let http = new HttpResetClass()
|
|
267
|
+
// let res = await http.load('POST', 'rs/sql/singleTable',
|
|
268
|
+
// {data:{
|
|
269
|
+
// tablename: 't_changedeclare',
|
|
270
|
+
// condition: ` f_type ='变更通知' `
|
|
271
|
+
// }
|
|
272
|
+
// }, {resolveMsg: null, rejectMsg: null})
|
|
273
|
+
// if(res.data.length>0){
|
|
274
|
+
// console.log("---------------获取通知",res.data[0].f_change_message)
|
|
275
|
+
// this.notice=res.data[0].f_change_message
|
|
276
|
+
// }
|
|
277
|
+
// }catch(e){}
|
|
272
278
|
|
|
273
279
|
this.loginother();
|
|
274
280
|
$('#login-button').click(function (event) {
|
|
@@ -277,10 +283,8 @@ export default {
|
|
|
277
283
|
})
|
|
278
284
|
if (window.location.search && window.location.search.indexOf('af_key') !== -1&& window.location.search.indexOf('af_n') !== -1) {
|
|
279
285
|
const subUrl = window.location.search.replace('?af_key=','').split('&af_n=')
|
|
280
|
-
console.log(subUrl)
|
|
281
286
|
this.model.ename = window.atob(subUrl[0])
|
|
282
287
|
this.model.password = window.atob(subUrl[1])
|
|
283
|
-
console.log('this.model.ename',this.model.ename)
|
|
284
288
|
this.otherLogin = true
|
|
285
289
|
this.confirm()
|
|
286
290
|
}else{
|
|
@@ -372,7 +376,7 @@ export default {
|
|
|
372
376
|
} else {
|
|
373
377
|
condition =` f_orderstate is null and (f_address in( select f_address from t_user_address where f_slice_area='柠条塔') or f_address like '%柠条塔%') `
|
|
374
378
|
}
|
|
375
|
-
await http.load('POST', '/
|
|
379
|
+
await http.load('POST', '/rs/sql/singleTable', {data: {
|
|
376
380
|
tablename:'t_order_center',
|
|
377
381
|
condition:condition
|
|
378
382
|
}}, {
|
|
@@ -448,7 +452,6 @@ export default {
|
|
|
448
452
|
if (this.config.distanceLogin) {
|
|
449
453
|
if (this.$login && this.$login.getUrlParames('name') ) {
|
|
450
454
|
let ename = this.$login.getUrlParames('name');
|
|
451
|
-
// todo v4
|
|
452
455
|
let logininfo = await this.$resetpost('rs/logic/getLoginData',{data:{ename:ename}},{resolveMsg: null, rejectMsg: null});
|
|
453
456
|
if(logininfo.data){
|
|
454
457
|
if(logininfo.data.ename && logininfo.data.password){
|