system-phone 3.1.36 → 3.1.38
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 +100 -100
- package/src/components/AlreadyService.vue +210 -210
- package/src/components/AttendManage.vue +591 -591
- package/src/components/LoginAppV4.vue +12 -6
- package/src/components/ModifyPassWord.vue +1 -1
- package/src/components/OnlineManage.vue +278 -278
- package/src/components/iot/InstructMessage.vue +313 -313
- package/src/components/iot/IotBaseInfo.vue +97 -97
|
@@ -71,11 +71,16 @@ let asyncReady = async function (self, url) {
|
|
|
71
71
|
await self.$appdata.load()
|
|
72
72
|
console.log('获取营收配置文件和参数【结束】,开始获取vue配置文件【开始】')
|
|
73
73
|
let that = self
|
|
74
|
-
|
|
74
|
+
let vueConfig={}
|
|
75
|
+
let dir_module = []
|
|
75
76
|
const res = await Vue.resetget(`${url}/api/af-safecheck/vue`, {data: {}}, {resolveMsg: null, rejectMsg: null})
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
if(res.data.global){
|
|
78
|
+
self.delConfigKey(res.data)
|
|
79
|
+
dir_module = res.data.global.dir_module
|
|
80
|
+
vueConfig.safecheck = res.data
|
|
81
|
+
} else {
|
|
82
|
+
vueConfig = res.data
|
|
83
|
+
}
|
|
79
84
|
for(let mod in dir_module) {
|
|
80
85
|
if (dir_module[mod].name !== 'af-safecheck') {
|
|
81
86
|
let mod_url = `${url}/api/${dir_module[mod].name}/vue`
|
|
@@ -100,6 +105,7 @@ let asyncReady = async function (self, url) {
|
|
|
100
105
|
// 判断是否需要弱密码校验
|
|
101
106
|
if (self.config && self.config.telephone && self.config.telephone.LoginApp && 'undefined' != typeof self.config.telephone.LoginApp.weakPassword) {
|
|
102
107
|
self.weakPassword = self.config.telephone.LoginApp.weakPassword
|
|
108
|
+
Vue.weakPassword = self.config.telephone.LoginApp.weakPassword
|
|
103
109
|
}
|
|
104
110
|
console.log('手机端获取.json文件')
|
|
105
111
|
console.log(JSON.stringify(self.config))
|
|
@@ -344,7 +350,7 @@ export default {
|
|
|
344
350
|
}
|
|
345
351
|
}
|
|
346
352
|
// 获取参数
|
|
347
|
-
|
|
353
|
+
console.log('获取参数system以及安检参数')
|
|
348
354
|
const flag = await asyncReady(this, this.$androidUtil.getProxyUrl())
|
|
349
355
|
if (!flag) {
|
|
350
356
|
this.loaderShow = false
|
|
@@ -354,7 +360,7 @@ export default {
|
|
|
354
360
|
console.log('获取参数结束')
|
|
355
361
|
this.loaderShow = false
|
|
356
362
|
// 弱口令验证
|
|
357
|
-
if (this.weakPassword && !(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(
|
|
363
|
+
if (this.weakPassword && !(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*(),.?":{}|<>~`+=_\\-])[A-Za-z\d!@#$%^&*(),.?":{}|<>~`+=_\\-]{8,}$/.test(this.password))) {
|
|
358
364
|
await this.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm'])
|
|
359
365
|
this.modifyPassword = true
|
|
360
366
|
return
|
|
@@ -158,7 +158,7 @@ export default {
|
|
|
158
158
|
this.$showMessage('两次输入密码不一致!')
|
|
159
159
|
return
|
|
160
160
|
}
|
|
161
|
-
if (
|
|
161
|
+
if (Vue.weakPassword && !(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*(),.?":{}|<>~`+=_\\-])[A-Za-z\d!@#$%^&*(),.?":{}|<>~`+=_\\-]{8,}$/.test(this.model.password))) {
|
|
162
162
|
this.$showMessage("密码必须是8~16位数字与大小字母外加特殊字符的组合,并且不能出现类似'123','abc'等连贯数字或者字母")
|
|
163
163
|
return
|
|
164
164
|
}
|
|
@@ -1,278 +1,278 @@
|
|
|
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,tab.navigate)">
|
|
6
|
-
<div class="badge" v-show="tab.name == '维修派发' && isShowRedNum && isShowRedNum == 'true'">
|
|
7
|
-
<div class="badge-content">{{ pointNum ? pointNum : 0 }}</div>
|
|
8
|
-
</div>
|
|
9
|
-
<div class="badge" v-show="tab.name == '抄表待办' && isShowRedNum && isShowRedNum == 'true'">
|
|
10
|
-
<div class="badge-content">{{ meterNum ? meterNum : 0 }}</div>
|
|
11
|
-
</div>
|
|
12
|
-
<div class="badge" v-show="tab.name == '信息公告' && isShowRedNum && isShowRedNum == 'true'">
|
|
13
|
-
<div class="badge-content">{{ infoNum ? infoNum : 0 }}</div>
|
|
14
|
-
</div>
|
|
15
|
-
<div class="badge" v-show="tab.name == '在线接单' && onlineAcceptOrdersShow && onlineAcceptOrdersShow == 'true'">
|
|
16
|
-
<div class="badge-content">{{ onlineAcceptOrders ? onlineAcceptOrders : 0 }}</div>
|
|
17
|
-
</div>
|
|
18
|
-
<img class="imgs" :src="imgback(tab.name)" alt="">
|
|
19
|
-
<p></p>
|
|
20
|
-
<p class="pagesfoot">{{ tab.name }}</p>
|
|
21
|
-
<!--<p class="pagesfoot">{{tab.name}} {{tab.icon}}</p>-->
|
|
22
|
-
<p></p>
|
|
23
|
-
</div>
|
|
24
|
-
</div>
|
|
25
|
-
<!--<div class="row" style="overflow:auto;">-->
|
|
26
|
-
<!--<repair-first v-show="componentName == 'repair-first'" worktype="报修单" :sourcet="sourcet" tabname="维修待办" v-on:changesum="changesum"></repair-first>-->
|
|
27
|
-
<!--<zhihuan-first v-show="componentName == 'zhihuan-first'" worktype="置换通气单" :sourcet="sourcet" tabname="置换待办" v-on:changesum="changesum"></zhihuan-first>-->
|
|
28
|
-
<!--</div>-->
|
|
29
|
-
</div>
|
|
30
|
-
</div>
|
|
31
|
-
</template>
|
|
32
|
-
|
|
33
|
-
<script scoped>
|
|
34
|
-
import Vue from 'vue'
|
|
35
|
-
import {HttpResetClass} from "vue-client";
|
|
36
|
-
import * as Util from "../Util";
|
|
37
|
-
|
|
38
|
-
export default {
|
|
39
|
-
title: '在线业务导航',
|
|
40
|
-
data() {
|
|
41
|
-
return {
|
|
42
|
-
titleName: '在线业务',
|
|
43
|
-
isMenu: true,
|
|
44
|
-
tabs: this.getTabs(),
|
|
45
|
-
text: '导航组件this',
|
|
46
|
-
onlineAcceptOrders:0,
|
|
47
|
-
isShowRedNum:this.$appdata.getSingleValue('手机端获取任务条数'),
|
|
48
|
-
onlineAcceptOrdersShow:this.$appdata.getSingleValue('在线接单红点提醒'),
|
|
49
|
-
beforeName: '在线业务',
|
|
50
|
-
sourcet: '竖屏',
|
|
51
|
-
pointNum: null,
|
|
52
|
-
infoNum: null,
|
|
53
|
-
meterNum: null
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
ready() {
|
|
57
|
-
this.getRepairNum()
|
|
58
|
-
this.getInfoNum()
|
|
59
|
-
this.getOnlineAcceptOrders()
|
|
60
|
-
this.getmeterNum()
|
|
61
|
-
},
|
|
62
|
-
methods: {
|
|
63
|
-
getOnlineAcceptOrders(){
|
|
64
|
-
if(!this.onlineAcceptOrdersShow || !this.onlineAcceptOrdersShow == 'true'){
|
|
65
|
-
return
|
|
66
|
-
}
|
|
67
|
-
const val = {
|
|
68
|
-
condition: {
|
|
69
|
-
condition: `f_workorder_type like '%报修单%' and f_filiale_id = '${Vue.user.orgid}'`,
|
|
70
|
-
userid : Vue.user.name
|
|
71
|
-
},
|
|
72
|
-
userid: Vue.user.name
|
|
73
|
-
};
|
|
74
|
-
let http = new HttpResetClass()
|
|
75
|
-
http.load('POST', `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/phoneOperatorService`, {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
76
|
-
this.onlineAcceptOrders = res.data.length
|
|
77
|
-
})
|
|
78
|
-
},
|
|
79
|
-
changesum(titdata) {
|
|
80
|
-
for (var i = 0; i < this.tabs.length; i++) {
|
|
81
|
-
if (this.tabs[i].name == titdata.title) {
|
|
82
|
-
this.tabs[i].icon = titdata.sum + '单'
|
|
83
|
-
console.log(JSON.stringify(this.tabs[i].icon))
|
|
84
|
-
return
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
getTabs() {
|
|
89
|
-
for (let funs in Vue.functions) {
|
|
90
|
-
if (Vue.functions[funs].link == 'online-manage') {
|
|
91
|
-
return Vue.functions[funs].children
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
this.getRepairNum()
|
|
95
|
-
this.getInfoNum()
|
|
96
|
-
this.getmeterNum()
|
|
97
|
-
},
|
|
98
|
-
getmeterNum() {
|
|
99
|
-
if (!this.isShowRedNum || this.isShowRedNum != 'true') {
|
|
100
|
-
return
|
|
101
|
-
}
|
|
102
|
-
this.timeOutGetmeterNum()
|
|
103
|
-
},
|
|
104
|
-
getInfoNum() {
|
|
105
|
-
if (!this.isShowRedNum || this.isShowRedNum != 'true') {
|
|
106
|
-
return
|
|
107
|
-
}
|
|
108
|
-
this.timeOutGetInfoNum()
|
|
109
|
-
},
|
|
110
|
-
getRepairNum() {
|
|
111
|
-
if (!this.isShowRedNum || this.isShowRedNum != 'true') {
|
|
112
|
-
return
|
|
113
|
-
}
|
|
114
|
-
this.timeOutGetRepairNum()
|
|
115
|
-
},
|
|
116
|
-
timeOutGetRepairNum() {
|
|
117
|
-
let condition = `1 = 1 and f_workorder_type = '报修单' and f_state = null `
|
|
118
|
-
let val = {
|
|
119
|
-
condition: {
|
|
120
|
-
condition: condition,
|
|
121
|
-
sign: '1 = 1'
|
|
122
|
-
},
|
|
123
|
-
userid: Vue.user.name
|
|
124
|
-
}
|
|
125
|
-
let http = new HttpResetClass()
|
|
126
|
-
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/path/operatorServiceAndroid`, {data: val}, {
|
|
127
|
-
resolveMsg: null,
|
|
128
|
-
rejectMsg: null
|
|
129
|
-
}).then((res) => {
|
|
130
|
-
this.pointNum = res.data.length
|
|
131
|
-
})
|
|
132
|
-
},
|
|
133
|
-
timeOutGetInfoNum() {
|
|
134
|
-
let condition = " 1 = 1 and (f_enddate >= '" + Util.toStandardTimeString() + "' or f_state = '公告中') "
|
|
135
|
-
let val = {
|
|
136
|
-
items: "count(*) as count_num",
|
|
137
|
-
tablename: "T_STOPGAS",
|
|
138
|
-
orderitem: "1",
|
|
139
|
-
condition: condition,
|
|
140
|
-
f_orgstr: `'${Vue.user.orgid}'`
|
|
141
|
-
}
|
|
142
|
-
let http = new HttpResetClass()
|
|
143
|
-
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {data: val}, {
|
|
144
|
-
resolveMsg: null,
|
|
145
|
-
rejectMsg: null
|
|
146
|
-
}).then((res) => {
|
|
147
|
-
this.infoNum = res.data[0].count_num
|
|
148
|
-
})
|
|
149
|
-
},
|
|
150
|
-
timeOutGetmeterNum() {
|
|
151
|
-
let val = {
|
|
152
|
-
items: "count(*) as count_num",
|
|
153
|
-
tablename: "t_handplan",
|
|
154
|
-
orderitem: "1",
|
|
155
|
-
condition: `1=1 and f_inputtor = '${Vue.user.name}' and f_hand_state = '有效' and f_meter_state = '未抄表'`,
|
|
156
|
-
f_orgid: `'${Vue.user.orgid}'`
|
|
157
|
-
}
|
|
158
|
-
let http = new HttpResetClass()
|
|
159
|
-
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {data: val}, {
|
|
160
|
-
resolveMsg: null,
|
|
161
|
-
rejectMsg: null
|
|
162
|
-
}).then((res) => {
|
|
163
|
-
this.meterNum = res.data[0].count_num
|
|
164
|
-
})
|
|
165
|
-
},
|
|
166
|
-
imgback(val) {
|
|
167
|
-
return require('../assets/' + val + '.png')
|
|
168
|
-
},
|
|
169
|
-
// 返回主界面
|
|
170
|
-
back() {
|
|
171
|
-
this.titleName = '主界面'
|
|
172
|
-
this.isMenu = true
|
|
173
|
-
|
|
174
|
-
},
|
|
175
|
-
gotopage(param, title, navigate) {
|
|
176
|
-
console.log('进入子组件')
|
|
177
|
-
var prpdata = {
|
|
178
|
-
_this: this,
|
|
179
|
-
title: title,
|
|
180
|
-
safe: false
|
|
181
|
-
}
|
|
182
|
-
this.$dispatch('gotoson', prpdata)
|
|
183
|
-
if (navigate) {
|
|
184
|
-
this.$goto('embbed-page', {domainName: navigate, title: title, compName: param, login: Vue.user})
|
|
185
|
-
} else {
|
|
186
|
-
this.$goto(param, {sourcet: '竖屏', tabname: title},'self',this.getTabs)
|
|
187
|
-
}
|
|
188
|
-
},
|
|
189
|
-
mute() {
|
|
190
|
-
HostApp.mute()
|
|
191
|
-
}
|
|
192
|
-
},
|
|
193
|
-
}
|
|
194
|
-
</script>
|
|
195
|
-
<style lang="less">
|
|
196
|
-
.badge-content {
|
|
197
|
-
color: #fff;
|
|
198
|
-
box-sizing: border-box;
|
|
199
|
-
min-width: 8px;
|
|
200
|
-
font-size: 9px;
|
|
201
|
-
line-height: 12px;
|
|
202
|
-
white-space: nowrap;
|
|
203
|
-
font-weight: 400;
|
|
204
|
-
text-align: center;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
.badge {
|
|
208
|
-
top: 6px;
|
|
209
|
-
position: absolute;
|
|
210
|
-
max-height: 13px;
|
|
211
|
-
min-height: 8px;
|
|
212
|
-
right: 0;
|
|
213
|
-
display: inline-flex;
|
|
214
|
-
vertical-align: middle;
|
|
215
|
-
box-sizing: content-box;
|
|
216
|
-
border-radius: 100px;
|
|
217
|
-
background-color: red;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
.tab-befor-img {
|
|
221
|
-
content: '';
|
|
222
|
-
background-size: 30px;
|
|
223
|
-
display: inline-block;
|
|
224
|
-
margin-right: 8px;
|
|
225
|
-
height: 30px;
|
|
226
|
-
width: 30px;
|
|
227
|
-
vertical-align: -35%;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
.pageskuang {
|
|
231
|
-
vertical-align: middle;
|
|
232
|
-
display: table-cell;
|
|
233
|
-
width: 32%;
|
|
234
|
-
top: -50%;
|
|
235
|
-
margin-top: 1%;
|
|
236
|
-
margin-left: 1%;
|
|
237
|
-
border: 1px solid #e3e3e3;
|
|
238
|
-
text-align: center;
|
|
239
|
-
background-color: #ffffff;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
.pgesfoot {
|
|
243
|
-
font-size: 14px;
|
|
244
|
-
color: #666666;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
.imgs {
|
|
248
|
-
width: 35px;
|
|
249
|
-
height: 35px;
|
|
250
|
-
margin-top: 15px;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
.pages-bgcolor {
|
|
254
|
-
text-align: center;
|
|
255
|
-
background-color: #f0f0ef;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
img[src=""], img:not([src]) {
|
|
259
|
-
opacity: 0;
|
|
260
|
-
border: none;
|
|
261
|
-
visibility: hidden;
|
|
262
|
-
max-width: none;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
.manbiankuang {
|
|
266
|
-
width: 44%;
|
|
267
|
-
margin-top: 15px;
|
|
268
|
-
margin-left: 4%;
|
|
269
|
-
border: 1px solid #e3e3e3;
|
|
270
|
-
border-radius: 10px 10px 10px 10px;
|
|
271
|
-
text-align: center;
|
|
272
|
-
background-color: #ffffff;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
.nav-bgcolor {
|
|
276
|
-
background-color: #ffffff;
|
|
277
|
-
}
|
|
278
|
-
</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,tab.navigate)">
|
|
6
|
+
<div class="badge" v-show="tab.name == '维修派发' && isShowRedNum && isShowRedNum == 'true'">
|
|
7
|
+
<div class="badge-content">{{ pointNum ? pointNum : 0 }}</div>
|
|
8
|
+
</div>
|
|
9
|
+
<div class="badge" v-show="tab.name == '抄表待办' && isShowRedNum && isShowRedNum == 'true'">
|
|
10
|
+
<div class="badge-content">{{ meterNum ? meterNum : 0 }}</div>
|
|
11
|
+
</div>
|
|
12
|
+
<div class="badge" v-show="tab.name == '信息公告' && isShowRedNum && isShowRedNum == 'true'">
|
|
13
|
+
<div class="badge-content">{{ infoNum ? infoNum : 0 }}</div>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="badge" v-show="tab.name == '在线接单' && onlineAcceptOrdersShow && onlineAcceptOrdersShow == 'true'">
|
|
16
|
+
<div class="badge-content">{{ onlineAcceptOrders ? onlineAcceptOrders : 0 }}</div>
|
|
17
|
+
</div>
|
|
18
|
+
<img class="imgs" :src="imgback(tab.name)" alt="">
|
|
19
|
+
<p></p>
|
|
20
|
+
<p class="pagesfoot">{{ tab.name }}</p>
|
|
21
|
+
<!--<p class="pagesfoot">{{tab.name}} {{tab.icon}}</p>-->
|
|
22
|
+
<p></p>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
<!--<div class="row" style="overflow:auto;">-->
|
|
26
|
+
<!--<repair-first v-show="componentName == 'repair-first'" worktype="报修单" :sourcet="sourcet" tabname="维修待办" v-on:changesum="changesum"></repair-first>-->
|
|
27
|
+
<!--<zhihuan-first v-show="componentName == 'zhihuan-first'" worktype="置换通气单" :sourcet="sourcet" tabname="置换待办" v-on:changesum="changesum"></zhihuan-first>-->
|
|
28
|
+
<!--</div>-->
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
</template>
|
|
32
|
+
|
|
33
|
+
<script scoped>
|
|
34
|
+
import Vue from 'vue'
|
|
35
|
+
import {HttpResetClass} from "vue-client";
|
|
36
|
+
import * as Util from "../Util";
|
|
37
|
+
|
|
38
|
+
export default {
|
|
39
|
+
title: '在线业务导航',
|
|
40
|
+
data() {
|
|
41
|
+
return {
|
|
42
|
+
titleName: '在线业务',
|
|
43
|
+
isMenu: true,
|
|
44
|
+
tabs: this.getTabs(),
|
|
45
|
+
text: '导航组件this',
|
|
46
|
+
onlineAcceptOrders:0,
|
|
47
|
+
isShowRedNum:this.$appdata.getSingleValue('手机端获取任务条数'),
|
|
48
|
+
onlineAcceptOrdersShow:this.$appdata.getSingleValue('在线接单红点提醒'),
|
|
49
|
+
beforeName: '在线业务',
|
|
50
|
+
sourcet: '竖屏',
|
|
51
|
+
pointNum: null,
|
|
52
|
+
infoNum: null,
|
|
53
|
+
meterNum: null
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
ready() {
|
|
57
|
+
this.getRepairNum()
|
|
58
|
+
this.getInfoNum()
|
|
59
|
+
this.getOnlineAcceptOrders()
|
|
60
|
+
this.getmeterNum()
|
|
61
|
+
},
|
|
62
|
+
methods: {
|
|
63
|
+
getOnlineAcceptOrders(){
|
|
64
|
+
if(!this.onlineAcceptOrdersShow || !this.onlineAcceptOrdersShow == 'true'){
|
|
65
|
+
return
|
|
66
|
+
}
|
|
67
|
+
const val = {
|
|
68
|
+
condition: {
|
|
69
|
+
condition: `f_workorder_type like '%报修单%' and f_filiale_id = '${Vue.user.orgid}'`,
|
|
70
|
+
userid : Vue.user.name
|
|
71
|
+
},
|
|
72
|
+
userid: Vue.user.name
|
|
73
|
+
};
|
|
74
|
+
let http = new HttpResetClass()
|
|
75
|
+
http.load('POST', `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/phoneOperatorService`, {data: val}, {resolveMsg: null, rejectMsg: null}).then((res) => {
|
|
76
|
+
this.onlineAcceptOrders = res.data.length
|
|
77
|
+
})
|
|
78
|
+
},
|
|
79
|
+
changesum(titdata) {
|
|
80
|
+
for (var i = 0; i < this.tabs.length; i++) {
|
|
81
|
+
if (this.tabs[i].name == titdata.title) {
|
|
82
|
+
this.tabs[i].icon = titdata.sum + '单'
|
|
83
|
+
console.log(JSON.stringify(this.tabs[i].icon))
|
|
84
|
+
return
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
getTabs() {
|
|
89
|
+
for (let funs in Vue.functions) {
|
|
90
|
+
if (Vue.functions[funs].link == 'online-manage') {
|
|
91
|
+
return Vue.functions[funs].children
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
this.getRepairNum()
|
|
95
|
+
this.getInfoNum()
|
|
96
|
+
this.getmeterNum()
|
|
97
|
+
},
|
|
98
|
+
getmeterNum() {
|
|
99
|
+
if (!this.isShowRedNum || this.isShowRedNum != 'true') {
|
|
100
|
+
return
|
|
101
|
+
}
|
|
102
|
+
this.timeOutGetmeterNum()
|
|
103
|
+
},
|
|
104
|
+
getInfoNum() {
|
|
105
|
+
if (!this.isShowRedNum || this.isShowRedNum != 'true') {
|
|
106
|
+
return
|
|
107
|
+
}
|
|
108
|
+
this.timeOutGetInfoNum()
|
|
109
|
+
},
|
|
110
|
+
getRepairNum() {
|
|
111
|
+
if (!this.isShowRedNum || this.isShowRedNum != 'true') {
|
|
112
|
+
return
|
|
113
|
+
}
|
|
114
|
+
this.timeOutGetRepairNum()
|
|
115
|
+
},
|
|
116
|
+
timeOutGetRepairNum() {
|
|
117
|
+
let condition = `1 = 1 and f_workorder_type = '报修单' and f_state = null `
|
|
118
|
+
let val = {
|
|
119
|
+
condition: {
|
|
120
|
+
condition: condition,
|
|
121
|
+
sign: '1 = 1'
|
|
122
|
+
},
|
|
123
|
+
userid: Vue.user.name
|
|
124
|
+
}
|
|
125
|
+
let http = new HttpResetClass()
|
|
126
|
+
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/path/operatorServiceAndroid`, {data: val}, {
|
|
127
|
+
resolveMsg: null,
|
|
128
|
+
rejectMsg: null
|
|
129
|
+
}).then((res) => {
|
|
130
|
+
this.pointNum = res.data.length
|
|
131
|
+
})
|
|
132
|
+
},
|
|
133
|
+
timeOutGetInfoNum() {
|
|
134
|
+
let condition = " 1 = 1 and (f_enddate >= '" + Util.toStandardTimeString() + "' or f_state = '公告中') "
|
|
135
|
+
let val = {
|
|
136
|
+
items: "count(*) as count_num",
|
|
137
|
+
tablename: "T_STOPGAS",
|
|
138
|
+
orderitem: "1",
|
|
139
|
+
condition: condition,
|
|
140
|
+
f_orgstr: `'${Vue.user.orgid}'`
|
|
141
|
+
}
|
|
142
|
+
let http = new HttpResetClass()
|
|
143
|
+
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {data: val}, {
|
|
144
|
+
resolveMsg: null,
|
|
145
|
+
rejectMsg: null
|
|
146
|
+
}).then((res) => {
|
|
147
|
+
this.infoNum = res.data[0].count_num
|
|
148
|
+
})
|
|
149
|
+
},
|
|
150
|
+
timeOutGetmeterNum() {
|
|
151
|
+
let val = {
|
|
152
|
+
items: "count(*) as count_num",
|
|
153
|
+
tablename: "t_handplan",
|
|
154
|
+
orderitem: "1",
|
|
155
|
+
condition: `1=1 and f_inputtor = '${Vue.user.name}' and f_hand_state = '有效' and f_meter_state = '未抄表'`,
|
|
156
|
+
f_orgid: `'${Vue.user.orgid}'`
|
|
157
|
+
}
|
|
158
|
+
let http = new HttpResetClass()
|
|
159
|
+
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {data: val}, {
|
|
160
|
+
resolveMsg: null,
|
|
161
|
+
rejectMsg: null
|
|
162
|
+
}).then((res) => {
|
|
163
|
+
this.meterNum = res.data[0].count_num
|
|
164
|
+
})
|
|
165
|
+
},
|
|
166
|
+
imgback(val) {
|
|
167
|
+
return require('../assets/' + val + '.png')
|
|
168
|
+
},
|
|
169
|
+
// 返回主界面
|
|
170
|
+
back() {
|
|
171
|
+
this.titleName = '主界面'
|
|
172
|
+
this.isMenu = true
|
|
173
|
+
|
|
174
|
+
},
|
|
175
|
+
gotopage(param, title, navigate) {
|
|
176
|
+
console.log('进入子组件')
|
|
177
|
+
var prpdata = {
|
|
178
|
+
_this: this,
|
|
179
|
+
title: title,
|
|
180
|
+
safe: false
|
|
181
|
+
}
|
|
182
|
+
this.$dispatch('gotoson', prpdata)
|
|
183
|
+
if (navigate) {
|
|
184
|
+
this.$goto('embbed-page', {domainName: navigate, title: title, compName: param, login: Vue.user})
|
|
185
|
+
} else {
|
|
186
|
+
this.$goto(param, {sourcet: '竖屏', tabname: title},'self',this.getTabs)
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
mute() {
|
|
190
|
+
HostApp.mute()
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
}
|
|
194
|
+
</script>
|
|
195
|
+
<style lang="less">
|
|
196
|
+
.badge-content {
|
|
197
|
+
color: #fff;
|
|
198
|
+
box-sizing: border-box;
|
|
199
|
+
min-width: 8px;
|
|
200
|
+
font-size: 9px;
|
|
201
|
+
line-height: 12px;
|
|
202
|
+
white-space: nowrap;
|
|
203
|
+
font-weight: 400;
|
|
204
|
+
text-align: center;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.badge {
|
|
208
|
+
top: 6px;
|
|
209
|
+
position: absolute;
|
|
210
|
+
max-height: 13px;
|
|
211
|
+
min-height: 8px;
|
|
212
|
+
right: 0;
|
|
213
|
+
display: inline-flex;
|
|
214
|
+
vertical-align: middle;
|
|
215
|
+
box-sizing: content-box;
|
|
216
|
+
border-radius: 100px;
|
|
217
|
+
background-color: red;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.tab-befor-img {
|
|
221
|
+
content: '';
|
|
222
|
+
background-size: 30px;
|
|
223
|
+
display: inline-block;
|
|
224
|
+
margin-right: 8px;
|
|
225
|
+
height: 30px;
|
|
226
|
+
width: 30px;
|
|
227
|
+
vertical-align: -35%;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.pageskuang {
|
|
231
|
+
vertical-align: middle;
|
|
232
|
+
display: table-cell;
|
|
233
|
+
width: 32%;
|
|
234
|
+
top: -50%;
|
|
235
|
+
margin-top: 1%;
|
|
236
|
+
margin-left: 1%;
|
|
237
|
+
border: 1px solid #e3e3e3;
|
|
238
|
+
text-align: center;
|
|
239
|
+
background-color: #ffffff;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.pgesfoot {
|
|
243
|
+
font-size: 14px;
|
|
244
|
+
color: #666666;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.imgs {
|
|
248
|
+
width: 35px;
|
|
249
|
+
height: 35px;
|
|
250
|
+
margin-top: 15px;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.pages-bgcolor {
|
|
254
|
+
text-align: center;
|
|
255
|
+
background-color: #f0f0ef;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
img[src=""], img:not([src]) {
|
|
259
|
+
opacity: 0;
|
|
260
|
+
border: none;
|
|
261
|
+
visibility: hidden;
|
|
262
|
+
max-width: none;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.manbiankuang {
|
|
266
|
+
width: 44%;
|
|
267
|
+
margin-top: 15px;
|
|
268
|
+
margin-left: 4%;
|
|
269
|
+
border: 1px solid #e3e3e3;
|
|
270
|
+
border-radius: 10px 10px 10px 10px;
|
|
271
|
+
text-align: center;
|
|
272
|
+
background-color: #ffffff;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
.nav-bgcolor {
|
|
276
|
+
background-color: #ffffff;
|
|
277
|
+
}
|
|
278
|
+
</style>
|