system-phone 3.1.2 → 3.1.4
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
CHANGED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div style="height: 5%;background-color: #499edf;"></div>
|
|
3
|
+
<div style="height: 7%">
|
|
4
|
+
<tools-page :need-back="!isMenu" :title="titleName" @back="back('返回')" > </tools-page>
|
|
5
|
+
</div>
|
|
6
|
+
<div id="app" :class="{'auto':isMenu,'app-height':!isMenu}">
|
|
7
|
+
<div class="row" :style="isMenu?'overflow-y: scroll;overflow-x: hidden;height:80vh':'overflow-y: scroll;overflow-x: hidden;'">
|
|
8
|
+
<route v-ref:route> </route>
|
|
9
|
+
</div>
|
|
10
|
+
<tab-bar @select-item="onClickTabBarItem" v-show="isMenu">
|
|
11
|
+
</tab-bar>
|
|
12
|
+
</div>
|
|
13
|
+
<modal v-if="showFile" :show.sync="showFile" v-ref:modal :backdrop="false" title="业务提醒">
|
|
14
|
+
<header slot="modal-header" class="modal-header">
|
|
15
|
+
<h4 class="modal-title">业务提醒</h4>
|
|
16
|
+
</header>
|
|
17
|
+
<article slot="modal-body" class="modal-body">
|
|
18
|
+
<div class="form-group" style="text-align: center">
|
|
19
|
+
安检代办:{{result.safe[0].safenum}}条,其中预约单{{result.safeorder[0].safeyuyuenum}}条 <br/>
|
|
20
|
+
维修代办:{{result.tel[0].telnum}}条,其中预约单{{result.telorder[0].telyuyuenum}}条<br/>
|
|
21
|
+
报建代办:{{result.apply[0].applynum}}条,其中预约单{{result.applyorder[0].applyyuyuenum}}条<br/>
|
|
22
|
+
</div>
|
|
23
|
+
</article>
|
|
24
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
25
|
+
<button type="button" @click="closeFile" style="background-color: limegreen;color: white">确定</button>
|
|
26
|
+
</footer>
|
|
27
|
+
</modal>
|
|
28
|
+
</template>
|
|
29
|
+
|
|
30
|
+
<script>
|
|
31
|
+
|
|
32
|
+
import {HttpResetClass} from "vue-client";
|
|
33
|
+
import Vue from 'vue'
|
|
34
|
+
export default {
|
|
35
|
+
title: 'app',
|
|
36
|
+
data: function () {
|
|
37
|
+
return {
|
|
38
|
+
item: 0,
|
|
39
|
+
isMenu:true,
|
|
40
|
+
beforeName:'主界面',
|
|
41
|
+
titleName:'待办工作',
|
|
42
|
+
backthis:'',
|
|
43
|
+
safe:false,
|
|
44
|
+
showFile:false,
|
|
45
|
+
beforetabs:[],
|
|
46
|
+
iftabbar:'',
|
|
47
|
+
result:[]
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
ready(){
|
|
51
|
+
let zhi=this.$appdata.getSingleValue('是否开启代办提醒')
|
|
52
|
+
if(zhi=='是'){
|
|
53
|
+
console.log("99999",Vue.user)
|
|
54
|
+
new HttpResetClass().load('post',`${this.$androidUtil.getProxyUrl()}/rs/logic/getModuleUpcoming`,{
|
|
55
|
+
id:Vue.user.id,
|
|
56
|
+
name:Vue.user.name,
|
|
57
|
+
orgid:Vue.user.orgid
|
|
58
|
+
}).then(res=>{
|
|
59
|
+
console.log("888888===>"+JSON.stringify(res.data))
|
|
60
|
+
this.result = res.data
|
|
61
|
+
this.showFile=true
|
|
62
|
+
// this.$showMessage(`你有${result.safe[0].safenum}条需要处理的安检待办业务,<br/>
|
|
63
|
+
// ${result.safeorder[0].safeyuyuenum}条需要处理的安检预约业务,<br/>
|
|
64
|
+
// ${result.tel[0].telnum}条需要处理的维修待办业务,<br/>
|
|
65
|
+
// ${result.telorder[0].telyuyuenum}条需要处理的维修预约业务,<br/>
|
|
66
|
+
// ${result.applyorder[0].applyyuyuenum}条需要处理的报建预约业务,<br/>
|
|
67
|
+
// ${result.apply[0].applynum}条需要处理的报建待办业务`)
|
|
68
|
+
})
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
methods: {
|
|
72
|
+
closeFile(){
|
|
73
|
+
this.showFile=false
|
|
74
|
+
},
|
|
75
|
+
back (flag){
|
|
76
|
+
if(this.safe && flag == '返回' ){
|
|
77
|
+
this.$showMessage('此返回所录入内容将无法找回!', ['confirm', 'cancel']).then((res) => {
|
|
78
|
+
if (res === 'confirm') {
|
|
79
|
+
//this.safe = false 返回父页面后不能修改父级页面定义的 是否返回提示
|
|
80
|
+
this.delback()
|
|
81
|
+
this.backthis.$back()
|
|
82
|
+
this.closeAndDelAudio()
|
|
83
|
+
}
|
|
84
|
+
})
|
|
85
|
+
}else{
|
|
86
|
+
this.delback()
|
|
87
|
+
//this.safe = false 返回父页面后不能修改父级页面定义的 是否返回提示
|
|
88
|
+
this.backthis.$back()
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
delback(){
|
|
92
|
+
// 先确认出 前一个组件的名字
|
|
93
|
+
var title = this.beforeName
|
|
94
|
+
var beforetitle = '主界面'
|
|
95
|
+
var j = -1
|
|
96
|
+
for(var i = 0;i<this.beforetabs.length;i++){
|
|
97
|
+
if(this.beforetabs[i].titleName == title){
|
|
98
|
+
beforetitle = this.beforetabs[i].beforeName
|
|
99
|
+
this.backthis =this.beforetabs[i].backthis
|
|
100
|
+
this.safe = this.beforetabs[i].safe
|
|
101
|
+
j = i
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
this.beforetabs.splice(j + 1, 1)
|
|
106
|
+
this.beforeName = beforetitle
|
|
107
|
+
this.titleName = title
|
|
108
|
+
// 判断是否 显示底层导航
|
|
109
|
+
if(this.iftabbar == this.titleName){
|
|
110
|
+
this.isMenu = true
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
onClickTabBarItem(titlefg) {
|
|
114
|
+
var param = titlefg.link
|
|
115
|
+
if(titlefg.name == '退出系统'){
|
|
116
|
+
this.$showMessage('即将返回登陆界面!', ['confirm', 'cancel']).then((res) => {
|
|
117
|
+
if (res === 'confirm') {
|
|
118
|
+
this.$androidUtil.setPreference('f_repairman_id', 'x')
|
|
119
|
+
this.$androidUtil.setPreference('f_repairman_name', 'x')
|
|
120
|
+
this.$back()
|
|
121
|
+
}
|
|
122
|
+
})
|
|
123
|
+
}else{
|
|
124
|
+
if(this.beforeName == titlefg.name){
|
|
125
|
+
return
|
|
126
|
+
}
|
|
127
|
+
this.titleName = titlefg.name
|
|
128
|
+
this.beforeName = titlefg.name
|
|
129
|
+
let data = {
|
|
130
|
+
sourcet: '竖屏'
|
|
131
|
+
}
|
|
132
|
+
// if(titlefg.name == '待办工单'){
|
|
133
|
+
// param = param+'V'
|
|
134
|
+
// }
|
|
135
|
+
this.$refs.route.init(param,data)
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
closeAndDelAudio() {
|
|
139
|
+
console.log("停止无限制录音")
|
|
140
|
+
HostApp.startOrStopAudioClip("-----","停止录音")
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
events: {
|
|
144
|
+
'gotoson': function (prpdata) {
|
|
145
|
+
// 事件回调内的 `this` 自动绑定到注册它的实例上
|
|
146
|
+
// safe 返回事件是否进行判断后再返回
|
|
147
|
+
// 每进入一次,beforetabs 数组添加 返回 删除
|
|
148
|
+
this.backthis = prpdata._this
|
|
149
|
+
this.safe = prpdata.safe
|
|
150
|
+
this.isMenu = false
|
|
151
|
+
// 记录本次跳转
|
|
152
|
+
var beforedata = {
|
|
153
|
+
beforeName: this.titleName,
|
|
154
|
+
titleName: prpdata.title,
|
|
155
|
+
backthis:prpdata._this,
|
|
156
|
+
safe:prpdata.safe
|
|
157
|
+
}
|
|
158
|
+
this.beforetabs.push(beforedata)
|
|
159
|
+
if( this.beforetabs.length == 1){
|
|
160
|
+
this.iftabbar = beforedata.beforeName
|
|
161
|
+
}
|
|
162
|
+
// 写入跳转后 前后组件名字
|
|
163
|
+
this.beforeName = this.titleName
|
|
164
|
+
this.titleName = prpdata.title
|
|
165
|
+
|
|
166
|
+
console.log('进入子组件,通知外层组件,我已经进入')
|
|
167
|
+
},
|
|
168
|
+
'confirm': function () {
|
|
169
|
+
// 提交处理返回事件
|
|
170
|
+
this.back('提交')
|
|
171
|
+
},
|
|
172
|
+
'backarrdel': function () {
|
|
173
|
+
this.delback()
|
|
174
|
+
},
|
|
175
|
+
'gologin': function () {
|
|
176
|
+
this.beforetabs = []
|
|
177
|
+
this.$back()
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
</script>
|
|
182
|
+
<style scoped>
|
|
183
|
+
.app-height{
|
|
184
|
+
height: 93%;
|
|
185
|
+
}
|
|
186
|
+
</style>
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="page-header app-header auto">
|
|
3
|
+
<span style="margin-left:33px">{{title}}</span>
|
|
4
|
+
<div class="app-header-back" @click='back()' v-show="needBack">
|
|
5
|
+
<img src="../../assets/返回.png" style="height: 20px;margin-right:-10px"/>
|
|
6
|
+
</div>
|
|
7
|
+
<div class="app-header-back" style="height: auto" v-show="!needBack">
|
|
8
|
+
<img src="../../assets/denglu.png" style="height: 20px;margin-right:-10px;margin-top:-10px"/>
|
|
9
|
+
<span style="margin-left:5px;color: #ffffff;font-size: 1.0em;">{{loginname}}</span>
|
|
10
|
+
</div>
|
|
11
|
+
<div class="app-header-list" v-if="showList">
|
|
12
|
+
<dropdown>
|
|
13
|
+
<a href="#" data-toggle="dropdown" class="dropdown-toggle" style="color: white;font-size:19px">
|
|
14
|
+
<div class="app-header-newaddserver" style="line-height: 1px;margin-top: -5px">
|
|
15
|
+
<img src="../../assets/newadd3.png" style="height: 20px;margin-right:-10px"/>
|
|
16
|
+
</div>
|
|
17
|
+
</a>
|
|
18
|
+
<ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-right">
|
|
19
|
+
<li >
|
|
20
|
+
<a href="#" @click="gotopage('sell-info',{user:user})">
|
|
21
|
+
<img src="../../assets/待办工单竖屏3.png"> 报修工单
|
|
22
|
+
</a>
|
|
23
|
+
<hr>
|
|
24
|
+
<a href="#" @click="gotopage('repair-message',{user:user})">
|
|
25
|
+
<img src="../../assets/安检导航竖屏3.png"/> 安检计划
|
|
26
|
+
</a>
|
|
27
|
+
<hr>
|
|
28
|
+
<a href="#" @click="gotopage('changemeter-info',{user:user})">
|
|
29
|
+
<img src="../../assets/手机抄表竖屏3.png"/> 抄表计划
|
|
30
|
+
</a>
|
|
31
|
+
<hr>
|
|
32
|
+
<hr>
|
|
33
|
+
</li>
|
|
34
|
+
</ul>
|
|
35
|
+
</dropdown>
|
|
36
|
+
</div>
|
|
37
|
+
<div class="app-header-guanbishengyin" style="line-height: 25px" @click='mute()'>
|
|
38
|
+
<img v-if="!f_voiceSwitch" src="../../assets/jingyin3.png" style="height: 20px; width: 20px;"/>
|
|
39
|
+
<img v-if="f_voiceSwitch" src="../../assets/yinliang.png" style="height: 20px; width: 20px;"/>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</template>
|
|
43
|
+
|
|
44
|
+
<script>
|
|
45
|
+
import Vue from 'vue'
|
|
46
|
+
export default {
|
|
47
|
+
title: '通用头部组件',
|
|
48
|
+
data () {
|
|
49
|
+
return {
|
|
50
|
+
loginname: Vue.user.name,
|
|
51
|
+
f_voiceSwitch:true
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
props: {
|
|
55
|
+
user:{
|
|
56
|
+
type:Object
|
|
57
|
+
},
|
|
58
|
+
userinfo:{
|
|
59
|
+
type:Object
|
|
60
|
+
},
|
|
61
|
+
// 是否显示列表控件
|
|
62
|
+
showList: {
|
|
63
|
+
type: Boolean,
|
|
64
|
+
default: false
|
|
65
|
+
},
|
|
66
|
+
title: {
|
|
67
|
+
type: String,
|
|
68
|
+
default: '燃气应用'
|
|
69
|
+
},
|
|
70
|
+
needBack: {
|
|
71
|
+
type: Boolean,
|
|
72
|
+
default: true
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
ready(){
|
|
76
|
+
let isShow = this.$appdata.getSingleValue('计划提醒弹窗') || false
|
|
77
|
+
if (isShow){
|
|
78
|
+
let criteria = {
|
|
79
|
+
items: '*',
|
|
80
|
+
tablename: 't_check_plan',
|
|
81
|
+
condition: `1=1`,
|
|
82
|
+
orderitem: 'id'
|
|
83
|
+
}
|
|
84
|
+
let result = HostApp._executeTask({'type':'sql', 'data':{'alias': 'safe_singleTable_OrderBy', 'criteria': criteria}})
|
|
85
|
+
if(result.code == 200){
|
|
86
|
+
result.data.rows.forEach(item=>{
|
|
87
|
+
if (new Date(item.f_end_time) <= new Date() && new Date(item.f_end_time) >= new Date(new Date()).setDate(new Date().getDate()-(this.$appdata.getSingleValue('计划提醒日期') || '7'))){
|
|
88
|
+
HostApp.notify2("提醒:",`计划名称:${item.f_plan_name},计划结束时间:${item.f_end_time},请及时安排安检!`,"true")
|
|
89
|
+
}
|
|
90
|
+
})
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//首次进入默认开启播放
|
|
94
|
+
HostApp.setPreference('f_voiceSwitch','true')
|
|
95
|
+
//是否开启无限制响铃(单值参数配 -1 代表开启无限制响铃)
|
|
96
|
+
HostApp.setPreference('loop',this.$appdata.getSingleValue('loop') || '3')
|
|
97
|
+
},
|
|
98
|
+
methods: {
|
|
99
|
+
// 新增工单
|
|
100
|
+
newadd(){
|
|
101
|
+
// 事件
|
|
102
|
+
},
|
|
103
|
+
// 跳转页面
|
|
104
|
+
gotopage(param,props) {
|
|
105
|
+
this.$goto(param,props)
|
|
106
|
+
},
|
|
107
|
+
back () {
|
|
108
|
+
// console.log('发送返回事件')
|
|
109
|
+
this.$emit('back')
|
|
110
|
+
},
|
|
111
|
+
// 关闭新消息响铃(静音)
|
|
112
|
+
mute () {
|
|
113
|
+
if(navigator.userAgent.match('iPad') || navigator.userAgent.match('iPhone')){
|
|
114
|
+
window.prompt("mute","")
|
|
115
|
+
}else{
|
|
116
|
+
HostApp.mute()
|
|
117
|
+
switch (HostApp.getPreference('f_voiceSwitch').data){
|
|
118
|
+
case 'true' : HostApp.setPreference('f_voiceSwitch','false')
|
|
119
|
+
this.f_voiceSwitch= false
|
|
120
|
+
break
|
|
121
|
+
case 'false' : HostApp.setPreference('f_voiceSwitch','true')
|
|
122
|
+
this.f_voiceSwitch= true
|
|
123
|
+
break
|
|
124
|
+
default : HostApp.setPreference('f_voiceSwitch','true')
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
</script>
|
|
131
|
+
<style scoped>
|
|
132
|
+
.app-header {
|
|
133
|
+
position: fixed;
|
|
134
|
+
top:3%;
|
|
135
|
+
width: 100%;
|
|
136
|
+
margin: 0px;
|
|
137
|
+
background: #499edf;
|
|
138
|
+
color: #FFF;
|
|
139
|
+
padding: 10px;
|
|
140
|
+
text-align: center;
|
|
141
|
+
font-size: 15px;
|
|
142
|
+
height: 7%;
|
|
143
|
+
|
|
144
|
+
/*margin-bottom: 20px;*/
|
|
145
|
+
}
|
|
146
|
+
.app-header-back {
|
|
147
|
+
position: absolute;
|
|
148
|
+
top: 12px;
|
|
149
|
+
color: #D8DCE5;
|
|
150
|
+
}
|
|
151
|
+
.app-header-list {
|
|
152
|
+
height: 40px;
|
|
153
|
+
float: right;
|
|
154
|
+
color: #D8DCE5;
|
|
155
|
+
}
|
|
156
|
+
.app-header-guanbishengyin {
|
|
157
|
+
margin-right: 10px;
|
|
158
|
+
float: right;
|
|
159
|
+
color: #D8DCE5;
|
|
160
|
+
}
|
|
161
|
+
.app-header-newaddserver {
|
|
162
|
+
margin-right: 10px;
|
|
163
|
+
float: right;
|
|
164
|
+
color: #D8DCE5;
|
|
165
|
+
}
|
|
166
|
+
.app-header-volume {
|
|
167
|
+
position: absolute;
|
|
168
|
+
top: 0;
|
|
169
|
+
display: flex;
|
|
170
|
+
flex-direction: column;
|
|
171
|
+
justify-content: center;
|
|
172
|
+
right: 20px;
|
|
173
|
+
color: #D8DCE5;
|
|
174
|
+
font-size: 1.5em;
|
|
175
|
+
}
|
|
176
|
+
.dropdown-menu {
|
|
177
|
+
background-color: #212a35;
|
|
178
|
+
}
|
|
179
|
+
.dropdown-menu a{
|
|
180
|
+
color: white;
|
|
181
|
+
}
|
|
182
|
+
.dropdown-menu a:hover{
|
|
183
|
+
color: white;
|
|
184
|
+
background-color: #6b85a3;
|
|
185
|
+
}
|
|
186
|
+
.dropdown-menu img{
|
|
187
|
+
width: 22%;
|
|
188
|
+
margin-top: -5px;
|
|
189
|
+
}
|
|
190
|
+
.dropdown-menu hr{
|
|
191
|
+
margin-top: 0px;
|
|
192
|
+
margin-bottom: 0px;
|
|
193
|
+
margin-right:0px;
|
|
194
|
+
width: 80%;
|
|
195
|
+
}
|
|
196
|
+
.glyphicon-menu-left{
|
|
197
|
+
color:#fff;
|
|
198
|
+
}
|
|
199
|
+
</style>
|