apply-clients 3.5.1 → 3.5.2

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 (44) hide show
  1. package/build/dev-server.js +142 -133
  2. package/package.json +118 -118
  3. package/src/App.vue +26 -21
  4. package/src/applyAndroid.js +58 -58
  5. package/src/components/android/AppSign.vue +152 -152
  6. package/src/components/android/AppTakePic.vue +181 -181
  7. package/src/components/android/Process/AppChargeList.vue +224 -224
  8. package/src/components/android/Process/AppExplorationUser.vue +508 -508
  9. package/src/components/product/Install/ContractCharge.vue +210 -210
  10. package/src/filiale/fugou/android/AppChargeManagement.vue +625 -625
  11. package/src/filiale/hongda/pc/FunctionServiceControl.vue +526 -525
  12. package/src/filiale/qianneng/android/AppExplorationUser.vue +441 -441
  13. package/src/filiale/qianneng/android/AppServiceControl.vue +1608 -1608
  14. package/src/filiale/qianneng/pc/Applybatchdispatch.vue +685 -685
  15. package/src/filiale/qianneng/pc/ExplorationSelect.vue +492 -492
  16. package/src/filiale/qianneng/pc/FunctionServiceControl.vue +521 -521
  17. package/src/filiale/qianneng/pc/InstallInfoSelect.vue +392 -392
  18. package/src/filiale/qianneng/pc/InstallationDetails.vue +561 -561
  19. package/src/filiale/qianneng/pc/ServiceControl.vue +1351 -1340
  20. package/src/filiale/qianneng/pc/SupervisoryList.vue +344 -344
  21. package/src/filiale/qianneng/pc/SupervisoryServiceControl.vue +871 -871
  22. package/src/filiale/qianneng/pc/chargeManagement.vue +656 -656
  23. package/src/filiale/qianneng/pc/printactivatecard.vue +295 -295
  24. package/src/filiale/qianneng/pc/supplementalAgreement.vue +344 -344
  25. package/src/filiale/yangchunboneng/android/AppAddMaterialScience.vue +390 -390
  26. package/src/filiale/yangchunboneng/android/AppChargeManagement.vue +120 -120
  27. package/src/filiale/yangchunboneng/android/AppDevicesManagement.vue +552 -552
  28. package/src/filiale/yangchunboneng/android/AppExplorationUser.vue +507 -507
  29. package/src/filiale/yangchunboneng/android/AppInstallationDetails.vue +492 -492
  30. package/src/filiale/yangchunboneng/android/AppOtherChargeManagement.vue +116 -116
  31. package/src/filiale/yangchunboneng/android/AppServiceControl.vue +1552 -1552
  32. package/src/filiale/yangchunboneng/android/AppTakePic.vue +181 -181
  33. package/src/filiale/yangchunboneng/android/chargesList.vue +170 -170
  34. package/src/filiale/yangchunboneng/android.js +16 -16
  35. package/src/filiale/yangchunboneng/pc/ExplorationSelect.vue +496 -496
  36. package/src/filiale/yangchunboneng/pc/InstallationDetails.vue +609 -609
  37. package/src/filiale/yangchunboneng/pc/ServiceControl.vue +1782 -1782
  38. package/src/filiale/yangchunboneng/pc/ServiceView.vue +1005 -1005
  39. package/src/filiale/yangchunboneng/pc/addMaterialScience.vue +374 -374
  40. package/src/filiale/yangchunboneng/pc/chargeManagement.vue +960 -960
  41. package/src/filiale/yangchunboneng/pc/devicesManagement.vue +511 -511
  42. package/src/filiale/yangchunboneng/pc/otherchargeManagement.vue +214 -214
  43. package/src/filiale/yangchunboneng/pc.js +17 -17
  44. package/src/main.js +23 -23
@@ -1,58 +1,58 @@
1
- import Vue from 'vue'
2
- import { all } from 'vue-client'
3
- Vue.config.silent = true
4
- import ApplyGetSaleParam from './stores/ApplyGetSaleParams'
5
- import ApplyLoadParams from './stores/ApplyLoadParams'
6
- /** ****************服务插件*********************/
7
-
8
- export default function (filiale) {
9
- Vue.use(ApplyGetSaleParam)
10
- Vue.use(ApplyLoadParams)
11
- /** ***************************报建模块*********************************/
12
- // 报建 总入口
13
- Vue.component('app-exploration-user', (resolve) => { require(['./components/android/Process/AppExplorationUser'], resolve) })
14
- Vue.component('app-service-control', (resolve) => { require(['./components/android/Process/AppServiceControl'], resolve) })
15
- Vue.component('app-process-supervisory', (resolve) => { require(['./components/android/Supervisory/AppProcessSupervisory'], resolve) })
16
- Vue.component('app-supervisory-cart', (resolve) => { require(['./components/android/Supervisory/AppSupervisoryCart'], resolve) })
17
- Vue.component('app-istall-function', (resolve) => { require(['./components/android/Function/AppInstallFunction'], resolve) })
18
- Vue.component('app-function-service-control', (resolve) => { require(['./components/android/Function/AppFunctionServiceControl'], resolve) })
19
-
20
- Vue.component('app-sign', (resolve) => { require(['./components/android/AppSign'], resolve) })
21
- Vue.component('app-take-pic', (resolve) => { require(['./components/android/AppTakePic'], resolve) })
22
- Vue.component('app-service-view', (resolve) => { require(['./components/android/AppServiceView'], resolve) })
23
- Vue.component('app-onetomany', (resolve) => { require(['./components/android/AppOnetomany'], resolve) })
24
-
25
- Vue.component('app-add-material-science', (resolve) => { require(['./components/android/Process/Processes/AppAddMaterialScience'], resolve) })
26
- Vue.component('app-add-material-new', (resolve) => { require(['./components/android/Process/Processes/chargesList'], resolve) })
27
- Vue.component('app-installation-details', (resolve) => { require(['./components/android/Process/Processes/AppInstallationDetails'], resolve) })
28
- Vue.component('app-apply-devices-management', (resolve) => { require(['./components/android/Process/Processes/AppDevicesManagement'], resolve) })
29
- Vue.component('app-charge-management', (resolve) => { require(['./components/android/Process/Processes/AppChargeManagement'], resolve) })
30
- Vue.component('app-supplemental-agreement', (resolve) => { require(['./components/android/Process/Processes/AppSupplementalAgreement'], resolve) })
31
- // 选择用户信息
32
- Vue.component('select-userinfo', (resolve) => { require(['./components/android/Process/Processes/selectUserinfo'], resolve) })
33
- // 选择报建项目
34
- Vue.component('select-apply', (resolve) => { require(['./components/android/Process/Processes/selectApply'], resolve) })
35
- Vue.component('app-build-sign', (resolve) => { require(['./components/android/Process/Processes/AppBuildSign'], resolve) })
36
-
37
- // 区域 地址下拉框联动组件
38
- Vue.component('app-res-area-select', (resolve) => { require(['./components/android/AreaSelect/AppResAreaSelect'], resolve) })
39
- Vue.component('app-res-area-select-group', (resolve) => { require(['./components/android/AreaSelect/AppResAreaSelectGroup'], resolve) })
40
- Vue.component('area-select', (resolve) => { require(['./components/product/AreaSelect/MyAreaSelect'], resolve) })
41
- Vue.component('apply-print-charge', (resolve) => { require(['./components/product/Process/Processes/Print/printCharge'], resolve) })
42
- // 地图组件
43
- Vue.component('app-res-area-map-group', (resolve) => { require(['./components/android/AreaSelect/AppResAreaMapGroup'], resolve) })
44
- // 扫描二维码
45
- Vue.component('app-qrcode-reader', (resolve) => { require(['./components/android/AreaSelect/AppQrcodeReader'], resolve) })
46
- Vue.component('app-ignition-ventilation', (resolve) => { require(['./components/android/Ignition/VentilationIgnition'], resolve) })
47
- Vue.component('app-ignition-handle', (resolve) => { require(['./components/android/Ignition/VentilationIgnitionHandle'], resolve) })
48
- Vue.component('material-one', (resolve) => { require(['./components/android/MaterIialOne'], resolve) })
49
- Vue.component('appinstallation-material', (resolve) => { require(['./components/android/AppInstallationMaterial.vue'], resolve) })
50
- Vue.component('app-other-charge-list', (resolve) => { require(['./components/android/Process/AppOtherChargeList.vue'], resolve) })
51
- // 特殊目录给这里加
52
- if (filiale) {
53
- let filialeComp = require(`./filiale/${filiale}/android`).specialComp
54
- for (let key in filialeComp) {
55
- Vue.component(key, filialeComp[key])
56
- }
57
- }
58
- }
1
+ import Vue from 'vue'
2
+ import { all } from 'vue-client'
3
+ Vue.config.silent = true
4
+ import ApplyGetSaleParam from './stores/ApplyGetSaleParams'
5
+ import ApplyLoadParams from './stores/ApplyLoadParams'
6
+ /** ****************服务插件*********************/
7
+
8
+ export default function (filiale) {
9
+ Vue.use(ApplyGetSaleParam)
10
+ Vue.use(ApplyLoadParams)
11
+ /** ***************************报建模块*********************************/
12
+ // 报建 总入口
13
+ Vue.component('app-exploration-user', (resolve) => { require(['./components/android/Process/AppExplorationUser'], resolve) })
14
+ Vue.component('app-service-control', (resolve) => { require(['./components/android/Process/AppServiceControl'], resolve) })
15
+ Vue.component('app-process-supervisory', (resolve) => { require(['./components/android/Supervisory/AppProcessSupervisory'], resolve) })
16
+ Vue.component('app-supervisory-cart', (resolve) => { require(['./components/android/Supervisory/AppSupervisoryCart'], resolve) })
17
+ Vue.component('app-istall-function', (resolve) => { require(['./components/android/Function/AppInstallFunction'], resolve) })
18
+ Vue.component('app-function-service-control', (resolve) => { require(['./components/android/Function/AppFunctionServiceControl'], resolve) })
19
+
20
+ Vue.component('app-sign', (resolve) => { require(['./components/android/AppSign'], resolve) })
21
+ Vue.component('app-take-pic', (resolve) => { require(['./components/android/AppTakePic'], resolve) })
22
+ Vue.component('app-service-view', (resolve) => { require(['./components/android/AppServiceView'], resolve) })
23
+ Vue.component('app-onetomany', (resolve) => { require(['./components/android/AppOnetomany'], resolve) })
24
+
25
+ Vue.component('app-add-material-science', (resolve) => { require(['./components/android/Process/Processes/AppAddMaterialScience'], resolve) })
26
+ Vue.component('app-add-material-new', (resolve) => { require(['./components/android/Process/Processes/chargesList'], resolve) })
27
+ Vue.component('app-installation-details', (resolve) => { require(['./components/android/Process/Processes/AppInstallationDetails'], resolve) })
28
+ Vue.component('app-apply-devices-management', (resolve) => { require(['./components/android/Process/Processes/AppDevicesManagement'], resolve) })
29
+ Vue.component('app-charge-management', (resolve) => { require(['./components/android/Process/Processes/AppChargeManagement'], resolve) })
30
+ Vue.component('app-supplemental-agreement', (resolve) => { require(['./components/android/Process/Processes/AppSupplementalAgreement'], resolve) })
31
+ // 选择用户信息
32
+ Vue.component('select-userinfo', (resolve) => { require(['./components/android/Process/Processes/selectUserinfo'], resolve) })
33
+ // 选择报建项目
34
+ Vue.component('select-apply', (resolve) => { require(['./components/android/Process/Processes/selectApply'], resolve) })
35
+ Vue.component('app-build-sign', (resolve) => { require(['./components/android/Process/Processes/AppBuildSign'], resolve) })
36
+
37
+ // 区域 地址下拉框联动组件
38
+ Vue.component('app-res-area-select', (resolve) => { require(['./components/android/AreaSelect/AppResAreaSelect'], resolve) })
39
+ Vue.component('app-res-area-select-group', (resolve) => { require(['./components/android/AreaSelect/AppResAreaSelectGroup'], resolve) })
40
+ Vue.component('area-select', (resolve) => { require(['./components/product/AreaSelect/MyAreaSelect'], resolve) })
41
+ Vue.component('apply-print-charge', (resolve) => { require(['./components/product/Process/Processes/Print/printCharge'], resolve) })
42
+ // 地图组件
43
+ Vue.component('app-res-area-map-group', (resolve) => { require(['./components/android/AreaSelect/AppResAreaMapGroup'], resolve) })
44
+ // 扫描二维码
45
+ Vue.component('app-qrcode-reader', (resolve) => { require(['./components/android/AreaSelect/AppQrcodeReader'], resolve) })
46
+ Vue.component('app-ignition-ventilation', (resolve) => { require(['./components/android/Ignition/VentilationIgnition'], resolve) })
47
+ Vue.component('app-ignition-handle', (resolve) => { require(['./components/android/Ignition/VentilationIgnitionHandle'], resolve) })
48
+ Vue.component('material-one', (resolve) => { require(['./components/android/MaterIialOne'], resolve) })
49
+ Vue.component('appinstallation-material', (resolve) => { require(['./components/android/AppInstallationMaterial.vue'], resolve) })
50
+ Vue.component('app-other-charge-list', (resolve) => { require(['./components/android/Process/AppOtherChargeList.vue'], resolve) })
51
+ // 特殊目录给这里加
52
+ if (filiale) {
53
+ let filialeComp = require(`./filiale/${filiale}/android`).specialComp
54
+ for (let key in filialeComp) {
55
+ Vue.component(key, filialeComp[key])
56
+ }
57
+ }
58
+ }
@@ -1,152 +1,152 @@
1
- <template>
2
- <div class="panel">
3
- <div class="panel-body panel-self" style="background-color: #F8F8F8;">
4
- <div class="row form-group" style="height: 240px;overflow: scroll;">
5
- <img :src="f_sign_path" width="100%" height="100%" />
6
- </div>
7
- <div class="row text-right form-group">
8
- <button class="btn" style="background-color: #f1e404;border-radius: 5px;margin-right: 10px" @click="clean">清除</button>
9
- <button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click="sign">签名</button>
10
- </div>
11
- </div>
12
- </div>
13
- </template>
14
- <script>
15
- import {getNowDate, guid, isEmpty} from '../Util'
16
- import {PagedList} from 'vue-client'
17
- import {HttpResetClass} from 'vue-client'
18
- import QRCode from 'qrcodejs2'
19
- import Vue from "vue";
20
-
21
- export default {
22
- title: '签字',
23
- props: ['filePath','blobid','type', 'defname'],
24
- data () {
25
- return {
26
- f_sign_path: null,
27
- fileName: null
28
- }
29
- },
30
- ready () {
31
- console.log('在ready里打印一下this.filePath',this.filePath)
32
- this.f_sign_path = this.filePath
33
- console.log('在ready里打印一下this.f_sign_path',this.f_sign_path)
34
- this.getFiles()
35
- },
36
- methods: {
37
- clean () {
38
- this.f_sign_path = null
39
- this.fileName = null
40
- this.$emit('sign-clean')
41
- },
42
- sign () {
43
- this.type='手机签字'
44
- console.log('==============签字打印this============',this)
45
- this.delAudioFile(this.f_sign_path)
46
- this.fileName = guid() + '.jpg'
47
- HostApp.__callback__ = this.signCallback
48
- HostApp.__this__ = this
49
- HostApp.getSignature({
50
- file: this.fileName,
51
- requestCode: 111,
52
- callback: 'javascript:HostApp.__callback__("f_sign_path", "%s");'
53
- })
54
- },
55
- // 签名回调
56
- signCallback (prop, signPath) {
57
- console.log('==============签字回调============')
58
- console.log(signPath)
59
- HostApp.__this__.$set(prop, signPath)
60
- console.log(HostApp.__this__.f_sign_path)
61
-
62
- HostApp.__this__.uploadFile()
63
-
64
- HostApp.__callback__ = null
65
- HostApp.__this__ = null
66
- },
67
- uploadFile () {
68
- console.log('===================签字文件上传==============')
69
- console.log('===================打印id==============',HostApp.__this__.blobid)
70
- let data = {
71
- defname:HostApp.__this__.defname,
72
- type:HostApp.__this__.type,
73
- blodid: HostApp.__this__.blobid,
74
- username: Vue.user.name,
75
- fremarks: '报装手机签字文件',
76
- fileName: HostApp.__this__.fileName,
77
- fileUrl: HostApp.__this__.f_sign_path
78
- }
79
-
80
- console.log('-----------bzLogic-----------------')
81
- console.log(JSON.stringify(data))
82
- let res = HostApp.bzLogic({
83
- 'logic': 'appFileUpload',
84
- 'data': data
85
- })
86
- console.log('===============上传回调=================')
87
- console.log(JSON.stringify(res))
88
- HostApp.__this__.getFiles(res.id)
89
- },
90
- async getFiles (fileid) {
91
- console.log('=========进来===============')
92
- let http = new HttpResetClass()
93
- console.log('=========进来===============')
94
- let data = {
95
- tablename: 't_files',
96
- condition: `f_blobid = '${this.blobid}' and fremarks='报装手机签字文件' order by f_uploaddate desc`
97
- }
98
- let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/apply_singleTable`, {data: data}, {
99
- // let res = await http.load('POST', `rs/sql/apply_singleTable`, {data: data}, {
100
- warnMsg: null,
101
- resolveMsg: null
102
- })
103
- if (res.data.length > 0){
104
- console.log('=========查询回调===============')
105
- let fileUrl = `${this.$androidUtil.getProxyUrl()}/${res.data[0].f_downloadpath.substring(res.data[0].f_downloadpath.lastIndexOf(":\\") + 2)}`
106
- console.log(fileUrl)
107
- // HostApp.__this__.$set('f_sign_path', fileUrl)
108
- // HostApp.__this__.f_sign_path = fileUrl
109
- this.f_sign_path = fileUrl
110
- this.$emit('sign-success', fileUrl)
111
- }
112
- },
113
- delAudioFile (signPath) {
114
- if (!signPath) {
115
- return
116
- }
117
- HostApp.delfile(signPath)
118
- this.f_sign_path = null
119
- this.fileName = null
120
- }
121
- },
122
- events: {
123
- },
124
- computed: {
125
- },
126
- watch: {
127
- }
128
- }
129
- </script>
130
- <style scoped lang="less">
131
- .qrcode {
132
- display: inline-block !important;
133
- margin: 10px 0px;
134
- }
135
- .panel-self{
136
- border-radius: 10px;
137
- border:1px solid #499EDF;
138
- background-color: #F8F8F8;
139
- }
140
- .vertical-center {
141
- display: flex;
142
- align-items: center;
143
- text-align: center;
144
- }
145
- /*清除model中的浮动*/
146
- .clearfix:after,.clearfix:before{
147
- display: table;
148
- }
149
- .clearfix:after{
150
- clear: both;
151
- }
152
- </style>
1
+ <template>
2
+ <div class="panel">
3
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;">
4
+ <div class="row form-group" style="height: 240px;overflow: scroll;">
5
+ <img :src="f_sign_path" width="100%" height="100%" />
6
+ </div>
7
+ <div class="row text-right form-group">
8
+ <button class="btn" style="background-color: #f1e404;border-radius: 5px;margin-right: 10px" @click="clean">清除</button>
9
+ <button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click="sign">签名</button>
10
+ </div>
11
+ </div>
12
+ </div>
13
+ </template>
14
+ <script>
15
+ import {getNowDate, guid, isEmpty} from '../Util'
16
+ import {PagedList} from 'vue-client'
17
+ import {HttpResetClass} from 'vue-client'
18
+ import QRCode from 'qrcodejs2'
19
+ import Vue from "vue";
20
+
21
+ export default {
22
+ title: '签字',
23
+ props: ['filePath','blobid','type', 'defname'],
24
+ data () {
25
+ return {
26
+ f_sign_path: null,
27
+ fileName: null
28
+ }
29
+ },
30
+ ready () {
31
+ console.log('在ready里打印一下this.filePath',this.filePath)
32
+ this.f_sign_path = this.filePath
33
+ console.log('在ready里打印一下this.f_sign_path',this.f_sign_path)
34
+ this.getFiles()
35
+ },
36
+ methods: {
37
+ clean () {
38
+ this.f_sign_path = null
39
+ this.fileName = null
40
+ this.$emit('sign-clean')
41
+ },
42
+ sign () {
43
+ this.type='手机签字'
44
+ console.log('==============签字打印this============',this)
45
+ this.delAudioFile(this.f_sign_path)
46
+ this.fileName = guid() + '.jpg'
47
+ HostApp.__callback__ = this.signCallback
48
+ HostApp.__this__ = this
49
+ HostApp.getSignature({
50
+ file: this.fileName,
51
+ requestCode: 111,
52
+ callback: 'javascript:HostApp.__callback__("f_sign_path", "%s");'
53
+ })
54
+ },
55
+ // 签名回调
56
+ signCallback (prop, signPath) {
57
+ console.log('==============签字回调============')
58
+ console.log(signPath)
59
+ HostApp.__this__.$set(prop, signPath)
60
+ console.log(HostApp.__this__.f_sign_path)
61
+
62
+ HostApp.__this__.uploadFile()
63
+
64
+ HostApp.__callback__ = null
65
+ HostApp.__this__ = null
66
+ },
67
+ uploadFile () {
68
+ console.log('===================签字文件上传==============')
69
+ console.log('===================打印id==============',HostApp.__this__.blobid)
70
+ let data = {
71
+ defname:HostApp.__this__.defname,
72
+ type:HostApp.__this__.type,
73
+ blodid: HostApp.__this__.blobid,
74
+ username: Vue.user.name,
75
+ fremarks: '报装手机签字文件',
76
+ fileName: HostApp.__this__.fileName,
77
+ fileUrl: HostApp.__this__.f_sign_path
78
+ }
79
+
80
+ console.log('-----------bzLogic-----------------')
81
+ console.log(JSON.stringify(data))
82
+ let res = HostApp.bzLogic({
83
+ 'logic': 'appFileUpload',
84
+ 'data': data
85
+ })
86
+ console.log('===============上传回调=================')
87
+ console.log(JSON.stringify(res))
88
+ HostApp.__this__.getFiles(res.id)
89
+ },
90
+ async getFiles (fileid) {
91
+ console.log('=========进来===============')
92
+ let http = new HttpResetClass()
93
+ console.log('=========进来===============')
94
+ let data = {
95
+ tablename: 't_files',
96
+ condition: `f_blobid = '${this.blobid}' and fremarks='报装手机签字文件' order by f_uploaddate desc`
97
+ }
98
+ let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/apply_singleTable`, {data: data}, {
99
+ // let res = await http.load('POST', `rs/sql/apply_singleTable`, {data: data}, {
100
+ warnMsg: null,
101
+ resolveMsg: null
102
+ })
103
+ if (res.data.length > 0){
104
+ console.log('=========查询回调===============')
105
+ let fileUrl = `${this.$androidUtil.getProxyUrl()}/${res.data[0].f_downloadpath.substring(res.data[0].f_downloadpath.lastIndexOf(":\\") + 2)}`
106
+ console.log(fileUrl)
107
+ // HostApp.__this__.$set('f_sign_path', fileUrl)
108
+ // HostApp.__this__.f_sign_path = fileUrl
109
+ this.f_sign_path = fileUrl
110
+ this.$emit('sign-success', fileUrl)
111
+ }
112
+ },
113
+ delAudioFile (signPath) {
114
+ if (!signPath) {
115
+ return
116
+ }
117
+ HostApp.delfile(signPath)
118
+ this.f_sign_path = null
119
+ this.fileName = null
120
+ }
121
+ },
122
+ events: {
123
+ },
124
+ computed: {
125
+ },
126
+ watch: {
127
+ }
128
+ }
129
+ </script>
130
+ <style scoped lang="less">
131
+ .qrcode {
132
+ display: inline-block !important;
133
+ margin: 10px 0px;
134
+ }
135
+ .panel-self{
136
+ border-radius: 10px;
137
+ border:1px solid #499EDF;
138
+ background-color: #F8F8F8;
139
+ }
140
+ .vertical-center {
141
+ display: flex;
142
+ align-items: center;
143
+ text-align: center;
144
+ }
145
+ /*清除model中的浮动*/
146
+ .clearfix:after,.clearfix:before{
147
+ display: table;
148
+ }
149
+ .clearfix:after{
150
+ clear: both;
151
+ }
152
+ </style>