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,73 +1,72 @@
|
|
|
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 }, {resolveMsg: null,rejectMsg: null})
|
|
67
68
|
self.$login.f.password = self.deliver.newpassword
|
|
68
69
|
if (res.data) {
|
|
69
|
-
console.log("修改密码返回:" , res.data)
|
|
70
|
-
// 兼容旧版ldao,旧版不返回code
|
|
71
70
|
if (res.data.code === 200) {
|
|
72
71
|
self.deliver.password = ''
|
|
73
72
|
self.deliver.newpassword = ''
|
|
@@ -75,7 +74,6 @@
|
|
|
75
74
|
self.show = false
|
|
76
75
|
self.$showAlert("修改密码成功", 'success', 2000)
|
|
77
76
|
} else {
|
|
78
|
-
// 兼容旧版ldao,旧版不返回code
|
|
79
77
|
self.deliver.password = ''
|
|
80
78
|
self.deliver.newpassword = ''
|
|
81
79
|
self.deliver.affirmpassword = ''
|
|
@@ -99,7 +97,13 @@
|
|
|
99
97
|
newpassword: '',
|
|
100
98
|
affirmpassword: ''
|
|
101
99
|
},
|
|
102
|
-
functions: this.$login.f
|
|
100
|
+
functions: this.$login.f,
|
|
101
|
+
passwordRuleHint: PASSWORD_RULE_HINT
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
computed: {
|
|
105
|
+
passwordStrength () {
|
|
106
|
+
return getPasswordStrength(this.deliver.newpassword)
|
|
103
107
|
}
|
|
104
108
|
},
|
|
105
109
|
props: ['show'],
|
|
@@ -116,11 +120,77 @@
|
|
|
116
120
|
}
|
|
117
121
|
</script>
|
|
118
122
|
<style>
|
|
119
|
-
/*修改密码body界面样式*/
|
|
120
123
|
.modifystyle {
|
|
121
|
-
background: #
|
|
124
|
+
background: #fff;
|
|
125
|
+
padding: 10px 20px 20px;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.modifystyle .control-label {
|
|
129
|
+
color: #333;
|
|
130
|
+
font-weight: normal;
|
|
131
|
+
padding-top: 7px;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.password-field-wrap {
|
|
135
|
+
padding-left: 0;
|
|
136
|
+
padding-right: 0;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.password-field-wrap .form-control {
|
|
140
|
+
width: 100%;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.password-alert {
|
|
144
|
+
margin: 0 0 16px;
|
|
145
|
+
padding: 10px 12px;
|
|
146
|
+
border-radius: 4px;
|
|
147
|
+
background: #f5f7fa;
|
|
148
|
+
border: 1px solid #e4e7ed;
|
|
149
|
+
color: #606266;
|
|
150
|
+
font-size: 13px;
|
|
151
|
+
line-height: 1.6;
|
|
122
152
|
}
|
|
123
|
-
|
|
124
|
-
|
|
153
|
+
|
|
154
|
+
.field-error {
|
|
155
|
+
display: block;
|
|
156
|
+
margin-top: 6px;
|
|
157
|
+
color: #e74c3c;
|
|
158
|
+
font-size: 12px;
|
|
159
|
+
line-height: 1.4;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.password-strength {
|
|
163
|
+
margin-top: 8px;
|
|
164
|
+
font-size: 12px;
|
|
165
|
+
line-height: 1.6;
|
|
166
|
+
color: #606266;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.password-strength .strength-label {
|
|
170
|
+
margin-right: 6px;
|
|
171
|
+
color: #909399;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.password-strength .strength-tag {
|
|
175
|
+
display: inline-block;
|
|
176
|
+
margin-right: 8px;
|
|
177
|
+
padding: 1px 8px;
|
|
178
|
+
border-radius: 3px;
|
|
179
|
+
font-size: 12px;
|
|
180
|
+
line-height: 1.5;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.password-strength .strength-tag.success {
|
|
184
|
+
color: #2e7d32;
|
|
185
|
+
background: #e8f5e9;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.password-strength .strength-tag.error {
|
|
189
|
+
color: #c62828;
|
|
190
|
+
background: #ffebee;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.password-strength .strength-desc {
|
|
194
|
+
color: #606266;
|
|
125
195
|
}
|
|
126
196
|
</style>
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
self.arrays.pcd=[{label:'全部',value:''}]
|
|
67
67
|
if(self.show.pcdShow){
|
|
68
68
|
let HttpReset = new HttpResetClass()
|
|
69
|
-
var pcd = await HttpReset.load('POST', '
|
|
69
|
+
var pcd = await HttpReset.load('POST', 'rs/sql/singleTable_OrderBy', {
|
|
70
70
|
data: {
|
|
71
71
|
items: 'f_pcd',
|
|
72
72
|
tablename: 't_pcd',
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
}else if(self.show.streetShow){
|
|
81
81
|
console.log("------------查街道")
|
|
82
82
|
let HttpReset = new HttpResetClass()
|
|
83
|
-
var street = await HttpReset.load('POST', '
|
|
83
|
+
var street = await HttpReset.load('POST', 'rs/sql/singleTable_OrderBy', {
|
|
84
84
|
data: {
|
|
85
85
|
items: 'f_street',
|
|
86
86
|
tablename: 't_street',
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
}
|
|
94
94
|
}else if(self.show.areaShow){
|
|
95
95
|
let HttpReset = new HttpResetClass()
|
|
96
|
-
var area = await HttpReset.load('POST', '
|
|
96
|
+
var area = await HttpReset.load('POST', 'rs/sql/singleTable_OrderBy', {
|
|
97
97
|
data: {
|
|
98
98
|
items: 'f_residential_area',
|
|
99
99
|
tablename: 't_area',
|
|
@@ -155,8 +155,7 @@
|
|
|
155
155
|
async pcdChange(){
|
|
156
156
|
this.arrays.street=[{label:'全部',value:''}]
|
|
157
157
|
var condition = `f_filialeid = '${this.$login.f.orgid}' and f_street is not null group by f_street`
|
|
158
|
-
|
|
159
|
-
let street = await this.$resetpost('api/af-revenue/sql/singleTable_OrderBy', {
|
|
158
|
+
let street = await this.$resetpost('rs/sql/singleTable_OrderBy', {
|
|
160
159
|
data: {
|
|
161
160
|
items: 'f_street',
|
|
162
161
|
tablename: 't_street',
|
|
@@ -172,7 +171,7 @@
|
|
|
172
171
|
async streetChange(){
|
|
173
172
|
this.arrays.area=[{label:'全部',value:''}]
|
|
174
173
|
var condition = `f_street = '${this.model.f_street?this.model.f_street:null}' and f_residential_area is not null group by f_residential_area`
|
|
175
|
-
let area = await this.$resetpost('
|
|
174
|
+
let area = await this.$resetpost('rs/sql/singleTable_OrderBy', {
|
|
176
175
|
data: {
|
|
177
176
|
items: 'f_residential_area',
|
|
178
177
|
tablename: 't_area',
|
|
@@ -193,8 +192,7 @@
|
|
|
193
192
|
}else{
|
|
194
193
|
condition = `f_filialeid = '${this.$login.f.orgid}' and f_building is not null group by f_building`
|
|
195
194
|
}
|
|
196
|
-
|
|
197
|
-
let build = await this.$resetpost('api/af-revenue/sql/singleTable_OrderBy', {
|
|
195
|
+
let build = await this.$resetpost('rs/sql/singleTable_OrderBy', {
|
|
198
196
|
data: {
|
|
199
197
|
items: 'f_building',
|
|
200
198
|
tablename: 't_user_address',
|
|
@@ -80,9 +80,6 @@
|
|
|
80
80
|
//找到跟节点
|
|
81
81
|
ergodicList (val,parentname) {
|
|
82
82
|
if(val.children.length > 0 ){
|
|
83
|
-
if (val.name !== '组织机构' && parentname !== '资源管理'){
|
|
84
|
-
this.resoptions.push({label: parentname === '组织机构' ? val.name : val.name+' - '+parentname, value: val.id})
|
|
85
|
-
}
|
|
86
83
|
parentname=parentname+val.name
|
|
87
84
|
this.treetoList(val,parentname)
|
|
88
85
|
}else {
|
|
@@ -167,7 +167,7 @@ export default {
|
|
|
167
167
|
for (let row of this.$refs.department.resoptions) {
|
|
168
168
|
depids.push(row.value)
|
|
169
169
|
}
|
|
170
|
-
let depid = depids.length ? plugin.convertToIn(depids) :
|
|
170
|
+
let depid = depids.length ? plugin.convertToIn(depids) : ('')
|
|
171
171
|
condition += " and f_depid in " + depid;
|
|
172
172
|
}
|
|
173
173
|
}
|
|
@@ -51,7 +51,6 @@
|
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
ready() {
|
|
54
|
-
// todo v4
|
|
55
54
|
this.$resetpost('/rs/search', {data: {source: this.source, userid: this.$login.f.id}}, {resolveMsg: null, rejectMsg: null})
|
|
56
55
|
.then(res => {
|
|
57
56
|
console.log('res-->' + JSON.stringify(res))
|
|
@@ -66,7 +65,7 @@
|
|
|
66
65
|
this.$dispatch('re-res',obj)
|
|
67
66
|
},
|
|
68
67
|
filterUser(resids) {
|
|
69
|
-
// 处理第一次进入页面值异常问题
|
|
68
|
+
// 处理第一次进入页面值异常问题
|
|
70
69
|
if(resids.length > 0 && typeof resids[0] == "object"){
|
|
71
70
|
resids = resids[0]
|
|
72
71
|
}
|
|
@@ -87,4 +86,4 @@
|
|
|
87
86
|
|
|
88
87
|
<style scoped>
|
|
89
88
|
|
|
90
|
-
</style>
|
|
89
|
+
</style>
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
|
|
43
43
|
<export-excel :data="$parent.$parent.getCondition"
|
|
44
44
|
:field="$parent.$parent.getfield"
|
|
45
|
-
sqlurl="
|
|
45
|
+
sqlurl="rs/logic/exportfile" sql-name="chargeQuery" template-name='收费查询导出'
|
|
46
46
|
:choose-col="true"></export-excel>
|
|
47
47
|
|
|
48
48
|
<print-data :model="$parent.model" :field="$parent.$parent.getfield"
|
|
@@ -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
|
|
|
@@ -175,7 +177,6 @@ let saveGen = function *(self) {
|
|
|
175
177
|
console.log('登录配置', self.config)
|
|
176
178
|
if (self.config.isMac) {
|
|
177
179
|
// 获取该登录人分公司下的mac配置
|
|
178
|
-
// todo v4
|
|
179
180
|
let getMacs = yield self.$resetpost('rs/sql/equipmentQuery', {data: {condition: `f_filialeids like '%${self.$login.f.f_orgids}%'`}}, {
|
|
180
181
|
resolveMsg: null,
|
|
181
182
|
rejectMsg: null
|
|
@@ -205,12 +206,15 @@ let saveGen = function *(self) {
|
|
|
205
206
|
}
|
|
206
207
|
}
|
|
207
208
|
console.log(self.$login.depPrompt)
|
|
208
|
-
//
|
|
209
|
-
|
|
210
|
-
if ((!self.otherLogin) && self.config.weakPassword && !(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/.test(self.model.password))) {
|
|
209
|
+
// 弱口令验证(默认开启,跳转过来的不进行验证)
|
|
210
|
+
if ((!self.otherLogin) && !isStrongPassword(self.model.password)) {
|
|
211
211
|
self.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm']).then((res) => {
|
|
212
212
|
self.modifyPwShow = true
|
|
213
213
|
})
|
|
214
|
+
} else if ((!self.otherLogin) && isPasswordModificationExpired(self.$login.f.f_last_modification_time)) {
|
|
215
|
+
self.$showMessage('登录系统: 您的密码已超过两个半月未修改,请修改密码后重新登录!!!', ['confirm']).then((res) => {
|
|
216
|
+
self.modifyPwShow = true
|
|
217
|
+
})
|
|
214
218
|
} else if ((!self.otherLogin) && self.$login.depPrompt) {
|
|
215
219
|
self.depPromptShow = true
|
|
216
220
|
if (self.$login.showDaiBan && self.$login.r.includes('展示预约信息')){
|
|
@@ -236,6 +240,8 @@ let saveGen = function *(self) {
|
|
|
236
240
|
|
|
237
241
|
} catch (ret) {
|
|
238
242
|
console.error('登录失败', ret)
|
|
243
|
+
self.$login.s = null
|
|
244
|
+
self.$login['v3-session-key'] = null
|
|
239
245
|
let msg
|
|
240
246
|
if (ret instanceof Error) {
|
|
241
247
|
msg = ret
|
|
@@ -262,19 +268,19 @@ export default {
|
|
|
262
268
|
this.titleShow = this.$appdata.getSingleValue('关于我们')
|
|
263
269
|
window.versionTime = window.versionTime ? window.versionTime : new Date().getTime()
|
|
264
270
|
this.vTime = this.format(new Date(window.versionTime));
|
|
265
|
-
try{
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
}catch(e){}
|
|
271
|
+
// try{
|
|
272
|
+
// let http = new HttpResetClass()
|
|
273
|
+
// let res = await http.load('POST', 'rs/sql/singleTable',
|
|
274
|
+
// {data:{
|
|
275
|
+
// tablename: 't_changedeclare',
|
|
276
|
+
// condition: ` f_type ='变更通知' `
|
|
277
|
+
// }
|
|
278
|
+
// }, {resolveMsg: null, rejectMsg: null})
|
|
279
|
+
// if(res.data.length>0){
|
|
280
|
+
// console.log("---------------获取通知",res.data[0].f_change_message)
|
|
281
|
+
// this.notice=res.data[0].f_change_message
|
|
282
|
+
// }
|
|
283
|
+
// }catch(e){}
|
|
278
284
|
|
|
279
285
|
this.loginother();
|
|
280
286
|
$('#login-button').click(function (event) {
|
|
@@ -283,10 +289,8 @@ export default {
|
|
|
283
289
|
})
|
|
284
290
|
if (window.location.search && window.location.search.indexOf('af_key') !== -1&& window.location.search.indexOf('af_n') !== -1) {
|
|
285
291
|
const subUrl = window.location.search.replace('?af_key=','').split('&af_n=')
|
|
286
|
-
console.log(subUrl)
|
|
287
292
|
this.model.ename = window.atob(subUrl[0])
|
|
288
293
|
this.model.password = window.atob(subUrl[1])
|
|
289
|
-
console.log('this.model.ename',this.model.ename)
|
|
290
294
|
this.otherLogin = true
|
|
291
295
|
this.confirm()
|
|
292
296
|
}else{
|
|
@@ -364,7 +368,7 @@ export default {
|
|
|
364
368
|
} else {
|
|
365
369
|
condition =` f_orderstate is null and (f_address in( select f_address from t_user_address where f_slice_area='柠条塔') or f_address like '%柠条塔%') `
|
|
366
370
|
}
|
|
367
|
-
await http.load('POST', '/
|
|
371
|
+
await http.load('POST', '/rs/sql/singleTable', {data: {
|
|
368
372
|
tablename:'t_order_center',
|
|
369
373
|
condition:condition
|
|
370
374
|
}}, {
|
|
@@ -440,7 +444,6 @@ export default {
|
|
|
440
444
|
if (this.config.distanceLogin) {
|
|
441
445
|
if (this.$login && this.$login.getUrlParames('name') ) {
|
|
442
446
|
let ename = this.$login.getUrlParames('name');
|
|
443
|
-
// todo v4
|
|
444
447
|
let logininfo = await this.$resetpost('rs/logic/getLoginData',{data:{ename:ename}},{resolveMsg: null, rejectMsg: null});
|
|
445
448
|
if(logininfo.data){
|
|
446
449
|
if(logininfo.data.ename && logininfo.data.password){
|
|
@@ -140,9 +140,11 @@
|
|
|
140
140
|
|
|
141
141
|
<script>
|
|
142
142
|
import co from 'co'
|
|
143
|
+
import { isStrongPassword } from '../../util/password-validation'
|
|
143
144
|
import $ from 'jquery'
|
|
144
145
|
import Vue from 'vue'
|
|
145
146
|
import {HttpResetClass} from 'vue-client'
|
|
147
|
+
import {isPasswordModificationExpired} from '../../components/Util'
|
|
146
148
|
|
|
147
149
|
let daibanJson = require('../../util/Daiban.json')
|
|
148
150
|
|
|
@@ -173,7 +175,6 @@ let saveGen = function *(self) {
|
|
|
173
175
|
console.log('登录配置', self.config)
|
|
174
176
|
if (self.config.isMac) {
|
|
175
177
|
// 获取该登录人分公司下的mac配置
|
|
176
|
-
// todo v4
|
|
177
178
|
let getMacs = yield self.$resetpost('rs/sql/equipmentQuery', {data: {condition: `f_filialeids like '%${self.$login.f.f_orgids}%'`}}, {
|
|
178
179
|
resolveMsg: null,
|
|
179
180
|
rejectMsg: null
|
|
@@ -203,12 +204,15 @@ let saveGen = function *(self) {
|
|
|
203
204
|
}
|
|
204
205
|
}
|
|
205
206
|
console.log(self.$login.depPrompt)
|
|
206
|
-
//
|
|
207
|
-
|
|
208
|
-
if ((!self.otherLogin) && self.config.weakPassword && !(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/.test(self.model.password))) {
|
|
207
|
+
// 弱口令验证(默认开启,跳转过来的不进行验证)
|
|
208
|
+
if ((!self.otherLogin) && !isStrongPassword(self.model.password)) {
|
|
209
209
|
self.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm']).then((res) => {
|
|
210
210
|
self.modifyPwShow = true
|
|
211
211
|
})
|
|
212
|
+
} else if ((!self.otherLogin) && isPasswordModificationExpired(self.$login.f.f_last_modification_time)) {
|
|
213
|
+
self.$showMessage('登录系统: 您的密码已超过两个半月未修改,请修改密码后重新登录!!!', ['confirm']).then((res) => {
|
|
214
|
+
self.modifyPwShow = true
|
|
215
|
+
})
|
|
212
216
|
} else if ((!self.otherLogin) && self.$login.depPrompt) {
|
|
213
217
|
self.depPromptShow = true
|
|
214
218
|
if (self.$login.showDaiBan && self.$login.r.includes('展示预约信息')){
|
|
@@ -234,6 +238,8 @@ let saveGen = function *(self) {
|
|
|
234
238
|
|
|
235
239
|
} catch (ret) {
|
|
236
240
|
console.error('登录失败', ret)
|
|
241
|
+
self.$login.s = null
|
|
242
|
+
self.$login['v3-session-key'] = null
|
|
237
243
|
let msg
|
|
238
244
|
if (ret instanceof Error) {
|
|
239
245
|
msg = ret
|
|
@@ -260,19 +266,19 @@ export default {
|
|
|
260
266
|
this.titleShow = this.$appdata.getSingleValue('关于我们')
|
|
261
267
|
window.versionTime = window.versionTime ? window.versionTime : new Date().getTime()
|
|
262
268
|
this.vTime = this.format(new Date(window.versionTime));
|
|
263
|
-
try{
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
}catch(e){}
|
|
269
|
+
// try{
|
|
270
|
+
// let http = new HttpResetClass()
|
|
271
|
+
// let res = await http.load('POST', 'rs/sql/singleTable',
|
|
272
|
+
// {data:{
|
|
273
|
+
// tablename: 't_changedeclare',
|
|
274
|
+
// condition: ` f_type ='变更通知' `
|
|
275
|
+
// }
|
|
276
|
+
// }, {resolveMsg: null, rejectMsg: null})
|
|
277
|
+
// if(res.data.length>0){
|
|
278
|
+
// console.log("---------------获取通知",res.data[0].f_change_message)
|
|
279
|
+
// this.notice=res.data[0].f_change_message
|
|
280
|
+
// }
|
|
281
|
+
// }catch(e){}
|
|
276
282
|
|
|
277
283
|
this.loginother();
|
|
278
284
|
$('#login-button').click(function (event) {
|
|
@@ -281,10 +287,8 @@ export default {
|
|
|
281
287
|
})
|
|
282
288
|
if (window.location.search && window.location.search.indexOf('af_key') !== -1&& window.location.search.indexOf('af_n') !== -1) {
|
|
283
289
|
const subUrl = window.location.search.replace('?af_key=','').split('&af_n=')
|
|
284
|
-
console.log(subUrl)
|
|
285
290
|
this.model.ename = window.atob(subUrl[0])
|
|
286
291
|
this.model.password = window.atob(subUrl[1])
|
|
287
|
-
console.log('this.model.ename',this.model.ename)
|
|
288
292
|
this.otherLogin = true
|
|
289
293
|
this.confirm()
|
|
290
294
|
}else{
|
|
@@ -362,7 +366,7 @@ export default {
|
|
|
362
366
|
} else {
|
|
363
367
|
condition =` f_orderstate is null and (f_address in( select f_address from t_user_address where f_slice_area='柠条塔') or f_address like '%柠条塔%') `
|
|
364
368
|
}
|
|
365
|
-
await http.load('POST', '/
|
|
369
|
+
await http.load('POST', '/rs/sql/singleTable', {data: {
|
|
366
370
|
tablename:'t_order_center',
|
|
367
371
|
condition:condition
|
|
368
372
|
}}, {
|
|
@@ -438,7 +442,6 @@ export default {
|
|
|
438
442
|
if (this.config.distanceLogin) {
|
|
439
443
|
if (this.$login && this.$login.getUrlParames('name') ) {
|
|
440
444
|
let ename = this.$login.getUrlParames('name');
|
|
441
|
-
// todo v4
|
|
442
445
|
let logininfo = await this.$resetpost('rs/logic/getLoginData',{data:{ename:ename}},{resolveMsg: null, rejectMsg: null});
|
|
443
446
|
if(logininfo.data){
|
|
444
447
|
if(logininfo.data.ename && logininfo.data.password){
|
|
@@ -146,9 +146,11 @@
|
|
|
146
146
|
|
|
147
147
|
<script>
|
|
148
148
|
import co from 'co'
|
|
149
|
+
import { isStrongPassword } from '../../util/password-validation'
|
|
149
150
|
import $ from 'jquery'
|
|
150
151
|
import Vue from 'vue'
|
|
151
152
|
import {HttpResetClass} from 'vue-client'
|
|
153
|
+
import {isPasswordModificationExpired} from '../../components/Util'
|
|
152
154
|
|
|
153
155
|
let daibanJson = require('../../util/Daiban.json')
|
|
154
156
|
|
|
@@ -179,7 +181,6 @@ let saveGen = function *(self) {
|
|
|
179
181
|
console.log('登录配置', self.config)
|
|
180
182
|
if (self.config.isMac) {
|
|
181
183
|
// 获取该登录人分公司下的mac配置
|
|
182
|
-
// todo v4
|
|
183
184
|
let getMacs = yield self.$resetpost('rs/sql/equipmentQuery', {data: {condition: `f_filialeids like '%${self.$login.f.f_orgids}%'`}}, {
|
|
184
185
|
resolveMsg: null,
|
|
185
186
|
rejectMsg: null
|
|
@@ -209,12 +210,15 @@ let saveGen = function *(self) {
|
|
|
209
210
|
}
|
|
210
211
|
}
|
|
211
212
|
console.log(self.$login.depPrompt)
|
|
212
|
-
//
|
|
213
|
-
|
|
214
|
-
if ((!self.otherLogin) && self.config.weakPassword && !(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/.test(self.model.password))) {
|
|
213
|
+
// 弱口令验证(默认开启,跳转过来的不进行验证)
|
|
214
|
+
if ((!self.otherLogin) && !isStrongPassword(self.model.password)) {
|
|
215
215
|
self.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm']).then((res) => {
|
|
216
216
|
self.modifyPwShow = true
|
|
217
217
|
})
|
|
218
|
+
} else if ((!self.otherLogin) && isPasswordModificationExpired(self.$login.f.f_last_modification_time)) {
|
|
219
|
+
self.$showMessage('登录系统: 您的密码已超过两个半月未修改,请修改密码后重新登录!!!', ['confirm']).then((res) => {
|
|
220
|
+
self.modifyPwShow = true
|
|
221
|
+
})
|
|
218
222
|
} else if ((!self.otherLogin) && self.$login.depPrompt) {
|
|
219
223
|
self.depPromptShow = true
|
|
220
224
|
if (self.$login.showDaiBan && self.$login.r.includes('展示预约信息')){
|
|
@@ -240,6 +244,8 @@ let saveGen = function *(self) {
|
|
|
240
244
|
|
|
241
245
|
} catch (ret) {
|
|
242
246
|
console.error('登录失败', ret)
|
|
247
|
+
self.$login.s = null
|
|
248
|
+
self.$login['v3-session-key'] = null
|
|
243
249
|
let msg
|
|
244
250
|
if (ret instanceof Error) {
|
|
245
251
|
msg = ret
|
|
@@ -264,19 +270,19 @@ export default {
|
|
|
264
270
|
title: '登录',
|
|
265
271
|
async ready () {
|
|
266
272
|
this.titleShow = true
|
|
267
|
-
try{
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
}catch(e){}
|
|
273
|
+
// try{
|
|
274
|
+
// let http = new HttpResetClass()
|
|
275
|
+
// let res = await http.load('POST', 'rs/sql/singleTable',
|
|
276
|
+
// {data:{
|
|
277
|
+
// tablename: 't_changedeclare',
|
|
278
|
+
// condition: ` f_type ='变更通知' `
|
|
279
|
+
// }
|
|
280
|
+
// }, {resolveMsg: null, rejectMsg: null})
|
|
281
|
+
// if(res.data.length>0){
|
|
282
|
+
// console.log("---------------获取通知",res.data[0].f_change_message)
|
|
283
|
+
// this.notice=res.data[0].f_change_message
|
|
284
|
+
// }
|
|
285
|
+
// }catch(e){}
|
|
280
286
|
|
|
281
287
|
this.loginother();
|
|
282
288
|
$('#login-button').click(function (event) {
|
|
@@ -285,10 +291,8 @@ export default {
|
|
|
285
291
|
})
|
|
286
292
|
if (window.location.search && window.location.search.indexOf('af_key') !== -1&& window.location.search.indexOf('af_n') !== -1) {
|
|
287
293
|
const subUrl = window.location.search.replace('?af_key=','').split('&af_n=')
|
|
288
|
-
console.log(subUrl)
|
|
289
294
|
this.model.ename = window.atob(subUrl[0])
|
|
290
295
|
this.model.password = window.atob(subUrl[1])
|
|
291
|
-
console.log('this.model.ename',this.model.ename)
|
|
292
296
|
this.otherLogin = true
|
|
293
297
|
this.confirm()
|
|
294
298
|
}else{
|
|
@@ -353,7 +357,7 @@ export default {
|
|
|
353
357
|
} else {
|
|
354
358
|
condition =` f_orderstate is null and (f_address in( select f_address from t_user_address where f_slice_area='柠条塔') or f_address like '%柠条塔%') `
|
|
355
359
|
}
|
|
356
|
-
await http.load('POST', '/
|
|
360
|
+
await http.load('POST', '/rs/sql/singleTable', {data: {
|
|
357
361
|
tablename:'t_order_center',
|
|
358
362
|
condition:condition
|
|
359
363
|
}}, {
|
|
@@ -429,7 +433,6 @@ export default {
|
|
|
429
433
|
if (this.config.distanceLogin) {
|
|
430
434
|
if (this.$login && this.$login.getUrlParames('name') ) {
|
|
431
435
|
let ename = this.$login.getUrlParames('name');
|
|
432
|
-
// todo v4
|
|
433
436
|
let logininfo = await this.$resetpost('rs/logic/getLoginData',{data:{ename:ename}},{resolveMsg: null, rejectMsg: null});
|
|
434
437
|
if(logininfo.data){
|
|
435
438
|
if(logininfo.data.ename && logininfo.data.password){
|