safecheck-client 3.0.33-15 → 3.0.33-150

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 (162) hide show
  1. package/index.html +6 -2
  2. package/package.json +133 -133
  3. package/src/App.vue +2 -2
  4. package/src/components/Util/ImgSelfSafePlus.vue +19 -10
  5. package/src/components/Util.js +7 -0
  6. package/src/components/android/AreaPlan.vue +2 -1
  7. package/src/components/android/CurrentCreate.vue +1 -1
  8. package/src/components/android/ImgSelfAndroid.vue +181 -181
  9. package/src/components/android/SafecheckDevices.vue +5 -1
  10. package/src/components/android/SafecheckOrderV.vue +18 -12
  11. package/src/components/map/checkScreen.vue +27 -21
  12. package/src/components/paper/PlanChooser.vue +4 -2
  13. package/src/components/pc/NewCheckpaper.vue +11 -8
  14. package/src/components/planmanage/PlanManage.vue +14 -4
  15. package/src/components/planmanage/checkPlanList.vue +2 -1
  16. package/src/components/planmanage/checkUserList.vue +2 -0
  17. package/src/components/report/HiddenSituation.vue +3 -3
  18. package/src/components/rongcheng/AspiratedPaperFeedbackm.vue +28 -2
  19. package/src/components/rongcheng/AspiratedPaperMessage.vue +1 -1
  20. package/src/components/rongcheng/DefectPaper.vue +1 -1
  21. package/src/components/rongcheng/PaperListNPSQ.vue +36 -1
  22. package/src/components/rongcheng/PaperListSQ.vue +32 -11
  23. package/src/components/rongcheng/PhoneUpUserinfo.vue +939 -802
  24. package/src/components/rongcheng/SafecheckOrderV.vue +1 -1
  25. package/src/components/rongcheng/report/CheckPlanAreaList.vue +1 -3
  26. package/src/components/safecheckNew/PaperList.vue +785 -0
  27. package/src/components/safecheckNew/android/AddPlanItem.vue +419 -0
  28. package/src/components/safecheckNew/android/AreaPlan.vue +561 -0
  29. package/src/components/safecheckNew/android/CurrentCreate.vue +1050 -0
  30. package/src/components/safecheckNew/android/Recheck.vue +379 -0
  31. package/src/components/safecheckNew/android/SafecheckDevices.vue +1400 -0
  32. package/src/components/safecheckNew/android/SafecheckOrderV.vue +2692 -0
  33. package/src/filiale/Util.js +5 -0
  34. package/src/filiale/baiyin/android/AndroidDefectDeal.vue +633 -0
  35. package/src/filiale/baiyin/android.js +10 -0
  36. package/src/filiale/baiyin/pc/PaperList.vue +790 -0
  37. package/src/filiale/baiyin/pc/PlanChooser.vue +167 -0
  38. package/src/filiale/baiyin/pc/PlanManage.vue +834 -0
  39. package/src/filiale/baiyin/pc/RightTreeSafe.vue +348 -0
  40. package/src/filiale/baiyin/pc/RoleSelector.vue +160 -0
  41. package/src/filiale/baiyin/pc.js +17 -0
  42. package/src/filiale/bayan/android/AddPlanItem.vue +7 -2
  43. package/src/filiale/bayan/android/CheckPlanDown.vue +249 -0
  44. package/src/filiale/bayan/android/SafecheckOrderV.vue +21 -8
  45. package/src/filiale/bayan/android/SafecheckUserInfo.vue +566 -514
  46. package/src/filiale/bayan/android.js +1 -0
  47. package/src/filiale/bayan/pc/CheckDetail.vue +205 -0
  48. package/src/filiale/bayan/pc/CheckPlan.vue +59 -0
  49. package/src/filiale/bayan/pc/CheckPlanAreaList.vue +565 -0
  50. package/src/filiale/bayan/pc/CheckSearchUser.vue +1110 -0
  51. package/src/filiale/bayan/pc/DefectListNew.vue +597 -0
  52. package/src/filiale/bayan/pc/DefectMainNew.vue +63 -0
  53. package/src/filiale/bayan/pc/DefectPaperNew.vue +1218 -0
  54. package/src/filiale/bayan/pc/HiddenSituation.vue +256 -0
  55. package/src/filiale/bayan/pc/NewCheckpaper.vue +31 -1
  56. package/src/filiale/bayan/pc/PaperList.vue +119 -12
  57. package/src/filiale/bayan/pc/PlanManage.vue +29 -8
  58. package/src/filiale/bayan/pc/SelectCheckPlan.vue +333 -0
  59. package/src/filiale/bayan/pc.js +6 -0
  60. package/src/filiale/dexin/android/SafecheckOrderV.vue +123 -24
  61. package/src/filiale/fugou/android/SafecheckOrderV.vue +2796 -0
  62. package/src/filiale/fugou/android.js +2 -1
  63. package/src/filiale/fugou/pc/AddToCheckBook.vue +56 -119
  64. package/src/filiale/fugou/pc/CheckBook.vue +303 -301
  65. package/src/filiale/fugou/pc/CheckBookDetails.vue +161 -161
  66. package/src/filiale/fugou/pc/CheckBookEntry.vue +94 -66
  67. package/src/filiale/fugou/pc/CheckBookList.vue +366 -366
  68. package/src/filiale/fugou/pc/CheckBookSearchArea.vue +560 -560
  69. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +810 -685
  70. package/src/filiale/fugou/pc/CheckBookUser.vue +102 -45
  71. package/src/filiale/fugou/pc/DefectPaperNew.vue +10 -6
  72. package/src/filiale/fugou/pc/PaperDefectMain.vue +12 -6
  73. package/src/filiale/fugou/pc/PaperList.vue +14 -6
  74. package/src/filiale/fugou/pc/PlanManage.vue +62 -8
  75. package/src/filiale/fugou/pc/checkPlanList.vue +371 -371
  76. package/src/filiale/fugou/pc/checkUserList.vue +222 -42
  77. package/src/filiale/hanzhong/pc/CheckHiddenDanger.vue +15 -5
  78. package/src/filiale/hanzhong/pc/CheckSafeDetail.vue +12 -2
  79. package/src/filiale/hanzhong/pc/CheckSafeStatus.vue +12 -3
  80. package/src/filiale/hanzhong/pc/CheckSearchUser.vue +13 -0
  81. package/src/filiale/hanzhong/pc/CheckUserList.vue +30 -11
  82. package/src/filiale/hanzhong/pc/CheckerSafeDetail.vue +11 -2
  83. package/src/filiale/jingyang/pc/ReportCheckItemList.vue +543 -0
  84. package/src/filiale/jingyang/pc.js +1 -0
  85. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +2 -22
  86. package/src/filiale/liaoyuan/pc/checkPlanList.vue +373 -0
  87. package/src/filiale/liaoyuan/pc.js +2 -1
  88. package/src/filiale/qianneng/pc/PaperList.vue +31 -1
  89. package/src/filiale/qingjian/android/PhoneUpUserinfo.vue +1270 -1268
  90. package/src/filiale/qingjian/android/SafecheckOrderV.vue +2844 -2779
  91. package/src/filiale/rongchuang/android/SafecheckDevices.vue +468 -748
  92. package/src/filiale/rongchuang/android/SafecheckOrderV.vue +984 -1234
  93. package/src/filiale/rongchuang/android.js +1 -0
  94. package/src/filiale/rongchuang/pc/NewCheckpaper.vue +294 -305
  95. package/src/filiale/rongchuang/pc/PaperList.vue +812 -0
  96. package/src/filiale/rongchuang/pc.js +1 -0
  97. package/src/filiale/siyang/android/PhoneRecordInfo.vue +214 -0
  98. package/src/filiale/siyang/android/SafecheckOrderV.vue +2796 -0
  99. package/src/filiale/siyang/android/SafecheckUserInfo.vue +789 -0
  100. package/src/filiale/siyang/android.js +11 -0
  101. package/src/filiale/siyang/pc/PaperDefectMain.vue +864 -0
  102. package/src/filiale/siyang/pc/PaperList.vue +834 -0
  103. package/src/filiale/siyang/pc/PlanManage.vue +839 -0
  104. package/src/filiale/siyang/pc/checkUserList.vue +781 -0
  105. package/src/filiale/siyang/pc.js +15 -0
  106. package/src/filiale/tianke/pc/checkScreen.vue +36 -31
  107. package/src/filiale/tongchuan/android/PhoneUpUserinfo.vue +60 -2
  108. package/src/filiale/tongchuan/android/SafecheckOrderV.vue +2 -3
  109. package/src/filiale/tongchuan/pc/NewCheckpaper.vue +1 -1
  110. package/src/filiale/tongchuan/pc/checkUserList.vue +2 -2
  111. package/src/filiale/weinan/android/PaperFeedback.vue +8 -8
  112. package/src/filiale/weinan/android/SafecheckDevices.vue +6 -2
  113. package/src/filiale/weinan/android/SafecheckOrderV.vue +16 -2
  114. package/src/filiale/weinan/android/SafecheckUserInfo.vue +7 -2
  115. package/src/filiale/weinan/pc/CheckSearchUser.vue +1078 -0
  116. package/src/filiale/weinan/pc/DefectListNew.vue +617 -0
  117. package/src/filiale/weinan/pc/DefectMainNew.vue +1 -1
  118. package/src/filiale/weinan/pc/DefectPaperNew.vue +7 -1
  119. package/src/filiale/weinan/pc.js +2 -0
  120. package/src/filiale/wenxi/android/PhoneUpUserinfo.vue +1 -1
  121. package/src/filiale/wenxi/android/SafecheckUserInfo.vue +85 -63
  122. package/src/filiale/wenxi/pc/NewCheckpaper.vue +1 -1
  123. package/src/filiale/yangchunboneng/android/AddPlanItem.vue +46 -1
  124. package/src/filiale/yangchunboneng/android/CurrentCreate.vue +45 -4
  125. package/src/filiale/yangchunboneng/android/DailyworkloadQuery.vue +2 -2
  126. package/src/filiale/yangchunboneng/android/NewCheckpaperAndroid.vue +1362 -1362
  127. package/src/filiale/yangchunboneng/android/PaperFeedback.vue +1731 -1731
  128. package/src/filiale/yangchunboneng/android/PhoneUpUserinfo.vue +1235 -0
  129. package/src/filiale/yangchunboneng/android/SafecheckDevices.vue +1332 -1332
  130. package/src/filiale/yangchunboneng/android/SafecheckOrderV.vue +2845 -2832
  131. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +887 -869
  132. package/src/filiale/yangchunboneng/android/safeHistoryLook.vue +2 -1
  133. package/src/filiale/yangchunboneng/android.js +1 -0
  134. package/src/filiale/yangchunboneng/pc/CheckBookList.vue +4 -4
  135. package/src/filiale/yangchunboneng/pc/CheckBookSearchUser.vue +76 -32
  136. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +72 -1
  137. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +1192 -1018
  138. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +944 -849
  139. package/src/filiale/yangchunboneng/pc/PaperList.vue +17 -0
  140. package/src/filiale/yongzhou/android/SafecheckOrderV.vue +221 -256
  141. package/src/filiale/yongzhou/pc/CheckPlan.vue +59 -0
  142. package/src/filiale/yongzhou/pc/CheckSearchUser.vue +1 -1
  143. package/src/filiale/yongzhou/pc/DefectPaperNew.vue +1105 -0
  144. package/src/filiale/yongzhou/pc/NoCheckplanSafecheck.vue +412 -107
  145. package/src/filiale/yongzhou/pc/PaperDefectMain.vue +872 -0
  146. package/src/filiale/yongzhou/pc/PaperList.vue +1 -1
  147. package/src/filiale/yongzhou/pc/SelectCheckPlan.vue +364 -0
  148. package/src/filiale/yongzhou/pc/communityTypeDetailG.vue +56 -125
  149. package/src/filiale/yongzhou/pc/communityTypeDetailM.vue +94 -187
  150. package/src/filiale/yongzhou/pc/safeDetail.vue +311 -20
  151. package/src/filiale/yongzhou/pc/safeStatistics.vue +74 -24
  152. package/src/filiale/yongzhou/pc/safeStatisticsDay.vue +2 -2
  153. package/src/filiale/yongzhou/pc/safeStatisticsMonth.vue +2 -2
  154. package/src/filiale/yongzhou/pc/safeStatisticsYear.vue +47 -23
  155. package/src/filiale/yongzhou/pc/safeTable.vue +3 -3
  156. package/src/filiale/yongzhou/pc.js +4 -0
  157. package/src/filiale/zhongsheng/android/CurrentCreate.vue +7 -2
  158. package/src/filiale/zhongsheng/pc/DefectPaperWeiXiu.vue +6 -2
  159. package/src/main.js +33 -33
  160. package/src/rongcheng.js +3 -1
  161. package/src/safecheck-android.js +6 -0
  162. package/src/safecheck.js +3 -0
@@ -0,0 +1,2692 @@
1
+ <template>
2
+ <!--<div class="app-botton" @click="back()">-->
3
+ <!--返回<span class="glyphicon glyphicon-menu-right"></span>-->
4
+ <!--</div>-->
5
+ <div id="savebut" class="no-close row android-repair-order" style="background-color: #f9f9f9">
6
+ <div class="col-sm-12 col-xs-12" >
7
+ <ul class="nav nav-tabs" style="background:#ffffff;overflow-y: hidden">
8
+ <li v-for="row in tabs" @click="tabSelect(row,$index)" :class="{active1: row.complete === componentName}"
9
+ v-if="$index < number+1 && $index < faultshow.number" >
10
+ <a href="#" style="background-color: #ffffff;color: #666666;font-size: 16px;font-family:SimSun" :class="row.class">
11
+ <span class="spanboder">{{row.header}}</span>
12
+ <img class="butt2" :src="imgback(row.complete === componentName,row.header === header)"></a>
13
+ <p></p>
14
+ </li>
15
+ <div class="col-sm-12 col-xs-12 repair-bg" v-show="routeShow">
16
+ <route name='repair' :reuse="false"></route>
17
+ </div>
18
+ <li v-for="row in tabs" @click="tabSelect(row,$index)" :class="{active1: row.complete === componentName}"
19
+ v-if="$index > number && $index < faultshow.number ">
20
+ <a href="#" style="background-color: #ffffff;color: #666666;font-size: 16px;font-family:SimSun" :class="row.class">
21
+ <span class="spanboder">{{row.header}}</span>
22
+ <img class="butt2" :src="imgback(row.complete === componentName,row.header === header)"></a>
23
+ <p></p>
24
+ </li>
25
+ <div class="col-sm-12 col-xs-12 repair-bg" v-if="actionEnabled ">
26
+ <div class="auto select-overspread form-horizontal repair-bg " style="padding-bottom:5px;">
27
+ <div class="bq-parent">
28
+ <blockquote class="blockquote">
29
+ <p>安检上传</p>
30
+ </blockquote>
31
+ </div>
32
+ <div class="panel panel-default auto repair-info-content">
33
+ <div class="panel-body ">
34
+ <div class="row auto">
35
+ <!--<div class="col-xs-12 col-sm-12 col-md-12" :style="timeSet(this.isneedDate)?'':'display:none'">-->
36
+ <!--<label>请输入超期原因:</label><br/>-->
37
+ <!--<textarea style="width: 100%;" v-model=""></textarea>-->
38
+ <!--</div>-->
39
+ <div class="col-xs-12 col-sm-12 col-md-12 flex-between" style="margin-top: 20px;">
40
+ <div v-if="!disableLocalCache" class="col-xs-3 col-sm-3 col-md-3">
41
+ <button class="col-sm-3 btn btn-primary" @click="save('finish')">
42
+ 本地缓存
43
+ </button>
44
+ </div>
45
+ <!-- <div class="col-xs-3 col-sm-3 col-md-3" v-if="item.f_user_type == '非民用'">-->
46
+ <!-- <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="openDeviceModel">-->
47
+ <!-- 设备-->
48
+ <!-- </button>-->
49
+ <!-- </div>-->
50
+ <div class="col-xs-3 col-sm-3 col-md-3">
51
+ <button :disabled="uploadDisabled" type="button" name="button" class="col-sm-3 btn btn-primary" @click="uploadCheckPaper">
52
+ 上传
53
+ </button>
54
+ </div>
55
+ <div v-if="show_torepair">
56
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="showmod">
57
+ 转维修
58
+ </button>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ </div>
66
+ </ul>
67
+ </div>
68
+ <modal :show.sync="showModal2" :backdrop="false" style="font-size: 15px">
69
+ <div slot="modal-header" class="modal-header upuserinfo_sel">
70
+ <h4 class="modal-title">
71
+ 转维修
72
+ </h4>
73
+ </div>
74
+ <div slot="modal-body" class="modal-body">
75
+ <div class="row">
76
+ <ol style="border: 1px solid green;padding: 15px 0 15px 20px">
77
+ <li v-for="row in repairDefect.data" >{{row}}</li>
78
+ </ol>
79
+ </div>
80
+ <div class="row" style="margin-top: 10px">
81
+ <label class="font_normal_body">派发类型</label>
82
+ <v-select :value.sync="selectData.dispatchType" :value-single="true" v-model="selectData.dispatchType"
83
+ :options='dispatchTypeOptions' placeholder='派发类型'
84
+ close-on-select>
85
+ </v-select>
86
+ </div>
87
+ <div class="row" style="margin-top: 10px" v-if="selectData.dispatchType=='派发给维修员'">
88
+ <label class="font_normal_body">维&ensp;修&ensp;员</label>
89
+ <v-select
90
+ :value.sync="selectData.f_repairman"
91
+ :value-single="true"
92
+ :options='repairers'
93
+ placeholder='请选择维修员'
94
+ close-on-select></v-select>
95
+ </div>
96
+ <div class="row" style="margin-top: 10px" v-if="selectData.dispatchType=='派发给站点'">
97
+ <label class="font_normal_body">站&ensp;&ensp;&ensp;&ensp;点</label>
98
+ <right-tree
99
+ islist
100
+ :source="'dep=this.getParentByType($organization$).getSpecialResByType($department$),tool.getFullTree(dep.where(row.hasSpecialRole($派单员$)))'"
101
+ @re-res="getSiteRes"></right-tree>
102
+ </div>
103
+ <div class="row" style="margin-top: 10px">
104
+ <label class="font_normal_body" >备&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注</label>
105
+ <div class="btn-group" style="width:60%">
106
+ <textarea style="width:100%;height: 100px" v-model="selectData.f_remarks"></textarea>
107
+ </div>
108
+ </div>
109
+ </div>
110
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
111
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="rectification">转维修</button>
112
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="cancel1">取消</button>
113
+ </div>
114
+ </modal>
115
+ <modal :show.sync="device.show" :backdrop="false">
116
+ <div slot="modal-header" class="modal-header upuserinfo_sel">
117
+ <h4 class="modal-title">
118
+ 安检设备
119
+ </h4>
120
+ </div>
121
+ <div slot="modal-body" class="modal-body">
122
+ <div class="row" v-for="row in device.model" style="border:2px solid #A2C2EB; border-top:10px solid #A2C2EB; margin-bottom: 10px; padding: 5px">
123
+ <div class="row" style="display: flex; align-items: center; margin-bottom: 5px">
124
+ <div class="col-xs-4" style="display: flex; justify-content: flex-end; padding-right: 10px; font-weight: bolder">
125
+ 设备品牌:
126
+ </div>
127
+ <div class="col-xs-8">
128
+ <input type="text" class="form-control rightipt" v-model="row.f_brand" />
129
+ </div>
130
+ </div>
131
+ <div class="row" style="display: flex; align-items: center; margin-bottom: 5px">
132
+ <div class="col-xs-4" style="display: flex; justify-content: flex-end; padding-right: 10px; font-weight: bolder">
133
+ 设备类型:
134
+ </div>
135
+ <div class="col-xs-8">
136
+ <v-select :value.sync="row.f_devices_type"
137
+ v-model="row.f_devices_type"
138
+ placeholder='请选择'
139
+ width='100%'
140
+ :options="device.devicesTypes"
141
+ close-on-select value-single></v-select>
142
+ </div>
143
+ </div>
144
+ <div class="row" style="display: flex; align-items: center; margin-bottom: 5px">
145
+ <div class="col-xs-4" style="display: flex; justify-content: flex-end; padding-right: 10px; font-weight: bolder">
146
+ 安装时间:
147
+ </div>
148
+ <div class="col-xs-8">
149
+ <datepicker :value.sync="row.f_install_date"
150
+ v-model="row.f_install_date"
151
+ :disabled-days-of-Week="[]"
152
+ :format="'yyyy-MM-dd HH:mm:ss'"
153
+ :show-reset-button="reset" readonly="readonly">
154
+ </datepicker>
155
+ </div>
156
+ </div>
157
+ <div class="row" style="display: flex; align-items: center; margin-bottom: 5px">
158
+ <div class="col-xs-4" style="display: flex; justify-content: flex-end; padding-right: 10px; font-weight: bolder">
159
+ 设备数量:
160
+ </div>
161
+ <div class="col-xs-8">
162
+ <input type="number" class="form-control rightipt" v-model="row.f_devices_num" />
163
+ </div>
164
+ </div>
165
+ <div style="display: flex;justify-content: center;margin-bottom: 3px">
166
+ <button class="btn btn-warning" @click="delDevice($index)">删除设备</button>
167
+ </div>
168
+ </div>
169
+ <div style="display: flex;justify-content: space-around;">
170
+ <button class="col-sm-3 btn btn-primary" @click="addDevice()">新增设备</button>
171
+ </div>
172
+ </div>
173
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
174
+ <button type="button" name="button" class="col-sm-3 btn btn-primary" @click="closeDeviceModal">关闭</button>
175
+ </div>
176
+ </modal>
177
+ </div>
178
+ </template>
179
+
180
+ <script>
181
+ // 户内维修
182
+ import Vue from 'vue'
183
+ import * as Util from '../../Util'
184
+ import { HttpResetClass } from 'vue-client'
185
+ import co from 'co'
186
+ import $ from "jquery";
187
+ import {isEmpty} from "../../Util";
188
+ let loadParamGem = async function (self) {
189
+ await self.$LoadParams.loadParam()
190
+ }
191
+
192
+ export default {
193
+ title: '安检单',
194
+ props: ['f_plan_id', 'item', 'role','parentPage','source', 'noVisit'],
195
+ data() {
196
+ return {
197
+ data: {
198
+ f_devices: [],
199
+ f_defect_content:'',
200
+ f_recording1_path:''
201
+ },
202
+ imgsnum:this.$appdata.getSingleValue('安检总体照片数量') ? this.$appdata.getSingleValue('安检总体照片数量'):1, // 安检整体照片默认必须拍1张
203
+ updateuserphone:false, //安检时是否更新用户电话
204
+ updatemetermodel:false, //安检时是否更新表型号
205
+ updatemeternumber:false, //安检时是否更新表号
206
+ beforephone:'',
207
+ isUpload:false,
208
+ show_torepair: false,
209
+ onlySave:true, //判断保存还是保存并上传
210
+ livedispose:'',
211
+ refuseinspection:'', // 拒捡拍照是否提示
212
+ notencountered:'', // 到访不遇拍照是否提示
213
+ startClick:false, //开始安检按钮是否可点击
214
+ isStrat: false, //是否开始安检
215
+ checkResult:{},//查询结果
216
+ newcheckResult:{},
217
+ repairDefect : {
218
+ result: '正常',
219
+ data: []
220
+ },
221
+ rowCodata:{},
222
+ repairers: [],
223
+ timer: null,
224
+ showModal: false,
225
+ showModal2:false,
226
+ pic_to_be_viewed: '',
227
+ showBack:true,
228
+ devices: [],
229
+ f_devices : [],
230
+ isToRepair:false,
231
+ clickBack:true, //是否点击返回按钮
232
+ isSafeCheckToRepair:false,//是否转维修
233
+ Url:this.$androidUtil.getProxyUrl(),
234
+ detail:{},
235
+ defectDevice:{},
236
+ user:{},
237
+ dispatchTypeOptions: [{label: '派发给维修员', value: '派发给维修员'},{label: '派发给站点', value: '派发给站点'}],
238
+ selectData:{
239
+ dispatchType:'派发给维修员',
240
+ f_repairman:'',
241
+ f_remarks:'',
242
+ f_repairtype:'整改'
243
+ },
244
+ serverConfig: undefined,
245
+ model: { //转维修数据
246
+ // 一次派单
247
+ serviceacitivity: [{
248
+ f_service_acitivity_type: '派单'
249
+ }],
250
+ f_source:'安检',
251
+ f_service_id: '',
252
+ f_contact_phone: '',
253
+ f_meetunit: '',
254
+ f_phone: '',
255
+ f_user_name: '',
256
+ f_address: '',
257
+ f_repair_date: Util.toStandardTimeString(),
258
+ f_card_id: '',
259
+ // f_department: '', 站点选择
260
+ f_reciever:'',
261
+ f_remarks: '',
262
+ f_user_type: '',
263
+ f_area: '',
264
+ f_unit_name:'',
265
+ f_street: '',
266
+ f_residential_area: '',
267
+ f_building: '',
268
+ f_unit: '',
269
+ f_floor: '',
270
+ f_room: '',
271
+ aState: null,
272
+ f_repairtype: '',
273
+ f_repairitems:{},
274
+ },
275
+ repairitems:[],
276
+ meading:'转站点',
277
+ f_security_check_type_id: '',
278
+ config: [
279
+ {
280
+ "itemname": "燃气表",
281
+ "checkmust":true,
282
+ "index":1,
283
+ "items":[
284
+ //"燃气表照片":{"index":1,"type":"picture","remark":"(拍摄清晰的表具编号、字轮数、剩余气量等)"},
285
+ {"itemname": "基表编号", "index":1,"type":"string","readonly":true},
286
+ {"itemname": "气表型号", "index":2,"type":"string","readonly":true},
287
+ {"itemname": "气表品牌", "index":3,"type":"string","readonly":true},
288
+ {"itemname": "进气方向", "index":4,"type":"string","readonly":true},
289
+ {"itemname": "上次表底", "index":5,"type":"number","readonly":true},
290
+ {"itemname": "本次表底", "index":6,"type":"number","readonly":false},
291
+ {"itemname": "表底差值", "index":7,"type":"number","readonly":true},
292
+ {"itemname": "燃气表照片", "index":8,"type":"picture","checkmust": false, unique: true, count: 3}
293
+ //显示屏数 --实际剩余气量
294
+ ]
295
+ }
296
+ ],
297
+ // 维修项
298
+ isneedDate:'',
299
+ routeShow:true,
300
+ number:0,
301
+ shupingshow:false,
302
+ pipeline: {},
303
+ details: [],
304
+ ids: '',
305
+ savevalid: {
306
+ uservalid: false,
307
+ doorvalid: true,
308
+ changetable: false
309
+ },
310
+ doordetails: {},
311
+ devicedetails: {},
312
+ cookdetails: {},
313
+ componentName: 'safecheck-userinfo',
314
+ header:'客户信息',
315
+ tabs: [
316
+ // 参数全部设置成空,在ready时,等model处理好了,再添加
317
+ {
318
+ header: '客户信息',complete:'safecheck-userinfo',class: 'repair-info-class', props: null
319
+ },
320
+ {
321
+ header: '拍照签名',complete:'paper-feedback', class: 'outlay-class', props: null
322
+ }
323
+ ],
324
+ faultshow:{
325
+ number : 8
326
+ }, // 控制 故障汇总 在 菜单里显示与否,
327
+ saveType: '',
328
+ startTime: '',
329
+ // 测试时可将此值设为fase,将跳过校验
330
+ isNotTest: true,
331
+ sealSize: Number.parseFloat(this.$appdata.getSingleValue('铅封规模')),
332
+ // 非民安检设备
333
+ device: {
334
+ show: false,
335
+ model: [],
336
+ devicesTypes: this.$appdata.getParam('安检设备类型')
337
+ },
338
+ uploadDisabled: false
339
+ }
340
+ },
341
+ computed: {
342
+ actionEnabled: {
343
+ get() {
344
+ return this.role == 'inspect'
345
+ }
346
+ }
347
+ },
348
+ methods: {
349
+ delDevice(index) {
350
+ this.device.model.splice(index,1)
351
+ },
352
+ addDevice() {
353
+ this.device.model.push({
354
+ f_brand: '',
355
+ f_devices_type: '',
356
+ f_install_date: '',
357
+ f_devices_num: '',
358
+ })
359
+ },
360
+ openDeviceModel() {
361
+ this.device.show = true
362
+ },
363
+ closeDeviceModal() {
364
+ this.device.show = false
365
+ console.log('this.device.model=', JSON.stringify(this.device.model))
366
+ },
367
+ showmod(){
368
+ // this.saveNoclick()
369
+ let errString = this.errorVerify()
370
+ if (errString && this.isNotTest) {
371
+ console.log(errString)
372
+ console.log('Vue.android',Vue.android)
373
+ console.log('this.isUpload',this.isUpload)
374
+ if (Vue.android){
375
+ this.$showMessage(errString)
376
+ }
377
+ return
378
+ }
379
+ //清空转维修列表重新进行数据组织
380
+ this.repairDefect = {
381
+ result: '正常',
382
+ data: []
383
+ }
384
+ this.data.f_complete = '已完成'
385
+ this.$set('data.f_offsite_time', Util.toStandardTimeString())
386
+ this.assemblyCodata()
387
+ if(this.repairDefect.result=='正常'){
388
+ this.$showMessage("未发现有选择需要转维修的隐患,请检查填写的数据。如需转维修请在处理方式中选择 '转维修' !")
389
+ return
390
+ }
391
+ console.log("准备保存!")
392
+ this.disableTimer()
393
+ this.getEmp()
394
+ this.showModal2=true
395
+ },
396
+ cancel1(){
397
+ this.showModal2=false
398
+ this.selectData={
399
+ dispatchType:'派发给维修员',
400
+ f_repairman:'',
401
+ f_remarks:'',
402
+ f_repairtype:'整改'
403
+ }
404
+ },
405
+ getSiteRes(obj) {
406
+ console.log('siteRes ---> ')
407
+ console.log(obj)
408
+ if(obj.resids[0]){
409
+ this.selectData.f_meetunit = obj.res.join('.')
410
+ this.selectData.f_reciever = obj.resids.join('.')
411
+ this.selectData.f_outlets = obj.res[obj.res.length - 1]
412
+ }else {
413
+ this.selectData.f_meetunit = ''
414
+ this.selectData.f_reciever = ''
415
+ this.selectData.f_outlets = ''
416
+ }
417
+ },
418
+ rectification(){
419
+ if(this.selectData.dispatchType){
420
+ if(this.selectData.dispatchType=='派发给站点'){
421
+ if(!this.selectData.f_reciever){
422
+ this.$showMessage('请选择部门!')
423
+ return
424
+ }
425
+ }else{
426
+ if(!this.selectData.f_repairman){
427
+ this.$showMessage('请选择维修员!')
428
+ return
429
+ }
430
+ }
431
+ }else {
432
+ this.$showMessage('请选择派发类型!')
433
+ return
434
+ }
435
+ //关闭录音
436
+ this.closely(false) // 保存本地,不删除录音文件暂停录音
437
+ let act={}
438
+ let toRepair=''
439
+ if(this.selectData.dispatchType=='派发给站点'){
440
+ act={f_meetunit:this.selectData.f_meetunit,f_reciever:this.selectData.f_reciever,f_service_acitivity_type:'派单'}
441
+ toRepair=null
442
+ }else{
443
+ console.log('派发给维修员---------'+this.selectData.f_repairman)
444
+ act={f_meetunit:'',f_reciever:this.selectData.f_repairman,f_service_acitivity_type:'派单'}
445
+ toRepair='一级派单'
446
+ }
447
+ let repData={
448
+ toRepair:toRepair,
449
+ activity:act,
450
+ deps:Vue.user.deps,
451
+ depids:Vue.user.depids,
452
+ f_remarks:this.selectData.f_remarks,
453
+ f_repairtype:this.selectData.f_repairtype,
454
+ f_attendant: Vue.user.name,
455
+ loginUser:{name:Vue.user.name,ename:Vue.user.id,id:Vue.user.id},
456
+ }
457
+ this.rowCodata.istoRepair='转维修'
458
+ this.rowCodata.repData=repData
459
+ console.log("当前组装好的转维修数据--"+JSON.stringify(repData))
460
+ this.onlySave = false
461
+ this.save()
462
+ },
463
+ // 获取维修员
464
+ getEmp() {
465
+ this.repairers=[]
466
+ let per = {source: 'this.getRights().where(row.getType()==$user$).where(row.getAttributes().get($rolestr$).indexOf($维修员$) != -1))', userid: `${Vue.user.id}`}
467
+ let http = new HttpResetClass()
468
+ http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/search`, {data: per}, {resolveMsg: null, rejectMsg: null}).then((res) => {
469
+ res.data.forEach((user)=>{
470
+ this.repairers.push({label:user.name, value: user.name})
471
+ })
472
+ })
473
+ },
474
+ closely(isdelete){
475
+ try {
476
+ var startOrStopAudioClipStr;
477
+ if (isdelete===true) {
478
+ //tag
479
+ startOrStopAudioClipStr= HostApp.startOrStopAudioClip("----",'停止并删除录音') //停止并删除录音
480
+ }else {
481
+ //tag
482
+ startOrStopAudioClipStr= HostApp.startOrStopAudioClip("----",'停止录音') //停止录音
483
+ }
484
+ if (startOrStopAudioClipStr.code == 200) {
485
+ //tag
486
+ return true;
487
+ }else {
488
+ return false;
489
+ }
490
+ } catch (e) {
491
+ console.error("关闭录音方法异常")
492
+ console.error(e)
493
+ return false;
494
+ }
495
+ },
496
+ // 录音方法
497
+ record() {
498
+ //tag
499
+ if (this.role != 'inspect') {
500
+ if (this.data.f_recording1_path != '') {
501
+ window.location = "/rs/file"+this.data.f_recording1_path
502
+ }
503
+ } else {
504
+ //tag
505
+ let fileName
506
+ if (!this.data.f_recording1_path) {
507
+ fileName = Util.guid() + '.amr'
508
+ } else {
509
+ fileName = Util.getFileName(this.data.f_recording1_path)
510
+ }
511
+ //HostApp.__this__ = this
512
+ /*调用无限制录音模块*/
513
+ let startOrStopState = HostApp.startOrStopAudioClip(fileName,"开始录音")
514
+ //tag
515
+ if (startOrStopState.code == 200) {
516
+ this.data.f_recording1_path = "file:///storage/emulated/0/safecheck/" + fileName
517
+ //tag
518
+ return true;
519
+ }else {
520
+ return false;
521
+ }
522
+ }
523
+ },
524
+ saveNoclick() {
525
+ // 禁用点击事件
526
+ $("#savebut").addClass("noclickbut");
527
+ //tag
528
+
529
+ // 5秒后启用点击事件
530
+ setTimeout(function(){
531
+ $("#savebut").removeClass("noclickbut");
532
+ },5000);
533
+ },
534
+ timeSet(val){
535
+ if (!val){
536
+ return
537
+ }
538
+ let time =new Date(val).getTime()
539
+ let time2=new Date().getTime()
540
+ if (time2>time) {
541
+ return true
542
+ }
543
+ },
544
+ imgback(val,isheader){
545
+ if(val && this.routeShow && isheader){
546
+ return require('../../../assets/xiangxia1.png')
547
+ }else{
548
+ return require('../../../assets/xiangyou1.png')
549
+ }
550
+ },
551
+ changediv(val){
552
+ //tag
553
+ return val
554
+ },
555
+ // 选择tab
556
+ tabSelect (item,number) {
557
+ if(this.data.f_entry_status=='到访不遇' ||this.data.f_entry_status=='拒检'){
558
+ if(item.header=='燃气表'||item.header=='隐患排查'||item.header=='拍照签名'){
559
+ this.$showMessage(`当前状态为${this.data.f_entry_status},无法操作`)
560
+ return
561
+ }
562
+ }
563
+ this.header = item.header
564
+ // 处理关闭/显示 内容
565
+ if(this.number == number && !this.routeShow ){
566
+ this.routeShow = true
567
+ }else if(this.number == number && this.routeShow){
568
+ this.routeShow = false
569
+ }else if(this.number != item.complete){
570
+ this.routeShow = true
571
+ }
572
+ this.number = number
573
+ this.componentName = item.complete
574
+ //tag
575
+ if(item.complete == 'safecheck-devices-n'){
576
+ //tag
577
+ if(item.header != '燃气表' && this.data['device'+item.number].length == 0){
578
+ this.data['device' + item.number].push({})
579
+ }
580
+ //tag
581
+ //tag)
582
+ let idx=this.data['device' + item.number].length - 1
583
+ let itemprops = {
584
+ config:this.config,
585
+ device:this.devices[item.number-1],
586
+ idx:idx,
587
+ role:'inspect',
588
+ userinfo: this.item
589
+ }
590
+ if(this.routeShow){
591
+ this.$goto(item.complete, itemprops, 'repair')
592
+ }
593
+ }else{
594
+ //tag
595
+ if(this.routeShow){
596
+ this.$goto(item.complete, {userinfo:this.data}, 'repair')
597
+ }
598
+ }
599
+ this.shupingshow = true
600
+ },
601
+ // 给组件添加参数
602
+ getImgPath() {
603
+ for (var i = 0; i < this.model.serviceacitivity[0].imgs.length; i++) {
604
+ this.ids += this.model.serviceacitivity[0].imgs[i].imgid + ','
605
+ }
606
+ this.ids = this.ids.substring(0, this.ids.length - 1)
607
+ if(this.ids){
608
+ this.getImgGen();
609
+ }
610
+ },
611
+ getImgGen(){
612
+ let http = new HttpResetClass()
613
+ http.load('POST','rs/sql/tel_singleTable_OrderBy', {data: {
614
+ items: '*',
615
+ tablename: 't_files',
616
+ condition: `id in (${this.ids})`,
617
+ orderitem: 'id'
618
+ }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
619
+ for (let i = 0; i < res.data.length; i++) {
620
+ for (let j = 0; j < this.model.serviceacitivity[0].imgs.length; j++) {
621
+ if (res.data[i].id.toString() === this.model.serviceacitivity[0].imgs[j].imgid) {
622
+ this.model.serviceacitivity[0].imgs[j] = Object.assign({}, res.data[i], this.model.serviceacitivity[0].imgs[j])
623
+ }
624
+ }
625
+
626
+ }
627
+ })
628
+ },
629
+
630
+ sortDetails(){
631
+ for (let i = 0; i < this.details.length; i++) {
632
+ if (this.details[i].details.length) {
633
+ for (let j = 0; j < this.details[i].details.length; j++) {
634
+ if (this.details[i].details[j].f_type === 'a') {
635
+ this.doordetails = {details: this.details[i].details}
636
+ break
637
+ }
638
+ if (this.details[i].details[j].f_type === 'b') {
639
+ this.devicedetails = {details: this.details[i].details}
640
+ break
641
+ }
642
+ if (this.details[i].details[j].f_type === 'c') {
643
+ this.cookdetails = {details: this.details[i].details}
644
+ break
645
+ }
646
+ }
647
+ }
648
+ }
649
+ },
650
+ // 复制数据
651
+ back () {
652
+ let _this = this
653
+ if(this.issee){
654
+ _this.$back()
655
+ return
656
+ }
657
+ this.$showMessage('所填写内容将不可恢复!', ['confirm', 'cancel']).then((res) => {
658
+ if (res === 'confirm') {
659
+ this.closely()
660
+ _this.$back()
661
+ }
662
+ })
663
+ },
664
+ confirm(){
665
+ this.$dispatch('confirm')
666
+ },
667
+ tick() {
668
+ this.timer = null
669
+ this.data.f_offsite_time = Util.toStandardTimeString()
670
+ this.timer = window.setTimeout(this.tick, 1000)
671
+ },
672
+ getRepairState() {
673
+ let repaired = true
674
+ this.data.f_defects.forEach((defect) => {
675
+ repaired = repaired & (defect.f_ratification == '已处理')
676
+ })
677
+ return repaired
678
+ },
679
+ verifyRepairDefects() {
680
+ this.data.f_repair_date = Util.toStandardTimeString()
681
+ this.data.f_repaired = this.getRepairState() ? '已修' : '在修'
682
+ },
683
+ errorVerify() {
684
+ // if (!this.data.f_seal_uid){
685
+ // return '该用户未施封,请先在客户信息中点击去施封!'
686
+ // }
687
+ let hasError = this.verifyState()
688
+ if(hasError)
689
+ return hasError
690
+
691
+ if(this.data.f_entry_status != '入户')
692
+ return null
693
+ hasError = this.verifyUser()
694
+ if(hasError)
695
+ return hasError
696
+ hasError = this.verifyDevices()
697
+ if(hasError)
698
+ return hasError
699
+ hasError = this.verifyFeedback()
700
+ if(hasError)
701
+ return hasError
702
+ // let time = this.$appdata.getSingleValue('安检倒计时')
703
+ // if (time){
704
+ // time = Number.parseInt(time)
705
+ // const time2 = Util.computedTimeInterval(this.startTime, Util.toStandardTimeString(), 'm')
706
+ // console.log('time2=', time2)
707
+ // console.log('time=', time)
708
+ // if (this.isNotTest && time2 < time){
709
+ // return `安检时间不能小于${time}分钟!`
710
+ // }
711
+ // }
712
+ },
713
+ verifyState() {
714
+ if(Vue.android && this.data.f_entry_status == '未使用天然气' && this.data.f_nongasuser_path == Vue.nopic)
715
+ return '未使用天然气则必须拍照'
716
+ if(Vue.android && this.data.f_entry_status == '到访不遇' && (this.data.f_noanswer_path == Vue.nopic || this.data.f_noanswer_path == ''))
717
+ return '到访不遇必须拍照'
718
+ if(Vue.android && this.data.f_entry_status == '拒检' && this.refuseinspection && (this.data.f_rejectcheck_path == Vue.nopic || this.data.f_rejectcheck_path == ''))
719
+ return '拒捡必须拍照'
720
+ },
721
+ verifyUser() {
722
+ //tag
723
+ //tag
724
+ //tag)
725
+ let prefix = '用户基本信息:'
726
+ if(Util.required(this.data.f_user_name))
727
+ return prefix + '用户名必须输入'
728
+ // if(!(/^(\d{11})|(0[0-9]{2,3}-[0-9]{8})$/.test(this.data.f_user_phone))) {
729
+ // return '请输入正确的电话号码'
730
+ // }
731
+ // if(Util.required(this.data.f_residential_area))
732
+ // return prefix + '小区名称必须输入'
733
+ if(Util.required(this.data.f_address))
734
+ return prefix + '地址必须输入'
735
+ },
736
+ verifyDevices() {
737
+ for (let dev in this.config) {
738
+ if (this.config[dev].checkmust == true) {
739
+ let error = true
740
+ for(let device in this.data) {
741
+ if (device.startsWith("device")) {
742
+ for (let item in this.data[device]) {
743
+ if (this.data[device].length != 0 && this.data[device][item].f_device_type == this.config[dev].itemname) {
744
+ error = false
745
+ }
746
+ }
747
+ }
748
+ }
749
+ if (error) {
750
+ return "请检查" + this.config[dev].itemname
751
+ }
752
+ }
753
+ }
754
+
755
+ for (var dev in this.config) {
756
+ for(var device in this.data) {
757
+ if (device.startsWith("device")) {
758
+ for (let item in this.data[device]) {
759
+ //检查每一条安检结果
760
+ if (this.data[device].length != 0 && this.data[device][item].f_device_type ==this.config[dev].itemname) {
761
+ for (let i in this.data[device][item].f_items) {
762
+ for (let it in this.config[dev].items) {
763
+ if (this.config[dev].items[it].itemname == this.data[device][item].f_items[i].f_item_name) {
764
+ let check=false
765
+ if (!this.data[device][item].f_items[i].f_item_value){
766
+ check=true
767
+ }else if (Array.isArray(this.data[device][item].f_items[i].f_item_value)){
768
+ if (this.data[device][item].f_items[i].f_item_value.length==0){
769
+ check=true
770
+ }
771
+ }
772
+ if(this.config[dev].items[it].type=='picture' && this.config[dev].items[it].checkmust == true && !this.data[device][item].f_items[i].f_path){
773
+ return dev + (this.data[device].indexOf(this.data[device][item]) + 1) + this.data[device][item].f_items[i].f_item_name + "未检查"
774
+ }
775
+ if (this.config[dev].items[it].type !='picture' && this.config[dev].items[it].checkmust == true && check) {
776
+ return dev + (this.data[device].indexOf(this.data[device][item]) + 1) + this.data[device][item].f_items[i].f_item_name + "未检查"
777
+ }
778
+ }
779
+ }
780
+ //检查安检下拉结果
781
+ if (this.data[device][item].f_items[i].type == 'selector' || this.data[device][item].f_items[i].type == 'radio') {
782
+ if (this.data[device][item].f_items[i].f_is_defect == true && this.data[device][item].f_items[i].f_path == Vue.nopic) {
783
+ return dev + (this.data[device].indexOf(this.data[device][item]) + 1) + this.data[device][item].f_items[i].f_item_name + this.data[device][item].f_items[i].f_item_value + "选中必须拍照"
784
+ }
785
+ if (this.data[device][item].f_items[i].f_is_defect == true && this.data[device][item].f_items[i].f_deal_dispose == '现场整改' && isEmpty(this.data[device][item].f_items[i].f_repair_path) ){
786
+ return dev + (this.data[device].indexOf(this.data[device][item]) + 1) + this.data[device][item].f_items[i].f_item_name + this.data[device][item].f_items[i].f_item_value + "选中现场整改必须拍照"
787
+ }
788
+ }
789
+ }
790
+ }
791
+ }
792
+ }
793
+ }
794
+ }
795
+ },
796
+ verifyFeedback() {
797
+ let prefix = '拍照签名:'
798
+ //tag)
799
+ if(Vue.android && (!this.data.f_overall_imgs || this.data.f_overall_imgs.length < this.imgsnum) && this.data.f_entry_status == '入户')
800
+ return prefix + `必须有${this.imgsnum}安检总体照片`
801
+ if(Vue.android && (!this.data.f_sign_path || this.data.f_sign_path.length == 0) && this.data.f_entry_status == '入户')
802
+ return prefix + '必须有用户签名'
803
+ if(Vue.android && this.data.f_defect_notified && this.data.f_notified_path == Vue.nopic)
804
+ return prefix + '下发安检通知书则必须给通知书拍照'
805
+ if(Vue.android && this.data.f_blacklist && this.data.f_blocking_cause=='')
806
+ return prefix + '请填写拉黑原因'
807
+ if(!this.data.f_client_evaluation && this.data.f_entry_status == '入户')
808
+ return prefix + '请选择服务评价'
809
+ // if(!this.data.f_phone_newest && this.data.f_entry_status == '入户')
810
+ // return prefix + '请填写用户联系方式'
811
+ },
812
+ getAllDefect() {
813
+ let checkResults = {
814
+ result: '正常',
815
+ data: []
816
+ }
817
+ let value = ''
818
+ let codata = JSON.parse(JSON.stringify(this.data))
819
+ //tag)
820
+ //tag)
821
+ codata.f_devices = []
822
+ this.f_devices = []
823
+ for (let device in codata) {
824
+ let f_device_type
825
+ if (device.startsWith("device")) {
826
+ //tag)
827
+ let hasOther = ''
828
+ let otherValue = null
829
+ for (let item in codata[device]) {
830
+ if(typeof codata[device][item]=='function'){
831
+ continue
832
+ }
833
+ codata[device][item].f_create_time = Util.toStandardTimeString()
834
+ if (codata[device].length > 1) {
835
+ let j = Number.parseInt(item) + 1
836
+ f_device_type = `${codata[device][item].f_device_type}${j}`
837
+ } else {
838
+ f_device_type = codata[device][item].f_device_type
839
+ }
840
+ //tag
841
+ //tag
842
+ //tag)
843
+ //tag)
844
+ if(item == 'sum' || item == 'removeEmpty'){
845
+ continue
846
+ }
847
+ for (let i = 0; i < codata[device][item].f_items.length ; i++) {
848
+ //tag
849
+ if(i == 'sum' || i == 'removeEmpty'){
850
+ continue
851
+ }
852
+ //tag)
853
+ var items = codata[device][item].f_items[i]
854
+ items.f_create_time = Util.toStandardTimeString()
855
+ //tag)
856
+ items.f_item_lists = []
857
+
858
+ if (items.type == 'selector') {
859
+ items.selected = []
860
+ } else if (items.type == 'inputSelector') {
861
+ items.selected = ''
862
+ }
863
+ //遍历配置项 将所选隐患项的配置信息放入保存的数据中
864
+ let f_is_defect //是否是隐患
865
+ let f_defect_level //是否是隐患
866
+ let f_item_name = items.f_item_name
867
+ let f_item_value
868
+ let f_is_eliminate //隐患是否消除
869
+ let f_meternumber = ''
870
+ let f_user_defects = [] // 用户所有隐患
871
+ //tag
872
+ //tag
873
+ if (items.type == 'selector' || items.type == 'checkbox' || items.type == 'radio') {
874
+ for (let i in items.f_item_value) {
875
+ if(typeof items.f_item_value[i]=='function'){
876
+ continue
877
+ }
878
+ // let configItems = this.config[codata[device][item].f_device_type].items[f_item_name]
879
+ let configItems = ''
880
+ this.config.forEach(e => {
881
+ if(e.itemname == f_device_type)
882
+ e.items.forEach(item => {
883
+ if(item.itemname == f_item_name) {
884
+ configItems = item
885
+ }
886
+ })
887
+ })
888
+ items.f_defect_level = configItems.level
889
+ //tag)
890
+ for (let k in configItems.options) {
891
+ if(typeof configItems.options[k]=='function'){
892
+ continue
893
+ }
894
+ //tag)
895
+ if (items.f_item_value[i] === configItems.options[k].data) {
896
+ f_is_defect = configItems.options[k].isdefect
897
+ f_item_value = items.f_item_value[i]
898
+ f_defect_level = configItems.level
899
+ if (f_is_defect) {
900
+ if (checkResults.result !== '有隐患') {
901
+ checkResults.result = '有隐患'
902
+ }
903
+ console.log('items'+items)
904
+ if(items.f_deal_dispose=='报修'){
905
+ console.log("检测到需要转维修++++++++++++")
906
+ this.repairDefect.result='未处理'
907
+ this.repairDefect.data.push(`${f_item_name} : ${f_item_value}`)
908
+ }
909
+ if (!this.checkResult.hasOwnProperty(f_device_type+'-'+f_item_name)) {
910
+ //tag
911
+ this.checkResult[f_device_type+'-'+f_item_name] = []
912
+ }
913
+
914
+ //tag
915
+ this.checkResult[f_device_type+'-'+f_item_name].push(f_item_value)
916
+
917
+ }
918
+
919
+ let f_selected = f_item_value
920
+ if (!items.f_selected) {
921
+ items.f_selected = []
922
+ items.f_selected.push(f_item_value)
923
+ } else {
924
+ items.f_selected.push(f_item_value)
925
+ }
926
+ }
927
+ }
928
+ }
929
+ //
930
+ items.f_selected = JSON.stringify(items.f_selected);
931
+ items.f_item_value = items.f_item_value ? items.f_item_value.toString() : undefined
932
+ } else {
933
+ // let configItems = this.config[codata[device][item].f_device_type].items[items.f_item_name]
934
+ let configItems = ''
935
+ this.config.forEach(e => {
936
+ if(e.itemname == f_device_type)
937
+ e.items.forEach(item => {
938
+ if(item.itemname == f_item_name) {
939
+ configItems = item
940
+ }
941
+ })
942
+ })
943
+
944
+ f_is_defect = items.f_is_defect
945
+ f_defect_level = configItems.level
946
+ f_item_value = items.f_item_value
947
+ items.f_defect_level = f_defect_level
948
+ let items_list = {
949
+ f_is_defect: f_is_defect,
950
+ f_item_value: f_item_value,
951
+ f_defect_level: f_defect_level,
952
+ f_create_time: Util.toStandardTimeString()
953
+ }
954
+ if (f_is_defect && f_item_value) {
955
+ items.f_is_defect = true
956
+ if (checkResults.result !== '有隐患') {
957
+ checkResults.result = '有隐患'
958
+ }
959
+ if (!this.checkResult.hasOwnProperty(items.f_item_name)) {
960
+ //tag
961
+ this.checkResult[items.f_item_name] = []
962
+ }
963
+
964
+ //tag
965
+ this.checkResult[items.f_item_name].push(f_item_value)
966
+
967
+ }
968
+ //tag)
969
+ //tag)
970
+ if (!items.f_item_lists) {
971
+ //tag
972
+ items.f_item_lists = []
973
+ if (JSON.stringify(items_list) != '{}') {
974
+ //tag
975
+ items.f_item_lists.push(items_list)
976
+ }
977
+ } else {
978
+ // items.f_item_lists[0].f_item_value = f_item_value
979
+ if (JSON.stringify(items_list) != '{}') {
980
+ //tag
981
+ //tag)
982
+ //tag)
983
+ //tag
984
+ items.f_item_lists.push(items_list)
985
+ }
986
+ }
987
+ }
988
+ if (hasOther !== '' && otherValue !== null) {
989
+ //tag
990
+ this.checkResult[hasOther].push(otherValue)
991
+ hasOther = ''
992
+ otherValue = null
993
+ }
994
+ // items.f_item_value = ''
995
+ }
996
+ //tag)
997
+ this.f_devices.push(codata[device][item])
998
+ }
999
+ }
1000
+ }
1001
+ if (this.checkResult) {
1002
+ for (let key in this.checkResult) {
1003
+ if(typeof this.checkResult[key]=='function'){
1004
+ continue
1005
+ }
1006
+ // 上次安检结果数据组织
1007
+ //tag
1008
+ //tag
1009
+ let temp = {}
1010
+ temp[key] = this.checkResult[key].join(',')
1011
+ checkResults.data.push(temp)
1012
+ // this.newcheckResult[key] = this.checkResult[key]
1013
+ // checkResults.data.push(this.newcheckResult)
1014
+ //tag)
1015
+ // this.newcheckResult = {}
1016
+ }
1017
+ this.checkResult = {}
1018
+ }
1019
+ if (checkResults.data.length > 0) {
1020
+ let msg = ''
1021
+ for (let a = 0; a < checkResults.data.length; a++) {
1022
+ for (let datumKey in checkResults.data[a]) {
1023
+ msg += datumKey + ':' + checkResults.data[a][datumKey] + ';'
1024
+ }
1025
+ }
1026
+ this.data.f_defect_text = msg
1027
+ codata.f_defect_text = msg
1028
+ }
1029
+ codata.f_defect_content = JSON.stringify(checkResults)
1030
+ this.data.f_defect_content = JSON.stringify(checkResults)
1031
+ //tag
1032
+ codata.f_security_check_type_id = this.f_security_check_type_id
1033
+ return codata
1034
+ },
1035
+ async uploadCheckPaper(){
1036
+ // console.log("====")
1037
+ // console.log('this.data=', JSON.stringify(this.data))
1038
+ // let res = await new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1039
+ // data: {
1040
+ // items: 'f_offsite_time, f_checker_name',
1041
+ // tablename: 't_check_paper',
1042
+ // orderitem: 'f_offsite_time desc',
1043
+ // condition: `f_userinfoid = '${this.data.f_userinfoid}' and f_offsite_time > to_char('${Util.toStandardDateString()} 00:00:00','yyyy-mm-dd hh24:mi:ss')`
1044
+ // }})
1045
+ // let continueUpload = true
1046
+ // if (res.data.length > 0){
1047
+ // const paper = res.data[0]
1048
+ // res = await this.$showMessage(`该用户今日已安检,安检时间为:${paper.f_offsite_time},安检员为:${paper.f_checker_name},是否继续上传?`, ['confirm', 'cancel'])
1049
+ // if (res === 'cancel') {
1050
+ // continueUpload = false
1051
+ // }
1052
+ // }
1053
+ // if (!continueUpload){
1054
+ // return
1055
+ // }
1056
+ this.saveNoclick()
1057
+ this.closely(false) // 保存本地,不删除录音文件停止录音
1058
+ let errString = this.errorVerify()
1059
+ if (errString && this.isNotTest) {
1060
+ if (Vue.android){
1061
+ this.$showMessage(errString)
1062
+ }
1063
+ return
1064
+ } else {
1065
+ this.$set('data.f_offsite_time', Util.toStandardTimeString())
1066
+ this.$set('data.f_upload_time', Util.toStandardTimeString())
1067
+ this.$set('data.f_upload_date', Util.toStandardTimeString())
1068
+ //tag
1069
+ this.data.f_complete = '已完成'
1070
+ this.disableTimer()
1071
+ }
1072
+ //tag
1073
+ this.onlySave = false
1074
+ this.assemblyCodata()
1075
+ /*try {
1076
+ if (JSON.parse(this.rowCodata.f_defect_content).result == '有隐患'){
1077
+ if(!this.data.f_advise_deal && this.data.f_entry_status == '入户'){
1078
+ return this.$showMessage('拍照签名:请选择建议处理方式')
1079
+ }
1080
+ }
1081
+ }catch (e){}*/
1082
+ if (this.repairDefect.result != '正常') {
1083
+ return this.$showMessage('有隐患的处理方式为转维修,请点击转维修')
1084
+ }
1085
+ this.save()
1086
+ },
1087
+ //将数据组装提出
1088
+ assemblyCodata(){
1089
+ let codata = this.getAllDefect()
1090
+ console.log(`codata类型 开始组装codeta数据-->${typeof codata}`)
1091
+ console.log(`codata内容-->${JSON.stringify(codata)}`)
1092
+ for (let key in codata) {
1093
+ if (key.startsWith("device")) {
1094
+ console.log('this.data.' + key + JSON.stringify(codata[key]))
1095
+ codata[key] = []
1096
+ }
1097
+ }
1098
+ codata.f_devices = this.f_devices
1099
+ this.rowCodata=codata
1100
+ },
1101
+ sealScan() {
1102
+ HostApp.__this__ = this
1103
+ HostApp.readNfc({
1104
+ 'callback': 'javascript:HostApp.__this__.sealScanCallback()',
1105
+ // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
1106
+ // 执行回调方法传入key为backresult
1107
+ // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
1108
+ 'backresult': 1
1109
+ })
1110
+ },
1111
+ sealScanCallback() {
1112
+ console.log('sealScanCallback=========')
1113
+ let result = HostApp.getNfcUUID()
1114
+ console.log('result=', result)
1115
+ if (result.code == 200){
1116
+ const sealUID = result.data
1117
+ if (sealUID != this.data.f_seal_uid){
1118
+ this.$showMessage("该铅封与该用户绑定的铅封不一致!")
1119
+ return
1120
+ }
1121
+ this.data.f_complete = '已完成'
1122
+ this.$set('data.f_offsite_time', Util.toStandardTimeString())
1123
+ this.disableTimer()
1124
+ this.save2(this.saveType)
1125
+ }else {
1126
+ this.$showMessage("未识别到铅封信息,请重新尝试!")
1127
+ return
1128
+ }
1129
+ },
1130
+ async save(type) {
1131
+ //禁用事件
1132
+ this.saveNoclick()
1133
+ //tag
1134
+ //tag
1135
+ if(type == 'temp'){
1136
+ this.data.f_complete = '未完成'
1137
+ // 关闭录音方法
1138
+ this.closely(true) //临时保存,删除录音文件并暂停录音
1139
+ this.disableTimer()
1140
+ }else {
1141
+ // 关闭录音方法
1142
+ this.closely(false) // 保存本地,不删除录音文件暂停录音
1143
+ let errString = this.errorVerify()
1144
+ if (this.isNotTest && errString) {
1145
+ //tag
1146
+ //tag
1147
+ //tag
1148
+ if (Vue.android){
1149
+ this.$showMessage(errString)
1150
+ }
1151
+ return
1152
+ }
1153
+ }
1154
+ this.save2(type)
1155
+ },
1156
+ save2(type){
1157
+ if(this.data.f_blacklist!='是'){
1158
+ delete this.data.f_blocking_cause
1159
+ }
1160
+ if (this.data.f_entry_status == '入户') {
1161
+ this.data.f_rejectchecks_path = []
1162
+ this.data.f_rejectcheck_path = null
1163
+ this.data.f_rejectcheck1_path = null
1164
+ this.data.f_rejectcheck2_path = null
1165
+ this.data.f_noanswers_path=[]
1166
+ this.data.f_noanswer_path = null
1167
+ this.data.f_noanswer1_path = null
1168
+ this.data.f_noanswer2_path = null
1169
+ }else if (this.data.f_entry_status == '到访不遇') {
1170
+ this.data.f_rejectchecks_path = []
1171
+ this.data.f_rejectcheck_path = null
1172
+ this.data.f_rejectcheck1_path = null
1173
+ this.data.f_rejectcheck2_path = null
1174
+ }else if (this.data.f_entry_status == '拒检') {
1175
+ this.data.f_noanswers_path=[]
1176
+ this.data.f_noanswer_path = null
1177
+ this.data.f_noanswer1_path = null
1178
+ this.data.f_noanswer2_path = null
1179
+ }
1180
+ if (type == 'temp' || type == 'finish') {
1181
+ this.assemblyCodata()
1182
+ }
1183
+ // try {
1184
+ let codata = this.rowCodata
1185
+ //tag
1186
+ //tag}`)
1187
+ for (let key in codata) {
1188
+ if (key.startsWith("device")) {
1189
+ //tag)
1190
+ codata[key] = []
1191
+ }
1192
+ }
1193
+ try {
1194
+ let posaddress= HostApp.getGpsDetailAddress(); //获取当前地址信息
1195
+ console.log("---------地址:"+JSON.stringify(posaddress))
1196
+ codata.f_longitude = posaddress.longitude
1197
+ codata.f_latitude = posaddress.latitude
1198
+ } catch (e) {
1199
+ console.error('安检上传时调用android端获取地址信息错误')
1200
+ }
1201
+ if (Vue.android) {
1202
+ //tag
1203
+ let value = this.$androidUtil.path({
1204
+ alias: 'getUserinfomation',
1205
+ data: {condition: "f_userinfoid = '" + this.item.f_userinfoid + "' and f_no_checkplan = '无计划安检'"}
1206
+ })
1207
+ if (this.item.f_no_checkplan == '无计划安检' && this.item.f_no_checkplan != '打回') {
1208
+ let isStart = true
1209
+ codata.f_devices = this.f_devices
1210
+ if (this.rowCodata && this.rowCodata.istoRepair=='转维修') {
1211
+ this.rowCodata = Object.assign({},this.rowCodata,codata)
1212
+ } else {
1213
+ this.rowCodata = codata
1214
+ }
1215
+ let param = {
1216
+ f_check_item_id: this.data.f_check_item_id,
1217
+ f_checker_id: this.data.f_checker_id,
1218
+ f_upload_state: '未传',
1219
+ row: this.rowCodata
1220
+ }
1221
+ console.log('无计划 param=', JSON.stringify(param))
1222
+ //tag)
1223
+ let paramStr = JSON.stringify(param)
1224
+ // 多长截断一次
1225
+ let subLength = 800
1226
+ for (let i = 0; i < paramStr.length; i += subLength) {
1227
+ HostApp.param_cache(paramStr.substr(i, subLength))
1228
+ }
1229
+ HostApp.__this__ = this
1230
+ this.uploadDisabled = true
1231
+ HostApp.syncLogic({
1232
+ 'logic': 'SafeSaveNoPaper',
1233
+ 'callback': 'javascript:HostApp.__this__.saveCallBack()',
1234
+ 'backresult': 1
1235
+ })
1236
+ } else {
1237
+ let isStart = true
1238
+ let res
1239
+ codata.f_devices = this.f_devices
1240
+ if (this.rowCodata && this.rowCodata.istoRepair=='转维修') {
1241
+ this.rowCodata = Object.assign({},this.rowCodata,codata)
1242
+ } else {
1243
+ this.rowCodata = codata
1244
+ }
1245
+ let param = {
1246
+ f_check_item_id: this.data.f_check_item_id,
1247
+ f_checker_id: this.data.f_checker_id,
1248
+ // row: codata
1249
+ row: this.rowCodata
1250
+ }
1251
+ console.log('有计划 param=', JSON.stringify(param))
1252
+ let paramStr = JSON.stringify(param)
1253
+ // 多长截断一次
1254
+ let subLength = 800
1255
+ for (let i = 0; i < paramStr.length; i += subLength) {
1256
+ HostApp.param_cache(paramStr.substr(i, subLength))
1257
+ }
1258
+ HostApp.__this__ = this
1259
+ this.uploadDisabled = true
1260
+ HostApp.syncLogic({
1261
+ // logic别名,key必须为logic
1262
+ 'logic': '保存安检单信息',
1263
+ // 回调执行方法名,key必须为callback
1264
+ 'callback': 'javascript:HostApp.__this__.saveCallBack()',
1265
+ // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
1266
+ // 执行回调方法传入key为backresult
1267
+ // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
1268
+ 'backresult': 1
1269
+ })
1270
+ }
1271
+
1272
+ } else {
1273
+ //tag
1274
+ let value = this.$androidUtil.path({
1275
+ alias: 'getUserinfomation',
1276
+ data: {condition: "f_userinfoid = '" + this.item.f_userinfoid + "' and f_no_checkplan = '无计划安检'"}
1277
+ })
1278
+ if (this.rowCodata && this.rowCodata.istoRepair=='转维修') {
1279
+ this.rowCodata = Object.assign({},this.rowCodata,codata)
1280
+ } else {
1281
+ this.rowCodata = codata
1282
+ }
1283
+ if (this.item.f_no_checkplan == '无计划安检' && value.data.length == 0 && this.item.f_no_checkplan != '打回') {
1284
+ this.$androidUtil.bzLogic('SafeSaveNoPaper', {
1285
+ f_check_item_id: this.data.f_check_item_id,
1286
+ f_checker_id: this.data.f_checker_id,
1287
+ f_upload_state: '未传',
1288
+ // row: codata
1289
+ row: this.rowCodata
1290
+ }).then((res) => {
1291
+ if (res.data.code == 200) {
1292
+ //保存devices
1293
+ this.$androidUtil.bzLogic('getPaperInfo', {
1294
+ f_check_item_id: this.data.f_check_item_id
1295
+ }).then((res) => {
1296
+ //tag
1297
+ if (res.data.code == 200) {
1298
+
1299
+ let f_paper_id = res.data.data[0].id
1300
+ for (let device of this.f_devices) {
1301
+ device.f_paper_id = f_paper_id
1302
+ //tag
1303
+ this.$androidUtil.bzLogic('saveDevice', {
1304
+ row: device
1305
+ }).then((ret) => {
1306
+ //tag
1307
+ if (ret.code != 200) {
1308
+ // if(this.isUpload){
1309
+ // this.isUpload = false
1310
+ // }
1311
+ //TODO 失败后处理
1312
+ this.$showMessage("保存失败!")
1313
+ return false
1314
+ }
1315
+ })
1316
+ }
1317
+ }
1318
+ })
1319
+ // this.$showAlert('保存成功!', 'success', 2000)
1320
+ this.$showMessage('保存成功!')
1321
+ return true
1322
+ } else {
1323
+ // if(this.isUpload){
1324
+ // this.isUpload = false
1325
+ // }
1326
+ this.$showMessage("保存失败!")
1327
+ return false
1328
+ }
1329
+ })
1330
+ }
1331
+ else {
1332
+ this.$androidUtil.bzLogic('保存安检单信息', {
1333
+ f_check_item_id: this.data.f_check_item_id,
1334
+ f_checker_id: this.data.f_checker_id,
1335
+ row: this.rowCodata
1336
+ }).then((res) => {
1337
+ //tag
1338
+ if (res.data.code == 200) {
1339
+ //保存devices
1340
+ this.$androidUtil.bzLogic('getPaperInfo', {
1341
+ f_check_item_id: this.data.f_check_item_id
1342
+ }).then((res) => {
1343
+ //tag
1344
+ if (res.data.code == 200) {
1345
+
1346
+ let f_paper_id = res.data.data[0].id
1347
+ for (let device of this.f_devices) {
1348
+ device.f_paper_id = f_paper_id
1349
+ //tag
1350
+ this.$androidUtil.bzLogic('saveDevice', {
1351
+ row: device
1352
+ }).then((ret) => {
1353
+ //tag
1354
+ if (ret.code != 200) {
1355
+ // if(this.isUpload){
1356
+ // this.isUpload = false
1357
+ // }
1358
+ //TODO 失败后处理
1359
+ this.$showMessage("保存失败!")
1360
+ return false
1361
+ }
1362
+ })
1363
+ }
1364
+ }
1365
+ })
1366
+ // this.$showAlert('保存成功!', 'success', 2000)
1367
+ this.$showMessage('保存成功!')
1368
+ return true
1369
+ } else {
1370
+ // if(this.isUpload){
1371
+ // this.isUpload = false
1372
+ // }
1373
+ this.$showMessage("保存失败!")
1374
+ return false
1375
+ }
1376
+ })
1377
+ }
1378
+ }
1379
+ },
1380
+ runSyncLogic(logic,callback,backresult){
1381
+ HostApp.runSyncLogic({
1382
+ // logic别名,key必须为logic
1383
+ 'logic': logic,
1384
+ // 回调执行方法名,key必须为callback
1385
+ 'callback': callback,
1386
+ // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
1387
+ // 执行回调方法传入key为backresult
1388
+ // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
1389
+ 'backresult':backresult
1390
+ })
1391
+ },
1392
+ logicWithHint(logic,data,callback,backresult){
1393
+ HostApp.logicWithHint({
1394
+ // logic别名,key必须为logic
1395
+ 'logic': logic,
1396
+ // 回调执行方法名,key必须为callback
1397
+ 'callback': callback,
1398
+ // logic执行需要的业务参数
1399
+ 'data': data,
1400
+ // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
1401
+ // 执行回调方法传入key为backresult
1402
+ // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
1403
+ 'backresult':backresult
1404
+ })
1405
+ },
1406
+ saveCallBack(jo){
1407
+ this.uploadDisabled = false
1408
+ if(jo.state == 'ok'){
1409
+ let res = JSON.parse(jo.result)
1410
+ if(res.code == 200){
1411
+ if(!this.onlySave){
1412
+ let codata = this.getAllDefect()
1413
+ try {
1414
+ let posaddress= HostApp.getGpsDetailAddress(); //获取当前地址信息
1415
+ console.log("---------地址:"+JSON.stringify(posaddress))
1416
+ codata.f_longitude = posaddress.longitude
1417
+ codata.f_latitude = posaddress.latitude
1418
+ } catch (e) {
1419
+ console.error('安检上传时调用android端获取地址信息错误')
1420
+ }
1421
+ //获取微信推送内容
1422
+ let haslivedispose = this.$androidUtil.bzLogic('getLiveDispose', {
1423
+ f_check_item_id: this.data.f_check_item_id
1424
+ })
1425
+ //如果是转维修上传,则不做校验,上传完成后自动转维修
1426
+ if(!this.isToRepair){
1427
+ if(haslivedispose.data.length > 0 && (this.livedispose == 'true' || this.livedispose == true)){
1428
+ if(!this.isSafeCheckToRepair){
1429
+
1430
+ }
1431
+ }
1432
+ }
1433
+ for (let key in codata){
1434
+ if(key.startsWith("device")){
1435
+ codata[key] = []
1436
+ }
1437
+ }
1438
+ codata.f_devices = this.f_devices
1439
+ if (this.rowCodata && this.rowCodata.istoRepair=='转维修') {
1440
+ this.rowCodata = Object.assign({},this.rowCodata,codata)
1441
+ } else {
1442
+ this.rowCodata = codata
1443
+ }
1444
+ // 非民用安检设备
1445
+ const safecheckDevices = []
1446
+ for (const item of this.device.model) {
1447
+ let f = false
1448
+ for (const itemElement in item) {
1449
+ if (item[itemElement]){
1450
+ f = true
1451
+ break
1452
+ }
1453
+ }
1454
+ if (f){
1455
+ safecheckDevices.push(item)
1456
+ }
1457
+ }
1458
+ this.rowCodata.planId=this.item.planID
1459
+ let param = {
1460
+ f_check_item_id: this.data.f_check_item_id,
1461
+ f_checker_id: this.data.f_checker_id,
1462
+ // row: codata
1463
+ row: this.rowCodata,
1464
+ safecheckDevices: safecheckDevices
1465
+ }
1466
+
1467
+ //tag)
1468
+ let paramStr = JSON.stringify(param)
1469
+ console.log('paramStr=', paramStr)
1470
+ // 多长截断一次
1471
+ let subLength = 800
1472
+ for (let i = 0; i < paramStr.length; i += subLength) {
1473
+ HostApp.param_cache(paramStr.substr(i, subLength))
1474
+ }
1475
+ HostApp.__this__ = this
1476
+ this.uploadDisabled = true
1477
+ HostApp.syncLogic({
1478
+ // logic别名,key必须为logic
1479
+ 'logic': '上传安检信息',
1480
+ // 回调执行方法名,key必须为callback
1481
+ 'callback': 'javascript:HostApp.__this__.uploadCallBack()',
1482
+ // 固定key,代表是否将logic执行结果作为参数传入回调方法,1代表true,0代表false,
1483
+ // 执行回调方法传入key为backresult
1484
+ // 如需额外拼接参数,写在logic返回值的params,例如xxlogic返回:{"params": "success"}
1485
+ 'backresult': 1
1486
+ })
1487
+ }else{
1488
+ this.$showMessage('保存成功!')
1489
+ if(this.clickBack){
1490
+ this.isStrat = false
1491
+ this.$dispatch('confirm')
1492
+ //this.$back()
1493
+ }
1494
+ }
1495
+ }else{
1496
+ this.$showMessage('保存失败!')
1497
+ return
1498
+ }
1499
+ }else{
1500
+ this.$showMessage('服务器内部错误,保存失败!')
1501
+ return
1502
+ }
1503
+ },
1504
+ uploadCallBack(jo){
1505
+ this.uploadDisabled = false
1506
+ //获取微信推送路径
1507
+ let url = ""
1508
+ // if(Vue.config.safecheck != undefined) {
1509
+ // if (Vue.config.safecheck.ApproveConfig != undefined) {
1510
+ // if (Vue.config.safecheck.ApproveConfig.weixinurl != undefined) {
1511
+ // url = Vue.config.safecheck.ApproveConfig.weixinurl
1512
+ // }
1513
+ // }
1514
+ // }
1515
+ //tag)
1516
+ //tag)
1517
+ if(jo.state == 'ok'){
1518
+ let res = JSON.parse(jo.result)
1519
+ //tag)
1520
+ //tag)
1521
+ if(res.code == 200){
1522
+ this.$set('data.f_paper_id', res.id)
1523
+ this.isStrat=false
1524
+ if(url != ""){
1525
+ this.$resetpost(`${url}`,{data:WxResult})
1526
+ }
1527
+ //tag
1528
+ if(this.isToRepair){
1529
+ for (let device in this.data){
1530
+ if(device.startsWith("device")){
1531
+ this.data[device] = []
1532
+ if(res.data.length > 0){
1533
+ for(let i in res.data[0].f_devices){
1534
+ if(this.data[device].length > 0){
1535
+ if(this.data[device][0].f_device_type == res.data[0].f_devices[i].f_device_type){
1536
+ this.data[device].push(res.data[0].f_devices[i])
1537
+ res.data[0].f_devices.splice(i,1)
1538
+ }
1539
+ }else{
1540
+ this.data[device].push(res.data[0].f_devices[i])
1541
+ res.data[0].f_devices.splice(i,1)
1542
+ }
1543
+ }
1544
+ }
1545
+ }
1546
+ }
1547
+ this.todo()
1548
+ }else{
1549
+ this.$showMessage('上传成功!')
1550
+ //tag
1551
+ this.$dispatch('confirm')
1552
+ // this.$back()
1553
+ }
1554
+ }else if(res.code == 309){
1555
+ this.$showMessage('该安检单已作废!')
1556
+ //tag
1557
+ this.$dispatch('confirm')
1558
+ }else if(res.code == 710){
1559
+ this.$showMessage('上传照片失败,请检查网络是否正常!'+res.msg)
1560
+ return
1561
+ }else if(res.code == 711){
1562
+ this.$showMessage('该安检单已被管理员调整,请联系管理员!')
1563
+ return
1564
+ }else if(res.code == 712){
1565
+ this.$showMessage('网络异常,请重新上传,多次上传失败请联系管理员!')
1566
+ return
1567
+ }
1568
+ else{
1569
+ this.$showMessage('上传失败!')
1570
+ }
1571
+ }else {
1572
+ this.$showMessage('网络异常,上传失败!')
1573
+ }
1574
+ this.onlySave = true
1575
+ },
1576
+ safecheckToRepairCallBack(jo){
1577
+ //获取微信推送路径
1578
+ if(jo.state == 'ok'){
1579
+ let res = JSON.parse(jo.result)
1580
+ //tag)
1581
+ if(res.code == 200){
1582
+ //tag
1583
+ if(res.data.code == 200){
1584
+ this.$showMessage('上传并转维修成功!')
1585
+ }else{
1586
+ this.$showMessage('上传并转维修成功,回写安检单失败!')
1587
+ }
1588
+ this.$dispatch('confirm')
1589
+ // this.$back()
1590
+ }else{
1591
+ this.$showMessage('上传失败!')
1592
+ this.onlySave = true
1593
+ }
1594
+ }else{
1595
+ this.$showMessage('网络异常,上传失败!')
1596
+ this.onlySave = true
1597
+ }
1598
+ },
1599
+ todo(){
1600
+ let gen = getRepairParam(this)
1601
+ co(gen)
1602
+ },
1603
+ undo(){
1604
+ this.showCheckToRepair = !this.showCheckToRepair
1605
+ this.model.serviceacitivity[0].f_reciever = ''
1606
+ this.model.serviceacitivity[0].f_meetunit = ''
1607
+ this.model.f_repairtype = ''
1608
+ this.meading = '转站点'
1609
+ },
1610
+ disableTimer() {
1611
+ if(this.timer) {
1612
+ window.clearTimeout(this.timer)
1613
+ this.timer = null
1614
+ }
1615
+ },
1616
+ loaded(paper) {
1617
+ if(!paper.hasOwnProperty('id')) {
1618
+ this.$showMessage("该安检单在手机上已经不存在,可能是卸载过程序。可以进入重新安检,或返回安检计划。")
1619
+ this.init()
1620
+ } else {
1621
+ Util.booleanFilter(paper)
1622
+ HostApp.__this__.$set('data', paper)
1623
+ HostApp.__this__.$goto('safecheck-userinfo', {}, 'paper-router')
1624
+ // 如果打回重检则重新计时
1625
+ //tag
1626
+ if(HostApp.__this__.role == 'inspect'
1627
+ && HostApp.__this__.data.f_approved
1628
+ && HostApp.__this__.data.f_approved == '打回') {
1629
+ //tag
1630
+ HostApp.__this__.data.f_onsite_time = Util.toStandardTimeString()
1631
+ HostApp.__this__.tick()
1632
+ }
1633
+ }
1634
+ HostApp.__callback__ = null
1635
+ HostApp.__this__ = null
1636
+ },
1637
+ S4() {
1638
+ return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
1639
+ },
1640
+ extend(initalObj, finalObj) {
1641
+ initalObj.forEach(item2 => {
1642
+ const item1 = finalObj.find(item => item.itemname === item2.itemname);
1643
+
1644
+ if (!item1) {
1645
+ finalObj.push(item2);
1646
+ } else {
1647
+ // 对 item2 的 items 进行逆序遍历
1648
+ item2.items.slice().forEach(subItem2 => {
1649
+ const subItem1Index = item1.items.findIndex(subItem => subItem.itemname === subItem2.itemname);
1650
+
1651
+ if (subItem1Index > -1) {
1652
+ // 如果找到匹配的 subItem1,用 subItem2 替换它
1653
+ item1.items[subItem1Index] = subItem2;
1654
+ } else {
1655
+ // 如果没有找到,将 subItem2 插入到 item1.items 的前面
1656
+ item1.items.push(subItem2);
1657
+ }
1658
+ });
1659
+ }
1660
+ });
1661
+
1662
+ return finalObj;
1663
+ },
1664
+
1665
+
1666
+ removeNestedItem(arr, itemname1, itemname2) {
1667
+ // 创建一个新数组以避免修改原始数组
1668
+ const newArr = arr.map(item => {
1669
+ // 复制每个项目以避免直接修改它们
1670
+ const newItem = { ...item };
1671
+
1672
+ // 检查外层itemname是否匹配
1673
+ if (newItem.itemname === itemname1 && Array.isArray(newItem.items)) {
1674
+ // 过滤掉匹配的内层itemname
1675
+ newItem.items = newItem.items.filter(subItem => subItem.itemname !== itemname2);
1676
+ }
1677
+ return newItem;
1678
+ });
1679
+ return newArr;
1680
+ },
1681
+
1682
+ removeByCollectionType(arr, collectionType) {
1683
+ // 创建一个新数组以避免修改原始数组
1684
+ const newArr = arr.map(item => {
1685
+ // 复制每个项目以避免直接修改它们
1686
+ const newItem = { ...item };
1687
+
1688
+ // 检查外层itemname是否匹配
1689
+ if (newItem.itemname === '燃气表' && Array.isArray(newItem.items)) {
1690
+ // 过滤掉匹配的内层itemname
1691
+ newItem.items = newItem.items.filter(subItem => !subItem.unique || subItem.collectionType == collectionType);
1692
+ }
1693
+ return newItem;
1694
+ });
1695
+ return newArr;
1696
+ },
1697
+ // async isoverDate(){
1698
+ // let res= await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/androidGetuserinfo`, {data:{
1699
+ // condition:"f_plan_item_id='"+this.item.id+"'"
1700
+ // }
1701
+ // })
1702
+ // this.isneedDate=res.data[0]["f_subscribe_date"]
1703
+ // },
1704
+ async putDevices() {
1705
+ //tag)
1706
+ //tag)
1707
+ this.$set('data.approve', "true")
1708
+ this.$set('data.writeback', "false")
1709
+ // if (Vue.config.safecheck != undefined) {
1710
+ // if (Vue.config.safecheck.ApproveConfig != undefined) {
1711
+ // if (Vue.config.safecheck.ApproveConfig.approve != undefined) {
1712
+ // this.$set('data.approve', Vue.config.safecheck.ApproveConfig.approve)
1713
+ // }
1714
+ // if (Vue.config.safecheck.ApproveConfig.writeback != undefined) {
1715
+ // this.$set('data.writeback', Vue.config.safecheck.ApproveConfig.writeback)
1716
+ // }
1717
+ // if (Vue.config.safecheck.ApproveConfig.livedispose != undefined) {
1718
+ // this.livedispose = Vue.config.safecheck.ApproveConfig.livedispose
1719
+ // }
1720
+ // if (Vue.config.safecheck.ApproveConfig.showtorepair) {
1721
+ // this.show_torepair = Vue.config.safecheck.ApproveConfig.showtorepair
1722
+ // }
1723
+ // if (Vue.config.safecheck.ApproveConfig.notencountered != undefined){
1724
+ // this.notencountered = Vue.config.safecheck.ApproveConfig.notencountered
1725
+ // }
1726
+ // if (Vue.config.safecheck.ApproveConfig.refuseinspection != undefined){
1727
+ // this.refuseinspection = Vue.config.safecheck.ApproveConfig.refuseinspection
1728
+ // }
1729
+ // }
1730
+
1731
+ console.log('this.itemccc', JSON.stringify(this.item))
1732
+ if(this.item.f_security_check_type_id && this.item.f_security_check_type_id != null) {
1733
+ try {
1734
+ await this.getSecurityCheckType(`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/getSecurityCheckTypeHistoryById`, {id: this.item.f_security_check_type_id})
1735
+ this.f_security_check_type_id = this.serverConfig.data.id
1736
+ }catch (e) {
1737
+ return this.$showMessage('获取配置文件失败,请返回后重新进入!多次失败请联系管理员')
1738
+ }
1739
+ this.config = this.extend(JSON.parse(this.serverConfig.data.f_json), this.config)
1740
+ this.initConfig()
1741
+ } else {
1742
+ try {
1743
+ await this.getSecurityCheckType(`${this.$androidUtil.getProxyUrl()}/api/af-safecheck/logic/getSecurityCheckTypeByType`, {f_safecheck_type: this.item.f_safecheck_type || '年度普检', f_user_type: this.item.f_user_type,f_orgid: Vue.user.orgid})
1744
+ this.f_security_check_type_id = this.serverConfig.data[0].id
1745
+ }catch (e) {
1746
+ return this.$showMessage('获取配置文件失败,请返回后重新进入!多次失败请联系管理员')
1747
+ }
1748
+ console.log('this.config1=', JSON.stringify(this.config))
1749
+ this.config = this.extend(JSON.parse(this.serverConfig.data[0].f_json), this.config)
1750
+ console.log('this.config2=', JSON.stringify(this.config))
1751
+ this.initConfig()
1752
+ console.log('this.config3=', JSON.stringify(this.config))
1753
+ if (this.item.f_user_type == '非民用'){
1754
+ let res = await new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1755
+ data: {
1756
+ items: '*',
1757
+ tablename: 't_devices',
1758
+ orderitem: 'f_input_date desc',
1759
+ condition: `f_userinfo_id = '${this.item.f_userinfoid}'`
1760
+ }
1761
+ }, {resolveMsg: null, rejectMsg: null})
1762
+ for (let i = 0; i < res.data.length; i++) {
1763
+ this.device.model.push({
1764
+ f_brand: res.data[i].f_brand,
1765
+ f_devices_type: res.data[i].f_devices_type,
1766
+ f_install_date: res.data[i].f_input_date,
1767
+ f_devices_num: res.data[i].f_devices_num,
1768
+ })
1769
+ }
1770
+ }
1771
+ }
1772
+ // }
1773
+ },
1774
+ async getSecurityCheckType(url, data) {
1775
+ let res = await new HttpResetClass().http('POST', url,
1776
+ data,
1777
+ {resolveMsg: null, rejectMsg: '网络异常'})
1778
+ this.serverConfig = JSON.parse(res.data)
1779
+ },
1780
+ initConfig() {
1781
+ for (let i in this.config) {
1782
+ this.tabs.splice(1,0,null)
1783
+ }
1784
+ for (let i in this.config) {
1785
+ //取得安检项索引值
1786
+ let n = parseInt(i) + 1
1787
+ //tag
1788
+ this.devices[n - 1] = {device: parseInt(i), n: n, checkmust: this.config[i].checkmust}
1789
+ this.$set('data.' + 'device' + n, [])
1790
+ this.tabs[n] = {
1791
+ header: this.config[i].itemname,
1792
+ complete: 'safecheck-devices-n',
1793
+ class: 'repair-details-class',
1794
+ number: n
1795
+ }
1796
+
1797
+ if(this.config[i].quantity && this.config[i].quantity >0){
1798
+
1799
+ let items = []
1800
+ for (let it in this.config[i].items) {
1801
+ //赋值下拉选项
1802
+ if (this.config[i].items[it].type == 'selector') {
1803
+ for (let op in this.config[i].items[it].options) {
1804
+ if (this.config[i].items[it].options[op].isdefault == true) {
1805
+ items.push({
1806
+ f_defect_level: this.config[i].items[it].level,
1807
+ f_is_defect: this.config[i].items[it].options[op].isdefect,
1808
+ f_item_name: this.config[i].items[it].itemname,
1809
+ f_item_value: this.config[i].items[it].options[op].data,
1810
+ f_path: "",
1811
+ type: "selector"
1812
+ })
1813
+ }
1814
+ }
1815
+ }
1816
+ }
1817
+ for(let q = 0; q < this.config[i].quantity; q ++) {
1818
+ this.data['device' + n].push(
1819
+ {
1820
+ f_device_type: this.config[i].itemname, f_items:items
1821
+ }
1822
+ )
1823
+ }
1824
+ }
1825
+ n = n + 1
1826
+ }
1827
+ this.faultshow.number = this.tabs.length
1828
+ },
1829
+
1830
+ init () {
1831
+ //tag
1832
+ // this.data.f_noplan_item_id = this.S4()+""+this.S4()+""+this.S4()+""+this.S4()+""+this.S4()+""+this.S4()+""+this.S4()+""+this.S4()
1833
+ this.data.ename = Vue.user.ename
1834
+ this.data.f_outlets = Vue.user.f_parentname
1835
+ this.data.f_meetunit = Vue.user.orgpathnames
1836
+ this.data.orgpathstr = Vue.user.orgpathstr
1837
+ this.data.f_check_item_id = this.item.id
1838
+ this.data.f_check_plan_id = this.f_plan_id
1839
+ this.data.f_checker_id = Vue.user.id
1840
+ this.data.f_checker_name = Vue.user.name
1841
+ this.data.f_check_type = this.item.f_user_type
1842
+ this.data.f_safecheck_type = this.item.f_safecheck_type
1843
+ //this.data.f_exceed_reason = ''//存放送气超期原因
1844
+ //tag
1845
+ this.data.f_subcompany = this.item.f_subcompany
1846
+ this.data.f_approved = this.item.f_approvedf_read_instructions
1847
+ this.data.f_repair_approved = this.item.f_repair_approved
1848
+ this.data.f_no_checkplan = this.item.f_no_checkplan
1849
+ this.data.f_approved = this.item.f_approved
1850
+ this.data.f_filialeid = this.item.f_filialeid
1851
+ this.data.f_orgstr = this.item.f_orgstr
1852
+ this.data.version = this.item.version
1853
+ this.data.f_check_version=this.item.f_check_version
1854
+ this.$set('data.f_meters', this.item.f_plan_meters)
1855
+ this.$set('data.f_userinfo_code', this.item.f_userinfo_code)
1856
+ // 安检状态
1857
+ if (this.noVisit){
1858
+ this.$set('data.f_entry_status', '到访不遇')
1859
+ }else {
1860
+ this.$set('data.f_entry_status', '入户')
1861
+ }
1862
+ this.$set('data.f_usegas', '已使用')
1863
+ this.$set('data.f_state',this.item.f_state)
1864
+ this.$set('data.f_source', this.source?this.source:'安检')
1865
+ //tag
1866
+ // 用户信息
1867
+ this.$set('data.f_user_name', this.item.f_user_name)
1868
+ this.$set('data.f_user_phone', this.item.f_user_phone)
1869
+ this.$set('data.f_userinfoid', this.item.f_userinfoid)
1870
+ this.$set('data.f_address', this.item.f_address)
1871
+ this.$set('data.f_card_id', this.item.f_card_id)
1872
+ this.$set('data.f_slice_area', this.item.f_slice_area)
1873
+ this.$set('data.f_street', this.item.f_street)
1874
+ this.$set('data.f_room', this.item.f_room)
1875
+ this.$set('data.f_building', this.item.f_building)
1876
+ this.$set('data.f_unit', this.item.f_unit)
1877
+ //tag
1878
+ this.$set('data.f_floor', this.item.f_floor)
1879
+ this.$set('data.f_residential_area' , this.item.f_residential_area)
1880
+ this.$set('data.f_idnumber', this.item.f_idnumber)
1881
+ this.$set('data.f_comments', this.item.f_comments)
1882
+ this.$set('data.f_userproperties', this.item.f_userproperties)
1883
+ this.$set('data.f_client_evaluation', '满意')
1884
+ this.$set('data.f_userfiles_id', this.item.f_plan_meters[0].f_userfiles_id)
1885
+ this.$set('data.f_seal_uid', this.item.f_seal_uid)
1886
+ this.$set('data.f_rated_traffic', this.item.f_rated_traffic)
1887
+
1888
+ // this.$set('data.f_user_inhome_time', this.item.f_user_inhome_time)
1889
+ // this.$set('data.f_user_check_time', this.item.f_user_check_time)
1890
+ // this.$set('data.f_user_spare_phone', this.item.f_user_spare_phone)
1891
+ // this.$set('data.f_user_family_remarks', this.item.f_user_family_remarks)
1892
+ // this.$set('data.f_user_equipment_remarks', this.item.f_user_equipment_remarks)
1893
+ // 处置方式
1894
+ //tag
1895
+ this.$set('data.f_gas_guidelines', true)
1896
+ this.$set('data.f_safety_warning', true)
1897
+ this.$set('data.f_gas_manual', true)
1898
+ this.$set('data.f_no_gas_device', false)
1899
+ this.$set('data.f_close_valve', false)
1900
+ this.$set('data.f_unload_battery', false)
1901
+ //tag
1902
+ if (this.data.f_check_item_id == '' && this.item.f_no_checkplan == '无计划安检') {
1903
+ this.data.f_check_item_id = this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4() + "" + this.S4()
1904
+ }
1905
+ //tag
1906
+ if(this.item.f_plan_meters) {
1907
+ for (let de in this.devices) {
1908
+ if(typeof this.devices[de]=='function'){
1909
+ continue
1910
+ }
1911
+ this.$set('data.device' + this.devices[de].n, [])
1912
+ for (let i = 0; i < this.item.f_plan_meters.length; i++) {
1913
+ if (this.item.f_plan_meters[i].f_meter_type) {
1914
+ this.data.f_meter_type=this.item.f_plan_meters[i].f_meter_type
1915
+ //tag)
1916
+ if (this.config[this.devices[de].device].itemname == "燃气表" && this.item.f_plan_meters[i].f_meter_type.indexOf('机表') > 0) {
1917
+ this.data['device' + this.devices[de].n].push({
1918
+ f_device_type: "燃气表",
1919
+ f_items: [
1920
+ {
1921
+ f_defect_level: null,
1922
+ f_device_id: "",
1923
+ f_is_defect: "",
1924
+ f_item_name: "基表编号",
1925
+ f_item_value: this.item.f_plan_meters[i].f_meter_no,
1926
+ f_path: "",
1927
+ type: "number"
1928
+ },
1929
+ {
1930
+ f_defect_level: null,
1931
+ f_device_id: "",
1932
+ f_is_defect: "",
1933
+ f_item_name: "气表型号",
1934
+ f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
1935
+ f_path: "",
1936
+ type: "string"
1937
+ },
1938
+ {
1939
+ f_defect_level: null,
1940
+ f_device_id: "",
1941
+ f_is_defect: "",
1942
+ f_item_name: "气表品牌",
1943
+ f_item_value: this.item.f_plan_meters[i].f_aliasname,
1944
+ f_path: "",
1945
+ type: "string"
1946
+ },
1947
+ {
1948
+ f_defect_level: null,
1949
+ f_device_id: "",
1950
+ f_is_defect: "",
1951
+ f_item_name: "进气方向",
1952
+ f_item_value: this.item.f_plan_meters[i].f_flow_direction,
1953
+ f_path: "",
1954
+ type: "string"
1955
+ },
1956
+ {
1957
+ f_defect_level: null,
1958
+ f_device_id: "",
1959
+ f_is_defect: "",
1960
+ f_item_name: "上次表底",
1961
+ f_item_value: this.item.f_plan_meters[i].f_prior_reading?this.item.f_plan_meters[i].f_prior_reading:0,
1962
+ f_path: "",
1963
+ type: "number"
1964
+ },
1965
+ {
1966
+ f_defect_level: null,
1967
+ f_device_id: "",
1968
+ f_is_defect: "",
1969
+ f_item_name: "本次表底",
1970
+ f_item_value: "",
1971
+ f_path: "",
1972
+ type: "number"
1973
+ },
1974
+ {
1975
+ f_defect_level: null,
1976
+ f_device_id: "",
1977
+ f_is_defect: "",
1978
+ f_item_name: "表底差值",
1979
+ f_item_value: "",
1980
+ f_path: "",
1981
+ type: "number"
1982
+ }
1983
+ ]
1984
+ })
1985
+ }
1986
+ else if (this.config[this.devices[de].device].itemname == "燃气表") {
1987
+ // delete this.config['燃气表']['items']['表底数']
1988
+ this.data['device' + this.devices[de].n].push({
1989
+ f_device_type: "燃气表",
1990
+ f_items: [
1991
+ {
1992
+ f_defect_level: null,
1993
+ f_device_id: "",
1994
+ f_is_defect: "",
1995
+ f_item_name: "基表编号",
1996
+ f_item_value: this.item.f_plan_meters[i].f_meter_no,
1997
+ f_path: "",
1998
+ type: "number"
1999
+ },
2000
+ {
2001
+ f_defect_level: null,
2002
+ f_device_id: "",
2003
+ f_is_defect: "",
2004
+ f_item_name: "气表型号",
2005
+ f_item_value: this.item.f_plan_meters[i].f_diaphgram_size,
2006
+ f_path: "",
2007
+ type: "string"
2008
+ },
2009
+ {
2010
+ f_defect_level: null,
2011
+ f_device_id: "",
2012
+ f_is_defect: "",
2013
+ f_item_name: "气表品牌",
2014
+ f_item_value: this.item.f_plan_meters[i].f_aliasname,
2015
+ f_path: "",
2016
+ type: "string"
2017
+ },
2018
+ {
2019
+ f_defect_level: null,
2020
+ f_device_id: "",
2021
+ f_is_defect: "",
2022
+ f_item_name: "进气方向",
2023
+ f_item_value: this.item.f_plan_meters[i].f_flow_direction,
2024
+ f_path: "",
2025
+ type: "string"
2026
+ },
2027
+ {
2028
+ f_defect_level: null,
2029
+ f_device_id: "",
2030
+ f_is_defect: "",
2031
+ f_item_name: "上次表底",
2032
+ f_item_value: this.item.f_plan_meters[i].f_prior_reading?this.item.f_plan_meters[i].f_prior_reading:0,
2033
+ f_path: "",
2034
+ type: "number"
2035
+ },
2036
+ {
2037
+ f_defect_level: null,
2038
+ f_device_id: "",
2039
+ f_is_defect: "",
2040
+ f_item_name: "本次表底",
2041
+ f_item_value: "",
2042
+ f_path: "",
2043
+ type: "number"
2044
+ },
2045
+ {
2046
+ f_defect_level: null,
2047
+ f_device_id: "",
2048
+ f_is_defect: "",
2049
+ f_item_name: "表底差值",
2050
+ f_item_value: "",
2051
+ f_path: "",
2052
+ type: "number"
2053
+ }
2054
+ ]
2055
+ })
2056
+ }
2057
+ /*if (this.config[this.devices[de].device].itemname == "燃气表" && this.item.f_plan_meters[i].f_collection_type) {
2058
+ this.data['device' + this.devices[de].n].forEach(device => {
2059
+ //tag)
2060
+ //tag)
2061
+ /!*
2062
+ "累购气量":{"index":8,"type":"number","readonly":true},
2063
+ "累购金额":{"index":8,"type":"number","readonly":true},
2064
+ "字轮读数":{"index":9,"type":"number","checkmust": true},
2065
+ "已用金额":{"index":9,"type":"number","checkmust": true},
2066
+ "剩余气量":{"index":10,"type":"number","checkmust": true},
2067
+ "剩余金额":{"index":10,"type":"number","checkmust": true},
2068
+ "气量异常差值":{"index":11,"type":"number","readonly": true},
2069
+ "金额异常差值":{"index":11,"type":"number","readonly": true}
2070
+ *!/
2071
+ /!*if (this.item.f_plan_meters[i].f_collection_type == '按金额') {
2072
+ if (!this.data.f_collection_type) {
2073
+ this.data.f_collection_type = this.item.f_plan_meters[i].f_collection_type
2074
+ // delete this.config['燃气表']['items']['累购气量']
2075
+ // delete this.config['燃气表']['items']['已用气量']
2076
+ // delete this.config['燃气表']['items']['剩余气量']
2077
+ // delete this.config['燃气表']['items']['气量异常差值']
2078
+ this.config = this.removeByCollectionType(this.config, this.data.f_collection_type)
2079
+ // this.config = this.removeNestedItem(this.config, '燃气表', '累购气量')
2080
+ // this.config = this.removeNestedItem(this.config, '燃气表', '已用气量')
2081
+ // this.config = this.removeNestedItem(this.config, '燃气表', '剩余气量')
2082
+ // this.config = this.removeNestedItem(this.config, '燃气表', '气量异常差值')
2083
+ device.f_items.push(
2084
+ {
2085
+ f_defect_level: null,
2086
+ f_device_id: "",
2087
+ f_is_defect: "",
2088
+ f_item_name: "初始表底",
2089
+ isshow: false,
2090
+ f_item_value: '',
2091
+ f_path: "",
2092
+ type: "number"
2093
+ },
2094
+ {
2095
+ f_defect_level: null,
2096
+ f_device_id: "",
2097
+ f_is_defect: "",
2098
+ f_item_name: "累购金额",
2099
+ f_item_value: this.item.f_plan_meters[i].f_total_fee,
2100
+ f_path: "",
2101
+ type: "number"
2102
+ },
2103
+ {
2104
+ f_defect_level: null,
2105
+ f_device_id: "",
2106
+ f_is_defect: "",
2107
+ f_item_name: "已用金额",
2108
+ f_item_value: null,
2109
+ f_path: "",
2110
+ type: "number"
2111
+ },
2112
+ {
2113
+ f_defect_level: null,
2114
+ f_device_id: "",
2115
+ f_is_defect: "",
2116
+ f_item_name: "剩余金额",
2117
+ f_item_value: null,
2118
+ f_path: "",
2119
+ type: "number"
2120
+ },
2121
+ {
2122
+ f_defect_level: null,
2123
+ f_device_id: "",
2124
+ f_is_defect: "",
2125
+ f_item_name: "气量异常差值",
2126
+ f_item_value: null,
2127
+ f_path: "",
2128
+ type: "number"
2129
+ },
2130
+ {
2131
+ f_defect_level: null,
2132
+ f_device_id: "",
2133
+ f_is_defect: "",
2134
+ f_item_name: "系统表底数",
2135
+ f_item_value: this.item.f_plan_meters[i].f_metergasnums,
2136
+ f_path: "",
2137
+ type: "number"
2138
+ },
2139
+ {
2140
+ f_defect_level: null,
2141
+ f_device_id: "",
2142
+ f_is_defect: "",
2143
+ f_item_name: "最后通讯时间",
2144
+ f_item_value: this.item.f_plan_meters[i].f_insert_date,
2145
+ f_path: "",
2146
+ type: "string"
2147
+ },
2148
+ {
2149
+ f_defect_level: null,
2150
+ f_device_id: "",
2151
+ f_is_defect: "",
2152
+ f_item_name: "系统剩余金额",
2153
+ f_item_value: this.item.f_plan_meters[i].f_balance_amount,
2154
+ f_path: "",
2155
+ type: "number"
2156
+ },
2157
+ {
2158
+ f_defect_level: null,
2159
+ f_device_id: "",
2160
+ f_is_defect: "",
2161
+ f_item_name: "已用气量",
2162
+ f_item_value: this.item.f_plan_meters[i].f_meter_base,
2163
+ f_path: "",
2164
+ type: "number"
2165
+ },
2166
+ )
2167
+ //tag)
2168
+ }
2169
+ } else
2170
+ if (this.item.f_plan_meters[i].f_collection_type == '按气量') {
2171
+ if (!this.data.f_collection_type) {
2172
+ console.log('this.config,按气量', this.config)
2173
+ this.data.f_collection_type = this.item.f_plan_meters[i].f_collection_type
2174
+ this.config = this.removeByCollectionType(this.config, this.data.f_collection_type)
2175
+ // this.config = this.removeNestedItem(this.config, '燃气表', '累购金额')
2176
+ // this.config = this.removeNestedItem(this.config, '燃气表', '已用金额')
2177
+ // this.config = this.removeNestedItem(this.config, '燃气表', '剩余金额')
2178
+ // this.config = this.removeNestedItem(this.config, '燃气表', '金额异常差值')
2179
+ device.f_items.push(
2180
+ {
2181
+ f_defect_level: null,
2182
+ f_device_id: "",
2183
+ f_is_defect: "",
2184
+ f_item_name: "初始表底",
2185
+ isshow: true,
2186
+ f_item_value: this.item.f_plan_meters[i].f_initial_base,
2187
+ f_path: "",
2188
+ type: "number"
2189
+ },
2190
+ {
2191
+ f_defect_level: null,
2192
+ f_device_id: "",
2193
+ f_is_defect: "",
2194
+ f_item_name: "累购气量",
2195
+ f_item_value: this.item.f_plan_meters[i].f_total_gas,
2196
+ f_path: "",
2197
+ type: "number"
2198
+ },
2199
+ {
2200
+ f_defect_level: null,
2201
+ f_device_id: "",
2202
+ f_is_defect: "",
2203
+ f_item_name: "已用气量",
2204
+ f_item_value: this.item.f_plan_meters[i].f_meter_base,
2205
+ f_path: "",
2206
+ type: "number"
2207
+ },
2208
+ {
2209
+ f_defect_level: null,
2210
+ f_device_id: "",
2211
+ f_is_defect: "",
2212
+ f_item_name: "剩余气量",
2213
+ f_item_value: "",
2214
+ f_path: "",
2215
+ type: "number"
2216
+ },
2217
+ {
2218
+ f_defect_level: null,
2219
+ f_device_id: "",
2220
+ f_is_defect: "",
2221
+ f_item_name: "气量异常差值",
2222
+ f_item_value: null,
2223
+ f_path: "",
2224
+ type: "number"
2225
+ }
2226
+ )
2227
+ //tag)
2228
+ }
2229
+ }
2230
+ })
2231
+ }
2232
+ else if(this.config[this.devices[de].device].itemname == "燃气表"){
2233
+ //tag
2234
+ this.data['device' + this.devices[de].n].forEach(device => {
2235
+ //tag)
2236
+ if (!this.data.f_collection_type) {
2237
+ this.data.f_collection_type = this.item.f_plan_meters[i].f_collection_type
2238
+ // delete this.config['燃气表']['items']['累购金额']
2239
+ // delete this.config['燃气表']['items']['已用金额']
2240
+ // delete this.config['燃气表']['items']['剩余金额']
2241
+ // delete this.config['燃气表']['items']['金额异常差值']
2242
+ // this.config = this.removeNestedItem(this.config, '燃气表', '累购金额')
2243
+ // this.config = this.removeNestedItem(this.config, '燃气表', '已用金额')
2244
+ // this.config = this.removeNestedItem(this.config, '燃气表', '剩余金额')
2245
+ // this.config = this.removeNestedItem(this.config, '燃气表', '金额异常差值')
2246
+ this.config = this.removeByCollectionType(this.config, this.data.f_collection_type)
2247
+ device.f_items.push(
2248
+ {
2249
+ f_defect_level: null,
2250
+ f_device_id: "",
2251
+ f_is_defect: "",
2252
+ f_item_name: "初始表底",
2253
+ isshow: true,
2254
+ f_item_value: this.item.f_plan_meters[i].f_initial_base,
2255
+ f_path: "",
2256
+ type: "number"
2257
+ },
2258
+ {
2259
+ f_defect_level: null,
2260
+ f_device_id: "",
2261
+ f_is_defect: "",
2262
+ f_item_name: "累购气量",
2263
+ f_item_value: this.item.f_plan_meters[i].f_total_gas,
2264
+ f_path: "",
2265
+ type: "number"
2266
+ },
2267
+ {
2268
+ f_defect_level: null,
2269
+ f_device_id: "",
2270
+ f_is_defect: "",
2271
+ f_item_name: "已用气量",
2272
+ f_item_value: this.item.f_plan_meters[i].f_meter_base,
2273
+ f_path: "",
2274
+ type: "number"
2275
+ },
2276
+ {
2277
+ f_defect_level: null,
2278
+ f_device_id: "",
2279
+ f_is_defect: "",
2280
+ f_item_name: "剩余气量",
2281
+ f_item_value: '',
2282
+ f_path: "",
2283
+ type: "number"
2284
+ },
2285
+ {
2286
+ f_defect_level: null,
2287
+ f_device_id: "",
2288
+ f_is_defect: "",
2289
+ f_item_name: "气量异常差值",
2290
+ isshow:false,
2291
+ f_item_value: null,
2292
+ f_path: "",
2293
+ type: "number"
2294
+ }
2295
+ )
2296
+ //tag)
2297
+ }
2298
+ })
2299
+ }*/
2300
+ }
2301
+ }
2302
+ }
2303
+ }
2304
+ var pardate = {
2305
+ _this:this,
2306
+ tittle:'安检详情',
2307
+ safe:true
2308
+ }
2309
+ // this.$dispatch('gotoson',pardate)
2310
+ //tag
2311
+ this.$goto('safecheck-userinfo', {userinfo:this.data, noVisit: this.noVisit}, 'repair')
2312
+ },
2313
+ sealBindBack(sealUID) {
2314
+ if (sealUID){
2315
+ this.$set('data.f_seal_uid', sealUID)
2316
+ }
2317
+ }
2318
+ },
2319
+ watch: {
2320
+ 'row' () {
2321
+ //tag
2322
+ this.copy()
2323
+ }
2324
+ },
2325
+ async ready () {
2326
+ this.startTime = Util.toStandardTimeString()
2327
+ //送气超期功能
2328
+ await this.putDevices()
2329
+ console.log('this.configssss', JSON.stringify(this.config))
2330
+ //如果已检,则提取安检单
2331
+ if (this.item.f_state != '未检') {
2332
+ if (this.role == 'inspect' || this.role == 'androidview') {
2333
+ HostApp.__callback__ = this.loaded
2334
+ HostApp.__this__ = this
2335
+ let that = this
2336
+ let value = {}
2337
+ //tag
2338
+ if (this.role == 'inspect') {
2339
+ //tag
2340
+ if (this.item.f_no_checkplan == '无计划安检') {
2341
+ value = this.$androidUtil.path({
2342
+ alias: 'getUserinfomation',
2343
+ data: {condition: "f_check_item_id = '" + this.item.id + "' and f_no_checkplan = '无计划安检'"}
2344
+ })
2345
+ } else {
2346
+ value = this.$androidUtil.bzLogic('FetchCheckPaper', {id: this.item.id})
2347
+ }
2348
+ } else {
2349
+ value = await this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/path/getUserinfomation`, {data: {condition: `id = '${this.item.f_paper_id}'`}})
2350
+ }
2351
+ Util.replaceFalse(value)
2352
+ //tag)
2353
+ if (value.data.length != 0) {
2354
+ that.$set('data', value.data[0])
2355
+ //tag)
2356
+ // if (this.data.f_collection_type == '按气量') {
2357
+ // this.config = this.removeNestedItem(this.config, '燃气表', '累购金额')
2358
+ // this.config = this.removeNestedItem(this.config, '燃气表', '已用金额')
2359
+ // this.config = this.removeNestedItem(this.config, '燃气表', '剩余金额')
2360
+ // this.config = this.removeNestedItem(this.config, '燃气表', '金额异常差值')
2361
+ // } else if (this.data.f_collection_type == '按金额') {
2362
+ // this.config = this.removeNestedItem(this.config, '燃气表', '累购气量')
2363
+ // this.config = this.removeNestedItem(this.config, '燃气表', '已用气量')
2364
+ // this.config = this.removeNestedItem(this.config, '燃气表', '剩余气量')
2365
+ // this.config = this.removeNestedItem(this.config, '燃气表', '气量异常差值')
2366
+ // }
2367
+ this.config = this.removeByCollectionType(this.config, this.data.f_collection_type)
2368
+ if (value.data[0].f_devices) {
2369
+ for (let da in that.devices) {
2370
+ if(typeof that.devices[da]=='function'){
2371
+ continue
2372
+ }
2373
+ that.$set('data.device' + that.devices[da].n, [])
2374
+ }
2375
+ value.data[0].f_devices.forEach((item) => {
2376
+ //tag)
2377
+ for (let i in item.f_items) {
2378
+ if(typeof item.f_items[i]=='function'){
2379
+ continue
2380
+ }
2381
+ // item.f_device_type 燃气表
2382
+ // 拿到 that.config 中 燃气表哪一项
2383
+
2384
+ // for (let de in that.config[item.f_device_type].items) {
2385
+ let items = this.config.find(obj => obj.itemname === item.f_device_type).items;
2386
+ for (let de in items) {
2387
+ if(typeof items[de]=='function'){
2388
+ continue
2389
+ }
2390
+ if (item.f_items[i].f_item_name == items[de].itemname) {
2391
+ if (items[de].type == 'selector' || items[de].type == 'checkbox') {
2392
+ item.f_items[i].f_item_value = []
2393
+ }
2394
+ }
2395
+ }
2396
+ if (item.f_items[i].f_item_value instanceof Array) {
2397
+ item.f_items[i].f_item_value = JSON.parse(item.f_items[i].f_selected)
2398
+ }
2399
+ }
2400
+ for (let de in that.devices) {
2401
+ if(typeof that.devices[de]=='function'){
2402
+ continue
2403
+ }
2404
+ // if (that.devices[de].device == item.f_device_type) {
2405
+ if (this.config[that.devices[de].device].itemname == item.f_device_type) {
2406
+ that.data['device' + that.devices[de].n].push({
2407
+ f_device_type: item.f_device_type,
2408
+ f_items: item.f_items
2409
+ })
2410
+ //tag)
2411
+ }
2412
+ }
2413
+ })
2414
+ if (this.role == 'androidview') {
2415
+ Util.androidRatifyPics(that.data, this.$androidUtil.getProxyUrl())
2416
+ Util.androidRatifyPics(that.picture, this.$androidUtil.getProxyUrl())
2417
+ Util.booleanFilter(that.data)
2418
+ }
2419
+ //tag)
2420
+ }
2421
+ } else {
2422
+ //tag
2423
+ this.init()
2424
+ }
2425
+ let isRecodr = this.$appdata.getSingleValue('无限制录音'); //单值参数,为true则是开启全程录音
2426
+ if (isRecodr) {
2427
+ if (isRecodr=='true') {
2428
+ // this.$showMessage("为了保证服务质量,您的电话将会被全程录音!")
2429
+ // 初始化录音
2430
+ let resse = this.record()
2431
+ }
2432
+ }
2433
+ this.$set('data.f_seal_uid', this.item.f_seal_uid)
2434
+ this.$set('data.f_rated_traffic', this.item.f_rated_traffic)
2435
+ //tag
2436
+ var pardate = {
2437
+ _this:this,
2438
+ tittle:'安检详情',
2439
+ safe:true
2440
+ }
2441
+ // this.$dispatch('gotoson',pardate)getImgPath
2442
+ this.$goto('safecheck-userinfo', {userinfo:this.data, noVisit: this.noVisit}, 'repair')
2443
+ } else {
2444
+ let that = this
2445
+ let id
2446
+ if (this.role == 'view') {
2447
+ id = this.item.id
2448
+ }
2449
+ this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/path/getUserinfomation`, {data:{condition:`id = '${id}'`}}).then((respanse)=> {
2450
+ if (respanse.data.length != 0) {
2451
+ that.data = Object.assign(that.data,respanse.data[0])
2452
+ if(respanse.data[0].f_devices) {
2453
+ for (let da in that.devices) {
2454
+ that.$set('data.device' + that.devices[da].n, [])
2455
+ }
2456
+ respanse.data[0].f_devices.forEach((item) => {
2457
+ for (let de in that.devices) {
2458
+ if (that.devices[de].device == item.f_device_type) {
2459
+ that.data['device' + that.devices[de].n].push({
2460
+ f_device_type: item.f_device_type,
2461
+ f_items: item.f_items
2462
+ })
2463
+ }
2464
+ }
2465
+ })
2466
+ }
2467
+ Util.replaceFalse(that.data)
2468
+ Util.booleanFilter(that.data)
2469
+ if(this.role == 'view'){
2470
+ Util.ratifyPics(that.data)
2471
+ }else{
2472
+ Util.androidRatifyPics(that.data,this.$androidUtil.getProxyUrl())
2473
+ }
2474
+ //tag
2475
+ } else {
2476
+ alert("该安检单可能已不在本地!")
2477
+ this.init()
2478
+ }
2479
+ this.$set('data.f_seal_uid', this.item.f_seal_uid)
2480
+ this.$set('data.f_rated_traffic', this.item.f_rated_traffic)
2481
+ var pardate = {
2482
+ _this:this,
2483
+ tittle:'安检详情',
2484
+ safe:true
2485
+ }
2486
+ // this.$dispatch('gotoson',pardate)
2487
+ this.$goto('safecheck-userinfo', {userinfo:this.data, noVisit: this.noVisit}, 'paper-router')
2488
+ }
2489
+ ).catch(
2490
+ (respanse) => {
2491
+ alert('查找安检单失败')
2492
+ })
2493
+ }
2494
+ }else{
2495
+ let isRecodr = this.$appdata.getSingleValue('无限制录音'); //单值参数,为true则是开启全程录音
2496
+ if (isRecodr) {
2497
+ if (isRecodr=='true') {
2498
+ // this.$showMessage("为了保证服务质量,您的电话将会被全程录音!")
2499
+ // 初始化录音
2500
+ let resse = this.record()
2501
+ }
2502
+ }
2503
+ this.init()
2504
+ console.log('this.configaaa', this.config)
2505
+ // if (!this.data.f_seal_uid){
2506
+ // this.$showMessage("该用户未施封,请先在客户信息中点击去施封,施封后才能上传安检单!")
2507
+ // }
2508
+ }
2509
+ },
2510
+ components: {
2511
+ // 'door-service': DoorService,
2512
+ // 'repair-info': RepairInfo,
2513
+ // 'repair-user-info': RepairUserInfo,
2514
+ // 'outlay': Outlay,
2515
+ // 'fault-all': FaultAll,
2516
+ // 'repair-details':RepairDetails
2517
+ // 'pipeline': Pipeline,
2518
+ // 'device-service': DeviceService,
2519
+ // 'trouble-removal': TroubleRemoval,
2520
+ // 'cooking-utensils': CookingUtensils,
2521
+ // 'repair-matter-info': RepairMatterInfo,
2522
+ // 'first-gas-check': FirstGasCheck,
2523
+ // 'tel-change-matter': TelChangeMatter/
2524
+ },
2525
+ events: {
2526
+ 'tijiao': function () {
2527
+ // 事件回调内的 `this` 自动绑定到注册它的实例上
2528
+ this.confirm()
2529
+ },
2530
+ 'toSealBind': function () {
2531
+ console.log("bind====")
2532
+ new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/getSealInfo`, {data: {
2533
+ condition: `ui.f_userinfo_id = ${this.data.f_userinfoid}`
2534
+ }
2535
+ }, {resolveMsg: null, rejectMsg: '网络异常'}).then((res) => {
2536
+ console.log('res=', JSON.stringify(res))
2537
+ if (res.data.length){
2538
+ var pardate = {
2539
+ _this: this,
2540
+ title:'铅封绑定',
2541
+ safe:true
2542
+ }
2543
+ this.$dispatch('gotoson',pardate)
2544
+ this.$goto('seal-bind', {row: res.data[0]}, 'self', this.sealBindBack)
2545
+ }else {
2546
+ this.$showMessage("未查询到该用户信息!")
2547
+ }
2548
+ })
2549
+ }
2550
+ }
2551
+ }
2552
+ </script>
2553
+ <style lang="less">
2554
+ @import "../../../bootstrap/less/variables.less";
2555
+ .noclickbut {
2556
+ pointer-events: none;
2557
+ }
2558
+ .tab-befor-img (@url) {
2559
+ content: '';
2560
+ background-image: url("@{url}");
2561
+ background-size: 20px;
2562
+ display: inline-block;
2563
+ margin-right: 8px;
2564
+ margin-top: 0.3em;
2565
+ height: 1.3em;
2566
+ width: 1.3em;
2567
+ vertical-align: -35%;
2568
+ }
2569
+
2570
+ @media screen and (min-width: 768px) {
2571
+ .android-repair-order > div > ul a {
2572
+ font-size: @font-size-h2;
2573
+ margin: 0.3em 0;
2574
+ }
2575
+ }
2576
+ .repair-details-class{
2577
+ &::before {
2578
+ .tab-befor-img("../../../assets/huneiweixiu1.png");
2579
+ }
2580
+ }
2581
+ .repair-info-class {
2582
+ &::before {
2583
+ .tab-befor-img("../../../assets/baoxiuxinxi1.png");
2584
+ }
2585
+ }
2586
+ .repair-user-info-class {
2587
+ &::before {
2588
+ .tab-befor-img("../../../assets/jibenxinxi1.png")
2589
+ }
2590
+ }
2591
+
2592
+ .door-service-class {
2593
+ &::before {
2594
+ .tab-befor-img("../../../assets/huneiweixiu1.png")
2595
+ }
2596
+ }
2597
+
2598
+ .pipeline-class {
2599
+ &::before {
2600
+ .tab-befor-img("../../../assets/guandao1.png")
2601
+ }
2602
+ }
2603
+
2604
+ .device-service-class {
2605
+ &::before {
2606
+ .tab-befor-img("../../../assets/shebeiweixiu1.png")
2607
+ }
2608
+ }
2609
+
2610
+ .trouble-removal-class {
2611
+ &::before {
2612
+ .tab-befor-img("../../../assets/shiguchuli.png")
2613
+ }
2614
+ }
2615
+
2616
+ .cooking-utensils-class {
2617
+ &::before {
2618
+ .tab-befor-img("../../../assets/zaoju1.png")
2619
+ }
2620
+ }
2621
+
2622
+ .outlay-class {
2623
+ &::before {
2624
+ .tab-befor-img("../../../assets/feiyong1.png")
2625
+ }
2626
+ }
2627
+
2628
+ .fault-all-class {
2629
+ &::before {
2630
+ .tab-befor-img("../../../assets/guzhanghuizong1.png")
2631
+ }
2632
+ }
2633
+ .photo-write-class {
2634
+ &::before {
2635
+ .tab-befor-img("../../../assets/zaoju.png")
2636
+ }
2637
+ }
2638
+ .delay-apply-class {
2639
+ &::before {
2640
+ .tab-befor-img("../../../assets/yonghubaoxiu.png")
2641
+ }
2642
+ }
2643
+
2644
+ .repair-back-class {
2645
+ &::before {
2646
+ .tab-befor-img("../../../assets/fanhui.png")
2647
+ }
2648
+ }
2649
+ .butt2 {
2650
+ display: inline;
2651
+ float: right;
2652
+ width: 10px;
2653
+ text-align: center;
2654
+ align-items:center;
2655
+ position: absolute;
2656
+ top:50%;
2657
+
2658
+ left:90%;
2659
+ transform: translate(-50%,-50%);
2660
+ }
2661
+ .linesty{
2662
+ display: inline-block;
2663
+ height:1px;
2664
+ width:100%;
2665
+ background:#d0d0d0;
2666
+ overflow:hidden;
2667
+ vertical-align: middle;
2668
+ }
2669
+ .spanboder{
2670
+ border-bottom:2px solid #499edf;
2671
+ padding-bottom: 8px
2672
+ }
2673
+ .app-botton {
2674
+ position:fixed;
2675
+ background: #87b2dd;
2676
+ right:8px;
2677
+ color: #FFF;
2678
+ padding: 8px;
2679
+ text-align: center;
2680
+ font-size: 1.2em;
2681
+ z-index: 10;
2682
+ opacity:0.5;
2683
+ bottom: 50px;
2684
+ margin-top: -10px;
2685
+ height: 40px;
2686
+ }
2687
+ .android-repair-order > div > ul a {
2688
+ font-size: 12px;
2689
+ color: #333333;
2690
+ padding: 13px 16px;
2691
+ }
2692
+ </style>