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.
Files changed (40) hide show
  1. package/package.json +1 -1
  2. package/src/components/Main.vue +17 -4
  3. package/src/components/equipment/PosList.vue +3 -2
  4. package/src/components/equipment/PosParamAdd.vue +3 -2
  5. package/src/components/materialManage/materialList.vue +1 -1
  6. package/src/components/parammanage/ParamPage.vue +1 -1
  7. package/src/components/parammanage/ParamPages.vue +2 -2
  8. package/src/components/parammanage/SinglePage.vue +1 -1
  9. package/src/components/parammanage/SinglePages.vue +2 -2
  10. package/src/components/server/AddChangeMsg.vue +3 -4
  11. package/src/components/server/ChangeDeclare.vue +9 -2
  12. package/src/components/server/Login.vue +15 -11
  13. package/src/components/server/ModifyPw.vue +105 -34
  14. package/src/components/server/PcdBuildingSelect.vue +53 -8
  15. package/src/filiale/baole/Login.vue +15 -11
  16. package/src/filiale/chengtou/Login.vue +15 -11
  17. package/src/filiale/dongguan/Login.vue +15 -11
  18. package/src/filiale/dongguan/Main.vue +9 -2
  19. package/src/filiale/furuike/Login.vue +23 -18
  20. package/src/filiale/furuike/Main.vue +16 -6
  21. package/src/filiale/gehua/Main.vue +9 -2
  22. package/src/filiale/konggang/Login.vue +21 -17
  23. package/src/filiale/qianneng/Login.vue +21 -17
  24. package/src/filiale/qianneng/Main.vue +9 -2
  25. package/src/filiale/qianneng/ModifyPw.vue +105 -31
  26. package/src/filiale/rizhao/Login.vue +2 -1
  27. package/src/filiale/rizhao/Main.vue +5 -1
  28. package/src/filiale/shiquan/Login.vue +21 -17
  29. package/src/filiale/tianyi/Login.vue +15 -11
  30. package/src/filiale/tongchuan/Login.vue +15 -11
  31. package/src/filiale/tongchuan/Main.vue +47 -22
  32. package/src/filiale/weinan/Main.vue +17 -4
  33. package/src/filiale/wenxi/Login.vue +21 -17
  34. package/src/filiale/wenxi/Main.vue +9 -2
  35. package/src/filiale/wuhai/Main.vue +18 -4
  36. package/src/filiale/yuchuan/Login.vue +15 -11
  37. package/src/filiale/yuchuan/Main.vue +9 -2
  38. package/src/filiale/zhoukou/Main.vue +9 -2
  39. package/src/plugins/validation.js +12 -8
  40. package/src/util/password-validation.js +185 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "system-clients",
3
- "version": "3.3.3-v3-test1",
3
+ "version": "3.3.4-v3",
4
4
  "description": "系统基础框架",
5
5
  "main": "src/index.js",
6
6
  "directories": {
@@ -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 result = await self.$resetpost('rs/sql/safeWatermarkQuery', {}, {resolveMsg: null, rejectMsg: null});
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/safeOrderCenterQueryByOrgStr', {f_orgstr: this.$login.f.orgid}, {
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/safeGasbrandOrgidQueryByOrgId', {f_using_orgid: this.$login.f.orgid}, {
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/safeGasbrandQueryByIds', {ids: this.gasbrandIdData.join(',')}, {
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/safePoshistoryByTerminalNumber', 30),
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
- this.model2.search({}, {f_terminal_number: row.f_terminal_number})
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/safeEquipmentParamByParamId',
142
+ load.load("POST", 'rs/sql/singleTable',
143
143
  {
144
144
  data: {
145
- f_param_id: param_id
145
+ tablename: ' t_equipment_param ',
146
+ condition: ` f_param_id = ${param_id} `
146
147
  }
147
148
  },
148
149
  {resolveMsg: null, rejectMsg: null})
@@ -175,7 +175,7 @@
175
175
  data(){
176
176
  //配置后台systemModule,sql
177
177
  return{
178
- model: new PagedList('rs/sql/safeMaterialInfoSingleWithCondition', 50),
178
+ model: new PagedList('rs/sql/singleTable_OrderBy', 50),
179
179
  row: null,
180
180
  searchshow: true,
181
181
  obj: {
@@ -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/safeParamvalueDelete', {id: row.id}).then((res) => {
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/safeParameterQuery').then((res) => {
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/safeParamvalueDelete', {id: row.id}).then((res) => {
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/safeSinglevalueDelete', {id: row.id}).then((res) => {
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/safeSinglevalueQuery', {data: {condition: '1=1'}}).then((res) => {
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/safeSinglevalueDelete', {id: row.id}).then((res) => {
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
- f_change_name: this.model.f_change_name,
52
- f_change_message: this.model.f_change_message,
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/safeChangedeclareSave', param)
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
- this.$info(`加载数据中...`)
26
- this.$refs.pv.load('rs/sql/safeChangedeclareQuery',{data:{condition:'f_change_message is not null'}}).then((a) => {
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) && !(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?!.*(123|321|abc|cba))[a-zA-Z\d!@#$%^&*()_+-=<>?]{8,16}$/.test(self.model.password))) {
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 res
351
+ let condition = ''
351
352
  if(this.$login.f.deps!=='柠条塔'){
352
- res = await http.load('POST', '/rs/sql/safeOrderCenterQuery', {f_orgid: this.$login.f.orgid}, {
353
- resolveMsg: null,
354
- rejectMsg: null
355
- })
353
+ condition = ` (f_orderstate != '预约成功' and f_orderstate != '预约失败' ) or f_orderstate is null `
356
354
  } else {
357
- res = await http.load('POST', '/rs/sql/safeOrderCenterQueryBySliceArea', {f_slice_area: '柠条塔'}, {
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
- let OrderDaiBan = {}
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 backdrop="false">
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>&times;</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-4 col-sm-offset-1 control-label">原始密码:&nbsp;&nbsp;</label>
14
- <div class="col-sm-4">
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.minlength)&& !$v.newpassword.required && !$v.newpassword.chinesePassword,
22
- 'has-success': !$v.newpassword.required && !$v.newpassword.numbersAndLetter8to16&&!$v.newpassword.minlength && !$v.newpassword.chinesePassword}">
23
- <label for="newpassword" class="col-sm-4 col-sm-offset-1 control-label">新的密码:&nbsp;&nbsp;</label>
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: 6,chinesePassword: true}'>
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
- <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位数字与大小字母外加特殊字符的组合,并且不能出现类似'123','abc'等连贯数字或者字母</span>
29
- <span v-if="$v.newpassword.chinesePassword">密码不能包含中文</span>
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-4 col-sm-offset-1 control-label">确认密码:&nbsp;&nbsp;</label>
36
- <div class="col-sm-4">
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)">两次密码不一致 !!</span>
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 type="button" class="btn btn-success" @click='confirm' :disabled="!$v.valid">确认</button>
47
- <button type="button" class="btn btn-default" @click='rest'>取消</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: #FCFEEE;
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
- .modifystyle span{
123
- color: red;
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/safePcdQuery', {}, {resolveMsg: null, rejectMsg: '获取省市区出错!'})
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/safeStreetQueryByFiliale', {f_filialeid: self.$login.f.orgid}, {resolveMsg: null, rejectMsg: '获取街道出错!'})
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/safeAreaQueryByFiliale', {f_filialeid: self.$login.f.orgid}, {resolveMsg: null, rejectMsg: '获取小区出错!'})
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
- let street = await this.$resetpost('rs/sql/safeStreetQueryByFiliale', {f_filialeid: this.$login.f.orgid}, {resolveMsg: null, rejectMsg: '获取街道出错'})
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
- let area = await this.$resetpost('rs/sql/safeAreaQueryByStreet', {f_street: this.model.f_street}, {resolveMsg: null, rejectMsg: '获取小区出错'})
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
- let build
189
+ var condition=''
153
190
  if(this.show.areaShow){
154
- build = await this.$resetpost('rs/sql/safeBuildingQueryByArea', {f_residential_area: this.model.f_residential_area}, {resolveMsg: null, rejectMsg: '获取楼栋出错'})
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
- build = await this.$resetpost('rs/sql/safeBuildingQueryByFiliale', {f_filialeid: this.$login.f.orgid}, {resolveMsg: null, rejectMsg: '获取楼栋出错'})
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) && !(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/.test(self.model.password))) {
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 res
365
+ let condition = ''
365
366
  if(this.$login.f.deps!=='柠条塔'){
366
- res = await http.load('POST', '/rs/sql/safeOrderCenterQuery', {}, {
367
- resolveMsg: null,
368
- rejectMsg: null
369
- })
367
+ condition = ` (f_orderstate != '预约成功' and f_orderstate != '预约失败' ) or f_orderstate is null `
370
368
  } else {
371
- res = await http.load('POST', '/rs/sql/safeOrderCenterQueryBySliceArea', {f_slice_area: '柠条塔'}, {
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
- let OrderDaiBan = {}
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
  // 是否全局开启待办通知