readmeter-changan 1.0.33 → 1.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/.idea/ReadMeterClient.iml +9 -0
  2. package/.idea/workspace.xml +62 -442
  3. package/.npmignore +7 -0
  4. package/build/dev-server.js +132 -132
  5. package/build/webpack.base.conf.js +75 -75
  6. package/hs_err_pid13284.log +207 -0
  7. package/package.json +1 -1
  8. package/package.json.bak +99 -99
  9. package/src/AndroidPlugin.js +28 -28
  10. package/src/App.vue +74 -74
  11. package/src/components/readingmeter/CheckInfo.vue +618 -618
  12. package/src/components/readingmeter/FinishHandInfo.vue +75 -75
  13. package/src/components/readingmeter/FinishHandInfocopy.vue +99 -99
  14. package/src/components/readingmeter/HandInfo.vue +87 -87
  15. package/src/components/readingmeter/HandMessage.vue +40 -40
  16. package/src/components/readingmeter/HistoryHandInfo.vue +114 -114
  17. package/src/components/readingmeter/MeterInfo.vue +183 -183
  18. package/src/components/readingmeter/PhoneHand.vue +93 -93
  19. package/src/components/readingmeter/PhoneHandHome.vue +2 -0
  20. package/src/components/readingmeter/PhoneHandplanInfo.vue +643 -643
  21. package/src/components/readingmeter/PictureArea.vue +156 -156
  22. package/src/components/readingmeter/PlanDown.vue +232 -232
  23. package/src/components/readingmeter/PlanUpdate.vue +186 -186
  24. package/src/components/readingmeter/ReadMeterCenter.vue +325 -325
  25. package/src/components/readingmeter/ReadMeterInfo.vue +349 -349
  26. package/src/components/readingmeter/ReadMeterInfoChangan.vue +1 -1
  27. package/src/components/readingmeter/SellHistory.vue +36 -36
  28. package/src/components/readingmeter/SellInfo.vue +88 -88
  29. package/src/components/readingmeter/UserInfo.vue +1 -0
  30. package/src/components/server/AppHeader.vue +65 -65
  31. package/src/components/server/ReadMeterHome.vue +192 -192
  32. package/src/components/server/ReadMeterLogin.vue +161 -161
  33. package/src/components/server/ReadMeterNavBottom.vue +119 -119
  34. package/src/components/server/ReadMeterRoute.vue +79 -79
  35. package/src/components/server/ReadMeterTop.vue +61 -61
  36. package/src/components/server/ReadMeterTopcopy.vue +53 -53
  37. package/src/expandcss.less +668 -668
  38. package/src/main.js +23 -23
  39. package/src/readmeter-android.js +34 -34
  40. package/src/readmeter.js +54 -54
  41. package/yarn.lock +7818 -0
@@ -1,161 +1,161 @@
1
- <style>
2
- .form-signin {
3
- max-width: 500px;
4
- padding: 15px;
5
- margin: 0 auto;
6
- }
7
- .form-signin .form-signin-heading,
8
- .form-signin .checkbox {
9
- margin-bottom: 10px;
10
- }
11
- .form-signin .checkbox {
12
- font-weight: normal;
13
- }
14
- .form-signin .form-control {
15
- position: relative;
16
- height: auto;
17
- -webkit-box-sizing: border-box;
18
- -moz-box-sizing: border-box;
19
- box-sizing: border-box;
20
- padding: 10px;
21
- margin: 5px 0px 5px 0px;
22
- font-size: 16px;
23
- }
24
- .form-signin .form-control:focus {
25
- z-index: 2;
26
- }
27
- .form-signin input {
28
- margin-bottom: -1px;
29
- border-bottom-right-radius: 0;
30
- border-bottom-left-radius: 0;
31
- }
32
- .form-signin input[type="password"] {
33
- margin-bottom: 10px;
34
- border-top-left-radius: 0;
35
- border-top-right-radius: 0;
36
- }
37
- </style>
38
-
39
- <template>
40
- <div class="app-bg" style="background: #4C637B;">
41
- <validator name='v'>
42
- <form class="form-signin" novalidate @submit.prevent="signIn()">
43
- <div>
44
- <!-- <img src="../../assets/logo1.png" class="center-block img-responsive"></img> -->
45
- </div>
46
- <h2 class="form-signin-heading text-center" style="color: #fff;">手机抄表系统</h2>
47
- <h4 class="form-signin-heading text-center" style="color: #fff;">欢迎使用手机抄表系统</h4>
48
- <!-- <h5 class="form-signin-heading text-center" @click="backupDatabase">当前版本:0.{{version}}</h5> -->
49
- <input id="ename" style="margin-top: 100px;" class="form-control" placeholder="请输入用户名" autofocus v-model="model.ename" v-validate:ename='{ required: true }' @focus="noPage()" @blur="haspage()">
50
- <input type="password" id="inputPassword" class="form-control" placeholder="请输入密码" v-model="model.password" v-validate:password='{ required: true }' @focus="noPage()" @blur="haspage()">
51
- <button class="btn btn-lg btn-danger btn-block" type="submit" style="color: #fff; ">登录</button>
52
- </form>
53
- </validator>
54
- <div class="login-footer login-footer_fixed-bottom" v-if='showversion'>
55
- <p class="login-footer__links">
56
- <a href="javascript:home();" class="login-footer__link"></a>
57
- </p>
58
- <p class="login-footer__text">Copyright @ v1.0.0 手机抄表</p>
59
- </div>
60
- </div>
61
- </template>
62
- <script>
63
- import Vue from 'vue'
64
-
65
- export default {
66
- title: '登录系统',
67
- data () {
68
- return {
69
- model: {
70
- ename: '',
71
- password: ''
72
- },
73
- showversion: true
74
- }
75
- },
76
- methods: {
77
- noPage () {
78
- this.showversion = false
79
- },
80
- haspage () {
81
- this.showversion = true
82
- },
83
- backupDatabase () {
84
- HostApp.backupDatabase()
85
- },
86
- load () {
87
- if (this.model.ename === '' || this.model.password === '') {
88
- HostApp.alert('登录失败, 用户名或密码不能为空!')
89
- return
90
- }
91
- this.$resetpost(Vue.ProxyUrl + '/rs/logic/phonelogin', {data: this.model}, {resolveMsg: null, rejectMsg: null}).then((ret) => {
92
- console.log(ret.data)
93
- if (ret.data.state === 0) {
94
- this.$goto('readmeter-home')
95
- Vue.user = ret.data.data
96
- } else {
97
- HostApp.alert('登录失败 ' + ret.data.msg)
98
- }
99
- })
100
- },
101
- signIn () {
102
- this.login = true
103
- // 模拟手机,定时提取
104
-
105
- // 获取登录加载数据
106
- this.load()
107
- },
108
- isJSON (str) {
109
- if (typeof str == 'string') {
110
- try {
111
- var obj = JSON.parse(str)
112
- if (typeof obj == 'object' && obj ) {
113
- return true
114
- } else {
115
- return false
116
- }
117
- } catch (e) {
118
- console.log('error:'+str+'!!!'+e);
119
- return false
120
- }
121
- }
122
- console.log('It is not a string!')
123
- },
124
- isAndroidDevice() {
125
- try {
126
- HostApp
127
- Vue.AndroidPlugin.isAndroid = true
128
- Vue.ProxyUrl = Vue.AndroidPlugin.getProxyURL()
129
- console.log("ProxyUrl---------------->>>>>>>"+Vue.ProxyUrl)
130
- // Vue.ProxyUrl = 'http://192.168.30.63:8080/'
131
- } catch (e) {
132
- console.log("捕获到异常"+e.message)
133
- Vue.AndroidPlugin.isAndroid = false
134
- //如果是非安卓环境,config中配置的链接地址肯定是不能用的,所以改成空的即可
135
- Vue.ProxyUrl = ''
136
- console.log("ProxyUrl---------------->>>>>>>"+Vue.ProxyUrl)
137
- }
138
- },
139
- },
140
- ready(){
141
- this.isAndroidDevice()
142
- }
143
- }
144
- </script>
145
- <style scoped>
146
- .login-footer_fixed-bottom {
147
- height: auto;
148
- position: fixed;
149
- bottom: .52em;
150
- left: 0;
151
- right: 0;
152
- }
153
- .login-footer {
154
- color: #999;
155
- font-size: 14px;
156
- text-align: center;
157
- }
158
- .login-footer__link {
159
- color: #586C94;
160
- }
161
- </style>
1
+ <style>
2
+ .form-signin {
3
+ max-width: 500px;
4
+ padding: 15px;
5
+ margin: 0 auto;
6
+ }
7
+ .form-signin .form-signin-heading,
8
+ .form-signin .checkbox {
9
+ margin-bottom: 10px;
10
+ }
11
+ .form-signin .checkbox {
12
+ font-weight: normal;
13
+ }
14
+ .form-signin .form-control {
15
+ position: relative;
16
+ height: auto;
17
+ -webkit-box-sizing: border-box;
18
+ -moz-box-sizing: border-box;
19
+ box-sizing: border-box;
20
+ padding: 10px;
21
+ margin: 5px 0px 5px 0px;
22
+ font-size: 16px;
23
+ }
24
+ .form-signin .form-control:focus {
25
+ z-index: 2;
26
+ }
27
+ .form-signin input {
28
+ margin-bottom: -1px;
29
+ border-bottom-right-radius: 0;
30
+ border-bottom-left-radius: 0;
31
+ }
32
+ .form-signin input[type="password"] {
33
+ margin-bottom: 10px;
34
+ border-top-left-radius: 0;
35
+ border-top-right-radius: 0;
36
+ }
37
+ </style>
38
+
39
+ <template>
40
+ <div class="app-bg" style="background: #4C637B;">
41
+ <validator name='v'>
42
+ <form class="form-signin" novalidate @submit.prevent="signIn()">
43
+ <div>
44
+ <!-- <img src="../../assets/logo1.png" class="center-block img-responsive"></img> -->
45
+ </div>
46
+ <h2 class="form-signin-heading text-center" style="color: #fff;">手机抄表系统</h2>
47
+ <h4 class="form-signin-heading text-center" style="color: #fff;">欢迎使用手机抄表系统</h4>
48
+ <!-- <h5 class="form-signin-heading text-center" @click="backupDatabase">当前版本:0.{{version}}</h5> -->
49
+ <input id="ename" style="margin-top: 100px;" class="form-control" placeholder="请输入用户名" autofocus v-model="model.ename" v-validate:ename='{ required: true }' @focus="noPage()" @blur="haspage()">
50
+ <input type="password" id="inputPassword" class="form-control" placeholder="请输入密码" v-model="model.password" v-validate:password='{ required: true }' @focus="noPage()" @blur="haspage()">
51
+ <button class="btn btn-lg btn-danger btn-block" type="submit" style="color: #fff; ">登录</button>
52
+ </form>
53
+ </validator>
54
+ <div class="login-footer login-footer_fixed-bottom" v-if='showversion'>
55
+ <p class="login-footer__links">
56
+ <a href="javascript:home();" class="login-footer__link"></a>
57
+ </p>
58
+ <p class="login-footer__text">Copyright @ v1.0.0 手机抄表</p>
59
+ </div>
60
+ </div>
61
+ </template>
62
+ <script>
63
+ import Vue from 'vue'
64
+
65
+ export default {
66
+ title: '登录系统',
67
+ data () {
68
+ return {
69
+ model: {
70
+ ename: '',
71
+ password: ''
72
+ },
73
+ showversion: true
74
+ }
75
+ },
76
+ methods: {
77
+ noPage () {
78
+ this.showversion = false
79
+ },
80
+ haspage () {
81
+ this.showversion = true
82
+ },
83
+ backupDatabase () {
84
+ HostApp.backupDatabase()
85
+ },
86
+ load () {
87
+ if (this.model.ename === '' || this.model.password === '') {
88
+ HostApp.alert('登录失败, 用户名或密码不能为空!')
89
+ return
90
+ }
91
+ this.$resetpost(Vue.ProxyUrl + '/rs/logic/phonelogin', {data: this.model}, {resolveMsg: null, rejectMsg: null}).then((ret) => {
92
+ console.log(ret.data)
93
+ if (ret.data.state === 0) {
94
+ this.$goto('readmeter-home')
95
+ Vue.user = ret.data.data
96
+ } else {
97
+ HostApp.alert('登录失败 ' + ret.data.msg)
98
+ }
99
+ })
100
+ },
101
+ signIn () {
102
+ this.login = true
103
+ // 模拟手机,定时提取
104
+
105
+ // 获取登录加载数据
106
+ this.load()
107
+ },
108
+ isJSON (str) {
109
+ if (typeof str == 'string') {
110
+ try {
111
+ var obj = JSON.parse(str)
112
+ if (typeof obj == 'object' && obj ) {
113
+ return true
114
+ } else {
115
+ return false
116
+ }
117
+ } catch (e) {
118
+ console.log('error:'+str+'!!!'+e);
119
+ return false
120
+ }
121
+ }
122
+ console.log('It is not a string!')
123
+ },
124
+ isAndroidDevice() {
125
+ try {
126
+ HostApp
127
+ Vue.AndroidPlugin.isAndroid = true
128
+ Vue.ProxyUrl = Vue.AndroidPlugin.getProxyURL()
129
+ console.log("ProxyUrl---------------->>>>>>>"+Vue.ProxyUrl)
130
+ // Vue.ProxyUrl = 'http://192.168.30.63:8080/'
131
+ } catch (e) {
132
+ console.log("捕获到异常"+e.message)
133
+ Vue.AndroidPlugin.isAndroid = false
134
+ //如果是非安卓环境,config中配置的链接地址肯定是不能用的,所以改成空的即可
135
+ Vue.ProxyUrl = ''
136
+ console.log("ProxyUrl---------------->>>>>>>"+Vue.ProxyUrl)
137
+ }
138
+ },
139
+ },
140
+ ready(){
141
+ this.isAndroidDevice()
142
+ }
143
+ }
144
+ </script>
145
+ <style scoped>
146
+ .login-footer_fixed-bottom {
147
+ height: auto;
148
+ position: fixed;
149
+ bottom: .52em;
150
+ left: 0;
151
+ right: 0;
152
+ }
153
+ .login-footer {
154
+ color: #999;
155
+ font-size: 14px;
156
+ text-align: center;
157
+ }
158
+ .login-footer__link {
159
+ color: #586C94;
160
+ }
161
+ </style>
@@ -1,119 +1,119 @@
1
- <template>
2
- <div class="row nav-bgcolor" >
3
- <!--<div class="row auto" style="background-color: #4C647A; padding-top: 40px;">-->
4
- <!--<p class="text-left" style="padding-left: 20px;">-->
5
- <!--<img src="../../assets/燃气缴费 (2).png" style="width: 60px;border: 2px solid white;border-radius: 4%;" alt="燃气缴费">-->
6
- <!--<span style="color: white;font-size: 20px;">&nbsp;&nbsp;&nbsp;手机抄表系统</span>-->
7
- <!--<span style="color: white;font-size: 14px;display: block;padding-left: 80px;">-->
8
- <!--抄表员:{{userInfo.name}} ({{userInfo.id}})-->
9
- <!--</span>-->
10
- <!--</p>-->
11
- <!--</div>-->
12
- <div class="row auto" style="padding-bottom: 1em">
13
- <div class="col-xs-4 text-center pageskuang" @click="goPage('计划下载')">
14
- <img src="../../assets/计划下载.png" class="imgs" alt="">
15
- <p class="text-center name" style="margin: 10px 0;">计划下载</p>
16
- </div>
17
- <div class="col-xs-4 text-center pageskuang" @click="goPage('抄表管理')">
18
- <img src="../../assets/抄表管理.png" class="imgs" alt="">
19
- <p class="text-center name" style="margin: 10px 0;">抄表管理</p>
20
- </div>
21
- <div class="col-xs-4 text-center pageskuang" @click="goPage('抄表记录')">
22
- <img src="../../assets/抄表记录.png" class="imgs" alt="">
23
- <p class="text-center name" style="margin: 10px 0;">抄表记录</p>
24
- </div>
25
- <div class="col-xs-4 text-center pageskuang" @click="goPage('表单上传')">
26
- <img src="../../assets/表单上传.png" class="imgs" alt="">
27
- <p class="text-center name" style="margin: 10px 0;">表单上传</p>
28
- </div>
29
- </div>
30
- </div>
31
- </template>
32
-
33
- <script>
34
- import AppData from '../../stores/AppData'
35
- import Vue from 'vue'
36
- export default {
37
- title: '底部导航',
38
- data () {
39
- return {
40
- userInfo: {}
41
- }
42
- },
43
- props: {
44
- menus: {
45
- type: Array,
46
- default: function () {
47
- return [
48
- {name: '计划下载', imgpath: '../../assets/下载 (2).png'},
49
- {name: '抄表管理', imgpath: '../../assets/报表.png'},
50
- {name: '抄表记录', imgpath: '../../assets/历史 (2).png'},
51
- {name: '表单上传', imgpath: '../../assets/上传 (4).png'}
52
- ]
53
- }
54
- }
55
- },
56
- ready () {
57
- console.log()
58
- this.userInfo = Object.assign({}, this.userInfo, Vue.user)
59
- },
60
- methods: {
61
- goPage (page) {
62
- this.$dispatch('menu', page)
63
- }
64
- }
65
- }
66
- </script>
67
- <style>
68
- .plan {
69
- border-bottom: 0.5px solid #EAEAEA;
70
- border-right: 0.5px solid #EAEAEA;
71
- height: 120px;
72
- }
73
- .meter{
74
- border-bottom: 0.5px solid #EAEAEA;
75
- border-right: 0.5px solid #EAEAEA;
76
- border-left: 0.5px solid #EAEAEA;
77
- height: 120px;
78
- }
79
- .info{
80
- border-bottom: 0.5px solid #EAEAEA;
81
- border-left: 0.5px solid #EAEAEA;
82
- height: 120px;
83
- }
84
- .upload{
85
- border-top: 0.5px solid #EAEAEA;
86
- border-right: 0.5px solid #EAEAEA;
87
- height: 120px;
88
- }
89
- .space1{
90
- border-top: 0.5px solid #EAEAEA;
91
- border-right: 0.5px solid #EAEAEA;
92
- border-left: 0.5px solid #EAEAEA;
93
- height: 120px;
94
- }
95
- .space2{
96
- border-top: 0.5px solid #EAEAEA;
97
- border-left: 0.5px solid #EAEAEA;
98
- height: 120px;
99
- }
100
- .pageskuang{
101
- vertical-align:middle;
102
- display:table-cell;
103
- width: 32%;
104
- top:-50%;
105
- margin-top: 1%;
106
- margin-left: 1%;
107
- border:1px solid #e3e3e3;
108
- text-align: center;
109
- background-color: #ffffff;
110
- }
111
- .name{
112
- font: 15px PingFang-SC-Medium;
113
- color: #666666;
114
- }
115
- .imgs{
116
- width: 60px;
117
- margin-top: 15px;
118
- }
119
- </style>
1
+ <template>
2
+ <div class="row nav-bgcolor" >
3
+ <!--<div class="row auto" style="background-color: #4C647A; padding-top: 40px;">-->
4
+ <!--<p class="text-left" style="padding-left: 20px;">-->
5
+ <!--<img src="../../assets/燃气缴费 (2).png" style="width: 60px;border: 2px solid white;border-radius: 4%;" alt="燃气缴费">-->
6
+ <!--<span style="color: white;font-size: 20px;">&nbsp;&nbsp;&nbsp;手机抄表系统</span>-->
7
+ <!--<span style="color: white;font-size: 14px;display: block;padding-left: 80px;">-->
8
+ <!--抄表员:{{userInfo.name}} ({{userInfo.id}})-->
9
+ <!--</span>-->
10
+ <!--</p>-->
11
+ <!--</div>-->
12
+ <div class="row auto" style="padding-bottom: 1em">
13
+ <div class="col-xs-4 text-center pageskuang" @click="goPage('计划下载')">
14
+ <img src="../../assets/计划下载.png" class="imgs" alt="">
15
+ <p class="text-center name" style="margin: 10px 0;">计划下载</p>
16
+ </div>
17
+ <div class="col-xs-4 text-center pageskuang" @click="goPage('抄表管理')">
18
+ <img src="../../assets/抄表管理.png" class="imgs" alt="">
19
+ <p class="text-center name" style="margin: 10px 0;">抄表管理</p>
20
+ </div>
21
+ <div class="col-xs-4 text-center pageskuang" @click="goPage('抄表记录')">
22
+ <img src="../../assets/抄表记录.png" class="imgs" alt="">
23
+ <p class="text-center name" style="margin: 10px 0;">抄表记录</p>
24
+ </div>
25
+ <div class="col-xs-4 text-center pageskuang" @click="goPage('表单上传')">
26
+ <img src="../../assets/表单上传.png" class="imgs" alt="">
27
+ <p class="text-center name" style="margin: 10px 0;">表单上传</p>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </template>
32
+
33
+ <script>
34
+ import AppData from '../../stores/AppData'
35
+ import Vue from 'vue'
36
+ export default {
37
+ title: '底部导航',
38
+ data () {
39
+ return {
40
+ userInfo: {}
41
+ }
42
+ },
43
+ props: {
44
+ menus: {
45
+ type: Array,
46
+ default: function () {
47
+ return [
48
+ {name: '计划下载', imgpath: '../../assets/下载 (2).png'},
49
+ {name: '抄表管理', imgpath: '../../assets/报表.png'},
50
+ {name: '抄表记录', imgpath: '../../assets/历史 (2).png'},
51
+ {name: '表单上传', imgpath: '../../assets/上传 (4).png'}
52
+ ]
53
+ }
54
+ }
55
+ },
56
+ ready () {
57
+ console.log()
58
+ this.userInfo = Object.assign({}, this.userInfo, Vue.user)
59
+ },
60
+ methods: {
61
+ goPage (page) {
62
+ this.$dispatch('menu', page)
63
+ }
64
+ }
65
+ }
66
+ </script>
67
+ <style>
68
+ .plan {
69
+ border-bottom: 0.5px solid #EAEAEA;
70
+ border-right: 0.5px solid #EAEAEA;
71
+ height: 120px;
72
+ }
73
+ .meter{
74
+ border-bottom: 0.5px solid #EAEAEA;
75
+ border-right: 0.5px solid #EAEAEA;
76
+ border-left: 0.5px solid #EAEAEA;
77
+ height: 120px;
78
+ }
79
+ .info{
80
+ border-bottom: 0.5px solid #EAEAEA;
81
+ border-left: 0.5px solid #EAEAEA;
82
+ height: 120px;
83
+ }
84
+ .upload{
85
+ border-top: 0.5px solid #EAEAEA;
86
+ border-right: 0.5px solid #EAEAEA;
87
+ height: 120px;
88
+ }
89
+ .space1{
90
+ border-top: 0.5px solid #EAEAEA;
91
+ border-right: 0.5px solid #EAEAEA;
92
+ border-left: 0.5px solid #EAEAEA;
93
+ height: 120px;
94
+ }
95
+ .space2{
96
+ border-top: 0.5px solid #EAEAEA;
97
+ border-left: 0.5px solid #EAEAEA;
98
+ height: 120px;
99
+ }
100
+ .pageskuang{
101
+ vertical-align:middle;
102
+ display:table-cell;
103
+ width: 32%;
104
+ top:-50%;
105
+ margin-top: 1%;
106
+ margin-left: 1%;
107
+ border:1px solid #e3e3e3;
108
+ text-align: center;
109
+ background-color: #ffffff;
110
+ }
111
+ .name{
112
+ font: 15px PingFang-SC-Medium;
113
+ color: #666666;
114
+ }
115
+ .imgs{
116
+ width: 60px;
117
+ margin-top: 15px;
118
+ }
119
+ </style>