system-phone 3.1.94 → 3.1.97

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 (195) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/.eslintrc.js +16 -16
  4. package/CHANGELOG.md +1 -1
  5. package/Dockerfile +3 -3
  6. package/README.md +36 -36
  7. package/build/css-loaders.js +34 -34
  8. package/build/dev-client.js +8 -8
  9. package/build/example-server.js +80 -80
  10. package/build/release.sh +28 -28
  11. package/build/utils.js +71 -71
  12. package/build/webpack.dev.conf.js +31 -31
  13. package/build/webpack.example.conf.js +49 -49
  14. package/build/webpack.prod.conf.js +60 -60
  15. package/build/webpack.test.conf.js +31 -31
  16. package/config/dev.env.js +6 -6
  17. package/config/index.js +38 -38
  18. package/config/prod.env.js +3 -3
  19. package/config/test.env.js +6 -6
  20. package/nginx.conf +304 -304
  21. package/package.json +101 -101
  22. package/release.bat +5 -5
  23. package/src/Util.js +415 -415
  24. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  25. package/src/android-bootstrap/less/.csscomb.json +304 -304
  26. package/src/android-bootstrap/less/.csslintrc +19 -19
  27. package/src/android-bootstrap/less/alerts.less +73 -73
  28. package/src/android-bootstrap/less/badges.less +66 -66
  29. package/src/android-bootstrap/less/bootstrap.less +56 -56
  30. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  31. package/src/android-bootstrap/less/button-groups.less +247 -247
  32. package/src/android-bootstrap/less/buttons.less +173 -173
  33. package/src/android-bootstrap/less/carousel.less +269 -269
  34. package/src/android-bootstrap/less/close.less +34 -34
  35. package/src/android-bootstrap/less/code.less +69 -69
  36. package/src/android-bootstrap/less/component-animations.less +33 -33
  37. package/src/android-bootstrap/less/dropdowns.less +216 -216
  38. package/src/android-bootstrap/less/forms.less +626 -626
  39. package/src/android-bootstrap/less/glyphicons.less +305 -305
  40. package/src/android-bootstrap/less/grid.less +84 -84
  41. package/src/android-bootstrap/less/input-groups.less +167 -167
  42. package/src/android-bootstrap/less/jumbotron.less +52 -52
  43. package/src/android-bootstrap/less/labels.less +64 -64
  44. package/src/android-bootstrap/less/list-group.less +141 -141
  45. package/src/android-bootstrap/less/media.less +66 -66
  46. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  47. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  48. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  49. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  50. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  51. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  52. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  53. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  54. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  55. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  56. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  57. package/src/android-bootstrap/less/mixins/image.less +33 -33
  58. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  59. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  60. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  61. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  62. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  63. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  64. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  65. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  66. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  67. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  68. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  69. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  70. package/src/android-bootstrap/less/mixins/size.less +10 -10
  71. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  72. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  73. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  74. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  75. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  76. package/src/android-bootstrap/less/mixins.less +40 -40
  77. package/src/android-bootstrap/less/modals.less +151 -151
  78. package/src/android-bootstrap/less/navbar.less +660 -660
  79. package/src/android-bootstrap/less/navs.less +290 -290
  80. package/src/android-bootstrap/less/normalize.less +424 -424
  81. package/src/android-bootstrap/less/pager.less +76 -76
  82. package/src/android-bootstrap/less/pagination.less +89 -89
  83. package/src/android-bootstrap/less/panels.less +274 -274
  84. package/src/android-bootstrap/less/popovers.less +131 -131
  85. package/src/android-bootstrap/less/print.less +101 -101
  86. package/src/android-bootstrap/less/progress-bars.less +87 -87
  87. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  88. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  89. package/src/android-bootstrap/less/scaffolding.less +161 -161
  90. package/src/android-bootstrap/less/tables.less +262 -262
  91. package/src/android-bootstrap/less/theme.less +291 -291
  92. package/src/android-bootstrap/less/thumbnails.less +36 -36
  93. package/src/android-bootstrap/less/tooltip.less +102 -102
  94. package/src/android-bootstrap/less/type.less +303 -303
  95. package/src/android-bootstrap/less/utilities.less +55 -55
  96. package/src/android-bootstrap/less/variables.less +896 -896
  97. package/src/android-bootstrap/less/wells.less +29 -29
  98. package/src/bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  99. package/src/bootstrap/less/.csscomb.json +304 -304
  100. package/src/bootstrap/less/.csslintrc +19 -19
  101. package/src/bootstrap/less/alerts.less +73 -73
  102. package/src/bootstrap/less/badges.less +66 -66
  103. package/src/bootstrap/less/bootstrap.less +56 -56
  104. package/src/bootstrap/less/breadcrumbs.less +26 -26
  105. package/src/bootstrap/less/button-groups.less +247 -247
  106. package/src/bootstrap/less/buttons.less +172 -172
  107. package/src/bootstrap/less/carousel.less +269 -269
  108. package/src/bootstrap/less/close.less +34 -34
  109. package/src/bootstrap/less/code.less +69 -69
  110. package/src/bootstrap/less/component-animations.less +33 -33
  111. package/src/bootstrap/less/dropdowns.less +216 -216
  112. package/src/bootstrap/less/forms.less +626 -626
  113. package/src/bootstrap/less/glyphicons.less +305 -305
  114. package/src/bootstrap/less/grid.less +84 -84
  115. package/src/bootstrap/less/input-groups.less +167 -167
  116. package/src/bootstrap/less/jumbotron.less +52 -52
  117. package/src/bootstrap/less/labels.less +64 -64
  118. package/src/bootstrap/less/list-group.less +141 -141
  119. package/src/bootstrap/less/media.less +66 -66
  120. package/src/bootstrap/less/mixins/alerts.less +14 -14
  121. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  122. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  123. package/src/bootstrap/less/mixins/buttons.less +69 -69
  124. package/src/bootstrap/less/mixins/center-block.less +7 -7
  125. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  126. package/src/bootstrap/less/mixins/forms.less +90 -90
  127. package/src/bootstrap/less/mixins/gradients.less +59 -59
  128. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  129. package/src/bootstrap/less/mixins/grid.less +122 -122
  130. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  131. package/src/bootstrap/less/mixins/image.less +33 -33
  132. package/src/bootstrap/less/mixins/labels.less +12 -12
  133. package/src/bootstrap/less/mixins/list-group.less +30 -30
  134. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  135. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  136. package/src/bootstrap/less/mixins/opacity.less +8 -8
  137. package/src/bootstrap/less/mixins/pagination.less +24 -24
  138. package/src/bootstrap/less/mixins/panels.less +24 -24
  139. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  140. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  141. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  142. package/src/bootstrap/less/mixins/resize.less +6 -6
  143. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  144. package/src/bootstrap/less/mixins/size.less +10 -10
  145. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  146. package/src/bootstrap/less/mixins/table-row.less +44 -44
  147. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  148. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  149. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  150. package/src/bootstrap/less/mixins.less +40 -40
  151. package/src/bootstrap/less/modals.less +151 -151
  152. package/src/bootstrap/less/navbar.less +660 -660
  153. package/src/bootstrap/less/navs.less +286 -286
  154. package/src/bootstrap/less/normalize.less +424 -424
  155. package/src/bootstrap/less/pager.less +76 -76
  156. package/src/bootstrap/less/pagination.less +89 -89
  157. package/src/bootstrap/less/panels.less +275 -275
  158. package/src/bootstrap/less/popovers.less +131 -131
  159. package/src/bootstrap/less/print.less +101 -101
  160. package/src/bootstrap/less/progress-bars.less +87 -87
  161. package/src/bootstrap/less/responsive-embed.less +35 -35
  162. package/src/bootstrap/less/responsive-utilities.less +194 -194
  163. package/src/bootstrap/less/scaffolding.less +161 -161
  164. package/src/bootstrap/less/tables.less +262 -262
  165. package/src/bootstrap/less/theme.less +291 -291
  166. package/src/bootstrap/less/thumbnails.less +36 -36
  167. package/src/bootstrap/less/tooltip.less +102 -102
  168. package/src/bootstrap/less/type.less +303 -303
  169. package/src/bootstrap/less/utilities.less +55 -55
  170. package/src/bootstrap/less/variables.less +895 -895
  171. package/src/bootstrap/less/wells.less +29 -29
  172. package/src/components/AloneLoadParams.vue +26 -26
  173. package/src/components/EncryptUtil.js +53 -53
  174. package/src/components/LoadAppdata.vue +38 -38
  175. package/src/components/LoginApp.vue +1032 -1030
  176. package/src/components/PhoneSellInfo.vue +148 -148
  177. package/src/components/SystemSetUp.vue +344 -340
  178. package/src/components/Test.vue +14 -14
  179. package/src/plugins/GetStringData.js +18 -18
  180. package/src/plugins/LoadParams.js +24 -24
  181. package/src/services/ConfigService.js +24 -24
  182. package/static/app.json +4 -4
  183. package/static/globals.txt +74 -74
  184. package/test/unit/.eslintrc +5 -5
  185. package/test/unit/TestUtil.js +35 -35
  186. package/test/unit/context.html +20 -20
  187. package/test/unit/index.js +13 -13
  188. package/test/unit/init.js +13 -13
  189. package/test/unit/karma.conf.js +50 -50
  190. package/test/unit/specs/App.spec.js +17 -17
  191. package/test/unit/specs/Test.spec.js +28 -28
  192. package/test/unit/specs/components/LoginApp.spec.js +21 -21
  193. package/test/unit/specs/sevices/ConfigService.spec.js +23 -23
  194. package/test/unit/specs/sevices/GetDBTest.spec.js +28 -28
  195. package/.serena/project.yml +0 -87
@@ -1,340 +1,344 @@
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
- <p></p>
8
- <p class="pagesfoot">{{ tab.name }}</p>
9
- <p></p>
10
- </div>
11
- </div>
12
- </div>
13
- <modal :show.sync="show" v-ref:modal backdrop="false">
14
- <header slot="modal-header" class="modal-header text-center">
15
- <h4 class="modal-title">清除项选择</h4>
16
- <input type="checkbox" class="" id="f_operator" v-model="all">
17
- <label for="f_operator" class="font-size">全选</label>
18
- </header>
19
- <article slot="modal-body" v-if="show">
20
- <div class="auto col-sm-11 col-xs-11 col-xs-offset-1 col-md-offset-1" style="margin-top: 10px;">
21
- <div class="col-sm-4 col-xs-4" v-for="f in fields">
22
- <input type="checkbox" class="" :id="'export-col-'+$index" v-model="modelval" :value="$key">
23
- <label :for="'export-col-'+$index" class="font-size">{{ f }}</label>
24
- </div>
25
- </div>
26
- </article>
27
- <footer slot="modal-footer" class="modal-footer">
28
- <center>
29
- <button v-show="show" type="button" class="btn btn-default" @click='close()'>取消</button>
30
- <button v-show="show" type="button" class="btn btn-success" @click='clear()'>确定</button>
31
- </center>
32
- </footer>
33
- </modal>
34
- </div>
35
- </template>
36
-
37
- <script>
38
- import Vue from 'vue'
39
-
40
- export default {
41
- title: '系统设置',
42
- data() {
43
- return {
44
- version: '1.0',
45
- titleName: '系统设置',
46
- all: false,
47
- flag: true,
48
- show: false,
49
- fields: {},
50
- dataclear: [],
51
- tabs: this.getTabs(),
52
- //tabs:[{name:"清空数据"}],
53
- modelval: [],
54
- text: '导航组件this',
55
- beforeName: '系统设置',
56
- }
57
- },
58
- ready() {
59
- this.version = HostApp.getAppVersion().data
60
- // if(Vue.config.safecheck.clearPhone){
61
- // let cleartable=Vue.config.safecheck.clearPhone.cleardata
62
- // for (let i = 0; i < cleartable.length; i++) {
63
- // this.fields[cleartable[i].module]=cleartable[i].module
64
- // }
65
- // }
66
- },
67
- methods: {
68
- versionShow() {
69
- this.$showMessage('系统版本:' + this.version)
70
- },
71
- // clear(){
72
- // let cleartable=Vue.config.safecheck.clearPhone.cleardata
73
- // console.log(this.modelval)
74
- // for (let i = 0; i < cleartable.length; i++) {
75
- // for (let j = 0; j < this.modelval.length; j++) {
76
- // if (cleartable[i].module==this.modelval[i]){
77
- // this.dataclear=Object.assign([],this.dataclear,cleartable[i].tables)
78
- // }
79
- // }
80
- // }
81
- // console.log(this.dataclear)
82
- // this.cleandata()
83
- // },
84
- close() {
85
- this.show = false
86
- this.all = false
87
- this.flag = true
88
- this.modelval = []
89
- },
90
- sortModelval() {
91
- let sortModel = []
92
- Object.keys(this.fields).forEach((key) => {
93
- if (this.modelval.includes(key)) {
94
- sortModel.push(key)
95
- }
96
- })
97
- console.log('看看选择的顺序。。。', sortModel)
98
- console.log('看看选择的顺序。。。', this.modelval)
99
- if (sortModel.length == this.modelval.length - 1) {
100
- this.flag = false
101
- console.log("66666666666666")
102
- this.all = false
103
- }
104
- console.log(Object.keys(this.fields).length)
105
- if (sortModel.length == Object.keys(this.fields).length) {
106
- this.all = true
107
- }
108
- this.modelval = sortModel
109
- },
110
- imgback(val) {
111
- return require('../assets/' + val + '.png')
112
- },
113
- getTabs() {
114
- for (let funs in Vue.user.functions) {
115
- if (Vue.user.functions[funs].link == 'system-setup') {
116
- return Vue.user.functions[funs].children
117
- }
118
- }
119
- },
120
- gotopage(link, name) {
121
- if (name == '清空数据') {
122
- this.cleanalldata()
123
- return
124
- }
125
- if (name == '系统版本') {
126
- this.versionShow()
127
- return
128
- }
129
- // else if (name == '清除数据'){
130
- // this.openclear()
131
- // }
132
- else if (name == '声音开关') {
133
- this.voiceSwitch()
134
- } else if (name == '导出数据') {
135
- this.outdata()
136
- } else if (name == '退出系统') {
137
- if(Vue.$login && Vue.$login.s){
138
- Vue.$login.s = null
139
- Vue.$login['v3-session-key'] = null
140
- }
141
- HostApp.back_home()
142
- } else if (name == '删除照片') {
143
- const result = HostApp.deletePic()
144
- if (result){
145
- this.$showMessage('删除成功!共删除照片'+result.delete_pic_ok+'张!')
146
- }
147
- } else if (name == '返回桌面') {
148
- HostApp.back_home()
149
- } else if (name == '退出登录') {
150
- this.$showMessage('即将返回登陆界面!', ['confirm', 'cancel']).then((res) => {
151
- if (res === 'confirm') {
152
- if(Vue.$login && Vue.$login.s){
153
- Vue.$login.s = null
154
- Vue.$login['v3-session-key'] = null
155
- }
156
- this.$androidUtil.setPreference('f_repairman_id', 'x')
157
- this.$androidUtil.setPreference('f_repairman_name', 'x')
158
- this.$androidUtil.setPreference('f_orgid', '')
159
- this.$androidUtil.setPreference('f_role_name', '')
160
- this.$dispatch('gologin')
161
- }
162
- })
163
- } else {
164
- console.log('进入子组件')
165
- let safe = true
166
- if (name == '打卡'){
167
- safe = false
168
- }
169
- var prpdata = {
170
- _this:this,
171
- title:name,
172
- safe
173
- }
174
- this.$dispatch('gotoson',prpdata)
175
- this.$goto(link)
176
- }
177
- },
178
- cleanalldata() {
179
- this.$showMessage('此操作为清理数据,无法恢复!', ['confirm', 'cancel']).then((res) => {
180
- if (res === 'confirm') {
181
- let result = this.$androidUtil.bzLogic('clearPhoneData', {flag: 0})
182
- console.log((result.result))
183
- if (result.result == '成功') {
184
- this.$showMessage('清除数据完成!')
185
- } else {
186
- this.$showMessage('清除数据失败!')
187
- }
188
- }
189
- })
190
- },
191
- // 清空数据
192
- cleandata() {
193
- console.log("88888888888")
194
- this.$showMessage('此操作为清理数据,无法恢复!', ['confirm', 'cancel']).then((res) => {
195
- if (res === 'confirm') {
196
- let result = this.$androidUtil.bzLogic('clearPhoneDataNew', {tables: this.dataclear})
197
- console.log((result.result))
198
- if (result.result == '成功') {
199
- this.$showMessage('清除数据完成!')
200
- } else {
201
- this.$showMessage('清除数据失败!')
202
- }
203
- this.close()
204
- }
205
- })
206
- },
207
- // 导出数据
208
- openclear() {
209
- this.show = true
210
- },
211
- voiceSwitch() {
212
- console.log("进入声音开关")
213
- let voicedata = this.$androidUtil.getPreference('f_voiceSwitch')
214
- console.log(voicedata)
215
- let voicechange = '开启'
216
- if (voicedata == "true") {
217
- console.log("进入判断")
218
- voicechange = '关闭'
219
- }
220
- this.$showMessage('此操作为' + voicechange + '提示音,请再次确认!', ['confirm', 'cancel']).then((res) => {
221
- if (res == 'confirm') {
222
- if (voicechange == '关闭') {
223
- this.$androidUtil.setPreference('f_voiceSwitch', "false")
224
- this.$showMessage('提示音关闭成功!')
225
- } else {
226
- this.$androidUtil.setPreference('f_voiceSwitch', "true")
227
- this.$showMessage('提示音开启成功!')
228
- }
229
- }
230
- })
231
- },
232
- outdata() {
233
- HostApp.backupDatabase()
234
- this.$showMessage('数据导出成功!')
235
- },
236
- //取消自动登录
237
- cancelAutoLogin() {
238
- let auto = this.$androidUtil.getPreference('autoLogin')
239
- if (auto) {
240
- this.$androidUtil.setPreference('autoLogin', false)
241
- this.$showMessage('已取消自动登录!')
242
- } else {
243
- this.$showMessage('当前已处于非自动登录!')
244
- }
245
- }
246
- },
247
- watch: {
248
- 'all'(val) {
249
- if (val) {
250
- this.modelval = Object.keys(this.fields)
251
- } else {
252
- console.log(this.flag)
253
- if (this.flag) {
254
- this.modelval = []
255
- }
256
- }
257
- this.flag = true
258
- },
259
- 'modelval.length'() {
260
- this.sortModelval()
261
- }
262
- }
263
- }
264
-
265
- </script>
266
- <style scoped>
267
- .flex-between {
268
- display: flex;
269
- justify-content: space-between;
270
- align-items: center;
271
- }
272
-
273
- .flex-between span {
274
- padding-right: 10px;
275
- }
276
-
277
- .flex-full {
278
- flex: 1;
279
- }
280
-
281
- .name {
282
- font: 15px PingFang-SC-Medium;
283
- color: #666666;
284
- }
285
-
286
- .imgs {
287
- width: 35px;
288
- margin-top: 15px;
289
- }
290
-
291
- .plan {
292
- border-bottom: 0.5px solid #EAEAEA;
293
- border-right: 0.5px solid #EAEAEA;
294
- height: 120px;
295
- }
296
-
297
- .manbiankuang {
298
- width: 44%;
299
- margin-top: 15px;
300
- margin-left: 4%;
301
- border: 1px solid #e3e3e3;
302
- border-radius: 10px 10px 10px 10px;
303
- text-align: center;
304
- background-color: #ffffff;
305
- }
306
-
307
- .user {
308
- border-bottom: 0.5px solid #EAEAEA;
309
- border-right: 0.5px solid #EAEAEA;
310
- border-left: 0.5px solid #EAEAEA;
311
- height: 120px;
312
- }
313
-
314
- .safecheck {
315
- border-bottom: 0.5px solid #EAEAEA;
316
- border-left: 0.5px solid #EAEAEA;
317
- height: 120px;
318
- }
319
-
320
- .appointment {
321
- border-top: 0.5px solid #EAEAEA;
322
- border-right: 0.5px solid #EAEAEA;
323
- height: 120px;
324
- }
325
-
326
- .search {
327
- border-top: 0.5px solid #EAEAEA;
328
- border-right: 0.5px solid #EAEAEA;
329
- border-left: 0.5px solid #EAEAEA;
330
- height: 120px;
331
- }
332
-
333
- .upload {
334
- border-top: 0.5px solid #EAEAEA;
335
- border-left: 0.5px solid #EAEAEA;
336
- height: 120px;
337
- }
338
-
339
-
340
- </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
+ <p></p>
8
+ <p class="pagesfoot">{{ tab.name }}</p>
9
+ <p></p>
10
+ </div>
11
+ </div>
12
+ </div>
13
+ <modal :show.sync="show" v-ref:modal backdrop="false">
14
+ <header slot="modal-header" class="modal-header text-center">
15
+ <h4 class="modal-title">清除项选择</h4>
16
+ <input type="checkbox" class="" id="f_operator" v-model="all">
17
+ <label for="f_operator" class="font-size">全选</label>
18
+ </header>
19
+ <article slot="modal-body" v-if="show">
20
+ <div class="auto col-sm-11 col-xs-11 col-xs-offset-1 col-md-offset-1" style="margin-top: 10px;">
21
+ <div class="col-sm-4 col-xs-4" v-for="f in fields">
22
+ <input type="checkbox" class="" :id="'export-col-'+$index" v-model="modelval" :value="$key">
23
+ <label :for="'export-col-'+$index" class="font-size">{{ f }}</label>
24
+ </div>
25
+ </div>
26
+ </article>
27
+ <footer slot="modal-footer" class="modal-footer">
28
+ <center>
29
+ <button v-show="show" type="button" class="btn btn-default" @click='close()'>取消</button>
30
+ <button v-show="show" type="button" class="btn btn-success" @click='clear()'>确定</button>
31
+ </center>
32
+ </footer>
33
+ </modal>
34
+ </div>
35
+ </template>
36
+
37
+ <script>
38
+ import Vue from 'vue'
39
+
40
+ export default {
41
+ title: '系统设置',
42
+ data() {
43
+ return {
44
+ version: '1.0',
45
+ titleName: '系统设置',
46
+ all: false,
47
+ flag: true,
48
+ show: false,
49
+ fields: {},
50
+ dataclear: [],
51
+ tabs: this.getTabs(),
52
+ //tabs:[{name:"清空数据"}],
53
+ modelval: [],
54
+ text: '导航组件this',
55
+ beforeName: '系统设置',
56
+ }
57
+ },
58
+ ready() {
59
+ this.version = HostApp.getAppVersion().data
60
+ // if(Vue.config.safecheck.clearPhone){
61
+ // let cleartable=Vue.config.safecheck.clearPhone.cleardata
62
+ // for (let i = 0; i < cleartable.length; i++) {
63
+ // this.fields[cleartable[i].module]=cleartable[i].module
64
+ // }
65
+ // }
66
+ },
67
+ methods: {
68
+ versionShow() {
69
+ this.$showMessage('系统版本:' + this.version)
70
+ },
71
+ // clear(){
72
+ // let cleartable=Vue.config.safecheck.clearPhone.cleardata
73
+ // console.log(this.modelval)
74
+ // for (let i = 0; i < cleartable.length; i++) {
75
+ // for (let j = 0; j < this.modelval.length; j++) {
76
+ // if (cleartable[i].module==this.modelval[i]){
77
+ // this.dataclear=Object.assign([],this.dataclear,cleartable[i].tables)
78
+ // }
79
+ // }
80
+ // }
81
+ // console.log(this.dataclear)
82
+ // this.cleandata()
83
+ // },
84
+ close() {
85
+ this.show = false
86
+ this.all = false
87
+ this.flag = true
88
+ this.modelval = []
89
+ },
90
+ sortModelval() {
91
+ let sortModel = []
92
+ Object.keys(this.fields).forEach((key) => {
93
+ if (this.modelval.includes(key)) {
94
+ sortModel.push(key)
95
+ }
96
+ })
97
+ console.log('看看选择的顺序。。。', sortModel)
98
+ console.log('看看选择的顺序。。。', this.modelval)
99
+ if (sortModel.length == this.modelval.length - 1) {
100
+ this.flag = false
101
+ console.log("66666666666666")
102
+ this.all = false
103
+ }
104
+ console.log(Object.keys(this.fields).length)
105
+ if (sortModel.length == Object.keys(this.fields).length) {
106
+ this.all = true
107
+ }
108
+ this.modelval = sortModel
109
+ },
110
+ imgback(val) {
111
+ return require('../assets/' + val + '.png')
112
+ },
113
+ getTabs() {
114
+ for (let funs in Vue.user.functions) {
115
+ if (Vue.user.functions[funs].link == 'system-setup') {
116
+ return Vue.user.functions[funs].children
117
+ }
118
+ }
119
+ },
120
+ gotopage(link, name) {
121
+ if (name == '清空数据') {
122
+ this.cleanalldata()
123
+ return
124
+ }
125
+ if (name == '系统版本') {
126
+ this.versionShow()
127
+ return
128
+ }
129
+ // else if (name == '清除数据'){
130
+ // this.openclear()
131
+ // }
132
+ else if (name == '声音开关') {
133
+ this.voiceSwitch()
134
+ } else if (name == '导出数据') {
135
+ this.outdata()
136
+ } else if (name == '退出系统') {
137
+ if(Vue.$login && Vue.$login['v3-session-key']){
138
+ Vue.$login.s = null
139
+ Vue.$login.jwt = null
140
+ Vue.$login.jwtNew = null
141
+ Vue.$login['v3-session-key'] = null
142
+ }
143
+ HostApp.back_home()
144
+ } else if (name == '删除照片') {
145
+ const result = HostApp.deletePic()
146
+ if (result){
147
+ this.$showMessage('删除成功!共删除照片'+result.delete_pic_ok+'张!')
148
+ }
149
+ } else if (name == '返回桌面') {
150
+ HostApp.back_home()
151
+ } else if (name == '退出登录') {
152
+ this.$showMessage('即将返回登陆界面!', ['confirm', 'cancel']).then((res) => {
153
+ if (res === 'confirm') {
154
+ if(Vue.$login && Vue.$login['v3-session-key']){
155
+ Vue.$login.s = null
156
+ Vue.$login.jwt = null
157
+ Vue.$login.jwtNew = null
158
+ Vue.$login['v3-session-key'] = null
159
+ }
160
+ this.$androidUtil.setPreference('f_repairman_id', 'x')
161
+ this.$androidUtil.setPreference('f_repairman_name', 'x')
162
+ this.$androidUtil.setPreference('f_orgid', '')
163
+ this.$androidUtil.setPreference('f_role_name', '')
164
+ this.$dispatch('gologin')
165
+ }
166
+ })
167
+ } else {
168
+ console.log('进入子组件')
169
+ let safe = true
170
+ if (name == '打卡'){
171
+ safe = false
172
+ }
173
+ var prpdata = {
174
+ _this:this,
175
+ title:name,
176
+ safe
177
+ }
178
+ this.$dispatch('gotoson',prpdata)
179
+ this.$goto(link)
180
+ }
181
+ },
182
+ cleanalldata() {
183
+ this.$showMessage('此操作为清理数据,无法恢复!', ['confirm', 'cancel']).then((res) => {
184
+ if (res === 'confirm') {
185
+ let result = this.$androidUtil.bzLogic('clearPhoneData', {flag: 0})
186
+ console.log((result.result))
187
+ if (result.result == '成功') {
188
+ this.$showMessage('清除数据完成!')
189
+ } else {
190
+ this.$showMessage('清除数据失败!')
191
+ }
192
+ }
193
+ })
194
+ },
195
+ // 清空数据
196
+ cleandata() {
197
+ console.log("88888888888")
198
+ this.$showMessage('此操作为清理数据,无法恢复!', ['confirm', 'cancel']).then((res) => {
199
+ if (res === 'confirm') {
200
+ let result = this.$androidUtil.bzLogic('clearPhoneDataNew', {tables: this.dataclear})
201
+ console.log((result.result))
202
+ if (result.result == '成功') {
203
+ this.$showMessage('清除数据完成!')
204
+ } else {
205
+ this.$showMessage('清除数据失败!')
206
+ }
207
+ this.close()
208
+ }
209
+ })
210
+ },
211
+ // 导出数据
212
+ openclear() {
213
+ this.show = true
214
+ },
215
+ voiceSwitch() {
216
+ console.log("进入声音开关")
217
+ let voicedata = this.$androidUtil.getPreference('f_voiceSwitch')
218
+ console.log(voicedata)
219
+ let voicechange = '开启'
220
+ if (voicedata == "true") {
221
+ console.log("进入判断")
222
+ voicechange = '关闭'
223
+ }
224
+ this.$showMessage('此操作为' + voicechange + '提示音,请再次确认!', ['confirm', 'cancel']).then((res) => {
225
+ if (res == 'confirm') {
226
+ if (voicechange == '关闭') {
227
+ this.$androidUtil.setPreference('f_voiceSwitch', "false")
228
+ this.$showMessage('提示音关闭成功!')
229
+ } else {
230
+ this.$androidUtil.setPreference('f_voiceSwitch', "true")
231
+ this.$showMessage('提示音开启成功!')
232
+ }
233
+ }
234
+ })
235
+ },
236
+ outdata() {
237
+ HostApp.backupDatabase()
238
+ this.$showMessage('数据导出成功!')
239
+ },
240
+ //取消自动登录
241
+ cancelAutoLogin() {
242
+ let auto = this.$androidUtil.getPreference('autoLogin')
243
+ if (auto) {
244
+ this.$androidUtil.setPreference('autoLogin', false)
245
+ this.$showMessage('已取消自动登录!')
246
+ } else {
247
+ this.$showMessage('当前已处于非自动登录!')
248
+ }
249
+ }
250
+ },
251
+ watch: {
252
+ 'all'(val) {
253
+ if (val) {
254
+ this.modelval = Object.keys(this.fields)
255
+ } else {
256
+ console.log(this.flag)
257
+ if (this.flag) {
258
+ this.modelval = []
259
+ }
260
+ }
261
+ this.flag = true
262
+ },
263
+ 'modelval.length'() {
264
+ this.sortModelval()
265
+ }
266
+ }
267
+ }
268
+
269
+ </script>
270
+ <style scoped>
271
+ .flex-between {
272
+ display: flex;
273
+ justify-content: space-between;
274
+ align-items: center;
275
+ }
276
+
277
+ .flex-between span {
278
+ padding-right: 10px;
279
+ }
280
+
281
+ .flex-full {
282
+ flex: 1;
283
+ }
284
+
285
+ .name {
286
+ font: 15px PingFang-SC-Medium;
287
+ color: #666666;
288
+ }
289
+
290
+ .imgs {
291
+ width: 35px;
292
+ margin-top: 15px;
293
+ }
294
+
295
+ .plan {
296
+ border-bottom: 0.5px solid #EAEAEA;
297
+ border-right: 0.5px solid #EAEAEA;
298
+ height: 120px;
299
+ }
300
+
301
+ .manbiankuang {
302
+ width: 44%;
303
+ margin-top: 15px;
304
+ margin-left: 4%;
305
+ border: 1px solid #e3e3e3;
306
+ border-radius: 10px 10px 10px 10px;
307
+ text-align: center;
308
+ background-color: #ffffff;
309
+ }
310
+
311
+ .user {
312
+ border-bottom: 0.5px solid #EAEAEA;
313
+ border-right: 0.5px solid #EAEAEA;
314
+ border-left: 0.5px solid #EAEAEA;
315
+ height: 120px;
316
+ }
317
+
318
+ .safecheck {
319
+ border-bottom: 0.5px solid #EAEAEA;
320
+ border-left: 0.5px solid #EAEAEA;
321
+ height: 120px;
322
+ }
323
+
324
+ .appointment {
325
+ border-top: 0.5px solid #EAEAEA;
326
+ border-right: 0.5px solid #EAEAEA;
327
+ height: 120px;
328
+ }
329
+
330
+ .search {
331
+ border-top: 0.5px solid #EAEAEA;
332
+ border-right: 0.5px solid #EAEAEA;
333
+ border-left: 0.5px solid #EAEAEA;
334
+ height: 120px;
335
+ }
336
+
337
+ .upload {
338
+ border-top: 0.5px solid #EAEAEA;
339
+ border-left: 0.5px solid #EAEAEA;
340
+ height: 120px;
341
+ }
342
+
343
+
344
+ </style>