safecheck-client 4.0.2-2 → 4.0.2-20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/components/NewDefectList/DefectPaperNew.vue +1184 -1184
- package/src/components/android/PhoneUpUserinfo.vue +1249 -1249
- package/src/components/android/SafeRightTree.vue +218 -218
- package/src/components/android/SafecheckDevices.vue +1340 -1340
- package/src/components/android/week/CheckResultSimple.vue +222 -0
- package/src/components/android/week/FirstWeekCheck.vue +236 -0
- package/src/components/android/week/StepHeaderBar.vue +323 -0
- package/src/components/android/week/WeekCheck.vue +151 -0
- package/src/components/android/week/WeekCheckPaper.vue +151 -0
- package/src/components/checkplan/SelectCheckPlan.vue +39 -0
- package/src/components/paper/safetyledger.vue +194 -0
- package/src/components/pc/CheckBook.vue +303 -303
- package/src/components/pc/CheckBookArea.vue +146 -146
- package/src/components/pc/CheckBookCompany.vue +144 -144
- package/src/components/pc/CheckBookDetails.vue +161 -161
- package/src/components/pc/CheckBookEntry.vue +60 -60
- package/src/components/pc/CheckBookSearchArea.vue +560 -560
- package/src/components/pc/CheckBookSearchUnit.vue +229 -229
- package/src/components/pc/CheckBookSearchUser.vue +659 -659
- package/src/components/pc/CheckBookSearchUserList.vue +674 -674
- package/src/components/planmanage/PlanManage.vue +10 -1
- package/src/components/planmanage/checkUserList.vue +1 -1
- package/src/components/querycheckpaper/CheckSearchUser.vue +2 -1
- package/src/components/report/CheckByPlan.vue +1 -1
- package/src/components/report/CheckPlanAreaList.vue +45 -2
- package/src/filiale/jinhong/android/CurrentCreate.vue +1313 -1313
- package/src/filiale/jinhong/android/PhoneInsurancePurchaseDetail.vue +27 -3
- package/src/filiale/jinhong/pc/CheckBookList.vue +4 -0
- package/src/filiale/jinhong/pc/PaperList.vue +1 -1
- package/src/filiale/meihekou/android/CheckPlanList.vue +198 -198
- package/src/filiale/meihekou/android/CheckPlanListArea.vue +190 -190
- package/src/filiale/meihekou/android/PaperFeedback.vue +1542 -1542
- package/src/filiale/meihekou/android/SafecheckDevices.vue +1343 -1340
- package/src/filiale/meihekou/android/SafecheckOrderV.vue +9 -8
- package/src/filiale/meihekou/android.js +22 -22
- package/src/filiale/meihekou/pc/CheckDetail.vue +208 -0
- package/src/filiale/meihekou/pc/CheckPlan.vue +52 -0
- package/src/filiale/meihekou/pc/CheckPlanAreaList.vue +504 -0
- package/src/filiale/meihekou/pc/NewCheckpaperNew.vue +2050 -2050
- package/src/filiale/meihekou/pc/SelectCheckPlan.vue +262 -0
- package/src/filiale/meihekou/pc.js +3 -0
- package/src/filiale/qingjian/pc/SecurityCheckCoordinates.vue +2 -2
- package/src/filiale/xinkang/android/SafecheckOrderV.vue +1 -1
- package/src/filiale/xinliansihui/pc/PaperList.vue +814 -0
- package/src/filiale/xinliansihui/pc/PaperVisitMain.vue +206 -0
- package/src/filiale/xinliansihui/pc.js +13 -0
- package/src/safecheck-android.js +326 -316
- package/src/safecheck.js +3 -0
|
@@ -876,16 +876,12 @@ export default {
|
|
|
876
876
|
this.checkResult[f_device_type + '-' + f_item_name] = []
|
|
877
877
|
}
|
|
878
878
|
this.checkResult[f_device_type + '-' + f_item_name].push(f_item_value)
|
|
879
|
-
|
|
880
879
|
}
|
|
881
|
-
|
|
882
880
|
let f_selected = f_item_value
|
|
883
|
-
if (!items.f_selected)
|
|
881
|
+
if (!items.f_selected || !(items.f_selected instanceof Array)){
|
|
884
882
|
items.f_selected = []
|
|
885
|
-
items.f_selected.push(f_item_value)
|
|
886
|
-
} else {
|
|
887
|
-
items.f_selected.push(f_item_value)
|
|
888
883
|
}
|
|
884
|
+
items.f_selected.push(f_item_value)
|
|
889
885
|
}
|
|
890
886
|
}
|
|
891
887
|
}
|
|
@@ -994,6 +990,8 @@ export default {
|
|
|
994
990
|
if (this.repairDefect.result != '正常') {
|
|
995
991
|
return this.$showMessage('有隐患的处理方式为转维修,请点击转维修')
|
|
996
992
|
}
|
|
993
|
+
//先临时保存
|
|
994
|
+
this.save('temp')
|
|
997
995
|
this.save()
|
|
998
996
|
},
|
|
999
997
|
//将数据组装提出
|
|
@@ -1328,7 +1326,7 @@ export default {
|
|
|
1328
1326
|
}
|
|
1329
1327
|
if (jo.state == 'ok') {
|
|
1330
1328
|
let res = JSON.parse(jo.result)
|
|
1331
|
-
if (res.code == 200) {
|
|
1329
|
+
if (res.code == 200 || res.code == 310 || res.code == 311) {
|
|
1332
1330
|
this.$set('data.f_paper_id', res.id)
|
|
1333
1331
|
this.isStrat = false
|
|
1334
1332
|
if (url != "") {
|
|
@@ -2186,9 +2184,12 @@ export default {
|
|
|
2186
2184
|
}
|
|
2187
2185
|
}
|
|
2188
2186
|
}
|
|
2189
|
-
if (item.f_items[i].
|
|
2187
|
+
if (item.f_items[i].f_selected) {
|
|
2190
2188
|
item.f_items[i].f_item_value = JSON.parse(item.f_items[i].f_selected)
|
|
2191
2189
|
}
|
|
2190
|
+
if (item.f_items[i].f_item_lists.length > 0){
|
|
2191
|
+
item.f_items[i].f_item_value = item.f_items[i].f_item_lists[0].f_item_value
|
|
2192
|
+
}
|
|
2192
2193
|
}
|
|
2193
2194
|
for (let de in that.devices) {
|
|
2194
2195
|
if (typeof that.devices[de] == 'function') {
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
// 分公司特殊组件页面注册
|
|
2
|
-
import Vue from "vue";
|
|
3
|
-
|
|
4
|
-
//手机特殊目录注册到该文件中
|
|
5
|
-
let specialComp = {
|
|
6
|
-
'safecheck-order-v': (resolve) => { require(['./android/SafecheckOrderV'], resolve) },
|
|
7
|
-
'safecheck-devices': (resolve) => { require(['./android/SafecheckDevices'], resolve) },
|
|
8
|
-
'paper-feedback' : (resolve) => { require(['./android/PaperFeedback'], resolve) },
|
|
9
|
-
'safecheck-userinfo': (resolve) => { require(['./android/SafecheckUserInfo'], resolve) },
|
|
10
|
-
'PhoneUpUserinfo': (resolve) => { require(['./android/PhoneUpUserinfo.vue'], resolve) },
|
|
11
|
-
'area-plan': (resolve) => { require(['./android/AreaPlan.vue'], resolve) },
|
|
12
|
-
'check-plan-list': (resolve) => { require(['./android/CheckPlanList.vue'], resolve) },
|
|
13
|
-
'phone-insurance-purchase-detail': (resolve) => { require(['./android/PhoneInsurancePurchaseDetail'], resolve) },
|
|
14
|
-
'check-plan-list-area': (resolve) => { require(['./android/CheckPlanListArea.vue'], resolve) },
|
|
15
|
-
'current-create': (resolve) => { require(['./android/CurrentCreate.vue'], resolve) },
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
exports.specialComp = specialComp
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
// 分公司特殊组件页面注册
|
|
2
|
+
import Vue from "vue";
|
|
3
|
+
|
|
4
|
+
//手机特殊目录注册到该文件中
|
|
5
|
+
let specialComp = {
|
|
6
|
+
'safecheck-order-v': (resolve) => { require(['./android/SafecheckOrderV'], resolve) },
|
|
7
|
+
'safecheck-devices': (resolve) => { require(['./android/SafecheckDevices'], resolve) },
|
|
8
|
+
'paper-feedback' : (resolve) => { require(['./android/PaperFeedback'], resolve) },
|
|
9
|
+
'safecheck-userinfo': (resolve) => { require(['./android/SafecheckUserInfo'], resolve) },
|
|
10
|
+
'PhoneUpUserinfo': (resolve) => { require(['./android/PhoneUpUserinfo.vue'], resolve) },
|
|
11
|
+
'area-plan': (resolve) => { require(['./android/AreaPlan.vue'], resolve) },
|
|
12
|
+
'check-plan-list': (resolve) => { require(['./android/CheckPlanList.vue'], resolve) },
|
|
13
|
+
'phone-insurance-purchase-detail': (resolve) => { require(['./android/PhoneInsurancePurchaseDetail'], resolve) },
|
|
14
|
+
'check-plan-list-area': (resolve) => { require(['./android/CheckPlanListArea.vue'], resolve) },
|
|
15
|
+
'current-create': (resolve) => { require(['./android/CurrentCreate.vue'], resolve) },
|
|
16
|
+
|
|
17
|
+
}
|
|
18
|
+
exports.specialComp = specialComp
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<criteria-paged :model="model" v-ref:paged>
|
|
4
|
+
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:criteria>
|
|
5
|
+
<div partial>
|
|
6
|
+
<ul class="nav nav-tabs">
|
|
7
|
+
<li role="presentation" class="active"><a style=" color: #5ac0d9 !important;">安检计划项明细</a></li>
|
|
8
|
+
</ul>
|
|
9
|
+
<div class="row">
|
|
10
|
+
<div class="form-group col-sm-4" >
|
|
11
|
+
<label class="font_normal_body">安检状态</label>
|
|
12
|
+
<v-select style="width:60% "
|
|
13
|
+
class="select select_list"
|
|
14
|
+
:value.sync="$parent.$parent.f_state"
|
|
15
|
+
v-model="$parent.$parent.f_state"
|
|
16
|
+
:options='$parent.$parent.checkState'
|
|
17
|
+
placeholder='安检状态'
|
|
18
|
+
close-on-select
|
|
19
|
+
value-single
|
|
20
|
+
>
|
|
21
|
+
</v-select>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="form-group col-sm-4" v-if="$parent.$parent.f_state=='未入户'" >
|
|
24
|
+
<v-select style="width:60% "
|
|
25
|
+
class="select select_list"
|
|
26
|
+
:value.sync="$parent.$parent.f_noruhu"
|
|
27
|
+
v-model="$parent.$parent.f_noruhu"
|
|
28
|
+
:options='$parent.$parent.noChecks'
|
|
29
|
+
placeholder='请选择状态'
|
|
30
|
+
:multiple="true"
|
|
31
|
+
>
|
|
32
|
+
</v-select>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="form-group col-sm-4" >
|
|
35
|
+
<label class="font_normal_body">小区</label>
|
|
36
|
+
<input type="text" class="input_search"
|
|
37
|
+
v-model="$parent.$parent.f_residential_area"
|
|
38
|
+
style="width: 60%" placeholder="小区"
|
|
39
|
+
condition="f_residential_area like '%{}%'">
|
|
40
|
+
</div>
|
|
41
|
+
<div class="form-group col-sm-4" >
|
|
42
|
+
<label class="font_normal_body">楼号</label>
|
|
43
|
+
<input type="text" class="input_search"
|
|
44
|
+
v-model="$parent.$parent.f_building"
|
|
45
|
+
style="width: 60%" placeholder="楼号"
|
|
46
|
+
condition="f_building like '%{}%'">
|
|
47
|
+
</div>
|
|
48
|
+
<div class="form-group col-sm-4 button-range" >
|
|
49
|
+
<button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
|
|
50
|
+
<export-excel :data="$parent.$parent.exportParameter"
|
|
51
|
+
:field="$parent.$parent.excelHeaders"
|
|
52
|
+
sqlurl="api/af-safecheck/logic/exportfile" sql-name="planItem"
|
|
53
|
+
template-name='安检计划明细' :choose-col="true">
|
|
54
|
+
</export-excel>
|
|
55
|
+
<!--<export-excel-->
|
|
56
|
+
<!--:data="{condition: $parent.$parent.condition}"-->
|
|
57
|
+
<!--:field="$parent.$parent.getfield"-->
|
|
58
|
+
<!--sqlurl="api/af-safecheck/logic/saleExport" sql-name="getGasUser" :template-name="$parent.$parent.pricename+'气价使用人'"-->
|
|
59
|
+
<!--:choose-col="true"></export-excel>-->
|
|
60
|
+
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</criteria>
|
|
65
|
+
<data-grid :model="model" partial='list' class="table_sy">
|
|
66
|
+
|
|
67
|
+
<template partial='head'>
|
|
68
|
+
<tr>
|
|
69
|
+
<th><nobr>计划名称</nobr></th>
|
|
70
|
+
<th><nobr>用户编号</nobr></th>
|
|
71
|
+
<th><nobr>用户名称</nobr></th>
|
|
72
|
+
<th><nobr>小区名称</nobr></th>
|
|
73
|
+
<th><nobr>地址</nobr></th>
|
|
74
|
+
<th><nobr>安检状态</nobr></th>
|
|
75
|
+
<th><nobr>是否安检</nobr></th>
|
|
76
|
+
</tr>
|
|
77
|
+
</template>
|
|
78
|
+
<template partial='body'>
|
|
79
|
+
<td style="text-align: center"><nobr>{{row.f_plan_name}}</nobr></td>
|
|
80
|
+
<td style="text-align: center"><nobr>{{row.f_userinfo_code}}</nobr></td>
|
|
81
|
+
<td style="text-align: center"><nobr>{{row.f_user_name}}</nobr></td>
|
|
82
|
+
<td style="text-align: center"><nobr>{{row.f_residential_area}}</nobr></td>
|
|
83
|
+
<td style="text-align: center"><nobr>{{row.f_address}}</nobr></td>
|
|
84
|
+
<td style="text-align: center"><nobr>{{row.f_last_check_state}}</nobr></td>
|
|
85
|
+
<td style="text-align: center"><nobr>{{row.f_state}}</nobr></td>
|
|
86
|
+
</template>
|
|
87
|
+
</data-grid>
|
|
88
|
+
</criteria-paged>
|
|
89
|
+
</div>
|
|
90
|
+
</template>
|
|
91
|
+
|
|
92
|
+
<script>
|
|
93
|
+
import { PagedList } from 'vue-client'
|
|
94
|
+
|
|
95
|
+
export default {
|
|
96
|
+
title: '安检计划项列表',
|
|
97
|
+
data () {
|
|
98
|
+
return {
|
|
99
|
+
model: new PagedList('api/af-safecheck/sql/planItemNew', 20),
|
|
100
|
+
checkState:[{label:'全部',value:''},{label:'入户',value:'入户'},{label:'未入户',value:'未入户'}],
|
|
101
|
+
noChecks:[{label:'未检',value:'未检'},{label:'到访不遇',value:'到访不遇'},{label:'拒检',value:'拒检'}],
|
|
102
|
+
excelHeaders: {
|
|
103
|
+
//用户编号 用户名称 用户电话 安检次数 用户类型 小区名称 地址 安检日期 安检状态 安检结果
|
|
104
|
+
|
|
105
|
+
'f_userinfo_code': '用户编号',
|
|
106
|
+
'f_user_name': '用户名称',
|
|
107
|
+
'f_user_phone': '用户电话',
|
|
108
|
+
//'count_item':'安检次数',
|
|
109
|
+
'f_user_type': '用户类型',
|
|
110
|
+
'f_residential_area': '小区名称',
|
|
111
|
+
'f_address':'地址',
|
|
112
|
+
'f_last_check_date':'安检日期',
|
|
113
|
+
'f_last_check_state': '安检状态',
|
|
114
|
+
'f_state':'是否已检',
|
|
115
|
+
'f_last_check_result':'安检结果'
|
|
116
|
+
},
|
|
117
|
+
area:[{label:'全部',value:''}],
|
|
118
|
+
f_state:'',
|
|
119
|
+
f_noruhu:'',
|
|
120
|
+
f_residential_area:'',
|
|
121
|
+
f_building:'',
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
props: [ 'check','checkstatus','checkstart','checkend' ],
|
|
125
|
+
watch: {
|
|
126
|
+
'check' (val) {
|
|
127
|
+
debugger
|
|
128
|
+
let condition
|
|
129
|
+
condition = `f_checker='${this.check.f_checker}'`
|
|
130
|
+
if(this.checkstart){
|
|
131
|
+
condition+= `and f_last_check_date>='${this.checkstart}'`
|
|
132
|
+
}
|
|
133
|
+
if (this.checkend){
|
|
134
|
+
condition += `and f_last_check_date<='${this.f_endcheckend_time}'`
|
|
135
|
+
}
|
|
136
|
+
this.f_noruhu=[]
|
|
137
|
+
this.f_state=''
|
|
138
|
+
this.model.search(condition, {})
|
|
139
|
+
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
|
|
143
|
+
ready () {
|
|
144
|
+
if (this.check) {
|
|
145
|
+
let condition
|
|
146
|
+
condition = `f_checker='${this.check.f_checker}'`
|
|
147
|
+
if(this.checkstart){
|
|
148
|
+
condition += `and f_last_check_date>='${this.checkstart}'`
|
|
149
|
+
}
|
|
150
|
+
if (this.checkend){
|
|
151
|
+
condition += ` and f_last_check_date<='${this.f_end_tcheckendime}'`
|
|
152
|
+
}
|
|
153
|
+
this.model.search(condition, {})
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
methods:{
|
|
157
|
+
selfSearch(args){
|
|
158
|
+
if (this.check) {
|
|
159
|
+
args.condition = `f_checker='${this.check.f_checker}'`
|
|
160
|
+
if(this.checkstart){
|
|
161
|
+
args.condition+= `and f_last_check_date>='${this.checkstart}'`
|
|
162
|
+
}
|
|
163
|
+
if (this.checkend){
|
|
164
|
+
args.condition += `and f_last_check_date<='${this.checkend}'`
|
|
165
|
+
}
|
|
166
|
+
if( this.f_state){
|
|
167
|
+
if(this.f_state=='入户'){
|
|
168
|
+
args.condition=args.condition+" and i.f_state='已检' and f_last_check_state='入户'"
|
|
169
|
+
}else if(this.f_state=='未入户'){
|
|
170
|
+
if(this.f_noruhu && this.f_noruhu.length==1){
|
|
171
|
+
args.condition += this.f_noruhu[0]=='未检'?" and i.f_state='未检'":` and i.f_state='已检' and f_last_check_state='${this.f_noruhu[0]}'`
|
|
172
|
+
}else if(this.f_noruhu && this.f_noruhu.length==2){
|
|
173
|
+
if(this.f_noruhu.indexOf('未检')!=-1){
|
|
174
|
+
if(this.f_noruhu.indexOf('到访不遇')!=-1){
|
|
175
|
+
args.condition=args.condition+" and (i.f_state='未检' or (i.f_state='已检' and f_last_check_state='到访不遇'))"
|
|
176
|
+
}else{
|
|
177
|
+
args.condition=args.condition+" and (i.f_state='未检' or (i.f_state='已检' and f_last_check_state='拒检'))"
|
|
178
|
+
}
|
|
179
|
+
}else{
|
|
180
|
+
args.condition=args.condition+" and (i.f_state='已检' and (f_last_check_state='到访不遇' or f_last_check_state='拒检'))"
|
|
181
|
+
}
|
|
182
|
+
}else{
|
|
183
|
+
args.condition=args.condition+" and (i.f_state='未检' or (i.f_state='已检' and (f_last_check_state='到访不遇' or f_last_check_state='拒检')))"
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
}
|
|
189
|
+
if (this.f_residential_area){
|
|
190
|
+
args.condition += ` and i.f_residential_area like'%${this.f_residential_area}%'`
|
|
191
|
+
}
|
|
192
|
+
if (this.f_building){
|
|
193
|
+
args.condition += ` and i.f_building='${this.f_building}'`
|
|
194
|
+
}
|
|
195
|
+
this.model.search(args.condition, args.model)
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
computed: {
|
|
200
|
+
// 导出到Excel的条件构造
|
|
201
|
+
exportParameter() {
|
|
202
|
+
return {
|
|
203
|
+
condition: this.$refs.paged.model.condition
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
}
|
|
208
|
+
</script>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div id="unit" class="flex-row" :class="{'binary':showItem}">
|
|
3
|
+
<div :class="{'basic-main':!showItem,'binary-left':showItem}" >
|
|
4
|
+
<select-check-plan-new @select-changed="selected" :style="style" :style2="style2" v-ref:check></select-check-plan-new>
|
|
5
|
+
</div>
|
|
6
|
+
<div class="binary-right" v-show="showItem">
|
|
7
|
+
<div class="flex">
|
|
8
|
+
<check-detail v-if='$refs.check && $refs.check.selected' :check='$refs.check.selected' :checkstart="$refs.check.f_start_time" :checkend="$refs.check.f_end_time"
|
|
9
|
+
v-ref:detail></check-detail>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
</template>
|
|
14
|
+
<script>
|
|
15
|
+
import SelectCheckPlanNew from '../pc/SelectCheckPlan.vue'
|
|
16
|
+
import CheckDetail from '../pc/CheckDetail.vue'
|
|
17
|
+
export default {
|
|
18
|
+
title: '安检员考核',
|
|
19
|
+
props: ['f'],
|
|
20
|
+
components: {SelectCheckPlanNew, CheckDetail},
|
|
21
|
+
data() {
|
|
22
|
+
return {
|
|
23
|
+
showItem: false,
|
|
24
|
+
checkstatus: null,
|
|
25
|
+
style:'col-sm-2 form-group',
|
|
26
|
+
style2:'col-sm-4 form-group'
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
methods: {
|
|
30
|
+
selected(row) {
|
|
31
|
+
this.showItem = true
|
|
32
|
+
},
|
|
33
|
+
checkstatusChange(val){
|
|
34
|
+
this.checkstatus = val
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
</script>
|
|
39
|
+
<style>
|
|
40
|
+
.form-input-group label {
|
|
41
|
+
text-align: right;
|
|
42
|
+
width: auto;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.datapanel {
|
|
46
|
+
color: #333;
|
|
47
|
+
background-color: white;
|
|
48
|
+
box-shadow: darkgrey 0.5px 0.5px 0.5px 0.5px;
|
|
49
|
+
padding: 5px 7px 5px 7px;
|
|
50
|
+
border-radius: 10px;
|
|
51
|
+
}
|
|
52
|
+
</style>
|