system-clients 3.3.3-v3-test1 → 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.json +1 -1
- package/src/components/Main.vue +17 -4
- package/src/components/equipment/PosList.vue +3 -2
- package/src/components/equipment/PosParamAdd.vue +3 -2
- package/src/components/materialManage/materialList.vue +1 -1
- package/src/components/parammanage/ParamPage.vue +1 -1
- package/src/components/parammanage/ParamPages.vue +2 -2
- package/src/components/parammanage/SinglePage.vue +1 -1
- package/src/components/parammanage/SinglePages.vue +2 -2
- package/src/components/server/AddChangeMsg.vue +3 -4
- package/src/components/server/ChangeDeclare.vue +9 -2
- package/src/components/server/Login.vue +15 -11
- package/src/components/server/ModifyPw.vue +105 -34
- package/src/components/server/PcdBuildingSelect.vue +53 -8
- package/src/filiale/baole/Login.vue +15 -11
- package/src/filiale/chengtou/Login.vue +15 -11
- package/src/filiale/dongguan/Login.vue +15 -11
- package/src/filiale/dongguan/Main.vue +9 -2
- package/src/filiale/furuike/Login.vue +23 -18
- package/src/filiale/furuike/Main.vue +16 -6
- package/src/filiale/gehua/Main.vue +9 -2
- package/src/filiale/konggang/Login.vue +21 -17
- package/src/filiale/qianneng/Login.vue +21 -17
- package/src/filiale/qianneng/Main.vue +9 -2
- package/src/filiale/qianneng/ModifyPw.vue +105 -31
- package/src/filiale/rizhao/Login.vue +2 -1
- package/src/filiale/rizhao/Main.vue +5 -1
- package/src/filiale/shiquan/Login.vue +21 -17
- package/src/filiale/tianyi/Login.vue +15 -11
- package/src/filiale/tongchuan/Login.vue +15 -11
- package/src/filiale/tongchuan/Main.vue +47 -22
- package/src/filiale/weinan/Main.vue +17 -4
- package/src/filiale/wenxi/Login.vue +21 -17
- package/src/filiale/wenxi/Main.vue +9 -2
- package/src/filiale/wuhai/Main.vue +18 -4
- package/src/filiale/yuchuan/Login.vue +15 -11
- package/src/filiale/yuchuan/Main.vue +9 -2
- package/src/filiale/zhoukou/Main.vue +9 -2
- package/src/plugins/validation.js +12 -8
- package/src/util/password-validation.js +185 -0
package/package.json
CHANGED
package/src/components/Main.vue
CHANGED
|
@@ -185,7 +185,11 @@ import co from 'co'
|
|
|
185
185
|
import {HttpResetClass} from "vue-client";
|
|
186
186
|
|
|
187
187
|
let getwartermakr = async function (self) {
|
|
188
|
-
let
|
|
188
|
+
let param = {
|
|
189
|
+
tablename: 't_singlevalue',
|
|
190
|
+
condition: " 1=1 and name=\'水印内容\'"
|
|
191
|
+
};
|
|
192
|
+
let result = await self.$resetpost('rs/sql/saleSingleTable', {data: param}, {resolveMsg: null, rejectMsg: null});
|
|
189
193
|
if (result && result.data.length > 0) {
|
|
190
194
|
self.showwatermakeflag = true;
|
|
191
195
|
createWaterMark(`${result.data[0].value}${self.$login.f.ename}`);
|
|
@@ -393,7 +397,10 @@ let createWaterMark = function (userName) {
|
|
|
393
397
|
this.OrderDaiBan = ''
|
|
394
398
|
this.AppDaiBan = ''
|
|
395
399
|
let http = new HttpResetClass()
|
|
396
|
-
await http.load('POST', '/rs/sql/
|
|
400
|
+
await http.load('POST', '/rs/sql/singleTable', {data: {
|
|
401
|
+
tablename:'t_order_center',
|
|
402
|
+
condition:` (f_orderstate != '预约成功' and f_orgstr ='${this.$login.f.orgid}' and f_orderstate != '预约失败' ) or f_orderstate is null`
|
|
403
|
+
}}, {
|
|
397
404
|
resolveMsg: null,
|
|
398
405
|
rejectMsg: null
|
|
399
406
|
}).then((res) => {
|
|
@@ -438,7 +445,10 @@ let createWaterMark = function (userName) {
|
|
|
438
445
|
async getExpireDate(){
|
|
439
446
|
// 获取分公司的表品牌id
|
|
440
447
|
let http = new HttpResetClass()
|
|
441
|
-
await http.load('POST', '/rs/sql/
|
|
448
|
+
await http.load('POST', '/rs/sql/singleTable', {data: {
|
|
449
|
+
tablename:'t_gasbrand_orgid',
|
|
450
|
+
condition:`f_using_orgid ='${this.$login.f.orgid}'`
|
|
451
|
+
}}, {
|
|
442
452
|
resolveMsg: null,
|
|
443
453
|
rejectMsg: null
|
|
444
454
|
}).then((res) => {
|
|
@@ -449,7 +459,10 @@ let createWaterMark = function (userName) {
|
|
|
449
459
|
}
|
|
450
460
|
if (this.gasbrandIdData.length > 0) {
|
|
451
461
|
// 获取卡表到期时间
|
|
452
|
-
http.load('POST', '/rs/sql/
|
|
462
|
+
http.load('POST', '/rs/sql/singleTable', {data: {
|
|
463
|
+
tablename:'t_gasbrand',
|
|
464
|
+
condition:`id in (${this.gasbrandIdData}) and f_meter_type like '%卡表%'`
|
|
465
|
+
}}, {
|
|
453
466
|
resolveMsg: null,
|
|
454
467
|
rejectMsg: null
|
|
455
468
|
}).then((res) => {
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
return {
|
|
167
167
|
source: `tool.getFullTree(this.getRights().where(row.getType() != $zone$).where(row.getType() != $role$))`,
|
|
168
168
|
model: new PagedList('rs/sql/equipmentQuery', 20),
|
|
169
|
-
model2: new PagedList('rs/sql/
|
|
169
|
+
model2: new PagedList('rs/sql/singleTable', 30, {tablename: '`t_poshistory`'}),
|
|
170
170
|
curorgid: [this.f_filialeid],
|
|
171
171
|
f_orgid: '',
|
|
172
172
|
f_filialeids: '',
|
|
@@ -248,7 +248,8 @@
|
|
|
248
248
|
},
|
|
249
249
|
abcd (row) {
|
|
250
250
|
console.log("chakan",row)
|
|
251
|
-
|
|
251
|
+
let condition = `f_terminal_number = '${row.f_terminal_number}' order by id desc`
|
|
252
|
+
this.model2.search(condition)
|
|
252
253
|
this.infoshow = true
|
|
253
254
|
},
|
|
254
255
|
search () {
|
|
@@ -139,10 +139,11 @@ export default {
|
|
|
139
139
|
async edit(param_id) {
|
|
140
140
|
this.param_id = param_id
|
|
141
141
|
let load = new HttpResetClass()
|
|
142
|
-
load.load("POST", 'rs/sql/
|
|
142
|
+
load.load("POST", 'rs/sql/singleTable',
|
|
143
143
|
{
|
|
144
144
|
data: {
|
|
145
|
-
|
|
145
|
+
tablename: ' t_equipment_param ',
|
|
146
|
+
condition: ` f_param_id = ${param_id} `
|
|
146
147
|
}
|
|
147
148
|
},
|
|
148
149
|
{resolveMsg: null, rejectMsg: null})
|
|
@@ -267,7 +267,7 @@
|
|
|
267
267
|
} else if (type === 't_paramvalue') {
|
|
268
268
|
this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
|
|
269
269
|
if (res === 'confirm') {
|
|
270
|
-
this.$resetpost('rs/logic/
|
|
270
|
+
this.$resetpost('rs/logic/deleteValue', {tablename: 't_paramvalue', id: row.id}).then((res) => {
|
|
271
271
|
this.getParamValue(this.selectItem)
|
|
272
272
|
})
|
|
273
273
|
}
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
methods: {
|
|
114
114
|
// 加载全部参数
|
|
115
115
|
loadParams () {
|
|
116
|
-
this.$refs.paramsLoad.load('rs/sql/
|
|
116
|
+
this.$refs.paramsLoad.load('rs/sql/hql/simpleHql', {data: {tablename: 't_parameter'}}).then((res) => {
|
|
117
117
|
this.model.rows = this.allParams = res.data
|
|
118
118
|
})
|
|
119
119
|
},
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
} else if (row.EntityType === 't_paramvalue') {
|
|
160
160
|
this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
|
|
161
161
|
if (res === 'confirm') {
|
|
162
|
-
this.$refs.selectsLoad.load('rs/logic/
|
|
162
|
+
this.$refs.selectsLoad.load('rs/logic/deleteValue', {tablename: 't_paramvalue', id: row.id}).then((res) => {
|
|
163
163
|
this.params.rows.splice(index, 1)
|
|
164
164
|
})
|
|
165
165
|
}
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
deleteItem (row) {
|
|
184
184
|
this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
|
|
185
185
|
if (res === 'confirm') {
|
|
186
|
-
this.$resetpost('rs/logic/
|
|
186
|
+
this.$resetpost('rs/logic/deleteValue', {tablename: 't_singlevalue', id: row.id}).then((res) => {
|
|
187
187
|
this.filter_query(this.conditionModel.paramName, this.conditionModel.f_cond_orgid)
|
|
188
188
|
})
|
|
189
189
|
}
|
|
@@ -95,14 +95,14 @@
|
|
|
95
95
|
},
|
|
96
96
|
methods: {
|
|
97
97
|
loadSingle () {
|
|
98
|
-
this.$refs.singleLoad.load('rs/sql/
|
|
98
|
+
this.$refs.singleLoad.load('rs/sql/singleTable', {data: {tablename: 't_singlevalue', condition: '1=1'}}).then((res) => {
|
|
99
99
|
this.model.rows = this.params = res.data
|
|
100
100
|
})
|
|
101
101
|
},
|
|
102
102
|
deleteItem (row) {
|
|
103
103
|
this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
|
|
104
104
|
if (res === 'confirm') {
|
|
105
|
-
this.$refs.singleLoad.load('rs/logic/
|
|
105
|
+
this.$refs.singleLoad.load('rs/logic/deleteValue', {tablename: 't_singlevalue', id: row.id}).then((res) => {
|
|
106
106
|
this.loadSingle()
|
|
107
107
|
})
|
|
108
108
|
}
|
|
@@ -48,11 +48,10 @@ export default {
|
|
|
48
48
|
},
|
|
49
49
|
confirm () {
|
|
50
50
|
let param = {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
f_change_date: new Date().format('yyyy-MM-dd HH:mm:ss')
|
|
51
|
+
tablename: 't_changedeclare',
|
|
52
|
+
parameters: this.model
|
|
54
53
|
}
|
|
55
|
-
this.$post('rs/logic/
|
|
54
|
+
this.$post('rs/logic/save', {data: param})
|
|
56
55
|
.then(() => {
|
|
57
56
|
this.model = {}
|
|
58
57
|
this.$emit('toggle')
|
|
@@ -22,8 +22,15 @@ export default {
|
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
ready () {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
let sql = 'singleTable_OrderBy'
|
|
26
|
+
let condition = {
|
|
27
|
+
items: 'id,f_change_name,f_change_message,f_change_date',
|
|
28
|
+
tablename: 't_changedeclare',
|
|
29
|
+
condition: ' 1=1',
|
|
30
|
+
orderitem: 'f_change_date DESC'
|
|
31
|
+
}
|
|
32
|
+
this.$info(`加载数据中..., sql:${sql}`)
|
|
33
|
+
this.$refs.pv.load('rs/sql/singleTable_OrderBy', {data: condition}).then((a) => {
|
|
27
34
|
this.$info(`成功获取到数据!, data:${JSON.stringify(a.data)}`)
|
|
28
35
|
this.model = a.data
|
|
29
36
|
}).catch((error) => {
|
|
@@ -146,6 +146,7 @@ import $ from 'jquery'
|
|
|
146
146
|
import Vue from 'vue'
|
|
147
147
|
import {HttpResetClass} from 'vue-client'
|
|
148
148
|
import {isPasswordModificationExpired} from '../Util'
|
|
149
|
+
import { isStrongPassword } from '../../util/password-validation'
|
|
149
150
|
|
|
150
151
|
let daibanJson = require('../../util/Daiban.json')
|
|
151
152
|
|
|
@@ -193,7 +194,7 @@ let saveGen = function *(self) {
|
|
|
193
194
|
}
|
|
194
195
|
console.log(self.$login.depPrompt)
|
|
195
196
|
// 弱口令验证(默认开启,跳转过来的不进行验证)
|
|
196
|
-
if ((!self.otherLogin) && !(
|
|
197
|
+
if ((!self.otherLogin) && !isStrongPassword(self.model.password)) {
|
|
197
198
|
self.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm']).then((res) => {
|
|
198
199
|
self.modifyPwShow = true
|
|
199
200
|
})
|
|
@@ -347,20 +348,21 @@ export default {
|
|
|
347
348
|
},
|
|
348
349
|
async getDaiBan(){
|
|
349
350
|
let http = new HttpResetClass()
|
|
350
|
-
let
|
|
351
|
+
let condition = ''
|
|
351
352
|
if(this.$login.f.deps!=='柠条塔'){
|
|
352
|
-
|
|
353
|
-
resolveMsg: null,
|
|
354
|
-
rejectMsg: null
|
|
355
|
-
})
|
|
353
|
+
condition = ` (f_orderstate != '预约成功' and f_orderstate != '预约失败' ) or f_orderstate is null `
|
|
356
354
|
} else {
|
|
357
|
-
|
|
355
|
+
condition =` f_orderstate is null and (f_address in( select f_address from t_user_address where f_slice_area='柠条塔') or f_address like '%柠条塔%') `
|
|
356
|
+
}
|
|
357
|
+
await http.load('POST', '/rs/sql/singleTable', {data: {
|
|
358
|
+
tablename:'t_order_center',
|
|
359
|
+
condition:condition
|
|
360
|
+
}}, {
|
|
358
361
|
resolveMsg: null,
|
|
359
362
|
rejectMsg: null
|
|
360
|
-
})
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
res.data.forEach(item=>{
|
|
363
|
+
}).then((res) => {
|
|
364
|
+
let OrderDaiBan = {}
|
|
365
|
+
res.data.forEach(item=>{
|
|
364
366
|
OrderDaiBan[item.f_ordertype] = OrderDaiBan[item.f_ordertype] || []
|
|
365
367
|
OrderDaiBan[item.f_ordertype].push(item)
|
|
366
368
|
})
|
|
@@ -368,6 +370,7 @@ export default {
|
|
|
368
370
|
if (res.data.length> 0){
|
|
369
371
|
this.OrderDaiBan += `其中 ${Object.keys(OrderDaiBan).map(key=>`${key}:${OrderDaiBan[key].length}条`).join(', ')}`
|
|
370
372
|
}
|
|
373
|
+
})
|
|
371
374
|
let data = {
|
|
372
375
|
condition: '1 = 1',
|
|
373
376
|
data: {
|
|
@@ -389,6 +392,7 @@ export default {
|
|
|
389
392
|
this.AppDaiBan += `其中 ${Object.keys(AppDaiBan).map(key=>`${key}:${AppDaiBan[key].length}条`).join(', ')}`
|
|
390
393
|
}
|
|
391
394
|
})
|
|
395
|
+
|
|
392
396
|
},
|
|
393
397
|
async getDaiBanA(){
|
|
394
398
|
// 是否全局开启待办通知
|
|
@@ -1,72 +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
67
|
let res = yield self.$resetpost('/rs/user/modifypwd', {data: self.deliver }, {resolveMsg: null,rejectMsg: null})
|
|
66
68
|
self.$login.f.password = self.deliver.newpassword
|
|
67
69
|
if (res.data) {
|
|
68
|
-
console.log("修改密码返回:" , res.data)
|
|
69
|
-
// 兼容旧版ldao,旧版不返回code
|
|
70
70
|
if (res.data.code === 200) {
|
|
71
71
|
self.deliver.password = ''
|
|
72
72
|
self.deliver.newpassword = ''
|
|
@@ -74,7 +74,6 @@
|
|
|
74
74
|
self.show = false
|
|
75
75
|
self.$showAlert("修改密码成功", 'success', 2000)
|
|
76
76
|
} else {
|
|
77
|
-
// 兼容旧版ldao,旧版不返回code
|
|
78
77
|
self.deliver.password = ''
|
|
79
78
|
self.deliver.newpassword = ''
|
|
80
79
|
self.deliver.affirmpassword = ''
|
|
@@ -98,7 +97,13 @@
|
|
|
98
97
|
newpassword: '',
|
|
99
98
|
affirmpassword: ''
|
|
100
99
|
},
|
|
101
|
-
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)
|
|
102
107
|
}
|
|
103
108
|
},
|
|
104
109
|
props: ['show'],
|
|
@@ -115,11 +120,77 @@
|
|
|
115
120
|
}
|
|
116
121
|
</script>
|
|
117
122
|
<style>
|
|
118
|
-
/*修改密码body界面样式*/
|
|
119
123
|
.modifystyle {
|
|
120
|
-
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;
|
|
121
152
|
}
|
|
122
|
-
|
|
123
|
-
|
|
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;
|
|
124
195
|
}
|
|
125
196
|
</style>
|
|
@@ -66,20 +66,41 @@
|
|
|
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', 'rs/sql/
|
|
69
|
+
var pcd = await HttpReset.load('POST', 'rs/sql/singleTable_OrderBy', {
|
|
70
|
+
data: {
|
|
71
|
+
items: 'f_pcd',
|
|
72
|
+
tablename: 't_pcd',
|
|
73
|
+
condition: `f_pcd is not null group by f_pcd`,
|
|
74
|
+
orderitem: 'f_pcd'
|
|
75
|
+
}
|
|
76
|
+
}, {resolveMsg: null, rejectMsg: '获取省市区出错!'})
|
|
70
77
|
for(var i=0;i<pcd.data.length;i++){
|
|
71
78
|
self.arrays.pcd.push({label:pcd.data[i].f_pcd,value:pcd.data[i].f_pcd})
|
|
72
79
|
}
|
|
73
80
|
}else if(self.show.streetShow){
|
|
74
81
|
console.log("------------查街道")
|
|
75
82
|
let HttpReset = new HttpResetClass()
|
|
76
|
-
var street = await HttpReset.load('POST', 'rs/sql/
|
|
83
|
+
var street = await HttpReset.load('POST', 'rs/sql/singleTable_OrderBy', {
|
|
84
|
+
data: {
|
|
85
|
+
items: 'f_street',
|
|
86
|
+
tablename: 't_street',
|
|
87
|
+
condition: `f_filialeid = '${self.$login.f.orgid}' and f_street is not null group by f_street`,
|
|
88
|
+
orderitem: 'f_street'
|
|
89
|
+
}
|
|
90
|
+
}, {resolveMsg: null, rejectMsg: '获取街道出错!'})
|
|
77
91
|
for(var i=0;i<street.data.length;i++){
|
|
78
92
|
self.arrays.street.push({label:street.data[i].f_street,value:street.data[i].f_street})
|
|
79
93
|
}
|
|
80
94
|
}else if(self.show.areaShow){
|
|
81
95
|
let HttpReset = new HttpResetClass()
|
|
82
|
-
var area = await HttpReset.load('POST', 'rs/sql/
|
|
96
|
+
var area = await HttpReset.load('POST', 'rs/sql/singleTable_OrderBy', {
|
|
97
|
+
data: {
|
|
98
|
+
items: 'f_residential_area',
|
|
99
|
+
tablename: 't_area',
|
|
100
|
+
condition: `f_filialeid = '${self.$login.f.orgid}' and f_residential_area is not null group by f_residential_area`,
|
|
101
|
+
orderitem: 'f_residential_area'
|
|
102
|
+
}
|
|
103
|
+
}, {resolveMsg: null, rejectMsg: '获取小区出错!'})
|
|
83
104
|
for(var i=0;i<area.data.length;i++){
|
|
84
105
|
self.arrays.area.push({label:area.data[i].f_residential_area,value:area.data[i].f_residential_area})
|
|
85
106
|
}
|
|
@@ -133,7 +154,15 @@
|
|
|
133
154
|
methods:{
|
|
134
155
|
async pcdChange(){
|
|
135
156
|
this.arrays.street=[{label:'全部',value:''}]
|
|
136
|
-
|
|
157
|
+
var condition = `f_filialeid = '${this.$login.f.orgid}' and f_street is not null group by f_street`
|
|
158
|
+
let street = await this.$resetpost('rs/sql/singleTable_OrderBy', {
|
|
159
|
+
data: {
|
|
160
|
+
items: 'f_street',
|
|
161
|
+
tablename: 't_street',
|
|
162
|
+
condition: condition,
|
|
163
|
+
orderitem: 'f_street'
|
|
164
|
+
}
|
|
165
|
+
}, {resolveMsg: null, rejectMsg: '获取街道出错'})
|
|
137
166
|
for(var i=0;i<street.data.length;i++){
|
|
138
167
|
this.arrays.street.push({label:street.data[i].f_street,value:street.data[i].f_street})
|
|
139
168
|
}
|
|
@@ -141,7 +170,15 @@
|
|
|
141
170
|
},
|
|
142
171
|
async streetChange(){
|
|
143
172
|
this.arrays.area=[{label:'全部',value:''}]
|
|
144
|
-
|
|
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`
|
|
174
|
+
let area = await this.$resetpost('rs/sql/singleTable_OrderBy', {
|
|
175
|
+
data: {
|
|
176
|
+
items: 'f_residential_area',
|
|
177
|
+
tablename: 't_area',
|
|
178
|
+
condition: condition,
|
|
179
|
+
orderitem: 'f_residential_area'
|
|
180
|
+
}
|
|
181
|
+
}, {resolveMsg: null, rejectMsg: '获取小区出错'})
|
|
145
182
|
for(var i=0;i<area.data.length;i++){
|
|
146
183
|
this.arrays.area.push({label:area.data[i].f_residential_area,value:area.data[i].f_residential_area})
|
|
147
184
|
}
|
|
@@ -149,12 +186,20 @@
|
|
|
149
186
|
},
|
|
150
187
|
async areaChange(){
|
|
151
188
|
this.building = [{label:'全部',value:''}]
|
|
152
|
-
|
|
189
|
+
var condition=''
|
|
153
190
|
if(this.show.areaShow){
|
|
154
|
-
|
|
191
|
+
condition = `f_residential_area = '${this.model.f_residential_area?this.model.f_residential_area:null}' and f_building is not null group by f_building`
|
|
155
192
|
}else{
|
|
156
|
-
|
|
193
|
+
condition = `f_filialeid = '${this.$login.f.orgid}' and f_building is not null group by f_building`
|
|
157
194
|
}
|
|
195
|
+
let build = await this.$resetpost('rs/sql/singleTable_OrderBy', {
|
|
196
|
+
data: {
|
|
197
|
+
items: 'f_building',
|
|
198
|
+
tablename: 't_user_address',
|
|
199
|
+
condition: condition,
|
|
200
|
+
orderitem: 'f_building'
|
|
201
|
+
}
|
|
202
|
+
}, {resolveMsg: null, rejectMsg: '获取楼栋出错'})
|
|
158
203
|
for(var i=0;i<build.data.length;i++){
|
|
159
204
|
this.arrays.building.push({label:build.data[i].f_building,value:build.data[i].f_building})
|
|
160
205
|
}
|
|
@@ -142,6 +142,7 @@
|
|
|
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'
|
|
@@ -206,7 +207,7 @@ let saveGen = function *(self) {
|
|
|
206
207
|
}
|
|
207
208
|
console.log(self.$login.depPrompt)
|
|
208
209
|
// 弱口令验证(默认开启,跳转过来的不进行验证)
|
|
209
|
-
if ((!self.otherLogin) && !(
|
|
210
|
+
if ((!self.otherLogin) && !isStrongPassword(self.model.password)) {
|
|
210
211
|
self.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm']).then((res) => {
|
|
211
212
|
self.modifyPwShow = true
|
|
212
213
|
})
|
|
@@ -361,20 +362,21 @@ export default {
|
|
|
361
362
|
},
|
|
362
363
|
async getDaiBan(){
|
|
363
364
|
let http = new HttpResetClass()
|
|
364
|
-
let
|
|
365
|
+
let condition = ''
|
|
365
366
|
if(this.$login.f.deps!=='柠条塔'){
|
|
366
|
-
|
|
367
|
-
resolveMsg: null,
|
|
368
|
-
rejectMsg: null
|
|
369
|
-
})
|
|
367
|
+
condition = ` (f_orderstate != '预约成功' and f_orderstate != '预约失败' ) or f_orderstate is null `
|
|
370
368
|
} else {
|
|
371
|
-
|
|
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 '%柠条塔%') `
|
|
370
|
+
}
|
|
371
|
+
await http.load('POST', '/rs/sql/singleTable', {data: {
|
|
372
|
+
tablename:'t_order_center',
|
|
373
|
+
condition:condition
|
|
374
|
+
}}, {
|
|
372
375
|
resolveMsg: null,
|
|
373
376
|
rejectMsg: null
|
|
374
|
-
})
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
res.data.forEach(item=>{
|
|
377
|
+
}).then((res) => {
|
|
378
|
+
let OrderDaiBan = {}
|
|
379
|
+
res.data.forEach(item=>{
|
|
378
380
|
OrderDaiBan[item.f_ordertype] = OrderDaiBan[item.f_ordertype] || []
|
|
379
381
|
OrderDaiBan[item.f_ordertype].push(item)
|
|
380
382
|
})
|
|
@@ -382,6 +384,7 @@ export default {
|
|
|
382
384
|
if (res.data.length> 0){
|
|
383
385
|
this.OrderDaiBan += `其中 ${Object.keys(OrderDaiBan).map(key=>`${key}:${OrderDaiBan[key].length}条`).join(', ')}`
|
|
384
386
|
}
|
|
387
|
+
})
|
|
385
388
|
let data = {
|
|
386
389
|
condition: '1 = 1',
|
|
387
390
|
data: {
|
|
@@ -403,6 +406,7 @@ export default {
|
|
|
403
406
|
this.AppDaiBan += `其中 ${Object.keys(AppDaiBan).map(key=>`${key}:${AppDaiBan[key].length}条`).join(', ')}`
|
|
404
407
|
}
|
|
405
408
|
})
|
|
409
|
+
|
|
406
410
|
},
|
|
407
411
|
async getDaiBanA(){
|
|
408
412
|
// 是否全局开启待办通知
|