system-phone 1.2.141 → 1.3.1-zk
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/AttendManage.vue +420 -420
- package/src/components/ModifyPassWord.vue +196 -192
package/package.json
CHANGED
|
@@ -1,420 +1,420 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="nav-bgcolor">
|
|
3
|
-
<div class="auto">
|
|
4
|
-
<div class="row nav-bgcolor" >
|
|
5
|
-
<div class="col-xs-6 manbiankuang" v-for="tab in tabs" @click="gotopage(tab.link,tab.name)">
|
|
6
|
-
<img class="imgs" :src="imgback(tab.name)">
|
|
7
|
-
<div class="badge"
|
|
8
|
-
v-show="isshowTag&&tab.num&&tab.num>0"
|
|
9
|
-
><div class="badge-content">{{tab.num>99?'99+':tab.num}}</div></div>
|
|
10
|
-
<p></p>
|
|
11
|
-
<p class="pagesfoot">{{tab.name}}</p>
|
|
12
|
-
|
|
13
|
-
<!--<p class="pagesfoot">{{tab.name}} {{tab.icon}}</p>-->
|
|
14
|
-
<p></p>
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
17
|
-
<!--<div class="row" style="overflow:auto;">-->
|
|
18
|
-
<!--<repair-first v-show="componentName == 'repair-first'" worktype="报修单" :sourcet="sourcet" tabname="维修待办" v-on:changesum="changesum"></repair-first>-->
|
|
19
|
-
<!--<zhihuan-first v-show="componentName == 'zhihuan-first'" worktype="置换通气单" :sourcet="sourcet" tabname="置换待办" v-on:changesum="changesum"></zhihuan-first>-->
|
|
20
|
-
<!--</div>-->
|
|
21
|
-
</div>
|
|
22
|
-
<validator name="v">
|
|
23
|
-
<modal
|
|
24
|
-
v-if="showModal"
|
|
25
|
-
:show.sync="showModal"
|
|
26
|
-
backdrop="false"
|
|
27
|
-
title="工程类型"
|
|
28
|
-
cancel-text="取消"
|
|
29
|
-
ok-text="确认"
|
|
30
|
-
:callback="apply"
|
|
31
|
-
>
|
|
32
|
-
<div class="form-horizontal" slot="modal-body">
|
|
33
|
-
<div class="row form-group app-input" style="margin: 10px auto">
|
|
34
|
-
<label class="">报建类型:</label>
|
|
35
|
-
<div class="col-sm-8">
|
|
36
|
-
<v-select
|
|
37
|
-
v-model="applyType"
|
|
38
|
-
placeholder='请选择需要发起的工程类型'
|
|
39
|
-
:value.sync="applyType"
|
|
40
|
-
:options='applyTypes'
|
|
41
|
-
:value-single="true"
|
|
42
|
-
class="select select_list"
|
|
43
|
-
:search="false"
|
|
44
|
-
close-on-select ></v-select>
|
|
45
|
-
</div>
|
|
46
|
-
</div>
|
|
47
|
-
</div>
|
|
48
|
-
</modal>
|
|
49
|
-
</validator>
|
|
50
|
-
</div>
|
|
51
|
-
</template>
|
|
52
|
-
|
|
53
|
-
<script scoped>
|
|
54
|
-
import Vue from 'vue'
|
|
55
|
-
import * as Util from '../Util'
|
|
56
|
-
import {HttpResetClass} from "vue-client";
|
|
57
|
-
export default {
|
|
58
|
-
title: '待办工作导航',
|
|
59
|
-
data() {
|
|
60
|
-
return {
|
|
61
|
-
titleName: '待办工作',
|
|
62
|
-
showModal: false,
|
|
63
|
-
isMenu: true,
|
|
64
|
-
isshowTag:false,
|
|
65
|
-
tabs: [],
|
|
66
|
-
text: '导航组件this',
|
|
67
|
-
beforeName: '待办工作',
|
|
68
|
-
componentName: 'repair-first',
|
|
69
|
-
sourcet: '竖屏',
|
|
70
|
-
applyType: '', // 报建类型
|
|
71
|
-
// applyTypes:this.$appdata.getParam("手机报建类型"),
|
|
72
|
-
applyTypes: [{label: '散户报建', value: '散户报建'}, {label: '工商户报建', value: '工商户报建'}, {
|
|
73
|
-
label: '团购报建',
|
|
74
|
-
value: '团购报建'
|
|
75
|
-
}, {label: '改管报建', value: '改管报建'}, {label: '增容报建', value: '增容报建'}, {
|
|
76
|
-
label: '退款报建',
|
|
77
|
-
value: '退款报建'
|
|
78
|
-
}, {label: '团购转散户', value: '团购转散户'}, {label: '报警器报建', value: '报警器报建'}, {label: '工商业报警器报建', value: '工商业报警器报建'}],
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
ready () {
|
|
83
|
-
// this.getModelSum()
|
|
84
|
-
if(Vue.config.telephone&&Vue.config.telephone.TipConfig&&Vue.config.telephone.TipConfig.data){
|
|
85
|
-
this.isshowTag = true
|
|
86
|
-
this.getTabs()
|
|
87
|
-
}else{
|
|
88
|
-
this.getNoTagTabs()
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
methods: {
|
|
94
|
-
click (row) {
|
|
95
|
-
row.laiyuan='工程发起'
|
|
96
|
-
let _this = this
|
|
97
|
-
this.$dispatch('gotoson', {
|
|
98
|
-
_this: _this,
|
|
99
|
-
title: row.defname,
|
|
100
|
-
safe: true
|
|
101
|
-
})
|
|
102
|
-
this.$goto('app-service-control', {selectdata: row})
|
|
103
|
-
},
|
|
104
|
-
async getProcessId(processname) {
|
|
105
|
-
let data = {
|
|
106
|
-
workname: processname
|
|
107
|
-
}
|
|
108
|
-
let http = new HttpResetClass()
|
|
109
|
-
let res = await http.load(
|
|
110
|
-
'POST',
|
|
111
|
-
`${this.$androidUtil.getProxyUrl()}/rs/logic/getProcessId`,
|
|
112
|
-
{data: data},
|
|
113
|
-
{resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
|
|
114
|
-
)
|
|
115
|
-
|
|
116
|
-
return res.data
|
|
117
|
-
},
|
|
118
|
-
async apply () {
|
|
119
|
-
if (this.applyType === '' || this.applyType === null) {
|
|
120
|
-
this.$showAlert('请选择需要发起的类型', 'warning', 3000)
|
|
121
|
-
return
|
|
122
|
-
}
|
|
123
|
-
let data = {
|
|
124
|
-
f_apply_type: this.applyType
|
|
125
|
-
}
|
|
126
|
-
if (this.applyType === '散户报建') {
|
|
127
|
-
data.processname = '散户报建流程'
|
|
128
|
-
data.defname = '报装申请'
|
|
129
|
-
} else if (this.applyType === '工商户报建') {
|
|
130
|
-
data.processname = '工商户报建流程'
|
|
131
|
-
data.defname = '报装申请'
|
|
132
|
-
} else if (this.applyType === '改管报建') {
|
|
133
|
-
data.processname = '改管报建流程'
|
|
134
|
-
data.defname = '报装申请'
|
|
135
|
-
} else if (this.applyType === '增容报建') {
|
|
136
|
-
data.processname = '增容报建流程'
|
|
137
|
-
data.defname = '报装申请'
|
|
138
|
-
} else if (this.applyType === '团购报建') {
|
|
139
|
-
data.processname = '团购报建流程'
|
|
140
|
-
data.defname = '报装申请'
|
|
141
|
-
} else if (this.applyType === '退款报建') {
|
|
142
|
-
data.processname = '退款报建流程'
|
|
143
|
-
data.defname = '终止报建'
|
|
144
|
-
} else if (this.applyType === '团购转散户') {
|
|
145
|
-
data.processname = '团购转散户报建流程'
|
|
146
|
-
data.defname = '信息确认'
|
|
147
|
-
}else if (this.applyType === '报警器报建') {
|
|
148
|
-
data.processname = '报警器报建流程'
|
|
149
|
-
data.defname = '报装申请'
|
|
150
|
-
}else if (this.applyType === '工商业报警器报建') {
|
|
151
|
-
data.processname = '工商业报警器报建流程'
|
|
152
|
-
data.defname = '报装申请'
|
|
153
|
-
} else {
|
|
154
|
-
this.$showMessage('暂无此类报装')
|
|
155
|
-
return
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
data.f_sub_state = "新增"
|
|
159
|
-
data.f_apply_source = "线下发起"
|
|
160
|
-
data.f_process_id = await this.getProcessId(data.processname)
|
|
161
|
-
|
|
162
|
-
// 调用ExplorationUser事件
|
|
163
|
-
|
|
164
|
-
this.click(data)
|
|
165
|
-
this.applyType = null
|
|
166
|
-
this.showModal = false
|
|
167
|
-
},
|
|
168
|
-
// 查询本地所有待办
|
|
169
|
-
getModelSum(){
|
|
170
|
-
for(var i = 0;i<this.tabs.length;i++){
|
|
171
|
-
if(this.tabs[i].link == 'zhihuan-first' ){
|
|
172
|
-
this.getZhihuan()
|
|
173
|
-
}
|
|
174
|
-
if(this.tabs[i].link == 'repair-first' ){
|
|
175
|
-
this.getRepair()
|
|
176
|
-
}
|
|
177
|
-
if(this.tabs[i].link == 'current-create' ){
|
|
178
|
-
this.getSafeCheck()
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
},
|
|
183
|
-
getRepair(){
|
|
184
|
-
var _this = this;
|
|
185
|
-
this.timeoutRepair = window.setInterval(function() {
|
|
186
|
-
let result = _this.$androidUtil.path({'alias':`getServiceMobile`,'data':{condition:'1 = 1'}})
|
|
187
|
-
if (result.code === 200) {
|
|
188
|
-
console.log('查询得到的代办2' + JSON.stringify(result))
|
|
189
|
-
var crv = {
|
|
190
|
-
title: '维修待办',
|
|
191
|
-
sum: result.data.length
|
|
192
|
-
}
|
|
193
|
-
_this.changesum(crv)
|
|
194
|
-
}
|
|
195
|
-
}, 6000)
|
|
196
|
-
},
|
|
197
|
-
getSafeCheck(){
|
|
198
|
-
var _this = this;
|
|
199
|
-
this.timeoutRepair = window.setInterval(function() {
|
|
200
|
-
let result = _this.$androidUtil.path({'alias':`safecheckGetServiceMobile`,'data':{condition:'1 = 1'}})
|
|
201
|
-
if (result.code === 200) {
|
|
202
|
-
console.log('查询得到的安检代办' + JSON.stringify(result))
|
|
203
|
-
var crv = {
|
|
204
|
-
title: '安检待办',
|
|
205
|
-
sum: result.data.length
|
|
206
|
-
}
|
|
207
|
-
_this.changesum(crv)
|
|
208
|
-
}
|
|
209
|
-
}, 6000)
|
|
210
|
-
},
|
|
211
|
-
getZhihuan(){
|
|
212
|
-
var _this = this;
|
|
213
|
-
this.timeoutZhihuan = window.setInterval(function() {
|
|
214
|
-
let result = _this.$androidUtil.path({'alias':`getSubstitMobile`,'data':{condition:'1 = 1'}})
|
|
215
|
-
if (result.code === 200) {
|
|
216
|
-
console.log('查询得到的代办2' + JSON.stringify(result))
|
|
217
|
-
var crv = {
|
|
218
|
-
title: '置换待办',
|
|
219
|
-
sum: result.data.length
|
|
220
|
-
}
|
|
221
|
-
_this.changesum(crv)
|
|
222
|
-
}
|
|
223
|
-
}, 6000)
|
|
224
|
-
},
|
|
225
|
-
changesum(titdata){
|
|
226
|
-
for(var i = 0;i<this.tabs.length;i++){
|
|
227
|
-
if(this.tabs[i].name == titdata.title){
|
|
228
|
-
this.tabs[i].icon = titdata.sum + '单'
|
|
229
|
-
console.log(JSON.stringify(this.tabs[i].icon))
|
|
230
|
-
return
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
},
|
|
234
|
-
getNoTagTabs(){
|
|
235
|
-
for(let funs in Vue.functions){
|
|
236
|
-
if(Vue.functions[funs].link == 'attend-manage'){
|
|
237
|
-
this.$set('tabs',Vue.functions[funs].children)
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
},
|
|
241
|
-
async getTabs(){
|
|
242
|
-
const config = Vue.config.telephone.TipConfig.data
|
|
243
|
-
const user = Vue.user
|
|
244
|
-
console.log("Vue.android"+Vue.android)
|
|
245
|
-
if(Vue.android){
|
|
246
|
-
const result = this.$androidUtil.syncBzLogic("TipConfig",{data:{config,user}})
|
|
247
|
-
if(result.code === 200){
|
|
248
|
-
for(let funs in Vue.functions){
|
|
249
|
-
if(Vue.functions[funs].link == 'attend-manage'){
|
|
250
|
-
Vue.functions[funs].children.forEach(res=>{
|
|
251
|
-
console.log(res)
|
|
252
|
-
result.result.forEach(ress=>{
|
|
253
|
-
if(res.link === ress.link){
|
|
254
|
-
res.num=ress.num
|
|
255
|
-
}
|
|
256
|
-
})
|
|
257
|
-
})
|
|
258
|
-
this.$set('tabs',Vue.functions[funs].children)
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}else{
|
|
262
|
-
for(let funs in Vue.functions){
|
|
263
|
-
if(Vue.functions[funs].link == 'attend-manage'){
|
|
264
|
-
this.$set('tabs',Vue.functions[funs].children)
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
}else{
|
|
269
|
-
const result = {"code":200,"result":[{"link":"repair-first","num":50},{"link":"current-create","num":30}]}
|
|
270
|
-
if(result.code === 200){
|
|
271
|
-
for(let funs in Vue.functions){
|
|
272
|
-
if(Vue.functions[funs].link == 'attend-manage'){
|
|
273
|
-
Vue.functions[funs].children.forEach(res=>{
|
|
274
|
-
console.log(res)
|
|
275
|
-
result.result.forEach(ress=>{
|
|
276
|
-
if(res.link === ress.link){
|
|
277
|
-
res.num=ress.num
|
|
278
|
-
}
|
|
279
|
-
})
|
|
280
|
-
})
|
|
281
|
-
this.$set('tabs',Vue.functions[funs].children)
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
}else{
|
|
285
|
-
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
},
|
|
291
|
-
imgback(val){
|
|
292
|
-
return require('../assets/'+val+'.png')
|
|
293
|
-
},
|
|
294
|
-
// 返回主界面
|
|
295
|
-
back(){
|
|
296
|
-
this.titleName = '主界面'
|
|
297
|
-
this.isMenu = true
|
|
298
|
-
|
|
299
|
-
},
|
|
300
|
-
gotopage(param,title) {
|
|
301
|
-
if(title === '工程发起'){
|
|
302
|
-
this.showModal = !this.showModal
|
|
303
|
-
}else{
|
|
304
|
-
console.log('进入子组件')
|
|
305
|
-
var prpdata = {
|
|
306
|
-
_this:this,
|
|
307
|
-
title:title,
|
|
308
|
-
safe:false
|
|
309
|
-
}
|
|
310
|
-
this.$dispatch('gotoson',prpdata)
|
|
311
|
-
this.$goto(param,{sourcet:'竖屏',tabname:title})
|
|
312
|
-
}
|
|
313
|
-
},
|
|
314
|
-
mute () {
|
|
315
|
-
HostApp.mute()
|
|
316
|
-
}
|
|
317
|
-
},
|
|
318
|
-
}
|
|
319
|
-
</script>
|
|
320
|
-
<style lang="less">
|
|
321
|
-
.badge-content{
|
|
322
|
-
color: #fff;
|
|
323
|
-
box-sizing: border-box;
|
|
324
|
-
min-width: 8px;
|
|
325
|
-
font-size: 9px;
|
|
326
|
-
line-height: 12px;
|
|
327
|
-
white-space: nowrap;
|
|
328
|
-
font-weight: 400;
|
|
329
|
-
text-align: center;
|
|
330
|
-
}
|
|
331
|
-
.badge{
|
|
332
|
-
top: 6px;
|
|
333
|
-
position: absolute;
|
|
334
|
-
max-height: 13px;
|
|
335
|
-
min-height: 8px;
|
|
336
|
-
//transform: translate(50%,-50%);
|
|
337
|
-
right:0;
|
|
338
|
-
display: inline-flex;
|
|
339
|
-
vertical-align: middle;
|
|
340
|
-
box-sizing: content-box;
|
|
341
|
-
border-radius: 100px;
|
|
342
|
-
background-color: red;
|
|
343
|
-
}
|
|
344
|
-
.app-input {
|
|
345
|
-
label {
|
|
346
|
-
float: left;
|
|
347
|
-
}
|
|
348
|
-
.select {
|
|
349
|
-
button {
|
|
350
|
-
border: none;
|
|
351
|
-
outline: none;
|
|
352
|
-
text-align: left;
|
|
353
|
-
.btn-placeholder {
|
|
354
|
-
color: #ACA899
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
.datepicker {
|
|
359
|
-
.form-control:focus {
|
|
360
|
-
border: none!important;
|
|
361
|
-
outline: none!important;
|
|
362
|
-
-webkit-box-shadow: none;
|
|
363
|
-
box-shadow: none;
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
.tab-befor-img {
|
|
368
|
-
content: '';
|
|
369
|
-
background-size: 30px;
|
|
370
|
-
display: inline-block;
|
|
371
|
-
margin-right: 8px;
|
|
372
|
-
height: 30px;
|
|
373
|
-
width: 30px;
|
|
374
|
-
vertical-align: -35%;
|
|
375
|
-
}
|
|
376
|
-
.pageskuang{
|
|
377
|
-
vertical-align:middle;
|
|
378
|
-
display:table-cell;
|
|
379
|
-
width: 32%;
|
|
380
|
-
top:-50%;
|
|
381
|
-
margin-top: 1%;
|
|
382
|
-
margin-left: 1%;
|
|
383
|
-
border:1px solid #e3e3e3;
|
|
384
|
-
text-align: center;
|
|
385
|
-
background-color: #ffffff;
|
|
386
|
-
}
|
|
387
|
-
.pgesfoot{
|
|
388
|
-
font-size: 14px;
|
|
389
|
-
color: #666666;
|
|
390
|
-
/* font-family: "Pingfhs";*/
|
|
391
|
-
}
|
|
392
|
-
.imgs{
|
|
393
|
-
width: 35px;
|
|
394
|
-
margin-top: 15px;
|
|
395
|
-
}
|
|
396
|
-
.pages-bgcolor{
|
|
397
|
-
text-align: center;
|
|
398
|
-
background-color: #f0f0ef;
|
|
399
|
-
}
|
|
400
|
-
img[src=""],img:not([src]){
|
|
401
|
-
opacity: 0;
|
|
402
|
-
border:none;
|
|
403
|
-
visibility: hidden;
|
|
404
|
-
max-width: none;
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
.manbiankuang{
|
|
408
|
-
width: 44%;
|
|
409
|
-
margin-top: 15px;
|
|
410
|
-
margin-left: 4%;
|
|
411
|
-
border:1px solid #e3e3e3;
|
|
412
|
-
border-radius:10px 10px 10px 10px;
|
|
413
|
-
text-align: center;
|
|
414
|
-
background-color: #ffffff;
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
.nav-bgcolor{
|
|
418
|
-
background-color: #ffffff;
|
|
419
|
-
}
|
|
420
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="nav-bgcolor">
|
|
3
|
+
<div class="auto">
|
|
4
|
+
<div class="row nav-bgcolor" >
|
|
5
|
+
<div class="col-xs-6 manbiankuang" v-for="tab in tabs" @click="gotopage(tab.link,tab.name)">
|
|
6
|
+
<img class="imgs" :src="imgback(tab.name)">
|
|
7
|
+
<div class="badge"
|
|
8
|
+
v-show="isshowTag&&tab.num&&tab.num>0"
|
|
9
|
+
><div class="badge-content">{{tab.num>99?'99+':tab.num}}</div></div>
|
|
10
|
+
<p></p>
|
|
11
|
+
<p class="pagesfoot">{{tab.name}}</p>
|
|
12
|
+
|
|
13
|
+
<!--<p class="pagesfoot">{{tab.name}} {{tab.icon}}</p>-->
|
|
14
|
+
<p></p>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
<!--<div class="row" style="overflow:auto;">-->
|
|
18
|
+
<!--<repair-first v-show="componentName == 'repair-first'" worktype="报修单" :sourcet="sourcet" tabname="维修待办" v-on:changesum="changesum"></repair-first>-->
|
|
19
|
+
<!--<zhihuan-first v-show="componentName == 'zhihuan-first'" worktype="置换通气单" :sourcet="sourcet" tabname="置换待办" v-on:changesum="changesum"></zhihuan-first>-->
|
|
20
|
+
<!--</div>-->
|
|
21
|
+
</div>
|
|
22
|
+
<validator name="v">
|
|
23
|
+
<modal
|
|
24
|
+
v-if="showModal"
|
|
25
|
+
:show.sync="showModal"
|
|
26
|
+
backdrop="false"
|
|
27
|
+
title="工程类型"
|
|
28
|
+
cancel-text="取消"
|
|
29
|
+
ok-text="确认"
|
|
30
|
+
:callback="apply"
|
|
31
|
+
>
|
|
32
|
+
<div class="form-horizontal" slot="modal-body">
|
|
33
|
+
<div class="row form-group app-input" style="margin: 10px auto">
|
|
34
|
+
<label class="">报建类型:</label>
|
|
35
|
+
<div class="col-sm-8">
|
|
36
|
+
<v-select
|
|
37
|
+
v-model="applyType"
|
|
38
|
+
placeholder='请选择需要发起的工程类型'
|
|
39
|
+
:value.sync="applyType"
|
|
40
|
+
:options='applyTypes'
|
|
41
|
+
:value-single="true"
|
|
42
|
+
class="select select_list"
|
|
43
|
+
:search="false"
|
|
44
|
+
close-on-select ></v-select>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</modal>
|
|
49
|
+
</validator>
|
|
50
|
+
</div>
|
|
51
|
+
</template>
|
|
52
|
+
|
|
53
|
+
<script scoped>
|
|
54
|
+
import Vue from 'vue'
|
|
55
|
+
import * as Util from '../Util'
|
|
56
|
+
import {HttpResetClass} from "vue-client";
|
|
57
|
+
export default {
|
|
58
|
+
title: '待办工作导航',
|
|
59
|
+
data() {
|
|
60
|
+
return {
|
|
61
|
+
titleName: '待办工作',
|
|
62
|
+
showModal: false,
|
|
63
|
+
isMenu: true,
|
|
64
|
+
isshowTag:false,
|
|
65
|
+
tabs: [],
|
|
66
|
+
text: '导航组件this',
|
|
67
|
+
beforeName: '待办工作',
|
|
68
|
+
componentName: 'repair-first',
|
|
69
|
+
sourcet: '竖屏',
|
|
70
|
+
applyType: '', // 报建类型
|
|
71
|
+
// applyTypes:this.$appdata.getParam("手机报建类型"),
|
|
72
|
+
applyTypes: [{label: '散户报建', value: '散户报建'}, {label: '工商户报建', value: '工商户报建'}, {
|
|
73
|
+
label: '团购报建',
|
|
74
|
+
value: '团购报建'
|
|
75
|
+
}, {label: '改管报建', value: '改管报建'}, {label: '增容报建', value: '增容报建'}, {
|
|
76
|
+
label: '退款报建',
|
|
77
|
+
value: '退款报建'
|
|
78
|
+
}, {label: '团购转散户', value: '团购转散户'}, {label: '报警器报建', value: '报警器报建'}, {label: '工商业报警器报建', value: '工商业报警器报建'}],
|
|
79
|
+
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
ready () {
|
|
83
|
+
// this.getModelSum()
|
|
84
|
+
if(Vue.config.telephone&&Vue.config.telephone.TipConfig&&Vue.config.telephone.TipConfig.data){
|
|
85
|
+
this.isshowTag = true
|
|
86
|
+
this.getTabs()
|
|
87
|
+
}else{
|
|
88
|
+
this.getNoTagTabs()
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
methods: {
|
|
94
|
+
click (row) {
|
|
95
|
+
row.laiyuan='工程发起'
|
|
96
|
+
let _this = this
|
|
97
|
+
this.$dispatch('gotoson', {
|
|
98
|
+
_this: _this,
|
|
99
|
+
title: row.defname,
|
|
100
|
+
safe: true
|
|
101
|
+
})
|
|
102
|
+
this.$goto('app-service-control', {selectdata: row})
|
|
103
|
+
},
|
|
104
|
+
async getProcessId(processname) {
|
|
105
|
+
let data = {
|
|
106
|
+
workname: processname
|
|
107
|
+
}
|
|
108
|
+
let http = new HttpResetClass()
|
|
109
|
+
let res = await http.load(
|
|
110
|
+
'POST',
|
|
111
|
+
`${this.$androidUtil.getProxyUrl()}/rs/logic/getProcessId`,
|
|
112
|
+
{data: data},
|
|
113
|
+
{resolveMsg: null, rejectMsg: '流程标识获取失败!!!'}
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
return res.data
|
|
117
|
+
},
|
|
118
|
+
async apply () {
|
|
119
|
+
if (this.applyType === '' || this.applyType === null) {
|
|
120
|
+
this.$showAlert('请选择需要发起的类型', 'warning', 3000)
|
|
121
|
+
return
|
|
122
|
+
}
|
|
123
|
+
let data = {
|
|
124
|
+
f_apply_type: this.applyType
|
|
125
|
+
}
|
|
126
|
+
if (this.applyType === '散户报建') {
|
|
127
|
+
data.processname = '散户报建流程'
|
|
128
|
+
data.defname = '报装申请'
|
|
129
|
+
} else if (this.applyType === '工商户报建') {
|
|
130
|
+
data.processname = '工商户报建流程'
|
|
131
|
+
data.defname = '报装申请'
|
|
132
|
+
} else if (this.applyType === '改管报建') {
|
|
133
|
+
data.processname = '改管报建流程'
|
|
134
|
+
data.defname = '报装申请'
|
|
135
|
+
} else if (this.applyType === '增容报建') {
|
|
136
|
+
data.processname = '增容报建流程'
|
|
137
|
+
data.defname = '报装申请'
|
|
138
|
+
} else if (this.applyType === '团购报建') {
|
|
139
|
+
data.processname = '团购报建流程'
|
|
140
|
+
data.defname = '报装申请'
|
|
141
|
+
} else if (this.applyType === '退款报建') {
|
|
142
|
+
data.processname = '退款报建流程'
|
|
143
|
+
data.defname = '终止报建'
|
|
144
|
+
} else if (this.applyType === '团购转散户') {
|
|
145
|
+
data.processname = '团购转散户报建流程'
|
|
146
|
+
data.defname = '信息确认'
|
|
147
|
+
}else if (this.applyType === '报警器报建') {
|
|
148
|
+
data.processname = '报警器报建流程'
|
|
149
|
+
data.defname = '报装申请'
|
|
150
|
+
}else if (this.applyType === '工商业报警器报建') {
|
|
151
|
+
data.processname = '工商业报警器报建流程'
|
|
152
|
+
data.defname = '报装申请'
|
|
153
|
+
} else {
|
|
154
|
+
this.$showMessage('暂无此类报装')
|
|
155
|
+
return
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
data.f_sub_state = "新增"
|
|
159
|
+
data.f_apply_source = "线下发起"
|
|
160
|
+
data.f_process_id = await this.getProcessId(data.processname)
|
|
161
|
+
|
|
162
|
+
// 调用ExplorationUser事件
|
|
163
|
+
|
|
164
|
+
this.click(data)
|
|
165
|
+
this.applyType = null
|
|
166
|
+
this.showModal = false
|
|
167
|
+
},
|
|
168
|
+
// 查询本地所有待办
|
|
169
|
+
getModelSum(){
|
|
170
|
+
for(var i = 0;i<this.tabs.length;i++){
|
|
171
|
+
if(this.tabs[i].link == 'zhihuan-first' ){
|
|
172
|
+
this.getZhihuan()
|
|
173
|
+
}
|
|
174
|
+
if(this.tabs[i].link == 'repair-first' ){
|
|
175
|
+
this.getRepair()
|
|
176
|
+
}
|
|
177
|
+
if(this.tabs[i].link == 'current-create' ){
|
|
178
|
+
this.getSafeCheck()
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
},
|
|
183
|
+
getRepair(){
|
|
184
|
+
var _this = this;
|
|
185
|
+
this.timeoutRepair = window.setInterval(function() {
|
|
186
|
+
let result = _this.$androidUtil.path({'alias':`getServiceMobile`,'data':{condition:'1 = 1'}})
|
|
187
|
+
if (result.code === 200) {
|
|
188
|
+
console.log('查询得到的代办2' + JSON.stringify(result))
|
|
189
|
+
var crv = {
|
|
190
|
+
title: '维修待办',
|
|
191
|
+
sum: result.data.length
|
|
192
|
+
}
|
|
193
|
+
_this.changesum(crv)
|
|
194
|
+
}
|
|
195
|
+
}, 6000)
|
|
196
|
+
},
|
|
197
|
+
getSafeCheck(){
|
|
198
|
+
var _this = this;
|
|
199
|
+
this.timeoutRepair = window.setInterval(function() {
|
|
200
|
+
let result = _this.$androidUtil.path({'alias':`safecheckGetServiceMobile`,'data':{condition:'1 = 1'}})
|
|
201
|
+
if (result.code === 200) {
|
|
202
|
+
console.log('查询得到的安检代办' + JSON.stringify(result))
|
|
203
|
+
var crv = {
|
|
204
|
+
title: '安检待办',
|
|
205
|
+
sum: result.data.length
|
|
206
|
+
}
|
|
207
|
+
_this.changesum(crv)
|
|
208
|
+
}
|
|
209
|
+
}, 6000)
|
|
210
|
+
},
|
|
211
|
+
getZhihuan(){
|
|
212
|
+
var _this = this;
|
|
213
|
+
this.timeoutZhihuan = window.setInterval(function() {
|
|
214
|
+
let result = _this.$androidUtil.path({'alias':`getSubstitMobile`,'data':{condition:'1 = 1'}})
|
|
215
|
+
if (result.code === 200) {
|
|
216
|
+
console.log('查询得到的代办2' + JSON.stringify(result))
|
|
217
|
+
var crv = {
|
|
218
|
+
title: '置换待办',
|
|
219
|
+
sum: result.data.length
|
|
220
|
+
}
|
|
221
|
+
_this.changesum(crv)
|
|
222
|
+
}
|
|
223
|
+
}, 6000)
|
|
224
|
+
},
|
|
225
|
+
changesum(titdata){
|
|
226
|
+
for(var i = 0;i<this.tabs.length;i++){
|
|
227
|
+
if(this.tabs[i].name == titdata.title){
|
|
228
|
+
this.tabs[i].icon = titdata.sum + '单'
|
|
229
|
+
console.log(JSON.stringify(this.tabs[i].icon))
|
|
230
|
+
return
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
getNoTagTabs(){
|
|
235
|
+
for(let funs in Vue.functions){
|
|
236
|
+
if(Vue.functions[funs].link == 'attend-manage'){
|
|
237
|
+
this.$set('tabs',Vue.functions[funs].children)
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
async getTabs(){
|
|
242
|
+
const config = Vue.config.telephone.TipConfig.data
|
|
243
|
+
const user = Vue.user
|
|
244
|
+
console.log("Vue.android"+Vue.android)
|
|
245
|
+
if(Vue.android){
|
|
246
|
+
const result = this.$androidUtil.syncBzLogic("TipConfig",{data:{config,user}})
|
|
247
|
+
if(result.code === 200){
|
|
248
|
+
for(let funs in Vue.functions){
|
|
249
|
+
if(Vue.functions[funs].link == 'attend-manage'){
|
|
250
|
+
Vue.functions[funs].children.forEach(res=>{
|
|
251
|
+
console.log(res)
|
|
252
|
+
result.result.forEach(ress=>{
|
|
253
|
+
if(res.link === ress.link){
|
|
254
|
+
res.num=ress.num
|
|
255
|
+
}
|
|
256
|
+
})
|
|
257
|
+
})
|
|
258
|
+
this.$set('tabs',Vue.functions[funs].children)
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}else{
|
|
262
|
+
for(let funs in Vue.functions){
|
|
263
|
+
if(Vue.functions[funs].link == 'attend-manage'){
|
|
264
|
+
this.$set('tabs',Vue.functions[funs].children)
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}else{
|
|
269
|
+
const result = {"code":200,"result":[{"link":"repair-first","num":50},{"link":"current-create","num":30}]}
|
|
270
|
+
if(result.code === 200){
|
|
271
|
+
for(let funs in Vue.functions){
|
|
272
|
+
if(Vue.functions[funs].link == 'attend-manage'){
|
|
273
|
+
Vue.functions[funs].children.forEach(res=>{
|
|
274
|
+
console.log(res)
|
|
275
|
+
result.result.forEach(ress=>{
|
|
276
|
+
if(res.link === ress.link){
|
|
277
|
+
res.num=ress.num
|
|
278
|
+
}
|
|
279
|
+
})
|
|
280
|
+
})
|
|
281
|
+
this.$set('tabs',Vue.functions[funs].children)
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}else{
|
|
285
|
+
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
},
|
|
291
|
+
imgback(val){
|
|
292
|
+
return require('../assets/'+val+'.png')
|
|
293
|
+
},
|
|
294
|
+
// 返回主界面
|
|
295
|
+
back(){
|
|
296
|
+
this.titleName = '主界面'
|
|
297
|
+
this.isMenu = true
|
|
298
|
+
|
|
299
|
+
},
|
|
300
|
+
gotopage(param,title) {
|
|
301
|
+
if(title === '工程发起'){
|
|
302
|
+
this.showModal = !this.showModal
|
|
303
|
+
}else{
|
|
304
|
+
console.log('进入子组件')
|
|
305
|
+
var prpdata = {
|
|
306
|
+
_this:this,
|
|
307
|
+
title:title,
|
|
308
|
+
safe:false
|
|
309
|
+
}
|
|
310
|
+
this.$dispatch('gotoson',prpdata)
|
|
311
|
+
this.$goto(param,{sourcet:'竖屏',tabname:title})
|
|
312
|
+
}
|
|
313
|
+
},
|
|
314
|
+
mute () {
|
|
315
|
+
HostApp.mute()
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
}
|
|
319
|
+
</script>
|
|
320
|
+
<style lang="less">
|
|
321
|
+
.badge-content{
|
|
322
|
+
color: #fff;
|
|
323
|
+
box-sizing: border-box;
|
|
324
|
+
min-width: 8px;
|
|
325
|
+
font-size: 9px;
|
|
326
|
+
line-height: 12px;
|
|
327
|
+
white-space: nowrap;
|
|
328
|
+
font-weight: 400;
|
|
329
|
+
text-align: center;
|
|
330
|
+
}
|
|
331
|
+
.badge{
|
|
332
|
+
top: 6px;
|
|
333
|
+
position: absolute;
|
|
334
|
+
max-height: 13px;
|
|
335
|
+
min-height: 8px;
|
|
336
|
+
//transform: translate(50%,-50%);
|
|
337
|
+
right:0;
|
|
338
|
+
display: inline-flex;
|
|
339
|
+
vertical-align: middle;
|
|
340
|
+
box-sizing: content-box;
|
|
341
|
+
border-radius: 100px;
|
|
342
|
+
background-color: red;
|
|
343
|
+
}
|
|
344
|
+
.app-input {
|
|
345
|
+
label {
|
|
346
|
+
float: left;
|
|
347
|
+
}
|
|
348
|
+
.select {
|
|
349
|
+
button {
|
|
350
|
+
border: none;
|
|
351
|
+
outline: none;
|
|
352
|
+
text-align: left;
|
|
353
|
+
.btn-placeholder {
|
|
354
|
+
color: #ACA899
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
.datepicker {
|
|
359
|
+
.form-control:focus {
|
|
360
|
+
border: none!important;
|
|
361
|
+
outline: none!important;
|
|
362
|
+
-webkit-box-shadow: none;
|
|
363
|
+
box-shadow: none;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
.tab-befor-img {
|
|
368
|
+
content: '';
|
|
369
|
+
background-size: 30px;
|
|
370
|
+
display: inline-block;
|
|
371
|
+
margin-right: 8px;
|
|
372
|
+
height: 30px;
|
|
373
|
+
width: 30px;
|
|
374
|
+
vertical-align: -35%;
|
|
375
|
+
}
|
|
376
|
+
.pageskuang{
|
|
377
|
+
vertical-align:middle;
|
|
378
|
+
display:table-cell;
|
|
379
|
+
width: 32%;
|
|
380
|
+
top:-50%;
|
|
381
|
+
margin-top: 1%;
|
|
382
|
+
margin-left: 1%;
|
|
383
|
+
border:1px solid #e3e3e3;
|
|
384
|
+
text-align: center;
|
|
385
|
+
background-color: #ffffff;
|
|
386
|
+
}
|
|
387
|
+
.pgesfoot{
|
|
388
|
+
font-size: 14px;
|
|
389
|
+
color: #666666;
|
|
390
|
+
/* font-family: "Pingfhs";*/
|
|
391
|
+
}
|
|
392
|
+
.imgs{
|
|
393
|
+
width: 35px;
|
|
394
|
+
margin-top: 15px;
|
|
395
|
+
}
|
|
396
|
+
.pages-bgcolor{
|
|
397
|
+
text-align: center;
|
|
398
|
+
background-color: #f0f0ef;
|
|
399
|
+
}
|
|
400
|
+
img[src=""],img:not([src]){
|
|
401
|
+
opacity: 0;
|
|
402
|
+
border:none;
|
|
403
|
+
visibility: hidden;
|
|
404
|
+
max-width: none;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
.manbiankuang{
|
|
408
|
+
width: 44%;
|
|
409
|
+
margin-top: 15px;
|
|
410
|
+
margin-left: 4%;
|
|
411
|
+
border:1px solid #e3e3e3;
|
|
412
|
+
border-radius:10px 10px 10px 10px;
|
|
413
|
+
text-align: center;
|
|
414
|
+
background-color: #ffffff;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
.nav-bgcolor{
|
|
418
|
+
background-color: #ffffff;
|
|
419
|
+
}
|
|
420
|
+
</style>
|
|
@@ -1,192 +1,196 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<!--<div class="app-botton" @click="back()">-->
|
|
3
|
-
<!--<span class="glyphicon glyphicon-menu-left">返回</span>-->
|
|
4
|
-
<!--</div>-->
|
|
5
|
-
<div class="auto">
|
|
6
|
-
<div class="row app-row">
|
|
7
|
-
<div class="col-xs-4">
|
|
8
|
-
<img src="../assets/姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
9
|
-
<span class="text-left font">账号</span>
|
|
10
|
-
</div>
|
|
11
|
-
<div class="col-xs-8 input-font">
|
|
12
|
-
<input type="text" class="search_input input-font" v-model="model.ename" readonly/>
|
|
13
|
-
</div>
|
|
14
|
-
</div>
|
|
15
|
-
<div class="row app-row">
|
|
16
|
-
<div class="col-xs-4" style="margin-top: 8px">
|
|
17
|
-
<img src="../assets/原始密码.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
18
|
-
<span class="text-left font">原始密码</span>
|
|
19
|
-
</div>
|
|
20
|
-
<div class="col-xs-8">
|
|
21
|
-
<input type="password" id="oldpassword" class="search_input input-font" v-model="model.oldpassword" placeholder="请输入原始密码"/>
|
|
22
|
-
</div>
|
|
23
|
-
</div>
|
|
24
|
-
<div class="row app-row">
|
|
25
|
-
<div class="col-xs-4" style="margin-top: 8px">
|
|
26
|
-
<img src="../assets/密码.png" style="width: 20px;margin-bottom: 5px" >
|
|
27
|
-
<span class="text-left font">新密码</span>
|
|
28
|
-
</div>
|
|
29
|
-
<div class="col-xs-8">
|
|
30
|
-
<input type="password" id="newpassword1" class="search_input input-font" v-model="model.password" :placeholder="weakPassword?'需要包含大小写字母符号数字':'请输入新密码'"/>
|
|
31
|
-
</div>
|
|
32
|
-
</div>
|
|
33
|
-
<div class="row app-row">
|
|
34
|
-
<div class="col-xs-4" style="margin-top: 8px">
|
|
35
|
-
<img src="../assets/密码.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
36
|
-
<span class="text-left font">确认密码</span>
|
|
37
|
-
</div>
|
|
38
|
-
<div class="col-xs-8">
|
|
39
|
-
<input type="password" id="newpassword2" class="search_input input-font" v-model="model.newpassword" placeholder="请重新输入新密码"/>
|
|
40
|
-
</div>
|
|
41
|
-
</div>
|
|
42
|
-
<div class="row app-row">
|
|
43
|
-
<div class="col-xs-4" style="margin-top: 8px">
|
|
44
|
-
<img src="../assets/选中.png" style="width: 20px;margin-bottom: 5px" alt="" v-if="showpass"@click="showoff()">
|
|
45
|
-
<img src="../assets/未选.png" style="width: 20px;margin-bottom: 5px" alt="" v-if="!showpass" @click="showon()">
|
|
46
|
-
<span class="text-left font">显示密码</span>
|
|
47
|
-
</div>
|
|
48
|
-
</div>
|
|
49
|
-
<div class="row app-row text-center">
|
|
50
|
-
<button type="button" class="btn btn-lg btn-font btn-color" style="width: 45%;" @click="save()">提交</button>
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
</template>
|
|
54
|
-
<script>
|
|
55
|
-
import Vue from 'vue'
|
|
56
|
-
|
|
57
|
-
let asyncCheck = async function(self,url) {
|
|
58
|
-
try {
|
|
59
|
-
let that = self
|
|
60
|
-
let user = {
|
|
61
|
-
ename: that.model.ename,
|
|
62
|
-
newpassword:that.model.password,
|
|
63
|
-
affirmpassword:that.model.newpassword,
|
|
64
|
-
password : that.model.oldpassword
|
|
65
|
-
}
|
|
66
|
-
let res = await Vue.resetpost(`${url}/rs/user/modifypwd`,{data: user },{resolveMsg: null, rejectMsg: null})
|
|
67
|
-
console.log("手机端验证登陆原始密码")
|
|
68
|
-
console.log(res.data)
|
|
69
|
-
if(res.data){
|
|
70
|
-
that.$showMessage('修改密码成功!')
|
|
71
|
-
if(that.sourse == 'login'){
|
|
72
|
-
that.$emit('success',that.model.password)
|
|
73
|
-
return
|
|
74
|
-
}
|
|
75
|
-
that.$back()
|
|
76
|
-
}else {
|
|
77
|
-
that.$showMessage('修改密码失败,请重新输入!')
|
|
78
|
-
console.log(res.data)
|
|
79
|
-
return
|
|
80
|
-
}
|
|
81
|
-
} catch (error) {
|
|
82
|
-
if (error.status == 500) {
|
|
83
|
-
that.$showMessage('网络异常,请检查手机网络!')
|
|
84
|
-
}else{
|
|
85
|
-
throw error
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export default {
|
|
91
|
-
title: '修改密码',
|
|
92
|
-
data () {
|
|
93
|
-
return {
|
|
94
|
-
model: {
|
|
95
|
-
user: Vue.user.name,
|
|
96
|
-
userid: Vue.user.id,
|
|
97
|
-
ename: Vue.user.ename,
|
|
98
|
-
oldpassword: '',
|
|
99
|
-
password: '',
|
|
100
|
-
newpassword:''
|
|
101
|
-
},
|
|
102
|
-
showpass:false
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
props: {
|
|
106
|
-
sourse:'',
|
|
107
|
-
weakPassword:false
|
|
108
|
-
},
|
|
109
|
-
ready () {
|
|
110
|
-
|
|
111
|
-
},
|
|
112
|
-
methods: {
|
|
113
|
-
back () {
|
|
114
|
-
let _this = this
|
|
115
|
-
this.$showMessage('所填写内容将不可恢复!', ['confirm', 'cancel']).then((res) => {
|
|
116
|
-
if (res === 'confirm') {
|
|
117
|
-
_this.$back()
|
|
118
|
-
}
|
|
119
|
-
})
|
|
120
|
-
},
|
|
121
|
-
// showpass(){
|
|
122
|
-
// console.log('1')
|
|
123
|
-
// document.getElementById("oldpassword").type = "text"
|
|
124
|
-
// },
|
|
125
|
-
showon(){
|
|
126
|
-
this.showpass = true
|
|
127
|
-
document.getElementById("oldpassword").type = "text"
|
|
128
|
-
document.getElementById("newpassword1").type = "text"
|
|
129
|
-
document.getElementById("newpassword2").type = "text"
|
|
130
|
-
},
|
|
131
|
-
showoff(){
|
|
132
|
-
this.showpass = false
|
|
133
|
-
document.getElementById("oldpassword").type = "password"
|
|
134
|
-
document.getElementById("newpassword1").type = "password"
|
|
135
|
-
document.getElementById("newpassword2").type = "password"
|
|
136
|
-
},
|
|
137
|
-
save() {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
if(this.
|
|
144
|
-
this.$showMessage('
|
|
145
|
-
return
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
.
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
}
|
|
170
|
-
.btn-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
}
|
|
179
|
-
.
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
1
|
+
<template>
|
|
2
|
+
<!--<div class="app-botton" @click="back()">-->
|
|
3
|
+
<!--<span class="glyphicon glyphicon-menu-left">返回</span>-->
|
|
4
|
+
<!--</div>-->
|
|
5
|
+
<div class="auto">
|
|
6
|
+
<div class="row app-row">
|
|
7
|
+
<div class="col-xs-4">
|
|
8
|
+
<img src="../assets/姓名.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
9
|
+
<span class="text-left font">账号</span>
|
|
10
|
+
</div>
|
|
11
|
+
<div class="col-xs-8 input-font">
|
|
12
|
+
<input type="text" class="search_input input-font" v-model="model.ename" readonly/>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="row app-row">
|
|
16
|
+
<div class="col-xs-4" style="margin-top: 8px">
|
|
17
|
+
<img src="../assets/原始密码.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
18
|
+
<span class="text-left font">原始密码</span>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="col-xs-8">
|
|
21
|
+
<input type="password" id="oldpassword" class="search_input input-font" v-model="model.oldpassword" placeholder="请输入原始密码"/>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
<div class="row app-row">
|
|
25
|
+
<div class="col-xs-4" style="margin-top: 8px">
|
|
26
|
+
<img src="../assets/密码.png" style="width: 20px;margin-bottom: 5px" >
|
|
27
|
+
<span class="text-left font">新密码</span>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="col-xs-8">
|
|
30
|
+
<input type="password" id="newpassword1" class="search_input input-font" v-model="model.password" :placeholder="weakPassword?'需要包含大小写字母符号数字':'请输入新密码'"/>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
<div class="row app-row">
|
|
34
|
+
<div class="col-xs-4" style="margin-top: 8px">
|
|
35
|
+
<img src="../assets/密码.png" style="width: 20px;margin-bottom: 5px" alt="">
|
|
36
|
+
<span class="text-left font">确认密码</span>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="col-xs-8">
|
|
39
|
+
<input type="password" id="newpassword2" class="search_input input-font" v-model="model.newpassword" placeholder="请重新输入新密码"/>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="row app-row">
|
|
43
|
+
<div class="col-xs-4" style="margin-top: 8px">
|
|
44
|
+
<img src="../assets/选中.png" style="width: 20px;margin-bottom: 5px" alt="" v-if="showpass"@click="showoff()">
|
|
45
|
+
<img src="../assets/未选.png" style="width: 20px;margin-bottom: 5px" alt="" v-if="!showpass" @click="showon()">
|
|
46
|
+
<span class="text-left font">显示密码</span>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="row app-row text-center">
|
|
50
|
+
<button type="button" class="btn btn-lg btn-font btn-color" style="width: 45%;" @click="save()">提交</button>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
</template>
|
|
54
|
+
<script>
|
|
55
|
+
import Vue from 'vue'
|
|
56
|
+
|
|
57
|
+
let asyncCheck = async function(self,url) {
|
|
58
|
+
try {
|
|
59
|
+
let that = self
|
|
60
|
+
let user = {
|
|
61
|
+
ename: that.model.ename,
|
|
62
|
+
newpassword:that.model.password,
|
|
63
|
+
affirmpassword:that.model.newpassword,
|
|
64
|
+
password : that.model.oldpassword
|
|
65
|
+
}
|
|
66
|
+
let res = await Vue.resetpost(`${url}/rs/user/modifypwd`,{data: user },{resolveMsg: null, rejectMsg: null})
|
|
67
|
+
console.log("手机端验证登陆原始密码")
|
|
68
|
+
console.log(res.data)
|
|
69
|
+
if(res.data){
|
|
70
|
+
that.$showMessage('修改密码成功!')
|
|
71
|
+
if(that.sourse == 'login'){
|
|
72
|
+
that.$emit('success',that.model.password)
|
|
73
|
+
return
|
|
74
|
+
}
|
|
75
|
+
that.$back()
|
|
76
|
+
}else {
|
|
77
|
+
that.$showMessage('修改密码失败,请重新输入!')
|
|
78
|
+
console.log(res.data)
|
|
79
|
+
return
|
|
80
|
+
}
|
|
81
|
+
} catch (error) {
|
|
82
|
+
if (error.status == 500) {
|
|
83
|
+
that.$showMessage('网络异常,请检查手机网络!')
|
|
84
|
+
}else{
|
|
85
|
+
throw error
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export default {
|
|
91
|
+
title: '修改密码',
|
|
92
|
+
data () {
|
|
93
|
+
return {
|
|
94
|
+
model: {
|
|
95
|
+
user: Vue.user.name,
|
|
96
|
+
userid: Vue.user.id,
|
|
97
|
+
ename: Vue.user.ename,
|
|
98
|
+
oldpassword: '',
|
|
99
|
+
password: '',
|
|
100
|
+
newpassword:''
|
|
101
|
+
},
|
|
102
|
+
showpass:false
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
props: {
|
|
106
|
+
sourse:'',
|
|
107
|
+
weakPassword:false
|
|
108
|
+
},
|
|
109
|
+
ready () {
|
|
110
|
+
|
|
111
|
+
},
|
|
112
|
+
methods: {
|
|
113
|
+
back () {
|
|
114
|
+
let _this = this
|
|
115
|
+
this.$showMessage('所填写内容将不可恢复!', ['confirm', 'cancel']).then((res) => {
|
|
116
|
+
if (res === 'confirm') {
|
|
117
|
+
_this.$back()
|
|
118
|
+
}
|
|
119
|
+
})
|
|
120
|
+
},
|
|
121
|
+
// showpass(){
|
|
122
|
+
// console.log('1')
|
|
123
|
+
// document.getElementById("oldpassword").type = "text"
|
|
124
|
+
// },
|
|
125
|
+
showon(){
|
|
126
|
+
this.showpass = true
|
|
127
|
+
document.getElementById("oldpassword").type = "text"
|
|
128
|
+
document.getElementById("newpassword1").type = "text"
|
|
129
|
+
document.getElementById("newpassword2").type = "text"
|
|
130
|
+
},
|
|
131
|
+
showoff(){
|
|
132
|
+
this.showpass = false
|
|
133
|
+
document.getElementById("oldpassword").type = "password"
|
|
134
|
+
document.getElementById("newpassword1").type = "password"
|
|
135
|
+
document.getElementById("newpassword2").type = "password"
|
|
136
|
+
},
|
|
137
|
+
save() {
|
|
138
|
+
if (this.model.password == '' || this.model.newpassword == ''){
|
|
139
|
+
this.$showMessage('密码不能为空!')
|
|
140
|
+
return
|
|
141
|
+
}
|
|
142
|
+
// 先对新密码和确认密码是否一致
|
|
143
|
+
if (this.model.password != this.model.newpassword) {
|
|
144
|
+
this.$showMessage('两次输入密码不一致!')
|
|
145
|
+
return
|
|
146
|
+
}
|
|
147
|
+
if(this.weakPassword && this.model.password && !(/^(?:(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])).*$/.test(this.model.password))){
|
|
148
|
+
this.$showMessage('新密码必须包含大小写字母、数字、符号!')
|
|
149
|
+
return
|
|
150
|
+
}
|
|
151
|
+
// 检验原始密码是否符合 并修改密码
|
|
152
|
+
asyncCheck(this, this.$androidUtil.getProxyUrl())
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
</script>
|
|
157
|
+
<style>
|
|
158
|
+
.search_input {
|
|
159
|
+
border: 0;
|
|
160
|
+
outline: none;
|
|
161
|
+
}
|
|
162
|
+
.app-row {
|
|
163
|
+
background-color: white;
|
|
164
|
+
padding: 10px 10px 0 10px;
|
|
165
|
+
border-bottom: 1px solid rgba(235, 235, 235, 0.5);
|
|
166
|
+
}
|
|
167
|
+
.font{
|
|
168
|
+
font: 15px PingFang-SC-Medium;
|
|
169
|
+
}
|
|
170
|
+
.btn-font{
|
|
171
|
+
font:600 16px PingFang-SC-Bold;
|
|
172
|
+
color: #499EDF;
|
|
173
|
+
}
|
|
174
|
+
.btn-color{
|
|
175
|
+
background-color: #FFFFFF;
|
|
176
|
+
border-radius: 10px ;
|
|
177
|
+
border: 1px solid #499EDF;
|
|
178
|
+
}
|
|
179
|
+
.input-font{
|
|
180
|
+
font: 15px PingFang-SC-Medium;
|
|
181
|
+
color: #333333;
|
|
182
|
+
}
|
|
183
|
+
.app-botton {
|
|
184
|
+
position:fixed;
|
|
185
|
+
background: #87b2dd;
|
|
186
|
+
color: #FFF;
|
|
187
|
+
padding: 8px;
|
|
188
|
+
text-align: center;
|
|
189
|
+
font-size: 1.2em;
|
|
190
|
+
z-index: 10;
|
|
191
|
+
opacity:0.5;
|
|
192
|
+
bottom: 50px;
|
|
193
|
+
margin-top: -10px;
|
|
194
|
+
height: 40px;
|
|
195
|
+
}
|
|
196
|
+
</style>
|