system-phone 3.1.31 → 3.1.32

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 (209) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/.eslintrc.js +16 -16
  4. package/.gradle/7.4/checksums/checksums.lock +0 -0
  5. package/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock +0 -0
  6. package/.gradle/7.4/dependencies-accessors/gc.properties +0 -0
  7. package/.gradle/7.4/executionHistory/executionHistory.bin +0 -0
  8. package/.gradle/7.4/executionHistory/executionHistory.lock +0 -0
  9. package/.gradle/7.4/fileChanges/last-build.bin +0 -0
  10. package/.gradle/7.4/fileHashes/fileHashes.bin +0 -0
  11. package/.gradle/7.4/fileHashes/fileHashes.lock +0 -0
  12. package/.gradle/7.4/gc.properties +0 -0
  13. package/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  14. package/.gradle/checksums/checksums.lock +0 -0
  15. package/.gradle/checksums/md5-checksums.bin +0 -0
  16. package/.gradle/checksums/sha1-checksums.bin +0 -0
  17. package/.gradle/file-system.probe +0 -0
  18. package/CHANGELOG.md +1 -1
  19. package/Dockerfile +3 -3
  20. package/README.md +36 -36
  21. package/build/css-loaders.js +34 -34
  22. package/build/dev-client.js +8 -8
  23. package/build/example-server.js +80 -80
  24. package/build/release.sh +28 -28
  25. package/build/utils.js +71 -71
  26. package/build/webpack.dev.conf.js +31 -31
  27. package/build/webpack.example.conf.js +49 -49
  28. package/build/webpack.prod.conf.js +60 -60
  29. package/build/webpack.test.conf.js +31 -31
  30. package/config/dev.env.js +6 -6
  31. package/config/index.js +38 -38
  32. package/config/prod.env.js +3 -3
  33. package/config/test.env.js +6 -6
  34. package/nginx.conf +304 -304
  35. package/package.json +1 -1
  36. package/release.bat +5 -5
  37. package/src/App.vue +25 -25
  38. package/src/Util.js +415 -415
  39. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  40. package/src/android-bootstrap/less/.csscomb.json +304 -304
  41. package/src/android-bootstrap/less/.csslintrc +19 -19
  42. package/src/android-bootstrap/less/alerts.less +73 -73
  43. package/src/android-bootstrap/less/badges.less +66 -66
  44. package/src/android-bootstrap/less/bootstrap.less +56 -56
  45. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  46. package/src/android-bootstrap/less/button-groups.less +247 -247
  47. package/src/android-bootstrap/less/buttons.less +173 -173
  48. package/src/android-bootstrap/less/carousel.less +269 -269
  49. package/src/android-bootstrap/less/close.less +34 -34
  50. package/src/android-bootstrap/less/code.less +69 -69
  51. package/src/android-bootstrap/less/component-animations.less +33 -33
  52. package/src/android-bootstrap/less/dropdowns.less +216 -216
  53. package/src/android-bootstrap/less/forms.less +626 -626
  54. package/src/android-bootstrap/less/glyphicons.less +305 -305
  55. package/src/android-bootstrap/less/grid.less +84 -84
  56. package/src/android-bootstrap/less/input-groups.less +167 -167
  57. package/src/android-bootstrap/less/jumbotron.less +52 -52
  58. package/src/android-bootstrap/less/labels.less +64 -64
  59. package/src/android-bootstrap/less/list-group.less +141 -141
  60. package/src/android-bootstrap/less/media.less +66 -66
  61. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  62. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  63. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  64. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  65. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  66. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  67. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  68. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  69. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  70. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  71. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  72. package/src/android-bootstrap/less/mixins/image.less +33 -33
  73. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  74. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  75. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  76. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  77. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  78. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  79. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  80. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  81. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  82. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  83. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  84. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  85. package/src/android-bootstrap/less/mixins/size.less +10 -10
  86. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  87. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  88. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  89. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  90. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  91. package/src/android-bootstrap/less/mixins.less +40 -40
  92. package/src/android-bootstrap/less/modals.less +151 -151
  93. package/src/android-bootstrap/less/navbar.less +660 -660
  94. package/src/android-bootstrap/less/navs.less +290 -290
  95. package/src/android-bootstrap/less/normalize.less +424 -424
  96. package/src/android-bootstrap/less/pager.less +76 -76
  97. package/src/android-bootstrap/less/pagination.less +89 -89
  98. package/src/android-bootstrap/less/panels.less +274 -274
  99. package/src/android-bootstrap/less/popovers.less +131 -131
  100. package/src/android-bootstrap/less/print.less +101 -101
  101. package/src/android-bootstrap/less/progress-bars.less +87 -87
  102. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  103. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  104. package/src/android-bootstrap/less/scaffolding.less +161 -161
  105. package/src/android-bootstrap/less/tables.less +262 -262
  106. package/src/android-bootstrap/less/theme.less +291 -291
  107. package/src/android-bootstrap/less/thumbnails.less +36 -36
  108. package/src/android-bootstrap/less/tooltip.less +102 -102
  109. package/src/android-bootstrap/less/type.less +303 -303
  110. package/src/android-bootstrap/less/utilities.less +55 -55
  111. package/src/android-bootstrap/less/variables.less +896 -896
  112. package/src/android-bootstrap/less/wells.less +29 -29
  113. package/src/bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  114. package/src/bootstrap/less/.csscomb.json +304 -304
  115. package/src/bootstrap/less/.csslintrc +19 -19
  116. package/src/bootstrap/less/alerts.less +73 -73
  117. package/src/bootstrap/less/badges.less +66 -66
  118. package/src/bootstrap/less/bootstrap.less +56 -56
  119. package/src/bootstrap/less/breadcrumbs.less +26 -26
  120. package/src/bootstrap/less/button-groups.less +247 -247
  121. package/src/bootstrap/less/buttons.less +172 -172
  122. package/src/bootstrap/less/carousel.less +269 -269
  123. package/src/bootstrap/less/close.less +34 -34
  124. package/src/bootstrap/less/code.less +69 -69
  125. package/src/bootstrap/less/component-animations.less +33 -33
  126. package/src/bootstrap/less/dropdowns.less +216 -216
  127. package/src/bootstrap/less/forms.less +626 -626
  128. package/src/bootstrap/less/glyphicons.less +305 -305
  129. package/src/bootstrap/less/grid.less +84 -84
  130. package/src/bootstrap/less/input-groups.less +167 -167
  131. package/src/bootstrap/less/jumbotron.less +52 -52
  132. package/src/bootstrap/less/labels.less +64 -64
  133. package/src/bootstrap/less/list-group.less +141 -141
  134. package/src/bootstrap/less/media.less +66 -66
  135. package/src/bootstrap/less/mixins/alerts.less +14 -14
  136. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  137. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  138. package/src/bootstrap/less/mixins/buttons.less +69 -69
  139. package/src/bootstrap/less/mixins/center-block.less +7 -7
  140. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  141. package/src/bootstrap/less/mixins/forms.less +90 -90
  142. package/src/bootstrap/less/mixins/gradients.less +59 -59
  143. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  144. package/src/bootstrap/less/mixins/grid.less +122 -122
  145. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  146. package/src/bootstrap/less/mixins/image.less +33 -33
  147. package/src/bootstrap/less/mixins/labels.less +12 -12
  148. package/src/bootstrap/less/mixins/list-group.less +30 -30
  149. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  150. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  151. package/src/bootstrap/less/mixins/opacity.less +8 -8
  152. package/src/bootstrap/less/mixins/pagination.less +24 -24
  153. package/src/bootstrap/less/mixins/panels.less +24 -24
  154. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  155. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  156. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  157. package/src/bootstrap/less/mixins/resize.less +6 -6
  158. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  159. package/src/bootstrap/less/mixins/size.less +10 -10
  160. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  161. package/src/bootstrap/less/mixins/table-row.less +44 -44
  162. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  163. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  164. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  165. package/src/bootstrap/less/mixins.less +40 -40
  166. package/src/bootstrap/less/modals.less +151 -151
  167. package/src/bootstrap/less/navbar.less +660 -660
  168. package/src/bootstrap/less/navs.less +286 -286
  169. package/src/bootstrap/less/normalize.less +424 -424
  170. package/src/bootstrap/less/pager.less +76 -76
  171. package/src/bootstrap/less/pagination.less +89 -89
  172. package/src/bootstrap/less/panels.less +275 -275
  173. package/src/bootstrap/less/popovers.less +131 -131
  174. package/src/bootstrap/less/print.less +101 -101
  175. package/src/bootstrap/less/progress-bars.less +87 -87
  176. package/src/bootstrap/less/responsive-embed.less +35 -35
  177. package/src/bootstrap/less/responsive-utilities.less +194 -194
  178. package/src/bootstrap/less/scaffolding.less +161 -161
  179. package/src/bootstrap/less/tables.less +262 -262
  180. package/src/bootstrap/less/theme.less +291 -291
  181. package/src/bootstrap/less/thumbnails.less +36 -36
  182. package/src/bootstrap/less/tooltip.less +102 -102
  183. package/src/bootstrap/less/type.less +303 -303
  184. package/src/bootstrap/less/utilities.less +55 -55
  185. package/src/bootstrap/less/variables.less +895 -895
  186. package/src/bootstrap/less/wells.less +29 -29
  187. package/src/components/AloneLoadParams.vue +26 -26
  188. package/src/components/LoadAppdata.vue +38 -38
  189. package/src/components/LoginApp.vue +735 -735
  190. package/src/components/LoginAppNew.vue +590 -590
  191. package/src/components/LoginAppV4.vue +140 -110
  192. package/src/components/PhoneSellInfo.vue +148 -148
  193. package/src/components/Test.vue +14 -14
  194. package/src/plugins/GetStringData.js +18 -18
  195. package/src/plugins/LoadParams.js +24 -24
  196. package/src/services/ConfigService.js +24 -24
  197. package/static/app.json +4 -4
  198. package/static/globals.txt +74 -74
  199. package/test/unit/.eslintrc +5 -5
  200. package/test/unit/TestUtil.js +35 -35
  201. package/test/unit/context.html +20 -20
  202. package/test/unit/index.js +13 -13
  203. package/test/unit/init.js +13 -13
  204. package/test/unit/karma.conf.js +50 -50
  205. package/test/unit/specs/App.spec.js +17 -17
  206. package/test/unit/specs/Test.spec.js +28 -28
  207. package/test/unit/specs/components/LoginApp.spec.js +21 -21
  208. package/test/unit/specs/sevices/ConfigService.spec.js +23 -23
  209. package/test/unit/specs/sevices/GetDBTest.spec.js +28 -28
@@ -146,12 +146,19 @@ export default {
146
146
  imageurl: require('../assets/miwen.png'),
147
147
  deviceIemi: '无法获取该设备码,请联系管理员',
148
148
  loginSafe: false,
149
- margintop: document.documentElement.clientHeight * 0.1
149
+ margintop: document.documentElement.clientHeight * 0.1,
150
+ config: null
150
151
  }
151
152
  },
152
153
 
153
154
  ready () {
154
155
  if (Vue.android) {
156
+ // 获取系统配置文件
157
+ let users = this.$resetpost(`${this.$androidUtil.getProxyUrl()}/api/af-system/logic/openapi/getLiuliConfiguration`, {
158
+ configName: 'webConfig'
159
+ }, {resolveMsg: null, rejectMsg: null}).then(res=>{
160
+ this.config = res.data
161
+ })
155
162
  const userCache = this.$androidUtil.getPreference('login_user_cache')
156
163
  this.showauto = this.$androidUtil.getPreference('auto_login')
157
164
  this.showauto = this.showauto ? this.showauto : '2'
@@ -219,128 +226,134 @@ export default {
219
226
  console.log('Vue.android:' + Vue.android)
220
227
  Vue.dataUrl = this.$androidUtil.getProxyUrl() + '/'
221
228
  let loginData = {}
222
- try {
223
- let ret = {}
224
229
  try {
225
- ret = await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/api/af-auth/login`, {
226
- username: this.ename, password: this.password,
227
- resourceName: '手机服务'
228
- }, {
229
- resolveMsg: null,
230
- rejectMsg: null,
231
- headerConfig: {'Content-type': 'application/json'}
232
- })
233
- console.log(ret, '==')
234
- if (ret.data) {
235
- if (ret.data.resources.data && ret.data.resources.data.id) {
236
- loginData = ret.data.resources.data
230
+ let ret = {}
231
+ try {
232
+ ret = await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/api/af-auth/login`, {
233
+ username: this.ename, password: this.password,
234
+ resourceName: '手机服务'
235
+ }, {
236
+ resolveMsg: null,
237
+ rejectMsg: null,
238
+ headerConfig: {'Content-type': 'application/json'}
239
+ })
240
+ console.log(ret, '==')
241
+ if (ret.data) {
242
+ if (ret.data.resources.data && ret.data.resources.data.id) {
243
+ loginData = ret.data.resources.data
244
+ } else {
245
+ loginData = ret.data.resources
246
+ }
247
+ this.$androidUtil.setPreference('siteId', loginData.f_extend1 || '')
248
+ this.$androidUtil.setPreference('flatId', loginData.f_extend2 || '')
249
+ this.$androidUtil.setPreference('name', loginData.name || '')
250
+ this.$androidUtil.setPreference('ename', loginData.ename || '')
237
251
  } else {
238
- loginData = ret.data.resources
252
+ throw {status: ret.data.code, message: ret.data.msg}
239
253
  }
240
- this.$androidUtil.setPreference('siteId', loginData.f_extend1 || '')
241
- this.$androidUtil.setPreference('flatId', loginData.f_extend2 || '')
242
- this.$androidUtil.setPreference('name', loginData.name || '')
243
- this.$androidUtil.setPreference('ename', loginData.ename || '')
244
- } else {
245
- throw {status: ret.data.code, message: ret.data.msg}
246
- }
247
- } catch (e) {
248
- if (Vue.android) {
249
- this.loaderShow = false
250
- this.$showMessage(e.message ? e.message : '登录失败!用户名或密码错误!')
254
+ } catch (e) {
255
+ if (Vue.android) {
256
+ this.loaderShow = false
257
+ this.$showMessage(e.message ? e.message : '登录失败!用户名或密码错误!')
258
+ }
259
+ return
251
260
  }
252
- return
253
- }
254
261
 
255
- // 设置登录人
256
- Vue.user = Util.f = loginData
257
-
258
- // 对资源菜单进行排序
259
- try{
260
- let viewDetails = await Vue.resetpost(`${this.$androidUtil.getProxyUrl()}/rs/search`, {
261
- source: 'this.getRights().where(row.getType()==$function$ && row.getPath($name$).indexOf($功能权限$) != -1)',
262
- userid: Vue.user.id
263
- }, {resolveMsg: null, rejectMsg: null})
264
- const rithtList = viewDetails.data
265
- Vue.user.r = []
266
- rithtList.forEach(x => Vue.user.r.push(x.name))
267
- }catch (e) {
268
- console.log('资源排序失败!暂时先不影响登录')
269
- }
270
- // 功能排序
271
- Vue.functions = this.sortFunctions(loginData.functions)
272
- let userStr
273
- if (Vue.android) {
274
- console.log(`Device_IEMI:${this.$androidUtil.getPreference('Device_IEMI')}`)
275
- // 判断是否需要验证 设备码
276
- if (this.$androidUtil.getPreference('Device_IEMI')) {
277
- console.log(`手机设备码:${this.deviceIemi}`)
278
- let result = await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {
279
- data: {
280
- items: '*',
281
- tablename: 't_equipment',
282
- orderitem: 'id desc',
283
- condition: `f_terminal_number = '${this.deviceIemi}' and f_state = '正常'`
284
- }
262
+ // 设置登录人
263
+ Vue.user = Util.f = loginData
264
+
265
+ // 对资源菜单进行排序
266
+ try{
267
+ let viewDetails = await Vue.resetpost(`${this.$androidUtil.getProxyUrl()}/rs/search`, {
268
+ source: 'this.getRights().where(row.getType()==$function$ && row.getPath($name$).indexOf($功能权限$) != -1)',
269
+ userid: Vue.user.id
285
270
  }, {resolveMsg: null, rejectMsg: null})
286
- console.log(`检测设备码存在是否:${result.data.length}`)
287
- if (result.data.length == 0) {
288
- HostApp.alert('设备码未绑定,请联系管理员!')
289
- return
290
- }
271
+ const rithtList = viewDetails.data
272
+ Vue.user.r = []
273
+ rithtList.forEach(x => Vue.user.r.push(x.name))
274
+ }catch (e) {
275
+ console.log('资源排序失败!暂时先不影响登录')
291
276
  }
292
- if (this.showsave) {
293
- userStr = `{'username':'${this.ename}','password':'${this.password}'}`
294
- } else {
295
- userStr = `{'username':'${this.ename}','password':''}`
277
+ // 功能排序
278
+ Vue.functions = this.sortFunctions(loginData.functions)
279
+ let userStr
280
+ if (Vue.android) {
281
+ console.log(`Device_IEMI:${this.$androidUtil.getPreference('Device_IEMI')}`)
282
+ // 判断是否需要验证 设备码
283
+ if (this.$androidUtil.getPreference('Device_IEMI')) {
284
+ console.log(`手机设备码:${this.deviceIemi}`)
285
+ let result = await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {
286
+ data: {
287
+ items: '*',
288
+ tablename: 't_equipment',
289
+ orderitem: 'id desc',
290
+ condition: `f_terminal_number = '${this.deviceIemi}' and f_state = '正常'`
291
+ }
292
+ }, {resolveMsg: null, rejectMsg: null})
293
+ console.log(`检测设备码存在是否:${result.data.length}`)
294
+ if (result.data.length == 0) {
295
+ HostApp.alert('设备码未绑定,请联系管理员!')
296
+ return
297
+ }
298
+ }
299
+ if (this.showsave) {
300
+ userStr = `{'username':'${this.ename}','password':'${this.password}'}`
301
+ } else {
302
+ userStr = `{'username':'${this.ename}','password':''}`
303
+ }
304
+ console.log(this.showauto)
305
+ this.$androidUtil.setPreference('login_user_cache', userStr)
306
+ this.$androidUtil.setPreference('f_repairman_id', Util.f.id)
307
+ this.$androidUtil.setPreference('f_repairman_name', Util.f.name)
308
+ this.$androidUtil.setPreference('f_orgid', Util.f.orgid)
309
+ this.$androidUtil.setPreference('f_role_name', Util.f.f_role_name || '')
310
+ this.$androidUtil.setPreference('access_token', ret.data.access_token)
311
+ if(this.config && this.config.setting.requestEncrypt){
312
+ this.$androidUtil.setPreference('v4-session-key', this.RSADecrypt(ret.data.session))
313
+ }else{
314
+ this.$androidUtil.setPreference('v4-session-key', "")
315
+ }
316
+ console.log('自动登陆标识' + Util.f.f_role_name)
317
+ console.log(this.showauto)
318
+ this.$androidUtil.setPreference('auto_login', this.showauto)
296
319
  }
297
- console.log(this.showauto)
298
- this.$androidUtil.setPreference('login_user_cache', userStr)
299
- this.$androidUtil.setPreference('f_repairman_id', Util.f.id)
300
- this.$androidUtil.setPreference('f_repairman_name', Util.f.name)
301
- this.$androidUtil.setPreference('f_orgid', Util.f.orgid)
302
- this.$androidUtil.setPreference('f_role_name', Util.f.f_role_name || '')
303
- this.$androidUtil.setPreference('access_token', ret.data.access_token)
304
- console.log('自动登陆标识' + Util.f.f_role_name)
305
- console.log(this.showauto)
306
- this.$androidUtil.setPreference('auto_login', this.showauto)
307
- }
308
- Vue.$login = Vue.prototype.$login = {
309
- jwt: loginData.id,
310
- jwtNew: ret.data.access_token,
311
- toStandardDateString () {
312
- let dt = new Date()
313
- let month = dt.getMonth() + 1
314
- let date = dt.getDate()
315
- return dt.getFullYear() + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
316
- }, toStandardTimeString () {
317
- let dt = new Date()
318
- let month = dt.getMonth() + 1
319
- let date = dt.getDate()
320
- let hour = dt.getHours()
321
- let min = dt.getMinutes()
322
- let sec = dt.getSeconds()
323
- return dt.getFullYear() + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
324
- + ' ' + (hour < 10 ? '0' + hour : hour) + ':' + (min < 10 ? '0' + min : min) + ':' + (sec < 10 ? '0' + sec : sec)
320
+ Vue.$login = Vue.prototype.$login = {
321
+ jwt: loginData.id,
322
+ jwtNew: ret.data.access_token,
323
+ "v4-session-key": this.config && this.config.setting.requestEncrypt ? this.RSADecrypt(ret.data.session): null,
324
+ toStandardDateString () {
325
+ let dt = new Date()
326
+ let month = dt.getMonth() + 1
327
+ let date = dt.getDate()
328
+ return dt.getFullYear() + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
329
+ }, toStandardTimeString () {
330
+ let dt = new Date()
331
+ let month = dt.getMonth() + 1
332
+ let date = dt.getDate()
333
+ let hour = dt.getHours()
334
+ let min = dt.getMinutes()
335
+ let sec = dt.getSeconds()
336
+ return dt.getFullYear() + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
337
+ + ' ' + (hour < 10 ? '0' + hour : hour) + ':' + (min < 10 ? '0' + min : min) + ':' + (sec < 10 ? '0' + sec : sec)
338
+ }
325
339
  }
326
- }
327
- // 获取参数
340
+ // 获取参数
328
341
  console.log('获取参数system以及安检参数')
329
- const flag = await asyncReady(this, this.$androidUtil.getProxyUrl())
342
+ const flag = await asyncReady(this, this.$androidUtil.getProxyUrl())
330
343
  if (!flag) {
344
+ this.loaderShow = false
345
+ console.log('获取参数异常')
346
+ return
347
+ }
348
+ console.log('获取参数结束')
331
349
  this.loaderShow = false
332
- console.log('获取参数异常')
333
- return
350
+ // 弱口令验证
351
+ if (this.weakPassword && !(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?!.*(123|321|abc|cba))[a-zA-Z\d!@#$%^&*()_+-=<>?]{8,16}$/.test(this.password))) {
352
+ await this.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm'])
353
+ this.modifyPassword = true
354
+ return
334
355
  }
335
- console.log('获取参数结束')
336
- this.loaderShow = false
337
- // 弱口令验证
338
- if (this.weakPassword && !(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?!.*(123|321|abc|cba))[a-zA-Z\d!@#$%^&*()_+-=<>?]{8,16}$/.test(this.password))) {
339
- await this.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm'])
340
- this.modifyPassword = true
341
- return
342
- }
343
- this.$goto('nav-bottom')
356
+ this.$goto('nav-bottom')
344
357
  } catch (e) {
345
358
  if (Vue.android) {
346
359
  this.loaderShow = false
@@ -349,6 +362,23 @@ export default {
349
362
  this.$showMessage('登陆失败!,')
350
363
  }
351
364
  },
365
+ RSADecrypt(encryptedData) {
366
+ try {
367
+ const pk = this.$androidUtil.getPreference('v4PrivateKey')
368
+ const decryptor = new JSEncrypt();
369
+ decryptor.setPrivateKey(pk);
370
+ const decrypted = decryptor.decrypt(encryptedData);
371
+
372
+ if (!decrypted) {
373
+ throw new Error('解密失败:空结果');
374
+ }
375
+ return decrypted;
376
+ } catch (error) {
377
+ console.error('RSA解密错误:', error);
378
+ throw new Error('RSA解密失败,请检查私钥格式');
379
+ }
380
+ },
381
+
352
382
  delConfigKey(obj){
353
383
  // 从琉璃中获取的配置中会包含 $开头的一些额外描述新的key。为了兼容v3的代码逻辑在此函数中去掉
354
384
  Object.keys(obj).forEach(key =>{
@@ -1,148 +1,148 @@
1
- <template >
2
- <div class="panel panel-default auto repair-info-content">
3
- <div class="panel-body" v-show="show">
4
- <div class="panel panel-default well" v-for="row in model">
5
- <div class="bg-info">
6
- <div class="row form-group">
7
- <div class="col-xs-12 col-sm-12 col-md-12">
8
- <div class="row">
9
- <div class="col-xs-6 col-sm-6 col-md-6">
10
- 购气量: {{row.f_pregas}}
11
- </div>
12
- <div class="col-xs-6 col-sm-6 col-md-6">
13
- 购气金额: {{row.f_preamount}}
14
- </div>
15
- <div class="col-xs-6 col-sm-6 col-md-6">
16
- 收费状态: {{row.f_state}}
17
- </div>
18
- <div class="col-xs-6 col-sm-6 col-md-6">
19
- 收款: {{row.f_collection}}
20
- </div>
21
- <div class="col-xs-12 col-sm-12 col-md-12">
22
- 缴费方式: {{row.f_payment}}
23
- </div>
24
- <div class="col-xs-12 col-sm-12 col-md-12">
25
- 营业网点: {{row.f_depname}}
26
- </div>
27
- <div class="col-xs-12 col-sm-12 col-md-12">
28
- 操作员: {{row.f_operator}}
29
- </div>
30
- <div class="col-xs-12 col-sm-12 col-md-12">
31
- 购气时间: {{row.f_operate_date}}
32
- </div>
33
-
34
- </div>
35
- </div>
36
- </div>
37
- </div>
38
- </div>
39
- <div className="panel panel-default well">
40
- <div className="bg-info">
41
- <div className="row form-group">
42
- <div className="col-xs-12 col-sm-12 col-md-12">
43
- <div className="row">
44
- <div className="col-xs-6 col-sm-6 col-md-6">
45
- 总购气量: {{ f_pregas_count }}
46
- </div>
47
- <div className="col-xs-6 col-sm-6 col-md-6">
48
- 总购气金额: {{ f_preamount_count }}
49
- </div>
50
- <div className="col-xs-6 col-sm-6 col-md-6">
51
- 购气次数: {{ model.length }}
52
- </div>
53
- </div>
54
- </div>
55
- </div>
56
- </div>
57
- </div>
58
- <p v-show="model.length == 0 ">此用户暂无购气记录</p>
59
- </div>
60
- </div>
61
- </template>
62
-
63
- <script>
64
- import { PagedList } from 'vue-client'
65
- import co from 'co'
66
- export default {
67
- title: '查询用户',
68
- data () {
69
- return {
70
- model: [],
71
- f_pregas_count: 0,
72
- f_preamount_count: 0,
73
- show: false,
74
- row: Object
75
- }
76
- },
77
- props: {
78
- user: {
79
- type: Object
80
- },
81
- f_userinfo_id:''
82
- },
83
- methods: {
84
- getmodel () {
85
- let userinfoid
86
- if(this.f_userinfo_id){
87
- userinfoid = this.f_userinfo_id
88
- }else{
89
- userinfoid = this.user.f_userinfo_id
90
- console.log(this.user.f_userinfo_id)
91
- }
92
- console.log(userinfoid)
93
- this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {data: {items: '*', tablename: 't_sellinggas', orderitem: 'f_operate_date desc', condition:`f_state = '有效' and f_userinfo_id = '${userinfoid}'`}},{resolveMsg : null,rejectMsg :null}).then((row) => {
94
- this.model = row.data
95
- row.data.forEach(item => {
96
- this.f_pregas_count += item.f_pregas
97
- this.f_preamount_count += item.f_preamount
98
- })
99
- this.show=true
100
- })
101
- },
102
- back(){
103
-
104
- }
105
- },
106
- watch: {
107
- 'user' (val) {
108
- // this.model.search(`card_id = ${this.user.card_id}`)
109
- if(this.user){
110
- if (!(this.user.isNuN)) {
111
- this.model= []
112
- this.getmodel()
113
- }
114
- }
115
- },
116
- 'f_userinfo_id'(){
117
- if(this.f_userinfo_id){
118
- this.model= []
119
- this.getmodel()
120
- }
121
- }
122
- },
123
- ready () {
124
- if (this.user && this.user.f_userinfo_id) {
125
- // this.model.search(`card_id = ${this.user.card_id}`)
126
- this.getmodel()
127
- }
128
- if(this.f_userinfo_id){
129
- this.getmodel()
130
- }
131
- }
132
- }
133
- </script>
134
- <style>
135
- .app-botton {
136
- position:fixed;
137
- background: #87b2dd;
138
- color: #FFF;
139
- padding: 8px;
140
- text-align: center;
141
- font-size: 1.2em;
142
- z-index: 10;
143
- opacity:0.5;
144
- bottom: 50px;
145
- margin-top: -10px;
146
- height: 40px;
147
- }
148
- </style>
1
+ <template >
2
+ <div class="panel panel-default auto repair-info-content">
3
+ <div class="panel-body" v-show="show">
4
+ <div class="panel panel-default well" v-for="row in model">
5
+ <div class="bg-info">
6
+ <div class="row form-group">
7
+ <div class="col-xs-12 col-sm-12 col-md-12">
8
+ <div class="row">
9
+ <div class="col-xs-6 col-sm-6 col-md-6">
10
+ 购气量: {{row.f_pregas}}
11
+ </div>
12
+ <div class="col-xs-6 col-sm-6 col-md-6">
13
+ 购气金额: {{row.f_preamount}}
14
+ </div>
15
+ <div class="col-xs-6 col-sm-6 col-md-6">
16
+ 收费状态: {{row.f_state}}
17
+ </div>
18
+ <div class="col-xs-6 col-sm-6 col-md-6">
19
+ 收款: {{row.f_collection}}
20
+ </div>
21
+ <div class="col-xs-12 col-sm-12 col-md-12">
22
+ 缴费方式: {{row.f_payment}}
23
+ </div>
24
+ <div class="col-xs-12 col-sm-12 col-md-12">
25
+ 营业网点: {{row.f_depname}}
26
+ </div>
27
+ <div class="col-xs-12 col-sm-12 col-md-12">
28
+ 操作员: {{row.f_operator}}
29
+ </div>
30
+ <div class="col-xs-12 col-sm-12 col-md-12">
31
+ 购气时间: {{row.f_operate_date}}
32
+ </div>
33
+
34
+ </div>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ <div className="panel panel-default well">
40
+ <div className="bg-info">
41
+ <div className="row form-group">
42
+ <div className="col-xs-12 col-sm-12 col-md-12">
43
+ <div className="row">
44
+ <div className="col-xs-6 col-sm-6 col-md-6">
45
+ 总购气量: {{ f_pregas_count }}
46
+ </div>
47
+ <div className="col-xs-6 col-sm-6 col-md-6">
48
+ 总购气金额: {{ f_preamount_count }}
49
+ </div>
50
+ <div className="col-xs-6 col-sm-6 col-md-6">
51
+ 购气次数: {{ model.length }}
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ <p v-show="model.length == 0 ">此用户暂无购气记录</p>
59
+ </div>
60
+ </div>
61
+ </template>
62
+
63
+ <script>
64
+ import { PagedList } from 'vue-client'
65
+ import co from 'co'
66
+ export default {
67
+ title: '查询用户',
68
+ data () {
69
+ return {
70
+ model: [],
71
+ f_pregas_count: 0,
72
+ f_preamount_count: 0,
73
+ show: false,
74
+ row: Object
75
+ }
76
+ },
77
+ props: {
78
+ user: {
79
+ type: Object
80
+ },
81
+ f_userinfo_id:''
82
+ },
83
+ methods: {
84
+ getmodel () {
85
+ let userinfoid
86
+ if(this.f_userinfo_id){
87
+ userinfoid = this.f_userinfo_id
88
+ }else{
89
+ userinfoid = this.user.f_userinfo_id
90
+ console.log(this.user.f_userinfo_id)
91
+ }
92
+ console.log(userinfoid)
93
+ this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {data: {items: '*', tablename: 't_sellinggas', orderitem: 'f_operate_date desc', condition:`f_state = '有效' and f_userinfo_id = '${userinfoid}'`}},{resolveMsg : null,rejectMsg :null}).then((row) => {
94
+ this.model = row.data
95
+ row.data.forEach(item => {
96
+ this.f_pregas_count += item.f_pregas
97
+ this.f_preamount_count += item.f_preamount
98
+ })
99
+ this.show=true
100
+ })
101
+ },
102
+ back(){
103
+
104
+ }
105
+ },
106
+ watch: {
107
+ 'user' (val) {
108
+ // this.model.search(`card_id = ${this.user.card_id}`)
109
+ if(this.user){
110
+ if (!(this.user.isNuN)) {
111
+ this.model= []
112
+ this.getmodel()
113
+ }
114
+ }
115
+ },
116
+ 'f_userinfo_id'(){
117
+ if(this.f_userinfo_id){
118
+ this.model= []
119
+ this.getmodel()
120
+ }
121
+ }
122
+ },
123
+ ready () {
124
+ if (this.user && this.user.f_userinfo_id) {
125
+ // this.model.search(`card_id = ${this.user.card_id}`)
126
+ this.getmodel()
127
+ }
128
+ if(this.f_userinfo_id){
129
+ this.getmodel()
130
+ }
131
+ }
132
+ }
133
+ </script>
134
+ <style>
135
+ .app-botton {
136
+ position:fixed;
137
+ background: #87b2dd;
138
+ color: #FFF;
139
+ padding: 8px;
140
+ text-align: center;
141
+ font-size: 1.2em;
142
+ z-index: 10;
143
+ opacity:0.5;
144
+ bottom: 50px;
145
+ margin-top: -10px;
146
+ height: 40px;
147
+ }
148
+ </style>
@@ -1,14 +1,14 @@
1
- <template>
2
- <div>
3
- <h1>Hello Test {{msg}}</h1>
4
- </div>
5
- </template>
6
- <script>
7
- export default {
8
- title: "test",
9
- props: ['msg'],
10
- data () {
11
- return {}
12
- }
13
- }
14
- </script>
1
+ <template>
2
+ <div>
3
+ <h1>Hello Test {{msg}}</h1>
4
+ </div>
5
+ </template>
6
+ <script>
7
+ export default {
8
+ title: "test",
9
+ props: ['msg'],
10
+ data () {
11
+ return {}
12
+ }
13
+ }
14
+ </script>
@@ -1,18 +1,18 @@
1
-
2
- let GetStringdatas = {
3
-
4
- install (Vue, options) {
5
- // 给vue增添对话框显示方法
6
- Vue.$getString = Vue.prototype.$getString = GetStringdatas
7
- },
8
- getSubStr (String) {
9
- if(String.endsWith('phone')){
10
- let oldStr = String
11
- let index = oldStr.lastIndexOf("/")
12
- return oldStr.substring(0, index)
13
- }
14
- return String
15
- }
16
- }
17
-
18
- export default GetStringdatas
1
+
2
+ let GetStringdatas = {
3
+
4
+ install (Vue, options) {
5
+ // 给vue增添对话框显示方法
6
+ Vue.$getString = Vue.prototype.$getString = GetStringdatas
7
+ },
8
+ getSubStr (String) {
9
+ if(String.endsWith('phone')){
10
+ let oldStr = String
11
+ let index = oldStr.lastIndexOf("/")
12
+ return oldStr.substring(0, index)
13
+ }
14
+ return String
15
+ }
16
+ }
17
+
18
+ export default GetStringdatas