system-phone 3.1.8 → 3.1.10

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "system-phone",
3
- "version": "3.1.8",
3
+ "version": "3.1.10",
4
4
  "description": "手机模块 前端组件",
5
5
  "author": "何宁社 <524395609@qq.com>",
6
6
  "license": "ISC",
@@ -4,6 +4,14 @@
4
4
  <!-- </div>-->
5
5
  <div class="select-overspread auto" style="padding-bottom:5px;">
6
6
  <div class="auto repair-info-content compatible">
7
+ <div class="row" style="display: flex;align-items: center">
8
+ <div class="col-xs-3 col-sm-3 col-md-3 form-input-group">
9
+ 模糊查询:
10
+ </div>
11
+ <div class="col-xs-9 col-sm-9 col-md-9 form-input-group mg8">
12
+ <input type="text" class="form-control" v-model="model.f_userinfo" placeholder='模糊查询'>
13
+ </div>
14
+ </div>
7
15
  <div class="row" style="display: flex;align-items: center">
8
16
  <div class="col-xs-3 col-sm-3 col-md-3 form-input-group">
9
17
  用户编号:
@@ -92,6 +100,9 @@ export default {
92
100
  condition += this.model.f_userid ? ` and ti.f_userinfo_code = '${this.model.f_userid}'` : ' and 1=1'
93
101
  condition += this.model.f_username ? ` and ti.f_user_name like '%${this.model.f_username}%'` : ' and 1=1'
94
102
  condition += this.model.f_address ? ` and tua.f_address like '%${this.model.f_address}%'` : ' and 1=1'
103
+ if (this.model.f_userinfo){
104
+ condition += ` and (ti.f_userinfo_code like '%${this.model.f_userinfo}%' or ti.f_user_name like '%${this.model.f_userinfo}%' or ti.f_user_phone like '%${this.model.f_userinfo}%' or f_meternumber like '%${this.model.f_userinfo}%' or tua.f_address like '%${this.model.f_userinfo}%')`
105
+ }
95
106
  console.log(condition)
96
107
  this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/tel_UserInfo`, {
97
108
  data: {
@@ -1,186 +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>
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>
@@ -1,199 +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>
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>
@@ -1,5 +1,5 @@
1
- let specialComp = {
2
- 'nav-bottom': (resolve) => { require(['./NavBottomVVV'], resolve) },
3
- 'tools-page': (resolve) => { require(['./ToolsPage'], resolve) },
4
- }
5
- exports.specialComp = specialComp
1
+ let specialComp = {
2
+ 'nav-bottom': (resolve) => { require(['./NavBottomVVV'], resolve) },
3
+ 'tools-page': (resolve) => { require(['./ToolsPage'], resolve) },
4
+ }
5
+ exports.specialComp = specialComp